effect 3.12.0 → 3.12.2

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 (169) hide show
  1. package/dist/cjs/BigDecimal.js +3 -3
  2. package/dist/cjs/Effect.js +2957 -928
  3. package/dist/cjs/Effect.js.map +1 -1
  4. package/dist/cjs/GlobalValue.js +8 -6
  5. package/dist/cjs/GlobalValue.js.map +1 -1
  6. package/dist/cjs/HashMap.js +2 -2
  7. package/dist/cjs/HashMap.js.map +1 -1
  8. package/dist/cjs/ManagedRuntime.js.map +1 -1
  9. package/dist/cjs/Predicate.js.map +1 -1
  10. package/dist/cjs/Request.js +3 -3
  11. package/dist/cjs/Request.js.map +1 -1
  12. package/dist/cjs/RequestBlock.js +7 -7
  13. package/dist/cjs/RequestBlock.js.map +1 -1
  14. package/dist/cjs/Runtime.js.map +1 -1
  15. package/dist/cjs/Schema.js +5 -8
  16. package/dist/cjs/Schema.js.map +1 -1
  17. package/dist/cjs/Stream.js +5 -5
  18. package/dist/cjs/Stream.js.map +1 -1
  19. package/dist/cjs/internal/channel.js +3 -3
  20. package/dist/cjs/internal/channel.js.map +1 -1
  21. package/dist/cjs/internal/core-effect.js +3 -3
  22. package/dist/cjs/internal/core-effect.js.map +1 -1
  23. package/dist/cjs/internal/core.js +19 -33
  24. package/dist/cjs/internal/core.js.map +1 -1
  25. package/dist/cjs/internal/defaultServices.js +2 -2
  26. package/dist/cjs/internal/defaultServices.js.map +1 -1
  27. package/dist/cjs/internal/effect/circular.js +4 -4
  28. package/dist/cjs/internal/effect/circular.js.map +1 -1
  29. package/dist/cjs/internal/fiberRefs/patch.js +5 -5
  30. package/dist/cjs/internal/fiberRefs/patch.js.map +1 -1
  31. package/dist/cjs/internal/fiberRuntime.js +40 -37
  32. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  33. package/dist/cjs/internal/fiberScope.js.map +1 -1
  34. package/dist/cjs/internal/layer/circular.js +2 -2
  35. package/dist/cjs/internal/layer/circular.js.map +1 -1
  36. package/dist/cjs/internal/logSpan.js +10 -3
  37. package/dist/cjs/internal/logSpan.js.map +1 -1
  38. package/dist/cjs/internal/logger-circular.js +2 -2
  39. package/dist/cjs/internal/logger-circular.js.map +1 -1
  40. package/dist/cjs/internal/logger.js +44 -118
  41. package/dist/cjs/internal/logger.js.map +1 -1
  42. package/dist/cjs/internal/metric.js +3 -3
  43. package/dist/cjs/internal/metric.js.map +1 -1
  44. package/dist/cjs/internal/reloadable.js +7 -7
  45. package/dist/cjs/internal/reloadable.js.map +1 -1
  46. package/dist/cjs/internal/resource.js +2 -2
  47. package/dist/cjs/internal/resource.js.map +1 -1
  48. package/dist/cjs/internal/runtime.js +7 -7
  49. package/dist/cjs/internal/runtime.js.map +1 -1
  50. package/dist/cjs/internal/scopedCache.js +9 -9
  51. package/dist/cjs/internal/scopedCache.js.map +1 -1
  52. package/dist/cjs/internal/stream.js +28 -28
  53. package/dist/cjs/internal/stream.js.map +1 -1
  54. package/dist/cjs/internal/subscriptionRef.js +4 -4
  55. package/dist/cjs/internal/subscriptionRef.js.map +1 -1
  56. package/dist/cjs/internal/synchronizedRef.js.map +1 -1
  57. package/dist/cjs/internal/version.js +1 -1
  58. package/dist/dts/BigDecimal.d.ts +3 -3
  59. package/dist/dts/Effect.d.ts +6541 -2072
  60. package/dist/dts/Effect.d.ts.map +1 -1
  61. package/dist/dts/GlobalValue.d.ts.map +1 -1
  62. package/dist/dts/Layer.d.ts +3 -3
  63. package/dist/dts/Layer.d.ts.map +1 -1
  64. package/dist/dts/ManagedRuntime.d.ts +2 -2
  65. package/dist/dts/ManagedRuntime.d.ts.map +1 -1
  66. package/dist/dts/Predicate.d.ts +1 -1
  67. package/dist/dts/Predicate.d.ts.map +1 -1
  68. package/dist/dts/Runtime.d.ts +2 -2
  69. package/dist/dts/Runtime.d.ts.map +1 -1
  70. package/dist/dts/Schema.d.ts.map +1 -1
  71. package/dist/dts/Utils.d.ts +4 -4
  72. package/dist/dts/Utils.d.ts.map +1 -1
  73. package/dist/dts/internal/core-effect.d.ts.map +1 -1
  74. package/dist/dts/internal/core.d.ts.map +1 -1
  75. package/dist/dts/internal/fiberScope.d.ts.map +1 -1
  76. package/dist/dts/internal/logger.d.ts +1 -1
  77. package/dist/dts/internal/logger.d.ts.map +1 -1
  78. package/dist/esm/BigDecimal.js +3 -3
  79. package/dist/esm/Effect.js +2958 -929
  80. package/dist/esm/Effect.js.map +1 -1
  81. package/dist/esm/GlobalValue.js +8 -6
  82. package/dist/esm/GlobalValue.js.map +1 -1
  83. package/dist/esm/HashMap.js +2 -2
  84. package/dist/esm/HashMap.js.map +1 -1
  85. package/dist/esm/ManagedRuntime.js.map +1 -1
  86. package/dist/esm/Predicate.js.map +1 -1
  87. package/dist/esm/Request.js +3 -3
  88. package/dist/esm/Request.js.map +1 -1
  89. package/dist/esm/RequestBlock.js +7 -7
  90. package/dist/esm/RequestBlock.js.map +1 -1
  91. package/dist/esm/Runtime.js.map +1 -1
  92. package/dist/esm/Schema.js +5 -8
  93. package/dist/esm/Schema.js.map +1 -1
  94. package/dist/esm/Stream.js +5 -5
  95. package/dist/esm/Stream.js.map +1 -1
  96. package/dist/esm/internal/channel.js +3 -3
  97. package/dist/esm/internal/channel.js.map +1 -1
  98. package/dist/esm/internal/core-effect.js +3 -3
  99. package/dist/esm/internal/core-effect.js.map +1 -1
  100. package/dist/esm/internal/core.js +16 -28
  101. package/dist/esm/internal/core.js.map +1 -1
  102. package/dist/esm/internal/defaultServices.js +2 -2
  103. package/dist/esm/internal/defaultServices.js.map +1 -1
  104. package/dist/esm/internal/effect/circular.js +4 -4
  105. package/dist/esm/internal/effect/circular.js.map +1 -1
  106. package/dist/esm/internal/fiberRefs/patch.js +5 -5
  107. package/dist/esm/internal/fiberRefs/patch.js.map +1 -1
  108. package/dist/esm/internal/fiberRuntime.js +40 -37
  109. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  110. package/dist/esm/internal/fiberScope.js.map +1 -1
  111. package/dist/esm/internal/layer/circular.js +2 -2
  112. package/dist/esm/internal/layer/circular.js.map +1 -1
  113. package/dist/esm/internal/logSpan.js +7 -1
  114. package/dist/esm/internal/logSpan.js.map +1 -1
  115. package/dist/esm/internal/logger-circular.js +2 -2
  116. package/dist/esm/internal/logger-circular.js.map +1 -1
  117. package/dist/esm/internal/logger.js +45 -119
  118. package/dist/esm/internal/logger.js.map +1 -1
  119. package/dist/esm/internal/metric.js +3 -3
  120. package/dist/esm/internal/metric.js.map +1 -1
  121. package/dist/esm/internal/reloadable.js +7 -7
  122. package/dist/esm/internal/reloadable.js.map +1 -1
  123. package/dist/esm/internal/resource.js +2 -2
  124. package/dist/esm/internal/resource.js.map +1 -1
  125. package/dist/esm/internal/runtime.js +7 -7
  126. package/dist/esm/internal/runtime.js.map +1 -1
  127. package/dist/esm/internal/scopedCache.js +9 -9
  128. package/dist/esm/internal/scopedCache.js.map +1 -1
  129. package/dist/esm/internal/stream.js +28 -28
  130. package/dist/esm/internal/stream.js.map +1 -1
  131. package/dist/esm/internal/subscriptionRef.js +4 -4
  132. package/dist/esm/internal/subscriptionRef.js.map +1 -1
  133. package/dist/esm/internal/synchronizedRef.js.map +1 -1
  134. package/dist/esm/internal/version.js +1 -1
  135. package/package.json +1 -1
  136. package/src/BigDecimal.ts +3 -3
  137. package/src/Effect.ts +6587 -2108
  138. package/src/GlobalValue.ts +8 -6
  139. package/src/HashMap.ts +2 -2
  140. package/src/Layer.ts +3 -3
  141. package/src/ManagedRuntime.ts +3 -2
  142. package/src/Predicate.ts +2 -2
  143. package/src/Request.ts +3 -3
  144. package/src/RequestBlock.ts +7 -7
  145. package/src/Runtime.ts +2 -5
  146. package/src/Schema.ts +5 -8
  147. package/src/Stream.ts +5 -5
  148. package/src/Utils.ts +4 -4
  149. package/src/internal/channel.ts +3 -3
  150. package/src/internal/core-effect.ts +4 -6
  151. package/src/internal/core.ts +28 -54
  152. package/src/internal/defaultServices.ts +10 -10
  153. package/src/internal/effect/circular.ts +54 -49
  154. package/src/internal/fiberRefs/patch.ts +5 -5
  155. package/src/internal/fiberRuntime.ts +54 -48
  156. package/src/internal/fiberScope.ts +0 -1
  157. package/src/internal/layer/circular.ts +2 -2
  158. package/src/internal/logSpan.ts +8 -1
  159. package/src/internal/logger-circular.ts +2 -2
  160. package/src/internal/logger.ts +54 -145
  161. package/src/internal/metric.ts +3 -3
  162. package/src/internal/reloadable.ts +10 -10
  163. package/src/internal/resource.ts +2 -2
  164. package/src/internal/runtime.ts +8 -8
  165. package/src/internal/scopedCache.ts +23 -23
  166. package/src/internal/stream.ts +30 -30
  167. package/src/internal/subscriptionRef.ts +4 -4
  168. package/src/internal/synchronizedRef.ts +0 -1
  169. package/src/internal/version.ts +1 -1
