effect 4.0.4 → 4.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1079) hide show
  1. package/ai-docs/package.json +1 -1
  2. package/ai-docs/src/06_schedule/10_schedules.ts +5 -4
  3. package/ai-docs/src/52_graphql/10_basics.ts +19 -13
  4. package/ai-docs/src/52_graphql/30_batching.ts +6 -4
  5. package/ai-docs/src/52_graphql/40_aliased-batching.ts +6 -4
  6. package/ai-docs/tsconfig.json +3 -1
  7. package/dist/Array.d.ts +207 -58
  8. package/dist/Array.d.ts.map +1 -1
  9. package/dist/Array.js +45 -22
  10. package/dist/Array.js.map +1 -1
  11. package/dist/Bytes.d.ts +79 -0
  12. package/dist/Bytes.d.ts.map +1 -0
  13. package/dist/Bytes.js +109 -0
  14. package/dist/Bytes.js.map +1 -0
  15. package/dist/Channel.d.ts +187 -14
  16. package/dist/Channel.d.ts.map +1 -1
  17. package/dist/Channel.js +142 -33
  18. package/dist/Channel.js.map +1 -1
  19. package/dist/ChannelSchema.d.ts.map +1 -1
  20. package/dist/ChannelSchema.js.map +1 -1
  21. package/dist/Chunk.d.ts +39 -21
  22. package/dist/Chunk.d.ts.map +1 -1
  23. package/dist/Chunk.js +26 -17
  24. package/dist/Chunk.js.map +1 -1
  25. package/dist/Config.d.ts.map +1 -1
  26. package/dist/Config.js +8 -3
  27. package/dist/Config.js.map +1 -1
  28. package/dist/ConfigProvider.d.ts.map +1 -1
  29. package/dist/ConfigProvider.js +34 -32
  30. package/dist/ConfigProvider.js.map +1 -1
  31. package/dist/Cron.d.ts +2 -2
  32. package/dist/Cron.d.ts.map +1 -1
  33. package/dist/Cron.js +6 -3
  34. package/dist/Cron.js.map +1 -1
  35. package/dist/Duration.d.ts.map +1 -1
  36. package/dist/Duration.js +58 -21
  37. package/dist/Duration.js.map +1 -1
  38. package/dist/Effect.d.ts +548 -182
  39. package/dist/Effect.d.ts.map +1 -1
  40. package/dist/Effect.js +261 -76
  41. package/dist/Effect.js.map +1 -1
  42. package/dist/Equivalence.d.ts +2 -1
  43. package/dist/Equivalence.d.ts.map +1 -1
  44. package/dist/Equivalence.js +12 -8
  45. package/dist/Equivalence.js.map +1 -1
  46. package/dist/Exit.d.ts +24 -9
  47. package/dist/Exit.d.ts.map +1 -1
  48. package/dist/Exit.js +8 -3
  49. package/dist/Exit.js.map +1 -1
  50. package/dist/FiberHandle.d.ts +2 -0
  51. package/dist/FiberHandle.d.ts.map +1 -1
  52. package/dist/FiberHandle.js +9 -4
  53. package/dist/FiberHandle.js.map +1 -1
  54. package/dist/FiberMap.d.ts +2 -0
  55. package/dist/FiberMap.d.ts.map +1 -1
  56. package/dist/FiberMap.js +5 -2
  57. package/dist/FiberMap.js.map +1 -1
  58. package/dist/FileSystem.d.ts +28 -9
  59. package/dist/FileSystem.d.ts.map +1 -1
  60. package/dist/FileSystem.js +3 -0
  61. package/dist/FileSystem.js.map +1 -1
  62. package/dist/Graph.d.ts.map +1 -1
  63. package/dist/Graph.js.map +1 -1
  64. package/dist/HashSet.d.ts.map +1 -1
  65. package/dist/HashSet.js.map +1 -1
  66. package/dist/Iterable.d.ts.map +1 -1
  67. package/dist/Iterable.js +18 -17
  68. package/dist/Iterable.js.map +1 -1
  69. package/dist/JsonSchema.d.ts +9 -3
  70. package/dist/JsonSchema.d.ts.map +1 -1
  71. package/dist/JsonSchema.js +19 -3
  72. package/dist/JsonSchema.js.map +1 -1
  73. package/dist/Layer.d.ts.map +1 -1
  74. package/dist/Layer.js +2 -2
  75. package/dist/Layer.js.map +1 -1
  76. package/dist/ManagedRuntime.d.ts +19 -1
  77. package/dist/ManagedRuntime.d.ts.map +1 -1
  78. package/dist/ManagedRuntime.js +62 -6
  79. package/dist/ManagedRuntime.js.map +1 -1
  80. package/dist/Match.d.ts +20 -6
  81. package/dist/Match.d.ts.map +1 -1
  82. package/dist/Match.js +2 -2
  83. package/dist/Match.js.map +1 -1
  84. package/dist/Metric.d.ts +132 -0
  85. package/dist/Metric.d.ts.map +1 -1
  86. package/dist/Metric.js +197 -25
  87. package/dist/Metric.js.map +1 -1
  88. package/dist/MutableHashMap.d.ts.map +1 -1
  89. package/dist/MutableHashMap.js.map +1 -1
  90. package/dist/Number.js +2 -2
  91. package/dist/Number.js.map +1 -1
  92. package/dist/Optic.d.ts.map +1 -1
  93. package/dist/Optic.js.map +1 -1
  94. package/dist/Path.d.ts +37 -5
  95. package/dist/Path.d.ts.map +1 -1
  96. package/dist/Path.js +44 -6
  97. package/dist/Path.js.map +1 -1
  98. package/dist/PubSub.d.ts.map +1 -1
  99. package/dist/PubSub.js +12 -7
  100. package/dist/PubSub.js.map +1 -1
  101. package/dist/Queue.d.ts +4 -1
  102. package/dist/Queue.d.ts.map +1 -1
  103. package/dist/Queue.js +4 -1
  104. package/dist/Queue.js.map +1 -1
  105. package/dist/Random.d.ts.map +1 -1
  106. package/dist/Random.js +1 -1
  107. package/dist/Random.js.map +1 -1
  108. package/dist/RcMap.d.ts +12 -7
  109. package/dist/RcMap.d.ts.map +1 -1
  110. package/dist/RcMap.js +9 -6
  111. package/dist/RcMap.js.map +1 -1
  112. package/dist/Record.d.ts +51 -0
  113. package/dist/Record.d.ts.map +1 -1
  114. package/dist/Record.js +17 -0
  115. package/dist/Record.js.map +1 -1
  116. package/dist/Ref.d.ts.map +1 -1
  117. package/dist/Ref.js.map +1 -1
  118. package/dist/References.d.ts +5 -4
  119. package/dist/References.d.ts.map +1 -1
  120. package/dist/References.js +5 -4
  121. package/dist/References.js.map +1 -1
  122. package/dist/RequestResolver.d.ts +31 -1
  123. package/dist/RequestResolver.d.ts.map +1 -1
  124. package/dist/RequestResolver.js +39 -4
  125. package/dist/RequestResolver.js.map +1 -1
  126. package/dist/Resource.js +1 -1
  127. package/dist/Resource.js.map +1 -1
  128. package/dist/Runtime.d.ts +3 -3
  129. package/dist/Runtime.d.ts.map +1 -1
  130. package/dist/Runtime.js +18 -15
  131. package/dist/Runtime.js.map +1 -1
  132. package/dist/Schedule.d.ts.map +1 -1
  133. package/dist/Schedule.js.map +1 -1
  134. package/dist/Schema.d.ts +383 -326
  135. package/dist/Schema.d.ts.map +1 -1
  136. package/dist/Schema.js +338 -17
  137. package/dist/Schema.js.map +1 -1
  138. package/dist/SchemaAST.d.ts +5 -5
  139. package/dist/SchemaAST.d.ts.map +1 -1
  140. package/dist/SchemaAST.js +24 -8
  141. package/dist/SchemaAST.js.map +1 -1
  142. package/dist/SchemaGetter.d.ts +8 -3
  143. package/dist/SchemaGetter.d.ts.map +1 -1
  144. package/dist/SchemaGetter.js +15 -5
  145. package/dist/SchemaGetter.js.map +1 -1
  146. package/dist/SchemaIssue.d.ts +4 -4
  147. package/dist/SchemaIssue.d.ts.map +1 -1
  148. package/dist/SchemaIssue.js +29 -51
  149. package/dist/SchemaIssue.js.map +1 -1
  150. package/dist/SchemaRepresentation.d.ts +56 -1
  151. package/dist/SchemaRepresentation.d.ts.map +1 -1
  152. package/dist/SchemaRepresentation.js +18 -0
  153. package/dist/SchemaRepresentation.js.map +1 -1
  154. package/dist/SchemaTransformation.d.ts +1 -1
  155. package/dist/SchemaTransformation.js +1 -1
  156. package/dist/Scope.d.ts +12 -2
  157. package/dist/Scope.d.ts.map +1 -1
  158. package/dist/Scope.js +5 -0
  159. package/dist/Scope.js.map +1 -1
  160. package/dist/ScopedCache.d.ts +10 -7
  161. package/dist/ScopedCache.d.ts.map +1 -1
  162. package/dist/ScopedCache.js +9 -5
  163. package/dist/ScopedCache.js.map +1 -1
  164. package/dist/SemVer.d.ts +1196 -0
  165. package/dist/SemVer.d.ts.map +1 -0
  166. package/dist/SemVer.js +756 -0
  167. package/dist/SemVer.js.map +1 -0
  168. package/dist/SemVerRange.d.ts +559 -0
  169. package/dist/SemVerRange.d.ts.map +1 -0
  170. package/dist/SemVerRange.js +551 -0
  171. package/dist/SemVerRange.js.map +1 -0
  172. package/dist/Sink.d.ts.map +1 -1
  173. package/dist/Sink.js +6 -2
  174. package/dist/Sink.js.map +1 -1
  175. package/dist/Stream.d.ts +235 -8
  176. package/dist/Stream.d.ts.map +1 -1
  177. package/dist/Stream.js +145 -60
  178. package/dist/Stream.js.map +1 -1
  179. package/dist/String.d.ts +16 -2
  180. package/dist/String.d.ts.map +1 -1
  181. package/dist/String.js +25 -10
  182. package/dist/String.js.map +1 -1
  183. package/dist/TextDiff.d.ts +399 -0
  184. package/dist/TextDiff.d.ts.map +1 -0
  185. package/dist/TextDiff.js +634 -0
  186. package/dist/TextDiff.js.map +1 -0
  187. package/dist/TxHashMap.d.ts.map +1 -1
  188. package/dist/TxHashMap.js.map +1 -1
  189. package/dist/TxHashSet.d.ts.map +1 -1
  190. package/dist/TxHashSet.js.map +1 -1
  191. package/dist/TxRef.d.ts.map +1 -1
  192. package/dist/TxRef.js +3 -2
  193. package/dist/TxRef.js.map +1 -1
  194. package/dist/ai/AiError.d.ts +78 -14
  195. package/dist/ai/AiError.d.ts.map +1 -1
  196. package/dist/ai/AiError.js +51 -3
  197. package/dist/ai/AiError.js.map +1 -1
  198. package/dist/ai/Chat.d.ts +1 -2
  199. package/dist/ai/Chat.d.ts.map +1 -1
  200. package/dist/ai/Chat.js +6 -3
  201. package/dist/ai/Chat.js.map +1 -1
  202. package/dist/ai/Decision.d.ts +116 -20
  203. package/dist/ai/Decision.d.ts.map +1 -1
  204. package/dist/ai/Decision.js +37 -3
  205. package/dist/ai/Decision.js.map +1 -1
  206. package/dist/ai/DecisionModel.d.ts +129 -11
  207. package/dist/ai/DecisionModel.d.ts.map +1 -1
  208. package/dist/ai/DecisionModel.js +183 -95
  209. package/dist/ai/DecisionModel.js.map +1 -1
  210. package/dist/ai/EmbeddingModel.d.ts +10 -0
  211. package/dist/ai/EmbeddingModel.d.ts.map +1 -1
  212. package/dist/ai/EmbeddingModel.js +21 -7
  213. package/dist/ai/EmbeddingModel.js.map +1 -1
  214. package/dist/ai/LanguageModel.d.ts.map +1 -1
  215. package/dist/ai/LanguageModel.js +47 -35
  216. package/dist/ai/LanguageModel.js.map +1 -1
  217. package/dist/ai/McpClient.d.ts +289 -0
  218. package/dist/ai/McpClient.d.ts.map +1 -0
  219. package/dist/ai/McpClient.js +819 -0
  220. package/dist/ai/McpClient.js.map +1 -0
  221. package/dist/ai/McpClientError.d.ts +254 -0
  222. package/dist/ai/McpClientError.d.ts.map +1 -0
  223. package/dist/ai/McpClientError.js +260 -0
  224. package/dist/ai/McpClientError.js.map +1 -0
  225. package/dist/ai/McpProtocol.d.ts +2 -2
  226. package/dist/ai/McpProtocol.d.ts.map +1 -1
  227. package/dist/ai/McpSchema.d.ts +368 -235
  228. package/dist/ai/McpSchema.d.ts.map +1 -1
  229. package/dist/ai/McpSchema.js +94 -24
  230. package/dist/ai/McpSchema.js.map +1 -1
  231. package/dist/ai/McpServer.d.ts +6 -52
  232. package/dist/ai/McpServer.d.ts.map +1 -1
  233. package/dist/ai/McpServer.js +27 -50
  234. package/dist/ai/McpServer.js.map +1 -1
  235. package/dist/ai/Prompt.d.ts +22 -20
  236. package/dist/ai/Prompt.d.ts.map +1 -1
  237. package/dist/ai/Prompt.js +23 -1
  238. package/dist/ai/Prompt.js.map +1 -1
  239. package/dist/ai/Response.d.ts +148 -4
  240. package/dist/ai/Response.d.ts.map +1 -1
  241. package/dist/ai/Response.js +35 -37
  242. package/dist/ai/Response.js.map +1 -1
  243. package/dist/ai/Tool.d.ts +12 -4
  244. package/dist/ai/Tool.d.ts.map +1 -1
  245. package/dist/ai/Tool.js.map +1 -1
  246. package/dist/ai/Toolkit.d.ts +48 -1
  247. package/dist/ai/Toolkit.d.ts.map +1 -1
  248. package/dist/ai/Toolkit.js +65 -12
  249. package/dist/ai/Toolkit.js.map +1 -1
  250. package/dist/ai/index.d.ts +10 -0
  251. package/dist/ai/index.d.ts.map +1 -1
  252. package/dist/ai/index.js +10 -0
  253. package/dist/ai/index.js.map +1 -1
  254. package/dist/ai/internal/mcpCore.js.map +1 -1
  255. package/dist/ai/internal/mcpProtocol/v2024_11_05.js +1 -1
  256. package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
  257. package/dist/ai/internal/mcpProtocol/v2025_03_26.js +1 -1
  258. package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
  259. package/dist/ai/internal/mcpProtocol/v2025_06_18.js +2 -2
  260. package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
  261. package/dist/ai/internal/mcpProtocol/v2025_11_25.js +2 -2
  262. package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
  263. package/dist/ai/internal/mcpProtocol/v2026_07_28.js +4 -7
  264. package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
  265. package/dist/ai/internal/mcpProtocol.js +16 -2
  266. package/dist/ai/internal/mcpProtocol.js.map +1 -1
  267. package/dist/ai/internal/mcpRuntime.js +3 -4
  268. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  269. package/dist/ai/internal/mcpSchema/v2024_11_05.js +19 -13
  270. package/dist/ai/internal/mcpSchema/v2024_11_05.js.map +1 -1
  271. package/dist/ai/internal/mcpSchema/v2025_03_26.js +3 -2
  272. package/dist/ai/internal/mcpSchema/v2025_03_26.js.map +1 -1
  273. package/dist/ai/internal/mcpSchema/v2025_06_18.js +7 -7
  274. package/dist/ai/internal/mcpSchema/v2025_06_18.js.map +1 -1
  275. package/dist/ai/internal/mcpSchema/v2025_11_25.js +8 -8
  276. package/dist/ai/internal/mcpSchema/v2025_11_25.js.map +1 -1
  277. package/dist/ai/internal/mcpSchema/v2026_07_28.js +43 -42
  278. package/dist/ai/internal/mcpSchema/v2026_07_28.js.map +1 -1
  279. package/dist/cli/CliError.d.ts +42 -2
  280. package/dist/cli/CliError.d.ts.map +1 -1
  281. package/dist/cli/CliError.js +44 -5
  282. package/dist/cli/CliError.js.map +1 -1
  283. package/dist/cli/Command.d.ts +286 -2
  284. package/dist/cli/Command.d.ts.map +1 -1
  285. package/dist/cli/Command.js +107 -6
  286. package/dist/cli/Command.js.map +1 -1
  287. package/dist/cli/Completions.d.ts +10 -0
  288. package/dist/cli/Completions.d.ts.map +1 -1
  289. package/dist/cli/Completions.js.map +1 -1
  290. package/dist/cli/Flag.d.ts +215 -0
  291. package/dist/cli/Flag.d.ts.map +1 -1
  292. package/dist/cli/Flag.js +89 -0
  293. package/dist/cli/Flag.js.map +1 -1
  294. package/dist/cli/GlobalFlag.d.ts.map +1 -1
  295. package/dist/cli/GlobalFlag.js +3 -3
  296. package/dist/cli/GlobalFlag.js.map +1 -1
  297. package/dist/cli/Param.d.ts +194 -0
  298. package/dist/cli/Param.d.ts.map +1 -1
  299. package/dist/cli/Param.js +86 -0
  300. package/dist/cli/Param.js.map +1 -1
  301. package/dist/cli/TerminalCapabilities.d.ts +84 -0
  302. package/dist/cli/TerminalCapabilities.d.ts.map +1 -0
  303. package/dist/cli/TerminalCapabilities.js +122 -0
  304. package/dist/cli/TerminalCapabilities.js.map +1 -0
  305. package/dist/cli/index.d.ts +5 -0
  306. package/dist/cli/index.d.ts.map +1 -1
  307. package/dist/cli/index.js +5 -0
  308. package/dist/cli/index.js.map +1 -1
  309. package/dist/cli/internal/command.d.ts +2 -1
  310. package/dist/cli/internal/command.d.ts.map +1 -1
  311. package/dist/cli/internal/command.js +7 -3
  312. package/dist/cli/internal/command.js.map +1 -1
  313. package/dist/cli/internal/completions/bash.js +7 -5
  314. package/dist/cli/internal/completions/bash.js.map +1 -1
  315. package/dist/cli/internal/completions/descriptor.js +16 -1
  316. package/dist/cli/internal/completions/descriptor.js.map +1 -1
  317. package/dist/cli/internal/completions/fish.js +12 -10
  318. package/dist/cli/internal/completions/fish.js.map +1 -1
  319. package/dist/cli/internal/completions/powershell.js +20 -10
  320. package/dist/cli/internal/completions/powershell.js.map +1 -1
  321. package/dist/cli/internal/completions/zsh.js +15 -8
  322. package/dist/cli/internal/completions/zsh.js.map +1 -1
  323. package/dist/cli/internal/formatter.d.ts +2 -0
  324. package/dist/cli/internal/formatter.d.ts.map +1 -0
  325. package/dist/cli/internal/formatter.js +15 -0
  326. package/dist/cli/internal/formatter.js.map +1 -0
  327. package/dist/cli/internal/lexer.js +24 -10
  328. package/dist/cli/internal/lexer.js.map +1 -1
  329. package/dist/cli/internal/parser.js +35 -15
  330. package/dist/cli/internal/parser.js.map +1 -1
  331. package/dist/cli/internal/wizard.d.ts.map +1 -1
  332. package/dist/cli/internal/wizard.js +2 -1
  333. package/dist/cli/internal/wizard.js.map +1 -1
  334. package/dist/cluster/ClusterCron.d.ts +29 -1
  335. package/dist/cluster/ClusterCron.d.ts.map +1 -1
  336. package/dist/cluster/ClusterCron.js +64 -32
  337. package/dist/cluster/ClusterCron.js.map +1 -1
  338. package/dist/cluster/ClusterMetrics.d.ts +143 -7
  339. package/dist/cluster/ClusterMetrics.d.ts.map +1 -1
  340. package/dist/cluster/ClusterMetrics.js +151 -7
  341. package/dist/cluster/ClusterMetrics.js.map +1 -1
  342. package/dist/cluster/ClusterWorkflowEngine.d.ts +2 -1
  343. package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  344. package/dist/cluster/ClusterWorkflowEngine.js +98 -18
  345. package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
  346. package/dist/cluster/Entity.d.ts +2 -0
  347. package/dist/cluster/Entity.d.ts.map +1 -1
  348. package/dist/cluster/Entity.js.map +1 -1
  349. package/dist/cluster/MessageStorage.d.ts +21 -0
  350. package/dist/cluster/MessageStorage.d.ts.map +1 -1
  351. package/dist/cluster/MessageStorage.js +20 -12
  352. package/dist/cluster/MessageStorage.js.map +1 -1
  353. package/dist/cluster/Runners.d.ts.map +1 -1
  354. package/dist/cluster/Runners.js +96 -37
  355. package/dist/cluster/Runners.js.map +1 -1
  356. package/dist/cluster/Sharding.d.ts +1 -0
  357. package/dist/cluster/Sharding.d.ts.map +1 -1
  358. package/dist/cluster/Sharding.js +95 -32
  359. package/dist/cluster/Sharding.js.map +1 -1
  360. package/dist/cluster/ShardingConfig.d.ts +20 -0
  361. package/dist/cluster/ShardingConfig.d.ts.map +1 -1
  362. package/dist/cluster/ShardingConfig.js +4 -0
  363. package/dist/cluster/ShardingConfig.js.map +1 -1
  364. package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
  365. package/dist/cluster/SqlMessageStorage.js +40 -50
  366. package/dist/cluster/SqlMessageStorage.js.map +1 -1
  367. package/dist/cluster/SqlRunnerStorage.d.ts +2 -2
  368. package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
  369. package/dist/cluster/SqlRunnerStorage.js +10 -4
  370. package/dist/cluster/SqlRunnerStorage.js.map +1 -1
  371. package/dist/cluster/internal/entityManager.js +66 -9
  372. package/dist/cluster/internal/entityManager.js.map +1 -1
  373. package/dist/devtools/DevTools.d.ts +3 -2
  374. package/dist/devtools/DevTools.d.ts.map +1 -1
  375. package/dist/devtools/DevTools.js +3 -2
  376. package/dist/devtools/DevTools.js.map +1 -1
  377. package/dist/devtools/DevToolsClient.d.ts +11 -0
  378. package/dist/devtools/DevToolsClient.d.ts.map +1 -1
  379. package/dist/devtools/DevToolsClient.js +31 -4
  380. package/dist/devtools/DevToolsClient.js.map +1 -1
  381. package/dist/encoding/Base64Url.d.ts +29 -0
  382. package/dist/encoding/Base64Url.d.ts.map +1 -1
  383. package/dist/encoding/Base64Url.js +29 -0
  384. package/dist/encoding/Base64Url.js.map +1 -1
  385. package/dist/encoding/Ini.d.ts.map +1 -1
  386. package/dist/encoding/Ini.js +3 -0
  387. package/dist/encoding/Ini.js.map +1 -1
  388. package/dist/encoding/JsonArray.d.ts +270 -0
  389. package/dist/encoding/JsonArray.d.ts.map +1 -0
  390. package/dist/encoding/JsonArray.js +691 -0
  391. package/dist/encoding/JsonArray.js.map +1 -0
  392. package/dist/encoding/Ndjson.d.ts +43 -4
  393. package/dist/encoding/Ndjson.d.ts.map +1 -1
  394. package/dist/encoding/Ndjson.js +169 -18
  395. package/dist/encoding/Ndjson.js.map +1 -1
  396. package/dist/encoding/SchemaBinary.d.ts +9 -1
  397. package/dist/encoding/SchemaBinary.d.ts.map +1 -1
  398. package/dist/encoding/SchemaBinary.js +12 -19
  399. package/dist/encoding/SchemaBinary.js.map +1 -1
  400. package/dist/encoding/Sse.js +1 -1
  401. package/dist/encoding/Sse.js.map +1 -1
  402. package/dist/encoding/Tar.d.ts +309 -0
  403. package/dist/encoding/Tar.d.ts.map +1 -0
  404. package/dist/encoding/Tar.js +1182 -0
  405. package/dist/encoding/Tar.js.map +1 -0
  406. package/dist/encoding/Toml.js +3 -3
  407. package/dist/encoding/Toml.js.map +1 -1
  408. package/dist/encoding/Xml.d.ts +464 -0
  409. package/dist/encoding/Xml.d.ts.map +1 -0
  410. package/dist/encoding/Xml.js +1619 -0
  411. package/dist/encoding/Xml.js.map +1 -0
  412. package/dist/encoding/Yaml.d.ts +6 -2
  413. package/dist/encoding/Yaml.d.ts.map +1 -1
  414. package/dist/encoding/Yaml.js +97 -34
  415. package/dist/encoding/Yaml.js.map +1 -1
  416. package/dist/encoding/Zip.d.ts +413 -0
  417. package/dist/encoding/Zip.d.ts.map +1 -0
  418. package/dist/encoding/Zip.js +1255 -0
  419. package/dist/encoding/Zip.js.map +1 -0
  420. package/dist/encoding/index.d.ts +20 -0
  421. package/dist/encoding/index.d.ts.map +1 -1
  422. package/dist/encoding/index.js +20 -0
  423. package/dist/encoding/index.js.map +1 -1
  424. package/dist/eventlog/EventJournal.d.ts +90 -5
  425. package/dist/eventlog/EventJournal.d.ts.map +1 -1
  426. package/dist/eventlog/EventJournal.js +488 -228
  427. package/dist/eventlog/EventJournal.js.map +1 -1
  428. package/dist/eventlog/EventLog.d.ts +180 -12
  429. package/dist/eventlog/EventLog.d.ts.map +1 -1
  430. package/dist/eventlog/EventLog.js +394 -146
  431. package/dist/eventlog/EventLog.js.map +1 -1
  432. package/dist/eventlog/EventLogEncryption.d.ts +36 -30
  433. package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
  434. package/dist/eventlog/EventLogEncryption.js +97 -38
  435. package/dist/eventlog/EventLogEncryption.js.map +1 -1
  436. package/dist/eventlog/EventLogMessage.d.ts +74 -34
  437. package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
  438. package/dist/eventlog/EventLogMessage.js +45 -11
  439. package/dist/eventlog/EventLogMessage.js.map +1 -1
  440. package/dist/eventlog/EventLogRemote.d.ts +45 -8
  441. package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
  442. package/dist/eventlog/EventLogRemote.js +51 -14
  443. package/dist/eventlog/EventLogRemote.js.map +1 -1
  444. package/dist/eventlog/EventLogServer.d.ts +46 -3
  445. package/dist/eventlog/EventLogServer.d.ts.map +1 -1
  446. package/dist/eventlog/EventLogServer.js +119 -19
  447. package/dist/eventlog/EventLogServer.js.map +1 -1
  448. package/dist/eventlog/EventLogServerEncrypted.d.ts +23 -33
  449. package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  450. package/dist/eventlog/EventLogServerEncrypted.js +97 -70
  451. package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
  452. package/dist/eventlog/EventLogServerUnencrypted.d.ts +39 -5
  453. package/dist/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  454. package/dist/eventlog/EventLogServerUnencrypted.js +151 -69
  455. package/dist/eventlog/EventLogServerUnencrypted.js.map +1 -1
  456. package/dist/eventlog/EventRow.d.ts +288 -0
  457. package/dist/eventlog/EventRow.d.ts.map +1 -0
  458. package/dist/eventlog/EventRow.js +435 -0
  459. package/dist/eventlog/EventRow.js.map +1 -0
  460. package/dist/eventlog/SqlEventJournal.d.ts +18 -18
  461. package/dist/eventlog/SqlEventJournal.d.ts.map +1 -1
  462. package/dist/eventlog/SqlEventJournal.js +387 -159
  463. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  464. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +10 -18
  465. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
  466. package/dist/eventlog/SqlEventLogServerEncrypted.js +179 -69
  467. package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  468. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts +23 -3
  469. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
  470. package/dist/eventlog/SqlEventLogServerUnencrypted.js +102 -51
  471. package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  472. package/dist/eventlog/index.d.ts +5 -0
  473. package/dist/eventlog/index.d.ts.map +1 -1
  474. package/dist/eventlog/index.js +5 -0
  475. package/dist/eventlog/index.js.map +1 -1
  476. package/dist/eventlog/internal/conflicts.d.ts +47 -0
  477. package/dist/eventlog/internal/conflicts.d.ts.map +1 -0
  478. package/dist/eventlog/internal/conflicts.js +92 -0
  479. package/dist/eventlog/internal/conflicts.js.map +1 -0
  480. package/dist/graphql/GraphQLClient.d.ts.map +1 -1
  481. package/dist/graphql/GraphQLClient.js +12 -5
  482. package/dist/graphql/GraphQLClient.js.map +1 -1
  483. package/dist/graphql/GraphQLClientError.d.ts +2 -2
  484. package/dist/graphql/GraphQLClientError.d.ts.map +1 -1
  485. package/dist/graphql/GraphQLClientError.js +4 -18
  486. package/dist/graphql/GraphQLClientError.js.map +1 -1
  487. package/dist/graphql/GraphQLProtocol.d.ts +252 -11
  488. package/dist/graphql/GraphQLProtocol.d.ts.map +1 -1
  489. package/dist/graphql/GraphQLProtocol.js +99 -8
  490. package/dist/graphql/GraphQLProtocol.js.map +1 -1
  491. package/dist/graphql/GraphQLResolver.d.ts +3 -1
  492. package/dist/graphql/GraphQLResolver.d.ts.map +1 -1
  493. package/dist/graphql/GraphQLResolver.js +91 -19
  494. package/dist/graphql/GraphQLResolver.js.map +1 -1
  495. package/dist/http/FetchHttpClient.d.ts +13 -3
  496. package/dist/http/FetchHttpClient.d.ts.map +1 -1
  497. package/dist/http/FetchHttpClient.js +56 -6
  498. package/dist/http/FetchHttpClient.js.map +1 -1
  499. package/dist/http/FindMyWay/internal/router.js +12 -1
  500. package/dist/http/FindMyWay/internal/router.js.map +1 -1
  501. package/dist/http/Headers.d.ts +230 -3
  502. package/dist/http/Headers.d.ts.map +1 -1
  503. package/dist/http/Headers.js +267 -5
  504. package/dist/http/Headers.js.map +1 -1
  505. package/dist/http/HttpClient.d.ts +105 -0
  506. package/dist/http/HttpClient.d.ts.map +1 -1
  507. package/dist/http/HttpClient.js +69 -17
  508. package/dist/http/HttpClient.js.map +1 -1
  509. package/dist/http/HttpClientError.d.ts.map +1 -1
  510. package/dist/http/HttpClientError.js +8 -6
  511. package/dist/http/HttpClientError.js.map +1 -1
  512. package/dist/http/HttpClientRequest.d.ts +274 -7
  513. package/dist/http/HttpClientRequest.d.ts.map +1 -1
  514. package/dist/http/HttpClientRequest.js +91 -3
  515. package/dist/http/HttpClientRequest.js.map +1 -1
  516. package/dist/http/HttpClientResponse.d.ts +53 -0
  517. package/dist/http/HttpClientResponse.d.ts.map +1 -1
  518. package/dist/http/HttpClientResponse.js +47 -0
  519. package/dist/http/HttpClientResponse.js.map +1 -1
  520. package/dist/http/HttpEffect.d.ts +6 -2
  521. package/dist/http/HttpEffect.d.ts.map +1 -1
  522. package/dist/http/HttpEffect.js +21 -17
  523. package/dist/http/HttpEffect.js.map +1 -1
  524. package/dist/http/HttpIncomingMessage.d.ts +2 -1
  525. package/dist/http/HttpIncomingMessage.d.ts.map +1 -1
  526. package/dist/http/HttpIncomingMessage.js +3 -23
  527. package/dist/http/HttpIncomingMessage.js.map +1 -1
  528. package/dist/http/HttpMiddleware.d.ts +179 -2
  529. package/dist/http/HttpMiddleware.d.ts.map +1 -1
  530. package/dist/http/HttpMiddleware.js +226 -18
  531. package/dist/http/HttpMiddleware.js.map +1 -1
  532. package/dist/http/HttpRouter.d.ts.map +1 -1
  533. package/dist/http/HttpRouter.js +58 -14
  534. package/dist/http/HttpRouter.js.map +1 -1
  535. package/dist/http/HttpServerError.d.ts +5 -2
  536. package/dist/http/HttpServerError.d.ts.map +1 -1
  537. package/dist/http/HttpServerError.js +11 -7
  538. package/dist/http/HttpServerError.js.map +1 -1
  539. package/dist/http/HttpServerRequest.d.ts +25 -5
  540. package/dist/http/HttpServerRequest.d.ts.map +1 -1
  541. package/dist/http/HttpServerRequest.js +38 -12
  542. package/dist/http/HttpServerRequest.js.map +1 -1
  543. package/dist/http/HttpServerResponse.d.ts +17 -8
  544. package/dist/http/HttpServerResponse.d.ts.map +1 -1
  545. package/dist/http/HttpServerResponse.js +37 -21
  546. package/dist/http/HttpServerResponse.js.map +1 -1
  547. package/dist/http/HttpStaticServer.d.ts +0 -12
  548. package/dist/http/HttpStaticServer.d.ts.map +1 -1
  549. package/dist/http/HttpStaticServer.js +25 -17
  550. package/dist/http/HttpStaticServer.js.map +1 -1
  551. package/dist/http/HttpTraceContext.js +1 -1
  552. package/dist/http/HttpTraceContext.js.map +1 -1
  553. package/dist/http/MultipartParser/internal/contentType.d.ts +15 -1
  554. package/dist/http/MultipartParser/internal/contentType.d.ts.map +1 -1
  555. package/dist/http/MultipartParser/internal/contentType.js +87 -5
  556. package/dist/http/MultipartParser/internal/contentType.js.map +1 -1
  557. package/dist/http/MultipartParser/internal/headers.d.ts.map +1 -1
  558. package/dist/http/MultipartParser/internal/headers.js +4 -12
  559. package/dist/http/MultipartParser/internal/headers.js.map +1 -1
  560. package/dist/http/MultipartParser/internal/multipart.d.ts.map +1 -1
  561. package/dist/http/MultipartParser/internal/multipart.js +6 -27
  562. package/dist/http/MultipartParser/internal/multipart.js.map +1 -1
  563. package/dist/http/Url.d.ts.map +1 -1
  564. package/dist/http/Url.js +8 -2
  565. package/dist/http/Url.js.map +1 -1
  566. package/dist/http/UrlParams.d.ts +112 -8
  567. package/dist/http/UrlParams.d.ts.map +1 -1
  568. package/dist/http/UrlParams.js +141 -14
  569. package/dist/http/UrlParams.js.map +1 -1
  570. package/dist/http/internal/compression.d.ts +1 -1
  571. package/dist/http/internal/compression.d.ts.map +1 -1
  572. package/dist/http/internal/compression.js +2 -10
  573. package/dist/http/internal/compression.js.map +1 -1
  574. package/dist/http/internal/compressionBody.d.ts +2 -0
  575. package/dist/http/internal/compressionBody.d.ts.map +1 -0
  576. package/dist/http/internal/compressionBody.js +36 -0
  577. package/dist/http/internal/compressionBody.js.map +1 -0
  578. package/dist/http/internal/decompression.d.ts +2 -0
  579. package/dist/http/internal/decompression.d.ts.map +1 -0
  580. package/dist/http/internal/decompression.js +168 -0
  581. package/dist/http/internal/decompression.js.map +1 -0
  582. package/dist/http/internal/lazyStream.d.ts +2 -0
  583. package/dist/http/internal/lazyStream.d.ts.map +1 -0
  584. package/dist/http/internal/lazyStream.js +18 -0
  585. package/dist/http/internal/lazyStream.js.map +1 -0
  586. package/dist/http/internal/requestState.d.ts +2 -0
  587. package/dist/http/internal/requestState.d.ts.map +1 -0
  588. package/dist/http/internal/requestState.js +28 -0
  589. package/dist/http/internal/requestState.js.map +1 -0
  590. package/dist/http/internal/tracing.js +14 -4
  591. package/dist/http/internal/tracing.js.map +1 -1
  592. package/dist/http/internal/urlParams.d.ts +2 -0
  593. package/dist/http/internal/urlParams.d.ts.map +1 -0
  594. package/dist/http/internal/urlParams.js +4 -0
  595. package/dist/http/internal/urlParams.js.map +1 -0
  596. package/dist/http/internal/webResponse.d.ts +2 -0
  597. package/dist/http/internal/webResponse.d.ts.map +1 -0
  598. package/dist/http/internal/webResponse.js +12 -0
  599. package/dist/http/internal/webResponse.js.map +1 -0
  600. package/dist/http-api/HttpApi.js +1 -1
  601. package/dist/http-api/HttpApi.js.map +1 -1
  602. package/dist/http-api/HttpApiBuilder.d.ts.map +1 -1
  603. package/dist/http-api/HttpApiBuilder.js +121 -18
  604. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  605. package/dist/http-api/HttpApiClient.d.ts +29 -4
  606. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  607. package/dist/http-api/HttpApiClient.js +85 -24
  608. package/dist/http-api/HttpApiClient.js.map +1 -1
  609. package/dist/http-api/HttpApiEndpoint.d.ts +55 -29
  610. package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
  611. package/dist/http-api/HttpApiEndpoint.js +49 -5
  612. package/dist/http-api/HttpApiEndpoint.js.map +1 -1
  613. package/dist/http-api/HttpApiError.d.ts +58 -0
  614. package/dist/http-api/HttpApiError.d.ts.map +1 -1
  615. package/dist/http-api/HttpApiError.js +38 -12
  616. package/dist/http-api/HttpApiError.js.map +1 -1
  617. package/dist/http-api/HttpApiScalar.d.ts +2 -1
  618. package/dist/http-api/HttpApiScalar.d.ts.map +1 -1
  619. package/dist/http-api/HttpApiScalar.js +6 -3
  620. package/dist/http-api/HttpApiScalar.js.map +1 -1
  621. package/dist/http-api/HttpApiSchema.d.ts +191 -9
  622. package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
  623. package/dist/http-api/HttpApiSchema.js +137 -4
  624. package/dist/http-api/HttpApiSchema.js.map +1 -1
  625. package/dist/http-api/HttpApiSwagger.d.ts +5 -0
  626. package/dist/http-api/HttpApiSwagger.d.ts.map +1 -1
  627. package/dist/http-api/HttpApiSwagger.js +14 -4
  628. package/dist/http-api/HttpApiSwagger.js.map +1 -1
  629. package/dist/http-api/HttpApiTest.d.ts +13 -2
  630. package/dist/http-api/HttpApiTest.d.ts.map +1 -1
  631. package/dist/http-api/HttpApiTest.js +30 -9
  632. package/dist/http-api/HttpApiTest.js.map +1 -1
  633. package/dist/http-api/OpenApi.d.ts +17 -3
  634. package/dist/http-api/OpenApi.d.ts.map +1 -1
  635. package/dist/http-api/OpenApi.js +57 -32
  636. package/dist/http-api/OpenApi.js.map +1 -1
  637. package/dist/http-api/internal/path.js +35 -10
  638. package/dist/http-api/internal/path.js.map +1 -1
  639. package/dist/index.d.ts +20 -0
  640. package/dist/index.d.ts.map +1 -1
  641. package/dist/index.js +20 -0
  642. package/dist/index.js.map +1 -1
  643. package/dist/internal/core.js +18 -2
  644. package/dist/internal/core.js.map +1 -1
  645. package/dist/internal/dateTime.js +19 -7
  646. package/dist/internal/dateTime.js.map +1 -1
  647. package/dist/internal/effect.js +89 -76
  648. package/dist/internal/effect.js.map +1 -1
  649. package/dist/internal/graphql.js +12 -2
  650. package/dist/internal/graphql.js.map +1 -1
  651. package/dist/internal/hashMap.js +2 -2
  652. package/dist/internal/hashMap.js.map +1 -1
  653. package/dist/internal/hydration.d.ts +2 -0
  654. package/dist/internal/hydration.d.ts.map +1 -0
  655. package/dist/internal/hydration.js +15 -0
  656. package/dist/internal/hydration.js.map +1 -0
  657. package/dist/internal/inflate.d.ts +2 -0
  658. package/dist/internal/inflate.d.ts.map +1 -0
  659. package/dist/internal/inflate.js +680 -0
  660. package/dist/internal/inflate.js.map +1 -0
  661. package/dist/internal/record.js +6 -0
  662. package/dist/internal/record.js.map +1 -1
  663. package/dist/internal/request.js +20 -7
  664. package/dist/internal/request.js.map +1 -1
  665. package/dist/internal/schedule.js +17 -22
  666. package/dist/internal/schedule.js.map +1 -1
  667. package/dist/internal/schema/fromJsonSchemaDocument.js +136 -126
  668. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  669. package/dist/internal/schema/interpreter.js +51 -36
  670. package/dist/internal/schema/interpreter.js.map +1 -1
  671. package/dist/internal/schema/standardSchema.js +34 -33
  672. package/dist/internal/schema/standardSchema.js.map +1 -1
  673. package/dist/internal/schema/toCodeDocument.js +7 -2
  674. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  675. package/dist/internal/schema/toCodec.js +86 -1
  676. package/dist/internal/schema/toCodec.js.map +1 -1
  677. package/dist/internal/schema/toFormatter.js +5 -5
  678. package/dist/internal/schema/toFormatter.js.map +1 -1
  679. package/dist/internal/schema/toJsonSchemaDocument.js +60 -38
  680. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
  681. package/dist/internal/trie.js +1 -3
  682. package/dist/internal/trie.js.map +1 -1
  683. package/dist/internal/uuid.js +7 -3
  684. package/dist/internal/uuid.js.map +1 -1
  685. package/dist/internal/version.js +1 -1
  686. package/dist/net/NetAddress.d.ts.map +1 -1
  687. package/dist/net/NetAddress.js +2 -8
  688. package/dist/net/NetAddress.js.map +1 -1
  689. package/dist/observability/Otlp.d.ts +15 -0
  690. package/dist/observability/Otlp.d.ts.map +1 -1
  691. package/dist/observability/Otlp.js +3 -0
  692. package/dist/observability/Otlp.js.map +1 -1
  693. package/dist/observability/OtlpExporter.d.ts +8 -0
  694. package/dist/observability/OtlpExporter.d.ts.map +1 -1
  695. package/dist/observability/OtlpExporter.js +15 -13
  696. package/dist/observability/OtlpExporter.js.map +1 -1
  697. package/dist/observability/OtlpLogger.d.ts +17 -0
  698. package/dist/observability/OtlpLogger.d.ts.map +1 -1
  699. package/dist/observability/OtlpLogger.js +14 -1
  700. package/dist/observability/OtlpLogger.js.map +1 -1
  701. package/dist/observability/OtlpMetrics.d.ts +17 -0
  702. package/dist/observability/OtlpMetrics.d.ts.map +1 -1
  703. package/dist/observability/OtlpMetrics.js +18 -3
  704. package/dist/observability/OtlpMetrics.js.map +1 -1
  705. package/dist/observability/OtlpResource.d.ts +3 -1
  706. package/dist/observability/OtlpResource.d.ts.map +1 -1
  707. package/dist/observability/OtlpResource.js +11 -4
  708. package/dist/observability/OtlpResource.js.map +1 -1
  709. package/dist/observability/OtlpSerialization.d.ts +5 -0
  710. package/dist/observability/OtlpSerialization.d.ts.map +1 -1
  711. package/dist/observability/OtlpSerialization.js +14 -3
  712. package/dist/observability/OtlpSerialization.js.map +1 -1
  713. package/dist/observability/OtlpTracer.d.ts +17 -0
  714. package/dist/observability/OtlpTracer.d.ts.map +1 -1
  715. package/dist/observability/OtlpTracer.js +15 -2
  716. package/dist/observability/OtlpTracer.js.map +1 -1
  717. package/dist/observability/internal/protobuf.d.ts +0 -9
  718. package/dist/observability/internal/protobuf.d.ts.map +1 -1
  719. package/dist/observability/internal/protobuf.js +2 -10
  720. package/dist/observability/internal/protobuf.js.map +1 -1
  721. package/dist/persistence/PersistedCache.d.ts.map +1 -1
  722. package/dist/persistence/PersistedCache.js +1 -1
  723. package/dist/persistence/PersistedCache.js.map +1 -1
  724. package/dist/persistence/PersistedQueue.d.ts +6 -2
  725. package/dist/persistence/PersistedQueue.d.ts.map +1 -1
  726. package/dist/persistence/PersistedQueue.js +162 -84
  727. package/dist/persistence/PersistedQueue.js.map +1 -1
  728. package/dist/persistence/Persistence.d.ts +28 -0
  729. package/dist/persistence/Persistence.d.ts.map +1 -1
  730. package/dist/persistence/Persistence.js +36 -8
  731. package/dist/persistence/Persistence.js.map +1 -1
  732. package/dist/persistence/RateLimiter.d.ts.map +1 -1
  733. package/dist/persistence/RateLimiter.js +8 -12
  734. package/dist/persistence/RateLimiter.js.map +1 -1
  735. package/dist/persistence/UserDirectories.d.ts +129 -0
  736. package/dist/persistence/UserDirectories.d.ts.map +1 -0
  737. package/dist/persistence/UserDirectories.js +178 -0
  738. package/dist/persistence/UserDirectories.js.map +1 -0
  739. package/dist/persistence/index.d.ts +5 -0
  740. package/dist/persistence/index.d.ts.map +1 -1
  741. package/dist/persistence/index.js +5 -0
  742. package/dist/persistence/index.js.map +1 -1
  743. package/dist/process/ChildProcess.d.ts +2 -1
  744. package/dist/process/ChildProcess.d.ts.map +1 -1
  745. package/dist/process/ChildProcess.js.map +1 -1
  746. package/dist/reactivity/AsyncResult.d.ts +6 -0
  747. package/dist/reactivity/AsyncResult.d.ts.map +1 -1
  748. package/dist/reactivity/AsyncResult.js +28 -1
  749. package/dist/reactivity/AsyncResult.js.map +1 -1
  750. package/dist/reactivity/Atom.d.ts +69 -30
  751. package/dist/reactivity/Atom.d.ts.map +1 -1
  752. package/dist/reactivity/Atom.js +40 -15
  753. package/dist/reactivity/Atom.js.map +1 -1
  754. package/dist/reactivity/AtomHttpApi.d.ts +5 -5
  755. package/dist/reactivity/AtomHttpApi.d.ts.map +1 -1
  756. package/dist/reactivity/AtomHttpApi.js +1 -1
  757. package/dist/reactivity/AtomHttpApi.js.map +1 -1
  758. package/dist/reactivity/AtomRegistry.d.ts +2 -2
  759. package/dist/reactivity/AtomRegistry.d.ts.map +1 -1
  760. package/dist/reactivity/AtomRegistry.js +47 -10
  761. package/dist/reactivity/AtomRegistry.js.map +1 -1
  762. package/dist/reactivity/AtomRpc.d.ts +3 -3
  763. package/dist/reactivity/AtomRpc.d.ts.map +1 -1
  764. package/dist/reactivity/AtomRpc.js +1 -1
  765. package/dist/reactivity/AtomRpc.js.map +1 -1
  766. package/dist/reactivity/Hydration.d.ts.map +1 -1
  767. package/dist/reactivity/Hydration.js +46 -12
  768. package/dist/reactivity/Hydration.js.map +1 -1
  769. package/dist/reactivity/Reactivity.d.ts +71 -7
  770. package/dist/reactivity/Reactivity.d.ts.map +1 -1
  771. package/dist/reactivity/Reactivity.js +21 -12
  772. package/dist/reactivity/Reactivity.js.map +1 -1
  773. package/dist/rpc/Rpc.d.ts +18 -0
  774. package/dist/rpc/Rpc.d.ts.map +1 -1
  775. package/dist/rpc/Rpc.js +20 -0
  776. package/dist/rpc/Rpc.js.map +1 -1
  777. package/dist/rpc/RpcClient.d.ts +26 -2
  778. package/dist/rpc/RpcClient.d.ts.map +1 -1
  779. package/dist/rpc/RpcClient.js +202 -61
  780. package/dist/rpc/RpcClient.js.map +1 -1
  781. package/dist/rpc/RpcSerialization.d.ts +15 -0
  782. package/dist/rpc/RpcSerialization.d.ts.map +1 -1
  783. package/dist/rpc/RpcSerialization.js +21 -5
  784. package/dist/rpc/RpcSerialization.js.map +1 -1
  785. package/dist/rpc/RpcServer.d.ts.map +1 -1
  786. package/dist/rpc/RpcServer.js +9 -18
  787. package/dist/rpc/RpcServer.js.map +1 -1
  788. package/dist/schema/Model.d.ts +1 -1
  789. package/dist/schema/VariantSchema.d.ts +22 -3
  790. package/dist/schema/VariantSchema.d.ts.map +1 -1
  791. package/dist/schema/VariantSchema.js +32 -18
  792. package/dist/schema/VariantSchema.js.map +1 -1
  793. package/dist/socket/Socket.d.ts +23 -1
  794. package/dist/socket/Socket.d.ts.map +1 -1
  795. package/dist/socket/Socket.js +36 -3
  796. package/dist/socket/Socket.js.map +1 -1
  797. package/dist/sql/Migrator.d.ts.map +1 -1
  798. package/dist/sql/Migrator.js +15 -3
  799. package/dist/sql/Migrator.js.map +1 -1
  800. package/dist/sql/SqlClient.d.ts +151 -12
  801. package/dist/sql/SqlClient.d.ts.map +1 -1
  802. package/dist/sql/SqlClient.js +156 -34
  803. package/dist/sql/SqlClient.js.map +1 -1
  804. package/dist/sql/SqlResolver.d.ts +9 -0
  805. package/dist/sql/SqlResolver.d.ts.map +1 -1
  806. package/dist/sql/SqlResolver.js +9 -0
  807. package/dist/sql/SqlResolver.js.map +1 -1
  808. package/dist/sql/Statement.d.ts +3 -1
  809. package/dist/sql/Statement.d.ts.map +1 -1
  810. package/dist/sql/Statement.js +24 -5
  811. package/dist/sql/Statement.js.map +1 -1
  812. package/dist/testing/TestClock.d.ts +16 -3
  813. package/dist/testing/TestClock.d.ts.map +1 -1
  814. package/dist/testing/TestClock.js +115 -23
  815. package/dist/testing/TestClock.js.map +1 -1
  816. package/dist/testing/TestSchema.d.ts +7 -1
  817. package/dist/testing/TestSchema.d.ts.map +1 -1
  818. package/dist/testing/TestSchema.js +9 -3
  819. package/dist/testing/TestSchema.js.map +1 -1
  820. package/dist/workflow/Activity.js +1 -0
  821. package/dist/workflow/Activity.js.map +1 -1
  822. package/dist/workflow/Workflow.d.ts +22 -0
  823. package/dist/workflow/Workflow.d.ts.map +1 -1
  824. package/dist/workflow/Workflow.js +15 -3
  825. package/dist/workflow/Workflow.js.map +1 -1
  826. package/dist/workflow/WorkflowEngine.d.ts +20 -1
  827. package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
  828. package/dist/workflow/WorkflowEngine.js +52 -24
  829. package/dist/workflow/WorkflowEngine.js.map +1 -1
  830. package/package.json +13 -3
  831. package/src/Array.ts +223 -61
  832. package/src/Bytes.ts +111 -0
  833. package/src/Channel.ts +287 -439
  834. package/src/ChannelSchema.ts +1 -49
  835. package/src/Chunk.ts +55 -61
  836. package/src/Config.ts +12 -86
  837. package/src/ConfigProvider.ts +41 -44
  838. package/src/Cron.ts +6 -3
  839. package/src/Duration.ts +70 -21
  840. package/src/Effect.ts +642 -220
  841. package/src/Equivalence.ts +7 -4
  842. package/src/Exit.ts +24 -9
  843. package/src/FiberHandle.ts +10 -9
  844. package/src/FiberMap.ts +13 -66
  845. package/src/FileSystem.ts +33 -9
  846. package/src/Graph.ts +171 -1263
  847. package/src/HashSet.ts +0 -60
  848. package/src/Iterable.ts +15 -14
  849. package/src/JsonSchema.ts +28 -3
  850. package/src/Layer.ts +2 -2
  851. package/src/ManagedRuntime.ts +72 -6
  852. package/src/Match.ts +65 -12
  853. package/src/Metric.ts +249 -507
  854. package/src/MutableHashMap.ts +4 -473
  855. package/src/Number.ts +2 -2
  856. package/src/Optic.ts +17 -332
  857. package/src/Path.ts +61 -8
  858. package/src/PubSub.ts +12 -7
  859. package/src/Queue.ts +5 -37
  860. package/src/Random.ts +1 -1
  861. package/src/RcMap.ts +14 -8
  862. package/src/Record.ts +51 -0
  863. package/src/Ref.ts +7 -104
  864. package/src/References.ts +5 -4
  865. package/src/RequestResolver.ts +46 -87
  866. package/src/Resource.ts +1 -1
  867. package/src/Runtime.ts +19 -18
  868. package/src/Schedule.ts +2 -94
  869. package/src/Schema.ts +596 -348
  870. package/src/SchemaAST.ts +20 -9
  871. package/src/SchemaGetter.ts +22 -5
  872. package/src/SchemaIssue.ts +44 -53
  873. package/src/SchemaRepresentation.ts +64 -1
  874. package/src/SchemaTransformation.ts +1 -1
  875. package/src/Scope.ts +12 -2
  876. package/src/ScopedCache.ts +17 -142
  877. package/src/SemVer.ts +1528 -0
  878. package/src/SemVerRange.ts +883 -0
  879. package/src/Sink.ts +6 -2
  880. package/src/Stream.ts +334 -1011
  881. package/src/String.ts +25 -12
  882. package/src/TextDiff.ts +766 -0
  883. package/src/TxHashMap.ts +1 -103
  884. package/src/TxHashSet.ts +48 -753
  885. package/src/TxRef.ts +4 -2
  886. package/src/ai/AiError.ts +69 -5
  887. package/src/ai/Chat.ts +10 -5
  888. package/src/ai/Decision.ts +119 -22
  889. package/src/ai/DecisionModel.ts +265 -109
  890. package/src/ai/EmbeddingModel.ts +25 -13
  891. package/src/ai/LanguageModel.ts +57 -51
  892. package/src/ai/McpClient.ts +1211 -0
  893. package/src/ai/McpClientError.ts +329 -0
  894. package/src/ai/McpProtocol.ts +2 -2
  895. package/src/ai/McpSchema.ts +153 -35
  896. package/src/ai/McpServer.ts +232 -275
  897. package/src/ai/Prompt.ts +49 -35
  898. package/src/ai/Response.ts +195 -65
  899. package/src/ai/Tool.ts +12 -4
  900. package/src/ai/Toolkit.ts +78 -10
  901. package/src/ai/index.ts +12 -0
  902. package/src/ai/internal/mcpCore.ts +13 -14
  903. package/src/ai/internal/mcpProtocol/v2024_11_05.ts +1 -1
  904. package/src/ai/internal/mcpProtocol/v2025_03_26.ts +1 -1
  905. package/src/ai/internal/mcpProtocol/v2025_06_18.ts +3 -3
  906. package/src/ai/internal/mcpProtocol/v2025_11_25.ts +3 -3
  907. package/src/ai/internal/mcpProtocol/v2026_07_28.ts +12 -14
  908. package/src/ai/internal/mcpProtocol.ts +22 -2
  909. package/src/ai/internal/mcpRuntime.ts +3 -4
  910. package/src/ai/internal/mcpSchema/v2024_11_05.ts +20 -13
  911. package/src/ai/internal/mcpSchema/v2025_03_26.ts +4 -2
  912. package/src/ai/internal/mcpSchema/v2025_06_18.ts +7 -7
  913. package/src/ai/internal/mcpSchema/v2025_11_25.ts +8 -8
  914. package/src/ai/internal/mcpSchema/v2026_07_28.ts +44 -42
  915. package/src/cli/CliError.ts +49 -4
  916. package/src/cli/Command.ts +316 -9
  917. package/src/cli/Completions.ts +10 -0
  918. package/src/cli/Flag.ts +218 -0
  919. package/src/cli/GlobalFlag.ts +3 -3
  920. package/src/cli/Param.ts +218 -0
  921. package/src/cli/TerminalCapabilities.ts +156 -0
  922. package/src/cli/index.ts +6 -0
  923. package/src/cli/internal/command.ts +10 -4
  924. package/src/cli/internal/completions/bash.ts +7 -5
  925. package/src/cli/internal/completions/descriptor.ts +20 -1
  926. package/src/cli/internal/completions/fish.ts +12 -10
  927. package/src/cli/internal/completions/powershell.ts +25 -13
  928. package/src/cli/internal/completions/zsh.ts +15 -8
  929. package/src/cli/internal/formatter.ts +18 -0
  930. package/src/cli/internal/lexer.ts +12 -5
  931. package/src/cli/internal/parser.ts +43 -14
  932. package/src/cli/internal/wizard.ts +2 -1
  933. package/src/cluster/ClusterCron.ts +94 -35
  934. package/src/cluster/ClusterMetrics.ts +149 -7
  935. package/src/cluster/ClusterWorkflowEngine.ts +164 -53
  936. package/src/cluster/Entity.ts +4 -0
  937. package/src/cluster/MessageStorage.ts +21 -3
  938. package/src/cluster/Runners.ts +145 -72
  939. package/src/cluster/Sharding.ts +118 -38
  940. package/src/cluster/ShardingConfig.ts +15 -0
  941. package/src/cluster/SqlMessageStorage.ts +58 -55
  942. package/src/cluster/SqlRunnerStorage.ts +10 -4
  943. package/src/cluster/internal/entityManager.ts +81 -11
  944. package/src/devtools/DevTools.ts +3 -2
  945. package/src/devtools/DevToolsClient.ts +27 -10
  946. package/src/encoding/Base64Url.ts +31 -0
  947. package/src/encoding/Ini.ts +3 -0
  948. package/src/encoding/JsonArray.ts +849 -0
  949. package/src/encoding/Ndjson.ts +211 -20
  950. package/src/encoding/SchemaBinary.ts +14 -48
  951. package/src/encoding/Sse.ts +1 -1
  952. package/src/encoding/Tar.ts +1417 -0
  953. package/src/encoding/Toml.ts +3 -3
  954. package/src/encoding/Xml.ts +2037 -0
  955. package/src/encoding/Yaml.ts +108 -36
  956. package/src/encoding/Zip.ts +1558 -0
  957. package/src/encoding/index.ts +24 -0
  958. package/src/eventlog/EventJournal.ts +611 -227
  959. package/src/eventlog/EventLog.ts +496 -196
  960. package/src/eventlog/EventLogEncryption.ts +128 -43
  961. package/src/eventlog/EventLogMessage.ts +62 -11
  962. package/src/eventlog/EventLogRemote.ts +77 -21
  963. package/src/eventlog/EventLogServer.ts +162 -20
  964. package/src/eventlog/EventLogServerEncrypted.ts +121 -80
  965. package/src/eventlog/EventLogServerUnencrypted.ts +180 -77
  966. package/src/eventlog/EventRow.ts +706 -0
  967. package/src/eventlog/SqlEventJournal.ts +453 -173
  968. package/src/eventlog/SqlEventLogServerEncrypted.ts +212 -83
  969. package/src/eventlog/SqlEventLogServerUnencrypted.ts +141 -62
  970. package/src/eventlog/index.ts +6 -0
  971. package/src/eventlog/internal/conflicts.ts +123 -0
  972. package/src/graphql/GraphQLClient.ts +17 -5
  973. package/src/graphql/GraphQLClientError.ts +5 -12
  974. package/src/graphql/GraphQLProtocol.ts +277 -20
  975. package/src/graphql/GraphQLResolver.ts +109 -230
  976. package/src/http/FetchHttpClient.ts +61 -8
  977. package/src/http/FindMyWay/internal/router.ts +13 -1
  978. package/src/http/Headers.ts +343 -163
  979. package/src/http/HttpClient.ts +144 -136
  980. package/src/http/HttpClientError.ts +10 -6
  981. package/src/http/HttpClientRequest.ts +315 -11
  982. package/src/http/HttpClientResponse.ts +71 -0
  983. package/src/http/HttpEffect.ts +25 -33
  984. package/src/http/HttpIncomingMessage.ts +3 -23
  985. package/src/http/HttpMiddleware.ts +265 -28
  986. package/src/http/HttpRouter.ts +67 -14
  987. package/src/http/HttpServerError.ts +14 -7
  988. package/src/http/HttpServerRequest.ts +73 -14
  989. package/src/http/HttpServerResponse.ts +49 -23
  990. package/src/http/HttpStaticServer.ts +29 -19
  991. package/src/http/HttpTraceContext.ts +1 -1
  992. package/src/http/MultipartParser/internal/contentType.ts +107 -6
  993. package/src/http/MultipartParser/internal/headers.ts +4 -16
  994. package/src/http/MultipartParser/internal/multipart.ts +10 -32
  995. package/src/http/Url.ts +8 -2
  996. package/src/http/UrlParams.ts +225 -26
  997. package/src/http/internal/compression.ts +3 -17
  998. package/src/http/internal/compressionBody.ts +56 -0
  999. package/src/http/internal/decompression.ts +235 -0
  1000. package/src/http/internal/lazyStream.ts +25 -0
  1001. package/src/http/internal/requestState.ts +33 -0
  1002. package/src/http/internal/tracing.ts +21 -4
  1003. package/src/http/internal/urlParams.ts +5 -0
  1004. package/src/http/internal/webResponse.ts +20 -0
  1005. package/src/http-api/HttpApi.ts +1 -1
  1006. package/src/http-api/HttpApiBuilder.ts +151 -23
  1007. package/src/http-api/HttpApiClient.ts +160 -31
  1008. package/src/http-api/HttpApiEndpoint.ts +144 -33
  1009. package/src/http-api/HttpApiError.ts +55 -0
  1010. package/src/http-api/HttpApiScalar.ts +4 -3
  1011. package/src/http-api/HttpApiSchema.ts +275 -13
  1012. package/src/http-api/HttpApiSwagger.ts +11 -4
  1013. package/src/http-api/HttpApiTest.ts +33 -9
  1014. package/src/http-api/OpenApi.ts +84 -42
  1015. package/src/http-api/internal/path.ts +40 -12
  1016. package/src/index.ts +24 -0
  1017. package/src/internal/core.ts +22 -2
  1018. package/src/internal/dateTime.ts +20 -7
  1019. package/src/internal/effect.ts +125 -88
  1020. package/src/internal/graphql.ts +30 -7
  1021. package/src/internal/hashMap.ts +2 -2
  1022. package/src/internal/hydration.ts +15 -0
  1023. package/src/internal/inflate.ts +710 -0
  1024. package/src/internal/record.ts +6 -0
  1025. package/src/internal/request.ts +21 -6
  1026. package/src/internal/schedule.ts +20 -39
  1027. package/src/internal/schema/fromJsonSchemaDocument.ts +262 -193
  1028. package/src/internal/schema/interpreter.ts +58 -45
  1029. package/src/internal/schema/standardSchema.ts +32 -30
  1030. package/src/internal/schema/toCodeDocument.ts +8 -3
  1031. package/src/internal/schema/toCodec.ts +116 -1
  1032. package/src/internal/schema/toFormatter.ts +6 -6
  1033. package/src/internal/schema/toJsonSchemaDocument.ts +69 -39
  1034. package/src/internal/trie.ts +1 -3
  1035. package/src/internal/uuid.ts +15 -10
  1036. package/src/internal/version.ts +1 -1
  1037. package/src/net/NetAddress.ts +2 -9
  1038. package/src/observability/Otlp.ts +18 -0
  1039. package/src/observability/OtlpExporter.ts +19 -15
  1040. package/src/observability/OtlpLogger.ts +31 -2
  1041. package/src/observability/OtlpMetrics.ts +35 -4
  1042. package/src/observability/OtlpResource.ts +16 -6
  1043. package/src/observability/OtlpSerialization.ts +17 -3
  1044. package/src/observability/OtlpTracer.ts +32 -3
  1045. package/src/observability/internal/protobuf.ts +2 -10
  1046. package/src/persistence/PersistedCache.ts +3 -1
  1047. package/src/persistence/PersistedQueue.ts +223 -153
  1048. package/src/persistence/Persistence.ts +64 -30
  1049. package/src/persistence/RateLimiter.ts +18 -21
  1050. package/src/persistence/UserDirectories.ts +273 -0
  1051. package/src/persistence/index.ts +6 -0
  1052. package/src/process/ChildProcess.ts +2 -1
  1053. package/src/reactivity/AsyncResult.ts +35 -38
  1054. package/src/reactivity/Atom.ts +134 -166
  1055. package/src/reactivity/AtomHttpApi.ts +10 -16
  1056. package/src/reactivity/AtomRegistry.ts +53 -30
  1057. package/src/reactivity/AtomRpc.ts +6 -22
  1058. package/src/reactivity/Hydration.ts +53 -12
  1059. package/src/reactivity/Reactivity.ts +97 -39
  1060. package/src/rpc/Rpc.ts +21 -0
  1061. package/src/rpc/RpcClient.ts +285 -104
  1062. package/src/rpc/RpcSerialization.ts +21 -5
  1063. package/src/rpc/RpcServer.ts +11 -20
  1064. package/src/schema/VariantSchema.ts +86 -22
  1065. package/src/socket/Socket.ts +45 -20
  1066. package/src/sql/Migrator.ts +19 -9
  1067. package/src/sql/SqlClient.ts +275 -36
  1068. package/src/sql/SqlResolver.ts +9 -0
  1069. package/src/sql/Statement.ts +35 -8
  1070. package/src/testing/TestClock.ts +147 -29
  1071. package/src/testing/TestSchema.ts +9 -3
  1072. package/src/workflow/Activity.ts +1 -0
  1073. package/src/workflow/Workflow.ts +31 -5
  1074. package/src/workflow/WorkflowEngine.ts +93 -31
  1075. package/dist/http/internal/preResponseHandler.d.ts +0 -2
  1076. package/dist/http/internal/preResponseHandler.d.ts.map +0 -1
  1077. package/dist/http/internal/preResponseHandler.js +0 -14
  1078. package/dist/http/internal/preResponseHandler.js.map +0 -1
  1079. package/src/http/internal/preResponseHandler.ts +0 -19
