effect 4.0.7 → 4.1.1

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 (863) hide show
  1. package/README.md +31 -1
  2. package/THIRD_PARTY_NOTICES.md +62 -0
  3. package/dist/BigDecimal.d.ts +139 -7
  4. package/dist/BigDecimal.d.ts.map +1 -1
  5. package/dist/BigDecimal.js +86 -14
  6. package/dist/BigDecimal.js.map +1 -1
  7. package/dist/Channel.d.ts +12 -6
  8. package/dist/Channel.d.ts.map +1 -1
  9. package/dist/Channel.js +9 -3
  10. package/dist/Channel.js.map +1 -1
  11. package/dist/Config.d.ts +7 -1
  12. package/dist/Config.d.ts.map +1 -1
  13. package/dist/Config.js.map +1 -1
  14. package/dist/Context.d.ts +18 -1
  15. package/dist/Context.d.ts.map +1 -1
  16. package/dist/Context.js +27 -8
  17. package/dist/Context.js.map +1 -1
  18. package/dist/Cron.d.ts +81 -11
  19. package/dist/Cron.d.ts.map +1 -1
  20. package/dist/Cron.js +101 -26
  21. package/dist/Cron.js.map +1 -1
  22. package/dist/Duration.d.ts +78 -0
  23. package/dist/Duration.d.ts.map +1 -1
  24. package/dist/Duration.js +123 -0
  25. package/dist/Duration.js.map +1 -1
  26. package/dist/Effect.d.ts +164 -7
  27. package/dist/Effect.d.ts.map +1 -1
  28. package/dist/Effect.js +11 -1
  29. package/dist/Effect.js.map +1 -1
  30. package/dist/Equal.d.ts +2 -2
  31. package/dist/Equal.d.ts.map +1 -1
  32. package/dist/Equal.js +3 -3
  33. package/dist/Equal.js.map +1 -1
  34. package/dist/FileSystem.d.ts +59 -4
  35. package/dist/FileSystem.d.ts.map +1 -1
  36. package/dist/FileSystem.js +9 -2
  37. package/dist/FileSystem.js.map +1 -1
  38. package/dist/Glob.d.ts +165 -0
  39. package/dist/Glob.d.ts.map +1 -0
  40. package/dist/Glob.js +127 -0
  41. package/dist/Glob.js.map +1 -0
  42. package/dist/Hash.d.ts +3 -2
  43. package/dist/Hash.d.ts.map +1 -1
  44. package/dist/Hash.js +5 -4
  45. package/dist/Hash.js.map +1 -1
  46. package/dist/Iterable.d.ts.map +1 -1
  47. package/dist/Iterable.js +11 -8
  48. package/dist/Iterable.js.map +1 -1
  49. package/dist/Match.d.ts +86 -0
  50. package/dist/Match.d.ts.map +1 -1
  51. package/dist/Match.js +72 -0
  52. package/dist/Match.js.map +1 -1
  53. package/dist/Path.d.ts.map +1 -1
  54. package/dist/Path.js +5 -1
  55. package/dist/Path.js.map +1 -1
  56. package/dist/Pool.d.ts +51 -0
  57. package/dist/Pool.d.ts.map +1 -1
  58. package/dist/Pool.js +61 -10
  59. package/dist/Pool.js.map +1 -1
  60. package/dist/Random.d.ts.map +1 -1
  61. package/dist/Random.js +3 -3
  62. package/dist/Random.js.map +1 -1
  63. package/dist/RcMap.d.ts.map +1 -1
  64. package/dist/RcMap.js +8 -2
  65. package/dist/RcMap.js.map +1 -1
  66. package/dist/Schedule.d.ts +18 -1
  67. package/dist/Schedule.d.ts.map +1 -1
  68. package/dist/Schedule.js +7 -2
  69. package/dist/Schedule.js.map +1 -1
  70. package/dist/Schema.d.ts +668 -42
  71. package/dist/Schema.d.ts.map +1 -1
  72. package/dist/Schema.js +652 -1
  73. package/dist/Schema.js.map +1 -1
  74. package/dist/SchemaGetter.d.ts +6 -1
  75. package/dist/SchemaGetter.d.ts.map +1 -1
  76. package/dist/SchemaGetter.js +22 -11
  77. package/dist/SchemaGetter.js.map +1 -1
  78. package/dist/SchemaRepresentation.d.ts +18 -2
  79. package/dist/SchemaRepresentation.d.ts.map +1 -1
  80. package/dist/SchemaRepresentation.js +20 -2
  81. package/dist/SchemaRepresentation.js.map +1 -1
  82. package/dist/SchemaTransformation.d.ts +10 -5
  83. package/dist/SchemaTransformation.d.ts.map +1 -1
  84. package/dist/SchemaTransformation.js +8 -5
  85. package/dist/SchemaTransformation.js.map +1 -1
  86. package/dist/ScopedCache.d.ts.map +1 -1
  87. package/dist/ScopedCache.js +5 -7
  88. package/dist/ScopedCache.js.map +1 -1
  89. package/dist/Semaphore.d.ts +130 -0
  90. package/dist/Semaphore.d.ts.map +1 -1
  91. package/dist/Semaphore.js +40 -0
  92. package/dist/Semaphore.js.map +1 -1
  93. package/dist/Stream.d.ts +13 -4
  94. package/dist/Stream.d.ts.map +1 -1
  95. package/dist/Stream.js +9 -0
  96. package/dist/Stream.js.map +1 -1
  97. package/dist/Terminal.d.ts +18 -1
  98. package/dist/Terminal.d.ts.map +1 -1
  99. package/dist/Terminal.js +1 -1
  100. package/dist/Terminal.js.map +1 -1
  101. package/dist/ai/AiError.d.ts +43 -116
  102. package/dist/ai/AiError.d.ts.map +1 -1
  103. package/dist/ai/AiError.js +53 -72
  104. package/dist/ai/AiError.js.map +1 -1
  105. package/dist/ai/Decision.d.ts +196 -15
  106. package/dist/ai/Decision.d.ts.map +1 -1
  107. package/dist/ai/Decision.js +130 -0
  108. package/dist/ai/Decision.js.map +1 -1
  109. package/dist/ai/DecisionModel.d.ts +54 -13
  110. package/dist/ai/DecisionModel.d.ts.map +1 -1
  111. package/dist/ai/DecisionModel.js +123 -12
  112. package/dist/ai/DecisionModel.js.map +1 -1
  113. package/dist/ai/McpClient.d.ts +171 -19
  114. package/dist/ai/McpClient.d.ts.map +1 -1
  115. package/dist/ai/McpClient.js +277 -66
  116. package/dist/ai/McpClient.js.map +1 -1
  117. package/dist/ai/McpSchema.d.ts +108 -0
  118. package/dist/ai/McpSchema.d.ts.map +1 -1
  119. package/dist/ai/McpSchema.js +99 -0
  120. package/dist/ai/McpSchema.js.map +1 -1
  121. package/dist/ai/McpServer.d.ts +744 -29
  122. package/dist/ai/McpServer.d.ts.map +1 -1
  123. package/dist/ai/McpServer.js +763 -136
  124. package/dist/ai/McpServer.js.map +1 -1
  125. package/dist/ai/McpTest.d.ts +130 -0
  126. package/dist/ai/McpTest.d.ts.map +1 -0
  127. package/dist/ai/McpTest.js +237 -0
  128. package/dist/ai/McpTest.js.map +1 -0
  129. package/dist/ai/Prompt.d.ts.map +1 -1
  130. package/dist/ai/Prompt.js +20 -11
  131. package/dist/ai/Prompt.js.map +1 -1
  132. package/dist/ai/Response.d.ts +1 -25
  133. package/dist/ai/Response.d.ts.map +1 -1
  134. package/dist/ai/Response.js +1 -10
  135. package/dist/ai/Response.js.map +1 -1
  136. package/dist/ai/Tool.d.ts +19 -1
  137. package/dist/ai/Tool.d.ts.map +1 -1
  138. package/dist/ai/Tool.js +5 -7
  139. package/dist/ai/Tool.js.map +1 -1
  140. package/dist/ai/index.d.ts +5 -0
  141. package/dist/ai/index.d.ts.map +1 -1
  142. package/dist/ai/index.js +5 -0
  143. package/dist/ai/index.js.map +1 -1
  144. package/dist/ai/internal/mcpCore.js +89 -15
  145. package/dist/ai/internal/mcpCore.js.map +1 -1
  146. package/dist/ai/internal/mcpProtocol/v2024_11_05.js +7 -6
  147. package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
  148. package/dist/ai/internal/mcpProtocol/v2025_03_26.js +7 -6
  149. package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
  150. package/dist/ai/internal/mcpProtocol/v2025_06_18.js +7 -6
  151. package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
  152. package/dist/ai/internal/mcpProtocol/v2025_11_25.js +7 -6
  153. package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
  154. package/dist/ai/internal/mcpProtocol/v2026_07_28.js +60 -17
  155. package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
  156. package/dist/ai/internal/mcpProtocol.js +25 -0
  157. package/dist/ai/internal/mcpProtocol.js.map +1 -1
  158. package/dist/ai/internal/mcpRuntime.js +8 -6
  159. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  160. package/dist/ai/internal/mcpSkills.d.ts +2 -0
  161. package/dist/ai/internal/mcpSkills.d.ts.map +1 -0
  162. package/dist/ai/internal/mcpSkills.js +428 -0
  163. package/dist/ai/internal/mcpSkills.js.map +1 -0
  164. package/dist/ai/internal/mcpStatefulRuntime.js +6 -1
  165. package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
  166. package/dist/cli/Argument.d.ts +6 -0
  167. package/dist/cli/Argument.d.ts.map +1 -1
  168. package/dist/cli/Argument.js +2 -0
  169. package/dist/cli/Argument.js.map +1 -1
  170. package/dist/cli/CliOutput.d.ts +65 -1
  171. package/dist/cli/CliOutput.d.ts.map +1 -1
  172. package/dist/cli/CliOutput.js +94 -37
  173. package/dist/cli/CliOutput.js.map +1 -1
  174. package/dist/cli/Command.d.ts +23 -0
  175. package/dist/cli/Command.d.ts.map +1 -1
  176. package/dist/cli/Command.js +8 -0
  177. package/dist/cli/Command.js.map +1 -1
  178. package/dist/cli/Flag.d.ts +107 -0
  179. package/dist/cli/Flag.d.ts.map +1 -1
  180. package/dist/cli/Flag.js +37 -0
  181. package/dist/cli/Flag.js.map +1 -1
  182. package/dist/cli/HelpDoc.d.ts +15 -1
  183. package/dist/cli/HelpDoc.d.ts.map +1 -1
  184. package/dist/cli/Param.d.ts +6 -0
  185. package/dist/cli/Param.d.ts.map +1 -1
  186. package/dist/cli/Param.js +2 -0
  187. package/dist/cli/Param.js.map +1 -1
  188. package/dist/cli/Primitive.d.ts +14 -0
  189. package/dist/cli/Primitive.d.ts.map +1 -1
  190. package/dist/cli/Primitive.js +15 -1
  191. package/dist/cli/Primitive.js.map +1 -1
  192. package/dist/cli/Prompt.d.ts +1 -0
  193. package/dist/cli/Prompt.d.ts.map +1 -1
  194. package/dist/cli/Prompt.js +1 -0
  195. package/dist/cli/Prompt.js.map +1 -1
  196. package/dist/cli/internal/help.d.ts.map +1 -1
  197. package/dist/cli/internal/help.js +17 -10
  198. package/dist/cli/internal/help.js.map +1 -1
  199. package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  200. package/dist/cluster/ClusterWorkflowEngine.js +15 -5
  201. package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
  202. package/dist/cluster/Reply.d.ts +1 -1
  203. package/dist/cluster/Reply.d.ts.map +1 -1
  204. package/dist/cluster/Reply.js.map +1 -1
  205. package/dist/cluster/Sharding.d.ts.map +1 -1
  206. package/dist/cluster/Sharding.js +93 -28
  207. package/dist/cluster/Sharding.js.map +1 -1
  208. package/dist/cluster/ShardingConfig.d.ts +72 -6
  209. package/dist/cluster/ShardingConfig.d.ts.map +1 -1
  210. package/dist/cluster/ShardingConfig.js +4 -0
  211. package/dist/cluster/ShardingConfig.js.map +1 -1
  212. package/dist/cluster/SingleRunner.d.ts +3 -3
  213. package/dist/cluster/SingleRunner.d.ts.map +1 -1
  214. package/dist/cluster/SingleRunner.js +1 -1
  215. package/dist/cluster/SqlMessageStorage.d.ts +37 -6
  216. package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
  217. package/dist/cluster/SqlMessageStorage.js +34 -7
  218. package/dist/cluster/SqlMessageStorage.js.map +1 -1
  219. package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
  220. package/dist/cluster/SqlRunnerStorage.js +23 -8
  221. package/dist/cluster/SqlRunnerStorage.js.map +1 -1
  222. package/dist/cluster/internal/entityManager.js +15 -7
  223. package/dist/cluster/internal/entityManager.js.map +1 -1
  224. package/dist/crypto/Aead.d.ts +323 -0
  225. package/dist/crypto/Aead.d.ts.map +1 -0
  226. package/dist/crypto/Aead.js +331 -0
  227. package/dist/crypto/Aead.js.map +1 -0
  228. package/dist/crypto/Cipher.d.ts +236 -0
  229. package/dist/crypto/Cipher.d.ts.map +1 -0
  230. package/dist/crypto/Cipher.js +233 -0
  231. package/dist/crypto/Cipher.js.map +1 -0
  232. package/dist/crypto/CryptoError.d.ts +212 -0
  233. package/dist/crypto/CryptoError.d.ts.map +1 -0
  234. package/dist/crypto/CryptoError.js +202 -0
  235. package/dist/crypto/CryptoError.js.map +1 -0
  236. package/dist/crypto/Digest.d.ts +143 -0
  237. package/dist/crypto/Digest.d.ts.map +1 -0
  238. package/dist/crypto/Digest.js +146 -0
  239. package/dist/crypto/Digest.js.map +1 -0
  240. package/dist/crypto/Kdf.d.ts +220 -0
  241. package/dist/crypto/Kdf.d.ts.map +1 -0
  242. package/dist/crypto/Kdf.js +212 -0
  243. package/dist/crypto/Kdf.js.map +1 -0
  244. package/dist/crypto/KeyAgreement.d.ts +324 -0
  245. package/dist/crypto/KeyAgreement.d.ts.map +1 -0
  246. package/dist/crypto/KeyAgreement.js +303 -0
  247. package/dist/crypto/KeyAgreement.js.map +1 -0
  248. package/dist/crypto/KeyFormat.d.ts +341 -0
  249. package/dist/crypto/KeyFormat.d.ts.map +1 -0
  250. package/dist/crypto/KeyFormat.js +556 -0
  251. package/dist/crypto/KeyFormat.js.map +1 -0
  252. package/dist/crypto/KeyWrap.d.ts +390 -0
  253. package/dist/crypto/KeyWrap.d.ts.map +1 -0
  254. package/dist/crypto/KeyWrap.js +381 -0
  255. package/dist/crypto/KeyWrap.js.map +1 -0
  256. package/dist/crypto/Mac.d.ts +278 -0
  257. package/dist/crypto/Mac.d.ts.map +1 -0
  258. package/dist/crypto/Mac.js +288 -0
  259. package/dist/crypto/Mac.js.map +1 -0
  260. package/dist/crypto/SecureRandom.d.ts +340 -0
  261. package/dist/crypto/SecureRandom.d.ts.map +1 -0
  262. package/dist/crypto/SecureRandom.js +257 -0
  263. package/dist/crypto/SecureRandom.js.map +1 -0
  264. package/dist/crypto/Signature.d.ts +449 -0
  265. package/dist/crypto/Signature.d.ts.map +1 -0
  266. package/dist/crypto/Signature.js +484 -0
  267. package/dist/crypto/Signature.js.map +1 -0
  268. package/dist/crypto/WebCrypto.d.ts +80 -0
  269. package/dist/crypto/WebCrypto.d.ts.map +1 -0
  270. package/dist/crypto/WebCrypto.js +63 -0
  271. package/dist/crypto/WebCrypto.js.map +1 -0
  272. package/dist/crypto/index.d.ts +65 -0
  273. package/dist/crypto/index.d.ts.map +1 -0
  274. package/dist/crypto/index.js +66 -0
  275. package/dist/crypto/index.js.map +1 -0
  276. package/dist/crypto/internal/asymmetric.d.ts +2 -0
  277. package/dist/crypto/internal/asymmetric.d.ts.map +1 -0
  278. package/dist/crypto/internal/asymmetric.js +210 -0
  279. package/dist/crypto/internal/asymmetric.js.map +1 -0
  280. package/dist/crypto/internal/chacha.d.ts +46 -0
  281. package/dist/crypto/internal/chacha.d.ts.map +1 -0
  282. package/dist/crypto/internal/chacha.js +885 -0
  283. package/dist/crypto/internal/chacha.js.map +1 -0
  284. package/dist/crypto/internal/der.d.ts +6 -0
  285. package/dist/crypto/internal/der.d.ts.map +1 -0
  286. package/dist/crypto/internal/der.js +86 -0
  287. package/dist/crypto/internal/der.js.map +1 -0
  288. package/dist/crypto/internal/digest.d.ts +2 -0
  289. package/dist/crypto/internal/digest.d.ts.map +1 -0
  290. package/dist/crypto/internal/digest.js +15 -0
  291. package/dist/crypto/internal/digest.js.map +1 -0
  292. package/dist/crypto/internal/key.d.ts +2 -0
  293. package/dist/crypto/internal/key.d.ts.map +1 -0
  294. package/dist/crypto/internal/key.js +171 -0
  295. package/dist/crypto/internal/key.js.map +1 -0
  296. package/dist/crypto/internal/md5.d.ts +39 -0
  297. package/dist/crypto/internal/md5.d.ts.map +1 -0
  298. package/dist/crypto/internal/md5.js +179 -0
  299. package/dist/crypto/internal/md5.js.map +1 -0
  300. package/dist/crypto/internal/webCrypto.d.ts +2 -0
  301. package/dist/crypto/internal/webCrypto.d.ts.map +1 -0
  302. package/dist/crypto/internal/webCrypto.js +111 -0
  303. package/dist/crypto/internal/webCrypto.js.map +1 -0
  304. package/dist/encoding/Base64Url.d.ts.map +1 -1
  305. package/dist/encoding/Base64Url.js +29 -5
  306. package/dist/encoding/Base64Url.js.map +1 -1
  307. package/dist/encoding/Csv.d.ts +608 -0
  308. package/dist/encoding/Csv.d.ts.map +1 -0
  309. package/dist/encoding/Csv.js +718 -0
  310. package/dist/encoding/Csv.js.map +1 -0
  311. package/dist/encoding/Hex.d.ts +3 -2
  312. package/dist/encoding/Hex.d.ts.map +1 -1
  313. package/dist/encoding/Hex.js +3 -2
  314. package/dist/encoding/Hex.js.map +1 -1
  315. package/dist/encoding/Ndjson.d.ts +5 -4
  316. package/dist/encoding/Ndjson.d.ts.map +1 -1
  317. package/dist/encoding/Ndjson.js +6 -5
  318. package/dist/encoding/Ndjson.js.map +1 -1
  319. package/dist/encoding/SchemaBinary.d.ts.map +1 -1
  320. package/dist/encoding/SchemaBinary.js +42 -4
  321. package/dist/encoding/SchemaBinary.js.map +1 -1
  322. package/dist/encoding/Sse.d.ts +3 -1
  323. package/dist/encoding/Sse.d.ts.map +1 -1
  324. package/dist/encoding/Sse.js +5 -3
  325. package/dist/encoding/Sse.js.map +1 -1
  326. package/dist/encoding/Toml.d.ts +17 -3
  327. package/dist/encoding/Toml.d.ts.map +1 -1
  328. package/dist/encoding/Toml.js +104 -16
  329. package/dist/encoding/Toml.js.map +1 -1
  330. package/dist/encoding/Yaml.d.ts +8 -1
  331. package/dist/encoding/Yaml.d.ts.map +1 -1
  332. package/dist/encoding/Yaml.js +54 -18
  333. package/dist/encoding/Yaml.js.map +1 -1
  334. package/dist/encoding/index.d.ts +5 -0
  335. package/dist/encoding/index.d.ts.map +1 -1
  336. package/dist/encoding/index.js +5 -0
  337. package/dist/encoding/index.js.map +1 -1
  338. package/dist/eventlog/EventJournal.d.ts.map +1 -1
  339. package/dist/eventlog/EventJournal.js +6 -3
  340. package/dist/eventlog/EventJournal.js.map +1 -1
  341. package/dist/eventlog/EventLog.d.ts +126 -4
  342. package/dist/eventlog/EventLog.d.ts.map +1 -1
  343. package/dist/eventlog/EventLog.js +207 -12
  344. package/dist/eventlog/EventLog.js.map +1 -1
  345. package/dist/eventlog/EventLogEncryption.d.ts +41 -4
  346. package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
  347. package/dist/eventlog/EventLogEncryption.js +83 -64
  348. package/dist/eventlog/EventLogEncryption.js.map +1 -1
  349. package/dist/eventlog/EventLogMessage.d.ts +279 -0
  350. package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
  351. package/dist/eventlog/EventLogMessage.js +217 -1
  352. package/dist/eventlog/EventLogMessage.js.map +1 -1
  353. package/dist/eventlog/EventLogRemote.d.ts +200 -28
  354. package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
  355. package/dist/eventlog/EventLogRemote.js +186 -16
  356. package/dist/eventlog/EventLogRemote.js.map +1 -1
  357. package/dist/eventlog/EventLogServer.d.ts +10 -1
  358. package/dist/eventlog/EventLogServer.d.ts.map +1 -1
  359. package/dist/eventlog/EventLogServer.js +45 -22
  360. package/dist/eventlog/EventLogServer.js.map +1 -1
  361. package/dist/eventlog/EventLogServerEncrypted.d.ts +336 -5
  362. package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  363. package/dist/eventlog/EventLogServerEncrypted.js +769 -14
  364. package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
  365. package/dist/eventlog/EventLogServerUnencrypted.d.ts +17 -0
  366. package/dist/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  367. package/dist/eventlog/EventLogServerUnencrypted.js +14 -2
  368. package/dist/eventlog/EventLogServerUnencrypted.js.map +1 -1
  369. package/dist/eventlog/EventLogSessionAuth.d.ts +26 -3
  370. package/dist/eventlog/EventLogSessionAuth.d.ts.map +1 -1
  371. package/dist/eventlog/EventLogSessionAuth.js +63 -64
  372. package/dist/eventlog/EventLogSessionAuth.js.map +1 -1
  373. package/dist/eventlog/EventRow.d.ts +4 -0
  374. package/dist/eventlog/EventRow.d.ts.map +1 -1
  375. package/dist/eventlog/EventRow.js +12 -2
  376. package/dist/eventlog/EventRow.js.map +1 -1
  377. package/dist/eventlog/SqlEventJournal.js +2 -2
  378. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  379. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +21 -5
  380. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
  381. package/dist/eventlog/SqlEventLogServerEncrypted.js +1048 -113
  382. package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  383. package/dist/eventlog/SqlEventLogServerUnencrypted.js +2 -2
  384. package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  385. package/dist/eventlog/internal/batches.d.ts +12 -0
  386. package/dist/eventlog/internal/batches.d.ts.map +1 -0
  387. package/dist/eventlog/internal/batches.js +26 -0
  388. package/dist/eventlog/internal/batches.js.map +1 -0
  389. package/dist/eventlog/internal/compaction.d.ts +38 -0
  390. package/dist/eventlog/internal/compaction.d.ts.map +1 -0
  391. package/dist/eventlog/internal/compaction.js +33 -0
  392. package/dist/eventlog/internal/compaction.js.map +1 -0
  393. package/dist/eventlog/internal/identityRootSecretDerivation.js +66 -67
  394. package/dist/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
  395. package/dist/eventlog/internal/remoteCompaction.d.ts +31 -0
  396. package/dist/eventlog/internal/remoteCompaction.d.ts.map +1 -0
  397. package/dist/eventlog/internal/remoteCompaction.js +76 -0
  398. package/dist/eventlog/internal/remoteCompaction.js.map +1 -0
  399. package/dist/graphql/GraphQLClient.d.ts +3 -1
  400. package/dist/graphql/GraphQLClient.d.ts.map +1 -1
  401. package/dist/graphql/GraphQLClient.js.map +1 -1
  402. package/dist/graphql/GraphQLClientError.d.ts +14 -9
  403. package/dist/graphql/GraphQLClientError.d.ts.map +1 -1
  404. package/dist/graphql/GraphQLClientError.js +14 -21
  405. package/dist/graphql/GraphQLClientError.js.map +1 -1
  406. package/dist/graphql/GraphQLProtocol.d.ts +12 -3
  407. package/dist/graphql/GraphQLProtocol.d.ts.map +1 -1
  408. package/dist/graphql/GraphQLProtocol.js +4 -1
  409. package/dist/graphql/GraphQLProtocol.js.map +1 -1
  410. package/dist/http/Cookies.d.ts +172 -0
  411. package/dist/http/Cookies.d.ts.map +1 -1
  412. package/dist/http/Cookies.js +143 -1
  413. package/dist/http/Cookies.js.map +1 -1
  414. package/dist/http/FetchHttpClient.d.ts +26 -2
  415. package/dist/http/FetchHttpClient.d.ts.map +1 -1
  416. package/dist/http/FetchHttpClient.js +78 -15
  417. package/dist/http/FetchHttpClient.js.map +1 -1
  418. package/dist/http/HttpClient.d.ts +268 -15
  419. package/dist/http/HttpClient.d.ts.map +1 -1
  420. package/dist/http/HttpClient.js +140 -7
  421. package/dist/http/HttpClient.js.map +1 -1
  422. package/dist/http/HttpClientRequest.d.ts +9 -5
  423. package/dist/http/HttpClientRequest.d.ts.map +1 -1
  424. package/dist/http/HttpClientRequest.js +2 -3
  425. package/dist/http/HttpClientRequest.js.map +1 -1
  426. package/dist/http/HttpClientResponse.d.ts.map +1 -1
  427. package/dist/http/HttpClientResponse.js +3 -2
  428. package/dist/http/HttpClientResponse.js.map +1 -1
  429. package/dist/http/HttpMethod.d.ts +7 -1
  430. package/dist/http/HttpMethod.d.ts.map +1 -1
  431. package/dist/http/HttpMethod.js +3 -8
  432. package/dist/http/HttpMethod.js.map +1 -1
  433. package/dist/http/HttpServerRequest.d.ts +5 -2
  434. package/dist/http/HttpServerRequest.d.ts.map +1 -1
  435. package/dist/http/HttpServerRequest.js +44 -39
  436. package/dist/http/HttpServerRequest.js.map +1 -1
  437. package/dist/http/HttpServerResponse.d.ts.map +1 -1
  438. package/dist/http/HttpServerResponse.js +3 -2
  439. package/dist/http/HttpServerResponse.js.map +1 -1
  440. package/dist/http/HttpTraceContext.d.ts +2 -1
  441. package/dist/http/HttpTraceContext.d.ts.map +1 -1
  442. package/dist/http/HttpTraceContext.js +7 -5
  443. package/dist/http/HttpTraceContext.js.map +1 -1
  444. package/dist/http/ProblemDetails.d.ts +96 -0
  445. package/dist/http/ProblemDetails.d.ts.map +1 -0
  446. package/dist/http/ProblemDetails.js +98 -0
  447. package/dist/http/ProblemDetails.js.map +1 -0
  448. package/dist/http/index.d.ts +5 -0
  449. package/dist/http/index.d.ts.map +1 -1
  450. package/dist/http/index.js +5 -0
  451. package/dist/http/index.js.map +1 -1
  452. package/dist/http/internal/decompression.js +3 -2
  453. package/dist/http/internal/decompression.js.map +1 -1
  454. package/dist/http/internal/mimeTypes.d.ts +4 -1
  455. package/dist/http/internal/mimeTypes.d.ts.map +1 -1
  456. package/dist/http/internal/mimeTypes.js +4 -1
  457. package/dist/http/internal/mimeTypes.js.map +1 -1
  458. package/dist/http/internal/urlParams.js +8 -0
  459. package/dist/http/internal/urlParams.js.map +1 -1
  460. package/dist/http-api/HttpApiBuilder.js +19 -5
  461. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  462. package/dist/http-api/HttpApiClient.d.ts +63 -0
  463. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  464. package/dist/http-api/HttpApiClient.js +51 -0
  465. package/dist/http-api/HttpApiClient.js.map +1 -1
  466. package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
  467. package/dist/http-api/HttpApiEndpoint.js +14 -5
  468. package/dist/http-api/HttpApiEndpoint.js.map +1 -1
  469. package/dist/http-api/HttpApiError.d.ts +185 -13
  470. package/dist/http-api/HttpApiError.d.ts.map +1 -1
  471. package/dist/http-api/HttpApiError.js +128 -0
  472. package/dist/http-api/HttpApiError.js.map +1 -1
  473. package/dist/http-api/HttpApiMiddleware.d.ts +64 -17
  474. package/dist/http-api/HttpApiMiddleware.d.ts.map +1 -1
  475. package/dist/http-api/HttpApiMiddleware.js +85 -1
  476. package/dist/http-api/HttpApiMiddleware.js.map +1 -1
  477. package/dist/http-api/HttpApiSchema.d.ts +76 -14
  478. package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
  479. package/dist/http-api/HttpApiSchema.js +54 -1
  480. package/dist/http-api/HttpApiSchema.js.map +1 -1
  481. package/dist/index.d.ts +5 -5
  482. package/dist/index.d.ts.map +1 -1
  483. package/dist/index.js +5 -5
  484. package/dist/index.js.map +1 -1
  485. package/dist/internal/dateTime.js +49 -24
  486. package/dist/internal/dateTime.js.map +1 -1
  487. package/dist/internal/effect.js +35 -14
  488. package/dist/internal/effect.js.map +1 -1
  489. package/dist/internal/glob.d.ts +2 -0
  490. package/dist/internal/glob.d.ts.map +1 -0
  491. package/dist/internal/glob.js +808 -0
  492. package/dist/internal/glob.js.map +1 -0
  493. package/dist/internal/graphql.js +21 -7
  494. package/dist/internal/graphql.js.map +1 -1
  495. package/dist/internal/graphqlHeaders.d.ts +7 -0
  496. package/dist/internal/graphqlHeaders.d.ts.map +1 -1
  497. package/dist/internal/graphqlHeaders.js +11 -0
  498. package/dist/internal/graphqlHeaders.js.map +1 -1
  499. package/dist/internal/matcher.js +10 -0
  500. package/dist/internal/matcher.js.map +1 -1
  501. package/dist/internal/persistence.js +9 -0
  502. package/dist/internal/persistence.js.map +1 -1
  503. package/dist/internal/rcRef.js +4 -1
  504. package/dist/internal/rcRef.js.map +1 -1
  505. package/dist/internal/request.js +29 -42
  506. package/dist/internal/request.js.map +1 -1
  507. package/dist/internal/schema/fromJsonSchemaDocument.js +7 -8
  508. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  509. package/dist/internal/schema/toCodeDocument.js +6 -3
  510. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  511. package/dist/internal/trie.js +42 -13
  512. package/dist/internal/trie.js.map +1 -1
  513. package/dist/internal/ulid.js +41 -0
  514. package/dist/internal/ulid.js.map +1 -1
  515. package/dist/internal/uuid.js +52 -8
  516. package/dist/internal/uuid.js.map +1 -1
  517. package/dist/internal/version.js +1 -1
  518. package/dist/jose/JoseError.d.ts +285 -0
  519. package/dist/jose/JoseError.d.ts.map +1 -0
  520. package/dist/jose/JoseError.js +269 -0
  521. package/dist/jose/JoseError.js.map +1 -0
  522. package/dist/jose/Jwe.d.ts +128 -0
  523. package/dist/jose/Jwe.d.ts.map +1 -0
  524. package/dist/jose/Jwe.js +134 -0
  525. package/dist/jose/Jwe.js.map +1 -0
  526. package/dist/jose/Jwk.d.ts +597 -0
  527. package/dist/jose/Jwk.d.ts.map +1 -0
  528. package/dist/jose/Jwk.js +503 -0
  529. package/dist/jose/Jwk.js.map +1 -0
  530. package/dist/jose/Jwks.d.ts +236 -0
  531. package/dist/jose/Jwks.d.ts.map +1 -0
  532. package/dist/jose/Jwks.js +306 -0
  533. package/dist/jose/Jwks.js.map +1 -0
  534. package/dist/jose/Jws.d.ts +177 -0
  535. package/dist/jose/Jws.d.ts.map +1 -0
  536. package/dist/jose/Jws.js +183 -0
  537. package/dist/jose/Jws.js.map +1 -0
  538. package/dist/jose/Jwt.d.ts +270 -0
  539. package/dist/jose/Jwt.d.ts.map +1 -0
  540. package/dist/jose/Jwt.js +293 -0
  541. package/dist/jose/Jwt.js.map +1 -0
  542. package/dist/jose/index.d.ts +51 -0
  543. package/dist/jose/index.d.ts.map +1 -0
  544. package/dist/jose/index.js +52 -0
  545. package/dist/jose/index.js.map +1 -0
  546. package/dist/jose/internal/compact.d.ts +2 -0
  547. package/dist/jose/internal/compact.d.ts.map +1 -0
  548. package/dist/jose/internal/compact.js +179 -0
  549. package/dist/jose/internal/compact.js.map +1 -0
  550. package/dist/net/Host.d.ts.map +1 -1
  551. package/dist/net/Host.js +5 -10
  552. package/dist/net/Host.js.map +1 -1
  553. package/dist/observability/Otlp.d.ts +15 -4
  554. package/dist/observability/Otlp.d.ts.map +1 -1
  555. package/dist/observability/Otlp.js +10 -0
  556. package/dist/observability/Otlp.js.map +1 -1
  557. package/dist/observability/OtlpResource.d.ts +7 -0
  558. package/dist/observability/OtlpResource.d.ts.map +1 -1
  559. package/dist/observability/OtlpResource.js +11 -1
  560. package/dist/observability/OtlpResource.js.map +1 -1
  561. package/dist/observability/OtlpSerialization.d.ts +1 -1
  562. package/dist/observability/OtlpSerialization.d.ts.map +1 -1
  563. package/dist/observability/OtlpSerialization.js +10 -4
  564. package/dist/observability/OtlpSerialization.js.map +1 -1
  565. package/dist/observability/internal/otlpProtobuf.js +3 -3
  566. package/dist/observability/internal/otlpProtobuf.js.map +1 -1
  567. package/dist/observability/internal/protobuf.js +6 -0
  568. package/dist/observability/internal/protobuf.js.map +1 -1
  569. package/dist/persistence/CircuitBreaker.d.ts +98 -38
  570. package/dist/persistence/CircuitBreaker.d.ts.map +1 -1
  571. package/dist/persistence/CircuitBreaker.js +67 -29
  572. package/dist/persistence/CircuitBreaker.js.map +1 -1
  573. package/dist/persistence/KeyValueStore.d.ts +47 -2
  574. package/dist/persistence/KeyValueStore.d.ts.map +1 -1
  575. package/dist/persistence/KeyValueStore.js +129 -18
  576. package/dist/persistence/KeyValueStore.js.map +1 -1
  577. package/dist/persistence/PersistedQueue.d.ts +9 -0
  578. package/dist/persistence/PersistedQueue.d.ts.map +1 -1
  579. package/dist/persistence/PersistedQueue.js +94 -52
  580. package/dist/persistence/PersistedQueue.js.map +1 -1
  581. package/dist/persistence/Persistence.d.ts +10 -4
  582. package/dist/persistence/Persistence.d.ts.map +1 -1
  583. package/dist/persistence/Persistence.js +18 -11
  584. package/dist/persistence/Persistence.js.map +1 -1
  585. package/dist/persistence/RateLimiter.d.ts +8 -0
  586. package/dist/persistence/RateLimiter.d.ts.map +1 -1
  587. package/dist/persistence/RateLimiter.js +63 -12
  588. package/dist/persistence/RateLimiter.js.map +1 -1
  589. package/dist/persistence/index.d.ts +1 -1
  590. package/dist/persistence/index.js +1 -1
  591. package/dist/process/ChildProcess.d.ts +207 -67
  592. package/dist/process/ChildProcess.d.ts.map +1 -1
  593. package/dist/process/ChildProcess.js +56 -158
  594. package/dist/process/ChildProcess.js.map +1 -1
  595. package/dist/process/ChildProcessSpawner.d.ts +5 -0
  596. package/dist/process/ChildProcessSpawner.d.ts.map +1 -1
  597. package/dist/process/ChildProcessSpawner.js.map +1 -1
  598. package/dist/process/CommandLine.d.ts +294 -0
  599. package/dist/process/CommandLine.d.ts.map +1 -0
  600. package/dist/process/CommandLine.js +481 -0
  601. package/dist/process/CommandLine.js.map +1 -0
  602. package/dist/process/index.d.ts +5 -0
  603. package/dist/process/index.d.ts.map +1 -1
  604. package/dist/process/index.js +5 -0
  605. package/dist/process/index.js.map +1 -1
  606. package/dist/reactivity/Atom.d.ts +2 -1
  607. package/dist/reactivity/Atom.d.ts.map +1 -1
  608. package/dist/reactivity/Atom.js +3 -4
  609. package/dist/reactivity/Atom.js.map +1 -1
  610. package/dist/reactivity/AtomRegistry.js +17 -7
  611. package/dist/reactivity/AtomRegistry.js.map +1 -1
  612. package/dist/rpc/Rpc.d.ts +1 -1
  613. package/dist/rpc/Rpc.d.ts.map +1 -1
  614. package/dist/rpc/Rpc.js.map +1 -1
  615. package/dist/rpc/RpcClient.d.ts +28 -1
  616. package/dist/rpc/RpcClient.d.ts.map +1 -1
  617. package/dist/rpc/RpcClient.js +78 -27
  618. package/dist/rpc/RpcClient.js.map +1 -1
  619. package/dist/rpc/RpcMessage.d.ts +13 -3
  620. package/dist/rpc/RpcMessage.d.ts.map +1 -1
  621. package/dist/rpc/RpcMessage.js +1 -0
  622. package/dist/rpc/RpcMessage.js.map +1 -1
  623. package/dist/rpc/RpcSerialization.d.ts.map +1 -1
  624. package/dist/rpc/RpcSerialization.js +6 -0
  625. package/dist/rpc/RpcSerialization.js.map +1 -1
  626. package/dist/rpc/RpcServer.d.ts +31 -0
  627. package/dist/rpc/RpcServer.d.ts.map +1 -1
  628. package/dist/rpc/RpcServer.js +139 -66
  629. package/dist/rpc/RpcServer.js.map +1 -1
  630. package/dist/schema/Model.d.ts +14 -0
  631. package/dist/schema/Model.d.ts.map +1 -1
  632. package/dist/schema/Model.js +18 -3
  633. package/dist/schema/Model.js.map +1 -1
  634. package/dist/sql/Migrator.d.ts +9 -20
  635. package/dist/sql/Migrator.d.ts.map +1 -1
  636. package/dist/sql/Migrator.js +20 -53
  637. package/dist/sql/Migrator.js.map +1 -1
  638. package/dist/sql/MigratorFileSystem.d.ts +21 -0
  639. package/dist/sql/MigratorFileSystem.d.ts.map +1 -0
  640. package/dist/sql/MigratorFileSystem.js +57 -0
  641. package/dist/sql/MigratorFileSystem.js.map +1 -0
  642. package/dist/sql/SqlClient.d.ts +38 -3
  643. package/dist/sql/SqlClient.d.ts.map +1 -1
  644. package/dist/sql/SqlClient.js +9 -12
  645. package/dist/sql/SqlClient.js.map +1 -1
  646. package/dist/sql/Statement.d.ts +61 -9
  647. package/dist/sql/Statement.d.ts.map +1 -1
  648. package/dist/sql/Statement.js +24 -33
  649. package/dist/sql/Statement.js.map +1 -1
  650. package/dist/sql/index.js +1 -1
  651. package/dist/testing/index.d.ts +0 -5
  652. package/dist/testing/index.d.ts.map +1 -1
  653. package/dist/testing/index.js +0 -5
  654. package/dist/testing/index.js.map +1 -1
  655. package/dist/workflow/Workflow.d.ts +4 -0
  656. package/dist/workflow/Workflow.d.ts.map +1 -1
  657. package/dist/workflow/Workflow.js.map +1 -1
  658. package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
  659. package/dist/workflow/WorkflowEngine.js +5 -0
  660. package/dist/workflow/WorkflowEngine.js.map +1 -1
  661. package/dist/workflow/internal/crypto.js +9 -8
  662. package/dist/workflow/internal/crypto.js.map +1 -1
  663. package/package.json +7 -1
  664. package/src/BigDecimal.ts +173 -16
  665. package/src/Channel.ts +17 -11
  666. package/src/Config.ts +7 -1
  667. package/src/Context.ts +34 -10
  668. package/src/Cron.ts +178 -29
  669. package/src/Duration.ts +140 -0
  670. package/src/Effect.ts +914 -85
  671. package/src/Equal.ts +3 -3
  672. package/src/FileSystem.ts +65 -4
  673. package/src/Glob.ts +205 -0
  674. package/src/Hash.ts +5 -4
  675. package/src/Iterable.ts +8 -5
  676. package/src/Match.ts +127 -0
  677. package/src/Path.ts +6 -1
  678. package/src/Pool.ts +75 -16
  679. package/src/Random.ts +3 -3
  680. package/src/RcMap.ts +5 -1
  681. package/src/Schedule.ts +26 -3
  682. package/src/Schema.ts +1191 -63
  683. package/src/SchemaGetter.ts +27 -11
  684. package/src/SchemaRepresentation.ts +23 -2
  685. package/src/SchemaTransformation.ts +10 -5
  686. package/src/ScopedCache.ts +5 -9
  687. package/src/Semaphore.ts +141 -0
  688. package/src/Stream.ts +15 -6
  689. package/src/Terminal.ts +19 -1
  690. package/src/ai/AiError.ts +56 -80
  691. package/src/ai/Decision.ts +257 -6
  692. package/src/ai/DecisionModel.ts +171 -28
  693. package/src/ai/McpClient.ts +488 -91
  694. package/src/ai/McpSchema.ts +119 -0
  695. package/src/ai/McpServer.ts +1525 -319
  696. package/src/ai/McpTest.ts +380 -0
  697. package/src/ai/Prompt.ts +16 -11
  698. package/src/ai/Response.ts +2 -22
  699. package/src/ai/Tool.ts +32 -18
  700. package/src/ai/index.ts +6 -0
  701. package/src/ai/internal/mcpCore.ts +243 -56
  702. package/src/ai/internal/mcpProtocol/v2024_11_05.ts +7 -8
  703. package/src/ai/internal/mcpProtocol/v2025_03_26.ts +7 -8
  704. package/src/ai/internal/mcpProtocol/v2025_06_18.ts +7 -8
  705. package/src/ai/internal/mcpProtocol/v2025_11_25.ts +7 -8
  706. package/src/ai/internal/mcpProtocol/v2026_07_28.ts +56 -17
  707. package/src/ai/internal/mcpProtocol.ts +44 -0
  708. package/src/ai/internal/mcpRuntime.ts +15 -8
  709. package/src/ai/internal/mcpSkills.ts +480 -0
  710. package/src/ai/internal/mcpStatefulRuntime.ts +14 -2
  711. package/src/cli/Argument.ts +6 -0
  712. package/src/cli/CliOutput.ts +117 -49
  713. package/src/cli/Command.ts +23 -0
  714. package/src/cli/Flag.ts +107 -0
  715. package/src/cli/HelpDoc.ts +18 -1
  716. package/src/cli/Param.ts +6 -0
  717. package/src/cli/Primitive.ts +16 -1
  718. package/src/cli/Prompt.ts +1 -0
  719. package/src/cli/internal/help.ts +21 -9
  720. package/src/cluster/ClusterWorkflowEngine.ts +22 -8
  721. package/src/cluster/Reply.ts +1 -1
  722. package/src/cluster/Sharding.ts +96 -26
  723. package/src/cluster/ShardingConfig.ts +41 -3
  724. package/src/cluster/SingleRunner.ts +3 -3
  725. package/src/cluster/SqlMessageStorage.ts +49 -17
  726. package/src/cluster/SqlRunnerStorage.ts +37 -27
  727. package/src/cluster/internal/entityManager.ts +24 -10
  728. package/src/crypto/Aead.ts +517 -0
  729. package/src/crypto/Cipher.ts +326 -0
  730. package/src/crypto/CryptoError.ts +242 -0
  731. package/src/crypto/Digest.ts +167 -0
  732. package/src/crypto/Kdf.ts +315 -0
  733. package/src/crypto/KeyAgreement.ts +489 -0
  734. package/src/crypto/KeyFormat.ts +741 -0
  735. package/src/crypto/KeyWrap.ts +639 -0
  736. package/src/crypto/Mac.ts +386 -0
  737. package/src/crypto/SecureRandom.ts +459 -0
  738. package/src/crypto/Signature.ts +673 -0
  739. package/src/crypto/WebCrypto.ts +84 -0
  740. package/src/crypto/index.ts +78 -0
  741. package/src/crypto/internal/asymmetric.ts +330 -0
  742. package/src/crypto/internal/chacha.ts +1088 -0
  743. package/src/crypto/internal/der.ts +110 -0
  744. package/src/crypto/internal/digest.ts +16 -0
  745. package/src/crypto/internal/key.ts +242 -0
  746. package/src/crypto/internal/md5.ts +170 -0
  747. package/src/crypto/internal/webCrypto.ts +150 -0
  748. package/src/encoding/Base64Url.ts +32 -5
  749. package/src/encoding/Csv.ts +1298 -0
  750. package/src/encoding/Hex.ts +3 -2
  751. package/src/encoding/Ndjson.ts +6 -5
  752. package/src/encoding/SchemaBinary.ts +40 -4
  753. package/src/encoding/Sse.ts +5 -3
  754. package/src/encoding/Toml.ts +85 -20
  755. package/src/encoding/Yaml.ts +61 -18
  756. package/src/encoding/index.ts +6 -0
  757. package/src/eventlog/EventJournal.ts +4 -3
  758. package/src/eventlog/EventLog.ts +347 -15
  759. package/src/eventlog/EventLogEncryption.ts +118 -110
  760. package/src/eventlog/EventLogMessage.ts +273 -1
  761. package/src/eventlog/EventLogRemote.ts +367 -23
  762. package/src/eventlog/EventLogServer.ts +54 -20
  763. package/src/eventlog/EventLogServerEncrypted.ts +1135 -67
  764. package/src/eventlog/EventLogServerUnencrypted.ts +19 -2
  765. package/src/eventlog/EventLogSessionAuth.ts +82 -70
  766. package/src/eventlog/EventRow.ts +12 -3
  767. package/src/eventlog/SqlEventJournal.ts +2 -2
  768. package/src/eventlog/SqlEventLogServerEncrypted.ts +1244 -136
  769. package/src/eventlog/SqlEventLogServerUnencrypted.ts +2 -2
  770. package/src/eventlog/internal/batches.ts +30 -0
  771. package/src/eventlog/internal/compaction.ts +64 -0
  772. package/src/eventlog/internal/identityRootSecretDerivation.ts +93 -123
  773. package/src/eventlog/internal/remoteCompaction.ts +92 -0
  774. package/src/graphql/GraphQLClient.ts +3 -1
  775. package/src/graphql/GraphQLClientError.ts +15 -22
  776. package/src/graphql/GraphQLProtocol.ts +12 -3
  777. package/src/http/Cookies.ts +281 -1
  778. package/src/http/FetchHttpClient.ts +88 -16
  779. package/src/http/HttpClient.ts +299 -33
  780. package/src/http/HttpClientRequest.ts +12 -9
  781. package/src/http/HttpClientResponse.ts +3 -2
  782. package/src/http/HttpMethod.ts +10 -2
  783. package/src/http/HttpServerRequest.ts +76 -53
  784. package/src/http/HttpServerResponse.ts +3 -2
  785. package/src/http/HttpTraceContext.ts +7 -4
  786. package/src/http/ProblemDetails.ts +149 -0
  787. package/src/http/index.ts +6 -0
  788. package/src/http/internal/decompression.ts +4 -4
  789. package/src/http/internal/mimeTypes.ts +4 -1
  790. package/src/http/internal/urlParams.ts +8 -0
  791. package/src/http-api/HttpApiBuilder.ts +24 -12
  792. package/src/http-api/HttpApiClient.ts +67 -1
  793. package/src/http-api/HttpApiEndpoint.ts +14 -5
  794. package/src/http-api/HttpApiError.ts +250 -0
  795. package/src/http-api/HttpApiMiddleware.ts +95 -1
  796. package/src/http-api/HttpApiSchema.ts +106 -15
  797. package/src/index.ts +6 -6
  798. package/src/internal/dateTime.ts +54 -24
  799. package/src/internal/effect.ts +40 -18
  800. package/src/internal/glob.ts +952 -0
  801. package/src/internal/graphql.ts +27 -9
  802. package/src/internal/graphqlHeaders.ts +13 -0
  803. package/src/internal/matcher.ts +17 -0
  804. package/src/internal/persistence.ts +11 -0
  805. package/src/internal/rcRef.ts +4 -1
  806. package/src/internal/request.ts +51 -58
  807. package/src/internal/schema/fromJsonSchemaDocument.ts +11 -10
  808. package/src/internal/schema/toCodeDocument.ts +7 -3
  809. package/src/internal/trie.ts +43 -14
  810. package/src/internal/ulid.ts +44 -0
  811. package/src/internal/uuid.ts +57 -16
  812. package/src/internal/version.ts +1 -1
  813. package/src/jose/JoseError.ts +329 -0
  814. package/src/jose/Jwe.ts +196 -0
  815. package/src/jose/Jwk.ts +777 -0
  816. package/src/jose/Jwks.ts +418 -0
  817. package/src/jose/Jws.ts +312 -0
  818. package/src/jose/Jwt.ts +493 -0
  819. package/src/jose/index.ts +58 -0
  820. package/src/jose/internal/compact.ts +195 -0
  821. package/src/net/Host.ts +5 -10
  822. package/src/observability/Otlp.ts +21 -4
  823. package/src/observability/OtlpResource.ts +9 -1
  824. package/src/observability/OtlpSerialization.ts +13 -5
  825. package/src/observability/internal/otlpProtobuf.ts +6 -6
  826. package/src/observability/internal/protobuf.ts +10 -0
  827. package/src/persistence/CircuitBreaker.ts +113 -48
  828. package/src/persistence/KeyValueStore.ts +219 -22
  829. package/src/persistence/PersistedQueue.ts +128 -59
  830. package/src/persistence/Persistence.ts +20 -13
  831. package/src/persistence/RateLimiter.ts +84 -15
  832. package/src/persistence/index.ts +1 -1
  833. package/src/process/ChildProcess.ts +255 -260
  834. package/src/process/ChildProcessSpawner.ts +5 -0
  835. package/src/process/CommandLine.ts +630 -0
  836. package/src/process/index.ts +6 -0
  837. package/src/reactivity/Atom.ts +5 -5
  838. package/src/reactivity/AtomRegistry.ts +20 -9
  839. package/src/rpc/Rpc.ts +3 -1
  840. package/src/rpc/RpcClient.ts +94 -38
  841. package/src/rpc/RpcMessage.ts +13 -3
  842. package/src/rpc/RpcSerialization.ts +3 -0
  843. package/src/rpc/RpcServer.ts +176 -78
  844. package/src/schema/Model.ts +26 -3
  845. package/src/sql/Migrator.ts +38 -80
  846. package/src/sql/MigratorFileSystem.ts +71 -0
  847. package/src/sql/SqlClient.ts +45 -24
  848. package/src/sql/Statement.ts +60 -29
  849. package/src/sql/index.ts +1 -1
  850. package/src/testing/index.ts +0 -6
  851. package/src/workflow/Workflow.ts +4 -0
  852. package/src/workflow/WorkflowEngine.ts +5 -0
  853. package/src/workflow/internal/crypto.ts +15 -11
  854. package/dist/Crypto.d.ts +0 -244
  855. package/dist/Crypto.d.ts.map +0 -1
  856. package/dist/Crypto.js +0 -139
  857. package/dist/Crypto.js.map +0 -1
  858. package/dist/testing/TestCrypto.d.ts +0 -73
  859. package/dist/testing/TestCrypto.d.ts.map +0 -1
  860. package/dist/testing/TestCrypto.js +0 -87
  861. package/dist/testing/TestCrypto.js.map +0 -1
  862. package/src/Crypto.ts +0 -347
  863. package/src/testing/TestCrypto.ts +0 -94