@@ -32,7 +32,7 @@ import * as internalFiber from "../fiber.js"
32
32
  import * as fiberRuntime from "../fiberRuntime.js"
33
33
  import { globalScope } from "../fiberScope.js"
34
34
  import * as internalRef from "../ref.js"
35
- import * as _schedule from "../schedule.js"
35
+ import * as schedule_ from "../schedule.js"
36
36
  import * as supervisor from "../supervisor.js"
37
37
 
38
38
  /** @internal */
@@ -480,7 +480,7 @@ export const scheduleForked = dual<
480
480
  self: Effect.Effect<A, E, R>,
481
481
  schedule: Schedule.Schedule<Out, unknown, R2>
482
482
  ) => Effect.Effect<Fiber.RuntimeFiber<Out, E>, never, R | R2 | Scope.Scope>
483
- >(2, (self, schedule) => pipe(self, _schedule.schedule_Effect(schedule), forkScoped))
483
+ >(2, (self, schedule) => pipe(self, schedule_.schedule_Effect(schedule), forkScoped))
484
484
 
485
485
  /** @internal */
486
486
  export const supervised = dual<
@@ -583,58 +583,63 @@ export const timeoutTo = dual<
583
583
  readonly duration: Duration.DurationInput
584
584
  }
585
585
  ) => Effect.Effect<B | B1, E, R>
