effect 4.0.3 → 4.0.4

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 (207) hide show
  1. package/AGENTS.md +24 -0
  2. package/CLAUDE.md +24 -0
  3. package/ai-docs/package.json +2 -2
  4. package/ai-docs/src/52_graphql/10_basics.ts +111 -0
  5. package/ai-docs/src/52_graphql/20_testing.ts +45 -0
  6. package/ai-docs/src/52_graphql/30_batching.ts +116 -0
  7. package/ai-docs/src/52_graphql/40_aliased-batching.ts +122 -0
  8. package/ai-docs/src/52_graphql/50_errors-and-retries.ts +74 -0
  9. package/ai-docs/src/52_graphql/index.md +6 -0
  10. package/dist/Context.d.ts.map +1 -1
  11. package/dist/Context.js +9 -0
  12. package/dist/Context.js.map +1 -1
  13. package/dist/RequestResolver.d.ts.map +1 -1
  14. package/dist/RequestResolver.js +4 -10
  15. package/dist/RequestResolver.js.map +1 -1
  16. package/dist/Scheduler.d.ts +9 -0
  17. package/dist/Scheduler.d.ts.map +1 -1
  18. package/dist/Scheduler.js +9 -0
  19. package/dist/Scheduler.js.map +1 -1
  20. package/dist/Schema.d.ts +8 -0
  21. package/dist/Schema.d.ts.map +1 -1
  22. package/dist/Schema.js +7 -0
  23. package/dist/Schema.js.map +1 -1
  24. package/dist/SchemaGetter.d.ts +4 -0
  25. package/dist/SchemaGetter.d.ts.map +1 -1
  26. package/dist/SchemaGetter.js +52 -33
  27. package/dist/SchemaGetter.js.map +1 -1
  28. package/dist/Sink.d.ts.map +1 -1
  29. package/dist/Sink.js +38 -17
  30. package/dist/Sink.js.map +1 -1
  31. package/dist/Stream.d.ts +11 -0
  32. package/dist/Stream.d.ts.map +1 -1
  33. package/dist/Stream.js +16 -1
  34. package/dist/Stream.js.map +1 -1
  35. package/dist/Utils.js +8 -3
  36. package/dist/Utils.js.map +1 -1
  37. package/dist/ai/AnthropicStructuredOutput.js +0 -2
  38. package/dist/ai/AnthropicStructuredOutput.js.map +1 -1
  39. package/dist/ai/Chat.d.ts +2 -2
  40. package/dist/ai/Chat.d.ts.map +1 -1
  41. package/dist/ai/LanguageModel.d.ts +38 -7
  42. package/dist/ai/LanguageModel.d.ts.map +1 -1
  43. package/dist/ai/LanguageModel.js +25 -7
  44. package/dist/ai/LanguageModel.js.map +1 -1
  45. package/dist/ai/McpServer.d.ts +55 -0
  46. package/dist/ai/McpServer.d.ts.map +1 -1
  47. package/dist/ai/McpServer.js +132 -22
  48. package/dist/ai/McpServer.js.map +1 -1
  49. package/dist/ai/Prompt.d.ts.map +1 -1
  50. package/dist/ai/Prompt.js +28 -5
  51. package/dist/ai/Prompt.js.map +1 -1
  52. package/dist/ai/Response.d.ts +4 -3
  53. package/dist/ai/Response.d.ts.map +1 -1
  54. package/dist/ai/Response.js.map +1 -1
  55. package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  56. package/dist/cluster/ClusterWorkflowEngine.js +46 -8
  57. package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
  58. package/dist/cluster/Sharding.d.ts.map +1 -1
  59. package/dist/cluster/Sharding.js +6 -4
  60. package/dist/cluster/Sharding.js.map +1 -1
  61. package/dist/encoding/Sse.d.ts +6 -0
  62. package/dist/encoding/Sse.d.ts.map +1 -1
  63. package/dist/encoding/Sse.js +62 -70
  64. package/dist/encoding/Sse.js.map +1 -1
  65. package/dist/graphql/GraphQL.d.ts +349 -0
  66. package/dist/graphql/GraphQL.d.ts.map +1 -0
  67. package/dist/graphql/GraphQL.js +207 -0
  68. package/dist/graphql/GraphQL.js.map +1 -0
  69. package/dist/graphql/GraphQLClient.d.ts +562 -0
  70. package/dist/graphql/GraphQLClient.d.ts.map +1 -0
  71. package/dist/graphql/GraphQLClient.js +498 -0
  72. package/dist/graphql/GraphQLClient.js.map +1 -0
  73. package/dist/graphql/GraphQLClientError.d.ts +445 -0
  74. package/dist/graphql/GraphQLClientError.d.ts.map +1 -0
  75. package/dist/graphql/GraphQLClientError.js +479 -0
  76. package/dist/graphql/GraphQLClientError.js.map +1 -0
  77. package/dist/graphql/GraphQLGroup.d.ts +118 -0
  78. package/dist/graphql/GraphQLGroup.d.ts.map +1 -0
  79. package/dist/graphql/GraphQLGroup.js +109 -0
  80. package/dist/graphql/GraphQLGroup.js.map +1 -0
  81. package/dist/graphql/GraphQLMiddleware.d.ts +249 -0
  82. package/dist/graphql/GraphQLMiddleware.d.ts.map +1 -0
  83. package/dist/graphql/GraphQLMiddleware.js +130 -0
  84. package/dist/graphql/GraphQLMiddleware.js.map +1 -0
  85. package/dist/graphql/GraphQLProtocol.d.ts +731 -0
  86. package/dist/graphql/GraphQLProtocol.d.ts.map +1 -0
  87. package/dist/graphql/GraphQLProtocol.js +719 -0
  88. package/dist/graphql/GraphQLProtocol.js.map +1 -0
  89. package/dist/graphql/GraphQLResolver.d.ts +453 -0
  90. package/dist/graphql/GraphQLResolver.d.ts.map +1 -0
  91. package/dist/graphql/GraphQLResolver.js +552 -0
  92. package/dist/graphql/GraphQLResolver.js.map +1 -0
  93. package/dist/graphql/index.d.ts +40 -0
  94. package/dist/graphql/index.d.ts.map +1 -0
  95. package/dist/graphql/index.js +41 -0
  96. package/dist/graphql/index.js.map +1 -0
  97. package/dist/http/HttpClient.d.ts +15 -0
  98. package/dist/http/HttpClient.d.ts.map +1 -1
  99. package/dist/http/HttpClient.js +24 -10
  100. package/dist/http/HttpClient.js.map +1 -1
  101. package/dist/http/HttpEffect.d.ts.map +1 -1
  102. package/dist/http/HttpEffect.js +14 -7
  103. package/dist/http/HttpEffect.js.map +1 -1
  104. package/dist/http/HttpMiddleware.d.ts.map +1 -1
  105. package/dist/http/HttpMiddleware.js +31 -32
  106. package/dist/http/HttpMiddleware.js.map +1 -1
  107. package/dist/http/HttpRouter.d.ts +35 -0
  108. package/dist/http/HttpRouter.d.ts.map +1 -1
  109. package/dist/http/HttpRouter.js +35 -0
  110. package/dist/http/HttpRouter.js.map +1 -1
  111. package/dist/http/HttpServerResponse.d.ts +8 -6
  112. package/dist/http/HttpServerResponse.d.ts.map +1 -1
  113. package/dist/http/HttpServerResponse.js +27 -16
  114. package/dist/http/HttpServerResponse.js.map +1 -1
  115. package/dist/http/Multipart.d.ts.map +1 -1
  116. package/dist/http/Multipart.js +15 -1
  117. package/dist/http/Multipart.js.map +1 -1
  118. package/dist/http-api/HttpApiScalar.d.ts +5 -0
  119. package/dist/http-api/HttpApiScalar.d.ts.map +1 -1
  120. package/dist/http-api/HttpApiScalar.js.map +1 -1
  121. package/dist/internal/dateTime.js +40 -35
  122. package/dist/internal/dateTime.js.map +1 -1
  123. package/dist/internal/effect.js +8 -3
  124. package/dist/internal/effect.js.map +1 -1
  125. package/dist/internal/graphql.d.ts +2 -0
  126. package/dist/internal/graphql.d.ts.map +1 -0
  127. package/dist/internal/graphql.js +195 -0
  128. package/dist/internal/graphql.js.map +1 -0
  129. package/dist/internal/graphqlHeaders.d.ts +4 -0
  130. package/dist/internal/graphqlHeaders.d.ts.map +1 -0
  131. package/dist/internal/graphqlHeaders.js +11 -0
  132. package/dist/internal/graphqlHeaders.js.map +1 -0
  133. package/dist/internal/request.js +20 -1
  134. package/dist/internal/request.js.map +1 -1
  135. package/dist/internal/schema/toCodeDocument.js +4 -1
  136. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  137. package/dist/internal/schema/toJsonSchemaDocument.js +29 -5
  138. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
  139. package/dist/internal/version.js +1 -1
  140. package/dist/net/Host.d.ts +49 -0
  141. package/dist/net/Host.d.ts.map +1 -1
  142. package/dist/net/Host.js +55 -0
  143. package/dist/net/Host.js.map +1 -1
  144. package/dist/net/NetAddress.d.ts +8 -0
  145. package/dist/net/NetAddress.d.ts.map +1 -1
  146. package/dist/net/NetAddress.js +8 -0
  147. package/dist/net/NetAddress.js.map +1 -1
  148. package/dist/rpc/RpcServer.d.ts.map +1 -1
  149. package/dist/rpc/RpcServer.js +36 -9
  150. package/dist/rpc/RpcServer.js.map +1 -1
  151. package/dist/socket/Socket.d.ts +6 -0
  152. package/dist/socket/Socket.d.ts.map +1 -1
  153. package/dist/socket/Socket.js.map +1 -1
  154. package/dist/workflow/DurableDeferred.d.ts.map +1 -1
  155. package/dist/workflow/DurableDeferred.js +32 -3
  156. package/dist/workflow/DurableDeferred.js.map +1 -1
  157. package/dist/workflow/WorkflowEngine.d.ts +24 -2
  158. package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
  159. package/dist/workflow/WorkflowEngine.js +11 -2
  160. package/dist/workflow/WorkflowEngine.js.map +1 -1
  161. package/package.json +6 -3
  162. package/src/Context.ts +9 -0
  163. package/src/RequestResolver.ts +4 -10
  164. package/src/Scheduler.ts +9 -0
  165. package/src/Schema.ts +8 -0
  166. package/src/SchemaGetter.ts +47 -35
  167. package/src/Sink.ts +45 -18
  168. package/src/Stream.ts +33 -4
  169. package/src/Utils.ts +8 -5
  170. package/src/ai/AnthropicStructuredOutput.ts +2 -2
  171. package/src/ai/Chat.ts +2 -2
  172. package/src/ai/LanguageModel.ts +96 -24
  173. package/src/ai/McpServer.ts +244 -90
  174. package/src/ai/Prompt.ts +24 -10
  175. package/src/ai/Response.ts +6 -3
  176. package/src/cluster/ClusterWorkflowEngine.ts +51 -12
  177. package/src/cluster/Sharding.ts +12 -9
  178. package/src/encoding/Sse.ts +69 -79
  179. package/src/graphql/GraphQL.ts +494 -0
  180. package/src/graphql/GraphQLClient.ts +912 -0
  181. package/src/graphql/GraphQLClientError.ts +542 -0
  182. package/src/graphql/GraphQLGroup.ts +167 -0
  183. package/src/graphql/GraphQLMiddleware.ts +253 -0
  184. package/src/graphql/GraphQLProtocol.ts +1286 -0
  185. package/src/graphql/GraphQLResolver.ts +1010 -0
  186. package/src/graphql/index.ts +48 -0
  187. package/src/http/HttpClient.ts +54 -10
  188. package/src/http/HttpEffect.ts +11 -5
  189. package/src/http/HttpMiddleware.ts +33 -34
  190. package/src/http/HttpRouter.ts +35 -0
  191. package/src/http/HttpServerResponse.ts +28 -16
  192. package/src/http/Multipart.ts +17 -1
  193. package/src/http-api/HttpApiScalar.ts +5 -0
  194. package/src/internal/dateTime.ts +13 -10
  195. package/src/internal/effect.ts +8 -3
  196. package/src/internal/graphql.ts +263 -0
  197. package/src/internal/graphqlHeaders.ts +11 -0
  198. package/src/internal/request.ts +31 -3
  199. package/src/internal/schema/toCodeDocument.ts +7 -1
  200. package/src/internal/schema/toJsonSchemaDocument.ts +34 -2
  201. package/src/internal/version.ts +1 -1
  202. package/src/net/Host.ts +72 -0
  203. package/src/net/NetAddress.ts +9 -0
  204. package/src/rpc/RpcServer.ts +55 -15
  205. package/src/socket/Socket.ts +6 -0
  206. package/src/workflow/DurableDeferred.ts +43 -5
  207. package/src/workflow/WorkflowEngine.ts +48 -4
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowEngine.js","names":[],"sources":["../../src/workflow/WorkflowEngine.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"WorkflowEngine.js","names":[],"sources":["../../src/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.3",
4
+ "version": "4.0.4",
5
5
  "license": "MIT",
6
6
  "description": "The missing standard library for TypeScript, for writing production-grade software.",
7
7
  "homepage": "https://effect.website",
@@ -46,6 +46,7 @@
46
46
  "./persistence": "./dist/persistence/index.js",
47
47
  "./process": "./dist/process/index.js",
48
48
  "./reactivity": "./dist/reactivity/index.js",
49
+ "./graphql": "./dist/graphql/index.js",
49
50
  "./rpc": "./dist/rpc/index.js",
50
51
  "./schema": "./dist/schema/index.js",
51
52
  "./socket": "./dist/socket/index.js",
@@ -74,13 +75,15 @@
74
75
  "provenance": true
75
76
  },
