effect 4.0.6 → 4.1.0

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 (978) hide show
  1. package/README.md +1 -1
  2. package/dist/Arbitrary.d.ts +10 -2
  3. package/dist/Arbitrary.d.ts.map +1 -1
  4. package/dist/Arbitrary.js +2 -1
  5. package/dist/Arbitrary.js.map +1 -1
  6. package/dist/BigDecimal.d.ts.map +1 -1
  7. package/dist/BigDecimal.js +3 -0
  8. package/dist/BigDecimal.js.map +1 -1
  9. package/dist/Channel.d.ts +12 -6
  10. package/dist/Channel.d.ts.map +1 -1
  11. package/dist/Channel.js +30 -9
  12. package/dist/Channel.js.map +1 -1
  13. package/dist/Config.d.ts +7 -1
  14. package/dist/Config.d.ts.map +1 -1
  15. package/dist/Config.js.map +1 -1
  16. package/dist/Context.d.ts +18 -1
  17. package/dist/Context.d.ts.map +1 -1
  18. package/dist/Context.js +27 -8
  19. package/dist/Context.js.map +1 -1
  20. package/dist/Cron.d.ts +81 -11
  21. package/dist/Cron.d.ts.map +1 -1
  22. package/dist/Cron.js +101 -26
  23. package/dist/Cron.js.map +1 -1
  24. package/dist/Data.d.ts +54 -235
  25. package/dist/Data.d.ts.map +1 -1
  26. package/dist/Data.js.map +1 -1
  27. package/dist/Duration.d.ts +78 -0
  28. package/dist/Duration.d.ts.map +1 -1
  29. package/dist/Duration.js +123 -0
  30. package/dist/Duration.js.map +1 -1
  31. package/dist/Effect.d.ts +165 -8
  32. package/dist/Effect.d.ts.map +1 -1
  33. package/dist/Effect.js +12 -2
  34. package/dist/Effect.js.map +1 -1
  35. package/dist/Equal.d.ts.map +1 -1
  36. package/dist/Equal.js +8 -1
  37. package/dist/Equal.js.map +1 -1
  38. package/dist/Exit.d.ts +3 -3
  39. package/dist/Exit.d.ts.map +1 -1
  40. package/dist/Exit.js.map +1 -1
  41. package/dist/FileSystem.d.ts +59 -4
  42. package/dist/FileSystem.d.ts.map +1 -1
  43. package/dist/FileSystem.js +9 -2
  44. package/dist/FileSystem.js.map +1 -1
  45. package/dist/Formatter.d.ts.map +1 -1
  46. package/dist/Formatter.js +27 -13
  47. package/dist/Formatter.js.map +1 -1
  48. package/dist/Glob.d.ts +165 -0
  49. package/dist/Glob.d.ts.map +1 -0
  50. package/dist/Glob.js +127 -0
  51. package/dist/Glob.js.map +1 -0
  52. package/dist/Hash.d.ts.map +1 -1
  53. package/dist/Hash.js +4 -1
  54. package/dist/Hash.js.map +1 -1
  55. package/dist/JsonPatch.js +4 -0
  56. package/dist/JsonPatch.js.map +1 -1
  57. package/dist/JsonSchema.d.ts.map +1 -1
  58. package/dist/JsonSchema.js +13 -40
  59. package/dist/JsonSchema.js.map +1 -1
  60. package/dist/Match.d.ts +86 -0
  61. package/dist/Match.d.ts.map +1 -1
  62. package/dist/Match.js +72 -0
  63. package/dist/Match.js.map +1 -1
  64. package/dist/Metric.d.ts +3 -3
  65. package/dist/MutableList.d.ts +5 -2
  66. package/dist/MutableList.d.ts.map +1 -1
  67. package/dist/MutableList.js +7 -5
  68. package/dist/MutableList.js.map +1 -1
  69. package/dist/MutableRef.d.ts.map +1 -1
  70. package/dist/MutableRef.js +7 -0
  71. package/dist/MutableRef.js.map +1 -1
  72. package/dist/PartitionedSemaphore.d.ts +2 -1
  73. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  74. package/dist/PartitionedSemaphore.js +22 -12
  75. package/dist/PartitionedSemaphore.js.map +1 -1
  76. package/dist/Pool.d.ts +51 -0
  77. package/dist/Pool.d.ts.map +1 -1
  78. package/dist/Pool.js +136 -36
  79. package/dist/Pool.js.map +1 -1
  80. package/dist/PubSub.d.ts.map +1 -1
  81. package/dist/PubSub.js +5 -6
  82. package/dist/PubSub.js.map +1 -1
  83. package/dist/Random.d.ts.map +1 -1
  84. package/dist/Random.js +3 -3
  85. package/dist/Random.js.map +1 -1
  86. package/dist/RcMap.d.ts.map +1 -1
  87. package/dist/RcMap.js +8 -2
  88. package/dist/RcMap.js.map +1 -1
  89. package/dist/Ref.d.ts.map +1 -1
  90. package/dist/Ref.js +8 -0
  91. package/dist/Ref.js.map +1 -1
  92. package/dist/Schedule.d.ts +18 -1
  93. package/dist/Schedule.d.ts.map +1 -1
  94. package/dist/Schedule.js +8 -3
  95. package/dist/Schedule.js.map +1 -1
  96. package/dist/Schema.d.ts +690 -49
  97. package/dist/Schema.d.ts.map +1 -1
  98. package/dist/Schema.js +687 -28
  99. package/dist/Schema.js.map +1 -1
  100. package/dist/SchemaAST.d.ts +4 -2
  101. package/dist/SchemaAST.d.ts.map +1 -1
  102. package/dist/SchemaAST.js +14 -17
  103. package/dist/SchemaAST.js.map +1 -1
  104. package/dist/SchemaGetter.d.ts +6 -1
  105. package/dist/SchemaGetter.d.ts.map +1 -1
  106. package/dist/SchemaGetter.js +22 -11
  107. package/dist/SchemaGetter.js.map +1 -1
  108. package/dist/SchemaParser.d.ts.map +1 -1
  109. package/dist/SchemaParser.js +48 -22
  110. package/dist/SchemaParser.js.map +1 -1
  111. package/dist/SchemaRepresentation.d.ts +33 -10
  112. package/dist/SchemaRepresentation.d.ts.map +1 -1
  113. package/dist/SchemaRepresentation.js +39 -13
  114. package/dist/SchemaRepresentation.js.map +1 -1
  115. package/dist/SchemaTransformation.d.ts +12 -4
  116. package/dist/SchemaTransformation.d.ts.map +1 -1
  117. package/dist/SchemaTransformation.js +15 -5
  118. package/dist/SchemaTransformation.js.map +1 -1
  119. package/dist/ScopedCache.d.ts.map +1 -1
  120. package/dist/ScopedCache.js +5 -7
  121. package/dist/ScopedCache.js.map +1 -1
  122. package/dist/Semaphore.d.ts +130 -0
  123. package/dist/Semaphore.d.ts.map +1 -1
  124. package/dist/Semaphore.js +94 -35
  125. package/dist/Semaphore.js.map +1 -1
  126. package/dist/Sink.d.ts.map +1 -1
  127. package/dist/Sink.js +7 -2
  128. package/dist/Sink.js.map +1 -1
  129. package/dist/Stream.d.ts +13 -4
  130. package/dist/Stream.d.ts.map +1 -1
  131. package/dist/Stream.js +31 -10
  132. package/dist/Stream.js.map +1 -1
  133. package/dist/String.d.ts +3 -0
  134. package/dist/String.d.ts.map +1 -1
  135. package/dist/String.js +3 -0
  136. package/dist/String.js.map +1 -1
  137. package/dist/Terminal.d.ts +18 -1
  138. package/dist/Terminal.d.ts.map +1 -1
  139. package/dist/Terminal.js +1 -1
  140. package/dist/Terminal.js.map +1 -1
  141. package/dist/Tracer.d.ts +11 -1
  142. package/dist/Tracer.d.ts.map +1 -1
  143. package/dist/Tracer.js +6 -1
  144. package/dist/Tracer.js.map +1 -1
  145. package/dist/ai/AiError.d.ts +43 -116
  146. package/dist/ai/AiError.d.ts.map +1 -1
  147. package/dist/ai/AiError.js +53 -72
  148. package/dist/ai/AiError.js.map +1 -1
  149. package/dist/ai/Decision.d.ts +196 -15
  150. package/dist/ai/Decision.d.ts.map +1 -1
  151. package/dist/ai/Decision.js +130 -0
  152. package/dist/ai/Decision.js.map +1 -1
  153. package/dist/ai/DecisionModel.d.ts +54 -13
  154. package/dist/ai/DecisionModel.d.ts.map +1 -1
  155. package/dist/ai/DecisionModel.js +123 -12
  156. package/dist/ai/DecisionModel.js.map +1 -1
  157. package/dist/ai/LanguageModel.d.ts.map +1 -1
  158. package/dist/ai/LanguageModel.js +9 -0
  159. package/dist/ai/LanguageModel.js.map +1 -1
  160. package/dist/ai/McpSchema.d.ts +110 -110
  161. package/dist/ai/McpSchema.d.ts.map +1 -1
  162. package/dist/ai/McpServer.d.ts +630 -29
  163. package/dist/ai/McpServer.d.ts.map +1 -1
  164. package/dist/ai/McpServer.js +583 -131
  165. package/dist/ai/McpServer.js.map +1 -1
  166. package/dist/ai/McpTest.d.ts +130 -0
  167. package/dist/ai/McpTest.d.ts.map +1 -0
  168. package/dist/ai/McpTest.js +237 -0
  169. package/dist/ai/McpTest.js.map +1 -0
  170. package/dist/ai/Prompt.d.ts +52 -0
  171. package/dist/ai/Prompt.d.ts.map +1 -1
  172. package/dist/ai/Prompt.js +38 -0
  173. package/dist/ai/Prompt.js.map +1 -1
  174. package/dist/ai/Response.d.ts +17 -28
  175. package/dist/ai/Response.d.ts.map +1 -1
  176. package/dist/ai/Response.js +5 -10
  177. package/dist/ai/Response.js.map +1 -1
  178. package/dist/ai/Tool.d.ts +43 -1
  179. package/dist/ai/Tool.d.ts.map +1 -1
  180. package/dist/ai/Tool.js +5 -2
  181. package/dist/ai/Tool.js.map +1 -1
  182. package/dist/ai/Toolkit.d.ts.map +1 -1
  183. package/dist/ai/Toolkit.js +8 -1
  184. package/dist/ai/Toolkit.js.map +1 -1
  185. package/dist/ai/index.d.ts +5 -0
  186. package/dist/ai/index.d.ts.map +1 -1
  187. package/dist/ai/index.js +5 -0
  188. package/dist/ai/index.js.map +1 -1
  189. package/dist/ai/internal/mcpCore.js +17 -12
  190. package/dist/ai/internal/mcpCore.js.map +1 -1
  191. package/dist/ai/internal/mcpProtocol/v2024_11_05.js +4 -5
  192. package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
  193. package/dist/ai/internal/mcpProtocol/v2025_03_26.js +4 -5
  194. package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
  195. package/dist/ai/internal/mcpProtocol/v2025_06_18.js +4 -5
  196. package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
  197. package/dist/ai/internal/mcpProtocol/v2025_11_25.js +4 -5
  198. package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
  199. package/dist/ai/internal/mcpProtocol/v2026_07_28.js +18 -10
  200. package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
  201. package/dist/ai/internal/mcpProtocol.js +13 -0
  202. package/dist/ai/internal/mcpProtocol.js.map +1 -1
  203. package/dist/ai/internal/mcpRuntime.js +5 -3
  204. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  205. package/dist/ai/internal/mcpStatefulRuntime.js +6 -1
  206. package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
  207. package/dist/cli/Argument.d.ts +21 -0
  208. package/dist/cli/Argument.d.ts.map +1 -1
  209. package/dist/cli/Argument.js +7 -0
  210. package/dist/cli/Argument.js.map +1 -1
  211. package/dist/cli/CliError.d.ts +78 -0
  212. package/dist/cli/CliError.d.ts.map +1 -1
  213. package/dist/cli/CliError.js +65 -3
  214. package/dist/cli/CliError.js.map +1 -1
  215. package/dist/cli/CliOutput.d.ts +220 -7
  216. package/dist/cli/CliOutput.d.ts.map +1 -1
  217. package/dist/cli/CliOutput.js +156 -43
  218. package/dist/cli/CliOutput.js.map +1 -1
  219. package/dist/cli/Command.d.ts +47 -16
  220. package/dist/cli/Command.d.ts.map +1 -1
  221. package/dist/cli/Command.js +67 -29
  222. package/dist/cli/Command.js.map +1 -1
  223. package/dist/cli/Completions.d.ts +58 -0
  224. package/dist/cli/Completions.d.ts.map +1 -1
  225. package/dist/cli/Completions.js +49 -9
  226. package/dist/cli/Completions.js.map +1 -1
  227. package/dist/cli/Flag.d.ts +122 -0
  228. package/dist/cli/Flag.d.ts.map +1 -1
  229. package/dist/cli/Flag.js +42 -0
  230. package/dist/cli/Flag.js.map +1 -1
  231. package/dist/cli/GlobalFlag.d.ts.map +1 -1
  232. package/dist/cli/GlobalFlag.js +15 -7
  233. package/dist/cli/GlobalFlag.js.map +1 -1
  234. package/dist/cli/HelpDoc.d.ts +15 -1
  235. package/dist/cli/HelpDoc.d.ts.map +1 -1
  236. package/dist/cli/Param.d.ts +15 -0
  237. package/dist/cli/Param.d.ts.map +1 -1
  238. package/dist/cli/Param.js +23 -2
  239. package/dist/cli/Param.js.map +1 -1
  240. package/dist/cli/Primitive.d.ts +14 -0
  241. package/dist/cli/Primitive.d.ts.map +1 -1
  242. package/dist/cli/Primitive.js +15 -1
  243. package/dist/cli/Primitive.js.map +1 -1
  244. package/dist/cli/Prompt.d.ts +1 -0
  245. package/dist/cli/Prompt.d.ts.map +1 -1
  246. package/dist/cli/Prompt.js +1 -0
  247. package/dist/cli/Prompt.js.map +1 -1
  248. package/dist/cli/TerminalCapabilities.d.ts +3 -2
  249. package/dist/cli/TerminalCapabilities.d.ts.map +1 -1
  250. package/dist/cli/TerminalCapabilities.js +3 -1
  251. package/dist/cli/TerminalCapabilities.js.map +1 -1
  252. package/dist/cli/internal/completions/bash.js +73 -27
  253. package/dist/cli/internal/completions/bash.js.map +1 -1
  254. package/dist/cli/internal/help.d.ts.map +1 -1
  255. package/dist/cli/internal/help.js +17 -10
  256. package/dist/cli/internal/help.js.map +1 -1
  257. package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  258. package/dist/cluster/ClusterWorkflowEngine.js +45 -10
  259. package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
  260. package/dist/cluster/MessageStorage.d.ts +23 -45
  261. package/dist/cluster/MessageStorage.d.ts.map +1 -1
  262. package/dist/cluster/MessageStorage.js +6 -7
  263. package/dist/cluster/MessageStorage.js.map +1 -1
  264. package/dist/cluster/Sharding.d.ts.map +1 -1
  265. package/dist/cluster/Sharding.js +151 -49
  266. package/dist/cluster/Sharding.js.map +1 -1
  267. package/dist/cluster/ShardingConfig.d.ts +76 -0
  268. package/dist/cluster/ShardingConfig.d.ts.map +1 -1
  269. package/dist/cluster/ShardingConfig.js +4 -0
  270. package/dist/cluster/ShardingConfig.js.map +1 -1
  271. package/dist/cluster/SingleRunner.d.ts +3 -3
  272. package/dist/cluster/SingleRunner.d.ts.map +1 -1
  273. package/dist/cluster/SingleRunner.js +1 -1
  274. package/dist/cluster/Snowflake.d.ts.map +1 -1
  275. package/dist/cluster/Snowflake.js +3 -7
  276. package/dist/cluster/Snowflake.js.map +1 -1
  277. package/dist/cluster/SqlMessageStorage.d.ts +37 -6
  278. package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
  279. package/dist/cluster/SqlMessageStorage.js +34 -7
  280. package/dist/cluster/SqlMessageStorage.js.map +1 -1
  281. package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
  282. package/dist/cluster/SqlRunnerStorage.js +109 -46
  283. package/dist/cluster/SqlRunnerStorage.js.map +1 -1
  284. package/dist/cluster/internal/entityManager.js +54 -20
  285. package/dist/cluster/internal/entityManager.js.map +1 -1
  286. package/dist/crypto/Aead.d.ts +322 -0
  287. package/dist/crypto/Aead.d.ts.map +1 -0
  288. package/dist/crypto/Aead.js +331 -0
  289. package/dist/crypto/Aead.js.map +1 -0
  290. package/dist/crypto/Cipher.d.ts +235 -0
  291. package/dist/crypto/Cipher.d.ts.map +1 -0
  292. package/dist/crypto/Cipher.js +233 -0
  293. package/dist/crypto/Cipher.js.map +1 -0
  294. package/dist/crypto/CryptoError.d.ts +212 -0
  295. package/dist/crypto/CryptoError.d.ts.map +1 -0
  296. package/dist/crypto/CryptoError.js +202 -0
  297. package/dist/crypto/CryptoError.js.map +1 -0
  298. package/dist/crypto/Digest.d.ts +143 -0
  299. package/dist/crypto/Digest.d.ts.map +1 -0
  300. package/dist/crypto/Digest.js +146 -0
  301. package/dist/crypto/Digest.js.map +1 -0
  302. package/dist/crypto/Kdf.d.ts +220 -0
  303. package/dist/crypto/Kdf.d.ts.map +1 -0
  304. package/dist/crypto/Kdf.js +212 -0
  305. package/dist/crypto/Kdf.js.map +1 -0
  306. package/dist/crypto/KeyAgreement.d.ts +323 -0
  307. package/dist/crypto/KeyAgreement.d.ts.map +1 -0
  308. package/dist/crypto/KeyAgreement.js +303 -0
  309. package/dist/crypto/KeyAgreement.js.map +1 -0
  310. package/dist/crypto/KeyFormat.d.ts +309 -0
  311. package/dist/crypto/KeyFormat.d.ts.map +1 -0
  312. package/dist/crypto/KeyFormat.js +556 -0
  313. package/dist/crypto/KeyFormat.js.map +1 -0
  314. package/dist/crypto/KeyWrap.d.ts +389 -0
  315. package/dist/crypto/KeyWrap.d.ts.map +1 -0
  316. package/dist/crypto/KeyWrap.js +381 -0
  317. package/dist/crypto/KeyWrap.js.map +1 -0
  318. package/dist/crypto/Mac.d.ts +277 -0
  319. package/dist/crypto/Mac.d.ts.map +1 -0
  320. package/dist/crypto/Mac.js +288 -0
  321. package/dist/crypto/Mac.js.map +1 -0
  322. package/dist/crypto/SecureRandom.d.ts +340 -0
  323. package/dist/crypto/SecureRandom.d.ts.map +1 -0
  324. package/dist/crypto/SecureRandom.js +257 -0
  325. package/dist/crypto/SecureRandom.js.map +1 -0
  326. package/dist/crypto/Signature.d.ts +448 -0
  327. package/dist/crypto/Signature.d.ts.map +1 -0
  328. package/dist/crypto/Signature.js +484 -0
  329. package/dist/crypto/Signature.js.map +1 -0
  330. package/dist/crypto/WebCrypto.d.ts +61 -0
  331. package/dist/crypto/WebCrypto.d.ts.map +1 -0
  332. package/dist/crypto/WebCrypto.js +63 -0
  333. package/dist/crypto/WebCrypto.js.map +1 -0
  334. package/dist/crypto/index.d.ts +65 -0
  335. package/dist/crypto/index.d.ts.map +1 -0
  336. package/dist/crypto/index.js +66 -0
  337. package/dist/crypto/index.js.map +1 -0
  338. package/dist/crypto/internal/asymmetric.d.ts +2 -0
  339. package/dist/crypto/internal/asymmetric.d.ts.map +1 -0
  340. package/dist/crypto/internal/asymmetric.js +210 -0
  341. package/dist/crypto/internal/asymmetric.js.map +1 -0
  342. package/dist/crypto/internal/chacha.d.ts +46 -0
  343. package/dist/crypto/internal/chacha.d.ts.map +1 -0
  344. package/dist/crypto/internal/chacha.js +885 -0
  345. package/dist/crypto/internal/chacha.js.map +1 -0
  346. package/dist/crypto/internal/der.d.ts +6 -0
  347. package/dist/crypto/internal/der.d.ts.map +1 -0
  348. package/dist/crypto/internal/der.js +86 -0
  349. package/dist/crypto/internal/der.js.map +1 -0
  350. package/dist/crypto/internal/digest.d.ts +2 -0
  351. package/dist/crypto/internal/digest.d.ts.map +1 -0
  352. package/dist/crypto/internal/digest.js +15 -0
  353. package/dist/crypto/internal/digest.js.map +1 -0
  354. package/dist/crypto/internal/key.d.ts +2 -0
  355. package/dist/crypto/internal/key.d.ts.map +1 -0
  356. package/dist/crypto/internal/key.js +170 -0
  357. package/dist/crypto/internal/key.js.map +1 -0
  358. package/dist/crypto/internal/md5.d.ts +39 -0
  359. package/dist/crypto/internal/md5.d.ts.map +1 -0
  360. package/dist/crypto/internal/md5.js +179 -0
  361. package/dist/crypto/internal/md5.js.map +1 -0
  362. package/dist/crypto/internal/webCrypto.d.ts +2 -0
  363. package/dist/crypto/internal/webCrypto.d.ts.map +1 -0
  364. package/dist/crypto/internal/webCrypto.js +111 -0
  365. package/dist/crypto/internal/webCrypto.js.map +1 -0
  366. package/dist/devtools/DevToolsClient.d.ts.map +1 -1
  367. package/dist/devtools/DevToolsClient.js +2 -0
  368. package/dist/devtools/DevToolsClient.js.map +1 -1
  369. package/dist/encoding/Base64.js +36 -0
  370. package/dist/encoding/Base64.js.map +1 -1
  371. package/dist/encoding/Base64Url.d.ts.map +1 -1
  372. package/dist/encoding/Base64Url.js +3 -2
  373. package/dist/encoding/Base64Url.js.map +1 -1
  374. package/dist/encoding/Csv.d.ts +608 -0
  375. package/dist/encoding/Csv.d.ts.map +1 -0
  376. package/dist/encoding/Csv.js +718 -0
  377. package/dist/encoding/Csv.js.map +1 -0
  378. package/dist/encoding/Hex.d.ts +3 -2
  379. package/dist/encoding/Hex.d.ts.map +1 -1
  380. package/dist/encoding/Hex.js +3 -2
  381. package/dist/encoding/Hex.js.map +1 -1
  382. package/dist/encoding/SchemaBinary.d.ts.map +1 -1
  383. package/dist/encoding/SchemaBinary.js +42 -4
  384. package/dist/encoding/SchemaBinary.js.map +1 -1
  385. package/dist/encoding/Sse.d.ts.map +1 -1
  386. package/dist/encoding/Sse.js +3 -3
  387. package/dist/encoding/Sse.js.map +1 -1
  388. package/dist/encoding/Toml.d.ts +17 -3
  389. package/dist/encoding/Toml.d.ts.map +1 -1
  390. package/dist/encoding/Toml.js +124 -31
  391. package/dist/encoding/Toml.js.map +1 -1
  392. package/dist/encoding/Yaml.d.ts +8 -1
  393. package/dist/encoding/Yaml.d.ts.map +1 -1
  394. package/dist/encoding/Yaml.js +54 -18
  395. package/dist/encoding/Yaml.js.map +1 -1
  396. package/dist/encoding/index.d.ts +5 -0
  397. package/dist/encoding/index.d.ts.map +1 -1
  398. package/dist/encoding/index.js +5 -0
  399. package/dist/encoding/index.js.map +1 -1
  400. package/dist/eventlog/EventJournal.d.ts.map +1 -1
  401. package/dist/eventlog/EventJournal.js +6 -3
  402. package/dist/eventlog/EventJournal.js.map +1 -1
  403. package/dist/eventlog/EventLog.d.ts +119 -4
  404. package/dist/eventlog/EventLog.d.ts.map +1 -1
  405. package/dist/eventlog/EventLog.js +200 -12
  406. package/dist/eventlog/EventLog.js.map +1 -1
  407. package/dist/eventlog/EventLogEncryption.d.ts +41 -4
  408. package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
  409. package/dist/eventlog/EventLogEncryption.js +83 -64
  410. package/dist/eventlog/EventLogEncryption.js.map +1 -1
  411. package/dist/eventlog/EventLogMessage.d.ts +279 -0
  412. package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
  413. package/dist/eventlog/EventLogMessage.js +217 -1
  414. package/dist/eventlog/EventLogMessage.js.map +1 -1
  415. package/dist/eventlog/EventLogRemote.d.ts +200 -28
  416. package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
  417. package/dist/eventlog/EventLogRemote.js +186 -16
  418. package/dist/eventlog/EventLogRemote.js.map +1 -1
  419. package/dist/eventlog/EventLogServer.d.ts +3 -0
  420. package/dist/eventlog/EventLogServer.d.ts.map +1 -1
  421. package/dist/eventlog/EventLogServer.js +18 -10
  422. package/dist/eventlog/EventLogServer.js.map +1 -1
  423. package/dist/eventlog/EventLogServerEncrypted.d.ts +326 -5
  424. package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  425. package/dist/eventlog/EventLogServerEncrypted.js +769 -14
  426. package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
  427. package/dist/eventlog/EventLogSessionAuth.d.ts +5 -3
  428. package/dist/eventlog/EventLogSessionAuth.d.ts.map +1 -1
  429. package/dist/eventlog/EventLogSessionAuth.js +41 -64
  430. package/dist/eventlog/EventLogSessionAuth.js.map +1 -1
  431. package/dist/eventlog/EventRow.d.ts +4 -0
  432. package/dist/eventlog/EventRow.d.ts.map +1 -1
  433. package/dist/eventlog/EventRow.js +12 -2
  434. package/dist/eventlog/EventRow.js.map +1 -1
  435. package/dist/eventlog/SqlEventJournal.d.ts.map +1 -1
  436. package/dist/eventlog/SqlEventJournal.js +47 -27
  437. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  438. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +21 -5
  439. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
  440. package/dist/eventlog/SqlEventLogServerEncrypted.js +1048 -113
  441. package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  442. package/dist/eventlog/SqlEventLogServerUnencrypted.js +2 -2
  443. package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  444. package/dist/eventlog/internal/batches.d.ts +12 -0
  445. package/dist/eventlog/internal/batches.d.ts.map +1 -0
  446. package/dist/eventlog/internal/batches.js +26 -0
  447. package/dist/eventlog/internal/batches.js.map +1 -0
  448. package/dist/eventlog/internal/compaction.d.ts +38 -0
  449. package/dist/eventlog/internal/compaction.d.ts.map +1 -0
  450. package/dist/eventlog/internal/compaction.js +33 -0
  451. package/dist/eventlog/internal/compaction.js.map +1 -0
  452. package/dist/eventlog/internal/conflicts.d.ts +0 -1
  453. package/dist/eventlog/internal/conflicts.d.ts.map +1 -1
  454. package/dist/eventlog/internal/conflicts.js +0 -3
  455. package/dist/eventlog/internal/conflicts.js.map +1 -1
  456. package/dist/eventlog/internal/identityRootSecretDerivation.js +66 -67
  457. package/dist/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
  458. package/dist/eventlog/internal/remoteCompaction.d.ts +31 -0
  459. package/dist/eventlog/internal/remoteCompaction.d.ts.map +1 -0
  460. package/dist/eventlog/internal/remoteCompaction.js +76 -0
  461. package/dist/eventlog/internal/remoteCompaction.js.map +1 -0
  462. package/dist/http/Cookies.d.ts +172 -0
  463. package/dist/http/Cookies.d.ts.map +1 -1
  464. package/dist/http/Cookies.js +153 -10
  465. package/dist/http/Cookies.js.map +1 -1
  466. package/dist/http/FetchHttpClient.d.ts +26 -2
  467. package/dist/http/FetchHttpClient.d.ts.map +1 -1
  468. package/dist/http/FetchHttpClient.js +78 -15
  469. package/dist/http/FetchHttpClient.js.map +1 -1
  470. package/dist/http/HttpClient.d.ts +502 -8
  471. package/dist/http/HttpClient.d.ts.map +1 -1
  472. package/dist/http/HttpClient.js +296 -12
  473. package/dist/http/HttpClient.js.map +1 -1
  474. package/dist/http/HttpClientError.d.ts +8 -1
  475. package/dist/http/HttpClientError.d.ts.map +1 -1
  476. package/dist/http/HttpClientError.js +37 -1
  477. package/dist/http/HttpClientError.js.map +1 -1
  478. package/dist/http/HttpClientRequest.d.ts +9 -5
  479. package/dist/http/HttpClientRequest.d.ts.map +1 -1
  480. package/dist/http/HttpClientRequest.js +3 -4
  481. package/dist/http/HttpClientRequest.js.map +1 -1
  482. package/dist/http/HttpClientResponse.d.ts.map +1 -1
  483. package/dist/http/HttpClientResponse.js +3 -2
  484. package/dist/http/HttpClientResponse.js.map +1 -1
  485. package/dist/http/HttpMethod.d.ts +7 -1
  486. package/dist/http/HttpMethod.d.ts.map +1 -1
  487. package/dist/http/HttpMethod.js +3 -8
  488. package/dist/http/HttpMethod.js.map +1 -1
  489. package/dist/http/HttpMiddleware.d.ts +1 -1
  490. package/dist/http/HttpMiddleware.d.ts.map +1 -1
  491. package/dist/http/HttpMiddleware.js +14 -16
  492. package/dist/http/HttpMiddleware.js.map +1 -1
  493. package/dist/http/HttpRouter.d.ts.map +1 -1
  494. package/dist/http/HttpRouter.js +2 -1
  495. package/dist/http/HttpRouter.js.map +1 -1
  496. package/dist/http/HttpServerError.js +2 -2
  497. package/dist/http/HttpServerError.js.map +1 -1
  498. package/dist/http/HttpServerRequest.d.ts +11 -3
  499. package/dist/http/HttpServerRequest.d.ts.map +1 -1
  500. package/dist/http/HttpServerRequest.js +77 -25
  501. package/dist/http/HttpServerRequest.js.map +1 -1
  502. package/dist/http/HttpServerResponse.d.ts.map +1 -1
  503. package/dist/http/HttpServerResponse.js +3 -2
  504. package/dist/http/HttpServerResponse.js.map +1 -1
  505. package/dist/http/HttpStaticServer.d.ts.map +1 -1
  506. package/dist/http/HttpStaticServer.js +48 -21
  507. package/dist/http/HttpStaticServer.js.map +1 -1
  508. package/dist/http/HttpTraceContext.d.ts +2 -1
  509. package/dist/http/HttpTraceContext.d.ts.map +1 -1
  510. package/dist/http/HttpTraceContext.js +7 -5
  511. package/dist/http/HttpTraceContext.js.map +1 -1
  512. package/dist/http/MultipartParser/internal/contentType.js +3 -3
  513. package/dist/http/ProblemDetails.d.ts +96 -0
  514. package/dist/http/ProblemDetails.d.ts.map +1 -0
  515. package/dist/http/ProblemDetails.js +98 -0
  516. package/dist/http/ProblemDetails.js.map +1 -0
  517. package/dist/http/UrlParams.d.ts +3 -1
  518. package/dist/http/UrlParams.d.ts.map +1 -1
  519. package/dist/http/UrlParams.js +4 -2
  520. package/dist/http/UrlParams.js.map +1 -1
  521. package/dist/http/index.d.ts +5 -0
  522. package/dist/http/index.d.ts.map +1 -1
  523. package/dist/http/index.js +5 -0
  524. package/dist/http/index.js.map +1 -1
  525. package/dist/http/internal/compression.js +4 -5
  526. package/dist/http/internal/compression.js.map +1 -1
  527. package/dist/http/internal/decompression.js +6 -2
  528. package/dist/http/internal/decompression.js.map +1 -1
  529. package/dist/http/internal/httpBody.js +8 -1
  530. package/dist/http/internal/httpBody.js.map +1 -1
  531. package/dist/http/internal/urlParams.js +33 -0
  532. package/dist/http/internal/urlParams.js.map +1 -1
  533. package/dist/http-api/HttpApi.d.ts +3 -6
  534. package/dist/http-api/HttpApi.d.ts.map +1 -1
  535. package/dist/http-api/HttpApi.js +3 -6
  536. package/dist/http-api/HttpApi.js.map +1 -1
  537. package/dist/http-api/HttpApiBuilder.d.ts.map +1 -1
  538. package/dist/http-api/HttpApiBuilder.js +43 -13
  539. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  540. package/dist/http-api/HttpApiClient.d.ts +140 -7
  541. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  542. package/dist/http-api/HttpApiClient.js +193 -44
  543. package/dist/http-api/HttpApiClient.js.map +1 -1
  544. package/dist/http-api/HttpApiEndpoint.d.ts +24 -7
  545. package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
  546. package/dist/http-api/HttpApiEndpoint.js +123 -32
  547. package/dist/http-api/HttpApiEndpoint.js.map +1 -1
  548. package/dist/http-api/HttpApiError.d.ts +185 -13
  549. package/dist/http-api/HttpApiError.d.ts.map +1 -1
  550. package/dist/http-api/HttpApiError.js +128 -0
  551. package/dist/http-api/HttpApiError.js.map +1 -1
  552. package/dist/http-api/HttpApiMiddleware.d.ts +64 -17
  553. package/dist/http-api/HttpApiMiddleware.d.ts.map +1 -1
  554. package/dist/http-api/HttpApiMiddleware.js +85 -1
  555. package/dist/http-api/HttpApiMiddleware.js.map +1 -1
  556. package/dist/http-api/HttpApiSchema.d.ts +142 -33
  557. package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
  558. package/dist/http-api/HttpApiSchema.js +123 -59
  559. package/dist/http-api/HttpApiSchema.js.map +1 -1
  560. package/dist/http-api/HttpApiTest.d.ts.map +1 -1
  561. package/dist/http-api/HttpApiTest.js +3 -2
  562. package/dist/http-api/HttpApiTest.js.map +1 -1
  563. package/dist/http-api/OpenApi.d.ts.map +1 -1
  564. package/dist/http-api/OpenApi.js +25 -16
  565. package/dist/http-api/OpenApi.js.map +1 -1
  566. package/dist/http-api/internal/toCodecHttpProperties.d.ts +2 -0
  567. package/dist/http-api/internal/toCodecHttpProperties.d.ts.map +1 -0
  568. package/dist/http-api/internal/toCodecHttpProperties.js +38 -0
  569. package/dist/http-api/internal/toCodecHttpProperties.js.map +1 -0
  570. package/dist/index.d.ts +5 -5
  571. package/dist/index.d.ts.map +1 -1
  572. package/dist/index.js +5 -5
  573. package/dist/index.js.map +1 -1
  574. package/dist/internal/arbitrary/runner.d.ts.map +1 -1
  575. package/dist/internal/arbitrary/runner.js +120 -44
  576. package/dist/internal/arbitrary/runner.js.map +1 -1
  577. package/dist/internal/core.js +2 -0
  578. package/dist/internal/core.js.map +1 -1
  579. package/dist/internal/effect.js +46 -27
  580. package/dist/internal/effect.js.map +1 -1
  581. package/dist/internal/equal.js +14 -0
  582. package/dist/internal/equal.js.map +1 -1
  583. package/dist/internal/glob.d.ts +2 -0
  584. package/dist/internal/glob.d.ts.map +1 -0
  585. package/dist/internal/glob.js +630 -0
  586. package/dist/internal/glob.js.map +1 -0
  587. package/dist/internal/jsonSchema.d.ts +2 -0
  588. package/dist/internal/jsonSchema.d.ts.map +1 -0
  589. package/dist/internal/jsonSchema.js +28 -0
  590. package/dist/internal/jsonSchema.js.map +1 -0
  591. package/dist/internal/matcher.js +11 -1
  592. package/dist/internal/matcher.js.map +1 -1
  593. package/dist/internal/persistence.js +9 -0
  594. package/dist/internal/persistence.js.map +1 -1
  595. package/dist/internal/rcRef.js +4 -1
  596. package/dist/internal/rcRef.js.map +1 -1
  597. package/dist/internal/schema/compilerRegistry.js +4 -1
  598. package/dist/internal/schema/compilerRegistry.js.map +1 -1
  599. package/dist/internal/schema/content.d.ts +2 -0
  600. package/dist/internal/schema/content.d.ts.map +1 -0
  601. package/dist/internal/schema/content.js +13 -0
  602. package/dist/internal/schema/content.js.map +1 -0
  603. package/dist/internal/schema/fromJsonSchemaDocument.js +173 -185
  604. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  605. package/dist/internal/schema/fromRepresentation.js +2 -1
  606. package/dist/internal/schema/fromRepresentation.js.map +1 -1
  607. package/dist/internal/schema/standardSchema.js +8 -2
  608. package/dist/internal/schema/standardSchema.js.map +1 -1
  609. package/dist/internal/schema/toCodeDocument.js +9 -6
  610. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  611. package/dist/internal/schema/toCodec.js +21 -24
  612. package/dist/internal/schema/toCodec.js.map +1 -1
  613. package/dist/internal/schema/toJsonSchemaDocument.js +205 -140
  614. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
  615. package/dist/internal/schema/toRepresentation.js +107 -129
  616. package/dist/internal/schema/toRepresentation.js.map +1 -1
  617. package/dist/internal/sql.d.ts +2 -0
  618. package/dist/internal/sql.d.ts.map +1 -0
  619. package/dist/internal/sql.js +13 -0
  620. package/dist/internal/sql.js.map +1 -0
  621. package/dist/internal/trie.js +42 -13
  622. package/dist/internal/trie.js.map +1 -1
  623. package/dist/internal/ulid.js +41 -0
  624. package/dist/internal/ulid.js.map +1 -1
  625. package/dist/internal/uuid.js +52 -8
  626. package/dist/internal/uuid.js.map +1 -1
  627. package/dist/internal/version.js +1 -1
  628. package/dist/observability/Otlp.d.ts +15 -4
  629. package/dist/observability/Otlp.d.ts.map +1 -1
  630. package/dist/observability/Otlp.js +10 -0
  631. package/dist/observability/Otlp.js.map +1 -1
  632. package/dist/observability/OtlpProxy.d.ts +154 -0
  633. package/dist/observability/OtlpProxy.d.ts.map +1 -0
  634. package/dist/observability/OtlpProxy.js +235 -0
  635. package/dist/observability/OtlpProxy.js.map +1 -0
  636. package/dist/observability/OtlpResource.d.ts +7 -0
  637. package/dist/observability/OtlpResource.d.ts.map +1 -1
  638. package/dist/observability/OtlpResource.js +11 -1
  639. package/dist/observability/OtlpResource.js.map +1 -1
  640. package/dist/observability/OtlpTracer.d.ts.map +1 -1
  641. package/dist/observability/OtlpTracer.js +4 -0
  642. package/dist/observability/OtlpTracer.js.map +1 -1
  643. package/dist/observability/index.d.ts +5 -0
  644. package/dist/observability/index.d.ts.map +1 -1
  645. package/dist/observability/index.js +5 -0
  646. package/dist/observability/index.js.map +1 -1
  647. package/dist/persistence/CircuitBreaker.d.ts +897 -0
  648. package/dist/persistence/CircuitBreaker.d.ts.map +1 -0
  649. package/dist/persistence/CircuitBreaker.js +1165 -0
  650. package/dist/persistence/CircuitBreaker.js.map +1 -0
  651. package/dist/persistence/KeyValueStore.d.ts +47 -2
  652. package/dist/persistence/KeyValueStore.d.ts.map +1 -1
  653. package/dist/persistence/KeyValueStore.js +129 -18
  654. package/dist/persistence/KeyValueStore.js.map +1 -1
  655. package/dist/persistence/PersistedQueue.d.ts +9 -0
  656. package/dist/persistence/PersistedQueue.d.ts.map +1 -1
  657. package/dist/persistence/PersistedQueue.js +94 -52
  658. package/dist/persistence/PersistedQueue.js.map +1 -1
  659. package/dist/persistence/Persistence.d.ts +10 -4
  660. package/dist/persistence/Persistence.d.ts.map +1 -1
  661. package/dist/persistence/Persistence.js +18 -11
  662. package/dist/persistence/Persistence.js.map +1 -1
  663. package/dist/persistence/Redis.d.ts +78 -2
  664. package/dist/persistence/Redis.d.ts.map +1 -1
  665. package/dist/persistence/Redis.js +62 -7
  666. package/dist/persistence/Redis.js.map +1 -1
  667. package/dist/persistence/index.d.ts +5 -0
  668. package/dist/persistence/index.d.ts.map +1 -1
  669. package/dist/persistence/index.js +5 -0
  670. package/dist/persistence/index.js.map +1 -1
  671. package/dist/process/ChildProcess.d.ts +237 -71
  672. package/dist/process/ChildProcess.d.ts.map +1 -1
  673. package/dist/process/ChildProcess.js +56 -158
  674. package/dist/process/ChildProcess.js.map +1 -1
  675. package/dist/process/ChildProcessSpawner.d.ts +35 -0
  676. package/dist/process/ChildProcessSpawner.d.ts.map +1 -1
  677. package/dist/process/ChildProcessSpawner.js +5 -2
  678. package/dist/process/ChildProcessSpawner.js.map +1 -1
  679. package/dist/process/CommandLine.d.ts +294 -0
  680. package/dist/process/CommandLine.d.ts.map +1 -0
  681. package/dist/process/CommandLine.js +481 -0
  682. package/dist/process/CommandLine.js.map +1 -0
  683. package/dist/process/index.d.ts +5 -0
  684. package/dist/process/index.d.ts.map +1 -1
  685. package/dist/process/index.js +5 -0
  686. package/dist/process/index.js.map +1 -1
  687. package/dist/reactivity/AsyncResult.d.ts +1 -1
  688. package/dist/reactivity/AsyncResult.d.ts.map +1 -1
  689. package/dist/reactivity/Atom.d.ts +2 -1
  690. package/dist/reactivity/Atom.d.ts.map +1 -1
  691. package/dist/reactivity/Atom.js +3 -4
  692. package/dist/reactivity/Atom.js.map +1 -1
  693. package/dist/reactivity/AtomRegistry.js.map +1 -1
  694. package/dist/rpc/RpcClient.d.ts +16 -1
  695. package/dist/rpc/RpcClient.d.ts.map +1 -1
  696. package/dist/rpc/RpcClient.js +59 -24
  697. package/dist/rpc/RpcClient.js.map +1 -1
  698. package/dist/rpc/RpcMessage.d.ts +10 -1
  699. package/dist/rpc/RpcMessage.d.ts.map +1 -1
  700. package/dist/rpc/RpcMessage.js +1 -0
  701. package/dist/rpc/RpcMessage.js.map +1 -1
  702. package/dist/rpc/RpcSerialization.d.ts +14 -0
  703. package/dist/rpc/RpcSerialization.d.ts.map +1 -1
  704. package/dist/rpc/RpcSerialization.js +26 -8
  705. package/dist/rpc/RpcSerialization.js.map +1 -1
  706. package/dist/rpc/RpcServer.d.ts +31 -0
  707. package/dist/rpc/RpcServer.d.ts.map +1 -1
  708. package/dist/rpc/RpcServer.js +139 -56
  709. package/dist/rpc/RpcServer.js.map +1 -1
  710. package/dist/rpc/RpcTest.d.ts +1 -0
  711. package/dist/rpc/RpcTest.d.ts.map +1 -1
  712. package/dist/rpc/RpcTest.js +1 -0
  713. package/dist/rpc/RpcTest.js.map +1 -1
  714. package/dist/schema/Model.d.ts +14 -0
  715. package/dist/schema/Model.d.ts.map +1 -1
  716. package/dist/schema/Model.js +18 -3
  717. package/dist/schema/Model.js.map +1 -1
  718. package/dist/sql/Migrator.d.ts +2 -20
  719. package/dist/sql/Migrator.d.ts.map +1 -1
  720. package/dist/sql/Migrator.js +13 -55
  721. package/dist/sql/Migrator.js.map +1 -1
  722. package/dist/sql/MigratorFileSystem.d.ts +21 -0
  723. package/dist/sql/MigratorFileSystem.d.ts.map +1 -0
  724. package/dist/sql/MigratorFileSystem.js +57 -0
  725. package/dist/sql/MigratorFileSystem.js.map +1 -0
  726. package/dist/sql/SqlClient.d.ts +9 -4
  727. package/dist/sql/SqlClient.d.ts.map +1 -1
  728. package/dist/sql/SqlClient.js +13 -10
  729. package/dist/sql/SqlClient.js.map +1 -1
  730. package/dist/sql/SqlResolver.d.ts +4 -0
  731. package/dist/sql/SqlResolver.d.ts.map +1 -1
  732. package/dist/sql/SqlResolver.js +18 -4
  733. package/dist/sql/SqlResolver.js.map +1 -1
  734. package/dist/sql/Statement.d.ts +27 -6
  735. package/dist/sql/Statement.d.ts.map +1 -1
  736. package/dist/sql/Statement.js +21 -15
  737. package/dist/sql/Statement.js.map +1 -1
  738. package/dist/sql/index.js +1 -1
  739. package/dist/testing/index.d.ts +0 -5
  740. package/dist/testing/index.d.ts.map +1 -1
  741. package/dist/testing/index.js +0 -5
  742. package/dist/testing/index.js.map +1 -1
  743. package/dist/workflow/DurableDeferred.d.ts.map +1 -1
  744. package/dist/workflow/DurableDeferred.js +21 -2
  745. package/dist/workflow/DurableDeferred.js.map +1 -1
  746. package/dist/workflow/internal/crypto.js +9 -8
  747. package/dist/workflow/internal/crypto.js.map +1 -1
  748. package/package.json +3 -1
  749. package/src/Arbitrary.ts +10 -2
  750. package/src/BigDecimal.ts +3 -0
  751. package/src/Channel.ts +64 -29
  752. package/src/Config.ts +7 -1
  753. package/src/Context.ts +34 -10
  754. package/src/Cron.ts +178 -29
  755. package/src/Data.ts +60 -265
  756. package/src/Duration.ts +140 -0
  757. package/src/Effect.ts +915 -86
  758. package/src/Equal.ts +8 -1
  759. package/src/Exit.ts +3 -3
  760. package/src/FileSystem.ts +65 -4
  761. package/src/Formatter.ts +28 -13
  762. package/src/Glob.ts +205 -0
  763. package/src/Hash.ts +4 -1
  764. package/src/JsonPatch.ts +4 -0
  765. package/src/JsonSchema.ts +12 -40
  766. package/src/Match.ts +127 -0
  767. package/src/Metric.ts +3 -3
  768. package/src/MutableList.ts +7 -5
  769. package/src/MutableRef.ts +8 -1
  770. package/src/PartitionedSemaphore.ts +24 -13
  771. package/src/Pool.ts +182 -52
  772. package/src/PubSub.ts +5 -6
  773. package/src/Random.ts +3 -3
  774. package/src/RcMap.ts +5 -1
  775. package/src/Ref.ts +8 -0
  776. package/src/Schedule.ts +27 -4
  777. package/src/Schema.ts +1237 -87
  778. package/src/SchemaAST.ts +20 -20
  779. package/src/SchemaGetter.ts +27 -11
  780. package/src/SchemaParser.ts +51 -18
  781. package/src/SchemaRepresentation.ts +50 -34
  782. package/src/SchemaTransformation.ts +17 -5
  783. package/src/ScopedCache.ts +5 -9
  784. package/src/Semaphore.ts +208 -40
  785. package/src/Sink.ts +15 -2
  786. package/src/Stream.ts +48 -22
  787. package/src/String.ts +3 -0
  788. package/src/Terminal.ts +19 -1
  789. package/src/Tracer.ts +15 -1
  790. package/src/ai/AiError.ts +56 -80
  791. package/src/ai/Decision.ts +257 -6
  792. package/src/ai/DecisionModel.ts +171 -28
  793. package/src/ai/LanguageModel.ts +9 -0
  794. package/src/ai/McpServer.ts +1283 -299
  795. package/src/ai/McpTest.ts +380 -0
  796. package/src/ai/Prompt.ts +65 -0
  797. package/src/ai/Response.ts +36 -31
  798. package/src/ai/Tool.ts +65 -10
  799. package/src/ai/Toolkit.ts +4 -1
  800. package/src/ai/index.ts +6 -0
  801. package/src/ai/internal/mcpCore.ts +78 -44
  802. package/src/ai/internal/mcpProtocol/v2024_11_05.ts +4 -7
  803. package/src/ai/internal/mcpProtocol/v2025_03_26.ts +4 -7
  804. package/src/ai/internal/mcpProtocol/v2025_06_18.ts +4 -7
  805. package/src/ai/internal/mcpProtocol/v2025_11_25.ts +4 -7
  806. package/src/ai/internal/mcpProtocol/v2026_07_28.ts +15 -10
  807. package/src/ai/internal/mcpProtocol.ts +29 -0
  808. package/src/ai/internal/mcpRuntime.ts +9 -5
  809. package/src/ai/internal/mcpStatefulRuntime.ts +14 -2
  810. package/src/cli/Argument.ts +21 -0
  811. package/src/cli/CliError.ts +90 -3
  812. package/src/cli/CliOutput.ts +300 -55
  813. package/src/cli/Command.ts +76 -41
  814. package/src/cli/Completions.ts +51 -0
  815. package/src/cli/Flag.ts +122 -0
  816. package/src/cli/GlobalFlag.ts +6 -7
  817. package/src/cli/HelpDoc.ts +18 -1
  818. package/src/cli/Param.ts +35 -6
  819. package/src/cli/Primitive.ts +16 -1
  820. package/src/cli/Prompt.ts +1 -0
  821. package/src/cli/TerminalCapabilities.ts +6 -3
  822. package/src/cli/internal/completions/bash.ts +79 -29
  823. package/src/cli/internal/help.ts +21 -9
  824. package/src/cluster/ClusterWorkflowEngine.ts +46 -16
  825. package/src/cluster/MessageStorage.ts +19 -14
  826. package/src/cluster/Sharding.ts +176 -47
  827. package/src/cluster/ShardingConfig.ts +43 -0
  828. package/src/cluster/SingleRunner.ts +3 -3
  829. package/src/cluster/Snowflake.ts +3 -7
  830. package/src/cluster/SqlMessageStorage.ts +49 -17
  831. package/src/cluster/SqlRunnerStorage.ts +143 -70
  832. package/src/cluster/internal/entityManager.ts +75 -22
  833. package/src/crypto/Aead.ts +517 -0
  834. package/src/crypto/Cipher.ts +326 -0
  835. package/src/crypto/CryptoError.ts +242 -0
  836. package/src/crypto/Digest.ts +167 -0
  837. package/src/crypto/Kdf.ts +315 -0
  838. package/src/crypto/KeyAgreement.ts +489 -0
  839. package/src/crypto/KeyFormat.ts +712 -0
  840. package/src/crypto/KeyWrap.ts +639 -0
  841. package/src/crypto/Mac.ts +386 -0
  842. package/src/crypto/SecureRandom.ts +459 -0
  843. package/src/crypto/Signature.ts +673 -0
  844. package/src/crypto/WebCrypto.ts +64 -0
  845. package/src/crypto/index.ts +78 -0
  846. package/src/crypto/internal/asymmetric.ts +329 -0
  847. package/src/crypto/internal/chacha.ts +1088 -0
  848. package/src/crypto/internal/der.ts +110 -0
  849. package/src/crypto/internal/digest.ts +16 -0
  850. package/src/crypto/internal/key.ts +235 -0
  851. package/src/crypto/internal/md5.ts +170 -0
  852. package/src/crypto/internal/webCrypto.ts +150 -0
  853. package/src/devtools/DevToolsClient.ts +2 -0
  854. package/src/encoding/Base64.ts +38 -0
  855. package/src/encoding/Base64Url.ts +5 -2
  856. package/src/encoding/Csv.ts +1298 -0
  857. package/src/encoding/Hex.ts +3 -2
  858. package/src/encoding/SchemaBinary.ts +40 -4
  859. package/src/encoding/Sse.ts +4 -3
  860. package/src/encoding/Toml.ts +117 -35
  861. package/src/encoding/Yaml.ts +61 -18
  862. package/src/encoding/index.ts +6 -0
  863. package/src/eventlog/EventJournal.ts +4 -3
  864. package/src/eventlog/EventLog.ts +340 -15
  865. package/src/eventlog/EventLogEncryption.ts +118 -110
  866. package/src/eventlog/EventLogMessage.ts +273 -1
  867. package/src/eventlog/EventLogRemote.ts +367 -23
  868. package/src/eventlog/EventLogServer.ts +23 -8
  869. package/src/eventlog/EventLogServerEncrypted.ts +1130 -67
  870. package/src/eventlog/EventLogSessionAuth.ts +56 -70
  871. package/src/eventlog/EventRow.ts +12 -3
  872. package/src/eventlog/SqlEventJournal.ts +68 -45
  873. package/src/eventlog/SqlEventLogServerEncrypted.ts +1244 -136
  874. package/src/eventlog/SqlEventLogServerUnencrypted.ts +2 -2
  875. package/src/eventlog/internal/batches.ts +30 -0
  876. package/src/eventlog/internal/compaction.ts +64 -0
  877. package/src/eventlog/internal/conflicts.ts +0 -4
  878. package/src/eventlog/internal/identityRootSecretDerivation.ts +93 -123
  879. package/src/eventlog/internal/remoteCompaction.ts +92 -0
  880. package/src/http/Cookies.ts +291 -12
  881. package/src/http/FetchHttpClient.ts +88 -16
  882. package/src/http/HttpClient.ts +636 -29
  883. package/src/http/HttpClientError.ts +35 -1
  884. package/src/http/HttpClientRequest.ts +21 -10
  885. package/src/http/HttpClientResponse.ts +3 -2
  886. package/src/http/HttpMethod.ts +10 -2
  887. package/src/http/HttpMiddleware.ts +15 -18
  888. package/src/http/HttpRouter.ts +2 -1
  889. package/src/http/HttpServerError.ts +2 -2
  890. package/src/http/HttpServerRequest.ts +101 -30
  891. package/src/http/HttpServerResponse.ts +3 -2
  892. package/src/http/HttpStaticServer.ts +51 -22
  893. package/src/http/HttpTraceContext.ts +7 -4
  894. package/src/http/MultipartParser/internal/contentType.ts +3 -3
  895. package/src/http/ProblemDetails.ts +149 -0
  896. package/src/http/UrlParams.ts +6 -1
  897. package/src/http/index.ts +6 -0
  898. package/src/http/internal/compression.ts +4 -5
  899. package/src/http/internal/decompression.ts +10 -4
  900. package/src/http/internal/httpBody.ts +10 -2
  901. package/src/http/internal/urlParams.ts +37 -0
  902. package/src/http-api/HttpApi.ts +3 -6
  903. package/src/http-api/HttpApiBuilder.ts +61 -19
  904. package/src/http-api/HttpApiClient.ts +284 -72
  905. package/src/http-api/HttpApiEndpoint.ts +135 -35
  906. package/src/http-api/HttpApiError.ts +250 -0
  907. package/src/http-api/HttpApiMiddleware.ts +95 -1
  908. package/src/http-api/HttpApiSchema.ts +236 -52
  909. package/src/http-api/HttpApiTest.ts +3 -2
  910. package/src/http-api/OpenApi.ts +20 -17
  911. package/src/http-api/internal/toCodecHttpProperties.ts +56 -0
  912. package/src/index.ts +6 -6
  913. package/src/internal/arbitrary/runner.ts +133 -36
  914. package/src/internal/core.ts +2 -0
  915. package/src/internal/effect.ts +58 -34
  916. package/src/internal/equal.ts +17 -0
  917. package/src/internal/glob.ts +736 -0
  918. package/src/internal/jsonSchema.ts +27 -0
  919. package/src/internal/matcher.ts +18 -1
  920. package/src/internal/persistence.ts +11 -0
  921. package/src/internal/rcRef.ts +4 -1
  922. package/src/internal/schema/compilerRegistry.ts +6 -1
  923. package/src/internal/schema/content.ts +18 -0
  924. package/src/internal/schema/fromJsonSchemaDocument.ts +228 -190
  925. package/src/internal/schema/fromRepresentation.ts +2 -1
  926. package/src/internal/schema/standardSchema.ts +2 -2
  927. package/src/internal/schema/toCodeDocument.ts +11 -7
  928. package/src/internal/schema/toCodec.ts +26 -22
  929. package/src/internal/schema/toJsonSchemaDocument.ts +189 -167
  930. package/src/internal/schema/toRepresentation.ts +122 -140
  931. package/src/internal/sql.ts +14 -0
  932. package/src/internal/trie.ts +43 -14
  933. package/src/internal/ulid.ts +44 -0
  934. package/src/internal/uuid.ts +57 -16
  935. package/src/internal/version.ts +1 -1
  936. package/src/observability/Otlp.ts +21 -4
  937. package/src/observability/OtlpProxy.ts +314 -0
  938. package/src/observability/OtlpResource.ts +9 -1
  939. package/src/observability/OtlpTracer.ts +4 -0
  940. package/src/observability/index.ts +6 -0
  941. package/src/persistence/CircuitBreaker.ts +1678 -0
  942. package/src/persistence/KeyValueStore.ts +219 -22
  943. package/src/persistence/PersistedQueue.ts +128 -59
  944. package/src/persistence/Persistence.ts +20 -13
  945. package/src/persistence/Redis.ts +129 -8
  946. package/src/persistence/index.ts +6 -0
  947. package/src/process/ChildProcess.ts +285 -264
  948. package/src/process/ChildProcessSpawner.ts +46 -2
  949. package/src/process/CommandLine.ts +630 -0
  950. package/src/process/index.ts +6 -0
  951. package/src/reactivity/AsyncResult.ts +1 -1
  952. package/src/reactivity/Atom.ts +5 -5
  953. package/src/reactivity/AtomRegistry.ts +1 -1
  954. package/src/rpc/RpcClient.ts +75 -36
  955. package/src/rpc/RpcMessage.ts +10 -1
  956. package/src/rpc/RpcSerialization.ts +35 -9
  957. package/src/rpc/RpcServer.ts +176 -63
  958. package/src/rpc/RpcTest.ts +3 -0
  959. package/src/schema/Model.ts +26 -3
  960. package/src/sql/Migrator.ts +15 -69
  961. package/src/sql/MigratorFileSystem.ts +71 -0
  962. package/src/sql/SqlClient.ts +13 -20
  963. package/src/sql/SqlResolver.ts +23 -9
  964. package/src/sql/Statement.ts +38 -9
  965. package/src/sql/index.ts +1 -1
  966. package/src/testing/index.ts +0 -6
  967. package/src/workflow/DurableDeferred.ts +23 -6
  968. package/src/workflow/internal/crypto.ts +15 -11
  969. package/dist/Crypto.d.ts +0 -244
  970. package/dist/Crypto.d.ts.map +0 -1
  971. package/dist/Crypto.js +0 -139
  972. package/dist/Crypto.js.map +0 -1
  973. package/dist/testing/TestCrypto.d.ts +0 -73
  974. package/dist/testing/TestCrypto.d.ts.map +0 -1
  975. package/dist/testing/TestCrypto.js +0 -87
  976. package/dist/testing/TestCrypto.js.map +0 -1
  977. package/src/Crypto.ts +0 -347
  978. package/src/testing/TestCrypto.ts +0 -94
