effect 4.0.0-beta.20 → 4.0.0-beta.22

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 (114) hide show
  1. package/dist/Array.d.ts +8 -9
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js.map +1 -1
  4. package/dist/Chunk.d.ts +4 -4
  5. package/dist/Chunk.d.ts.map +1 -1
  6. package/dist/Chunk.js.map +1 -1
  7. package/dist/Duration.d.ts +1 -1
  8. package/dist/Duration.d.ts.map +1 -1
  9. package/dist/Duration.js +1 -1
  10. package/dist/Duration.js.map +1 -1
  11. package/dist/Effect.d.ts +92 -1
  12. package/dist/Effect.d.ts.map +1 -1
  13. package/dist/Effect.js +30 -1
  14. package/dist/Effect.js.map +1 -1
  15. package/dist/Filter.d.ts +4 -4
  16. package/dist/Filter.d.ts.map +1 -1
  17. package/dist/Filter.js.map +1 -1
  18. package/dist/HashMap.d.ts +3 -3
  19. package/dist/HashMap.d.ts.map +1 -1
  20. package/dist/HashMap.js.map +1 -1
  21. package/dist/Iterable.d.ts +4 -5
  22. package/dist/Iterable.d.ts.map +1 -1
  23. package/dist/Iterable.js.map +1 -1
  24. package/dist/Record.d.ts +4 -5
  25. package/dist/Record.d.ts.map +1 -1
  26. package/dist/Record.js.map +1 -1
  27. package/dist/Runtime.d.ts.map +1 -1
  28. package/dist/Runtime.js +7 -1
  29. package/dist/Runtime.js.map +1 -1
  30. package/dist/Schedule.d.ts.map +1 -1
  31. package/dist/Schedule.js +4 -1
  32. package/dist/Schedule.js.map +1 -1
  33. package/dist/SchemaAST.js +6 -6
  34. package/dist/SchemaAST.js.map +1 -1
  35. package/dist/Stream.d.ts +7 -1
  36. package/dist/Stream.d.ts.map +1 -1
  37. package/dist/Stream.js +6 -2
  38. package/dist/Stream.js.map +1 -1
  39. package/dist/Trie.d.ts +3 -3
  40. package/dist/Trie.d.ts.map +1 -1
  41. package/dist/Trie.js.map +1 -1
  42. package/dist/TxHashMap.d.ts +3 -3
  43. package/dist/TxHashMap.d.ts.map +1 -1
  44. package/dist/TxHashMap.js.map +1 -1
  45. package/dist/TxPubSub.d.ts +4 -4
  46. package/dist/TxPubSub.d.ts.map +1 -1
  47. package/dist/internal/effect.js +48 -38
  48. package/dist/internal/effect.js.map +1 -1
  49. package/dist/internal/hashMap.js.map +1 -1
  50. package/dist/internal/trie.js.map +1 -1
  51. package/dist/unstable/ai/Chat.d.ts +2 -2
  52. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  53. package/dist/unstable/ai/Chat.js +35 -42
  54. package/dist/unstable/ai/Chat.js.map +1 -1
  55. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  56. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  57. package/dist/unstable/ai/McpServer.js +2 -1
  58. package/dist/unstable/ai/McpServer.js.map +1 -1
  59. package/dist/unstable/ai/Tool.d.ts +1 -1
  60. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  61. package/dist/unstable/http/HttpEffect.js +2 -2
  62. package/dist/unstable/http/HttpEffect.js.map +1 -1
  63. package/dist/unstable/http/HttpMiddleware.js +2 -2
  64. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  65. package/dist/unstable/http/HttpServerRequest.d.ts +1 -1
  66. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  67. package/dist/unstable/http/internal/preResponseHandler.js +2 -2
  68. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -1
  69. package/dist/unstable/httpapi/HttpApiClient.d.ts +55 -0
  70. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  71. package/dist/unstable/httpapi/HttpApiClient.js +37 -0
  72. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  73. package/dist/unstable/schema/VariantSchema.d.ts +2 -2
  74. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  75. package/dist/unstable/schema/VariantSchema.js +3 -3
  76. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  77. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  78. package/dist/unstable/workflow/Workflow.js +1 -1
  79. package/dist/unstable/workflow/Workflow.js.map +1 -1
  80. package/dist/unstable/workflow/WorkflowEngine.d.ts +5 -1
  81. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  82. package/dist/unstable/workflow/WorkflowEngine.js +5 -1
  83. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  84. package/package.json +1 -1
  85. package/src/Array.ts +15 -13
  86. package/src/Chunk.ts +6 -6
  87. package/src/Duration.ts +2 -2
  88. package/src/Effect.ts +102 -1
  89. package/src/Filter.ts +4 -5
  90. package/src/HashMap.ts +3 -3
  91. package/src/Iterable.ts +6 -7
  92. package/src/Record.ts +6 -7
  93. package/src/Runtime.ts +7 -1
  94. package/src/Schedule.ts +4 -1
  95. package/src/SchemaAST.ts +6 -6
  96. package/src/Stream.ts +13 -4
  97. package/src/Trie.ts +3 -3
  98. package/src/TxHashMap.ts +4 -4
  99. package/src/TxPubSub.ts +4 -4
  100. package/src/internal/effect.ts +107 -49
  101. package/src/internal/hashMap.ts +3 -4
  102. package/src/internal/trie.ts +3 -4
  103. package/src/unstable/ai/Chat.ts +36 -51
  104. package/src/unstable/ai/LanguageModel.ts +0 -1
  105. package/src/unstable/ai/McpServer.ts +2 -1
  106. package/src/unstable/ai/Tool.ts +1 -1
  107. package/src/unstable/http/HttpEffect.ts +2 -2
  108. package/src/unstable/http/HttpMiddleware.ts +3 -3
  109. package/src/unstable/http/HttpServerRequest.ts +1 -1
  110. package/src/unstable/http/internal/preResponseHandler.ts +3 -3
  111. package/src/unstable/httpapi/HttpApiClient.ts +82 -1
  112. package/src/unstable/schema/VariantSchema.ts +3 -3
  113. package/src/unstable/workflow/Workflow.ts +5 -1
  114. package/src/unstable/workflow/WorkflowEngine.ts +5 -1