package/dist/Effect.js CHANGED
@@ -1,7 +1,8 @@
1
+ /// <reference lib="esnext.disposable" preserve="true" />
1
2
  import * as Context from "./Context.js";
2
3
  import * as Duration from "./Duration.js";
3
4
  import * as Exit from "./Exit.js";
4
- import { constant, dual } from "./Function.js";
5
+ import { dual } from "./Function.js";
5
6
  import * as core from "./internal/core.js";
6
7
  import * as internal from "./internal/effect.js";
7
8
  import * as internalExecutionPlan from "./internal/executionPlan.js";
@@ -422,8 +423,9 @@ export const whileLoop = internal.whileLoop;
422
423
  *
423
424
  * **Details**
424
425
  *
425
- * An optional `AbortSignal` can be provided to allow for interruption of the
426
- * wrapped `Promise` API.
426
+ * If `evaluate` declares a parameter, it receives an `AbortSignal` that is
427
+ * aborted if the effect is interrupted. Zero-argument thunks do not allocate
428
+ * an `AbortController`.
427
429
  *
428
430
  * **Gotchas**
429
431
  *
@@ -433,6 +435,13 @@ export const whileLoop = internal.whileLoop;
433
435
  * Interruption aborts the provided `AbortSignal`, but the underlying
434
436
  * asynchronous operation only stops if it observes that signal.