@@ -548,10 +548,13 @@ function makeOpenApi<Id extends string, Groups extends HttpApiGroup.Constraint>(
548
548
  if (!HttpApiMiddleware.isSecurity(middleware)) {
549
549
  return
550
550
  }
551
- for (const [name, security] of Object.entries(middleware.security)) {
552
- processHttpApiSecurity(name, security)
553
- op.security.push({ [name]: [] })
551
+ const names = Object.keys(middleware.security)
552
+ for (const name of names) {
553
+ processHttpApiSecurity(name, middleware.security[name])
554
554
  }
555
+ // Stacked middleware must all pass (AND); schemes within one middleware are alternatives (OR).
556
+ const requirements = op.security.length === 0 ? [{}] : op.security
557
+ op.security = requirements.flatMap((requirement) => names.map((name) => ({ ...requirement, [name]: [] })))
555
558
  })
556
559
 
557
560
  function processHttpApiSecurity(
@@ -585,7 +588,9 @@ function makeOpenApi<Id extends string, Groups extends HttpApiGroup.Constraint>(
585
588
  for (const schema of HttpApiEndpoint.getPayloadSchemas(endpoint)) {
586
589
  if (HttpApiSchema.isStreamSchema(schema)) {
587
590
  // Endpoint construction rejects a buffered payload sharing a streaming payload's media type.
588
- schemasByContentType.set(schema.contentType, schema)
591
+ for (const contentType of schema.contentTypes) {
592
+ schemasByContentType.set(contentType, schema)
593
+ }
589
594
  continue
590
595
  }
591
596
  if (HttpApiSchema.isNoContent(schema.ast)) continue
@@ -825,6 +830,9 @@ function selectReferences(
825
830
 
826
831
  pushChecks(representation.checks)
827
832
  switch (representation._tag) {
833
+ case "String":
834
+ if (representation.content?.schema !== undefined) stack.push(representation.content.schema)
835
+ break
828
836
  case "Declaration":
829
837
  stack.push(...representation.typeParameters)
830
838
  break
@@ -899,6 +907,7 @@ function extractResponseBodies(
899
907
  map.get(status)!.headers.push(
900
908
  Schema.Struct({ connection: Schema.Literal("Upgrade"), upgrade: Schema.Literal(body.protocol) })
901
909
  )
910
+ if (body.headers !== undefined) map.get(status)!.headers.push(body.headers)
902
911
  } else if (HttpApiSchema.isStreamSchema(body)) {
903
912
  addStreamContent(body, status)
904
913
  } else if (HttpApiSchema.isNoContent(ast)) {
@@ -975,20 +984,14 @@ function extractResponseBodies(
975
984
  stream: HttpApiSchema.StreamSchema,
976
985
  status: number
977
986
  ) {
978
- const statusMap = map.get(status)
987
+ let statusMap = map.get(status)
979
988
  if (statusMap === undefined) {
980
- map.set(status, {
981
- descriptions: new Set(),
982
- content: undefined,
983
- headers: [],
984
- streamContent: new Map([[stream.contentType, stream]])
985
- })
986
- } else {
987
- if (statusMap.streamContent === undefined) {
988
- statusMap.streamContent = new Map([[stream.contentType, stream]])
989
- } else {
990
- statusMap.streamContent.set(stream.contentType, stream)
991
- }
989
+ statusMap = { descriptions: new Set(), content: undefined, headers: [], streamContent: undefined }
990
+ map.set(status, statusMap)
991
+ }
992
+ const streamContent = statusMap.streamContent ??= new Map()
993
+ for (const contentType of stream.contentTypes) {
994
+ streamContent.set(contentType, stream)
992
995
  }
993
996
  }
994
997
  }
@@ -0,0 +1,56 @@
1
+ import { memoize } from "../../Function.ts"
2
+ import * as Option from "../../Option.ts"
3
+ import * as Predicate from "../../Predicate.ts"
4
+ import * as Schema from "../../Schema.ts"
5
+ import * as SchemaAST from "../../SchemaAST.ts"
6
+ import * as SchemaGetter from "../../SchemaGetter.ts"
7
+ import * as SchemaTransformation from "../../SchemaTransformation.ts"
8
+
9
+ /** @internal */
10
+ export function toCodecHttpProperties<S extends Schema.Constraint>(schema: S): Schema.toCodecStringTree<S> {
11
+ const codec = Schema.toCodecStringTree(schema)
12
+ return codec.rebuild(normalizeProperties(codec.ast))
13
+ }
14
+
15
+ const omitUndefined = new SchemaTransformation.Transformation(
16
+ SchemaGetter.passthrough(),
17
+ SchemaGetter.transformOptional(Option.filter(Predicate.isNotUndefined))
18
+ )
19
+
20
+ // Only descend through unions and suspensions, leaving nested values alone.
21
+ const present = memoize((ast: SchemaAST.AST): SchemaAST.AST => {
22
+ if (ast._tag === "Undefined") return new SchemaAST.Never(ast.annotations, undefined, undefined, ast.context)
23
+ if (ast._tag === "Suspend") return ast.recur(present)
24
+ if (ast._tag !== "Union") return ast
25
+
26
+ const members = SchemaAST.mapOrSame(ast.types, present)
27
+ if (members === ast.types) return ast
28
+ const types = members.filter((member) => member._tag !== "Never")
29
+ if (types.length === 1 && ast.checks === undefined && ast.annotations === undefined) {
30
+ return SchemaAST.replaceContext(types[0], ast.context)
31
+ }
32
+ return new SchemaAST.Union(types, ast.options, ast.annotations, ast.checks, undefined, ast.context)
33
+ })
34
+
35
+ const normalizeProperties = SchemaAST.applyToSelfOrLastLinkEncodingIdempotent((ast) => {
36
+ if (ast._tag === "Union" || ast._tag === "Suspend") return ast.recur(normalizeProperties)
37
+ if (ast._tag !== "Objects") return ast
38
+
39
+ const properties = SchemaAST.mapOrSame(ast.propertySignatures, (ps) => {
40
+ const encoded = SchemaAST.toEncoded(ps.type)
41
+ if (!SchemaAST.isOptional(encoded)) return ps
42
+ const wire = present(encoded)
43
+ return wire === encoded
44
+ ? ps
45
+ : new SchemaAST.PropertySignature(ps.name, SchemaAST.decodeTo(wire, ps.type, omitUndefined))
46
+ })
47
+ return properties === ast.propertySignatures ? ast : new SchemaAST.Objects(
48
+ properties,
49
+ ast.indexSignatures,
50
+ ast.annotations,
51
+ ast.checks,
52
+ undefined,
53
+ ast.context,
54
+ ast.encodingChecks
55
+ )
56
+ })
package/src/index.ts CHANGED
@@ -164,12 +164,6 @@ export * as Context from "./Context.ts"
164
164
  */
165
165
  export * as Cron from "./Cron.ts"
166
166
 
167
- /**
168
- * @stability unstable
169
- * @since 4.0.0
170
- */
171
- export * as Crypto from "./Crypto.ts"
172
-
173
167
  /**
174
168
  * @stability stable
175
169
  * @since 2.0.0
@@ -290,6 +284,12 @@ export * as Formatter from "./Formatter.ts"
290
284
  */
291
285
  export * as Function from "./Function.ts"
292
286
 
287
+ /**
288
+ * @stability experimental
289
+ * @since 4.0.0
290
+ */
291
+ export * as Glob from "./Glob.ts"
292
+
293
293
  /**
294
294
  * @stability unstable
295
295
  * @since 4.0.0
@@ -3,7 +3,9 @@ import type {
3
3
  ArrayOptions,
4
4
  CheckOptions,
5
5
  CheckResult,
6
+ Exhausted,
6
7
  GlobalOptions,
8
+ Passed,
7
9
  PropertyError,
8
10
  PropertyFailure,
9
11
  Replay,
@@ -13,12 +15,16 @@ import type {
13
15
  SchemaOptions
14
16
  } from "../../Arbitrary.ts"
15
17
  import * as Effect from "../../Effect.ts"
18
+ import * as Fiber from "../../Fiber.ts"
16
19
  import * as Option from "../../Option.ts"
17
20
  import { pipeArguments } from "../../Pipeable.ts"
21
+ import * as Queue from "../../Queue.ts"
18
22
  import * as Random from "../../Random.ts"
19
23
  import type * as Result from "../../Result.ts"
20
24
  import * as Scheduler from "../../Scheduler.ts"
21
25
  import type * as Schema from "../../Schema.ts"
26
+ import * as Scope from "../../Scope.ts"
27
+ import * as Semaphore from "../../Semaphore.ts"
22
28
  import { done } from "../core.ts"
23
29
  import * as InternalRecord from "../record.ts"
24
30
  import * as Arrays from "./array.ts"
@@ -582,6 +588,111 @@ const followReplay = Effect.fnUntraced(function*<A, E, R>(
582
588
  return { _tag: "Replayed", current, failure } as const
583
589
  })
584
590
 
591
+ interface SearchOptions {
592
+ readonly runs: number
593
+ readonly size: number
594
+ readonly maxDiscards: number
595
+ readonly seed: string | number
596
+ readonly maxOpsBeforeYield: number
597
+ }
598
+
599
+ interface SearchCase<A> {
600
+ readonly sample: Model.Sample<A>
601
+ readonly attempt: number
602
+ readonly size: number
603
+ readonly runs: number
604
+ readonly discards: number
605
+ }
606
+
607
+ interface Found<A, E> extends SearchCase<A> {
608
+ readonly _tag: "Found"
609
+ readonly failure: PropertyFailure<E>
610
+ }
611
+
612
+ type SearchResult<A, E> = Passed | Exhausted | Found<A, E>
613
+
614
+ // Only the search advances this cursor. Each generated case advances size, while discards retain it.
615
+ // This gives both search strategies the sequential seed and size schedule, independently of evaluation timing.
616
+ const makeSearch = <A>(self: Arbitrary<A>, options: SearchOptions) => {
617
+ const seed = hashSeed(options.seed)
618
+ let runs = 0
619
+ let discards = 0
620
+ let attemptIndex = 0
621
+ return Effect.gen(function*(): Effect.fn.Return<SearchCase<A> | Exhausted> {
622
+ const size = options.runs === 1 ? options.size : Math.round(runs * options.size / (options.runs - 1))
623
+ while (true) {
624
+ const index = attemptIndex++
625
+ const sample = yield* generateAttempt(self.gen, seed, index, size, true)
626
+ if (sample._tag === "Generated") {
627
+ return { sample, attempt: index, size, runs: ++runs, discards }
628
+ }
629
+ if (++discards > options.maxDiscards) return { _tag: "Exhausted", runs, discards, seed: options.seed }
630
+ if (options.maxOpsBeforeYield <= 1 || discards % options.maxOpsBeforeYield === 0) yield* Effect.yieldNow
631
+ }
632
+ })
633
+ }
634
+
635
+ const searchSequential = Effect.fnUntraced(function*<A, E, R>(
636
+ next: Effect.Effect<SearchCase<A> | Exhausted>,
637
+ property: (value: A) => boolean | Effect.Effect<boolean, E, R>,
638
+ runs: number
639
+ ): Effect.fn.Return<SearchResult<A, E>, never, R> {
640
+ while (true) {
641
+ const current = yield* next
642
+ if ("_tag" in current) return current
643
+ const outcome = yield* evaluateProperty(property, current.sample.value)
644
+ if (outcome._tag !== "Passed") return { ...current, _tag: "Found", failure: outcome }
645
+ if (current.runs === runs) return { _tag: "Passed", runs, discards: current.discards }
646
+ }
647
+ })
648
+
649
+ const searchConcurrent = Effect.fnUntraced(function*<A, E, R>(
650
+ next: Effect.Effect<SearchCase<A> | Exhausted>,
651
+ property: (value: A) => boolean | Effect.Effect<boolean, E, R>,
652
+ runs: number,
653
+ concurrency: number
654
+ ): Effect.fn.Return<SearchResult<A, E>, never, R> {
655
+ interface Pending extends SearchCase<A> {
656
+ readonly fiber: Fiber.Fiber<typeof passedProperty | PropertyFailure<E>>
657
+ }
658
+ const queue = yield* Queue.make<Pending | Exhausted>()
659
+ const window = yield* Semaphore.make(concurrency)
660
+ const scope = yield* Scope.make("parallel")
661
+ const produce = Effect.gen(function*() {
662
+ for (let index = 0; index < runs; index++) {
663
+ // Hold each permit until its result is consumed, bounding both work and buffered results.
664
+ yield* window.take(1)
665
+ const current = yield* next
666
+ if ("_tag" in current) {
667
+ yield* Queue.offer(queue, current)
668
+ return
669
+ }
670
+ const fiber = yield* Effect.forkIn(Effect.suspend(() => evaluateProperty(property, current.sample.value)), scope)
671
+ yield* Queue.offer(queue, { ...current, fiber })
672
+ }
673
+ }).pipe(
674
+ // Queue failure follows already queued cases, so speculative generation defects cannot overtake them.
675
+ Effect.catchCause((cause) => Queue.failCause(queue, cause)),
676
+ Effect.awaitAllChildren
677
+ )
678
+ return yield* Effect.acquireUseRelease(
679
+ Effect.forkIn(produce, scope),
680
+ () =>
681
+ Effect.gen(function*(): Effect.fn.Return<SearchResult<A, E>, never, R> {
682
+ while (true) {
683
+ const current = yield* Queue.take(queue)
684
+ if ("_tag" in current) return current
685
+ const outcome = yield* Fiber.join(current.fiber)
686
+ if (outcome._tag !== "Passed") return { ...current, _tag: "Found", failure: outcome }
687
+ if (current.runs === runs) return { _tag: "Passed", runs, discards: current.discards }
688
+ yield* window.release(1)
689
+ }
690
+ }),
691
+ // Generator and evaluation finalizers can depend on each other, so interrupt them independently before awaiting.
692
+ (_, exit) => Scope.close(scope, exit)
693
+ )
694
+ })
695
+
585
696
  /** @internal */
586
697
  export const checkEffect = Effect.fnUntraced(function*<A, E, R>(
587
698
  self: Arbitrary<A>,
@@ -612,6 +723,7 @@ export const checkEffect = Effect.fnUntraced(function*<A, E, R>(
612
723
 
613
724
  const defaults = globalOptions.check
614
725
  const runsTarget = positive(options?.runs ?? defaults?.runs, 100, "runs")
726
+ const concurrency = positive(options?.concurrency ?? defaults?.concurrency, 1, "concurrency")
615
727
  const size = natural(options?.size ?? defaults?.size, 10, "size")
616
728
  const maxDiscards = natural(
617
729
  options?.maxDiscards ?? defaults?.maxDiscards,
@@ -622,41 +734,26 @@ export const checkEffect = Effect.fnUntraced(function*<A, E, R>(
622
734
  const seedOption = options?.seed ?? defaults?.seed
623
735
  const maxOpsBeforeYield = yield* Scheduler.MaxOpsBeforeYield
624
736
  const seed = yield* resolveMasterSeed(seedOption)
625
- const seedState = hashSeed(seed)
626
- let runs = 0
627
- let discards = 0
628
- let attemptIndex = 0
629
- while (runs < runsTarget) {
630
- const currentAttempt = attemptIndex++
631
- const currentSize = runsTarget === 1 ? size : Math.round(runs * size / (runsTarget - 1))
632
- const attempt = yield* generateAttempt(self.gen, seedState, currentAttempt, currentSize, true)
633
- if (attempt._tag === "Discarded") {
634
- if (++discards > maxDiscards) return { _tag: "Exhausted", runs, discards, seed }
635
- if (maxOpsBeforeYield <= 1 || discards % maxOpsBeforeYield === 0) yield* Effect.yieldNow
636
- continue
637
- }
638
- const outcome = yield* evaluateProperty(property, attempt.value)
639
- if (outcome._tag === "Passed") {
640
- runs++
641
- continue
642
- }
643
- const minimized = yield* shrink(attempt, outcome, property, maxShrinks)
644
- return {
645
- _tag: "Falsified",
646
- initialInput: attempt.value,
647
- shrunkInput: minimized.current.value,
648
- failure: minimized.failure,
649
- runs: runs + 1,
650
- discards,
651
- shrinks: minimized.shrinks,
652
- replay: makeReplay({
653
- seed,
654
- attempt: currentAttempt,
655
- size: currentSize,
656
- path: minimized.path,
657
- failureTag: outcome._tag
658
- })
659
- }
737
+ const next = makeSearch(self, { runs: runsTarget, size, maxDiscards, seed, maxOpsBeforeYield })
738
+ const result = yield* concurrency === 1
739
+ ? searchSequential(next, property, runsTarget)
740
+ : searchConcurrent(next, property, runsTarget, concurrency)
741
+ if (result._tag !== "Found") return result
742
+ const minimized = yield* shrink(result.sample, result.failure, property, maxShrinks)
743
+ return {
744
+ _tag: "Falsified",
745
+ initialInput: result.sample.value,
746
+ shrunkInput: minimized.current.value,
747
+ failure: minimized.failure,
748
+ runs: result.runs,
749
+ discards: result.discards,
750
+ shrinks: minimized.shrinks,
751
+ replay: makeReplay({
752
+ seed,
753
+ attempt: result.attempt,
754
+ size: result.size,
755
+ path: minimized.path,
756
+ failureTag: result.failure._tag
757
+ })
660
758
  }
661
- return { _tag: "Passed", runs, discards }
662
759
  })
@@ -216,6 +216,8 @@ export abstract class ReasonBase<Tag extends string> implements Cause.Cause.Reas
216
216
  if (options?.overwrite !== true && newAnnotations.has(key)) return
217
217
  newAnnotations.set(key, value)
218
218
  })
219
+ // Keep the reason when nothing was added, so interrupts still match by identity.
220
+ if (options?.overwrite !== true && newAnnotations.size === this.annotations.size) return this
219
221
  const self = Object.assign(Object.create(Object.getPrototypeOf(this)), this)
220
222
  self.annotations = newAnnotations
221
223
  return self
@@ -97,7 +97,8 @@ import {
97
97
  TracerEnabled,
98
98
  TracerSpanAnnotations,
99
99
  TracerSpanLinks,
100
- TracerTimingEnabled
100
+ TracerTimingEnabled,
101
+ UnhandledLogLevel
101
102
  } from "./references.ts"
102
103
  import { getStackTraceLimit, setStackTraceLimit } from "./stackTraceLimit.ts"
103
104
  import { addSpanStackTrace, makeStackCleaner } from "./tracer.ts"
@@ -1005,7 +1006,10 @@ export const fail: <E>(error: E) => Effect.Effect<never, E> = exitFail
1005
1006
  export const sync: <A>(thunk: LazyArg<A>) => Effect.Effect<A> = makePrimitive({
1006
1007
  op: "Sync",
1007
1008
  [evaluate](fiber): Primitive | Yield {
1008
- const value = this[args]()
1009
+ // call the thunk without a receiver, so V8 does not name its frame after
1010
+ // the args property, which the stack cleaner cuts at
1011
+ const thunk = this[args]
1012
+ const value = thunk()
1009
1013
  const cont = fiber.getCont(contA)
1010
1014
  return cont ? cont[contA](value, fiber) : fiber.yieldWith(exitSucceed(value))
1011
1015
  }
@@ -1017,7 +1021,9 @@ export const suspend: <A, E, R>(
1017
1021
  ) => Effect.Effect<A, E, R> = makePrimitive({
1018
1022
  op: "Suspend",
1019
1023
  [evaluate](_fiber) {
1020
- return this[args]()
1024
+ // see Sync
1025
+ const thunk = this[args]
1026
+ return thunk()
1021
1027
  }
1022
1028
  })
1023
1029
 
@@ -1284,11 +1290,16 @@ export const gen = <
1284
1290
  return suspend(() => fromIteratorUnsafe(body.call(options.self) as any))
1285
1291
  }
1286
1292
 
1293
+ // With `{ self }` the body is `pipeables[0]`, so take it out and bind it.
1294
+ const fnBody = (bodyOrOptions: Function | { readonly self: any }, pipeables: Array<Function>): Function =>
1295
+ typeof bodyOrOptions === "function" ? bodyOrOptions : pipeables.shift()!.bind(bodyOrOptions.self)
1296
+
1287
1297
  /** @internal */
1288
1298
  export const fnUntraced: Effect.fn.Untraced = (
1289
- body: Function,
1299
+ bodyOrOptions: Function | { readonly self: any },
1290
1300
  ...pipeables: Array<any>
1291
1301
  ) => {
1302
+ const body = fnBody(bodyOrOptions, pipeables)
1292
1303
  const fn = pipeables.length === 0
1293
1304
  ? function(this: any) {
1294
1305
  return suspend(() => fromIteratorUnsafe(body.apply(this, arguments)))
@@ -1348,11 +1359,20 @@ const makeFn = (
1348
1359
  addSpan: boolean,
1349
1360
  spanOptions: Tracer.SpanOptionsNoTrace | undefined
1350
1361
  ) => {
1351
- const body = typeof bodyOrOptions === "function"
1352
- ? bodyOrOptions
1353
- : (pipeables.shift()!).bind(bodyOrOptions.self)
1362
+ const body = fnBody(bodyOrOptions, pipeables)
1354
1363
  const definitionName = `${name} (definition)`
1355
1364
  const definitionStack = defError ? fnStackCleaner(() => defError.stack) : constUndefined
1365
+ // Built outside the traced function so the frame cannot capture its `arguments`,
1366
+ // which forked fibers inheriting the frame would otherwise keep alive.
1367
+ const makeCallFrame = (callError: Error | undefined) => (prev: StackFrame | undefined): StackFrame => ({
1368
+ name,
1369
+ stack: callError ? fnStackCleaner(() => callError.stack) : constUndefined,
1370
+ parent: {
1371
+ name: definitionName,
1372
+ stack: definitionStack,
1373
+ parent: prev
1374
+ }
1375
+ })
1356
1376
 
1357
1377
  return defineFunctionLength(body.length, function(this: any, ...args: Array<any>) {
1358
1378
  let result = suspend(() => {
@@ -1377,25 +1397,18 @@ const makeFn = (
1377
1397
  useSpan(name, spanOptions!, (span) => provideParentSpan(result, span)) :
1378
1398
  result,
1379
1399
  CurrentStackFrame,
1380
- (prev) => ({
1381
- name,
1382
- stack: callError ? fnStackCleaner(() => callError.stack) : constUndefined,
1383
- parent: {
1384
- name: definitionName,
1385
- stack: definitionStack,
1386
- parent: prev
1387
- }
1388
- })
1400
+ makeCallFrame(callError)
1389
1401
  )
1390
1402
  })
1391
1403
  }
1392
1404
 
1393
1405
  /** @internal */
1394
1406
  export const fnUntracedEager: Effect.fn.Untraced = (
1395
- body: Function,
1407
+ bodyOrOptions: Function | { readonly self: any },
1396
1408
  ...pipeables: Array<any>
1397
- ) =>
1398
- defineFunctionLength(
1409
+ ) => {
1410
+ const body = fnBody(bodyOrOptions, pipeables)
1411
+ return defineFunctionLength(
1399
1412
  body.length,
1400
1413
  pipeables.length === 0
1401
1414
  ? function(this: any) {
@@ -1409,6 +1422,7 @@ export const fnUntracedEager: Effect.fn.Untraced = (
1409
1422
  return effect
1410
1423
  }
1411
1424
  )
1425
+ }
1412
1426
 
1413
1427
  const fromIteratorEagerUnsafe = (
1414
1428
  evaluate: () => Iterator<Effect.Effect<any, any, any>>
@@ -2057,17 +2071,17 @@ export const exitFindDefect = Filter.composePassthrough(
2057
2071
  /** @internal */
2058
2072
  export const exitHasInterrupts = <A, E>(
2059
2073
  self: Exit.Exit<A, E>
2060
- ): self is Exit.Failure<A, E> => self._tag === "Failure" && hasInterrupts(self.cause)
2074
+ ): boolean => self._tag === "Failure" && hasInterrupts(self.cause)
2061
2075
 
2062
2076
  /** @internal */
2063
2077
  export const exitHasDies = <A, E>(
2064
2078
  self: Exit.Exit<A, E>
2065
- ): self is Exit.Failure<A, E> => self._tag === "Failure" && hasDies(self.cause)
2079
+ ): boolean => self._tag === "Failure" && hasDies(self.cause)
2066
2080
 
2067
2081
  /** @internal */
2068
2082
  export const exitHasFails = <A, E>(
2069
2083
  self: Exit.Exit<A, E>
2070
- ): self is Exit.Failure<A, E> => self._tag === "Failure" && hasFails(self.cause)
2084
+ ): boolean => self._tag === "Failure" && hasFails(self.cause)
2071
2085
 
2072
2086
  /** @internal */
2073
2087
  export const exitVoid: Exit.Exit<void> = exitSucceed(void 0)
@@ -3482,19 +3496,29 @@ export const firstSuccessOf = <Eff extends Effect.Effect<any, any, any>>(
3482
3496
  export const eventually = <A, E, R>(self: Effect.Effect<A, E, R>): Effect.Effect<A, never, R> =>
3483
3497
  catch_(self, (_) => flatMap(yieldNow, () => eventually(self)))
3484
3498
 
3499
+ /** @internal */
3500
+ export const ignoreCauseLogger = (log: true | LogLevel.Severity | "Unhandled") =>
3501
+ log === "Unhandled"
3502
+ ? (...message: ReadonlyArray<any>): Effect.Effect<void> =>
3503
+ withFiber((fiber) => {
3504
+ const level = fiber.getRef(UnhandledLogLevel)
3505
+ return level === undefined ? void_ : logWithLevel(level)(...message)
3506
+ })
3507
+ : logWithLevel(log === true ? undefined : log)
3508
+
3485
3509
  /** @internal */
3486
3510
  export const ignore: <
3487
3511
  Arg extends Effect.Effect<any, any, any> | {
3488
- readonly log?: boolean | LogLevel.Severity | undefined
3512
+ readonly log?: boolean | LogLevel.Severity | "Unhandled" | undefined
3489
3513
  readonly message?: string | undefined
3490
3514
  } | undefined = {
3491
- readonly log?: boolean | LogLevel.Severity | undefined
3515
+ readonly log?: boolean | LogLevel.Severity | "Unhandled" | undefined
3492
3516
  readonly message?: string | undefined
3493
3517
  }
3494
3518
  >(
3495
3519
  effectOrOptions: Arg,
3496
3520
  options?: {
3497
- readonly log?: boolean | LogLevel.Severity | undefined
3521
+ readonly log?: boolean | LogLevel.Severity | "Unhandled" | undefined
3498
3522
  readonly message?: string | undefined
3499
3523
  } | undefined
3500
3524
  ) => [Arg] extends [Effect.Effect<infer _A, infer _E, infer _R>] ? Effect.Effect<void, never, _R>
@@ -3503,14 +3527,14 @@ export const ignore: <
3503
3527
  <A, E, R>(
3504
3528
  self: Effect.Effect<A, E, R>,
3505
3529
  options?: {
3506
- readonly log?: boolean | LogLevel.Severity | undefined
3530
+ readonly log?: boolean | LogLevel.Severity | "Unhandled" | undefined
3507
3531
  readonly message?: string | undefined
3508
3532
  } | undefined
3509
3533
  ): Effect.Effect<void, never, R> => {
3510
3534
  if (!options?.log) {
3511
3535
  return matchEffect(self, { onFailure: (_) => void_, onSuccess: (_) => void_ })
3512
3536
  }
3513
- const logEffect = logWithLevel(options.log === true ? undefined : options.log)
3537
+ const logEffect = ignoreCauseLogger(options.log)
3514
3538
  return matchCauseEffect(self, {
3515
3539
  onFailure(cause) {
3516
3540
  const error = findRecoverableError(cause)
@@ -3528,16 +3552,16 @@ export const ignore: <
3528
3552
  /** @internal */
3529
3553
  export const ignoreCause: <
3530
3554
  Arg extends Effect.Effect<any, any, any> | {
3531
- readonly log?: boolean | LogLevel.Severity | undefined
3555
+ readonly log?: boolean | LogLevel.Severity | "Unhandled" | undefined
3532
3556
  readonly message?: string | undefined
3533
3557
  } | undefined = {
3534
- readonly log?: boolean | LogLevel.Severity | undefined
3558
+ readonly log?: boolean | LogLevel.Severity | "Unhandled" | undefined
3535
3559
  readonly message?: string | undefined
3536
3560
  }
3537
3561
  >(
3538
3562
  effectOrOptions: Arg,
3539
3563
  options?: {
3540
- readonly log?: boolean | LogLevel.Severity | undefined
3564
+ readonly log?: boolean | LogLevel.Severity | "Unhandled" | undefined
3541
3565
  readonly message?: string | undefined
3542
3566
  } | undefined
3543
3567
  ) => [Arg] extends [Effect.Effect<infer _A, infer _E, infer _R>] ? Effect.Effect<void, never, _R>
@@ -3546,14 +3570,14 @@ export const ignoreCause: <
3546
3570
  <A, E, R>(
3547
3571
  self: Effect.Effect<A, E, R>,
3548
3572
  options?: {
3549
- readonly log?: boolean | LogLevel.Severity | undefined
3573
+ readonly log?: boolean | LogLevel.Severity | "Unhandled" | undefined
3550
3574
  readonly message?: string | undefined
3551
3575
  } | undefined
3552
3576
  ): Effect.Effect<void, never, R> => {
3553
3577
  if (!options?.log) {
3554
3578
  return matchCauseEffect(self, { onFailure: (_) => void_, onSuccess: (_) => void_ })
3555
3579
  }
3556
- const logEffect = logWithLevel(options.log === true ? undefined : options.log)
3580
+ const logEffect = ignoreCauseLogger(options.log)
3557
3581
  return matchCauseEffect(self, {
3558
3582
  onFailure: (cause) => options.message === undefined ? logEffect(cause) : logEffect(options.message, cause),
3559
3583
  onSuccess: (_) => void_
@@ -6307,7 +6331,7 @@ export const annotateCurrentSpan: {
6307
6331
  } = (...args: [Record<string, unknown>] | [key: string, value: unknown]) =>
6308
6332
  withFiber((fiber) => {
6309
6333
  const span = fiber.currentSpanLocal
6310
- if (span) {
6334
+ if (span && span.status._tag !== "Ended") {
6311
6335
  if (args.length === 1) {
6312
6336
  for (const [key, value] of Object.entries(args[0])) {
6313
6337
  span.attribute(key, value)
@@ -6950,7 +6974,7 @@ export const tracerLogger = loggerMake<unknown, void>(({ cause, fiber, logLevel,
6950
6974
  const clock = fiber.getRef(ClockRef)
6951
6975
  const annotations = fiber.getRef(CurrentLogAnnotations)
6952
6976
  const span = fiber.cache.span
6953
- if (span === undefined || span._tag === "ExternalSpan") return
6977
+ if (span === undefined || span._tag === "ExternalSpan" || span.status._tag === "Ended") return
6954
6978
  const attributes: Record<string, unknown> = {}
6955
6979
  for (const [key, value] of Object.entries(annotations)) {
6956
6980
  InternalRecord.assignProperty(attributes, key, value)
@@ -29,3 +29,20 @@ export const byReferenceInstances = new WeakSet<object>()
29
29
 
30
30
  /** @internal */
31
31
  export const viewBytes = (view: DataView): Uint8Array => new Uint8Array(view.buffer, view.byteOffset, view.byteLength)
32
+
33
+ /** @internal */
34
+ export const isArrayBufferLike = (u: unknown): u is ArrayBufferLike =>
35
+ u instanceof ArrayBuffer || (typeof SharedArrayBuffer !== "undefined" && u instanceof SharedArrayBuffer)
36
+
37
+ /**
38
+ * Returns `undefined` for detached buffers, which can no longer be read.
39
+ *
40
+ * @internal
41
+ */
42
+ export const bufferBytes = (buffer: ArrayBufferLike): Uint8Array | undefined => {
43
+ try {
44
+ return new Uint8Array(buffer)
45
+ } catch {
46
+ return undefined
47
+ }
48
+ }