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
@@ -0,0 +1,236 @@
1
+ /**
2
+ * Unauthenticated encryption with no integrity: compose with `Mac`.
3
+ *
4
+ * AES-CTR and AES-CBC with PKCS#7 padding, for protocols that pair them with a
5
+ * MAC, such as SSH, SRTP, JWE, CMS, and Matrix. Anyone can change the
6
+ * ciphertext without being detected, so authenticate it with `Mac`
7
+ * (encrypt-then-MAC), or use `Aead` instead.
8
+ *
9
+ * The {@link Cipher} service generates keys, encrypts, and decrypts. The
10
+ * top-level {@link key}, {@link fromCryptoKey}, and {@link toBytes} functions
11
+ * build and export keys without a service. Both modes run on `crypto.subtle`.
12
+ *
13
+ * Keys are opaque. They hold either key bytes or a `CryptoKey`, display only
14
+ * their algorithm, and compare by reference.
15
+ *
16
+ * **Gotchas**
17
+ *
18
+ * - Never reuse an IV with the same key. For AES-CTR a repeated counter block
19
+ * reveals the XOR of two plaintexts. For AES-CBC the IV must also be
20
+ * unpredictable.
21
+ * - AES-CTR decryption never fails, whatever the ciphertext. AES-CBC
22
+ * decryption fails with one `DecryptionFailed` reason for both bad padding
23
+ * and a bad length, so callers cannot tell them apart. Verify a MAC before
24
+ * decrypting, or the error itself becomes a padding oracle.
25
+ *
26
+ * @stability unstable
27
+ * @since 4.0.0
28
+ */
29
+ import * as Context from "../Context.ts";
30
+ import * as Effect from "../Effect.ts";
31
+ import type { Inspectable } from "../Inspectable.ts";
32
+ import * as Layer from "../Layer.ts";
33
+ import * as CryptoError from "./CryptoError.ts";
34
+ import * as SecureRandom from "./SecureRandom.ts";
35
+ import * as WebCrypto from "./WebCrypto.ts";
36
+ declare const TypeId: "~effect/crypto/Cipher/Key";
37
+ /**
38
+ * An unauthenticated cipher algorithm, such as {@link aes256Cbc}.
39
+ *
40
+ * **Details**
41
+ *
42
+ * `mode` is the WebCrypto algorithm name and `keyLength` is in bytes.
43
+ *
44
+ * @stability unstable
45
+ * @category models
46
+ * @since 4.0.0
47
+ */
48
+ export interface Algorithm {
49
+ readonly name: "aes128Ctr" | "aes256Ctr" | "aes128Cbc" | "aes256Cbc";
50
+ readonly mode: "AES-CTR" | "AES-CBC";
51
+ readonly keyLength: 16 | 32;
52
+ }
53
+ /**
54
+ * AES-128-CTR, with a 16-byte key.
55
+ *
56
+ * **Details**
57
+ *
58
+ * The 16-byte `iv` is the initial counter block, and the whole 128-bit block
59
+ * is the counter, as in OpenSSL, Node.js, Go's `cipher.NewCTR`, and noble.
60
+ *
61
+ * @stability unstable
62
+ * @category algorithms
63
+ * @since 4.0.0
64
+ */
65
+ export declare const aes128Ctr: Algorithm;
66
+ /**
67
+ * AES-256-CTR, with a 32-byte key.
68
+ *
69
+ * **Details**
70
+ *
71
+ * The 16-byte `iv` is the initial counter block, and the whole 128-bit block
72
+ * is the counter, as in OpenSSL, Node.js, Go's `cipher.NewCTR`, and noble.
73
+ *
74
+ * @stability unstable
75
+ * @category algorithms
76
+ * @since 4.0.0
77
+ */
78
+ export declare const aes256Ctr: Algorithm;
79
+ /**
80
+ * AES-128-CBC with PKCS#7 padding, with a 16-byte key.
81
+ *
82
+ * @stability unstable
83
+ * @category algorithms
84
+ * @since 4.0.0
85
+ */
86
+ export declare const aes128Cbc: Algorithm;
87
+ /**
88
+ * AES-256-CBC with PKCS#7 padding, with a 32-byte key.
89
+ *
90
+ * @stability unstable
91
+ * @category algorithms
92
+ * @since 4.0.0
93
+ */
94
+ export declare const aes256Cbc: Algorithm;
95
+ /**
96
+ * An opaque unauthenticated cipher key for the algorithm `A`.
97
+ *
98
+ * **Details**
99
+ *
100
+ * The key holds either key bytes or a `CryptoKey` from {@link fromCryptoKey}.
101
+ * `toString`, `toJSON`, and `inspect` show only the algorithm. Keys compare
102
+ * by reference and do not implement `Equal`, because comparing key bytes is
103
+ * not constant time.
104
+ *
105
+ * @stability unstable
106
+ * @category models
107
+ * @since 4.0.0
108
+ */
109
+ export interface Key<out A extends Algorithm = Algorithm> extends Inspectable {
110
+ readonly [TypeId]: typeof TypeId;
111
+ readonly algorithm: A;
112
+ }
113
+ /**
114
+ * Checks whether a value is a {@link Key}.
115
+ *
116
+ * @stability unstable
117
+ * @category guards
118
+ * @since 4.0.0
119
+ */
120
+ export declare const isKey: (u: unknown) => u is Key;
121
+ declare const Cipher_base: Context.ServiceClass<Cipher, "effect/crypto/Cipher", {
122
+ /**
123
+ * Generates a random key of the algorithm's length from `SecureRandom`
124
+ * bytes.
125
+ */
126
+ readonly generateKey: <A extends Algorithm>(algorithm: A) => Effect.Effect<Key<A>, CryptoError.CryptoError>;
127
+ /**
128
+ * Encrypts `plaintext`. AES-CTR output has the plaintext's length, and
129
+ * AES-CBC output is padded to the next multiple of 16 bytes.
130
+ *
131
+ * `iv` is 16 bytes: the initial counter block for AES-CTR, and the
132
+ * initialization vector for AES-CBC.
133
+ */
134
+ readonly encrypt: (key: Key, plaintext: Uint8Array, options: {
135
+ readonly iv: Uint8Array;
136
+ }) => Effect.Effect<Uint8Array, CryptoError.CryptoError>;
137
+ /**
138
+ * Decrypts `ciphertext`. AES-CBC fails with a `DecryptionFailed` reason for
139
+ * bad padding or a bad length; AES-CTR never fails on the ciphertext.
140
+ */
141
+ readonly decrypt: (key: Key, ciphertext: Uint8Array, options: {
142
+ readonly iv: Uint8Array;
143
+ }) => Effect.Effect<Uint8Array, CryptoError.CryptoError>;
144
+ }>;
145
+ /**
146
+ * Service that generates keys, encrypts, and decrypts without
147
+ * authentication.
148
+ *
149
+ * **Example** (Encrypting with AES-CBC)
150
+ *
151
+ * ```ts import.meta.vitest
152
+ * import { Effect, Layer } from "effect"
153
+ * import { Cipher, SecureRandom } from "effect/crypto"
154
+ *
155
+ * const program = Effect.gen(function*() {
156
+ * const cipher = yield* Cipher.Cipher
157
+ * const random = yield* SecureRandom.SecureRandom
158
+ * const key = yield* cipher.generateKey(Cipher.aes256Cbc)
159
+ * const iv = yield* random.randomBytes(16)
160
+ * const ciphertext = yield* cipher.encrypt(key, new TextEncoder().encode("secret"), { iv })
161
+ * const plaintext = yield* cipher.decrypt(key, ciphertext, { iv })
162
+ * return [ciphertext.length, new TextDecoder().decode(plaintext)]
163
+ * })
164
+ *
165
+ * const layer = Cipher.layerWebCrypto.pipe(Layer.provideMerge(SecureRandom.layerWebCrypto))
166
+ * await Effect.runPromise(program.pipe(Effect.provide(layer))) // => [16, "secret"]
167
+ * ```
168
+ *
169
+ * @stability unstable
170
+ * @category services
171
+ * @since 4.0.0
172
+ */
173
+ export declare class Cipher extends Cipher_base {
174
+ }
175
+ /**
176
+ * Layer that provides `Cipher` on the `WebCrypto` reference.
177
+ *
178
+ * **Details**
179
+ *
180
+ * Encryption and decryption run on `crypto.subtle`. The layer imports a
181
+ * byte-backed key on first use and caches the `CryptoKey`. AES-CTR uses the
182
+ * whole 128-bit block as the counter (`length: 128`), which every runtime
183
+ * supports. Generated keys come from `SecureRandom`, so a seeded
184
+ * `SecureRandom` gives reproducible keys.
185
+ *
186
+ * @stability unstable
187
+ * @category layers
188
+ * @since 4.0.0
189
+ */
190
+ export declare const layerWebCrypto: Layer.Layer<Cipher, never, SecureRandom.SecureRandom>;
191
+ /**
192
+ * Builds a key from raw key bytes.
193
+ *
194
+ * **Details**
195
+ *
196
+ * Copies the bytes, including Node.js `Buffer` inputs. A length other than
197
+ * the algorithm's key length fails with an `InvalidKey` reason. AES-192 is
198
+ * not supported.
199
+ *
200
+ * @stability unstable
201
+ * @category constructors
202
+ * @since 4.0.0
203
+ */
204
+ export declare const key: <A extends Algorithm>(algorithm: A, bytes: Uint8Array) => Effect.Effect<Key<A>, CryptoError.CryptoError>;
205
+ /**
206
+ * Builds a key from an existing `CryptoKey`, such as a non-extractable one.
207
+ *
208
+ * **Details**
209
+ *
210
+ * The `CryptoKey` must be a secret key for the algorithm's mode (`AES-CTR` or
211
+ * `AES-CBC`) and length, with both the `encrypt` and `decrypt` usages, since
212
+ * a key reaches both operations. Otherwise the constructor fails with an
213
+ * `InvalidKey` reason. It must come from the `Crypto` object of the
214
+ * `WebCrypto` reference.
215
+ *
216
+ * @stability unstable
217
+ * @category constructors
218
+ * @since 4.0.0
219
+ */
220
+ export declare const fromCryptoKey: <A extends Algorithm>(algorithm: A, cryptoKey: WebCrypto.CryptoKey) => Effect.Effect<Key<A>, CryptoError.CryptoError>;
221
+ /**
222
+ * Exports a key's bytes.
223
+ *
224
+ * **Details**
225
+ *
226
+ * Returns a fresh `Uint8Array` that shares no memory with the key. A
227
+ * `CryptoKey`-backed key is exported on the `WebCrypto` reference, and fails
228
+ * with a `NotExtractable` reason when the `CryptoKey` is not extractable.
229
+ *
230
+ * @stability unstable
231
+ * @category converting
232
+ * @since 4.0.0
233
+ */
234
+ export declare const toBytes: (key: Key) => Effect.Effect<Uint8Array, CryptoError.CryptoError>;
235
+ export {};
236
+ //# sourceMappingURL=Cipher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cipher.d.ts","sourceRoot":"","sources":["../../src/crypto/Cipher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,233 @@
1
+ /**
2
+ * Unauthenticated encryption with no integrity: compose with `Mac`.
3
+ *
4
+ * AES-CTR and AES-CBC with PKCS#7 padding, for protocols that pair them with a
5
+ * MAC, such as SSH, SRTP, JWE, CMS, and Matrix. Anyone can change the
6
+ * ciphertext without being detected, so authenticate it with `Mac`
7
+ * (encrypt-then-MAC), or use `Aead` instead.
8
+ *
9
+ * The {@link Cipher} service generates keys, encrypts, and decrypts. The
10
+ * top-level {@link key}, {@link fromCryptoKey}, and {@link toBytes} functions
11
+ * build and export keys without a service. Both modes run on `crypto.subtle`.
12
+ *
13
+ * Keys are opaque. They hold either key bytes or a `CryptoKey`, display only
14
+ * their algorithm, and compare by reference.
15
+ *
16
+ * **Gotchas**
17
+ *
18
+ * - Never reuse an IV with the same key. For AES-CTR a repeated counter block
19
+ * reveals the XOR of two plaintexts. For AES-CBC the IV must also be
20
+ * unpredictable.
21
+ * - AES-CTR decryption never fails, whatever the ciphertext. AES-CBC
22
+ * decryption fails with one `DecryptionFailed` reason for both bad padding
23
+ * and a bad length, so callers cannot tell them apart. Verify a MAC before
24
+ * decrypting, or the error itself becomes a padding oracle.
25
+ *
26
+ * @stability unstable
27
+ * @since 4.0.0
28
+ */
29
+ import * as Context from "../Context.js";
30
+ import * as Effect from "../Effect.js";
31
+ import * as Layer from "../Layer.js";
32
+ import * as Predicate from "../Predicate.js";
33
+ import * as CryptoError from "./CryptoError.js";
34
+ import * as KeyModel from "./internal/key.js";
35
+ import * as internal from "./internal/webCrypto.js";
36
+ import * as SecureRandom from "./SecureRandom.js";
37
+ import * as WebCrypto from "./WebCrypto.js";
38
+ const TypeId = "~effect/crypto/Cipher/Key";
39
+ /**
40
+ * AES-128-CTR, with a 16-byte key.
41
+ *
42
+ * **Details**
43
+ *
44
+ * The 16-byte `iv` is the initial counter block, and the whole 128-bit block
45
+ * is the counter, as in OpenSSL, Node.js, Go's `cipher.NewCTR`, and noble.
46
+ *
47
+ * @stability unstable
48
+ * @category algorithms
49
+ * @since 4.0.0
50
+ */
51
+ export const aes128Ctr = {
52
+ name: "aes128Ctr",
53
+ mode: "AES-CTR",
54
+ keyLength: 16
55
+ };
56
+ /**
57
+ * AES-256-CTR, with a 32-byte key.
58
+ *
59
+ * **Details**
60
+ *
61
+ * The 16-byte `iv` is the initial counter block, and the whole 128-bit block
62
+ * is the counter, as in OpenSSL, Node.js, Go's `cipher.NewCTR`, and noble.
63
+ *
64
+ * @stability unstable
65
+ * @category algorithms
66
+ * @since 4.0.0
67
+ */
68
+ export const aes256Ctr = {
69
+ name: "aes256Ctr",
70
+ mode: "AES-CTR",
71
+ keyLength: 32
72
+ };
73
+ /**
74
+ * AES-128-CBC with PKCS#7 padding, with a 16-byte key.
75
+ *
76
+ * @stability unstable
77
+ * @category algorithms
78
+ * @since 4.0.0
79
+ */
80
+ export const aes128Cbc = {
81
+ name: "aes128Cbc",
82
+ mode: "AES-CBC",
83
+ keyLength: 16
84
+ };
85
+ /**
86
+ * AES-256-CBC with PKCS#7 padding, with a 32-byte key.
87
+ *
88
+ * @stability unstable
89
+ * @category algorithms
90
+ * @since 4.0.0
91
+ */
92
+ export const aes256Cbc = {
93
+ name: "aes256Cbc",
94
+ mode: "AES-CBC",
95
+ keyLength: 32
96
+ };
97
+ const KeyProto = /*#__PURE__*/KeyModel.redactedProto(TypeId, "Cipher.Key");
98
+ /**
99
+ * Checks whether a value is a {@link Key}.
100
+ *
101
+ * @stability unstable
102
+ * @category guards
103
+ * @since 4.0.0
104
+ */
105
+ export const isKey = u => Predicate.hasProperty(u, TypeId);
106
+ /**
107
+ * Service that generates keys, encrypts, and decrypts without
108
+ * authentication.
109
+ *
110
+ * **Example** (Encrypting with AES-CBC)
111
+ *
112
+ * ```ts import.meta.vitest
113
+ * import { Effect, Layer } from "effect"
114
+ * import { Cipher, SecureRandom } from "effect/crypto"
115
+ *
116
+ * const program = Effect.gen(function*() {
117
+ * const cipher = yield* Cipher.Cipher
118
+ * const random = yield* SecureRandom.SecureRandom
119
+ * const key = yield* cipher.generateKey(Cipher.aes256Cbc)
120
+ * const iv = yield* random.randomBytes(16)
121
+ * const ciphertext = yield* cipher.encrypt(key, new TextEncoder().encode("secret"), { iv })
122
+ * const plaintext = yield* cipher.decrypt(key, ciphertext, { iv })
123
+ * return [ciphertext.length, new TextDecoder().decode(plaintext)]
124
+ * })
125
+ *
126
+ * const layer = Cipher.layerWebCrypto.pipe(Layer.provideMerge(SecureRandom.layerWebCrypto))
127
+ * await Effect.runPromise(program.pipe(Effect.provide(layer))) // => [16, "secret"]
128
+ * ```
129
+ *
130
+ * @stability unstable
131
+ * @category services
132
+ * @since 4.0.0
133
+ */
134
+ export class Cipher extends /*#__PURE__*/Context.Service()("effect/crypto/Cipher") {}
135
+ const fail = (method, reason) => internal.fail("Cipher", method, reason);
136
+ const blockLength = 16;
137
+ const params = (algorithm, iv) => algorithm.mode === "AES-CTR" ? {
138
+ name: "AES-CTR",
139
+ counter: iv,
140
+ length: 128
141
+ } : {
142
+ name: "AES-CBC",
143
+ iv: iv
144
+ };
145
+ /**
146
+ * Layer that provides `Cipher` on the `WebCrypto` reference.
147
+ *
148
+ * **Details**
149
+ *
150
+ * Encryption and decryption run on `crypto.subtle`. The layer imports a
151
+ * byte-backed key on first use and caches the `CryptoKey`. AES-CTR uses the
152
+ * whole 128-bit block as the counter (`length: 128`), which every runtime
153
+ * supports. Generated keys come from `SecureRandom`, so a seeded
154
+ * `SecureRandom` gives reproducible keys.
155
+ *
156
+ * @stability unstable
157
+ * @category layers
158
+ * @since 4.0.0
159
+ */
160
+ export const layerWebCrypto = /*#__PURE__*/Layer.effect(Cipher, /*#__PURE__*/Effect.gen(function* () {
161
+ const random = yield* SecureRandom.SecureRandom;
162
+ const crypto = yield* WebCrypto.WebCrypto;
163
+ const cryptoKeyFor = KeyModel.makeCache((subtle, bytes, algorithm) => subtle.importKey("raw", bytes, algorithm.mode, false, ["encrypt", "decrypt"]));
164
+ const run = method => (key, data, options) => Effect.suspend(() => {
165
+ if (options.iv.length !== blockLength) {
166
+ return fail(method, new CryptoError.InvalidArgument({
167
+ description: "IVs must contain exactly 16 bytes"
168
+ }));
169
+ }
170
+ // Checked here so a bad length is not reported differently from bad padding.
171
+ const cbc = key.algorithm.mode === "AES-CBC";
172
+ if (method === "decrypt" && cbc && (data.length === 0 || data.length % blockLength !== 0)) {
173
+ return fail(method, new CryptoError.DecryptionFailed());
174
+ }
175
+ return internal.run("Cipher", method, key.algorithm.name, crypto, async subtle => new Uint8Array(await subtle[method](params(key.algorithm, options.iv), await cryptoKeyFor(subtle, key), data)), cause => internal.webCryptoError("Cipher", method, key.algorithm.name, cause, method === "decrypt" && cbc ? () => new CryptoError.DecryptionFailed() : undefined));
176
+ });
177
+ return Cipher.of({
178
+ generateKey: algorithm => Effect.map(random.randomBytes(algorithm.keyLength), bytes => KeyModel.makeBytes(KeyProto, algorithm, bytes)),
179
+ encrypt: run("encrypt"),
180
+ decrypt: run("decrypt")
181
+ });
182
+ }));
183
+ /**
184
+ * Builds a key from raw key bytes.
185
+ *
186
+ * **Details**
187
+ *
188
+ * Copies the bytes, including Node.js `Buffer` inputs. A length other than
189
+ * the algorithm's key length fails with an `InvalidKey` reason. AES-192 is
190
+ * not supported.
191
+ *
192
+ * @stability unstable
193
+ * @category constructors
194
+ * @since 4.0.0
195
+ */
196
+ export const key = (algorithm, bytes) => KeyModel.fromBytes("Cipher", "key", KeyProto, algorithm, bytes, KeyModel.checkKeyLength(algorithm));
197
+ /**
198
+ * Builds a key from an existing `CryptoKey`, such as a non-extractable one.
199
+ *
200
+ * **Details**
201
+ *
202
+ * The `CryptoKey` must be a secret key for the algorithm's mode (`AES-CTR` or
203
+ * `AES-CBC`) and length, with both the `encrypt` and `decrypt` usages, since
204
+ * a key reaches both operations. Otherwise the constructor fails with an
205
+ * `InvalidKey` reason. It must come from the `Crypto` object of the
206
+ * `WebCrypto` reference.
207
+ *
208
+ * @stability unstable
209
+ * @category constructors
210
+ * @since 4.0.0
211
+ */
212
+ export const fromCryptoKey = (algorithm, cryptoKey) => KeyModel.fromCryptoKey("Cipher", "fromCryptoKey", KeyProto, algorithm, cryptoKey, {
213
+ type: "secret",
214
+ name: algorithm.mode,
215
+ usages: ["encrypt", "decrypt"],
216
+ usagePolicy: "all",
217
+ check: KeyModel.checkAesLength(algorithm.mode, algorithm.keyLength)
218
+ });
219
+ /**
220
+ * Exports a key's bytes.
221
+ *
222
+ * **Details**
223
+ *
224
+ * Returns a fresh `Uint8Array` that shares no memory with the key. A
225
+ * `CryptoKey`-backed key is exported on the `WebCrypto` reference, and fails
226
+ * with a `NotExtractable` reason when the `CryptoKey` is not extractable.
227
+ *
228
+ * @stability unstable
229
+ * @category converting
230
+ * @since 4.0.0
231
+ */
232
+ export const toBytes = key => KeyModel.toBytes("Cipher", key, KeyModel.exportRaw);
233
+ //# sourceMappingURL=Cipher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Cipher.js","names":[],"sources":["../../src/crypto/Cipher.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,212 @@
1
+ declare const TypeId: "~effect/crypto/CryptoError";
2
+ declare const ReasonTypeId: "~effect/crypto/CryptoError/Reason";
3
+ declare const InvalidArgument_base: new <A extends Record<string, any> = {}>(args: import("../Types.ts").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("../Cause.ts").YieldableError & {
4
+ readonly _tag: "InvalidArgument";
5
+ } & Readonly<A>;
6
+ /**
7
+ * Reason for an argument that the operation rejects before using the key or
8
+ * data, such as a wrong nonce length, an out-of-range iteration count, or
9
+ * `info` passed to a key derivation other than HKDF.
10
+ *
11
+ * @stability unstable
12
+ * @category errors
13
+ * @since 4.0.0
14
+ */
15
+ export declare class InvalidArgument extends InvalidArgument_base<{
16
+ readonly description: string;
17
+ readonly cause?: unknown;
18
+ }> {
19
+ /**
20
+ * Marks this value as a `CryptoError` reason for runtime guards.
21
+ *
22
+ * @since 4.0.0
23
+ */
24
+ readonly [ReasonTypeId]: "~effect/crypto/CryptoError/Reason";
25
+ get message(): string;
26
+ }
27
+ declare const InvalidKey_base: new <A extends Record<string, any> = {}>(args: import("../Types.ts").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("../Cause.ts").YieldableError & {
28
+ readonly _tag: "InvalidKey";
29
+ } & Readonly<A>;
30
+ /**
31
+ * Reason for key material that is rejected, such as a wrong raw key length,
32
+ * malformed DER, PEM, or JWK data, a `CryptoKey` that does not match the typed
33
+ * key, or a peer public key that produces an all-zero shared secret.
34
+ *
35
+ * @stability unstable
36
+ * @category errors
37
+ * @since 4.0.0
38
+ */
39
+ export declare class InvalidKey extends InvalidKey_base<{
40
+ readonly description: string;
41
+ readonly cause?: unknown;
42
+ }> {
43
+ /**
44
+ * Marks this value as a `CryptoError` reason for runtime guards.
45
+ *
46
+ * @since 4.0.0
47
+ */
48
+ readonly [ReasonTypeId]: "~effect/crypto/CryptoError/Reason";
49
+ get message(): string;
50
+ }
51
+ declare const DecryptionFailed_base: new <A extends Record<string, any> = {}>(args: import("../Types.ts").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("../Cause.ts").YieldableError & {
52
+ readonly _tag: "DecryptionFailed";
53
+ } & Readonly<A>;
54
+ /**
55
+ * Reason for a decryption or unwrap that failed its integrity check, or a CBC
56
+ * ciphertext with bad padding or length.
57
+ *
58
+ * **Details**
59
+ *
60
+ * The reason is identical for every cause and carries no `cause` or runtime
61
+ * message, so callers cannot tell a tampered tag from bad padding. Keeping
62
+ * either would create a padding oracle.
63
+ *
64
+ * @stability unstable
65
+ * @category errors
66
+ * @since 4.0.0
67
+ */
68
+ export declare class DecryptionFailed extends DecryptionFailed_base<{}> {
69
+ /**
70
+ * Marks this value as a `CryptoError` reason for runtime guards.
71
+ *
72
+ * @since 4.0.0
73
+ */
74
+ readonly [ReasonTypeId]: "~effect/crypto/CryptoError/Reason";
75
+ get message(): string;
76
+ }
77
+ declare const Unsupported_base: new <A extends Record<string, any> = {}>(args: import("../Types.ts").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("../Cause.ts").YieldableError & {
78
+ readonly _tag: "Unsupported";
79
+ } & Readonly<A>;
80
+ /**
81
+ * Reason for an algorithm or key that a layer does not provide, such as
82
+ * Argon2id under `Kdf.layerWebCrypto`, or a `CryptoKey`-backed key passed to a
83
+ * layer that cannot use it.
84
+ *
85
+ * @stability unstable
86
+ * @category errors
87
+ * @since 4.0.0
88
+ */
89
+ export declare class Unsupported extends Unsupported_base<{
90
+ readonly description: string;
91
+ readonly cause?: unknown;
92
+ }> {
93
+ /**
94
+ * Marks this value as a `CryptoError` reason for runtime guards.
95
+ *
96
+ * @since 4.0.0
97
+ */
98
+ readonly [ReasonTypeId]: "~effect/crypto/CryptoError/Reason";
99
+ get message(): string;
100
+ }
101
+ declare const NotExtractable_base: new <A extends Record<string, any> = {}>(args: import("../Types.ts").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("../Cause.ts").YieldableError & {
102
+ readonly _tag: "NotExtractable";
103
+ } & Readonly<A>;
104
+ /**
105
+ * Reason for exporting or wrapping a `CryptoKey` that was created as
106
+ * non-extractable.
107
+ *
108
+ * @stability unstable
109
+ * @category errors
110
+ * @since 4.0.0
111
+ */
112
+ export declare class NotExtractable extends NotExtractable_base<{
113
+ readonly description: string;
114
+ readonly cause?: unknown;
115
+ }> {
116
+ /**
117
+ * Marks this value as a `CryptoError` reason for runtime guards.
118
+ *
119
+ * @since 4.0.0
120
+ */
121
+ readonly [ReasonTypeId]: "~effect/crypto/CryptoError/Reason";
122
+ get message(): string;
123
+ }
124
+ /**
125
+ * Union of the reasons carried by `CryptoError`.
126
+ *
127
+ * @stability unstable
128
+ * @category errors
129
+ * @since 4.0.0
130
+ */
131
+ export type CryptoErrorReason = InvalidArgument | InvalidKey | DecryptionFailed | Unsupported | NotExtractable;
132
+ declare const CryptoError_base: new <A extends Record<string, any> = {}>(args: import("../Types.ts").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => import("../Cause.ts").YieldableError & {
133
+ readonly _tag: "CryptoError";
134
+ } & Readonly<A>;
135
+ /**
136
+ * Error returned by the `effect/crypto` modules.
137
+ *
138
+ * **When to use**
139
+ *
140
+ * Use to handle failures from any `effect/crypto` operation, matching on
141
+ * `reason` to separate caller mistakes from failed decryption.
142
+ *
143
+ * **Details**
144
+ *
145
+ * `module` and `method` name the operation, such as `"Aead"` and `"decrypt"`.
146
+ * The message reads `"Aead.decrypt: <reason message>"`. The error's `cause`
147
+ * is the reason's `cause`, when it has one.
148
+ *
149
+ * **Example** (Recovering from failed decryption)
150
+ *
151
+ * ```ts import.meta.vitest
152
+ * import { Effect } from "effect"
153
+ * import { CryptoError } from "effect/crypto"
154
+ *
155
+ * const decrypt = Effect.fail(
156
+ * new CryptoError.CryptoError({
157
+ * module: "Aead",
158
+ * method: "decrypt",
159
+ * reason: new CryptoError.DecryptionFailed()
160
+ * })
161
+ * )
162
+ *
163
+ * const program = decrypt.pipe(
164
+ * Effect.catchReason("CryptoError", "DecryptionFailed", () => Effect.succeed("rejected"))
165
+ * )
166
+ *
167
+ * await Effect.runPromise(program) // => "rejected"
168
+ * ```
169
+ *
170
+ * @see {@link isCryptoError} for narrowing unknown values
171
+ *
172
+ * @stability unstable
173
+ * @category errors
174
+ * @since 4.0.0
175
+ */
176
+ export declare class CryptoError extends CryptoError_base<{
177
+ readonly module: string;
178
+ readonly method: string;
179
+ readonly reason: CryptoErrorReason;
180
+ }> {
181
+ /**
182
+ * Marks this value as a `CryptoError` for runtime guards.
183
+ *
184
+ * @since 4.0.0
185
+ */
186
+ readonly [TypeId]: "~effect/crypto/CryptoError";
187
+ /**
188
+ * The reason's cause, when it has one.
189
+ *
190
+ * @since 4.0.0
191
+ */
192
+ readonly cause: unknown;
193
+ get message(): string;
194
+ }
195
+ /**
196
+ * Checks whether a value is a `CryptoError`.
197
+ *
198
+ * @stability unstable
199
+ * @category guards
200
+ * @since 4.0.0
201
+ */
202
+ export declare const isCryptoError: (u: unknown) => u is CryptoError;
203
+ /**
204
+ * Checks whether a value is one of the reasons carried by `CryptoError`.
205
+ *
206
+ * @stability unstable
207
+ * @category guards
208
+ * @since 4.0.0
209
+ */
210
+ export declare const isCryptoErrorReason: (u: unknown) => u is CryptoErrorReason;
211
+ export {};
212
+ //# sourceMappingURL=CryptoError.d.ts.map