435
437
  *
438
+ * The parameter check reads the `length` property of `evaluate`, which does
439
+ * not count a rest parameter or any parameter from the first default value
440
+ * onward. `(...args) => ...` and `(signal = fallback) => ...` therefore
441
+ * receive `undefined` instead of a signal, as do wrappers that forward
442
+ * arguments through rest parameters. Declare the signal as an ordinary
443
+ * parameter: `(signal) => ...`.
444
+ *
436
445
  * **Example** (Wrapping a non-rejecting Promise)
437
446
  *
438
447
  * ```ts import.meta.vitest
@@ -474,9 +483,10 @@ export const promise = internal.promise;
474
483
  * Passing `{ try, catch }` uses `catch` to map failures to an error of type
475
484
  * `E`.
476
485
  *
477
- * The thunk receives an `AbortSignal` that is aborted if the effect is
478
- * interrupted. The underlying asynchronous operation only stops if it observes
479
- * that signal.
486
+ * If the thunk declares a parameter, it receives an `AbortSignal` that is
487
+ * aborted if the effect is interrupted. The underlying asynchronous operation
488
+ * only stops if it observes that signal. Zero-argument thunks do not allocate
489
+ * an `AbortController`.
480
490
  *
481
491
  * **Gotchas**
482
492
  *
@@ -484,6 +494,13 @@ export const promise = internal.promise;
484
494
  * defect. Return the error value you want in the error channel instead of
485
495
  * throwing it.
486
496
  *
497
+ * The parameter check reads the thunk's `length` property, which does not
498
+ * count a rest parameter or any parameter from the first default value
499
+ * onward. `(...args) => ...` and `(signal = fallback) => ...` therefore
500
+ * receive `undefined` instead of a signal, as do wrappers that forward
501
+ * arguments through rest parameters. Declare the signal as an ordinary
502
+ * parameter: `(signal) => ...`.
503
+ *
487
504
  * **Example** (Wrapping a fetch request that may fail)
488
505
  *
489
506
  * ```ts import.meta.vitest