@@ -1335,6 +1335,208 @@ export const retryTransient: {
1335
1335
  }
1336
1336
  )
1337
1337
 
1338
+ /**
1339
+ * Fails requests that do not receive a response within the given duration.
1340
+ *
1341
+ * **When to use**
1342
+ *
1343
+ * Use to configure a timeout once on the client, for example when providing
1344
+ * the `HttpClient` service, while keeping the standard `HttpClientError` error
1345
+ * model.
1346
+ *
1347
+ * **Details**
1348
+ *
1349
+ * A timed out request is interrupted and fails with an `HttpClientError` whose
1350
+ * reason is a `TransportError` with a `Cause.TimeoutError` cause.
1351
+ * `retryTransient` treats it as transient. Interrupting a request aborts the
1352
+ * underlying transport, unless the request is attached to a scope with
1353
+ * `withScope`, in which case it stays open until the scope closes.
1354
+ *
1355
+ * The timer starts after request preprocessing and covers everything the
1356
+ * wrapped client does to produce a response. For a plain client this ends when
1357
+ * the response headers arrive, but response middleware applied before
1358
+ * `timeout`, such as `tap` or `retryTransient`, runs inside the budget,
1359
+ * including any body reads it performs. Composition order therefore decides
1360
+ * how it interacts with retries: applying `timeout` before `retryTransient`
1361
+ * gives each attempt its own budget, while applying it after bounds the whole
1362
+ * retry loop.
1363
+ *
1364
+ * **Gotchas**
1365
+ *
1366
+ * Body reads outside the timed client are not covered, including those made
1367
+ * by response middleware applied after `timeout` and by consumers of the
1368
+ * `HttpClient` service. Apply a separate timeout to body reads such as
1369
+ * `response.json` or `response.stream` when needed.
1370
+ *
1371
+ * **Example** (Timing out each attempt)
1372
+ *
1373
+ * ```ts
1374
+ * import { Effect, Layer } from "effect"
1375
+ * import { FetchHttpClient, HttpClient } from "effect/http"
1376
+ *
1377
+ * const TimedHttpClient = Layer.effect(
1378
+ * HttpClient.HttpClient,
1379
+ * Effect.map(
1380
+ * HttpClient.HttpClient,
1381
+ * HttpClient.timeout("5 seconds")
1382
+ * )
1383
+ * ).pipe(Layer.provide(FetchHttpClient.layer))
1384
+ *
1385
+ * const program = Effect.gen(function*() {
1386
+ * const client = (yield* HttpClient.HttpClient).pipe(
1387
+ * HttpClient.retryTransient({ times: 3 })
1388
+ * )
1389
+ * return yield* client.get("https://example.com")
1390
+ * }).pipe(Effect.provide(TimedHttpClient))
1391
+ * ```
1392
+ *
1393
+ * @stability unstable
1394
+ * @category error handling
1395
+ * @since 4.1.0
1396
+ */
1397
+ export const timeout: {
1398
+ /**
1399
+ * Fails requests that do not receive a response within the given duration.
1400
+ *
1401
+ * **When to use**
1402
+ *
1403
+ * Use to configure a timeout once on the client, for example when providing
1404
+ * the `HttpClient` service, while keeping the standard `HttpClientError` error
1405
+ * model.
1406
+ *
1407
+ * **Details**
1408
+ *
1409
+ * A timed out request is interrupted and fails with an `HttpClientError` whose
1410
+ * reason is a `TransportError` with a `Cause.TimeoutError` cause.
1411
+ * `retryTransient` treats it as transient. Interrupting a request aborts the
1412
+ * underlying transport, unless the request is attached to a scope with
1413
+ * `withScope`, in which case it stays open until the scope closes.
1414
+ *
1415
+ * The timer starts after request preprocessing and covers everything the
1416
+ * wrapped client does to produce a response. For a plain client this ends when
1417
+ * the response headers arrive, but response middleware applied before
1418
+ * `timeout`, such as `tap` or `retryTransient`, runs inside the budget,
1419
+ * including any body reads it performs. Composition order therefore decides
1420
+ * how it interacts with retries: applying `timeout` before `retryTransient`
1421
+ * gives each attempt its own budget, while applying it after bounds the whole
1422
+ * retry loop.
1423
+ *
1424
+ * **Gotchas**
1425
+ *
1426
+ * Body reads outside the timed client are not covered, including those made
1427
+ * by response middleware applied after `timeout` and by consumers of the
1428
+ * `HttpClient` service. Apply a separate timeout to body reads such as
1429
+ * `response.json` or `response.stream` when needed.
1430
+ *
1431
+ * **Example** (Timing out each attempt)
1432
+ *
1433
+ * ```ts
1434
+ * import { Effect, Layer } from "effect"
1435
+ * import { FetchHttpClient, HttpClient } from "effect/http"
1436
+ *
1437
+ * const TimedHttpClient = Layer.effect(
1438
+ * HttpClient.HttpClient,
1439
+ * Effect.map(
1440
+ * HttpClient.HttpClient,
1441
+ * HttpClient.timeout("5 seconds")
1442
+ * )
1443
+ * ).pipe(Layer.provide(FetchHttpClient.layer))
1444
+ *
1445
+ * const program = Effect.gen(function*() {
1446
+ * const client = (yield* HttpClient.HttpClient).pipe(
1447
+ * HttpClient.retryTransient({ times: 3 })
1448
+ * )
1449
+ * return yield* client.get("https://example.com")
1450
+ * }).pipe(Effect.provide(TimedHttpClient))
1451
+ * ```
1452
+ *
1453
+ * @stability unstable
1454
+ * @category error handling
1455
+ * @since 4.1.0
1456
+ */
1457
+ (duration: Duration.Input): <E, R>(self: HttpClient.With<E, R>) => HttpClient.With<E | Error.HttpClientError, R>
1458
+ /**
1459
+ * Fails requests that do not receive a response within the given duration.
1460
+ *
1461
+ * **When to use**
1462
+ *
1463
+ * Use to configure a timeout once on the client, for example when providing
1464
+ * the `HttpClient` service, while keeping the standard `HttpClientError` error
1465
+ * model.
1466
+ *
1467
+ * **Details**
1468
+ *
1469
+ * A timed out request is interrupted and fails with an `HttpClientError` whose
1470
+ * reason is a `TransportError` with a `Cause.TimeoutError` cause.
1471
+ * `retryTransient` treats it as transient. Interrupting a request aborts the
1472
+ * underlying transport, unless the request is attached to a scope with
1473
+ * `withScope`, in which case it stays open until the scope closes.
1474
+ *
1475
+ * The timer starts after request preprocessing and covers everything the
1476
+ * wrapped client does to produce a response. For a plain client this ends when
1477
+ * the response headers arrive, but response middleware applied before
1478
+ * `timeout`, such as `tap` or `retryTransient`, runs inside the budget,
1479
+ * including any body reads it performs. Composition order therefore decides
1480
+ * how it interacts with retries: applying `timeout` before `retryTransient`
1481
+ * gives each attempt its own budget, while applying it after bounds the whole
1482
+ * retry loop.
1483
+ *
1484
+ * **Gotchas**
1485
+ *
1486
+ * Body reads outside the timed client are not covered, including those made
1487
+ * by response middleware applied after `timeout` and by consumers of the
1488
+ * `HttpClient` service. Apply a separate timeout to body reads such as
1489
+ * `response.json` or `response.stream` when needed.
1490
+ *
1491
+ * **Example** (Timing out each attempt)
1492
+ *
1493
+ * ```ts
1494
+ * import { Effect, Layer } from "effect"
1495
+ * import { FetchHttpClient, HttpClient } from "effect/http"
1496
+ *
1497
+ * const TimedHttpClient = Layer.effect(
1498
+ * HttpClient.HttpClient,
1499
+ * Effect.map(
1500
+ * HttpClient.HttpClient,
1501
+ * HttpClient.timeout("5 seconds")
1502
+ * )
1503
+ * ).pipe(Layer.provide(FetchHttpClient.layer))
1504
+ *
1505
+ * const program = Effect.gen(function*() {
1506
+ * const client = (yield* HttpClient.HttpClient).pipe(
1507
+ * HttpClient.retryTransient({ times: 3 })
1508
+ * )
1509
+ * return yield* client.get("https://example.com")
1510
+ * }).pipe(Effect.provide(TimedHttpClient))
1511
+ * ```
1512
+ *
1513
+ * @stability unstable
1514
+ * @category error handling
1515
+ * @since 4.1.0
1516
+ */
1517
+ <E, R>(self: HttpClient.With<E, R>, duration: Duration.Input): HttpClient.With<E | Error.HttpClientError, R>
1518
+ } = dual(
1519
+ 2,
1520
+ <E, R>(self: HttpClient.With<E, R>, duration: Duration.Input): HttpClient.With<E | Error.HttpClientError, R> => {
1521
+ const decoded = Duration.fromInputUnsafe(duration)
1522
+ const description = `timed out after ${Duration.format(decoded)}`
1523
+ return transform(self, (effect, request) =>
1524
+ Effect.timeoutOrElse(effect, {
1525
+ duration: decoded,
1526
+ orElse: () =>
1527
+ Effect.fail(
1528
+ new Error.HttpClientError({
1529
+ reason: new Error.TransportError({
1530
+ request,
1531
+ cause: new Cause.TimeoutError(`Operation ${description}`),
1532
+ description
1533
+ })
1534
+ })
1535
+ )
1536
+ }))
1537
+ }
1538
+ )
1539
+
1338
1540
  /**
1339
1541
  * Namespace containing configuration types for `withRateLimiter`.
1340
1542
  *
@@ -1680,7 +1882,7 @@ export const withRateLimiter: {
1680
1882
  * Namespace containing configuration types for `withCircuitBreaker`.
1681
1883
  *
1682
1884
  * @stability experimental
1683
- * @since 4.0.6
1885
+ * @since 4.0.7
1684
1886
  */
