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
package/src/BigDecimal.ts CHANGED
@@ -5,6 +5,9 @@
5
5
  * divide, round, and format decimal values such as money, quantities, and
6
6
  * measurements.
7
7
  *
8
+ * Parsed scales are limited to ±10,000, and operations that align scales throw
9
+ * a `RangeError` when the scales differ by more than 20,000.
10
+ *
8
11
  * @stability stable
9
12
  * @since 2.0.0
10
13
  */
@@ -21,6 +24,9 @@ import { type Pipeable, pipeArguments } from "./Pipeable.ts"
21
24
  import { hasProperty } from "./Predicate.ts"
22
25
 
23
26
  const DEFAULT_PRECISION = 100
27
+ const MAX_SCALE = 10_000
28
+ // Allows aligning values parsed at opposite bounds
29
+ const MAX_SCALE_ALIGNMENT = 2 * MAX_SCALE
24
30
  const FINITE_INT_REGEXP = /^[+-]?\d+$/
25
31
 
26
32
  const TypeId = "~effect/BigDecimal"
@@ -211,15 +217,27 @@ export const normalize = (self: BigDecimal): BigDecimal => {
211
217
  self.normalized = zero
212
218
  } else {
213
219
  const digits = `${self.value}`
214
- let end = digits.length
215
- while (digits[end - 1] === "0") end--
216
- self.normalized = makeNormalized(BigInt(digits.slice(0, end)), self.scale - (digits.length - end))
220
+ const zeros = trailingZeros(digits)
221
+ self.normalized = makeNormalized(BigInt(digits.slice(0, digits.length - zeros)), self.scale - zeros)
217
222
  }
218
223
  }
219
224
 
220
225
  return self.normalized
221
226
  }
222
227
 