@@ -750,10 +767,20 @@ undefined_ as undefined };
750
767
  *
751
768
  * **Details**
752
769
  *
753
- * The registration function receives a `resume` callback and, when requested,
754
- * an `AbortSignal`. Call `resume` at most once with the effect that should
755
- * complete the fiber; later calls are ignored. Return an optional cleanup
756
- * effect from the registration function to run if the fiber is interrupted.
770
+ * The registration function receives a `resume` callback and, if it declares
771
+ * a second parameter, an `AbortSignal` that is aborted if the fiber is
772
+ * interrupted. Call `resume` at most once with the effect that should complete
773
+ * the fiber; later calls are ignored. Return an optional cleanup effect from
774
+ * the registration function to run if the fiber is interrupted.
775
+ *
776
+ * **Gotchas**
777
+ *
778
+ * The parameter check reads the registration function's `length` property,
779
+ * which must be at least `2` and does not count a rest parameter or any
780
+ * parameter from the first default value onward. `(...args) => ...` and
781
+ * `(resume, signal = fallback) => ...` therefore receive `undefined` instead
782
+ * of a signal, as do wrappers that forward arguments through rest parameters.
783
+ * Declare both as ordinary parameters: `(resume, signal) => ...`.
757
784
  *
758
785
  * **Example** (Integrating callback APIs)