76
77
  "devDependencies": {
77
- "@types/node": "^26.6.4",
78
+ "@types/node": "^26.6.5",
78
79
  "ajv": "^8.20.0",
79
80
  "ajv-draft-04": "^1.0.0",
80
81
  "ast-types": "^0.16.3",
82
+ "esbuild": "^0.28.2",
81
83
  "immer": "^11.1.21",
84
+ "miniflare": "5.20260925.0-alpha",
82
85
  "protobufjs": "^8.8.0",
83
- "tinybench": "^6.2.0",
86
+ "tinybench": "^6.2.1",
84
87
  "valibot": "^1.5.0"
85
88
  },
86
89
  "scripts": {
package/src/Context.ts CHANGED
@@ -1986,6 +1986,15 @@ export const pick = <S extends ReadonlyArray<Key<any, any>>>(
1986
1986
  ...services: S
1987
1987
  ) =>
1988
1988
  <Services>(self: Context<Services>): Context<Services & Service.Identifier<S[number]>> => {
1989
+ if (services.length <= 1) {
1990
+ const map = new Map<string, unknown>()
1991
+ if (services.length === 1) {
1992
+ const key = services[0].key
1993
+ const value = lookup(self, key)
1994
+ if (value !== notFound) map.set(key, value)
1995
+ }
1996
+ return makeUnsafe(map)
1997
+ }
1989
1998
  const keep = new Set(services.map((key) => key.key))
1990
1999
  return withFlat(self, (map) =>
1991
2000
  map.forEach((_, key) => {
@@ -311,16 +311,10 @@ export const makeGrouped = <A extends Request.Any, K>(options: {
311
311
  })
312
312
 
313
313
  const hashGroupKey = <A, K>(get: (entry: Request.Entry<A>) => K) => {
314
- const groupKeys = MutableHashMap.empty<K, K>()
315
- return (entry: Request.Entry<A>): unknown => {
316
- const key = get(entry)
317
- const okey = MutableHashMap.get(groupKeys, key)
318
- if (okey._tag === "Some") {
319
- return okey.value
320
- }
321
- MutableHashMap.set(groupKeys, key, key)
322
- return key
323
- }
314
+ // Pending batches match equal keys, so they share one batch.
315
+ const batchKey = (entry: Request.Entry<A>): unknown => get(entry)
316
+ internal.equalBatchKeys.add(batchKey)
317
+ return batchKey
324
318
  }
325
319
 
326
320
  /**
package/src/Scheduler.ts CHANGED
@@ -160,6 +160,15 @@ class PriorityBuckets {
160
160
  * operation counts to decide when fibers should yield, and is the default
161
161
  * scheduler implementation.
162
162
  *
163
+ * **Gotchas**
164
+ *
165
+ * On Cloudflare Workers, request-owned scheduler timers can be discarded,
166
+ * leaving shared fibers suspended. Use `new MixedScheduler("sync")` for the
167
+ * whole application; see `HttpRouter.toWebHandler` for a recipe.
168
+ * Sync mode does not yield to the event loop: CPU-heavy work delays other
169
+ * requests, and I/O-polling loops can exhaust the CPU limit. It does not fix
170
+ * request-owned timers (such as `Effect.sleep`) or request-bound async contexts.
171
+ *
163
172
  * @stability stable
164
173
  * @category models
165
174
  * @since 2.0.0
package/src/Schema.ts CHANGED
@@ -4029,6 +4029,7 @@ export declare namespace StructWithRest {
4029
4029
  */
4030
4030
  type Objects = Constraint & {
4031
4031
  readonly ast: SchemaAST.Objects
4032
+ readonly Encoded: object
4032
4033
  }
4033
4034
  /**
4034
4035
  * Readonly list of record schemas that provide the additional index signatures
@@ -4198,6 +4199,13 @@ export interface StructWithRest<
4198
4199
  *
4199
4200
  * **Gotchas**
4200
4201
  *
4202
+ * The base schema must have an object-shaped encoded type. Whole-object
4203
+ * transformations are not supported, even with an empty rest array. Apply
4204
+ * transformations such as `Schema.fromJsonString` to the completed
4205
+ * `StructWithRest` schema instead. Object-shaped encoded types alone do not
4206
+ * guarantee compatibility: unsupported encodings are still rejected at runtime.
4207
+ * Transformations on individual fields remain supported.
4208
+ *
4201
4209
  * TypeScript index signatures also apply to fixed keys. `StructWithRest` does
4202
4210
  * not reject incompatible fixed fields at the call site; use
4203
4211
  * `StructWithRest.ValidateRecords` when you want an explicit type-level
@@ -2264,6 +2264,8 @@ function bracketPathToTokens(bracketPath: string): Array<string | number> {
2264
2264
  .map((part) => (Arr.isCanonicalArrayIndex(part) ? globalThis.Number(part) : part))
2265
2265
  }
2266
2266
 
2267
+ const MAX_ARRAY_HOLES = 20
2268
+
2267
2269
  /**
2268
2270
  * Builds a nested tree object from a list of bracket-path entries.
2269
2271
  *
@@ -2287,6 +2289,10 @@ function bracketPathToTokens(bracketPath: string): Array<string | number> {
2287
2289
  * - `""` → real empty key
2288
2290
  * - Numeric bracket segments become array indices only when they are valid
2289
2291
  * JavaScript array-index strings; otherwise they remain object keys.
2292
+ * - An indexed container becomes an array only when it has at most 20 holes
2293
+ * (missing indices below its highest index). Otherwise it is returned as an
2294
+ * object keyed by the index strings, so untrusted input such as
2295
+ * `a[4294967294]` cannot produce huge sparse arrays.
2290
2296
  * - Duplicate keys for the same path are merged into arrays.
2291
2297
  * - If a structural path conflicts with a previous leaf or a different container
2292
2298
  * type, the later structural path replaces the conflicting value.
@@ -2319,43 +2325,31 @@ export function makeTreeRecord<A>(
2319
2325
  const out: any = {}
2320
2326
  const containers = new WeakSet<object>()
2321
2327
  const duplicates = new WeakSet<object>()
2322
-
2323
- function getOrCreateContainer(self: any, key: PropertyKey, shouldBeArray: boolean): any {
2324
- const current = Object.hasOwn(self, key) ? self[key] : undefined
2325
- if (containers.has(current) && Array.isArray(current) === shouldBeArray) {
2326
- return current
2327
- }
2328
- const container = shouldBeArray ? [] : {}
2329
- containers.add(container)
2330
- InternalRecord.assignProperty(self, key, container)
2331
- return container
2332
- }
2328
+ // Indexed containers are built as plain objects so that large indices never
2329
+ // allocate sparse arrays, and are materialized once all entries are applied
2330
+ const indexed = new Map<object, { readonly parent: any; readonly key: PropertyKey; length: number }>()
2333
2331
 
2334
2332
  bracketPathEntries.forEach(([key, value]) => {
2335
2333
  const tokens = bracketPathToTokens(key)
2336
2334
  let cur: any = out
2337
- tokens.forEach((token, i) => {
2338
- const isLast = i === tokens.length - 1
2339
-
2340
- // We are inside an array and see "[]" (empty token) => append
2341
- if (Array.isArray(cur) && token === "") {
2342
- if (isLast) {
2343
- cur.push(value)
2344
- } else {
2345
- // bracket path: "foo[][bar]" => push a new element and descend into it
2346
- const next = tokens[i + 1]
2347
- const shouldBeArray = typeof next === "number" || next === ""
2348
- const index = cur.length
2349
- cur = getOrCreateContainer(cur, index, shouldBeArray)
2350
- }
2351
- } else if (isLast) {
2352
- // If we're setting a value at a path that already exists
2353
- // convert it to an array to support multiple values for the same key
2354
- const hasOwn = Object.hasOwn(cur, token)
2355
- if (hasOwn && Array.isArray(cur[token]) && (containers.has(cur[token]) || duplicates.has(cur[token]))) {
2356
- cur[token].push(value)
2335
+ for (let i = 0; i < tokens.length; i++) {
2336
+ const state = indexed.get(cur)
2337
+ // Resolve "[]" to the next index before handling leaves or containers
2338
+ const token = tokens[i] === "" && state !== undefined ? state.length : tokens[i]
2339
+ if (state !== undefined && typeof token === "number") {
2340
+ state.length = Math.max(state.length, token + 1)
2341
+ }
2342
+ const hasOwn = Object.hasOwn(cur, token)
2343
+ const current = hasOwn ? cur[token] : undefined
2344
+
2345
+ if (i === tokens.length - 1) {
2346
+ const currentState = indexed.get(current)
2347
+ if (currentState !== undefined) {
2348
+ InternalRecord.assignProperty(current, currentState.length++, value)
2349
+ } else if (duplicates.has(current)) {
2350
+ current.push(value)
2357
2351
  } else if (hasOwn) {
2358
- const values = [cur[token], value]
2352
+ const values = [current, value]
2359
2353
  duplicates.add(values)
2360
2354
  InternalRecord.assignProperty(cur, token, values)
2361
2355
  } else {
@@ -2363,12 +2357,30 @@ export function makeTreeRecord<A>(
2363
2357
  }
2364
2358
  } else {
2365
2359
  const next = tokens[i + 1]
2366
- // if next is a number OR "" (from []), we are building an array
2367
2360
  const shouldBeArray = typeof next === "number" || next === ""
2368
- cur = getOrCreateContainer(cur, token, shouldBeArray)
2361
+ if (containers.has(current) && indexed.has(current) === shouldBeArray) {
2362
+ cur = current
2363
+ } else {
2364
+ const container = {}
2365
+ containers.add(container)
2366
+ if (shouldBeArray) {
2367
+ indexed.set(container, { parent: cur, key: token, length: 0 })
2368
+ }
2369
+ InternalRecord.assignProperty(cur, token, container)
2370
+ cur = container
2371
+ }
2369
2372
  }
2370
- })
2373
+ }
2371
2374
  })
2375
+
2376
+ // Children are created after their parents, so materializing in reverse
2377
+ // creation order replaces every nested container before its parent is copied
2378
+ for (const [builder, { key, length, parent }] of Array.from(indexed).reverse()) {
2379
+ // A later conflicting path may have replaced the container in its parent
2380
+ if (parent[key] === builder && length - Object.keys(builder).length <= MAX_ARRAY_HOLES) {
2381
+ InternalRecord.assignProperty(parent, key, Object.assign(new Array(length), builder))
2382
+ }
2383
+ }
2372
2384
  return out
2373
2385
  }
2374
2386
 
package/src/Sink.ts CHANGED
@@ -2177,13 +2177,24 @@ export const takeWhileFilterEffect = <In, Out, X, E, R>(
2177
2177
  * @since 4.0.0
2178
2178
  */
2179
2179
  export const takeUntil = <In>(predicate: Predicate<In>): Sink<Array<In>, In, In> =>
2180
- suspend(() => {
2181
- let done = false
2182
- return takeWhile((i) => {
2183
- if (done) return false
2184
- done = predicate(i)
2185
- return true
2186
- })
2180
+ fromTransform((upstream) => {
2181
+ const out = Arr.empty<In>()
2182
+ return upstream.pipe(
2183
+ Effect.flatMap((arr) => {
2184
+ for (let i = 0; i < arr.length; i++) {
2185
+ out.push(arr[i])
2186
+ if (predicate(arr[i])) {
2187
+ const leftover: NonEmptyReadonlyArray<In> | undefined = (i + 1) < arr.length
2188
+ ? arr.slice(i + 1) as Arr.NonEmptyArray<In>
2189
+ : undefined
2190
+ return Cause.done([out, leftover] as const)
2191
+ }
2192
+ }
2193
+ return Effect.void
2194
+ }),
2195
+ Effect.forever({ disableYield: true }),
2196
+ Pull.catchDone((end) => Effect.succeed<End<Array<In>, In>>(end ?? [out]))
2197
+ )
2187
2198
  })
2188
2199
 
2189
2200
  /**
@@ -2201,17 +2212,33 @@ export const takeUntil = <In>(predicate: Predicate<In>): Sink<Array<In>, In, In>
2201
2212
  export const takeUntilEffect = <In, E, R>(
2202
2213
  predicate: (input: In) => Effect.Effect<boolean, E, R>
2203
2214
  ): Sink<Array<In>, In, In, E, R> =>
2204
- suspend(() => {
2205
- let done = false
2206
- return takeWhileEffect((input) => {
2207
- if (done) {
2208
- return Effect.succeed(false)
2209
- }
2210
- return Effect.map(predicate(input), (b) => {
2211
- done = b
2212
- return true
2213
- })
2214
- })
2215
+ fromTransform((upstream) => {
2216
+ const out = Arr.empty<In>()
2217
+ let leftover: NonEmptyReadonlyArray<In> | undefined = undefined
2218
+ return upstream.pipe(
2219
+ Effect.flatMap((arr) => {
2220
+ let i = 0
2221
+ return Effect.whileLoop({
2222
+ while: () => i < arr.length,
2223
+ body: () => {
2224
+ const input = arr[i++]
2225
+ return Effect.flatMap(predicate(input), (matched) => {
2226
+ out.push(input)
2227
+ if (!matched) {
2228
+ return Effect.void
2229
+ }
2230
+ if (i < arr.length) {
2231
+ leftover = arr.slice(i) as Arr.NonEmptyArray<In>
2232
+ }
2233
+ return Cause.done()
2234
+ })
2235
+ },
2236
+ step: constVoid
2237
+ })
2238
+ }),
2239
+ Effect.forever({ disableYield: true }),
2240
+ Pull.catchDone(() => Effect.succeed([out, leftover] as const))
2241
+ )
2215
2242
  })
2216
2243
 
2217
2244
  /**
package/src/Stream.ts CHANGED
@@ -20767,6 +20767,9 @@ export const mkUint8Array = <E, R>(self: Stream<Uint8Array, E, R>): Effect.Effec
20767
20767
  *
20768
20768
  * See https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.
20769
20769
  *
20770
+ * When `signal` aborts, the stream is interrupted even if the reader has
20771
+ * stopped pulling, and the `ReadableStream` closes.
20772
+ *
20770
20773
  * **Example** (Converting to a ReadableStream with services)
20771
20774
  *
20772
20775
  * ```ts import.meta.vitest
@@ -20795,6 +20798,9 @@ export const toReadableStreamWith: {
20795
20798
  *
20796
20799
  * See https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.
20797
20800
  *
20801
+ * When `signal` aborts, the stream is interrupted even if the reader has
20802
+ * stopped pulling, and the `ReadableStream` closes.
20803
+ *
20798
20804
  * **Example** (Converting to a ReadableStream with services)
20799
20805
  *
20800
20806
  * ```ts import.meta.vitest
@@ -20812,7 +20818,10 @@ export const toReadableStreamWith: {
20812
20818
  */
20813
20819
  <A, XR>(
20814
20820
  context: Context.Context<XR>,
20815
- options?: { readonly strategy?: QueuingStrategy<A> | undefined }
20821
+ options?: {
20822
+ readonly strategy?: QueuingStrategy<A> | undefined
20823
+ readonly signal?: AbortSignal | undefined
20824
+ }
20816
20825
  ): <E, R extends XR>(self: Stream<A, E, R>) => ReadableStream<A>
20817
20826
  /**
20818
20827
  * Converts the stream to a `ReadableStream` using the provided services.
@@ -20826,6 +20835,9 @@ export const toReadableStreamWith: {
20826
20835
  *
20827
20836
  * See https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream.
20828
20837
  *
20838
+ * When `signal` aborts, the stream is interrupted even if the reader has
20839
+ * stopped pulling, and the `ReadableStream` closes.
20840
+ *
20829
20841
  * **Example** (Converting to a ReadableStream with services)
20830
20842
  *
20831
20843
  * ```ts import.meta.vitest
@@ -20844,18 +20856,28 @@ export const toReadableStreamWith: {
20844
20856
  <A, E, XR, R extends XR>(
20845
20857
  self: Stream<A, E, R>,
20846
20858
  context: Context.Context<XR>,
20847
- options?: { readonly strategy?: QueuingStrategy<A> | undefined }
20859
+ options?: {
20860
+ readonly strategy?: QueuingStrategy<A> | undefined
20861
+ readonly signal?: AbortSignal | undefined
20862
+ }
20848
20863
  ): ReadableStream<A>
20849
20864
  } = dual(
20850
20865
  (args) => isStream(args[0]),
20851
20866
  <A, E, XR, R extends XR>(
20852
20867
  self: Stream<A, E, R>,
20853
20868
  context: Context.Context<XR>,
20854
- options?: { readonly strategy?: QueuingStrategy<A> | undefined }
20869
+ options?: {
20870
+ readonly strategy?: QueuingStrategy<A> | undefined
20871
+ readonly signal?: AbortSignal | undefined
20872
+ }
20855
20873
  ): ReadableStream<A> => {
20856
20874
  let currentResolve: (() => void) | undefined = undefined
20857
20875
  let fiber: Fiber.Fiber<void, E> | undefined = undefined
20876
+ let cancelled = false
20858
20877
  const latch = Latch.makeUnsafe(false)
20878
+ const signal = options?.signal
20879
+ // Interrupting the fiber directly also stops a consumer waiting for a pull.
20880
+ const onAbort = () => fiber!.interruptUnsafe()
20859
20881
 
20860
20882
  return new ReadableStream<A>({
20861
20883
  start(controller) {
@@ -20872,12 +20894,18 @@ export const toReadableStreamWith: {
20872
20894
  context
20873
20895
  ))
20874
20896
  fiber.addObserver((exit) => {
20875
- if (exit._tag === "Failure") {
20897
+ signal?.removeEventListener("abort", onAbort)
20898
+ if (cancelled) return
20899
+ if (exit._tag === "Failure" && signal?.aborted !== true) {
20876
20900
  controller.error(Cause.squash(exit.cause))
20877
20901
  } else {
20878
20902
  controller.close()
20879
20903
  }
20880
20904
  })
20905
+ if (signal !== undefined && fiber.pollUnsafe() === undefined) {
20906
+ if (signal.aborted) onAbort()
20907
+ else signal.addEventListener("abort", onAbort, { once: true })
20908
+ }
20881
20909
  },
20882
20910
  pull() {
20883
20911
  return new Promise<void>((resolve) => {
@@ -20887,6 +20915,7 @@ export const toReadableStreamWith: {
20887
20915
  },
20888
20916
  cancel() {
20889
20917
  if (!fiber) return
20918
+ cancelled = true
20890
20919
  return Effect.runPromise(Effect.asVoid(Fiber.interrupt(fiber)))
20891
20920
  }
20892
20921
  }, options?.strategy)
package/src/Utils.ts CHANGED
@@ -12,7 +12,7 @@
12
12
  * @since 2.0.0
13
13
  */
14
14
  import type { Kind, TypeLambda } from "./HKT.ts"
15
- import { getStackTraceLimit } from "./internal/stackTraceLimit.ts"
15
+ import { getStackTraceLimit, setStackTraceLimit } from "./internal/stackTraceLimit.ts"
16
16
  import type * as Types from "./Types.ts"
17
17
 
18
18
  /**
@@ -209,10 +209,13 @@ const pickInternalCall = (): <A>(body: () => A) => A => {
209
209
  }
210
210
  }
211
211
 
212
- const isNotOptimizedAway = getStackTraceLimit() !== 0 &&
213
- standard[InternalTypeId](() => new Error().stack)?.includes(InternalTypeId) === true
214
-
215
- return isNotOptimizedAway ? standard[InternalTypeId] : forced[InternalTypeId]
212
+ const limit = getStackTraceLimit()
213
+ if (limit === 0) return forced[InternalTypeId]
214
+ // Only the callback and internal call frames are needed for detection.
215
+ setStackTraceLimit(2)
216
+ const error = standard[InternalTypeId](() => new Error())
217
+ setStackTraceLimit(limit)
218
+ return error.stack?.includes(InternalTypeId) === true ? standard[InternalTypeId] : forced[InternalTypeId]
216
219
  }
217
220
 
218
221
  /** @internal */
@@ -14,8 +14,8 @@ import type * as JsonSchema from "../JsonSchema.ts"
14
14
  import * as Rec from "../Record.ts"
15
15
  import * as Schema from "../Schema.ts"
16
16
  import * as InternalStructuredOutput from "./internal/structured-output.ts"
17
- import * as LanguageModel from "./LanguageModel.ts"
18
- import * as OpenAiStructuredOutput from "./OpenAiStructuredOutput.ts"
17
+ import type * as LanguageModel from "./LanguageModel.ts"
18
+ import type * as OpenAiStructuredOutput from "./OpenAiStructuredOutput.ts"
19
19
 
20
20
  /**
21
21
  * Converts a `Schema.Codec` to Anthropic structured-output JSON Schema and a
package/src/ai/Chat.ts CHANGED
@@ -228,7 +228,7 @@ export interface Chat {
228
228
  <Options extends NoExcessProperties<LanguageModel.GenerateTextOptions<{}>, Options>>(
229
229
  options: Options & { readonly toolkit?: undefined } & LanguageModel.GenerateTextOptions<{}>
230
230
  ): Effect.Effect<
231
- LanguageModel.GenerateTextResponse<{}>,
231
+ LanguageModel.GenerateTextResponse<{}, LanguageModel.ExtractToolParametersModeWithoutToolkit<Options>>,
232
232
  LanguageModel.ExtractError<Options>,
233
233
  LanguageModel.LanguageModel | LanguageModel.ExtractServices<Options>
234
234
  >
@@ -310,7 +310,7 @@ export interface Chat {
310
310
  <Options extends NoExcessProperties<LanguageModel.GenerateTextOptions<{}>, Options>>(
311
311
  options: Options & { readonly toolkit?: undefined } & LanguageModel.GenerateTextOptions<{}>
312
312
  ): Stream.Stream<
313
- Response.StreamPart<{}>,
313
+ Response.StreamPart<{}, LanguageModel.ExtractToolParametersModeWithoutToolkit<Options>>,
314
314
  LanguageModel.ExtractError<Options>,
315
315
  LanguageModel.LanguageModel | LanguageModel.ExtractServices<Options>
316
316
  >