228
+ const trailingZeros = (digits: string): number => {
229
+ let end = digits.length
230
+ while (digits[end - 1] === "0") end--
231
+ return digits.length - end
232
+ }
233
+
234
+ const powerOfTen = (exponent: number): bigint => {
235
+ if (exponent > MAX_SCALE_ALIGNMENT) {
236
+ throw new RangeError(`Scale alignment must not exceed ${MAX_SCALE_ALIGNMENT} digits, got ${exponent}`)
237
+ }
238
+ return bigint10 ** BigInt(exponent)
239
+ }
240
+
223
241
  /**
224
242
  * Changes a `BigDecimal` to the specified scale.
225
243
  *
@@ -233,6 +251,10 @@ export const normalize = (self: BigDecimal): BigDecimal => {
233
251
  * digits beyond the target scale by `bigint` division, which truncates toward
234
252
  * zero.
235
253
  *
254
+ * **Gotchas**
255
+ *
256
+ * Throws a `RangeError` if the scale changes by more than 20,000.
257
+ *
236
258
  * **Example** (Scaling decimal precision)
237
259
  *
238
260
  * ```ts import.meta.vitest
@@ -269,6 +291,10 @@ export const scale: {
269
291
  * digits beyond the target scale by `bigint` division, which truncates toward
270
292
  * zero.
271
293
  *
294
+ * **Gotchas**
295
+ *
296
+ * Throws a `RangeError` if the scale changes by more than 20,000.
297
+ *
272
298
  * **Example** (Scaling decimal precision)
273
299
  *
274
300
  * ```ts import.meta.vitest
@@ -305,6 +331,10 @@ export const scale: {
305
331
  * digits beyond the target scale by `bigint` division, which truncates toward
306
332
  * zero.
307
333
  *
334
+ * **Gotchas**
335
+ *
336
+ * Throws a `RangeError` if the scale changes by more than 20,000.
337
+ *
308
338
  * **Example** (Scaling decimal precision)
309
339
  *
310
340
  * ```ts import.meta.vitest
@@ -330,11 +360,11 @@ export const scale: {
330
360
  (self: BigDecimal, scale: number): BigDecimal
331
361
  } = dual(2, (self: BigDecimal, scale: number): BigDecimal => {
332
362
  if (scale > self.scale) {
333
- return make(self.value * bigint10 ** BigInt(scale - self.scale), scale)
363
+ return make(self.value * powerOfTen(scale - self.scale), scale)
334
364
  }
335
365
 
336
366
  if (scale < self.scale) {
337
- return make(self.value / bigint10 ** BigInt(self.scale - scale), scale)
367
+ return make(self.value / powerOfTen(self.scale - scale), scale)
338
368
  }
339
369
 
340
370
  return self
@@ -348,6 +378,10 @@ export const scale: {
348
378
  * Use when you need a decimal addition function for piping or higher-order APIs
349
379
  * while preserving decimal precision.
350
380
  *
381
+ * **Gotchas**
382
+ *
383
+ * Throws a `RangeError` if the operands' scales differ by more than 20,000.
384
+ *
351
385
  * **Example** (Adding decimals)
352
386
  *
353
387
  * ```ts import.meta.vitest
@@ -374,6 +408,10 @@ export const sum: {
374
408
  * Use when you need a decimal addition function for piping or higher-order APIs
375
409
  * while preserving decimal precision.
376
410
  *
411
+ * **Gotchas**
412
+ *
413
+ * Throws a `RangeError` if the operands' scales differ by more than 20,000.
414
+ *
377
415
  * **Example** (Adding decimals)
378
416
  *
379
417
  * ```ts import.meta.vitest
@@ -400,6 +438,10 @@ export const sum: {
400
438
  * Use when you need a decimal addition function for piping or higher-order APIs
401
439
  * while preserving decimal precision.
402
440
  *
441
+ * **Gotchas**
442
+ *
443
+ * Throws a `RangeError` if the operands' scales differ by more than 20,000.
444
+ *
403
445
  * **Example** (Adding decimals)
404
446
  *
405
447
  * ```ts import.meta.vitest
@@ -446,6 +488,10 @@ export const sum: {
446
488
  * Use when you need to aggregate decimal quantities with decimal precision
447
489
  * instead of converting through JavaScript numbers.
448
490
  *
491
+ * **Gotchas**
492
+ *
493
+ * Throws a `RangeError` if the operands' scales differ by more than 20,000.
494
+ *
449
495
  * **Example** (Adding multiple decimals)
450
496
  *
451
497
  * ```ts import.meta.vitest
@@ -598,6 +644,10 @@ export const multiplyAll = (collection: Iterable<BigDecimal>): BigDecimal => {
598
644
  *
599
645
  * Use to subtract one `BigDecimal` value from another.
600
646
  *
647
+ * **Gotchas**
648
+ *
649
+ * Throws a `RangeError` if the operands' scales differ by more than 20,000.
650
+ *
601
651
  * **Example** (Subtracting decimals)
602
652
  *
603
653
  * ```ts import.meta.vitest
@@ -621,6 +671,10 @@ export const subtract: {
621
671
  *
622
672
  * Use to subtract one `BigDecimal` value from another.
623
673
  *
674
+ * **Gotchas**
675
+ *
676
+ * Throws a `RangeError` if the operands' scales differ by more than 20,000.
677
+ *
624
678
  * **Example** (Subtracting decimals)
625
679
  *
626
680
  * ```ts import.meta.vitest
@@ -644,6 +698,10 @@ export const subtract: {
644
698
  *
645
699
  * Use to subtract one `BigDecimal` value from another.
646
700
  *
701
+ * **Gotchas**
702
+ *
703
+ * Throws a `RangeError` if the operands' scales differ by more than 20,000.
704
+ *
647
705
  * **Example** (Subtracting decimals)
648
706
  *
649
707
  * ```ts import.meta.vitest
@@ -1818,6 +1876,10 @@ export const negate = (n: BigDecimal): BigDecimal => make(-n.value, n.scale)
1818
1876
  *
1819
1877
  * If the divisor is `0`, the result will be `Option.none()`.
1820
1878
  *
1879
+ * **Gotchas**
1880
+ *
1881
+ * Throws a `RangeError` if the operands' scales differ by more than 20,000.
1882
+ *
1821
1883
  * **Example** (Computing remainders safely)
1822
1884
  *
1823
1885
  * ```ts import.meta.vitest
@@ -1852,6 +1914,10 @@ export const remainder: {
1852
1914
  *
1853
1915
  * If the divisor is `0`, the result will be `Option.none()`.
1854
1916
  *
1917
+ * **Gotchas**
1918
+ *
1919
+ * Throws a `RangeError` if the operands' scales differ by more than 20,000.
1920
+ *
1855
1921
  * **Example** (Computing remainders safely)
1856
1922
  *
1857
1923
  * ```ts import.meta.vitest
@@ -1886,6 +1952,10 @@ export const remainder: {
1886
1952
  *
1887
1953
  * If the divisor is `0`, the result will be `Option.none()`.
1888
1954
  *
1955
+ * **Gotchas**
1956
+ *
1957
+ * Throws a `RangeError` if the operands' scales differ by more than 20,000.
1958
+ *
1889
1959
  * **Example** (Computing remainders safely)
1890
1960
  *
1891
1961
  * ```ts import.meta.vitest
@@ -1927,7 +1997,8 @@ export const remainder: {
1927
1997
  *
1928
1998
  * **Gotchas**
1929
1999
  *
1930
- * Throws a `RangeError` if the divisor is `0`.
2000
+ * Throws a `RangeError` if the divisor is `0` or the operands' scales differ by
2001
+ * more than 20,000.
1931
2002
  *
1932
2003
  * **Example** (Computing remainders unsafely)
1933
2004
  *
@@ -1958,7 +2029,8 @@ export const remainderUnsafe: {
1958
2029
  *
1959
2030
  * **Gotchas**
1960
2031
  *
1961
- * Throws a `RangeError` if the divisor is `0`.
2032
+ * Throws a `RangeError` if the divisor is `0` or the operands' scales differ by
2033
+ * more than 20,000.
1962
2034
  *
1963
2035
  * **Example** (Computing remainders unsafely)
1964
2036
  *
@@ -1989,7 +2061,8 @@ export const remainderUnsafe: {
1989
2061
  *
1990
2062
  * **Gotchas**
1991
2063
  *
1992
- * Throws a `RangeError` if the divisor is `0`.
2064
+ * Throws a `RangeError` if the divisor is `0` or the operands' scales differ by
2065
+ * more than 20,000.
1993
2066
  *
1994
2067
  * **Example** (Computing remainders unsafely)
1995
2068
  *
@@ -2245,8 +2318,9 @@ export const fromNumber = (n: number): Option.Option<BigDecimal> => {
2245
2318
  * **Details**
2246
2319
  *
2247
2320
  * Returns `Option.some` for valid decimal or exponent notation and
2248
- * `Option.none` when the string cannot be parsed or would produce an unsafe
2249
- * scale. The empty string parses as zero.
2321
+ * `Option.none` otherwise, including when the scale, before or after removing
2322
+ * trailing zeros, is outside ±10,000 (for example, more than 10,000 fractional
2323
+ * digits). The empty string parses as zero.
2250
2324
  *
2251
2325
  * **Example** (Parsing decimal strings safely)
2252
2326
  *
@@ -2290,6 +2364,9 @@ export const fromString = (s: string): Option.Option<BigDecimal> => {
2290
2364
  if (dot !== -1) {
2291
2365
  const lead = base.slice(0, dot)
2292
2366
  const trail = base.slice(dot + 1)
2367
+ if (!/^\d*$/.test(trail)) {
2368
+ return Option.none()
2369
+ }
2293
2370
  digits = `${lead}${trail}`
2294
2371
  offset = trail.length
2295
2372
  } else {
@@ -2302,11 +2379,14 @@ export const fromString = (s: string): Option.Option<BigDecimal> => {
2302
2379
  }
2303
2380
 
2304
2381
  const scale = offset - exp
2305
- if (!Number.isSafeInteger(scale)) {
2382
+ const value = BigInt(digits)
2383
+ // Keeps `format` output parseable
2384
+ const normalizedScale = value === bigint0 ? scale : scale - trailingZeros(digits)
2385
+ if (scale > MAX_SCALE || normalizedScale < -MAX_SCALE) {
2306
2386
  return Option.none()
2307
2387
  }
2308
2388
 
2309
- return Option.some(make(BigInt(digits), scale))
2389
+ return Option.some(make(value, scale))
2310
2390
  }
2311
2391
 
2312
2392
  /**
@@ -2319,8 +2399,9 @@ export const fromString = (s: string): Option.Option<BigDecimal> => {
2319
2399
  *
2320
2400
  * **Details**
2321
2401
  *
2322
- * Accepts the same syntax as `fromString`. Use `fromString` when invalid input
2323
- * should be represented as `Option.none` instead of throwing.
2402
+ * Accepts the same syntax and scale limits as `fromString`. Use `fromString`
2403
+ * when invalid input should be represented as `Option.none` instead of
2404
+ * throwing.
2324
2405
  *
2325
2406
  * **Example** (Parsing decimal strings unsafely)
2326
2407
  *
@@ -2593,6 +2674,15 @@ export type RoundingMode =
2593
2674
  *
2594
2675
  * Use to round a decimal at a requested scale with an explicit rounding mode.
2595
2676
  *
2677
+ * **Details**
2678
+ *
2679
+ * Values already at or below the target scale are returned unchanged.
2680
+ *
2681
+ * **Gotchas**
2682
+ *
2683
+ * Throws a `RangeError` if the value's scale exceeds the target scale by more
2684
+ * than 20,000.
2685
+ *
2596
2686
  * **Example** (Rounding decimals)
2597
2687
  *
2598
2688
  * ```ts import.meta.vitest
@@ -2621,6 +2711,15 @@ export const round: {
2621
2711
  *
2622
2712
  * Use to round a decimal at a requested scale with an explicit rounding mode.
2623
2713
  *
2714
+ * **Details**
2715
+ *
2716
+ * Values already at or below the target scale are returned unchanged.
2717
+ *
2718
+ * **Gotchas**
2719
+ *
2720
+ * Throws a `RangeError` if the value's scale exceeds the target scale by more
2721
+ * than 20,000.
2722
+ *
2624
2723
  * **Example** (Rounding decimals)
2625
2724
  *
2626
2725
  * ```ts import.meta.vitest
@@ -2649,6 +2748,15 @@ export const round: {
2649
2748
  *
2650
2749
  * Use to round a decimal at a requested scale with an explicit rounding mode.
2651
2750
  *
2751
+ * **Details**
2752
+ *
2753
+ * Values already at or below the target scale are returned unchanged.
2754
+ *
2755
+ * **Gotchas**
2756
+ *
2757
+ * Throws a `RangeError` if the value's scale exceeds the target scale by more
2758
+ * than 20,000.
2759
+ *
2652
2760
  * **Example** (Rounding decimals)
2653
2761
  *
2654
2762
  * ```ts import.meta.vitest
@@ -2674,6 +2782,10 @@ export const round: {
2674
2782
  const mode = options?.mode ?? "half-from-zero"
2675
2783
  const scale = options?.scale ?? 0
2676
2784
 
2785
+ if (self.scale <= scale) {
2786
+ return self
2787
+ }
2788
+
2677
2789
  switch (mode) {
2678
2790
  case "ceil":
2679
2791
  return ceil(self, scale)
@@ -2726,6 +2838,11 @@ export const round: {
2726
2838
  * Use when you need to discard fractional digits beyond a scale rather than
2727
2839
  * round half up, half down, or toward an infinity.
2728
2840
  *
2841
+ * **Gotchas**
2842
+ *
2843
+ * Throws a `RangeError` if the value's scale exceeds the target scale by more
2844
+ * than 20,000.
2845
+ *
2729
2846
  * **Example** (Truncating decimals)
2730
2847
  *
2731
2848
  * ```ts import.meta.vitest
@@ -2753,6 +2870,11 @@ export const truncate: {
2753
2870
  * Use when you need to discard fractional digits beyond a scale rather than
2754
2871
  * round half up, half down, or toward an infinity.
2755
2872
  *
2873
+ * **Gotchas**
2874
+ *
2875
+ * Throws a `RangeError` if the value's scale exceeds the target scale by more
2876
+ * than 20,000.
2877
+ *
2756
2878
  * **Example** (Truncating decimals)
2757
2879
  *
2758
2880
  * ```ts import.meta.vitest
@@ -2780,6 +2902,11 @@ export const truncate: {
2780
2902
  * Use when you need to discard fractional digits beyond a scale rather than
2781
2903
  * round half up, half down, or toward an infinity.
2782
2904
  *
2905
+ * **Gotchas**
2906
+ *
2907
+ * Throws a `RangeError` if the value's scale exceeds the target scale by more
2908
+ * than 20,000.
2909
+ *
2783
2910
  * **Example** (Truncating decimals)
2784
2911
  *
2785
2912
  * ```ts import.meta.vitest
@@ -2804,7 +2931,7 @@ export const truncate: {
2804
2931
  }
2805
2932
 
2806
2933
  // BigInt division truncates towards zero
2807
- return make(self.value / (bigint10 ** BigInt(self.scale - scale)), scale)
2934
+ return make(self.value / powerOfTen(self.scale - scale), scale)
2808
2935
  })
2809
2936
 
2810
2937
  /**
@@ -2820,6 +2947,11 @@ export const truncate: {
2820
2947
  * decimal point, and negative scales round positions to the left of the decimal
2821
2948
  * point.
2822
2949
  *
2950
+ * **Gotchas**
2951
+ *
2952
+ * Throws a `RangeError` if the value's scale exceeds the target scale by more
2953
+ * than 20,000.
2954
+ *
2823
2955
  * @see {@link floor} for rounding toward negative infinity
2824
2956
  * @see {@link truncate} for rounding toward zero
2825
2957
  * @see {@link round} for configurable rounding modes
@@ -2851,6 +2983,11 @@ export const ceil: {
2851
2983
  * decimal point, and negative scales round positions to the left of the decimal
2852
2984
  * point.
2853
2985
  *
2986
+ * **Gotchas**
2987
+ *
2988
+ * Throws a `RangeError` if the value's scale exceeds the target scale by more
2989
+ * than 20,000.
2990
+ *
2854
2991
  * @see {@link floor} for rounding toward negative infinity
2855
2992
  * @see {@link truncate} for rounding toward zero
2856
2993
  * @see {@link round} for configurable rounding modes
@@ -2882,6 +3019,11 @@ export const ceil: {
2882
3019
  * decimal point, and negative scales round positions to the left of the decimal
2883
3020
  * point.
2884
3021
  *
3022
+ * **Gotchas**
3023
+ *
3024
+ * Throws a `RangeError` if the value's scale exceeds the target scale by more
3025
+ * than 20,000.
3026
+ *
2885
3027
  * @see {@link floor} for rounding toward negative infinity
2886
3028
  * @see {@link truncate} for rounding toward zero
2887
3029
  * @see {@link round} for configurable rounding modes
@@ -2939,7 +3081,7 @@ export const digitAt: {
2939
3081
  return bigint0
2940
3082
  }
2941
3083
 
2942
- const scaled = self.value / (bigint10 ** BigInt(self.scale - scale))
3084
+ const scaled = self.value / powerOfTen(self.scale - scale)
2943
3085
  return scaled % bigint10
2944
3086
  })
2945
3087
 
@@ -2950,6 +3092,11 @@ export const digitAt: {
2950
3092
  *
2951
3093
  * Use to round a decimal toward negative infinity at a requested scale.
2952
3094
  *
3095
+ * **Gotchas**
3096
+ *
3097
+ * Throws a `RangeError` if the value's scale exceeds the target scale by more
3098
+ * than 20,000.
3099
+ *
2953
3100
  * **Example** (Rounding decimals down)
2954
3101
  *
2955
3102
  * ```ts import.meta.vitest
@@ -2975,6 +3122,11 @@ export const floor: {
2975
3122
  *
2976
3123
  * Use to round a decimal toward negative infinity at a requested scale.
2977
3124
  *
3125
+ * **Gotchas**
3126
+ *
3127
+ * Throws a `RangeError` if the value's scale exceeds the target scale by more
3128
+ * than 20,000.
3129
+ *
2978
3130
  * **Example** (Rounding decimals down)
2979
3131
  *
2980
3132
  * ```ts import.meta.vitest
@@ -3000,6 +3152,11 @@ export const floor: {
3000
3152
  *
3001
3153
  * Use to round a decimal toward negative infinity at a requested scale.
3002
3154
  *
3155
+ * **Gotchas**
3156
+ *
3157
+ * Throws a `RangeError` if the value's scale exceeds the target scale by more
3158
+ * than 20,000.
3159
+ *
3003
3160
  * **Example** (Rounding decimals down)
3004
3161
  *
3005
3162
  * ```ts import.meta.vitest
package/src/Channel.ts CHANGED
@@ -22,7 +22,7 @@ import type * as Filter from "./Filter.ts"
22
22
  import type { LazyArg } from "./Function.ts"
23
23
  import { constant, constTrue, constVoid, dual, identity as identity_ } from "./Function.ts"
24
24
  import * as Count from "./internal/count.ts"
25
- import { ClockRef, endSpan, findRecoverableError } from "./internal/effect.ts"
25
+ import { ClockRef, endSpan, findRecoverableError, ignoreCauseLogger } from "./internal/effect.ts"
26
26
  import { addSpanStackTrace } from "./internal/tracer.ts"
27
27
  import * as Iterable from "./Iterable.ts"
28
28
  import * as Latch from "./Latch.ts"
@@ -8095,6 +8095,9 @@ export const orDie = <
8095
8095
  * **Details**
8096
8096
  *
8097
8097
  * Use the `log` option to emit the full {@link Cause} when the channel fails.
8098
+ * Set `log: "Unhandled"` to read `References.UnhandledLogLevel` when the
8099
+ * failure occurs; `undefined` disables logging. Minimum log level filtering
8100
+ * still applies.
8098
8101
  *
8099
8102
  * **Gotchas**
8100
8103
  *
@@ -8109,14 +8112,14 @@ export const orDie = <
8109
8112
  */