759
786
  *
@@ -1298,7 +1325,9 @@ export const fromResult = internal.fromResult;
1298
1325
  * `Option.some` becomes a successful effect with the contained value, while
1299
1326
  * `Option.none` becomes a failed effect. By default the failure is a
1300
1327
  * `NoSuchElementError`, but you can provide an `onNone` callback to customize
1301
- * the error value.
1328
+ * the error value. For `Option.none`, `onNone` is evaluated on each execution,
1329
+ * not when the effect is constructed. It is never called for `Option.some`.
1330
+ * If `onNone` throws, the effect dies with the thrown value as a defect.
1302
1331
  *
1303
1332
  * **Example** (Converting an Option into an Effect)
1304
1333
  *
@@ -1648,9 +1677,12 @@ export const tap = internal.tap;
1648
1677
  *
1649
1678
  * **Gotchas**
1650
1679
  *
1651
- * `result` only captures typed, recoverable failures. Defects and
1652
- * interruptions are not captured inside the `Result` and still fail the
1653
- * effect.
1680
+ * `result` only captures typed, recoverable failures. If the cause contains a
1681
+ * defect, nothing is captured and every typed error is converted to a defect,
1682
+ * preserving reason order and interrupts. A cause with only interruptions
1683
+ * still fails the effect, but an interruption alongside a typed error does not
1684
+ * prevent capture. The first typed error becomes a `Result.Failure` and the
1685
+ * interruption is discarded.
1654
1686
  *