@@ -153,10 +153,14 @@ export const makeUnsafe = options => WorkflowEngine.of({
153
153
  });
154
154
  const defaultRetrySchedule = /*#__PURE__*/Schedule.exponential(200, 1.5).pipe(/*#__PURE__*/Schedule.either(/*#__PURE__*/Schedule.spaced(30000)));
155
155
  /**
156
+ * A in-memory implementation of the WorkflowEngine. This is useful for testing
157
+ * and local development, but is not suitable for production use as it does not
158
+ * provide durability guarantees.
159
+ *
156
160
  * @since 4.0.0
157
161
  * @category Layers
158
162
  */
159
- export const layer = /*#__PURE__*/Layer.effect(WorkflowEngine)(/*#__PURE__*/Effect.gen(function* () {
163
+ export const layerMemory = /*#__PURE__*/Layer.effect(WorkflowEngine)(/*#__PURE__*/Effect.gen(function* () {
160
164
  const scope = yield* Effect.scope;
161
165
  const workflows = new Map();
162
166
  const executions = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowEngine.js","names":["Effect","Exit","Fiber","FiberMap","Latch","Layer","Option","Schedule","Schema","Scope","ServiceMap","Workflow","WorkflowEngine","Service","WorkflowInstance","initial","workflow","executionId","of","scope","makeUnsafe","suspended","interrupted","cause","undefined","activityState","count","latch","options","register","fnUntraced","execute","services","payload","suspend","pipe","updateServices","input","merge","self","opts","suspendedRetrySchedule","defaultRetrySchedule","annotateCurrentSpan","result","parentInstance","serviceOption","isSome","instance","value","addFinalizer","_tag","void","interrupt","discard","run","parent","getOrUndefined","wrapActivityResult","exit","sleep","toStepWithSleep","catch","die","name","poll","resume","activityExecute","activity","attempt","orDie","decodeEffect","exitSchema","toJsonExit","Complete","deferredResult","deferred","withSpan","attributes","captureStackTrace","deferredDone","workflowName","deferredName","encodeEffect","_","scheduleClock","clock","exponential","either","spaced","layer","effect","gen","workflows","Map","executions","activities","state","get","fiber","pollUnsafe","entry","onExit","withFiber","interruptible","intoResult","provideService","engine","tap","forkIn","deferredResults","clocks","make","set","fail","join","_workflow","activityId","activityInstance","executeEncoded","succeed","id","has","delay","duration","onlyIfMissing","asVoid","map"],"sources":["../../../src/unstable/workflow/WorkflowEngine.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"WorkflowEngine.js","names":["Effect","Exit","Fiber","FiberMap","Latch","Layer","Option","Schedule","Schema","Scope","ServiceMap","Workflow","WorkflowEngine","Service","WorkflowInstance","initial","workflow","executionId","of","scope","makeUnsafe","suspended","interrupted","cause","undefined","activityState","count","latch","options","register","fnUntraced","execute","services","payload","suspend","pipe","updateServices","input","merge","self","opts","suspendedRetrySchedule","defaultRetrySchedule","annotateCurrentSpan","result","parentInstance","serviceOption","isSome","instance","value","addFinalizer","_tag","void","interrupt","discard","run","parent","getOrUndefined","wrapActivityResult","exit","sleep","toStepWithSleep","catch","die","name","poll","resume","activityExecute","activity","attempt","orDie","decodeEffect","exitSchema","toJsonExit","Complete","deferredResult","deferred","withSpan","attributes","captureStackTrace","deferredDone","workflowName","deferredName","encodeEffect","_","scheduleClock","clock","exponential","either","spaced","layerMemory","effect","gen","workflows","Map","executions","activities","state","get","fiber","pollUnsafe","entry","onExit","withFiber","interruptible","intoResult","provideService","engine","tap","forkIn","deferredResults","clocks","make","set","fail","join","_workflow","activityId","activityInstance","executeEncoded","succeed","id","has","delay","duration","onlyIfMissing","asVoid","map"],"sources":["../../../src/unstable/workflow/WorkflowEngine.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "effect",
3
3
  "type": "module",
4
- "version": "4.0.0-beta.20",
4
+ "version": "4.0.0-beta.22",
5
5
  "license": "MIT",
6
6
  "description": "The missing standard library for TypeScript, for writing production-grade software.",
7
7
  "homepage": "https://effect.website",
package/src/Array.ts CHANGED
@@ -85,7 +85,6 @@
85
85
  */
86
86
  import * as Equal from "./Equal.ts"
87
87
  import * as Equivalence from "./Equivalence.ts"
88
- import type * as Filter from "./Filter.ts"
89
88
  import type { LazyArg } from "./Function.ts"
90
89
  import { dual, identity } from "./Function.ts"
91
90
  import type { TypeLambda } from "./HKT.ts"
@@ -2144,7 +2143,7 @@ export const takeWhileFilter: {
2144
2143
  * @category getters
2145
2144
  * @since 4.0.0
2146
2145
  */
2147
- <A, B, X>(f: Filter.Filter<NoInfer<A>, B, X, [i: number]>): (self: Iterable<A>) => Array<B>
2146
+ <A, B, X>(f: (input: NoInfer<A>, i: number) => Result.Result<B, X>): (self: Iterable<A>) => Array<B>
2148
2147
  /**
2149
2148
  * Takes elements from the start while a `Filter` succeeds, collecting transformed values.
2150
2149
  *
@@ -2154,8 +2153,11 @@ export const takeWhileFilter: {
2154
2153
  * @category getters
2155
2154
  * @since 4.0.0
2156
2155
  */
2157
- <A, B, X>(self: Iterable<A>, f: Filter.Filter<A, B, X, [i: number]>): Array<B>
2158
- } = dual(2, <A, B, X>(self: Iterable<A>, f: Filter.Filter<A, B, X, [i: number]>): Array<B> => {
2156
+ <A, B, X>(
2157
+ self: Iterable<A>,
2158
+ f: (input: NoInfer<A>, i: number) => Result.Result<B, X>
2159
+ ): Array<B>
2160
+ } = dual(2, <A, B, X>(self: Iterable<A>, f: (input: NoInfer<A>, i: number) => Result.Result<B, X>): Array<B> => {
2159
2161
  let i = 0
2160
2162
  const out: Array<B> = []
2161
2163
  for (const a of self) {
@@ -2535,7 +2537,7 @@ export const dropWhileFilter: {
2535
2537
  * @category getters
2536
2538
  * @since 4.0.0
2537
2539
  */
2538
- <A, B, X>(f: Filter.Filter<NoInfer<A>, B, X, [i: number]>): (self: Iterable<A>) => Array<A>
2540
+ <A, B, X>(f: (input: NoInfer<A>, i: number) => Result.Result<B, X>): (self: Iterable<A>) => Array<A>
2539
2541
  /**
2540
2542
  * Drops elements from the start while a `Filter` succeeds.
2541
2543
  *
@@ -2545,10 +2547,10 @@ export const dropWhileFilter: {
2545
2547
  * @category getters
2546
2548
  * @since 4.0.0
2547
2549
  */
2548
- <A, B, X>(self: Iterable<A>, f: Filter.Filter<A, B, X, [i: number]>): Array<A>
2550
+ <A, B, X>(self: Iterable<A>, f: (input: A, i: number) => Result.Result<B, X>): Array<A>
2549
2551
  } = dual(
2550
2552
  2,
2551
- <A, B, X>(self: Iterable<A>, f: Filter.Filter<A, B, X, [i: number]>): Array<A> => {
2553
+ <A, B, X>(self: Iterable<A>, f: (input: A, i: number) => Result.Result<B, X>): Array<A> => {
2552
2554
  const input = fromIterable(self)
2553
2555
  let i = 0
2554
2556
  while (i < input.length) {
@@ -6410,7 +6412,7 @@ export const filterMap: {
6410
6412
  * @category filtering
6411
6413
  * @since 4.0.0
6412
6414
  */
6413
- <A, B, X>(f: Filter.Filter<NoInfer<A>, B, X, [i: number]>): (self: Iterable<A>) => Array<B>
6415
+ <A, B, X>(f: (input: NoInfer<A>, i: number) => Result.Result<B, X>): (self: Iterable<A>) => Array<B>
6414
6416
  /**
6415
6417
  * Keeps transformed values for elements where a `Filter` succeeds.
6416
6418
  *
@@ -6431,8 +6433,8 @@ export const filterMap: {
6431
6433
  * @category filtering
6432
6434
  * @since 4.0.0
6433
6435
  */
6434
- <A, B, X>(self: Iterable<A>, f: Filter.Filter<A, B, X, [i: number]>): Array<B>
6435
- } = dual(2, <A, B, X>(self: Iterable<A>, f: Filter.Filter<A, B, X, [i: number]>): Array<B> => {
6436
+ <A, B, X>(self: Iterable<A>, f: (input: A, i: number) => Result.Result<B, X>): Array<B>
6437
+ } = dual(2, <A, B, X>(self: Iterable<A>, f: (input: A, i: number) => Result.Result<B, X>): Array<B> => {
6436
6438
  const as = fromIterable(self)
6437
6439
  const out: Array<B> = []
6438
6440
  for (let i = 0; i < as.length; i++) {
@@ -6605,7 +6607,7 @@ export const partition: {
6605
6607
  * @category filtering
6606
6608
  * @since 2.0.0
6607
6609
  */
6608
- <A, Pass, Fail>(f: Filter.Filter<NoInfer<A>, Pass, Fail, [i: number]>): (self: Iterable<A>) => [excluded: Array<Fail>, satisfying: Array<Pass>]
6610
+ <A, Pass, Fail>(f: (input: NoInfer<A>, i: number) => Result.Result<Pass, Fail>): (self: Iterable<A>) => [excluded: Array<Fail>, satisfying: Array<Pass>]
6609
6611
  /**
6610
6612
  * Splits an iterable using a `Filter` into failures and successes.
6611
6613
  *
@@ -6629,12 +6631,12 @@ export const partition: {
6629
6631
  * @category filtering
6630
6632
  * @since 2.0.0
6631
6633
  */
6632
- <A, Pass, Fail>(self: Iterable<A>, f: Filter.Filter<A, Pass, Fail, [i: number]>): [excluded: Array<Fail>, satisfying: Array<Pass>]
6634
+ <A, Pass, Fail>(self: Iterable<A>, f: (input: A, i: number) => Result.Result<Pass, Fail>): [excluded: Array<Fail>, satisfying: Array<Pass>]
6633
6635
  } = dual(
6634
6636
  2,
6635
6637
  <A, Pass, Fail>(
6636
6638
  self: Iterable<A>,
6637
- f: Filter.Filter<A, Pass, Fail, [i: number]>
6639
+ f: (input: A, i: number) => Result.Result<Pass, Fail>
6638
6640
  ): [excluded: Array<Fail>, satisfying: Array<Pass>] => {
6639
6641
  const excluded: Array<Fail> = []
6640
6642
  const satisfying: Array<Pass> = []
package/src/Chunk.ts CHANGED
@@ -1564,7 +1564,7 @@ export const filterMap: {
1564
1564
  * @since 2.0.0
1565
1565
  * @category filtering
1566
1566
  */
1567
- <A, B, X>(f: Filter.Filter<A, B, X, [i: number]>): (self: Chunk<A>) => Chunk<B>
1567
+ <A, B, X>(f: (input: A, i: number) => Result<B, X>): (self: Chunk<A>) => Chunk<B>
1568
1568
  /**
1569
1569
  * Returns a filtered and mapped subset of the elements.
1570
1570
  *
@@ -1591,10 +1591,10 @@ export const filterMap: {
1591
1591
  * @since 2.0.0
1592
1592
  * @category filtering
1593
1593
  */
1594
- <A, B, X>(self: Chunk<A>, f: Filter.Filter<A, B, X, [i: number]>): Chunk<B>
1594
+ <A, B, X>(self: Chunk<A>, f: (input: A, i: number) => Result<B, X>): Chunk<B>
1595
1595
  } = dual(
1596
1596
  2,
1597
- <A, B, X>(self: Chunk<A>, f: Filter.Filter<A, B, X, [i: number]>): Chunk<B> => {
1597
+ <A, B, X>(self: Chunk<A>, f: (input: A, i: number) => Result<B, X>): Chunk<B> => {
1598
1598
  const as = RA.fromIterable(self)
1599
1599
  const out: Array<B> = []
1600
1600
  for (let i = 0; i < as.length; i++) {
@@ -2821,7 +2821,7 @@ export const partition: {
2821
2821
  * @category filtering
2822
2822
  * @since 2.0.0
2823
2823
  */
2824
- <A, Pass, Fail>(f: Filter.Filter<NoInfer<A>, Pass, Fail, [i: number]>): (self: Chunk<A>) => [excluded: Chunk<Fail>, satisfying: Chunk<Pass>]
2824
+ <A, Pass, Fail>(f: (input: NoInfer<A>, i: number) => Result<Pass, Fail>): (self: Chunk<A>) => [excluded: Chunk<Fail>, satisfying: Chunk<Pass>]
2825
2825
  /**
2826
2826
  * Splits a chunk using a `Filter` into failures and successes.
2827
2827
  *
@@ -2843,12 +2843,12 @@ export const partition: {
2843
2843
  * @category filtering
2844
2844
  * @since 2.0.0
2845
2845
  */
2846
- <A, Pass, Fail>(self: Chunk<A>, f: Filter.Filter<A, Pass, Fail, [i: number]>): [excluded: Chunk<Fail>, satisfying: Chunk<Pass>]
2846
+ <A, Pass, Fail>(self: Chunk<A>, f: (input: A, i: number) => Result<Pass, Fail>): [excluded: Chunk<Fail>, satisfying: Chunk<Pass>]
2847
2847
  } = dual(
2848
2848
  2,
2849
2849
  <A, Pass, Fail>(
2850
2850
  self: Chunk<A>,
2851
- f: Filter.Filter<A, Pass, Fail, [i: number]>
2851
+ f: (input: A, i: number) => Result<Pass, Fail>
2852
2852
  ): [excluded: Chunk<Fail>, satisfying: Chunk<Pass>] => {
2853
2853
  const [excluded, satisfying] = RA.partition(self, f)
2854
2854
  return [fromArrayUnsafe(excluded), fromArrayUnsafe(satisfying)]
package/src/Duration.ts CHANGED
@@ -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: Input): number =>
615
- match(fromInputUnsafe(self), {
614
+ export const toMillis = (self: Duration): number =>
615
+ match(self, {
616
616
  onMillis: identity,
617
617
  onNanos: (nanos) => Number(nanos) / 1_000_000,
618
618
  onInfinity: () => Infinity,
package/src/Effect.ts CHANGED
@@ -743,7 +743,6 @@ export declare namespace All {
743
743
  * ```
744
744
  *
745
745
  * @see {@link forEach} for iterating over elements and applying an effect.
746
- * @see {@link allWith} for a data-last version of this function.
747
746
  *
748
747
  * @since 2.0.0
749
748
  * @category Collecting
@@ -1063,6 +1062,108 @@ export const validate: {
1063
1062
  ): Effect<void, Arr.NonEmptyArray<E>, R>
1064
1063
  } = internal.validate
1065
1064
 
1065
+ /**
1066
+ * Returns the first element that satisfies an effectful predicate.
1067
+ *
1068
+ * The predicate receives the element and its index. Evaluation short-circuits
1069
+ * as soon as an element matches.
1070
+ *
1071
+ * @example
1072
+ * ```ts
1073
+ * import { Effect } from "effect"
1074
+ *
1075
+ * const program = Effect.findFirst([1, 2, 3, 4], (n) => Effect.succeed(n > 2))
1076
+ *
1077
+ * Effect.runPromise(program).then(console.log)
1078
+ * // { _id: 'Option', _tag: 'Some', value: 3 }
1079
+ * ```
1080
+ *
1081
+ * @since 2.0.0
1082
+ * @category Collecting
1083
+ */
1084
+ export const findFirst: {
1085
+ /**
1086
+ * Returns the first element that satisfies an effectful predicate.
1087
+ *
1088
+ * The predicate receives the element and its index. Evaluation short-circuits
1089
+ * as soon as an element matches.
1090
+ *
1091
+ * @example
1092
+ * ```ts
1093
+ * import { Effect } from "effect"
1094
+ *
1095
+ * const program = Effect.findFirst([1, 2, 3, 4], (n) => Effect.succeed(n > 2))
1096
+ *
1097
+ * Effect.runPromise(program).then(console.log)
1098
+ * // { _id: 'Option', _tag: 'Some', value: 3 }
1099
+ * ```
1100
+ *
1101
+ * @since 2.0.0
1102
+ * @category Collecting
1103
+ */
1104
+ <A, E, R>(predicate: (a: NoInfer<A>, i: number) => Effect<boolean, E, R>): (elements: Iterable<A>) => Effect<Option<A>, E, R>
1105
+ /**
1106
+ * Returns the first element that satisfies an effectful predicate.
1107
+ *
1108
+ * The predicate receives the element and its index. Evaluation short-circuits
1109
+ * as soon as an element matches.
1110
+ *
1111
+ * @example
1112
+ * ```ts
1113
+ * import { Effect } from "effect"
1114
+ *
1115
+ * const program = Effect.findFirst([1, 2, 3, 4], (n) => Effect.succeed(n > 2))
1116
+ *
1117
+ * Effect.runPromise(program).then(console.log)
1118
+ * // { _id: 'Option', _tag: 'Some', value: 3 }
1119
+ * ```
1120
+ *
1121
+ * @since 2.0.0
1122
+ * @category Collecting
1123
+ */
1124
+ <A, E, R>(
1125
+ elements: Iterable<A>,
1126
+ predicate: (a: NoInfer<A>, i: number) => Effect<boolean, E, R>
1127
+ ): Effect<Option<A>, E, R>
1128
+ } = internal.findFirst
1129
+
1130
+ /**
1131
+ * Returns the first value that passes an effectful `FilterEffect`.
1132
+ *
1133
+ * The filter receives the element and index. Evaluation short-circuits on the
1134
+ * first `Result.succeed` and returns the transformed value in `Option.some`.
1135
+ *
1136
+ * @since 4.0.0
1137
+ * @category Collecting
1138
+ */
1139
+ export const findFirstFilter: {
1140
+ /**
1141
+ * Returns the first value that passes an effectful `FilterEffect`.
1142
+ *
1143
+ * The filter receives the element and index. Evaluation short-circuits on the
1144
+ * first `Result.succeed` and returns the transformed value in `Option.some`.
1145
+ *
1146
+ * @since 4.0.0
1147
+ * @category Collecting
1148
+ */
1149
+ <A, B, X, E, R>(
1150
+ filter: (input: NoInfer<A>, i: number) => Effect<Result.Result<B, X>, E, R>
1151
+ ): (elements: Iterable<A>) => Effect<Option<B>, E, R>
1152
+ /**
1153
+ * Returns the first value that passes an effectful `FilterEffect`.
1154
+ *
1155
+ * The filter receives the element and index. Evaluation short-circuits on the
1156
+ * first `Result.succeed` and returns the transformed value in `Option.some`.
1157
+ *
1158
+ * @since 4.0.0
1159
+ * @category Collecting
1160
+ */
1161
+ <A, B, X, E, R>(
1162
+ elements: Iterable<A>,
1163
+ filter: (input: NoInfer<A>, i: number) => Effect<Result.Result<B, X>, E, R>
1164
+ ): Effect<Option<B>, E, R>
1165
+ } = internal.findFirstFilter
1166
+
1066
1167
  /**
1067
1168
  * Executes an effectful operation for each element in an `Iterable`.
1068
1169
  *
package/src/Filter.ts CHANGED
@@ -29,8 +29,8 @@ import type { EqualsWith, ExcludeTag, ExtractReason, ExtractTag, ReasonTags, Tag
29
29
  * @since 4.0.0
30
30
  * @category Models
31
31
  */
32
- export interface Filter<in Input, out Pass = Input, out Fail = Input, in Args extends ReadonlyArray<any> = []> {
33
- (input: Input, ...args: Args): Result.Result<Pass, Fail>
32
+ export interface Filter<in Input, out Pass = Input, out Fail = Input> {
33
+ (input: Input): Result.Result<Pass, Fail>
34
34
  }
35
35
 
36
36
  /**
@@ -68,10 +68,9 @@ export interface FilterEffect<
68
68
  out Pass,
69
69
  out Fail,
70
70
  out E = never,
71
- out R = never,
72
- in Args extends Array<any> = []
71
+ out R = never
73
72
  > {
74
- (input: Input, ...args: Args): Effect<Result.Result<Pass, Fail>, E, R>
73
+ (input: Input): Effect<Result.Result<Pass, Fail>, E, R>
75
74
  }
76
75
 
77
76
  // -------------------------------------------------------------------------------------
package/src/HashMap.ts CHANGED
@@ -3,11 +3,11 @@
3
3
  */
4
4
 
5
5
  import type { Equal } from "./Equal.ts"
6
- import type * as Filter from "./Filter.ts"
7
6
  import type { Inspectable } from "./Inspectable.ts"
8
7
  import * as internal from "./internal/hashMap.ts"
9
8
  import type { Option } from "./Option.ts"
10
9
  import type { Pipeable } from "./Pipeable.ts"
10
+ import type { Result } from "./Result.ts"
11
11
  import type { NoInfer } from "./Types.ts"
12
12
 
13
13
  const TypeId = internal.HashMapTypeId
@@ -2058,7 +2058,7 @@ export const filterMap: {
2058
2058
  * @since 2.0.0
2059
2059
  * @category filtering
2060
2060
  */
2061
- <A, K, B, X>(f: Filter.Filter<A, B, X, [key: K]>): (self: HashMap<K, A>) => HashMap<K, B>
2061
+ <A, K, B, X>(f: (input: A, key: K) => Result<B, X>): (self: HashMap<K, A>) => HashMap<K, B>
2062
2062
  /**
2063
2063
  * Maps over the entries of the `HashMap` using the specified filter and keeps
2064
2064
  * only successful results.
@@ -2082,7 +2082,7 @@ export const filterMap: {
2082
2082
  * @since 2.0.0
2083
2083
  * @category filtering
2084
2084
  */
2085
- <K, A, B, X>(self: HashMap<K, A>, f: Filter.Filter<A, B, X, [key: K]>): HashMap<K, B>
2085
+ <K, A, B, X>(self: HashMap<K, A>, f: (input: A, key: K) => Result<B, X>): HashMap<K, B>
2086
2086
  } = internal.filterMap
2087
2087
 
2088
2088
  /**
package/src/Iterable.ts CHANGED
@@ -32,7 +32,6 @@
32
32
 
33
33
  import type { NonEmptyArray } from "./Array.ts"
34
34
  import * as Equal from "./Equal.ts"
35
- import type * as Filter from "./Filter.ts"
36
35
  import { dual } from "./Function.ts"
37
36
  import type { Option } from "./Option.ts"
38
37
  import * as O from "./Option.ts"
@@ -3205,7 +3204,7 @@ export const filterMap: {
3205
3204
  * @category filtering
3206
3205
  * @since 2.0.0
3207
3206
  */
3208
- <A, B, X>(f: Filter.Filter<A, B, X, [i: number]>): (self: Iterable<A>) => Iterable<B>
3207
+ <A, B, X>(f: (input: A, i: number) => Result<B, X>): (self: Iterable<A>) => Iterable<B>
3209
3208
  /**
3210
3209
  * Transforms elements of an iterable using a function that returns a `Result`, keeping only successful values.
3211
3210
  *
@@ -3251,10 +3250,10 @@ export const filterMap: {
3251
3250
  * @category filtering
3252
3251
  * @since 2.0.0
3253
3252
  */
3254
- <A, B, X>(self: Iterable<A>, f: Filter.Filter<A, B, X, [i: number]>): Iterable<B>
3253
+ <A, B, X>(self: Iterable<A>, f: (input: A, i: number) => Result<B, X>): Iterable<B>
3255
3254
  } = dual(
3256
3255
  2,
3257
- <A, B, X>(self: Iterable<A>, f: Filter.Filter<A, B, X, [i: number]>): Iterable<B> => ({
3256
+ <A, B, X>(self: Iterable<A>, f: (input: A, i: number) => Result<B, X>): Iterable<B> => ({
3258
3257
  [Symbol.iterator]() {
3259
3258
  const iterator = self[Symbol.iterator]()
3260
3259
  let i = 0
@@ -3348,7 +3347,7 @@ export const filterMapWhile: {
3348
3347
  * @category filtering
3349
3348
  * @since 2.0.0
3350
3349
  */
3351
- <A, B, X>(f: Filter.Filter<A, B, X, [i: number]>): (self: Iterable<A>) => Iterable<B>
3350
+ <A, B, X>(f: (input: A, i: number) => Result<B, X>): (self: Iterable<A>) => Iterable<B>
3352
3351
  /**
3353
3352
  * Transforms all elements of the `Iterable` for as long as the specified function succeeds.
3354
3353
  *
@@ -3385,8 +3384,8 @@ export const filterMapWhile: {
3385
3384
  * @category filtering
3386
3385
  * @since 2.0.0
3387
3386
  */
3388
- <A, B, X>(self: Iterable<A>, f: Filter.Filter<A, B, X, [i: number]>): Iterable<B>
3389
- } = dual(2, <A, B, X>(self: Iterable<A>, f: Filter.Filter<A, B, X, [i: number]>) => ({
3387
+ <A, B, X>(self: Iterable<A>, f: (input: A, i: number) => Result<B, X>): Iterable<B>
3388
+ } = dual(2, <A, B, X>(self: Iterable<A>, f: (input: A, i: number) => Result<B, X>) => ({
3390
3389
  [Symbol.iterator]() {
3391
3390
  const iterator = self[Symbol.iterator]()
3392
3391
  let i = 0
package/src/Record.ts CHANGED
@@ -7,7 +7,6 @@
7
7
  import type * as Combiner from "./Combiner.ts"
8
8
  import * as Equal from "./Equal.ts"
9
9
  import type { Equivalence } from "./Equivalence.ts"
10
- import type * as Filter from "./Filter.ts"
11
10
  import { dual, identity } from "./Function.ts"
12
11
  import type { TypeLambda } from "./HKT.ts"
13
12
  import * as Option from "./Option.ts"
@@ -1037,7 +1036,7 @@ export const filterMap: {
1037
1036
  * @category filtering
1038
1037
  * @since 2.0.0
1039
1038
  */
1040
- <K extends string, A, B, X>(f: Filter.Filter<A, B, X, [key: K]>): (self: ReadonlyRecord<K, A>) => Record<ReadonlyRecord.NonLiteralKey<K>, B>
1039
+ <K extends string, A, B, X>(f: (input: A, key: K) => Result<B, X>): (self: ReadonlyRecord<K, A>) => Record<ReadonlyRecord.NonLiteralKey<K>, B>
1041
1040
  /**
1042
1041
  * Transforms a record by applying the function `f` to each key and value in the original record.
1043
1042
  * If the function succeeds, the key-value pair is included in the output record.
@@ -1055,12 +1054,12 @@ export const filterMap: {
1055
1054
  * @category filtering
1056
1055
  * @since 2.0.0
1057
1056
  */
1058
- <K extends string, A, B, X>(self: ReadonlyRecord<K, A>, f: Filter.Filter<A, B, X, [key: K]>): Record<ReadonlyRecord.NonLiteralKey<K>, B>
1057
+ <K extends string, A, B, X>(self: ReadonlyRecord<K, A>, f: (input: A, key: K) => Result<B, X>): Record<ReadonlyRecord.NonLiteralKey<K>, B>
1059
1058
  } = dual(
1060
1059
  2,
1061
1060
  <K extends string, A, B, X>(
1062
1061
  self: ReadonlyRecord<K, A>,
1063
- f: Filter.Filter<A, B, X, [key: K]>
1062
+ f: (input: A, key: K) => Result<B, X>
1064
1063
  ): Record<ReadonlyRecord.NonLiteralKey<K>, B> => {
1065
1064
  const out: Record<string, B> = empty()
1066
1065
  for (const key of keys(self)) {
@@ -1304,7 +1303,7 @@ export const partition: {
1304
1303
  * @category filtering
1305
1304
  * @since 2.0.0
1306
1305
  */
1307
- <K extends string, A, B, C>(f: Filter.Filter<A, C, B, [key: K]>): (
1306
+ <K extends string, A, B, C>(f: (input: A, key: K) => Result<C, B>): (
1308
1307
  self: ReadonlyRecord<K, A>
1309
1308
  ) => [left: Record<ReadonlyRecord.NonLiteralKey<K>, B>, right: Record<ReadonlyRecord.NonLiteralKey<K>, C>]
1310
1309
  /**
@@ -1323,12 +1322,12 @@ export const partition: {
1323
1322
  * @category filtering
1324
1323
  * @since 2.0.0
1325
1324
  */
1326
- <K extends string, A, B, C>(self: ReadonlyRecord<K, A>, f: Filter.Filter<A, C, B, [key: K]>): [left: Record<ReadonlyRecord.NonLiteralKey<K>, B>, right: Record<ReadonlyRecord.NonLiteralKey<K>, C>]
1325
+ <K extends string, A, B, C>(self: ReadonlyRecord<K, A>, f: (input: A, key: K) => Result<C, B>): [left: Record<ReadonlyRecord.NonLiteralKey<K>, B>, right: Record<ReadonlyRecord.NonLiteralKey<K>, C>]
1327
1326
  } = dual(
1328
1327
  2,
1329
1328
  <K extends string, A, B, C>(
1330
1329
  self: ReadonlyRecord<K, A>,
1331
- f: Filter.Filter<A, C, B, [key: K]>
1330
+ f: (input: A, key: K) => Result<C, B>
1332
1331
  ): [left: Record<ReadonlyRecord.NonLiteralKey<K>, B>, right: Record<ReadonlyRecord.NonLiteralKey<K>, C>] => {
1333
1332
  const left: Record<string, B> = empty()
1334
1333
  const right: Record<string, C> = empty()
package/src/Runtime.ts CHANGED
@@ -29,7 +29,7 @@
29
29
  import * as Cause from "effect/Cause"
30
30
  import * as Effect from "effect/Effect"
31
31
  import * as Exit from "effect/Exit"
32
- import { dual } from "effect/Function"
32
+ import { constVoid, dual } from "effect/Function"
33
33
  import type * as Fiber from "./Fiber.ts"
34
34
 
35
35
  /**
@@ -212,6 +212,12 @@ export const makeRunMain = (
212
212
  return Effect.logError(cause)
213
213
  })
214
214
  )
215
+ try {
216
+ const keepAlive = globalThis.setInterval(constVoid, 2_147_483_647)
217
+ fiber.addObserver(() => {
218
+ clearInterval(keepAlive)
219
+ })
220
+ } catch {}
215
221
  const teardown = options?.teardown ?? defaultTeardown
216
222
  return f({ fiber, teardown })
217
223
  })
package/src/Schedule.ts CHANGED
@@ -4828,7 +4828,10 @@ export const reduce: {
4828
4828
  Pull.matchEffect(step(now, input), {
4829
4829
  onSuccess([output, delay]) {
4830
4830
  const next = combine(state, output)
4831
- if (!isEffect(next)) return effect.succeed([next, delay] as [State, Duration.Duration])
4831
+ if (!isEffect(next)) {
4832
+ state = next
4833
+ return effect.succeed([next, delay] as [State, Duration.Duration])
4834
+ }
4832
4835
  return effect.map(next, (nextState) => {
4833
4836
  state = nextState
4834
4837
  return [nextState, delay]
package/src/SchemaAST.ts CHANGED
@@ -1455,20 +1455,20 @@ export class Arrays extends Base {
1455
1455
  // handle post rest elements
1456
1456
  // ---------------------------------------------
1457
1457
  for (let j = 0; j < tail.length; j++) {
1458
- i += j
1459
- if (len < i) {
1458
+ const index = i + j
1459
+ if (len < index) {
1460
1460
  continue
1461
1461
  } else {
1462
1462
  const tailj = tail[j]
1463
1463
  const keyAnnotations = tailj.ast.context?.annotations
1464
- const eff = tailj.parser(Option.some(input[i]), options)
1464
+ const eff = tailj.parser(Option.some(input[index]), options)
1465
1465
  const exit = effectIsExit(eff) ? eff : yield* Effect.exit(eff)
1466
1466
  if (exit._tag === "Failure") {
1467
1467
  const issueRest = Cause.findError(exit.cause)
1468
1468
  if (Result.isFailure(issueRest)) {
1469
1469
  return yield* exit
1470
1470
  }
1471
- const issue = new Issue.Pointer([i], issueRest.success)
1471
+ const issue = new Issue.Pointer([index], issueRest.success)
1472
1472
  if (errorsAllOption) {
1473
1473
  if (issues) issues.push(issue)
1474
1474
  else issues = [issue]
@@ -1476,9 +1476,9 @@ export class Arrays extends Base {
1476
1476
  return yield* Effect.fail(new Issue.Composite(ast, oinput, [issue]))
1477
1477
  }
1478
1478
  } else if (exit.value._tag === "Some") {
1479
- output[i] = exit.value.value
1479
+ output[index] = exit.value.value
1480
1480
  } else {
1481
- const issue = new Issue.Pointer([i], new Issue.MissingKey(keyAnnotations))
1481
+ const issue = new Issue.Pointer([index], new Issue.MissingKey(keyAnnotations))
1482
1482
  if (errorsAllOption) {
1483
1483
  if (issues) issues.push(issue)
1484
1484
  else issues = [issue]
package/src/Stream.ts CHANGED
@@ -963,6 +963,10 @@ export const fromIteratorSucceed = <A>(iterator: IterableIterator<A>, maxChunkSi
963
963
  /**
964
964
  * Creates a new `Stream` from an iterable collection of values.
965
965
  *
966
+ * **Options**
967
+ *
968
+ * - `chunkSize`: Maximum number of values emitted per chunk.
969
+ *
966
970
  * @example
967
971
  * ```ts
968
972
  * import { Console, Effect, Stream } from "effect"
@@ -982,10 +986,15 @@ export const fromIteratorSucceed = <A>(iterator: IterableIterator<A>, maxChunkSi
982
986
  * @since 2.0.0
983
987
  * @category Constructors
984
988
  */
985
- export const fromIterable = <A>(iterable: Iterable<A>): Stream<A> =>
986
- Array.isArray(iterable)
989
+ export const fromIterable = <A>(
990
+ iterable: Iterable<A>,
991
+ options?: {
992
+ readonly chunkSize?: number | undefined
993
+ }
994
+ ): Stream<A> =>
995
+ Array.isArray(iterable) && options?.chunkSize === undefined
987
996
  ? fromArray(iterable)
988
- : fromChannel(Channel.fromIterableArray(iterable))
997
+ : fromChannel(Channel.fromIterableArray(iterable, options?.chunkSize))
989
998
 
990
999
  /**
991
1000
  * Creates a stream from an effect producing an iterable of values.
@@ -16556,7 +16565,7 @@ export const withSpan: {
16556
16565
  } = function() {
16557
16566
  const dataFirst = isStream(arguments[0])
16558
16567
  const name = dataFirst ? arguments[1] : arguments[0]
16559
- const options = addSpanStackTrace(dataFirst ? arguments[1] : arguments[2])
16568
+ const options = addSpanStackTrace(dataFirst ? arguments[2] : arguments[1])
16560
16569
  if (dataFirst) {
16561
16570
  const self = arguments[0] as Stream<any, any, any>
16562
16571
  return fromChannel(Channel.withSpan(self.channel, name, options))