1685
1887
  export declare namespace WithCircuitBreaker {
1686
1888
  /**
@@ -1688,7 +1890,7 @@ export declare namespace WithCircuitBreaker {
1688
1890
  *
1689
1891
  * @stability experimental
1690
1892
  * @category circuit breaking
1691
- * @since 4.0.6
1893
+ * @since 4.0.7
1692
1894
  */
1693
1895
  export interface Options<E, R2 = never> {
1694
1896
  /**
@@ -1703,13 +1905,10 @@ export declare namespace WithCircuitBreaker {
1703
1905
  readonly key?: string | ((request: HttpClientRequest.HttpClientRequest) => string) | undefined
1704
1906
  /**
1705
1907
  * Classifies the `Exit` of each request that the breaker admitted.
1908
+ * `context.probe` is `true` when the request is the HalfOpen probe.
1706
1909
  * Defaults to `circuitBreakerClassifier`.
1707
1910
  */
1708
- readonly classify?:
1709
- | ((
1710
- exit: Exit.Exit<HttpClientResponse.HttpClientResponse, E>
1711
- ) => CircuitBreaker.Outcome | Effect.Effect<CircuitBreaker.Outcome, never, R2>)
1712
- | undefined
1911
+ readonly classify?: CircuitBreaker.Classifier<HttpClientResponse.HttpClientResponse, E, R2> | undefined
1713
1912
  }
1714
1913
  }