1655
1687
  * **Example** (Capturing success or failure as Result)
1656
1688
  *
@@ -1691,9 +1723,12 @@ export const result = internal.result;
1691
1723
  *
1692
1724
  * **Gotchas**
1693
1725
  *
1694
- * `option` only captures typed, recoverable failures as `Option.none`.
1695
- * Defects and interruptions are not captured inside the `Option` and still
1696
- * fail the effect.
1726
+ * `option` only captures typed, recoverable failures as `Option.none`. If the
1727
+ * cause contains a defect, nothing is captured and every typed error is
1728
+ * converted to a defect, preserving reason order and interrupts. A cause with
1729
+ * only interruptions still fails the effect, but an interruption alongside a
1730
+ * typed error does not prevent capture. The effect succeeds with
1731
+ * `Option.none()` and the interruption is discarded.
1697
1732
  *
1698
1733
  * `option` also discards typed failure values. Use `result` if the failure
1699
1734
  * value matters.
@@ -2047,6 +2082,11 @@ export {
2047
2082
  * `catch` only handles recoverable errors. It will not recover from
2048
2083
  * unrecoverable defects.
2049
2084
  *
2085
+ * Defects take precedence over typed errors. If the cause also contains a
2086
+ * defect, the handler does not run and the failure is propagated with every
2087
+ * typed error converted to a defect. An interruption alongside a typed error
2088
+ * does not prevent recovery.
2089
+ *
2050
2090
  * @see {@link catchCause} for a version that can recover from both recoverable and unrecoverable errors.
2051
2091
  *
2052
2092
  * @stability stable
@@ -2068,6 +2108,12 @@ catch_ as catch };
2068
2108
  * The error type must have a readonly `_tag` field. `catchTag` matches that
2069
2109
  * field and only handles errors with the requested tag.
2070
2110
  *
2111
+ * **Gotchas**
2112
+ *
2113
+ * If the cause contains a defect, the handler is skipped and every typed error
2114
+ * is converted to a defect, preserving reason order and interrupts. An
2115
+ * interruption alongside a typed error does not prevent recovery.
2116
+ *
2071
2117
  * **Example** (Handling a tagged error)
2072
2118
  *