586
- >(2, (self, { duration, onSuccess, onTimeout }) =>
587
- core.fiberIdWith((parentFiberId) =>
588
- fiberRuntime.raceFibersWith(
589
- self,
590
- core.interruptible(effect.sleep(duration)),
591
- {
592
- onSelfWin: (winner, loser) =>
593
- core.flatMap(
594
- winner.await,
595
- (exit) => {
596
- if (exit._tag === "Success") {
597
- return core.flatMap(
598
- winner.inheritAll,
599
- () =>
600
- core.as(
586
+ >(
587
+ 2,
588
+ (self, { duration, onSuccess, onTimeout }) =>
589
+ core.fiberIdWith((parentFiberId) =>
590
+ core.uninterruptibleMask((restore) =>
591
+ fiberRuntime.raceFibersWith(
592
+ restore(self),
593
+ core.interruptible(effect.sleep(duration)),
594
+ {
595
+ onSelfWin: (winner, loser) =>
596
+ core.flatMap(
597
+ winner.await,
598
+ (exit) => {
599
+ if (exit._tag === "Success") {
600
+ return core.flatMap(
601
+ winner.inheritAll,
602
+ () =>
603
+ core.as(
604
+ core.interruptAsFiber(loser, parentFiberId),
605
+ onSuccess(exit.value)
606
+ )
607
+ )
608
+ } else {
609
+ return core.flatMap(
601
610
  core.interruptAsFiber(loser, parentFiberId),
602
- onSuccess(exit.value)
611
+ () => core.exitFailCause(exit.cause)
603
612
  )
604
- )
605
- } else {
606
- return core.flatMap(
607
- core.interruptAsFiber(loser, parentFiberId),
608
- () => core.exitFailCause(exit.cause)
609
- )
610
- }
611
- }
612
- ),
613
- onOtherWin: (winner, loser) =>
614
- core.flatMap(
615
- winner.await,
616
- (exit) => {
617
- if (exit._tag === "Success") {
618
- return core.flatMap(
619
- winner.inheritAll,
620
- () =>
621
- core.as(
613
+ }
614
+ }
615
+ ),
616
+ onOtherWin: (winner, loser) =>
617
+ core.flatMap(
618
+ winner.await,
619
+ (exit) => {
620
+ if (exit._tag === "Success") {
621
+ return core.flatMap(
622
+ winner.inheritAll,
623
+ () =>
624
+ core.as(
625
+ core.interruptAsFiber(loser, parentFiberId),
626
+ onTimeout()
627
+ )
628
+ )
629
+ } else {
630
+ return core.flatMap(
622
631
  core.interruptAsFiber(loser, parentFiberId),
623
- onTimeout()
632
+ () => core.exitFailCause(exit.cause)
624
633
  )
625
- )
626
- } else {
627
- return core.flatMap(
628
- core.interruptAsFiber(loser, parentFiberId),
629
- () => core.exitFailCause(exit.cause)
630
- )
631
- }
632
- }
633
- ),
634
- otherScope: globalScope
635
- }
634
+ }
635
+ }
636
+ ),
637
+ otherScope: globalScope
638
+ }
639
+ )
640
+ )
636
641
  )
637
- ))
642
+ )
638
643
 
639
644
  // circular with Synchronized
640
645
 
@@ -4,7 +4,7 @@ import type * as FiberId from "../../FiberId.js"
4
4
  import type * as FiberRefs from "../../FiberRefs.js"
5
5
  import type * as FiberRefsPatch from "../../FiberRefsPatch.js"
6
6
  import { dual } from "../../Function.js"
7
- import * as _fiberRefs from "../fiberRefs.js"
7
+ import * as fiberRefs_ from "../fiberRefs.js"
8
8
 
9
9
  /** @internal */
10
10
  export const OP_EMPTY = "Empty" as const
@@ -111,7 +111,7 @@ export const patch = dual<
111
111
  break
112
112
  }
113
113
  case OP_ADD: {
114
- fiberRefs = _fiberRefs.updateAs(fiberRefs, {
114
+ fiberRefs = fiberRefs_.updateAs(fiberRefs, {
115
115
  fiberId,
116
116
  fiberRef: head.fiberRef,
117
117
  value: head.value
@@ -120,13 +120,13 @@ export const patch = dual<
120
120
  break
121
121
  }
122
122
  case OP_REMOVE: {
123
- fiberRefs = _fiberRefs.delete_(fiberRefs, head.fiberRef)
123
+ fiberRefs = fiberRefs_.delete_(fiberRefs, head.fiberRef)
124
124
  patches = tail
125
125
  break
126
126
  }
127
127
  case OP_UPDATE: {
128
- const value = _fiberRefs.getOrDefault(fiberRefs, head.fiberRef)
129
- fiberRefs = _fiberRefs.updateAs(fiberRefs, {
128
+ const value = fiberRefs_.getOrDefault(fiberRefs, head.fiberRef)
129
+ fiberRefs = fiberRefs_.updateAs(fiberRefs, {
130
130
  fiberId,
131
131
  fiberRef: head.fiberRef,
132
132
  value: head.fiberRef.patch(head.patch)(value)
@@ -45,7 +45,7 @@ import type * as Supervisor from "../Supervisor.js"
45
45
  import type * as Tracer from "../Tracer.js"
46
46
  import type { Concurrency, NoInfer } from "../Types.js"
47
47
  import { internalCall, yieldWrapGet } from "../Utils.js"
48
- import * as _RequestBlock from "./blockedRequests.js"
48
+ import * as RequestBlock_ from "./blockedRequests.js"
49
49
  import * as internalCause from "./cause.js"
50
50
  import * as clock from "./clock.js"
51
51
  import { currentRequestMap } from "./completedRequestMap.js"
@@ -67,7 +67,7 @@ import * as metricLabel from "./metric/label.js"
67
67
  import * as OpCodes from "./opCodes/effect.js"
68
68
  import { randomTag } from "./random.js"
69
69
  import { complete } from "./request.js"
70
- import * as _runtimeFlags from "./runtimeFlags.js"
70
+ import * as runtimeFlags_ from "./runtimeFlags.js"
71
71
  import { OpSupervision } from "./runtimeFlags.js"
72
72
  import * as supervisor from "./supervisor.js"
73
73
  import * as SupervisorPatch from "./supervisor/patch.js"
@@ -171,7 +171,7 @@ const contOpSuccess = {
171
171
  value: unknown
172
172
  ) => {
173
173
  self.patchRuntimeFlags(self.currentRuntimeFlags, cont.patch)
174
- if (_runtimeFlags.interruptible(self.currentRuntimeFlags) && self.isInterrupted()) {
174
+ if (runtimeFlags_.interruptible(self.currentRuntimeFlags) && self.isInterrupted()) {
175
175
  return core.exitFailCause(self.getInterruptedCause())
176
176
  } else {
177
177
  return core.exitSucceed(value)
@@ -210,7 +210,7 @@ const drainQueueWhileRunningTable = {
210
210
  message: FiberMessage.FiberMessage & { _tag: FiberMessage.OP_INTERRUPT_SIGNAL }
211
211
  ) => {
212
212
  self.processNewInterruptSignal(message.cause)
213
- return _runtimeFlags.interruptible(runtimeFlags) ? core.exitFailCause(message.cause) : cur
213
+ return runtimeFlags_.interruptible(runtimeFlags) ? core.exitFailCause(message.cause) : cur
214
214
  },
215
215
  [FiberMessage.OP_RESUME]: (
216
216
  _self: FiberRuntime<any, any>,
@@ -244,10 +244,10 @@ const drainQueueWhileRunningTable = {
244
244
  */
245
245
  const runBlockedRequests = (self: RequestBlock.RequestBlock) =>
246
246
  core.forEachSequentialDiscard(
247
- _RequestBlock.flatten(self),
247
+ RequestBlock_.flatten(self),
248
248
  (requestsByRequestResolver) =>
249
249
  forEachConcurrentDiscard(
250
- _RequestBlock.sequentialCollectionToChunk(requestsByRequestResolver),
250
+ RequestBlock_.sequentialCollectionToChunk(requestsByRequestResolver),
251
251
  ([dataSource, sequential]) => {
252
252
  const map = new Map<Request<any, any>, Entry<any>>()
253
253
  const arr: Array<Array<Entry<any>>> = []
@@ -278,6 +278,8 @@ export interface Snapshot {
278
278
  flags: RuntimeFlags.RuntimeFlags
279
279
  }
280
280
 
281
+ const _version = version.getCurrentVersion()
282
+
281
283
  /** @internal */
282
284
  export class FiberRuntime<in out A, in out E = never> extends Effectable.Class<A, E>
283
285
  implements Fiber.RuntimeFiber<A, E>
@@ -315,7 +317,7 @@ export class FiberRuntime<in out A, in out E = never> extends Effectable.Class<A
315
317
  this.currentRuntimeFlags = runtimeFlags0
316
318
  this._fiberId = fiberId
317
319
  this._fiberRefs = fiberRefs0
318
- if (_runtimeFlags.runtimeMetrics(runtimeFlags0)) {
320
+ if (runtimeFlags_.runtimeMetrics(runtimeFlags0)) {
319
321
  const tags = this.getFiberRef(core.currentMetricLabels)
320
322
  fiberStarted.unsafeUpdate(1, tags)
321
323
  fiberActive.unsafeUpdate(1, tags)
@@ -472,10 +474,10 @@ export class FiberRuntime<in out A, in out E = never> extends Effectable.Class<A
472
474
  const updatedRuntimeFlags = parentFiber.getFiberRef(currentRuntimeFlags)
473
475
 
474
476
  const patch = pipe(
475
- _runtimeFlags.diff(parentRuntimeFlags, updatedRuntimeFlags),
477
+ runtimeFlags_.diff(parentRuntimeFlags, updatedRuntimeFlags),
476
478
  // Do not inherit WindDown or Interruption!
477
- RuntimeFlagsPatch.exclude(_runtimeFlags.Interruption),
478
- RuntimeFlagsPatch.exclude(_runtimeFlags.WindDown)
479
+ RuntimeFlagsPatch.exclude(runtimeFlags_.Interruption),
480
+ RuntimeFlagsPatch.exclude(runtimeFlags_.WindDown)
479
481
  )
480
482
 
481
483
  return core.updateRuntimeFlags(patch)
@@ -802,7 +804,7 @@ export class FiberRuntime<in out A, in out E = never> extends Effectable.Class<A
802
804
  }
803
805
 
804
806
  reportExitValue(exit: Exit.Exit<A, E>) {
805
- if (_runtimeFlags.runtimeMetrics(this.currentRuntimeFlags)) {
807
+ if (runtimeFlags_.runtimeMetrics(this.currentRuntimeFlags)) {
806
808
  const tags = this.getFiberRef(core.currentMetricLabels)
807
809
  const startTimeMillis = this.id().startTimeMillis
808
810
  const endTimeMillis = Date.now()
@@ -926,7 +928,7 @@ export class FiberRuntime<in out A, in out E = never> extends Effectable.Class<A
926
928
  this.currentSupervisor.onResume(this)
927
929
  try {
928
930
  let effect: Effect.Effect<any, any, any> | null =
929
- _runtimeFlags.interruptible(this.currentRuntimeFlags) && this.isInterrupted() ?
931
+ runtimeFlags_.interruptible(this.currentRuntimeFlags) && this.isInterrupted() ?
930
932
  core.exitFailCause(this.getInterruptedCause()) :
931
933
  effect0
932
934
  while (effect !== null) {
@@ -936,7 +938,7 @@ export class FiberRuntime<in out A, in out E = never> extends Effectable.Class<A
936
938
  const op = yieldedOpChannel.currentOp!
937
939
  yieldedOpChannel.currentOp = null
938
940
  if (op._op === OpCodes.OP_YIELD) {
939
- if (_runtimeFlags.cooperativeYielding(this.currentRuntimeFlags)) {
941
+ if (runtimeFlags_.cooperativeYielding(this.currentRuntimeFlags)) {
940
942
  this.tell(FiberMessage.yieldNow())
941
943
  this.tell(FiberMessage.resume(core.exitVoid))
942
944
  effect = null
@@ -948,7 +950,7 @@ export class FiberRuntime<in out A, in out E = never> extends Effectable.Class<A
948
950
  effect = null
949
951
  }
950
952
  } else {
951
- this.currentRuntimeFlags = pipe(this.currentRuntimeFlags, _runtimeFlags.enable(_runtimeFlags.WindDown))
953
+ this.currentRuntimeFlags = pipe(this.currentRuntimeFlags, runtimeFlags_.enable(runtimeFlags_.WindDown))
952
954
  const interruption = this.interruptAllChildren()
953
955
  if (interruption !== null) {
954
956
  effect = core.flatMap(interruption, () => exit)
@@ -1020,7 +1022,7 @@ export class FiberRuntime<in out A, in out E = never> extends Effectable.Class<A
1020
1022
  * **NOTE**: This method must be invoked by the fiber itself.
1021
1023
  */
1022
1024
  patchRuntimeFlags(oldRuntimeFlags: RuntimeFlags.RuntimeFlags, patch: RuntimeFlagsPatch.RuntimeFlagsPatch) {
1023
- const newRuntimeFlags = _runtimeFlags.patch(oldRuntimeFlags, patch)
1025
+ const newRuntimeFlags = runtimeFlags_.patch(oldRuntimeFlags, patch)
1024
1026
  ;(globalThis as any)[internalFiber.currentFiberURI] = this
1025
1027
  this.currentRuntimeFlags = newRuntimeFlags
1026
1028
  return newRuntimeFlags
@@ -1044,7 +1046,7 @@ export class FiberRuntime<in out A, in out E = never> extends Effectable.Class<A
1044
1046
  this.tell(FiberMessage.resume(effect))
1045
1047
  }
1046
1048
  }
1047
- if (_runtimeFlags.interruptible(runtimeFlags)) {
1049
+ if (runtimeFlags_.interruptible(runtimeFlags)) {
1048
1050
  this._asyncInterruptor = callback
1049
1051
  }
1050
1052
  try {
@@ -1180,14 +1182,14 @@ export class FiberRuntime<in out A, in out E = never> extends Effectable.Class<A
1180
1182
  switch (cont._op) {
1181
1183
  case OpCodes.OP_ON_FAILURE:
1182
1184
  case OpCodes.OP_ON_SUCCESS_AND_FAILURE: {
1183
- if (!(_runtimeFlags.interruptible(this.currentRuntimeFlags) && this.isInterrupted())) {
1185
+ if (!(runtimeFlags_.interruptible(this.currentRuntimeFlags) && this.isInterrupted())) {
1184
1186
  return internalCall(() => cont.effect_instruction_i1(cause))
1185
1187
  } else {
1186
1188
  return core.exitFailCause(internalCause.stripFailures(cause))
1187
1189
  }
1188
1190
  }
1189
1191
  case "OnStep": {
1190
- if (!(_runtimeFlags.interruptible(this.currentRuntimeFlags) && this.isInterrupted())) {
1192
+ if (!(runtimeFlags_.interruptible(this.currentRuntimeFlags) && this.isInterrupted())) {
1191
1193
  return core.exitSucceed(core.exitFailCause(cause))
1192
1194
  } else {
1193
1195
  return core.exitFailCause(internalCause.stripFailures(cause))
@@ -1195,7 +1197,7 @@ export class FiberRuntime<in out A, in out E = never> extends Effectable.Class<A
1195
1197
  }
1196
1198
  case OpCodes.OP_REVERT_FLAGS: {
1197
1199
  this.patchRuntimeFlags(this.currentRuntimeFlags, cont.patch)
1198
- if (_runtimeFlags.interruptible(this.currentRuntimeFlags) && this.isInterrupted()) {
1200
+ if (runtimeFlags_.interruptible(this.currentRuntimeFlags) && this.isInterrupted()) {
1199
1201
  return core.exitFailCause(internalCause.sequential(cause, this.getInterruptedCause()))
1200
1202
  } else {
1201
1203
  return core.exitFailCause(cause)
@@ -1234,7 +1236,7 @@ export class FiberRuntime<in out A, in out E = never> extends Effectable.Class<A
1234
1236
  this.setFiberRefs(snap.refs)
1235
1237
  this.currentRuntimeFlags = snap.flags
1236
1238
  const patchRefs = FiberRefsPatch.diff(snap.refs, refs)
1237
- const patchFlags = _runtimeFlags.diff(snap.flags, flags)
1239
+ const patchFlags = runtimeFlags_.diff(snap.flags, flags)
1238
1240
  return core.exitSucceed(core.blocked(
1239
1241
  op.effect_instruction_i0,
1240
1242
  core.withFiberRuntime<unknown, unknown>((newFiber) => {
@@ -1244,7 +1246,7 @@ export class FiberRuntime<in out A, in out E = never> extends Effectable.Class<A
1244
1246
  newFiber.setFiberRefs(
1245
1247
  FiberRefsPatch.patch(newFiber.id(), newFiber.getFiberRefs())(patchRefs)
1246
1248
  )
1247
- newFiber.currentRuntimeFlags = _runtimeFlags.patch(patchFlags)(newFiber.currentRuntimeFlags)
1249
+ newFiber.currentRuntimeFlags = runtimeFlags_.patch(patchFlags)(newFiber.currentRuntimeFlags)
1248
1250
  return op.effect_instruction_i1
1249
1251
  })
1250
1252
  ))
@@ -1264,19 +1266,19 @@ export class FiberRuntime<in out A, in out E = never> extends Effectable.Class<A
1264
1266
  [OpCodes.OP_UPDATE_RUNTIME_FLAGS](op: core.Primitive & { _op: OpCodes.OP_UPDATE_RUNTIME_FLAGS }) {
1265
1267
  const updateFlags = op.effect_instruction_i0
1266
1268
  const oldRuntimeFlags = this.currentRuntimeFlags
1267
- const newRuntimeFlags = _runtimeFlags.patch(oldRuntimeFlags, updateFlags)
1269
+ const newRuntimeFlags = runtimeFlags_.patch(oldRuntimeFlags, updateFlags)
1268
1270
  // One more chance to short circuit: if we're immediately going
1269
1271
  // to interrupt. Interruption will cause immediate reversion of
1270
1272
  // the flag, so as long as we "peek ahead", there's no need to
1271
1273
  // set them to begin with.
1272
- if (_runtimeFlags.interruptible(newRuntimeFlags) && this.isInterrupted()) {
1274
+ if (runtimeFlags_.interruptible(newRuntimeFlags) && this.isInterrupted()) {
1273
1275
  return core.exitFailCause(this.getInterruptedCause())
1274
1276
  } else {
1275
1277
  // Impossible to short circuit, so record the changes
1276
1278
  this.patchRuntimeFlags(this.currentRuntimeFlags, updateFlags)
1277
1279
  if (op.effect_instruction_i1) {
1278
1280
  // Since we updated the flags, we need to revert them
1279
- const revertFlags = _runtimeFlags.diff(newRuntimeFlags, oldRuntimeFlags)
1281
+ const revertFlags = runtimeFlags_.diff(newRuntimeFlags, oldRuntimeFlags)
1280
1282
  this.pushStack(new core.RevertFlags(revertFlags, op))
1281
1283
  return internalCall(() => op.effect_instruction_i1!(oldRuntimeFlags))
1282
1284
  } else {
@@ -1367,7 +1369,7 @@ export class FiberRuntime<in out A, in out E = never> extends Effectable.Class<A
1367
1369
  // @ts-expect-error
1368
1370
  cur = this.currentTracer.context(
1369
1371
  () => {
1370
- if (version.getCurrentVersion() !== (cur as core.Primitive)[core.EffectTypeId]._V) {
1372
+ if (_version !== (cur as core.Primitive)[core.EffectTypeId]._V) {
1371
1373
  return core.dieMessage(
1372
1374
  `Cannot execute an Effect versioned ${
1373
1375
  (cur as core.Primitive)[core.EffectTypeId]._V
@@ -1400,8 +1402,6 @@ export class FiberRuntime<in out A, in out E = never> extends Effectable.Class<A
1400
1402
  } catch (e) {
1401
1403
  if (cur !== YieldedOp && !Predicate.hasProperty(cur, "_op") || !((cur as core.Primitive)._op in this)) {
1402
1404
  cur = core.dieMessage(`Not a valid effect: ${Inspectable.toStringUnknown(cur)}`)
1403
- } else if (core.isEffectError(e)) {
1404
- cur = core.exitFailCause(e.cause)
1405
1405
  } else if (core.isInterruptedException(e)) {
1406
1406
  cur = core.exitFailCause(
1407
1407
  internalCause.sequential(internalCause.die(e), internalCause.interrupt(FiberId.none))
@@ -1676,7 +1676,7 @@ export const addFinalizer = <X, R>(
1676
1676
  const preRefs = runtimeFinalizer.getFiberRefs()
1677
1677
  const preFlags = runtimeFinalizer.currentRuntimeFlags
1678
1678
  const patchRefs = FiberRefsPatch.diff(preRefs, acquireRefs)
1679
- const patchFlags = _runtimeFlags.diff(preFlags, acquireFlags)
1679
+ const patchFlags = runtimeFlags_.diff(preFlags, acquireFlags)
1680
1680
  const inverseRefs = FiberRefsPatch.diff(acquireRefs, preRefs)
1681
1681
  runtimeFinalizer.setFiberRefs(
1682
1682
  FiberRefsPatch.patch(patchRefs, runtimeFinalizer.id(), acquireRefs)
@@ -1847,7 +1847,8 @@ const allValidate = (
1847
1847
  return core.flatMap(
1848
1848
  forEach(eitherEffects, identity, {
1849
1849
  concurrency: options?.concurrency,
1850
- batching: options?.batching
1850
+ batching: options?.batching,
1851
+ concurrentFinalizers: options?.concurrentFinalizers
1851
1852
  }),
1852
1853
  (eithers) => {
1853
1854
  const none = Option.none()
@@ -1899,14 +1900,16 @@ const allEither = (
1899
1900
  return forEach(eitherEffects, identity, {
1900
1901
  concurrency: options?.concurrency,
1901
1902
  batching: options?.batching,
1902
- discard: true
1903
+ discard: true,
1904
+ concurrentFinalizers: options?.concurrentFinalizers
1903
1905
  })
1904
1906
  }
1905
1907
 
1906
1908
  return core.map(
1907
1909
  forEach(eitherEffects, identity, {
1908
1910
  concurrency: options?.concurrency,
1909
- batching: options?.batching
1911
+ batching: options?.batching,
1912
+ concurrentFinalizers: options?.concurrentFinalizers
1910
1913
  }),
1911
1914
  (eithers) =>
1912
1915
  reconcile._tag === "Some" ?
@@ -2271,7 +2274,7 @@ export const forEachConcurrentDiscard = <A, X, E, R>(
2271
2274
  () => core.exitVoid
2272
2275
  )))
2273
2276
  } else if (residual.length + results.length === target) {
2274
- const requests = residual.map((blocked) => blocked.effect_instruction_i0).reduce(_RequestBlock.par)
2277
+ const requests = residual.map((blocked) => blocked.effect_instruction_i0).reduce(RequestBlock_.par)
2275
2278
  resume(core.succeed(core.blocked(
2276
2279
  requests,
2277
2280
  forEachConcurrentDiscard(
@@ -2535,7 +2538,7 @@ export const validateAll = dual<
2535
2538
  readonly discard?: false | undefined
2536
2539
  readonly concurrentFinalizers?: boolean | undefined
2537
2540
  }
2538
- ): (elements: Iterable<A>) => Effect.Effect<Array<B>, Array<E>, R>
2541
+ ): (elements: Iterable<A>) => Effect.Effect<Array<B>, RA.NonEmptyArray<E>, R>
2539
2542
  <A, B, E, R>(
2540
2543
  f: (a: A, i: number) => Effect.Effect<B, E, R>,
2541
2544
  options: {
@@ -2544,7 +2547,7 @@ export const validateAll = dual<
2544
2547
  readonly discard: true
2545
2548
  readonly concurrentFinalizers?: boolean | undefined
2546
2549
  }
2547
- ): (elements: Iterable<A>) => Effect.Effect<void, Array<E>, R>
2550
+ ): (elements: Iterable<A>) => Effect.Effect<void, RA.NonEmptyArray<E>, R>
2548
2551
  },
2549
2552
  {
2550
2553
  <A, B, E, R>(
@@ -2556,7 +2559,7 @@ export const validateAll = dual<
2556
2559
  readonly discard?: false | undefined
2557
2560
  readonly concurrentFinalizers?: boolean | undefined
2558
2561
  }
2559
- ): Effect.Effect<Array<B>, Array<E>, R>
2562
+ ): Effect.Effect<Array<B>, RA.NonEmptyArray<E>, R>
2560
2563
  <A, B, E, R>(
2561
2564
  elements: Iterable<A>,
2562
2565
  f: (a: A, i: number) => Effect.Effect<B, E, R>,
@@ -2566,7 +2569,7 @@ export const validateAll = dual<
2566
2569
  readonly discard: true
2567
2570
  readonly concurrentFinalizers?: boolean | undefined
2568
2571
  }
2569
- ): Effect.Effect<void, Array<E>, R>
2572
+ ): Effect.Effect<void, RA.NonEmptyArray<E>, R>
2570
2573
  }
2571
2574
  >(
2572
2575
  (args) => Predicate.isIterable(args[0]),
@@ -2575,16 +2578,19 @@ export const validateAll = dual<
2575
2578
  readonly batching?: boolean | "inherit" | undefined
2576
2579
  readonly discard?: boolean | undefined
2577
2580
  readonly concurrentFinalizers?: boolean | undefined
2578
- }): Effect.Effect<any, Array<E>, R> =>
2581
+ }): Effect.Effect<any, RA.NonEmptyArray<E>, R> =>
2579
2582
  core.flatMap(
2580
2583
  partition(elements, f, {
2581
2584
  concurrency: options?.concurrency,
2582
- batching: options?.batching
2585
+ batching: options?.batching,
2586
+ concurrentFinalizers: options?.concurrentFinalizers
2583
2587
  }),
2584
2588
  ([es, bs]) =>
2585
- es.length === 0
2586
- ? options?.discard ? core.void : core.succeed(bs)
2587
- : core.fail(es)
2589
+ RA.isNonEmptyArray(es)
2590
+ ? core.fail(es)
2591
+ : options?.discard
2592
+ ? core.void
2593
+ : core.succeed(bs)
2588
2594
  )
2589
2595
  )
2590
2596
 
@@ -3012,16 +3018,16 @@ export const validateFirst = dual<
3012
3018
  )
3013
3019
 
3014
3020
  /* @internal */
3015
- export const withClockScoped = <A extends Clock.Clock>(value: A) =>
3016
- fiberRefLocallyScopedWith(defaultServices.currentServices, Context.add(clock.clockTag, value))
3021
+ export const withClockScoped = <C extends Clock.Clock>(c: C) =>
3022
+ fiberRefLocallyScopedWith(defaultServices.currentServices, Context.add(clock.clockTag, c))
3017
3023
 
3018
3024
  /* @internal */
3019
3025
  export const withRandomScoped = <A extends Random.Random>(value: A) =>
3020
3026
  fiberRefLocallyScopedWith(defaultServices.currentServices, Context.add(randomTag, value))
3021
3027
 
3022
3028
  /* @internal */
3023
- export const withConfigProviderScoped = (value: ConfigProvider) =>
3024
- fiberRefLocallyScopedWith(defaultServices.currentServices, Context.add(configProviderTag, value))
3029
+ export const withConfigProviderScoped = (provider: ConfigProvider) =>
3030
+ fiberRefLocallyScopedWith(defaultServices.currentServices, Context.add(configProviderTag, provider))
3025
3031
 
3026
3032
  /* @internal */
3027
3033
  export const withEarlyRelease = <A, E, R>(
@@ -3181,8 +3187,8 @@ export const withRuntimeFlagsScoped = (
3181
3187
  return pipe(
3182
3188
  core.runtimeFlags,
3183
3189
  core.flatMap((runtimeFlags) => {
3184
- const updatedRuntimeFlags = _runtimeFlags.patch(runtimeFlags, update)
3185
- const revertRuntimeFlags = _runtimeFlags.diff(updatedRuntimeFlags, runtimeFlags)
3190
+ const updatedRuntimeFlags = runtimeFlags_.patch(runtimeFlags, update)
3191
+ const revertRuntimeFlags = runtimeFlags_.diff(updatedRuntimeFlags, runtimeFlags)
3186
3192
  return pipe(
3187
3193
  core.updateRuntimeFlags(update),
3188
3194
  core.zipRight(addFinalizer(() => core.updateRuntimeFlags(revertRuntimeFlags))),
@@ -3407,7 +3413,7 @@ export const fiberRefMakeRuntimeFlags = (
3407
3413
 
3408
3414
  /** @internal */
3409
3415
  export const currentRuntimeFlags: FiberRef.FiberRef<RuntimeFlags.RuntimeFlags> = core.fiberRefUnsafeMakeRuntimeFlags(
3410
- _runtimeFlags.none
3416
+ runtimeFlags_.none
3411
3417
  )
3412
3418
 
3413
3419
  /** @internal */
@@ -3,7 +3,6 @@ import { globalValue } from "../GlobalValue.js"
3
3
  import type * as RuntimeFlags from "../RuntimeFlags.js"
4
4
  import * as FiberMessage from "./fiberMessage.js"
5
5
  import type * as FiberRuntime from "./fiberRuntime.js"
6
- import * as _runtimeFlags from "./runtimeFlags.js"
7
6
 
8
7
  /** @internal */
9
8
  const FiberScopeSymbolKey = "effect/FiberScope"
@@ -15,7 +15,7 @@ import * as fiberRuntime from "../fiberRuntime.js"
15
15
  import * as layer from "../layer.js"
16
16
  import * as runtimeFlags from "../runtimeFlags.js"
17
17
  import * as runtimeFlagsPatch from "../runtimeFlagsPatch.js"
18
- import * as _supervisor from "../supervisor.js"
18
+ import * as supervisor_ from "../supervisor.js"
19
19
  import * as tracer from "../tracer.js"
20
20
 
21
21
  // circular with Logger
@@ -106,7 +106,7 @@ export const addSupervisor = <A>(supervisor: Supervisor.Supervisor<A>): Layer.La
106
106
  layer.scopedDiscard(
107
107
  fiberRuntime.fiberRefLocallyScopedWith(
108
108
  fiberRuntime.currentSupervisor,
109
- (current) => new _supervisor.Zip(current, supervisor)
109
+ (current) => new supervisor_.Zip(current, supervisor)
110
110
  )
111
111
  )
112
112
 
@@ -6,8 +6,15 @@ export const make = (label: string, startTime: number): LogSpan.LogSpan => ({
6
6
  startTime
7
7
  })
8
8
 
9
+ /**
10
+ * Sanitize a given string by replacing spaces, equal signs, and double quotes with underscores.
11
+ *
12
+ * @internal
13
+ */
14
+ export const formatLabel = (key: string) => key.replace(/[\s="]/g, "_")
15
+
9
16
  /** @internal */
10
17
  export const render = (now: number) => (self: LogSpan.LogSpan): string => {
11
- const label = self.label.replace(/[\s="]/g, "_")
18
+ const label = formatLabel(self.label)
12
19
  return `${label}=${now - self.startTime}ms`
13
20
  }
@@ -4,7 +4,7 @@ import * as HashMap from "../HashMap.js"
4
4
  import * as List from "../List.js"
5
5
  import type * as Logger from "../Logger.js"
6
6
  import * as core from "./core.js"
7
- import * as _fiberId from "./fiberId.js"
7
+ import * as fiberId_ from "./fiberId.js"
8
8
  import * as fiberRefs from "./fiberRefs.js"
9
9
 
10
10
  /** @internal */
@@ -13,7 +13,7 @@ export const test = dual<
13
13
  <Message, Output>(self: Logger.Logger<Message, Output>, input: Message) => Output
14
14
  >(2, (self, input) =>
15
15
  self.log({
16
- fiberId: _fiberId.none,
16
+ fiberId: fiberId_.none,
17
17
  logLevel: core.logLevelInfo,
18
18
  message: input,
19
19
  cause: Cause.empty,