8110
8113
  export const ignore: <
8111
8114
  Arg extends Channel<any, any, any, any, any, any, any> | {
8112
- readonly log?: boolean | Severity | undefined
8115
+ readonly log?: boolean | Severity | "Unhandled" | undefined
8113
8116
  } | undefined = {
8114
- readonly log?: boolean | Severity | undefined
8117
+ readonly log?: boolean | Severity | "Unhandled" | undefined
8115
8118
  }
8116
8119
  >(
8117
8120
  selfOrOptions: Arg,
8118
8121
  options?: {
8119
- readonly log?: boolean | Severity | undefined
8122
+ readonly log?: boolean | Severity | "Unhandled" | undefined
8120
8123
  } | undefined
8121
8124
  ) => [Arg] extends
8122
8125
  [Channel<infer OutElem, infer _OutErr, infer OutDone, infer InElem, infer InErr, infer InDone, infer Env>]
@@ -8128,13 +8131,13 @@ export const ignore: <
8128
8131
  <OutElem, OutErr, OutDone, InElem, InErr, InDone, Env>(
8129
8132
  self: Channel<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env>,
8130
8133
  options?: {
8131
- readonly log?: boolean | Severity | undefined
8134
+ readonly log?: boolean | Severity | "Unhandled" | undefined
8132
8135
  } | undefined
8133
8136
  ): Channel<OutElem, never, OutDone | void, InElem, InErr, InDone, Env> => {
8134
8137
  if (!options?.log) {
8135
8138
  return catch_(self, () => empty)
8136
8139
  }
8137
- const logEffect = Effect.logWithLevel(options.log === true ? undefined : options.log)
8140
+ const logEffect = ignoreCauseLogger(options.log)
8138
8141
  return catch_(
8139
8142
  tapCause(self, (cause) => Cause.hasFails(cause) ? logEffect(cause) : Effect.void),
8140
8143
  () => empty
@@ -8165,6 +8168,9 @@ const ignoreCause_ = <
8165
8168
  * **Details**
8166
8169
  *
8167
8170
  * Use the `log` option to emit the full {@link Cause} when the channel fails.
8171
+ * Set `log: "Unhandled"` to read `References.UnhandledLogLevel` when the
8172
+ * failure occurs; `undefined` disables logging. Minimum log level filtering
8173
+ * still applies.
8168
8174
  *
8169
8175
  * @stability stable
8170
8176
  * @category error handling
@@ -8172,14 +8178,14 @@ const ignoreCause_ = <
8172
8178
  */
8173
8179
  export const ignoreCause: <
8174
8180
  Arg extends Channel<any, any, any, any, any, any, any> | {
8175
- readonly log?: boolean | Severity | undefined
8181
+ readonly log?: boolean | Severity | "Unhandled" | undefined
8176
8182
  } | undefined = {
8177
- readonly log?: boolean | Severity | undefined
8183
+ readonly log?: boolean | Severity | "Unhandled" | undefined
8178
8184
  }
8179
8185
  >(
8180
8186
  selfOrOptions: Arg,
8181
8187
  options?: {
8182
- readonly log?: boolean | Severity | undefined
8188
+ readonly log?: boolean | Severity | "Unhandled" | undefined
8183
8189
  } | undefined
8184
8190
  ) => [Arg] extends
8185
8191
  [Channel<infer OutElem, infer _OutErr, infer OutDone, infer InElem, infer InErr, infer InDone, infer Env>]
@@ -8190,10 +8196,10 @@ export const ignoreCause: <
8190
8196
  (args) => isChannel(args[0]),
8191
8197
  <OutElem, OutErr, OutDone, InElem, InErr, InDone, Env>(
8192
8198
  self: Channel<OutElem, OutErr, OutDone, InElem, InErr, InDone, Env>,
8193
- options?: { readonly log?: boolean | Severity | undefined } | undefined
8199
+ options?: { readonly log?: boolean | Severity | "Unhandled" | undefined } | undefined
8194
8200
  ): Channel<OutElem, never, OutDone | void, InElem, InErr, InDone, Env> => {
8195
8201
  if (!options?.log) return ignoreCause_(self)
8196
- const logEffect = Effect.logWithLevel(options.log === true ? undefined : options.log)
8202
+ const logEffect = ignoreCauseLogger(options.log)
8197
8203
  return ignoreCause_(tapCause(self, (cause) => logEffect(cause)))
8198
8204
  }
8199
8205
  )
package/src/Config.ts CHANGED
@@ -1280,6 +1280,8 @@ interface ArrayOptions {
1280
1280
  interface RecordOptions {
1281
1281
  readonly separator?: string | undefined
1282
1282
  readonly keyValueSeparator?: string | undefined
1283
+ readonly trim?: boolean | undefined
1284
+ readonly keepEmptyValues?: boolean | undefined
1283
1285
  }
1284
1286
 
1285
1287
  const isPath = (u: unknown): u is string | Path => Predicate.isString(u) || globalThis.Array.isArray(u)
@@ -1588,7 +1590,11 @@ export function Array<V extends Schema.ConstraintCodec<unknown, unknown>>(
1588
1590
  *
1589
1591
  * Pass a string or `ConfigProvider.Path` as the third argument to set the lookup
1590
1592
  * path. When no path is needed, pass the options object directly. The `separator`
1591
- * defaults to `","` and `keyValueSeparator` defaults to `"="`.
1593
+ * defaults to `","` and `keyValueSeparator` defaults to `"="`. For string input,
1594
+ * set `trim: true` to trim keys and values before entries with an empty key are
1595
+ * skipped, and `keepEmptyValues: true` to keep entries with an empty value as
1596
+ * `""` instead of skipping them. Entries without a `keyValueSeparator` are
1597
+ * always skipped.
1592
1598
  *
1593
1599
  * **Example** (Reading a comma-separated record)
1594
1600
  *
package/src/Context.ts CHANGED
@@ -642,6 +642,7 @@ interface ContextImpl<in Services> extends Context<Services> {
642
642
  overlay: Overlay | undefined
643
643
  depth: number
644
644
  _flat: ReadonlyMap<string, any> | undefined
645
+ maxDepth: number
645
646
  }
646
647
 
647
648
  interface Overlay {
@@ -650,7 +651,6 @@ interface Overlay {
650
651
  readonly parent: Overlay | undefined
651
652
  }
652
653
 
653
- const MaxDepth = 8
654
654
  // Keep small bases cheap to read; larger bases are worth copying only after
655
655
  // enough fall-throughs to amortize the copy.
656
656
  const FlattenAfterBaseHits = 8
@@ -659,7 +659,8 @@ const makeImpl = <Services>(
659
659
  cacheRoot: ContextImpl<any> | undefined,
660
660
  base: ReadonlyMap<string, any>,
661
661
  overlay: Overlay | undefined,
662
- depth: number
662
+ depth: number,
663
+ maxDepth: number
663
664
  ): ContextImpl<Services> => {
664
665
  const self: ContextImpl<Services> = Object.create(Proto)
665
666
  self.cacheRoot = cacheRoot ?? self
@@ -668,6 +669,7 @@ const makeImpl = <Services>(
668
669
  self.depth = depth
669
670
  self._flat = undefined
670
671
  self.baseHits = 0
672
+ self.maxDepth = maxDepth
671
673
  return self
672
674
  }
673
675
 
@@ -688,7 +690,7 @@ const flatten = (self: ContextImpl<any>): ReadonlyMap<string, any> => {
688
690
  const withFlat = <B>(self: Context<any>, f: (map: Map<string, any>) => void): Context<B> => {
689
691
  const map = new Map(self.mapUnsafe)
690
692
  f(map)
691
- return makeUnsafe(map)
693
+ return makeImpl(undefined, map, undefined, 0, (self as ContextImpl<any>).maxDepth)
692
694
  }
693
695
 
694
696
  // A private symbol so user code cannot forge a value that reads as absent
@@ -720,8 +722,23 @@ const lookup = (self: Context<any>, key: string): unknown => {
720
722
  * Use when constructing a low-level `Context` from a trusted map whose lifecycle
721
723
  * you control.
722
724
  *
725
+ * **Details**
726
+ *
727
+ * `options.maxDepth` sets how many `add` calls are kept as overlays before the
728
+ * context is rebased into a flat map (default `8`). Lower values make lookups
729
+ * cheaper, higher values make additions to a large base cheaper. Invalid
730
+ * values fall back to the default.
731
+ *
732
+ * Contexts derived with `add`, `pick`, `omit`, and `merge` keep the setting
733
+ * (`merge` from its first non-empty argument). `make`, `empty`, and `mergeAll`
734
+ * use the default. Layers are combined with `mergeAll`, so apply it to the
735
+ * final context rather than inside a layer.
736
+ *
723
737
  * **Gotchas**
724
738
  *
739
+ * Excessively large `maxDepth` values can cause stack overflow when overlays
740
+ * are materialized or rebased. Choose a modest value.
741
+ *
725
742
  * The provided map is retained without copying and must not be mutated after
726
743
  * construction. Prefer `empty`, `make`, `add`, or `merge` for normal Context
727
744
  * construction.
@@ -744,12 +761,18 @@ const lookup = (self: Context<any>, key: string): unknown => {
744
761
  * @category constructors
745
762
  * @since 4.0.0
746
763
  */
747
- export const makeUnsafe = <Services = never>(mapUnsafe: ReadonlyMap<string, any>): Context<Services> =>
748
- makeImpl(undefined, mapUnsafe, undefined, 0)
764
+ export const makeUnsafe = <Services = never>(
765
+ mapUnsafe: ReadonlyMap<string, any>,
766
+ options?: { readonly maxDepth?: number }
767
+ ): Context<Services> => {
768
+ const maxDepth = options?.maxDepth
769
+ // NaN or Infinity would never trigger a rebase, so fall back to the default
770
+ return makeImpl(undefined, mapUnsafe, undefined, 0, Number.isInteger(maxDepth) && maxDepth! >= 0 ? maxDepth! : 8)
771
+ }
749
772
 
750
773
  const Proto: Omit<
751
774
  ContextImpl<never>,
752
- "cacheRoot" | "base" | "overlay" | "depth" | "_flat" | "baseHits"
775
+ "cacheRoot" | "base" | "overlay" | "depth" | "_flat" | "baseHits" | "maxDepth"
753
776
  > = {
754
777
  get mapUnsafe() {
755
778
  return flatten(this as any as ContextImpl<any>)
@@ -1032,19 +1055,20 @@ export const addUnsafe = <Services, I, S>(
1032
1055
  ): Context<Services | I> => {
1033
1056
  const impl = self as ContextImpl<Services>
1034
1057
  const cacheRoot = cacheKeys.has(key) ? undefined : impl.cacheRoot
1035
- if (impl.depth >= MaxDepth) {
1058
+ if (impl.depth >= impl.maxDepth) {
1036
1059
  // Avoid mapUnsafe: it would flatten the parent before copying.
1037
1060
  const map = new Map(impl._flat ?? impl.base)
1038
1061
  if (!impl._flat) applyOverlays(map, impl.overlay)
1039
1062
  map.set(key, service)
1040
- return makeImpl(cacheRoot, map, undefined, 0)
1063
+ return makeImpl(cacheRoot, map, undefined, 0, impl.maxDepth)
1041
1064
  }
1042
1065
 
1043
1066
  return makeImpl(
1044
1067
  cacheRoot,
1045
1068
  impl.base,
1046
1069
  { key, value: service, parent: impl.overlay },
1047
- impl.depth + 1
1070
+ impl.depth + 1,
1071
+ impl.maxDepth
1048
1072
  )
1049
1073
  }
1050
1074
 
@@ -1993,7 +2017,7 @@ export const pick = <S extends ReadonlyArray<Key<any, any>>>(
1993
2017
  const value = lookup(self, key)
1994
2018
  if (value !== notFound) map.set(key, value)
1995
2019
  }
1996
- return makeUnsafe(map)
2020
+ return makeImpl(undefined, map, undefined, 0, (self as ContextImpl<any>).maxDepth)
1997
2021
  }
1998
2022
  const keep = new Set(services.map((key) => key.key))
1999
2023
  return withFlat(self, (map) =>