2073
2119
  * ```ts import.meta.vitest
@@ -2119,6 +2165,12 @@ export const catchTag = internal.catchTag;
2119
2165
  * The error type must have a readonly `_tag` field to use `catchTags`. This
2120
2166
  * field is used to identify and match errors.
2121
2167
  *
2168
+ * **Gotchas**
2169
+ *
2170
+ * If the cause contains a defect, the handler is skipped and every typed error
2171
+ * is converted to a defect, preserving reason order and interrupts. An
2172
+ * interruption alongside a typed error does not prevent recovery.
2173
+ *
2122
2174
  * **Example** (Handling multiple tagged errors)
2123
2175
  *
2124
2176
  * ```ts import.meta.vitest
@@ -2165,6 +2217,12 @@ export const catchTags = internal.catchTags;
2165
2217
  * Use this to handle nested error causes without removing the parent error
2166
2218
  * from the error channel. The handler receives the unwrapped reason.
2167
2219
  *
2220
+ * **Gotchas**
2221
+ *
2222
+ * If the cause contains a defect, the handler is skipped and every typed error
2223
+ * is converted to a defect, preserving reason order and interrupts. An
2224
+ * interruption alongside a typed error does not prevent recovery.
2225
+ *
2168
2226
  * **Example** (Handling an error reason)
2169
2227
  *
2170
2228
  * ```ts import.meta.vitest
@@ -2206,6 +2264,12 @@ export const catchReason = internal.catchReason;
2206
2264
  /**
2207
2265
  * Catches multiple reasons within a tagged error using an object of handlers.
2208
2266
  *
2267
+ * **Gotchas**
2268
+ *
2269
+ * If the cause contains a defect, the handler is skipped and every typed error
2270
+ * is converted to a defect, preserving reason order and interrupts. An
2271
+ * interruption alongside a typed error does not prevent recovery.
2272
+ *
2209
2273
  * **Example** (Handling multiple error reasons)
2210
2274
  *
2211
2275
  * ```ts import.meta.vitest
@@ -2344,6 +2408,12 @@ export const catchCause = internal.catchCause;
2344
2408
  * they often indicate serious issues. In some cases, such as dynamically loaded
2345
2409
  * plugins, controlled recovery may be needed.
2346
2410
  *
2411
+ * **Gotchas**
2412
+ *
2413
+ * `catchDefect` recovers any cause that contains a defect, including causes
2414
+ * that also contain typed errors. Typed error handlers such as `catch` skip
2415
+ * those causes, so defects always take precedence.
2416
+ *
2347
2417
  * **Example** (Recovering from defects)
2348
2418
  *
2349
2419
  * ```ts import.meta.vitest
@@ -2384,6 +2454,12 @@ export const catchDefect = internal.catchDefect;
2384
2454
  * matching. Non-matching errors re-fail with the original cause. Defects and
2385
2455
  * interrupts are not caught.
2386
2456
  *
2457
+ * **Gotchas**
2458
+ *
2459
+ * If the cause contains a defect, the handler is skipped and every typed error
2460
+ * is converted to a defect, preserving reason order and interrupts. An
2461
+ * interruption alongside a typed error does not prevent recovery.
2462
+ *
2387
2463
  * **Example** (Recovering when a predicate matches)
2388
2464
  *
2389
2465
  * ```ts import.meta.vitest
@@ -2433,6 +2509,12 @@ export const catchIf = internal.catchIf;
2433
2509
  * `orElse` when provided. Without `orElse`, the original failure cause is
2434
2510
  * preserved.
2435
2511
  *
2512
+ * **Gotchas**
2513
+ *
2514
+ * If the cause contains a defect, the handler is skipped and every typed error
2515
+ * is converted to a defect, preserving reason order and interrupts. An
2516
+ * interruption alongside a typed error does not prevent recovery.
2517
+ *
2436
2518
  * @see {@link catchIf} for predicate-based recovery from typed errors
2437
2519
  * @see {@link catchTag} for recovering from a single tagged error
2438
2520
  * @see {@link catchTags} for recovering from several tagged errors
@@ -2561,6 +2643,9 @@ export const catchCauseFilter = internal.catchCauseFilter;
2561
2643
  * Only the failure channel is transformed. The success channel and requirements
2562
2644
  * are preserved.
2563
2645
  *
2646
+ * Maps every typed error in the cause, preserving defects, interrupts and
2647
+ * reason order. Unlike typed recovery, mapping does not convert errors to defects.
2648
+ *
2564
2649
  * **Example** (Transforming the error channel)
2565
2650
  *
2566
2651
  * ```ts import.meta.vitest
@@ -2604,6 +2689,9 @@ export const mapError = internal.mapError;
2604
2689
  * the error and the success values without altering the overall success or
2605
2690
  * failure status of the effect.
2606
2691
  *
2692
+ * Maps every typed error in the cause, preserving defects, interrupts and
2693
+ * reason order. Unlike typed recovery, mapping does not convert errors to defects.
2694
+ *
2607
2695
  * **Example** (Transforming success and failure channels)
2608
2696
  *
2609
2697
  * ```ts import.meta.vitest
@@ -2924,7 +3012,9 @@ export const eventually = internal.eventually;
2924
3012
  * applied. For example, `Schedule.recurs(3)` allows up to three retries after
2925
3013
  * the initial attempt.
2926
3014
  *
2927
- * Defects and interruptions are not retried.
3015
+ * Defects take precedence over typed errors. A failure whose cause contains a
3016
+ * defect is not retried and is propagated with every typed error converted to a
3017
+ * defect. A typed error alongside an interruption is retried.
2928
3018
  *
2929
3019
  * **Example** (Retrying with a schedule)
2930
3020
  *
@@ -2972,6 +3062,14 @@ export const retry = internalSchedule.retry;
2972
3062
  * If the retries are exhausted and the effect still fails, it runs a fallback
2973
3063
  * effect instead.
2974
3064
  *
3065
+ * **Gotchas**
3066
+ *
3067
+ * Defects take precedence over typed errors. A failure whose cause contains a
3068
+ * defect is not retried and is propagated with every typed error converted to a
3069
+ * defect. A typed error alongside an interruption is retried. When the cause
3070
+ * contains a defect, `orElse` does not run.
3071
+ * This applies to source failures only; policy failures propagate unchanged.
3072
+ *
2975
3073
  * **Example** (Falling back after retries are exhausted)
2976
3074
  *
2977
3075
  * ```ts import.meta.vitest
@@ -3017,8 +3115,8 @@ export const retryOrElse = internalSchedule.retryOrElse;
3017
3115
  * **Details**
3018
3116
  *
3019
3117
  * Use `sandbox` when downstream error handling needs to distinguish typed
3020
- * failures, defects, and interruptions. Use `unsandbox` to restore the original
3021
- * typed error channel after cause-level handling.
3118
+ * failures, defects, and interruptions. Use `Effect.catch(Effect.failCause)` to
3119
+ * restore the original typed error channel after cause-level handling.
3022
3120
  *
3023
3121
  * **Example** (Exposing failures as causes)
3024
3122
  *
@@ -3054,6 +3152,13 @@ export const sandbox = internal.sandbox;
3054
3152
  * Use the `log` option to emit the full {@link Cause} when the effect fails,
3055
3153
  * and `message` to prepend a custom log message.
3056
3154
  *
3155
+ * **Gotchas**
3156
+ *
3157
+ * Defects take precedence over typed errors. If the cause also contains a
3158
+ * defect, the failure is not ignored and is propagated with every typed error
3159
+ * converted to a defect. An interruption alongside a typed error does not
3160
+ * prevent the error from being ignored.
3161
+ *
3057
3162
  * **Example** (Discarding success and failure values)
3058
3163
  *
3059
3164
  * ```ts import.meta.vitest
@@ -3219,6 +3324,12 @@ export const withErrorReporting = internal.withErrorReporting;
3219
3324
  *
3220
3325
  * Defects and interruptions are not recovered by this operator.
3221
3326
  *
3327
+ * **Gotchas**
3328
+ *
3329
+ * If the cause contains a defect, the handler is skipped and every typed error
3330
+ * is converted to a defect, preserving reason order and interrupts. An
3331
+ * interruption alongside a typed error does not prevent recovery.
3332
+ *
3222
3333
  * **Example** (Replacing failures with a value)
3223
3334
  *
3224
3335
  * ```ts import.meta.vitest
@@ -3847,6 +3958,12 @@ export const when = internal.when;
3847
3958
  * to process the result if the effect succeeds, or handle the error if the
3848
3959
  * effect fails.
3849
3960
  *
3961
+ * **Gotchas**
3962
+ *
3963
+ * If the cause contains a defect, the handler is skipped and every typed error
3964
+ * is converted to a defect, preserving reason order and interrupts. An
3965
+ * interruption alongside a typed error does not prevent recovery.
3966
+ *
3850
3967
  * **Example** (Matching success and failure values)
3851
3968
  *
3852
3969
  * ```ts import.meta.vitest
@@ -3899,6 +4016,12 @@ export const match = internal.match;
3899
4016
  * the handlers immediately without fiber scheduling. For unresolved effects,
3900
4017
  * it falls back to the regular `match` behavior.
3901
4018
  *
4019
+ * **Gotchas**
4020
+ *
4021
+ * If the cause contains a defect, the handler is skipped and every typed error
4022
+ * is converted to a defect, preserving reason order and interrupts. An
4023
+ * interruption alongside a typed error does not prevent recovery.
4024
+ *
3902
4025
  * **Example** (Pattern matching eagerly when possible)
3903
4026
  *
3904
4027
  * ```ts import.meta.vitest
@@ -4087,6 +4210,12 @@ export const matchCauseEffect = internal.matchCauseEffect;
4087
4210
  * performing logging, recovery, notification, or other effectful work. The
4088
4211
  * returned effect succeeds or fails according to the handler that is run.
4089
4212
  *
4213
+ * **Gotchas**
4214
+ *
4215
+ * If the cause contains a defect, the handler is skipped and every typed error
4216
+ * is converted to a defect, preserving reason order and interrupts. An
4217
+ * interruption alongside a typed error does not prevent recovery.
4218
+ *
4090
4219
  * **Example** (Matching success and failure with effectful handlers)
4091
4220
  *
4092
4221
  * ```ts import.meta.vitest
@@ -4301,9 +4430,9 @@ export const context = internal.context;
4301
4430
  */
4302
4431
  export const contextWith = internal.contextWith;
4303
4432
  /**
4304
- * Provides dependencies to an effect using layers or a context. Use `options.local`
4305
- * to build the layer every time; by default, layers are shared between provide
4306
- * calls.
4433
+ * Provides dependencies to an effect using layers or a context. A layer already
4434
+ * built by an enclosing `provide` or runtime is reused. Sibling `provide` calls
4435
+ * build their own copies. Use `options.local` to build a fresh layer subtree.
4307
4436
  *
4308
4437
  * **Example** (Providing dependencies with a layer)
4309
4438
  *
@@ -5767,6 +5896,10 @@ export const forever = internal.forever;
5767
5896
  * The source effect is always evaluated once before the schedule is stepped.
5768
5897
  * The schedule controls additional repetitions, not the initial execution.
5769
5898
  *
5899
+ * If the effect or policy fails with a cause that contains a defect, the
5900
+ * failure is propagated with every typed error converted to a defect.
5901
+ * An interruption alongside a typed error does not block the typed error path.
5902
+ *
5770
5903
  * **Example** (Repeating successful effects with a schedule)
5771
5904
  *
5772
5905
  * ```ts import.meta.vitest
@@ -5834,6 +5967,13 @@ export const repeat = internalSchedule.repeat;
5834
5967
  * otherwise it receives `None`. If the schedule completes normally, the
5835
5968
  * returned effect succeeds with the schedule's output.
5836
5969
  *
5970
+ * **Gotchas**
5971
+ *
5972
+ * Defects take precedence over typed errors from either the effect or policy.
5973
+ * If the cause contains a defect, `orElse` does not run and every typed error
5974
+ * is converted to a defect. An interruption alongside a typed error does not
5975
+ * prevent `orElse` from running.
5976
+ *
5837
5977
  * **Example** (Recovering after repetition stops)
5838
5978
  *
5839
5979
  * ```ts import.meta.vitest
@@ -6540,8 +6680,8 @@ export const requestUnsafe = internalRequest.requestUnsafe;
6540
6680
  * You can use the `forkChild` method whenever you want to execute an effect in a
6541
6681
  * new fiber, concurrently and without "blocking" the fiber executing other
6542
6682
  * effects. Using fibers can be tricky, so instead of using this method
6543
- * directly, consider other higher-level methods, such as `raceWith`,
6544
- * `zipPar`, and so forth.
6683
+ * directly, consider higher-level methods such as `Effect.race`,
6684
+ * `Effect.raceFirst`, or `Effect.all` with a concurrency option.
6545
6685
  *
6546
6686
  * The fiber returned by this method has methods to interrupt the fiber and to
6547
6687
  * wait for it to finish executing the effect. See `Fiber` for more
@@ -6630,9 +6770,14 @@ export const forkIn = internal.forkIn;
6630
6770
  */