1715
1914
 
@@ -1830,7 +2029,7 @@ export declare namespace WithCircuitBreaker {
1830
2029
  *
1831
2030
  * @stability experimental
1832
2031
  * @category circuit breaking
1833
- * @since 4.0.6
2032
+ * @since 4.0.7
1834
2033
  */
1835
2034
  export const withCircuitBreaker: {
1836
2035
  /**
@@ -1950,7 +2149,7 @@ export const withCircuitBreaker: {
1950
2149
  *
1951
2150
  * @stability experimental
1952
2151
  * @category circuit breaking
1953
- * @since 4.0.6
2152
+ * @since 4.0.7
1954
2153
  */
1955
2154
  <E, R2 = never>(options: WithCircuitBreaker.Options<E, R2>): <R>(
1956
2155
  self: HttpClient.With<E, R>
@@ -2072,7 +2271,7 @@ export const withCircuitBreaker: {
2072
2271
  *
2073
2272
  * @stability experimental
2074
2273
  * @category circuit breaking
2075
- * @since 4.0.6
2274
+ * @since 4.0.7
2076
2275
  */
2077
2276
  <E, R, R2 = never>(self: HttpClient.With<E, R>, options: WithCircuitBreaker.Options<E, R2>): HttpClient.With<E | CircuitBreaker.CircuitBreakerError, R | R2>
2078
2277
  } = dual(2, <E, R, R2>(
@@ -2120,7 +2319,7 @@ const requestOrigin = (request: HttpClientRequest.HttpClientRequest): string =>
2120
2319
  *
2121
2320
  * @stability experimental
2122
2321
  * @category circuit breaking
2123
- * @since 4.0.6
2322
+ * @since 4.0.7
2124
2323
  */
2125
2324
  export const circuitBreakerClassifier = <E>(
2126
2325
  exit: Exit.Exit<HttpClientResponse.HttpClientResponse, E>
@@ -2456,12 +2655,20 @@ export const tapRequest: {
2456
2655
  )
2457
2656
 
2458
2657
  /**
2459
- * Adds a `Ref` of cookies to the client for handling cookies across requests.
2658
+ * Adds a `Ref` of stored cookies to the client for handling cookies across
2659
+ * requests.
2460
2660
  *
2461
2661
  * **When to use**
2462
2662
  *
2463
2663
  * Use to add shared cookie storage to a client so response cookies are retained
2464
- * and sent by later requests.
2664
+ * and sent by later requests to a matching host, path, and scheme.
2665
+ *
2666
+ * **Details**
2667
+ *
2668
+ * Response cookies are merged into the ref with `Cookies.mergeIntoArray` for
2669
+ * the response URL. Before each request, `Cookies.toRequestCookieHeader` selects
2670
+ * the cookies for the request URL and sets them as the `cookie` header. Expiry
2671
+ * uses the current `Clock`.
2465
2672
  *
2466
2673
  * @stability unstable
2467
2674
  * @category cookies
@@ -2469,52 +2676,66 @@ export const tapRequest: {
2469
2676
  */
2470
2677
  export const withCookiesRef: {
2471
2678
  /**
2472
- * Adds a `Ref` of cookies to the client for handling cookies across requests.
2679
+ * Adds a `Ref` of stored cookies to the client for handling cookies across
2680
+ * requests.
2473
2681
  *
2474
2682
  * **When to use**
2475
2683
  *
2476
2684
  * Use to add shared cookie storage to a client so response cookies are retained
2477
- * and sent by later requests.
2685
+ * and sent by later requests to a matching host, path, and scheme.
2686
+ *
2687
+ * **Details**
2688
+ *
2689
+ * Response cookies are merged into the ref with `Cookies.mergeIntoArray` for
2690
+ * the response URL. Before each request, `Cookies.toRequestCookieHeader` selects
2691
+ * the cookies for the request URL and sets them as the `cookie` header. Expiry
2692
+ * uses the current `Clock`.
2478
2693
  *
2479
2694
  * @stability unstable
2480
2695
  * @category cookies
2481
2696
  * @since 4.0.0
2482
2697
  */
2483
- (ref: Ref.Ref<Cookies.Cookies>): <E, R>(self: HttpClient.With<E, R>) => HttpClient.With<E, R>
2698
+ (ref: Ref.Ref<ReadonlyArray<Cookies.Cookie>>): <E, R>(self: HttpClient.With<E, R>) => HttpClient.With<E, R>
2484
2699
  /**
2485
- * Adds a `Ref` of cookies to the client for handling cookies across requests.
2700
+ * Adds a `Ref` of stored cookies to the client for handling cookies across
2701
+ * requests.
2486
2702
  *
2487
2703
  * **When to use**
2488
2704
  *
2489
2705
  * Use to add shared cookie storage to a client so response cookies are retained
2490
- * and sent by later requests.
2706
+ * and sent by later requests to a matching host, path, and scheme.
2707
+ *
2708
+ * **Details**
2709
+ *
2710
+ * Response cookies are merged into the ref with `Cookies.mergeIntoArray` for
2711
+ * the response URL. Before each request, `Cookies.toRequestCookieHeader` selects
2712
+ * the cookies for the request URL and sets them as the `cookie` header. Expiry
2713
+ * uses the current `Clock`.
2491
2714
  *
2492
2715
  * @stability unstable
2493
2716
  * @category cookies
2494
2717
  * @since 4.0.0
2495
2718
  */
2496
- <E, R>(self: HttpClient.With<E, R>, ref: Ref.Ref<Cookies.Cookies>): HttpClient.With<E, R>
2719
+ <E, R>(self: HttpClient.With<E, R>, ref: Ref.Ref<ReadonlyArray<Cookies.Cookie>>): HttpClient.With<E, R>
2497
2720
  } = dual(
2498
2721
  2,
2499
2722
  <E, R>(
2500
2723
  self: HttpClient.With<E, R>,
2501
- ref: Ref.Ref<Cookies.Cookies>
2724
+ ref: Ref.Ref<ReadonlyArray<Cookies.Cookie>>
2502
2725
  ): HttpClient.With<E, R> =>
2503
2726
  makeWith(
2504
2727
  (request: Effect.Effect<HttpClientRequest.HttpClientRequest, E, R>) =>
2505
- Effect.tap(
2506
- self.postprocess(request),
2507
- (response) => Ref.update(ref, (cookies) => Cookies.merge(cookies, response.cookies))
2508
- ),
2728
+ Effect.tap(self.postprocess(request), (response) => {
2729
+ const now = Fiber.getCurrent()!.getRef(Clock).currentTimeMillisUnsafe()
2730
+ return Ref.update(ref, Cookies.mergeIntoArray(response.url, response.cookies, now))
2731
+ }),
2509
2732
  (request) =>
2510
2733
  Effect.flatMap(self.preprocess(request), (request) =>
2511
- Effect.map(
2512
- Ref.get(ref),
2513
- (cookies) =>
2514
- Cookies.isEmpty(cookies)
2515
- ? request
2516
- : HttpClientRequest.setHeader(request, "cookie", Cookies.toCookieHeader(cookies))
2517
- ))
2734
+ Effect.map(Ref.get(ref), (cookies) => {
2735
+ const now = Fiber.getCurrent()!.getRef(Clock).currentTimeMillisUnsafe()
2736
+ const header = Cookies.toRequestCookieHeader(cookies, request.url, now)
2737
+ return header === undefined ? request : HttpClientRequest.setHeader(request, "cookie", header)
2738
+ }))
2518
2739
  )
2519
2740
  )
2520
2741
 
@@ -2980,7 +3201,38 @@ class InterruptibleResponse implements HttpClientResponse.HttpClientResponse, Pi
2980
3201
  }
2981
3202
  }
2982
3203
 
2983
- const isTransientError = (error: unknown) => Cause.isTimeoutError(error) || isTransientHttpError(error)
3204
+ /**
3205
+ * Returns `true` for an error that `retryTransient` retries by default: a
3206
+ * timeout, a transport error, or a status code error with a transient response.
3207
+ *
3208
+ * **When to use**
3209
+ *
3210
+ * Use to classify failures the same way `retryTransient` does, for example in a
3211
+ * custom retry policy or a circuit breaker.
3212
+ *
3213
+ * **Example** (Classifying client errors)
3214
+ *
3215
+ * ```ts import.meta.vitest
3216
+ * import { Cause } from "effect"
3217
+ * import { HttpClient, HttpClientError, HttpClientRequest } from "effect/http"
3218
+ *
3219
+ * const request = HttpClientRequest.get("https://example.com")
3220
+ * const transportError = new HttpClientError.HttpClientError({
3221
+ * reason: new HttpClientError.TransportError({ request })
3222
+ * })
3223
+ *
3224
+ * HttpClient.isTransientError(transportError) // => true
3225
+ * HttpClient.isTransientError(new Cause.TimeoutError()) // => true
3226
+ * HttpClient.isTransientError(new Error("boom")) // => false
3227
+ * ```
3228
+ *
3229
+ * @see {@link isTransientResponse} for the response statuses it accepts
3230
+ * @see {@link retryTransient} for the retry policy that uses it
3231
+ * @stability unstable
3232
+ * @category predicates
3233
+ * @since 4.1.0
3234
+ */
3235
+ export const isTransientError = (error: unknown): boolean => Cause.isTimeoutError(error) || isTransientHttpError(error)
2984
3236
 
2985
3237
  const isTransientHttpError = (error: unknown) =>
2986
3238
  Error.isHttpClientError(error) &&
@@ -3014,7 +3266,21 @@ const isTooManyRequestsHttpClientError = (
3014
3266
  ): error is Error.HttpClientError & { readonly reason: Error.StatusCodeError } =>
3015
3267
  Error.isHttpClientError(error) && error.reason._tag === "StatusCodeError" && error.reason.response.status === 429
3016
3268
 
3017
- const isTransientResponse = (response: HttpClientResponse.HttpClientResponse) =>
3269
+ /**
3270
+ * Returns `true` for a response whose status `retryTransient` retries by
3271
+ * default: 408, 429, 500, 502, 503 or 504.
3272
+ *
3273
+ * **When to use**
3274
+ *
3275
+ * Use to retry the same responses as `retryTransient` in a custom retry policy.
3276
+ *
3277
+ * @see {@link isTransientError} for the matching error predicate
3278
+ * @see {@link retryTransient} for the retry policy that uses it
3279
+ * @stability unstable
3280
+ * @category predicates
3281
+ * @since 4.1.0
3282
+ */
3283
+ export const isTransientResponse = (response: HttpClientResponse.HttpClientResponse): boolean =>
3018
3284
  response.status === 408 ||
3019
3285
  response.status === 429 ||
3020
3286
  response.status === 500 ||
@@ -56,7 +56,11 @@ export const isHttpClientRequest = (u: unknown): u is HttpClientRequest => hasPr
56
56
  */
57
57
  export interface HttpClientRequest extends Inspectable.Inspectable, Pipeable {
58
58
  readonly [TypeId]: typeof TypeId
59
- readonly method: HttpMethod
59
+ /**
60
+ * The request method, which may be a method outside the known `HttpMethod`
61
+ * literals when the request was converted from a Web or server request.
62
+ */
63
+ readonly method: string
60
64
  readonly url: string
61
65
  readonly urlParams: UrlParams.UrlParams
62
66
  readonly hash: Option.Option<string>
@@ -126,7 +130,7 @@ const Proto = {
126
130
  * @since 4.0.0
127
131
  */
128
132
  export function makeWith(
129
- method: HttpMethod,
133
+ method: string,
130
134
  url: string,
131
135
  urlParams: UrlParams.Input,
132
136
  hash: Option.Option<string>,
@@ -1171,7 +1175,7 @@ export interface CompressionOptions {
1171
1175
  * `Content-Length`. The compressed body does not retain the original lazy text.
1172
1176
  * Stream bodies are compressed lazily and have their content length removed.
1173
1177
  * They still require a client runtime that supports streaming request bodies
1174
- * (Fetch requires `duplex: "half"`, which Safari and Firefox do not support).
1178
+ * (stable Safari and Firefox do not; see `FetchHttpClient.StreamBodyFallback`).
1175
1179
  *
1176
1180
  * Returns the original request unchanged for empty, FormData, and raw bodies,
1177
1181
  * bodies with a known length below `options.minSize`, or requests with any
@@ -1203,7 +1207,7 @@ export const compressBody: {
1203
1207
  * `Content-Length`. The compressed body does not retain the original lazy text.
1204
1208
  * Stream bodies are compressed lazily and have their content length removed.
1205
1209
  * They still require a client runtime that supports streaming request bodies
1206
- * (Fetch requires `duplex: "half"`, which Safari and Firefox do not support).
1210
+ * (stable Safari and Firefox do not; see `FetchHttpClient.StreamBodyFallback`).
1207
1211
  *
1208
1212
  * Returns the original request unchanged for empty, FormData, and raw bodies,
1209
1213
  * bodies with a known length below `options.minSize`, or requests with any
@@ -1235,7 +1239,7 @@ export const compressBody: {
1235
1239
  * `Content-Length`. The compressed body does not retain the original lazy text.
1236
1240
  * Stream bodies are compressed lazily and have their content length removed.
1237
1241
  * They still require a client runtime that supports streaming request bodies
1238
- * (Fetch requires `duplex: "half"`, which Safari and Firefox do not support).
1242
+ * (stable Safari and Firefox do not; see `FetchHttpClient.StreamBodyFallback`).
1239
1243
  *
1240
1244
  * Returns the original request unchanged for empty, FormData, and raw bodies,
1241
1245
  * bodies with a known length below `options.minSize`, or requests with any
@@ -1694,16 +1698,15 @@ export function toUrl(self: HttpClientRequest): Option.Option<URL> {
1694
1698
  * @since 4.0.0
1695
1699
  */
1696
1700
  export const fromWeb = (request: globalThis.Request): HttpClientRequest => {
1697
- const method = request.method.toUpperCase() as HttpMethod
1698
- return modify(empty, {
1699
- method,
1701
+ const method = request.method.toUpperCase()
1702
+ return modify(makeWith(method, "", UrlParams.empty, Option.none(), Headers.empty, HttpBody.empty), {
1700
1703
  url: new URL(request.url),
1701
1704
  headers: request.headers,
1702
1705
  body: fromWebBody(request, method)
1703
1706
  })
1704
1707
  }
1705
1708
 
1706
- const fromWebBody = (request: globalThis.Request, method: HttpMethod): HttpBody.HttpBody => {
1709
+ const fromWebBody = (request: globalThis.Request, method: string): HttpBody.HttpBody => {
1707
1710
  if (!hasBody(method) || request.body === null) {
1708
1711
  return HttpBody.empty
1709
1712
  }
@@ -25,6 +25,7 @@ import * as Headers from "./Headers.ts"
25
25
  import * as Error from "./HttpClientError.ts"
26
26
  import * as HttpClientRequest from "./HttpClientRequest.ts"
27
27
  import * as HttpIncomingMessage from "./HttpIncomingMessage.ts"
28
+ import * as internalUrlParams from "./internal/urlParams.ts"
28
29
  import { getWebSource, WebSourceSymbol } from "./internal/webResponse.ts"
29
30
  import * as UrlParams from "./UrlParams.ts"
30
31
 
@@ -454,9 +455,9 @@ class WebHttpClientResponse extends Inspectable.Class implements HttpClientRespo
454
455
  }
455
456
 
456
457
  get urlParamsBody(): Effect.Effect<UrlParams.UrlParams, Error.HttpClientError> {
457
- return Effect.flatMap(this.text, (_) =>
458
+ return Effect.flatMap(this.arrayBuffer, (bytes) =>
458
459
  Effect.try({
459
- try: () => UrlParams.fromInput(new URLSearchParams(_)),
460
+ try: () => UrlParams.fromInput(internalUrlParams.fromBody(bytes)),
460
461
  catch: (cause) =>
461
462
  new Error.HttpClientError({
462
463
  reason: new Error.DecodeError({
@@ -57,12 +57,20 @@ export declare namespace HttpMethod {
57
57
  /**
58
58
  * Returns `true` when a method can carry a request body and narrows it to `HttpMethod.WithBody`.
59
59
  *
60
+ * **Details**
61
+ *
62
+ * Methods outside the known `HttpMethod` literals, such as a received
63
+ * `"PROPFIND"`, are treated as capable of carrying a body but are not narrowed.
64
+ *
60
65
  * @stability unstable
61
66
  * @category guards
62
67
  * @since 4.0.0
63
68
  */
64
- export const hasBody = (method: HttpMethod): method is HttpMethod.WithBody =>
65
- method !== "GET" && method !== "HEAD" && method !== "OPTIONS" && method !== "TRACE"
69
+ export function hasBody(method: HttpMethod): method is HttpMethod.WithBody
70
+ export function hasBody(method: string): boolean
71
+ export function hasBody(method: string): boolean {
72
+ return method !== "GET" && method !== "HEAD" && method !== "OPTIONS" && method !== "TRACE"
73
+ }
66
74
 
67
75
  /**
68
76
  * Provides a readonly set containing every supported `HttpMethod` literal.