6631
6771
  export const forkScoped = internal.forkScoped;
6632
6772
  /**
6633
- * Forks the effect into a new fiber attached to the global scope. Because the
6634
- * new fiber is attached to the global scope, when the fiber executing the
6635
- * returned effect terminates, the forked fiber will continue running.
6773
+ * Forks the effect into a new fiber with no parent and no scope, so its lifetime
6774
+ * is independent of the forking fiber.
6775
+ *
6776
+ * **Details**
6777
+ *
6778
+ * The detached fiber inherits the forking fiber's context. It continues running
6779
+ * until it completes or is explicitly interrupted through the returned handle,
6780
+ * even after the forking fiber terminates.
6636
6781
  *
6637
6782
  * **Example** (Forking a detached fiber)
6638
6783
  *
@@ -6736,11 +6881,11 @@ export const fiberId = internal.fiberId;
6736
6881
  * import { Effect, Fiber } from "effect"
6737
6882
  * const output: Array<unknown> = []
6738
6883
  *
6739
- * // ┌─── Effect<number, never, never>
6884
+ * // ┌─── Effect<string, never, never>
6740
6885
  * // ▼
6741
6886
  * const program = Effect.sync(() => { output.push("running...") }).pipe(Effect.as("done"))
6742
6887
  *
6743
- * // ┌─── RuntimeFiber<number, never>
6888
+ * // ┌─── Fiber<string, never>
6744
6889
  * // ▼
6745
6890
  * const fiber = Effect.runFork(program)
6746
6891
  *
@@ -7045,9 +7190,10 @@ export const runPromiseExitWith = internal.runPromiseExitWith;
7045
7190
  *
7046
7191
  * **Details**
7047
7192
  *
7048
- * If the effect fails, dies, is interrupted, or performs asynchronous work,
7049
- * `runSync` throws a `FiberFailure` instead of returning a value. Use
7050
- * `runSyncExit` when you want the failure captured as an `Exit`.
7193
+ * If the effect fails, dies, or is interrupted, `runSync` throws the squashed
7194
+ * cause instead of returning a value. Typed errors can be thrown directly,
7195
+ * including non-Error values. Asynchronous work throws `Cause.AsyncFiberError`.
7196
+ * Use `runSyncExit` when you want the failure captured as an `Exit`.
7051
7197
  *
7052
7198
  * **Example** (Running a synchronous effect)
7053
7199
  *
@@ -8120,36 +8266,31 @@ export const trackDuration = /*#__PURE__*/dual(args => isEffect(args[0]), (self,
8120
8266
  return Metric.update(metric, input);
8121
8267
  });
8122
8268
  }));
8123
- // -----------------------------------------------------------------------------
8124
- // Transactions
8125
- // -----------------------------------------------------------------------------
8126
8269
  /**
8127
8270
  * Service that holds the current transaction state.
8128
8271
  *
8129
8272
  * **Details**
8130
8273
  *
8131
- * It includes a journal that stores non-committed changes to `TxRef` values and
8132
- * a retry flag that records whether the transaction should be retried.
8274
+ * Nested {@link tx} calls reuse this same service instance. Yield it inside a
8275
+ * transaction body to read {@link TransactionMeta} fields such as `attempt`
8276
+ * and `retryReason`.
8133
8277
  *
8134
- * **Example** (Building transactions)
8278
+ * **Example** (Reading transaction metadata)
8135
8279
  *
8136
8280
  * ```ts import.meta.vitest
8137
8281
  * import { Effect } from "effect"
8138
8282
  *
8139
- * // Transaction class for software transactional memory operations
8140
- * const txEffect = Effect.gen(function*() {
8283
+ * const program = Effect.tx(Effect.gen(function*() {
8141
8284
  * const tx = yield* Effect.Transaction
8142
- * // Use transaction for coordinated state changes
8143
- * return "Transaction complete"
8144
- * })
8285
+ * return [tx.attempt, tx.retryReason, tx.elapsed, tx.elapsedSincePrevious]
8286
+ * }))
8145
8287
  *
8146
- * const runnable = Effect.provideService(txEffect, Effect.Transaction, {
8147
- * retry: false,
8148
- * journal: new Map()
8149
- * })
8150
- * Effect.runSync(runnable) // => "Transaction complete"
8288
+ * Effect.runSync(program) // => [1, undefined, 0, 0]
8151
8289
  * ```
8152
8290
  *
8291
+ * @see {@link tx} for the outermost transaction boundary that creates this service
8292
+ * @see {@link TransactionMeta} for the journal and attempt metadata
8293
+ *
8153
8294
  * @stability stable
8154
8295
  * @category transactions
8155
8296
  * @since 4.0.0
@@ -8203,41 +8344,64 @@ export class Transaction extends /*#__PURE__*/Context.Service()("effect/Effect/T
8203
8344
  * @since 4.0.0
8204
8345
  */
8205
8346
  export const tx = effect => withFiber(fiber => {
8206
- let state = Context.getOrUndefined(fiber.context, Transaction);
8347
+ const state = Context.getOrUndefined(fiber.context, Transaction);
8207
8348
  if (state && !completedTransactions.has(state)) {
8208
8349
  return effect;
8209
8350
  }
8351
+ const clock = fiber.getRef(internal.ClockRef);
8352
+ const now = clock.currentTimeMillisUnsafe();
8210
8353
  // Create transaction state only at the outermost boundary
8211
- state = {
8354
+ const mutable = {
8212
8355
  journal: new Map(),
8213
- retry: false
8356
+ retry: false,
8357
+ attempt: 1,
8358
+ retryReason: undefined,
8359
+ start: now,
8360
+ now,
8361
+ elapsed: 0,
8362
+ elapsedSincePrevious: 0
8214
8363
  };
8215
8364
  let result;
8216
- return uninterruptibleMask(restore => flatMap(whileLoop({
8217
- while: () => !result,
8218
- body: constant(restore(effect).pipe(provideService(Transaction, state), tapCause(cause => {
8219
- if (!state.retry) return void_;
8365
+ return uninterruptibleMask(restore => {
8366
+ const run = restore(effect).pipe(provideService(Transaction, mutable), tapCause(cause => {
8367
+ if (!mutable.retry) return void_;
8220
8368
  // txRetry interrupts the body; any other reason in the cause is a real failure.
8221
8369
  // Roll back now so the step below fails instead of waiting or rerunning.
8222
- if (!internal.hasInterruptsOnly(cause)) return sync(() => clearTransaction(state));
8223
- return restore(awaitPendingTransaction(state));
8224
- }), exit)),
8225
- step(exit) {
8226
- if (state.retry || !isTransactionConsistent(state)) {
8227
- return clearTransaction(state);
8228
- }
8229
- if (Exit.isSuccess(exit)) {
8230
- commitTransaction(fiber, state);
8370
+ if (!internal.hasInterruptsOnly(cause)) return sync(() => clearTransaction(mutable));
8371
+ return restore(awaitPendingTransaction(mutable));
8372
+ }), exit);
8373
+ return flatMap(whileLoop({
8374
+ while: () => !result,
8375
+ body: () => {
8376
+ if (mutable.attempt > 1) {
8377
+ stampTransaction(mutable, clock.currentTimeMillisUnsafe());
8378
+ }
8379
+ return run;
8380
+ },
8381
+ step(exit) {
8382
+ if (mutable.retry || !isTransactionConsistent(mutable)) {
8383
+ mutable.attempt++;
8384
+ mutable.retryReason = mutable.retry ? "retry" : "conflict";
8385
+ return clearTransaction(mutable);
8386
+ }
8387
+ if (Exit.isSuccess(exit)) {
8388
+ commitTransaction(fiber, mutable);
8389
+ }
8390
+ clearTransaction(mutable);
8391
+ completedTransactions.add(mutable);
8392
+ result = exit;
8231
8393
  }
8232
- clearTransaction(state);
8233
- completedTransactions.add(state);
8234
- result = exit;
8235
- }
8236
- }), () => result));
8394
+ }), () => result);
8395
+ });
8237
8396
  });
8238
8397
  // Child fibers inherit the boundary's state, so mark it completed once the
8239
8398
  // boundary finishes and let later `tx` calls start a fresh boundary.
8240
8399
  const completedTransactions = /*#__PURE__*/new WeakSet();
8400
+ const stampTransaction = (state, now) => {
8401
+ state.elapsedSincePrevious = now - state.now;
8402
+ state.now = now;
8403
+ state.elapsed = now - state.start;
8404
+ };
8241
8405
  const isTransactionConsistent = state => {
8242
8406
  for (const [ref, {
8243
8407
  version
@@ -8329,7 +8493,8 @@ function clearTransaction(state) {
8329
8493
  * @since 4.0.0
8330
8494
  */
8331
8495
  export const txRetry = /*#__PURE__*/flatMap(Transaction, state => {
8332
- state.retry = true;
8496
+ const mutable = state;
8497
+ mutable.retry = true;
8333
8498
  return interrupt;
8334
8499
  });
8335
8500
  /**
@@ -8339,7 +8504,7 @@ export const txRetry = /*#__PURE__*/flatMap(Transaction, state => {
8339
8504
  * **Details**
8340
8505
  *
8341
8506
  * The original function is called with the supplied arguments plus a final
8342
- * callback. A non-null callback error fails the returned effect, while a
8507
+ * callback. A truthy callback error fails the returned effect, while a
8343
8508
  * successful callback value becomes the effect success. Use `onError` to map
8344
8509
  * callback errors and `onSyncError` to turn synchronous throws into typed
8345
8510
  * failures; otherwise synchronous throws become defects.
@@ -8386,16 +8551,24 @@ export const txRetry = /*#__PURE__*/flatMap(Transaction, state => {
8386
8551
  * @since 4.0.0
8387
8552
  */
8388
8553
  export const effectify = (fn, onError, onSyncError) => (...args) => callback(resume => {
8554
+ let synchronous = true;
8555
+ let pending;
8389
8556
  try {
8390
8557
  fn(...args, (err, result) => {
8391
- if (err) {
8392
- resume(onError ? suspend(() => fail(onError(err, args))) : fail(err));
8558
+ const effect = err ? onError ? suspend(() => fail(onError(err, args))) : fail(err) : succeed(result);
8559
+ if (synchronous) {
8560
+ // Keep the first callback result until registration succeeds.
8561
+ pending ??= effect;
8393
8562
  } else {
8394
- resume(succeed(result));
8563
+ resume(effect);
8395
8564
  }
8396
8565
  });
8397
8566
  } catch (err) {
8398
- resume(onSyncError ? fail(onSyncError(err, args)) : die(err));
8567
+ pending = onSyncError ? fail(onSyncError(err, args)) : die(err);
8568
+ }
8569
+ synchronous = false;
8570
+ if (pending) {
8571
+ resume(pending);
8399
8572
  }
8400
8573
  });
8401
8574
  // -----------------------------------------------------------------------------
@@ -8544,6 +8717,9 @@ export const mapEager = internal.mapEager;
8544
8717
  * transform. Failure effects apply the mapping function immediately, and
8545
8718
  * pending effects fall back to regular `mapError` behavior.
8546
8719
  *
8720
+ * Maps every typed error in the cause, preserving defects, interrupts and
8721
+ * reason order. Unlike typed recovery, mapping does not convert errors to defects.
8722
+ *
8547
8723
  * **Example** (Mapping errors eagerly when possible)
8548
8724
  *
8549
8725
  * ```ts import.meta.vitest
@@ -8587,6 +8763,9 @@ export const mapErrorEager = internal.mapErrorEager;
8587
8763
  * `onFailure` immediately. Pending effects fall back to regular `mapBoth`
8588
8764
  * behavior.
8589
8765
  *
8766
+ * Maps every typed error in the cause, preserving defects, interrupts and
8767
+ * reason order. Unlike typed recovery, mapping does not convert errors to defects.
8768
+ *
8590
8769
  * **Example** (Mapping both channels eagerly when possible)
8591
8770
  *
8592
8771
  * ```ts import.meta.vitest
@@ -8668,6 +8847,12 @@ export const flatMapEager = internal.flatMapEager;
8668
8847
  * Failure effects apply the catch function immediately, and pending effects
8669
8848
  * fall back to regular `catch` behavior.
8670
8849
  *
8850
+ * **Gotchas**
8851
+ *
8852
+ * If the cause contains a defect, the handler is skipped and every typed error
8853
+ * is converted to a defect, preserving reason order and interrupts. An
8854
+ * interruption alongside a typed error does not prevent recovery.
8855
+ *
8671
8856
  * **Example** (Catching failures eagerly when possible)
8672
8857
  *
8673
8858
  * ```ts import.meta.vitest