effect 4.0.7 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (679) hide show
  1. package/README.md +1 -1
  2. package/dist/BigDecimal.d.ts.map +1 -1
  3. package/dist/BigDecimal.js +3 -0
  4. package/dist/BigDecimal.js.map +1 -1
  5. package/dist/Channel.d.ts +12 -6
  6. package/dist/Channel.d.ts.map +1 -1
  7. package/dist/Channel.js +9 -3
  8. package/dist/Channel.js.map +1 -1
  9. package/dist/Config.d.ts +7 -1
  10. package/dist/Config.d.ts.map +1 -1
  11. package/dist/Config.js.map +1 -1
  12. package/dist/Context.d.ts +18 -1
  13. package/dist/Context.d.ts.map +1 -1
  14. package/dist/Context.js +27 -8
  15. package/dist/Context.js.map +1 -1
  16. package/dist/Cron.d.ts +81 -11
  17. package/dist/Cron.d.ts.map +1 -1
  18. package/dist/Cron.js +101 -26
  19. package/dist/Cron.js.map +1 -1
  20. package/dist/Duration.d.ts +78 -0
  21. package/dist/Duration.d.ts.map +1 -1
  22. package/dist/Duration.js +123 -0
  23. package/dist/Duration.js.map +1 -1
  24. package/dist/Effect.d.ts +164 -7
  25. package/dist/Effect.d.ts.map +1 -1
  26. package/dist/Effect.js +11 -1
  27. package/dist/Effect.js.map +1 -1
  28. package/dist/FileSystem.d.ts +59 -4
  29. package/dist/FileSystem.d.ts.map +1 -1
  30. package/dist/FileSystem.js +9 -2
  31. package/dist/FileSystem.js.map +1 -1
  32. package/dist/Glob.d.ts +165 -0
  33. package/dist/Glob.d.ts.map +1 -0
  34. package/dist/Glob.js +127 -0
  35. package/dist/Glob.js.map +1 -0
  36. package/dist/Match.d.ts +86 -0
  37. package/dist/Match.d.ts.map +1 -1
  38. package/dist/Match.js +72 -0
  39. package/dist/Match.js.map +1 -1
  40. package/dist/Pool.d.ts +51 -0
  41. package/dist/Pool.d.ts.map +1 -1
  42. package/dist/Pool.js +59 -9
  43. package/dist/Pool.js.map +1 -1
  44. package/dist/Random.d.ts.map +1 -1
  45. package/dist/Random.js +3 -3
  46. package/dist/Random.js.map +1 -1
  47. package/dist/RcMap.d.ts.map +1 -1
  48. package/dist/RcMap.js +8 -2
  49. package/dist/RcMap.js.map +1 -1
  50. package/dist/Schedule.d.ts +18 -1
  51. package/dist/Schedule.d.ts.map +1 -1
  52. package/dist/Schedule.js +7 -2
  53. package/dist/Schedule.js.map +1 -1
  54. package/dist/Schema.d.ts +666 -41
  55. package/dist/Schema.d.ts.map +1 -1
  56. package/dist/Schema.js +650 -0
  57. package/dist/Schema.js.map +1 -1
  58. package/dist/SchemaGetter.d.ts +6 -1
  59. package/dist/SchemaGetter.d.ts.map +1 -1
  60. package/dist/SchemaGetter.js +22 -11
  61. package/dist/SchemaGetter.js.map +1 -1
  62. package/dist/SchemaRepresentation.d.ts +14 -0
  63. package/dist/SchemaRepresentation.d.ts.map +1 -1
  64. package/dist/SchemaRepresentation.js +16 -0
  65. package/dist/SchemaRepresentation.js.map +1 -1
  66. package/dist/SchemaTransformation.d.ts +8 -3
  67. package/dist/SchemaTransformation.d.ts.map +1 -1
  68. package/dist/SchemaTransformation.js +6 -3
  69. package/dist/SchemaTransformation.js.map +1 -1
  70. package/dist/ScopedCache.d.ts.map +1 -1
  71. package/dist/ScopedCache.js +5 -7
  72. package/dist/ScopedCache.js.map +1 -1
  73. package/dist/Semaphore.d.ts +130 -0
  74. package/dist/Semaphore.d.ts.map +1 -1
  75. package/dist/Semaphore.js +40 -0
  76. package/dist/Semaphore.js.map +1 -1
  77. package/dist/Stream.d.ts +13 -4
  78. package/dist/Stream.d.ts.map +1 -1
  79. package/dist/Stream.js +9 -0
  80. package/dist/Stream.js.map +1 -1
  81. package/dist/Terminal.d.ts +18 -1
  82. package/dist/Terminal.d.ts.map +1 -1
  83. package/dist/Terminal.js +1 -1
  84. package/dist/Terminal.js.map +1 -1
  85. package/dist/ai/AiError.d.ts +43 -116
  86. package/dist/ai/AiError.d.ts.map +1 -1
  87. package/dist/ai/AiError.js +53 -72
  88. package/dist/ai/AiError.js.map +1 -1
  89. package/dist/ai/Decision.d.ts +196 -15
  90. package/dist/ai/Decision.d.ts.map +1 -1
  91. package/dist/ai/Decision.js +130 -0
  92. package/dist/ai/Decision.js.map +1 -1
  93. package/dist/ai/DecisionModel.d.ts +54 -13
  94. package/dist/ai/DecisionModel.d.ts.map +1 -1
  95. package/dist/ai/DecisionModel.js +123 -12
  96. package/dist/ai/DecisionModel.js.map +1 -1
  97. package/dist/ai/McpServer.d.ts +630 -29
  98. package/dist/ai/McpServer.d.ts.map +1 -1
  99. package/dist/ai/McpServer.js +562 -116
  100. package/dist/ai/McpServer.js.map +1 -1
  101. package/dist/ai/McpTest.d.ts +130 -0
  102. package/dist/ai/McpTest.d.ts.map +1 -0
  103. package/dist/ai/McpTest.js +237 -0
  104. package/dist/ai/McpTest.js.map +1 -0
  105. package/dist/ai/Response.d.ts +1 -25
  106. package/dist/ai/Response.d.ts.map +1 -1
  107. package/dist/ai/Response.js +1 -10
  108. package/dist/ai/Response.js.map +1 -1
  109. package/dist/ai/Tool.d.ts +19 -1
  110. package/dist/ai/Tool.d.ts.map +1 -1
  111. package/dist/ai/Tool.js.map +1 -1
  112. package/dist/ai/index.d.ts +5 -0
  113. package/dist/ai/index.d.ts.map +1 -1
  114. package/dist/ai/index.js +5 -0
  115. package/dist/ai/index.js.map +1 -1
  116. package/dist/ai/internal/mcpCore.js +17 -12
  117. package/dist/ai/internal/mcpCore.js.map +1 -1
  118. package/dist/ai/internal/mcpProtocol/v2024_11_05.js +4 -5
  119. package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
  120. package/dist/ai/internal/mcpProtocol/v2025_03_26.js +4 -5
  121. package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
  122. package/dist/ai/internal/mcpProtocol/v2025_06_18.js +4 -5
  123. package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
  124. package/dist/ai/internal/mcpProtocol/v2025_11_25.js +4 -5
  125. package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
  126. package/dist/ai/internal/mcpProtocol/v2026_07_28.js +18 -10
  127. package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
  128. package/dist/ai/internal/mcpProtocol.js +13 -0
  129. package/dist/ai/internal/mcpProtocol.js.map +1 -1
  130. package/dist/ai/internal/mcpRuntime.js +5 -3
  131. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  132. package/dist/ai/internal/mcpStatefulRuntime.js +6 -1
  133. package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
  134. package/dist/cli/Argument.d.ts +6 -0
  135. package/dist/cli/Argument.d.ts.map +1 -1
  136. package/dist/cli/Argument.js +2 -0
  137. package/dist/cli/Argument.js.map +1 -1
  138. package/dist/cli/CliOutput.d.ts +65 -1
  139. package/dist/cli/CliOutput.d.ts.map +1 -1
  140. package/dist/cli/CliOutput.js +94 -37
  141. package/dist/cli/CliOutput.js.map +1 -1
  142. package/dist/cli/Command.d.ts +23 -0
  143. package/dist/cli/Command.d.ts.map +1 -1
  144. package/dist/cli/Command.js +8 -0
  145. package/dist/cli/Command.js.map +1 -1
  146. package/dist/cli/Flag.d.ts +107 -0
  147. package/dist/cli/Flag.d.ts.map +1 -1
  148. package/dist/cli/Flag.js +37 -0
  149. package/dist/cli/Flag.js.map +1 -1
  150. package/dist/cli/HelpDoc.d.ts +15 -1
  151. package/dist/cli/HelpDoc.d.ts.map +1 -1
  152. package/dist/cli/Param.d.ts +6 -0
  153. package/dist/cli/Param.d.ts.map +1 -1
  154. package/dist/cli/Param.js +2 -0
  155. package/dist/cli/Param.js.map +1 -1
  156. package/dist/cli/Primitive.d.ts +14 -0
  157. package/dist/cli/Primitive.d.ts.map +1 -1
  158. package/dist/cli/Primitive.js +15 -1
  159. package/dist/cli/Primitive.js.map +1 -1
  160. package/dist/cli/Prompt.d.ts +1 -0
  161. package/dist/cli/Prompt.d.ts.map +1 -1
  162. package/dist/cli/Prompt.js +1 -0
  163. package/dist/cli/Prompt.js.map +1 -1
  164. package/dist/cli/internal/help.d.ts.map +1 -1
  165. package/dist/cli/internal/help.js +17 -10
  166. package/dist/cli/internal/help.js.map +1 -1
  167. package/dist/cluster/Sharding.d.ts.map +1 -1
  168. package/dist/cluster/Sharding.js +90 -28
  169. package/dist/cluster/Sharding.js.map +1 -1
  170. package/dist/cluster/ShardingConfig.d.ts +72 -6
  171. package/dist/cluster/ShardingConfig.d.ts.map +1 -1
  172. package/dist/cluster/ShardingConfig.js +4 -0
  173. package/dist/cluster/ShardingConfig.js.map +1 -1
  174. package/dist/cluster/SingleRunner.d.ts +3 -3
  175. package/dist/cluster/SingleRunner.d.ts.map +1 -1
  176. package/dist/cluster/SingleRunner.js +1 -1
  177. package/dist/cluster/SqlMessageStorage.d.ts +37 -6
  178. package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
  179. package/dist/cluster/SqlMessageStorage.js +34 -7
  180. package/dist/cluster/SqlMessageStorage.js.map +1 -1
  181. package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
  182. package/dist/cluster/SqlRunnerStorage.js +23 -8
  183. package/dist/cluster/SqlRunnerStorage.js.map +1 -1
  184. package/dist/crypto/Aead.d.ts +322 -0
  185. package/dist/crypto/Aead.d.ts.map +1 -0
  186. package/dist/crypto/Aead.js +331 -0
  187. package/dist/crypto/Aead.js.map +1 -0
  188. package/dist/crypto/Cipher.d.ts +235 -0
  189. package/dist/crypto/Cipher.d.ts.map +1 -0
  190. package/dist/crypto/Cipher.js +233 -0
  191. package/dist/crypto/Cipher.js.map +1 -0
  192. package/dist/crypto/CryptoError.d.ts +212 -0
  193. package/dist/crypto/CryptoError.d.ts.map +1 -0
  194. package/dist/crypto/CryptoError.js +202 -0
  195. package/dist/crypto/CryptoError.js.map +1 -0
  196. package/dist/crypto/Digest.d.ts +143 -0
  197. package/dist/crypto/Digest.d.ts.map +1 -0
  198. package/dist/crypto/Digest.js +146 -0
  199. package/dist/crypto/Digest.js.map +1 -0
  200. package/dist/crypto/Kdf.d.ts +220 -0
  201. package/dist/crypto/Kdf.d.ts.map +1 -0
  202. package/dist/crypto/Kdf.js +212 -0
  203. package/dist/crypto/Kdf.js.map +1 -0
  204. package/dist/crypto/KeyAgreement.d.ts +323 -0
  205. package/dist/crypto/KeyAgreement.d.ts.map +1 -0
  206. package/dist/crypto/KeyAgreement.js +303 -0
  207. package/dist/crypto/KeyAgreement.js.map +1 -0
  208. package/dist/crypto/KeyFormat.d.ts +309 -0
  209. package/dist/crypto/KeyFormat.d.ts.map +1 -0
  210. package/dist/crypto/KeyFormat.js +556 -0
  211. package/dist/crypto/KeyFormat.js.map +1 -0
  212. package/dist/crypto/KeyWrap.d.ts +389 -0
  213. package/dist/crypto/KeyWrap.d.ts.map +1 -0
  214. package/dist/crypto/KeyWrap.js +381 -0
  215. package/dist/crypto/KeyWrap.js.map +1 -0
  216. package/dist/crypto/Mac.d.ts +277 -0
  217. package/dist/crypto/Mac.d.ts.map +1 -0
  218. package/dist/crypto/Mac.js +288 -0
  219. package/dist/crypto/Mac.js.map +1 -0
  220. package/dist/crypto/SecureRandom.d.ts +340 -0
  221. package/dist/crypto/SecureRandom.d.ts.map +1 -0
  222. package/dist/crypto/SecureRandom.js +257 -0
  223. package/dist/crypto/SecureRandom.js.map +1 -0
  224. package/dist/crypto/Signature.d.ts +448 -0
  225. package/dist/crypto/Signature.d.ts.map +1 -0
  226. package/dist/crypto/Signature.js +484 -0
  227. package/dist/crypto/Signature.js.map +1 -0
  228. package/dist/crypto/WebCrypto.d.ts +61 -0
  229. package/dist/crypto/WebCrypto.d.ts.map +1 -0
  230. package/dist/crypto/WebCrypto.js +63 -0
  231. package/dist/crypto/WebCrypto.js.map +1 -0
  232. package/dist/crypto/index.d.ts +65 -0
  233. package/dist/crypto/index.d.ts.map +1 -0
  234. package/dist/crypto/index.js +66 -0
  235. package/dist/crypto/index.js.map +1 -0
  236. package/dist/crypto/internal/asymmetric.d.ts +2 -0
  237. package/dist/crypto/internal/asymmetric.d.ts.map +1 -0
  238. package/dist/crypto/internal/asymmetric.js +210 -0
  239. package/dist/crypto/internal/asymmetric.js.map +1 -0
  240. package/dist/crypto/internal/chacha.d.ts +46 -0
  241. package/dist/crypto/internal/chacha.d.ts.map +1 -0
  242. package/dist/crypto/internal/chacha.js +885 -0
  243. package/dist/crypto/internal/chacha.js.map +1 -0
  244. package/dist/crypto/internal/der.d.ts +6 -0
  245. package/dist/crypto/internal/der.d.ts.map +1 -0
  246. package/dist/crypto/internal/der.js +86 -0
  247. package/dist/crypto/internal/der.js.map +1 -0
  248. package/dist/crypto/internal/digest.d.ts +2 -0
  249. package/dist/crypto/internal/digest.d.ts.map +1 -0
  250. package/dist/crypto/internal/digest.js +15 -0
  251. package/dist/crypto/internal/digest.js.map +1 -0
  252. package/dist/crypto/internal/key.d.ts +2 -0
  253. package/dist/crypto/internal/key.d.ts.map +1 -0
  254. package/dist/crypto/internal/key.js +170 -0
  255. package/dist/crypto/internal/key.js.map +1 -0
  256. package/dist/crypto/internal/md5.d.ts +39 -0
  257. package/dist/crypto/internal/md5.d.ts.map +1 -0
  258. package/dist/crypto/internal/md5.js +179 -0
  259. package/dist/crypto/internal/md5.js.map +1 -0
  260. package/dist/crypto/internal/webCrypto.d.ts +2 -0
  261. package/dist/crypto/internal/webCrypto.d.ts.map +1 -0
  262. package/dist/crypto/internal/webCrypto.js +111 -0
  263. package/dist/crypto/internal/webCrypto.js.map +1 -0
  264. package/dist/encoding/Base64Url.d.ts.map +1 -1
  265. package/dist/encoding/Base64Url.js +3 -2
  266. package/dist/encoding/Base64Url.js.map +1 -1
  267. package/dist/encoding/Csv.d.ts +608 -0
  268. package/dist/encoding/Csv.d.ts.map +1 -0
  269. package/dist/encoding/Csv.js +718 -0
  270. package/dist/encoding/Csv.js.map +1 -0
  271. package/dist/encoding/Hex.d.ts +3 -2
  272. package/dist/encoding/Hex.d.ts.map +1 -1
  273. package/dist/encoding/Hex.js +3 -2
  274. package/dist/encoding/Hex.js.map +1 -1
  275. package/dist/encoding/SchemaBinary.d.ts.map +1 -1
  276. package/dist/encoding/SchemaBinary.js +42 -4
  277. package/dist/encoding/SchemaBinary.js.map +1 -1
  278. package/dist/encoding/Toml.d.ts +17 -3
  279. package/dist/encoding/Toml.d.ts.map +1 -1
  280. package/dist/encoding/Toml.js +104 -16
  281. package/dist/encoding/Toml.js.map +1 -1
  282. package/dist/encoding/Yaml.d.ts +8 -1
  283. package/dist/encoding/Yaml.d.ts.map +1 -1
  284. package/dist/encoding/Yaml.js +54 -18
  285. package/dist/encoding/Yaml.js.map +1 -1
  286. package/dist/encoding/index.d.ts +5 -0
  287. package/dist/encoding/index.d.ts.map +1 -1
  288. package/dist/encoding/index.js +5 -0
  289. package/dist/encoding/index.js.map +1 -1
  290. package/dist/eventlog/EventJournal.d.ts.map +1 -1
  291. package/dist/eventlog/EventJournal.js +6 -3
  292. package/dist/eventlog/EventJournal.js.map +1 -1
  293. package/dist/eventlog/EventLog.d.ts +119 -4
  294. package/dist/eventlog/EventLog.d.ts.map +1 -1
  295. package/dist/eventlog/EventLog.js +200 -12
  296. package/dist/eventlog/EventLog.js.map +1 -1
  297. package/dist/eventlog/EventLogEncryption.d.ts +41 -4
  298. package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
  299. package/dist/eventlog/EventLogEncryption.js +83 -64
  300. package/dist/eventlog/EventLogEncryption.js.map +1 -1
  301. package/dist/eventlog/EventLogMessage.d.ts +279 -0
  302. package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
  303. package/dist/eventlog/EventLogMessage.js +217 -1
  304. package/dist/eventlog/EventLogMessage.js.map +1 -1
  305. package/dist/eventlog/EventLogRemote.d.ts +200 -28
  306. package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
  307. package/dist/eventlog/EventLogRemote.js +186 -16
  308. package/dist/eventlog/EventLogRemote.js.map +1 -1
  309. package/dist/eventlog/EventLogServer.d.ts +3 -0
  310. package/dist/eventlog/EventLogServer.d.ts.map +1 -1
  311. package/dist/eventlog/EventLogServer.js +18 -10
  312. package/dist/eventlog/EventLogServer.js.map +1 -1
  313. package/dist/eventlog/EventLogServerEncrypted.d.ts +326 -5
  314. package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  315. package/dist/eventlog/EventLogServerEncrypted.js +769 -14
  316. package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
  317. package/dist/eventlog/EventLogSessionAuth.d.ts +5 -3
  318. package/dist/eventlog/EventLogSessionAuth.d.ts.map +1 -1
  319. package/dist/eventlog/EventLogSessionAuth.js +41 -64
  320. package/dist/eventlog/EventLogSessionAuth.js.map +1 -1
  321. package/dist/eventlog/EventRow.d.ts +4 -0
  322. package/dist/eventlog/EventRow.d.ts.map +1 -1
  323. package/dist/eventlog/EventRow.js +12 -2
  324. package/dist/eventlog/EventRow.js.map +1 -1
  325. package/dist/eventlog/SqlEventJournal.js +2 -2
  326. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  327. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +21 -5
  328. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
  329. package/dist/eventlog/SqlEventLogServerEncrypted.js +1048 -113
  330. package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  331. package/dist/eventlog/SqlEventLogServerUnencrypted.js +2 -2
  332. package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  333. package/dist/eventlog/internal/batches.d.ts +12 -0
  334. package/dist/eventlog/internal/batches.d.ts.map +1 -0
  335. package/dist/eventlog/internal/batches.js +26 -0
  336. package/dist/eventlog/internal/batches.js.map +1 -0
  337. package/dist/eventlog/internal/compaction.d.ts +38 -0
  338. package/dist/eventlog/internal/compaction.d.ts.map +1 -0
  339. package/dist/eventlog/internal/compaction.js +33 -0
  340. package/dist/eventlog/internal/compaction.js.map +1 -0
  341. package/dist/eventlog/internal/identityRootSecretDerivation.js +66 -67
  342. package/dist/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
  343. package/dist/eventlog/internal/remoteCompaction.d.ts +31 -0
  344. package/dist/eventlog/internal/remoteCompaction.d.ts.map +1 -0
  345. package/dist/eventlog/internal/remoteCompaction.js +76 -0
  346. package/dist/eventlog/internal/remoteCompaction.js.map +1 -0
  347. package/dist/http/Cookies.d.ts +172 -0
  348. package/dist/http/Cookies.d.ts.map +1 -1
  349. package/dist/http/Cookies.js +143 -1
  350. package/dist/http/Cookies.js.map +1 -1
  351. package/dist/http/FetchHttpClient.d.ts +26 -2
  352. package/dist/http/FetchHttpClient.d.ts.map +1 -1
  353. package/dist/http/FetchHttpClient.js +78 -15
  354. package/dist/http/FetchHttpClient.js.map +1 -1
  355. package/dist/http/HttpClient.d.ts +79 -8
  356. package/dist/http/HttpClient.d.ts.map +1 -1
  357. package/dist/http/HttpClient.js +65 -5
  358. package/dist/http/HttpClient.js.map +1 -1
  359. package/dist/http/HttpClientRequest.d.ts +9 -5
  360. package/dist/http/HttpClientRequest.d.ts.map +1 -1
  361. package/dist/http/HttpClientRequest.js +2 -3
  362. package/dist/http/HttpClientRequest.js.map +1 -1
  363. package/dist/http/HttpClientResponse.d.ts.map +1 -1
  364. package/dist/http/HttpClientResponse.js +3 -2
  365. package/dist/http/HttpClientResponse.js.map +1 -1
  366. package/dist/http/HttpMethod.d.ts +7 -1
  367. package/dist/http/HttpMethod.d.ts.map +1 -1
  368. package/dist/http/HttpMethod.js +3 -8
  369. package/dist/http/HttpMethod.js.map +1 -1
  370. package/dist/http/HttpServerRequest.d.ts +5 -2
  371. package/dist/http/HttpServerRequest.d.ts.map +1 -1
  372. package/dist/http/HttpServerRequest.js +6 -17
  373. package/dist/http/HttpServerRequest.js.map +1 -1
  374. package/dist/http/HttpServerResponse.d.ts.map +1 -1
  375. package/dist/http/HttpServerResponse.js +3 -2
  376. package/dist/http/HttpServerResponse.js.map +1 -1
  377. package/dist/http/HttpTraceContext.d.ts +2 -1
  378. package/dist/http/HttpTraceContext.d.ts.map +1 -1
  379. package/dist/http/HttpTraceContext.js +7 -5
  380. package/dist/http/HttpTraceContext.js.map +1 -1
  381. package/dist/http/ProblemDetails.d.ts +96 -0
  382. package/dist/http/ProblemDetails.d.ts.map +1 -0
  383. package/dist/http/ProblemDetails.js +98 -0
  384. package/dist/http/ProblemDetails.js.map +1 -0
  385. package/dist/http/index.d.ts +5 -0
  386. package/dist/http/index.d.ts.map +1 -1
  387. package/dist/http/index.js +5 -0
  388. package/dist/http/index.js.map +1 -1
  389. package/dist/http/internal/decompression.js +3 -2
  390. package/dist/http/internal/decompression.js.map +1 -1
  391. package/dist/http/internal/urlParams.js +8 -0
  392. package/dist/http/internal/urlParams.js.map +1 -1
  393. package/dist/http-api/HttpApiBuilder.js +19 -5
  394. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  395. package/dist/http-api/HttpApiClient.d.ts +63 -0
  396. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  397. package/dist/http-api/HttpApiClient.js +51 -0
  398. package/dist/http-api/HttpApiClient.js.map +1 -1
  399. package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
  400. package/dist/http-api/HttpApiEndpoint.js +14 -5
  401. package/dist/http-api/HttpApiEndpoint.js.map +1 -1
  402. package/dist/http-api/HttpApiError.d.ts +185 -13
  403. package/dist/http-api/HttpApiError.d.ts.map +1 -1
  404. package/dist/http-api/HttpApiError.js +128 -0
  405. package/dist/http-api/HttpApiError.js.map +1 -1
  406. package/dist/http-api/HttpApiMiddleware.d.ts +64 -17
  407. package/dist/http-api/HttpApiMiddleware.d.ts.map +1 -1
  408. package/dist/http-api/HttpApiMiddleware.js +85 -1
  409. package/dist/http-api/HttpApiMiddleware.js.map +1 -1
  410. package/dist/http-api/HttpApiSchema.d.ts +76 -14
  411. package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
  412. package/dist/http-api/HttpApiSchema.js +53 -0
  413. package/dist/http-api/HttpApiSchema.js.map +1 -1
  414. package/dist/index.d.ts +5 -5
  415. package/dist/index.d.ts.map +1 -1
  416. package/dist/index.js +5 -5
  417. package/dist/index.js.map +1 -1
  418. package/dist/internal/effect.js +25 -14
  419. package/dist/internal/effect.js.map +1 -1
  420. package/dist/internal/glob.d.ts +2 -0
  421. package/dist/internal/glob.d.ts.map +1 -0
  422. package/dist/internal/glob.js +630 -0
  423. package/dist/internal/glob.js.map +1 -0
  424. package/dist/internal/matcher.js +10 -0
  425. package/dist/internal/matcher.js.map +1 -1
  426. package/dist/internal/persistence.js +9 -0
  427. package/dist/internal/persistence.js.map +1 -1
  428. package/dist/internal/rcRef.js +4 -1
  429. package/dist/internal/rcRef.js.map +1 -1
  430. package/dist/internal/schema/toCodeDocument.js +6 -3
  431. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  432. package/dist/internal/trie.js +42 -13
  433. package/dist/internal/trie.js.map +1 -1
  434. package/dist/internal/ulid.js +41 -0
  435. package/dist/internal/ulid.js.map +1 -1
  436. package/dist/internal/uuid.js +52 -8
  437. package/dist/internal/uuid.js.map +1 -1
  438. package/dist/internal/version.js +1 -1
  439. package/dist/observability/Otlp.d.ts +15 -4
  440. package/dist/observability/Otlp.d.ts.map +1 -1
  441. package/dist/observability/Otlp.js +10 -0
  442. package/dist/observability/Otlp.js.map +1 -1
  443. package/dist/observability/OtlpResource.d.ts +7 -0
  444. package/dist/observability/OtlpResource.d.ts.map +1 -1
  445. package/dist/observability/OtlpResource.js +11 -1
  446. package/dist/observability/OtlpResource.js.map +1 -1
  447. package/dist/persistence/KeyValueStore.d.ts +47 -2
  448. package/dist/persistence/KeyValueStore.d.ts.map +1 -1
  449. package/dist/persistence/KeyValueStore.js +129 -18
  450. package/dist/persistence/KeyValueStore.js.map +1 -1
  451. package/dist/persistence/PersistedQueue.d.ts +9 -0
  452. package/dist/persistence/PersistedQueue.d.ts.map +1 -1
  453. package/dist/persistence/PersistedQueue.js +94 -52
  454. package/dist/persistence/PersistedQueue.js.map +1 -1
  455. package/dist/persistence/Persistence.d.ts +10 -4
  456. package/dist/persistence/Persistence.d.ts.map +1 -1
  457. package/dist/persistence/Persistence.js +18 -11
  458. package/dist/persistence/Persistence.js.map +1 -1
  459. package/dist/process/ChildProcess.d.ts +207 -67
  460. package/dist/process/ChildProcess.d.ts.map +1 -1
  461. package/dist/process/ChildProcess.js +56 -158
  462. package/dist/process/ChildProcess.js.map +1 -1
  463. package/dist/process/ChildProcessSpawner.d.ts +5 -0
  464. package/dist/process/ChildProcessSpawner.d.ts.map +1 -1
  465. package/dist/process/ChildProcessSpawner.js.map +1 -1
  466. package/dist/process/CommandLine.d.ts +294 -0
  467. package/dist/process/CommandLine.d.ts.map +1 -0
  468. package/dist/process/CommandLine.js +481 -0
  469. package/dist/process/CommandLine.js.map +1 -0
  470. package/dist/process/index.d.ts +5 -0
  471. package/dist/process/index.d.ts.map +1 -1
  472. package/dist/process/index.js +5 -0
  473. package/dist/process/index.js.map +1 -1
  474. package/dist/reactivity/Atom.d.ts +2 -1
  475. package/dist/reactivity/Atom.d.ts.map +1 -1
  476. package/dist/reactivity/Atom.js +3 -4
  477. package/dist/reactivity/Atom.js.map +1 -1
  478. package/dist/reactivity/AtomRegistry.js.map +1 -1
  479. package/dist/rpc/RpcClient.d.ts +16 -1
  480. package/dist/rpc/RpcClient.d.ts.map +1 -1
  481. package/dist/rpc/RpcClient.js +50 -16
  482. package/dist/rpc/RpcClient.js.map +1 -1
  483. package/dist/rpc/RpcMessage.d.ts +10 -1
  484. package/dist/rpc/RpcMessage.d.ts.map +1 -1
  485. package/dist/rpc/RpcMessage.js +1 -0
  486. package/dist/rpc/RpcMessage.js.map +1 -1
  487. package/dist/rpc/RpcSerialization.d.ts.map +1 -1
  488. package/dist/rpc/RpcSerialization.js +6 -0
  489. package/dist/rpc/RpcSerialization.js.map +1 -1
  490. package/dist/rpc/RpcServer.d.ts +31 -0
  491. package/dist/rpc/RpcServer.d.ts.map +1 -1
  492. package/dist/rpc/RpcServer.js +139 -66
  493. package/dist/rpc/RpcServer.js.map +1 -1
  494. package/dist/schema/Model.d.ts +14 -0
  495. package/dist/schema/Model.d.ts.map +1 -1
  496. package/dist/schema/Model.js +18 -3
  497. package/dist/schema/Model.js.map +1 -1
  498. package/dist/sql/Migrator.d.ts +0 -19
  499. package/dist/sql/Migrator.d.ts.map +1 -1
  500. package/dist/sql/Migrator.js +3 -48
  501. package/dist/sql/Migrator.js.map +1 -1
  502. package/dist/sql/MigratorFileSystem.d.ts +21 -0
  503. package/dist/sql/MigratorFileSystem.d.ts.map +1 -0
  504. package/dist/sql/MigratorFileSystem.js +57 -0
  505. package/dist/sql/MigratorFileSystem.js.map +1 -0
  506. package/dist/sql/SqlClient.d.ts.map +1 -1
  507. package/dist/sql/SqlClient.js +5 -9
  508. package/dist/sql/SqlClient.js.map +1 -1
  509. package/dist/sql/Statement.d.ts +20 -6
  510. package/dist/sql/Statement.d.ts.map +1 -1
  511. package/dist/sql/Statement.js +0 -13
  512. package/dist/sql/Statement.js.map +1 -1
  513. package/dist/sql/index.js +1 -1
  514. package/dist/testing/index.d.ts +0 -5
  515. package/dist/testing/index.d.ts.map +1 -1
  516. package/dist/testing/index.js +0 -5
  517. package/dist/testing/index.js.map +1 -1
  518. package/dist/workflow/internal/crypto.js +9 -8
  519. package/dist/workflow/internal/crypto.js.map +1 -1
  520. package/package.json +3 -1
  521. package/src/BigDecimal.ts +3 -0
  522. package/src/Channel.ts +17 -11
  523. package/src/Config.ts +7 -1
  524. package/src/Context.ts +34 -10
  525. package/src/Cron.ts +178 -29
  526. package/src/Duration.ts +140 -0
  527. package/src/Effect.ts +914 -85
  528. package/src/FileSystem.ts +65 -4
  529. package/src/Glob.ts +205 -0
  530. package/src/Match.ts +127 -0
  531. package/src/Pool.ts +73 -15
  532. package/src/Random.ts +3 -3
  533. package/src/RcMap.ts +5 -1
  534. package/src/Schedule.ts +26 -3
  535. package/src/Schema.ts +1189 -62
  536. package/src/SchemaGetter.ts +27 -11
  537. package/src/SchemaRepresentation.ts +19 -0
  538. package/src/SchemaTransformation.ts +8 -3
  539. package/src/ScopedCache.ts +5 -9
  540. package/src/Semaphore.ts +141 -0
  541. package/src/Stream.ts +15 -6
  542. package/src/Terminal.ts +19 -1
  543. package/src/ai/AiError.ts +56 -80
  544. package/src/ai/Decision.ts +257 -6
  545. package/src/ai/DecisionModel.ts +171 -28
  546. package/src/ai/McpServer.ts +1269 -286
  547. package/src/ai/McpTest.ts +380 -0
  548. package/src/ai/Response.ts +2 -22
  549. package/src/ai/Tool.ts +27 -8
  550. package/src/ai/index.ts +6 -0
  551. package/src/ai/internal/mcpCore.ts +78 -44
  552. package/src/ai/internal/mcpProtocol/v2024_11_05.ts +4 -7
  553. package/src/ai/internal/mcpProtocol/v2025_03_26.ts +4 -7
  554. package/src/ai/internal/mcpProtocol/v2025_06_18.ts +4 -7
  555. package/src/ai/internal/mcpProtocol/v2025_11_25.ts +4 -7
  556. package/src/ai/internal/mcpProtocol/v2026_07_28.ts +15 -10
  557. package/src/ai/internal/mcpProtocol.ts +29 -0
  558. package/src/ai/internal/mcpRuntime.ts +9 -5
  559. package/src/ai/internal/mcpStatefulRuntime.ts +14 -2
  560. package/src/cli/Argument.ts +6 -0
  561. package/src/cli/CliOutput.ts +117 -49
  562. package/src/cli/Command.ts +23 -0
  563. package/src/cli/Flag.ts +107 -0
  564. package/src/cli/HelpDoc.ts +18 -1
  565. package/src/cli/Param.ts +6 -0
  566. package/src/cli/Primitive.ts +16 -1
  567. package/src/cli/Prompt.ts +1 -0
  568. package/src/cli/internal/help.ts +21 -9
  569. package/src/cluster/Sharding.ts +93 -26
  570. package/src/cluster/ShardingConfig.ts +41 -3
  571. package/src/cluster/SingleRunner.ts +3 -3
  572. package/src/cluster/SqlMessageStorage.ts +49 -17
  573. package/src/cluster/SqlRunnerStorage.ts +37 -27
  574. package/src/crypto/Aead.ts +517 -0
  575. package/src/crypto/Cipher.ts +326 -0
  576. package/src/crypto/CryptoError.ts +242 -0
  577. package/src/crypto/Digest.ts +167 -0
  578. package/src/crypto/Kdf.ts +315 -0
  579. package/src/crypto/KeyAgreement.ts +489 -0
  580. package/src/crypto/KeyFormat.ts +712 -0
  581. package/src/crypto/KeyWrap.ts +639 -0
  582. package/src/crypto/Mac.ts +386 -0
  583. package/src/crypto/SecureRandom.ts +459 -0
  584. package/src/crypto/Signature.ts +673 -0
  585. package/src/crypto/WebCrypto.ts +64 -0
  586. package/src/crypto/index.ts +78 -0
  587. package/src/crypto/internal/asymmetric.ts +329 -0
  588. package/src/crypto/internal/chacha.ts +1088 -0
  589. package/src/crypto/internal/der.ts +110 -0
  590. package/src/crypto/internal/digest.ts +16 -0
  591. package/src/crypto/internal/key.ts +235 -0
  592. package/src/crypto/internal/md5.ts +170 -0
  593. package/src/crypto/internal/webCrypto.ts +150 -0
  594. package/src/encoding/Base64Url.ts +5 -2
  595. package/src/encoding/Csv.ts +1298 -0
  596. package/src/encoding/Hex.ts +3 -2
  597. package/src/encoding/SchemaBinary.ts +40 -4
  598. package/src/encoding/Toml.ts +85 -20
  599. package/src/encoding/Yaml.ts +61 -18
  600. package/src/encoding/index.ts +6 -0
  601. package/src/eventlog/EventJournal.ts +4 -3
  602. package/src/eventlog/EventLog.ts +340 -15
  603. package/src/eventlog/EventLogEncryption.ts +118 -110
  604. package/src/eventlog/EventLogMessage.ts +273 -1
  605. package/src/eventlog/EventLogRemote.ts +367 -23
  606. package/src/eventlog/EventLogServer.ts +23 -8
  607. package/src/eventlog/EventLogServerEncrypted.ts +1130 -67
  608. package/src/eventlog/EventLogSessionAuth.ts +56 -70
  609. package/src/eventlog/EventRow.ts +12 -3
  610. package/src/eventlog/SqlEventJournal.ts +2 -2
  611. package/src/eventlog/SqlEventLogServerEncrypted.ts +1244 -136
  612. package/src/eventlog/SqlEventLogServerUnencrypted.ts +2 -2
  613. package/src/eventlog/internal/batches.ts +30 -0
  614. package/src/eventlog/internal/compaction.ts +64 -0
  615. package/src/eventlog/internal/identityRootSecretDerivation.ts +93 -123
  616. package/src/eventlog/internal/remoteCompaction.ts +92 -0
  617. package/src/http/Cookies.ts +281 -1
  618. package/src/http/FetchHttpClient.ts +88 -16
  619. package/src/http/HttpClient.ts +89 -22
  620. package/src/http/HttpClientRequest.ts +12 -9
  621. package/src/http/HttpClientResponse.ts +3 -2
  622. package/src/http/HttpMethod.ts +10 -2
  623. package/src/http/HttpServerRequest.ts +15 -30
  624. package/src/http/HttpServerResponse.ts +3 -2
  625. package/src/http/HttpTraceContext.ts +7 -4
  626. package/src/http/ProblemDetails.ts +149 -0
  627. package/src/http/index.ts +6 -0
  628. package/src/http/internal/decompression.ts +4 -4
  629. package/src/http/internal/urlParams.ts +8 -0
  630. package/src/http-api/HttpApiBuilder.ts +24 -12
  631. package/src/http-api/HttpApiClient.ts +67 -1
  632. package/src/http-api/HttpApiEndpoint.ts +14 -5
  633. package/src/http-api/HttpApiError.ts +250 -0
  634. package/src/http-api/HttpApiMiddleware.ts +95 -1
  635. package/src/http-api/HttpApiSchema.ts +105 -14
  636. package/src/index.ts +6 -6
  637. package/src/internal/effect.ts +34 -18
  638. package/src/internal/glob.ts +736 -0
  639. package/src/internal/matcher.ts +17 -0
  640. package/src/internal/persistence.ts +11 -0
  641. package/src/internal/rcRef.ts +4 -1
  642. package/src/internal/schema/toCodeDocument.ts +7 -3
  643. package/src/internal/trie.ts +43 -14
  644. package/src/internal/ulid.ts +44 -0
  645. package/src/internal/uuid.ts +57 -16
  646. package/src/internal/version.ts +1 -1
  647. package/src/observability/Otlp.ts +21 -4
  648. package/src/observability/OtlpResource.ts +9 -1
  649. package/src/persistence/KeyValueStore.ts +219 -22
  650. package/src/persistence/PersistedQueue.ts +128 -59
  651. package/src/persistence/Persistence.ts +20 -13
  652. package/src/process/ChildProcess.ts +255 -260
  653. package/src/process/ChildProcessSpawner.ts +5 -0
  654. package/src/process/CommandLine.ts +630 -0
  655. package/src/process/index.ts +6 -0
  656. package/src/reactivity/Atom.ts +5 -5
  657. package/src/reactivity/AtomRegistry.ts +1 -1
  658. package/src/rpc/RpcClient.ts +62 -26
  659. package/src/rpc/RpcMessage.ts +10 -1
  660. package/src/rpc/RpcSerialization.ts +3 -0
  661. package/src/rpc/RpcServer.ts +176 -78
  662. package/src/schema/Model.ts +26 -3
  663. package/src/sql/Migrator.ts +4 -63
  664. package/src/sql/MigratorFileSystem.ts +71 -0
  665. package/src/sql/SqlClient.ts +2 -16
  666. package/src/sql/Statement.ts +8 -7
  667. package/src/sql/index.ts +1 -1
  668. package/src/testing/index.ts +0 -6
  669. package/src/workflow/internal/crypto.ts +15 -11
  670. package/dist/Crypto.d.ts +0 -244
  671. package/dist/Crypto.d.ts.map +0 -1
  672. package/dist/Crypto.js +0 -139
  673. package/dist/Crypto.js.map +0 -1
  674. package/dist/testing/TestCrypto.d.ts +0 -73
  675. package/dist/testing/TestCrypto.d.ts.map +0 -1
  676. package/dist/testing/TestCrypto.js +0 -87
  677. package/dist/testing/TestCrypto.js.map +0 -1
  678. package/src/Crypto.ts +0 -347
  679. package/src/testing/TestCrypto.ts +0 -94
package/dist/Schema.js CHANGED
@@ -17,6 +17,13 @@ import * as BigDecimal_ from "./BigDecimal.js";
17
17
  import * as ByteSize_ from "./ByteSize.js";
18
18
  import * as Cause_ from "./Cause.js";
19
19
  import * as Chunk_ from "./Chunk.js";
20
+ import * as Aead_ from "./crypto/Aead.js";
21
+ import * as Cipher_ from "./crypto/Cipher.js";
22
+ import * as KeyAgreement_ from "./crypto/KeyAgreement.js";
23
+ import * as KeyFormat_ from "./crypto/KeyFormat.js";
24
+ import * as KeyWrap_ from "./crypto/KeyWrap.js";
25
+ import * as Mac_ from "./crypto/Mac.js";
26
+ import * as Signature_ from "./crypto/Signature.js";
20
27
  import * as Data from "./Data.js";
21
28
  import * as DateTime from "./DateTime.js";
22
29
  import * as Duration_ from "./Duration.js";
@@ -3789,6 +3796,49 @@ export function isULID(annotations) {
3789
3796
  ...annotations
3790
3797
  });
3791
3798
  }
3799
+ // oxlint-disable-next-line no-control-regex
3800
+ const ASCII_REGEXP = /^[\x00-\x7F]*$/u;
3801
+ /**
3802
+ * Validates that a string contains only ASCII characters.
3803
+ *
3804
+ * **When to use**
3805
+ *
3806
+ * Use when a value must stay within the 7-bit ASCII range, for example
3807
+ * identifiers, protocol tokens, or data sent to systems that reject
3808
+ * non-ASCII input.
3809
+ *
3810
+ * **Details**
3811
+ *
3812
+ * This check accepts strings whose characters are all in the range `U+0000`
3813
+ * to `U+007F`, including control characters and the empty string.
3814
+ *
3815
+ * JSON Schema:
3816
+ *
3817
+ * This check corresponds to a `pattern` constraint in JSON Schema that matches
3818
+ * ASCII-only strings.
3819
+ *
3820
+ * Arbitrary:
3821
+ *
3822
+ * During arbitrary generation, this applies a `patterns`
3823
+ * constraint to ensure generated strings match the ASCII pattern.
3824
+ *
3825
+ * @stability unstable
3826
+ * @category validation
3827
+ * @since 4.0.6
3828
+ */
3829
+ export function isAscii(annotations) {
3830
+ return isPattern(ASCII_REGEXP, {
3831
+ expected: "an ASCII string",
3832
+ representation: {
3833
+ id: "effect/schema/isAscii",
3834
+ payload: null
3835
+ },
3836
+ toCode: () => ({
3837
+ runtime: "Schema.isAscii()"
3838
+ }),
3839
+ ...annotations
3840
+ });
3841
+ }
3792
3842
  /**
3793
3843
  * Validates that a string is valid Base64 encoded data.
3794
3844
  *
@@ -8382,6 +8432,20 @@ const durationFromMillis = /*#__PURE__*/SchemaTransformation.transform({
8382
8432
  decode: i => Duration_.millis(i),
8383
8433
  encode: a => Duration_.toMillis(a)
8384
8434
  });
8435
+ const durationFromIsoString = /*#__PURE__*/SchemaTransformation.transformEffect({
8436
+ decode: (s, options) => Option_.match(Duration_.fromIso(s), {
8437
+ onNone: () => Effect.fail(new SchemaIssue.InvalidValue({
8438
+ expected: "an ISO 8601 duration without years or months"
8439
+ }, s, options)),
8440
+ onSome: Effect.succeed
8441
+ }),
8442
+ encode: (a, options) => Option_.match(Duration_.formatIso(a), {
8443
+ onNone: () => Effect.fail(new SchemaIssue.InvalidValue({
8444
+ expected: "a finite Duration"
8445
+ }, a, options)),
8446
+ onSome: Effect.succeed
8447
+ })
8448
+ });
8385
8449
  /**
8386
8450
  * Schema for `Duration` values.
8387
8451
  *
@@ -8521,6 +8585,30 @@ export const DurationFromNanos = /*#__PURE__*/BigInt.pipe(/*#__PURE__*/decodeTo(
8521
8585
  * @since 3.10.0
8522
8586
  */
8523
8587
  export const DurationFromMillis = /*#__PURE__*/Number.pipe(/*#__PURE__*/decodeTo(Duration, durationFromMillis));
8588
+ /**
8589
+ * Schema that decodes an ISO 8601 duration string into a `Duration`.
8590
+ *
8591
+ * **Details**
8592
+ *
8593
+ * Decoding:
8594
+ * - A string accepted by `Duration.fromIso` is decoded as a `Duration`, such
8595
+ * as `"PT1H30M"`, `"P1W2D"`, or `"-PT0.5S"`. Years and months are rejected
8596
+ * because they have no fixed length.
8597
+ *
8598
+ * Encoding:
8599
+ * - A finite `Duration` is encoded with `Duration.formatIso`, using days,
8600
+ * hours, minutes, and seconds. Encoding fails for `Duration.infinity` and
8601
+ * `Duration.negativeInfinity`.
8602
+ *
8603
+ * @see {@link DurationFromString} for the `"5 seconds"` string format
8604
+ *
8605
+ * @stability stable
8606
+ * @category schemas
8607
+ * @since 4.1.0
8608
+ */
8609
+ export const DurationFromIsoString = /*#__PURE__*/String.annotate({
8610
+ expected: "an ISO 8601 duration string that will be decoded as a Duration"
8611
+ }).pipe(/*#__PURE__*/decodeTo(Duration, durationFromIsoString));
8524
8612
  /**
8525
8613
  * Schema for supported DNS record types such as `"A"` or `"SRV"`.
8526
8614
  *
@@ -8750,6 +8838,568 @@ export const DnsTxtRecord = /*#__PURE__*/dnsRecordOfType("TXT", {
8750
8838
  export const DnsRecord = /*#__PURE__*/Union([DnsARecord, DnsAaaaRecord, DnsCaaRecord, DnsCnameRecord, DnsMxRecord, DnsNaptrRecord, DnsNsRecord, DnsPtrRecord, DnsSoaRecord, DnsSrvRecord, DnsTlsaRecord, DnsTxtRecord]).annotate({
8751
8839
  identifier: "DnsRecord"
8752
8840
  });
8841
+ const cryptoAlgorithmEquals = (self, that) => self === that || self.name === that.name && self.hash?.name === that.hash?.name && self.saltLength === that.saltLength;
8842
+ const cryptoDigestCode = hash => `Digest.${hash.name.toLowerCase().replace("-", "")}`;
8843
+ const cryptoAlgorithmCode = (family, algorithm) => {
8844
+ if (algorithm.modulusLength === undefined || algorithm.hash === undefined || algorithm._tag === undefined) {
8845
+ const code = `${family}.${algorithm.name}`;
8846
+ return algorithm.hash === undefined ? code : `{ ...${code}, hash: ${cryptoDigestCode(algorithm.hash)} }`;
8847
+ }
8848
+ const factory = algorithm._tag.charAt(0).toLowerCase() + algorithm._tag.slice(1);
8849
+ const saltLength = algorithm.saltLength === undefined ? "" : `, saltLength: ${algorithm.saltLength}`;
8850
+ return `${family}.${factory}({ hash: ${cryptoDigestCode(algorithm.hash)}, modulusLength: ${algorithm.modulusLength}${saltLength} })`;
8851
+ };
8852
+ const cryptoAlgorithmPayload = algorithm => {
8853
+ const payload = {
8854
+ name: algorithm.name
8855
+ };
8856
+ if (algorithm.hash !== undefined) payload.hash = algorithm.hash.name;
8857
+ if (algorithm.modulusLength !== undefined) payload.modulusLength = algorithm.modulusLength;
8858
+ if (algorithm.saltLength !== undefined) payload.saltLength = algorithm.saltLength;
8859
+ return payload;
8860
+ };
8861
+ const declareCryptoKey = (name, family, type, is, algorithm) => {
8862
+ const code = cryptoAlgorithmCode(family, algorithm);
8863
+ const forbidden = SchemaGetter.forbidden(() => `Cannot serialize ${family}.${type} values as JSON, use Schema.${name}FromFormat to read and write keys`);
8864
+ return declare(u => is(u) && cryptoAlgorithmEquals(u.algorithm, algorithm), {
8865
+ expected: `${family}.${type} for ${algorithm.name}`,
8866
+ representation: {
8867
+ id: `effect/crypto/${name}`,
8868
+ payload: cryptoAlgorithmPayload(algorithm)
8869
+ },
8870
+ toCode: () => ({
8871
+ runtime: `Schema.${name}(${code})`,
8872
+ Type: `${family}.${type}`,
8873
+ importDeclarations: [`import * as ${family} from "effect/crypto/${family}"`, ...(code.includes("Digest.") ? [`import * as Digest from "effect/crypto/Digest"`] : [])]
8874
+ }),
8875
+ toCodecJson: () => link()(Unknown, {
8876
+ decode: forbidden,
8877
+ encode: forbidden
8878
+ }),
8879
+ // Keys have no Arbitrary: linking to `Never` makes derivation fail.
8880
+ toCodecArbitrary: () => link()(Never, {
8881
+ decode: forbidden,
8882
+ encode: forbidden
8883
+ }),
8884
+ toFormatter: () => key => globalThis.String(key),
8885
+ toEquivalence: () => (self, that) => self === that
8886
+ });
8887
+ };
8888
+ const cryptoIssue = (error, input, options) => new SchemaIssue.InvalidValue({
8889
+ message: error.message,
8890
+ cause: error
8891
+ }, input, options);
8892
+ const cryptoForbiddenEncode = (name, key, options) => Effect.fail(new SchemaIssue.Forbidden({
8893
+ message: `Schema.${name} only decodes, pass { allowEncode: true } to encode the key`
8894
+ }, key, options));
8895
+ const cryptoKeyFromBytes = (name, to, fromBytes, toBytes) => Uint8Array.pipe(decodeTo(to, SchemaTransformation.transformEffect({
8896
+ decode: (bytes, options) => Effect.mapError(fromBytes(bytes), error => cryptoIssue(error, bytes, options)),
8897
+ encode: (key, options) => toBytes === undefined ? cryptoForbiddenEncode(name, key, options) : Effect.mapError(toBytes(key), error => cryptoIssue(error, key, options))
8898
+ })));
8899
+ const CryptoJsonWebKeyMember = /*#__PURE__*/optionalKey(String);
8900
+ // The JWK members of RFC 7517 and RFC 7518 that `KeyFormat` reads and writes.
8901
+ // Other members are dropped.
8902
+ const CryptoJsonWebKey = /*#__PURE__*/Struct({
8903
+ kty: CryptoJsonWebKeyMember,
8904
+ crv: CryptoJsonWebKeyMember,
8905
+ alg: CryptoJsonWebKeyMember,
8906
+ use: CryptoJsonWebKeyMember,
8907
+ key_ops: /*#__PURE__*/optionalKey(/*#__PURE__*/ArraySchema(String)),
8908
+ ext: /*#__PURE__*/optionalKey(Boolean),
8909
+ k: CryptoJsonWebKeyMember,
8910
+ x: CryptoJsonWebKeyMember,
8911
+ y: CryptoJsonWebKeyMember,
8912
+ d: CryptoJsonWebKeyMember,
8913
+ n: CryptoJsonWebKeyMember,
8914
+ e: CryptoJsonWebKeyMember,
8915
+ p: CryptoJsonWebKeyMember,
8916
+ q: CryptoJsonWebKeyMember,
8917
+ dp: CryptoJsonWebKeyMember,
8918
+ dq: CryptoJsonWebKeyMember,
8919
+ qi: CryptoJsonWebKeyMember,
8920
+ oth: /*#__PURE__*/optionalKey(/*#__PURE__*/ArraySchema(/*#__PURE__*/Struct({
8921
+ r: CryptoJsonWebKeyMember,
8922
+ d: CryptoJsonWebKeyMember,
8923
+ t: CryptoJsonWebKeyMember
8924
+ })))
8925
+ });
8926
+ const cryptoFormatData = format => format._tag === "jwk" ? CryptoJsonWebKey : format.pem ? String : Uint8Array;
8927
+ const cryptoKeyFromFormat = (name, to, format, decode, canEncode) => {
8928
+ // PKCS#1 and SEC1 are read only.
8929
+ const writable = canEncode && format._tag !== "pkcs1" && format._tag !== "sec1";
8930
+ return cryptoFormatData(format).pipe(decodeTo(to, SchemaTransformation.transformEffect({
8931
+ decode: (data, options) =>
8932
+ // Secret JWK decoding is synchronous, but all format schemas are async-only.
8933
+ Effect.flatMap(Effect.promise(() => Promise.resolve()), () => Effect.mapError(decode(data), error => cryptoIssue(error, data, options))),
8934
+ encode: (key, options) => writable ? Effect.mapError(KeyFormat_.encode(format, key), error => cryptoIssue(error, key, options)) : cryptoForbiddenEncode(name, key, options)
8935
+ })));
8936
+ };
8937
+ /**
8938
+ * Schema for live `Mac.Key` values of an algorithm.
8939
+ *
8940
+ * **Details**
8941
+ *
8942
+ * Decoding checks the key's algorithm and returns the key itself. The key has
8943
+ * no JSON form: `toCodecJson` fails with a `Forbidden` issue, so use
8944
+ * {@link MacKeyFromFormat} or {@link MacKeyFromBytes} to read and write keys.
8945
+ * Keys display redacted, compare by reference, and have no `Arbitrary`.
8946
+ *
8947
+ * @stability unstable
8948
+ * @category crypto
8949
+ * @since 4.0.0
8950
+ */
8951
+ export const MacKey = algorithm => declareCryptoKey("MacKey", "Mac", "Key", Mac_.isKey, algorithm);
8952
+ /**
8953
+ * Schema that decodes raw key bytes into a `Mac.Key`.
8954
+ *
8955
+ * **Details**
8956
+ *
8957
+ * Decoding runs `Mac.key`, which is synchronous, so the schema works with
8958
+ * `Schema.decodeSync`. Under `Config.schema` the bytes are read as base64. A
8959
+ * `CryptoError` becomes an `InvalidValue` issue whose `cause` is the error.
8960
+ * Encoding fails with a `Forbidden` issue unless `allowEncode` is `true`.
8961
+ *
8962
+ * **Example** (Reading an HMAC key from the environment)
8963
+ *
8964
+ * ```ts import.meta.vitest
8965
+ * import { Config, ConfigProvider, Effect, Schema } from "effect"
8966
+ * import { Mac } from "effect/crypto"
8967
+ *
8968
+ * const config = Config.schema(Schema.MacKeyFromBytes(Mac.hmacSha256), "HMAC_KEY")
8969
+ * const provider = ConfigProvider.fromEnv({ env: { HMAC_KEY: "A".repeat(43) + "=" } })
8970
+ * const key = await Effect.runPromise(Effect.provide(config, ConfigProvider.layer(provider)))
8971
+ * key.algorithm.name // => "hmacSha256"
8972
+ * ```
8973
+ *
8974
+ * @stability unstable
8975
+ * @category crypto
8976
+ * @since 4.0.0
8977
+ */
8978
+ export const MacKeyFromBytes = (algorithm, options) => cryptoKeyFromBytes("MacKeyFromBytes", MacKey(algorithm), bytes => Mac_.key(algorithm, bytes), options?.allowEncode === true ? Mac_.toBytes : undefined);
8979
+ /**
8980
+ * Schema that decodes a `Mac.Key` from a JWK with `KeyFormat.decodeSecret`.
8981
+ *
8982
+ * **Details**
8983
+ *
8984
+ * Decoding returns an Effect, so use the async decoding functions:
8985
+ * `Schema.decodeSync` throws. A `CryptoError` becomes an `InvalidValue` issue
8986
+ * whose `cause` is the error. Encoding fails with a `Forbidden` issue unless
8987
+ * `allowEncode` is `true`.
8988
+ *
8989
+ * @stability unstable
8990
+ * @category crypto
8991
+ * @since 4.0.0
8992
+ */
8993
+ export const MacKeyFromFormat = (format, algorithm, options) => cryptoKeyFromFormat("MacKeyFromFormat", MacKey(algorithm), format, data => KeyFormat_.decodeSecret(format, algorithm, data), options?.allowEncode === true);
8994
+ /**
8995
+ * Schema for live `Aead.Key` values of an algorithm.
8996
+ *
8997
+ * **Details**
8998
+ *
8999
+ * Decoding checks the key's algorithm and returns the key itself. The key has
9000
+ * no JSON form: `toCodecJson` fails with a `Forbidden` issue, so use
9001
+ * {@link AeadKeyFromFormat} or {@link AeadKeyFromBytes} to read and write
9002
+ * keys. Keys display redacted, compare by reference, and have no `Arbitrary`.
9003
+ *
9004
+ * @stability unstable
9005
+ * @category crypto
9006
+ * @since 4.0.0
9007
+ */
9008
+ export const AeadKey = algorithm => declareCryptoKey("AeadKey", "Aead", "Key", Aead_.isKey, algorithm);
9009
+ /**
9010
+ * Schema that decodes raw key bytes into an `Aead.Key`.
9011
+ *
9012
+ * **Details**
9013
+ *
9014
+ * Decoding runs `Aead.key`, which is synchronous, so the schema works with
9015
+ * `Schema.decodeSync`. Under `Config.schema` the bytes are read as base64. A
9016
+ * `CryptoError` becomes an `InvalidValue` issue whose `cause` is the error.
9017
+ * Encoding fails with a `Forbidden` issue unless `allowEncode` is `true`.
9018
+ *
9019
+ * @stability unstable
9020
+ * @category crypto
9021
+ * @since 4.0.0
9022
+ */
9023
+ export const AeadKeyFromBytes = (algorithm, options) => cryptoKeyFromBytes("AeadKeyFromBytes", AeadKey(algorithm), bytes => Aead_.key(algorithm, bytes), options?.allowEncode === true ? Aead_.toBytes : undefined);
9024
+ /**
9025
+ * Schema that decodes an `Aead.Key` from a JWK with `KeyFormat.decodeSecret`.
9026
+ *
9027
+ * **Details**
9028
+ *
9029
+ * Decoding returns an Effect, so use the async decoding functions:
9030
+ * `Schema.decodeSync` throws. A `CryptoError` becomes an `InvalidValue` issue
9031
+ * whose `cause` is the error. Encoding fails with a `Forbidden` issue unless
9032
+ * `allowEncode` is `true`.
9033
+ *
9034
+ * @stability unstable
9035
+ * @category crypto
9036
+ * @since 4.0.0
9037
+ */
9038
+ export const AeadKeyFromFormat = (format, algorithm, options) => cryptoKeyFromFormat("AeadKeyFromFormat", AeadKey(algorithm), format, data => KeyFormat_.decodeSecret(format, algorithm, data), options?.allowEncode === true);
9039
+ /**
9040
+ * Schema for live `Cipher.Key` values of an algorithm.
9041
+ *
9042
+ * **Details**
9043
+ *
9044
+ * Decoding checks the key's algorithm and returns the key itself. The key has
9045
+ * no JSON form: `toCodecJson` fails with a `Forbidden` issue, so use
9046
+ * {@link CipherKeyFromFormat} or {@link CipherKeyFromBytes} to read and
9047
+ * write keys. Keys display redacted, compare by reference, and have no
9048
+ * `Arbitrary`.
9049
+ *
9050
+ * @stability unstable
9051
+ * @category crypto
9052
+ * @since 4.0.0
9053
+ */
9054
+ export const CipherKey = algorithm => declareCryptoKey("CipherKey", "Cipher", "Key", Cipher_.isKey, algorithm);
9055
+ /**
9056
+ * Schema that decodes raw key bytes into a `Cipher.Key`.
9057
+ *
9058
+ * **Details**
9059
+ *
9060
+ * Decoding runs `Cipher.key`, which is synchronous, so the schema works with
9061
+ * `Schema.decodeSync`. Under `Config.schema` the bytes are read as base64. A
9062
+ * `CryptoError` becomes an `InvalidValue` issue whose `cause` is the error.
9063
+ * Encoding fails with a `Forbidden` issue unless `allowEncode` is `true`.
9064
+ *
9065
+ * @stability unstable
9066
+ * @category crypto
9067
+ * @since 4.0.0
9068
+ */
9069
+ export const CipherKeyFromBytes = (algorithm, options) => cryptoKeyFromBytes("CipherKeyFromBytes", CipherKey(algorithm), bytes => Cipher_.key(algorithm, bytes), options?.allowEncode === true ? Cipher_.toBytes : undefined);
9070
+ /**
9071
+ * Schema that decodes a `Cipher.Key` from a JWK with
9072
+ * `KeyFormat.decodeSecret`.
9073
+ *
9074
+ * **Details**
9075
+ *
9076
+ * Decoding returns an Effect, so use the async decoding functions:
9077
+ * `Schema.decodeSync` throws. A `CryptoError` becomes an `InvalidValue` issue
9078
+ * whose `cause` is the error. Encoding fails with a `Forbidden` issue unless
9079
+ * `allowEncode` is `true`.
9080
+ *
9081
+ * @stability unstable
9082
+ * @category crypto
9083
+ * @since 4.0.0
9084
+ */
9085
+ export const CipherKeyFromFormat = (format, algorithm, options) => cryptoKeyFromFormat("CipherKeyFromFormat", CipherKey(algorithm), format, data => KeyFormat_.decodeSecret(format, algorithm, data), options?.allowEncode === true);
9086
+ /**
9087
+ * Schema for live `Signature.PublicKey` values of an algorithm.
9088
+ *
9089
+ * **Details**
9090
+ *
9091
+ * Decoding checks the key's algorithm and returns the key itself. The key has
9092
+ * no JSON form: `toCodecJson` fails with a `Forbidden` issue, so use
9093
+ * {@link SignaturePublicKeyFromFormat} or {@link SignaturePublicKeyFromBytes}
9094
+ * to read and write keys. Keys compare by reference and have no `Arbitrary`.
9095
+ *
9096
+ * @stability unstable
9097
+ * @category crypto
9098
+ * @since 4.0.0
9099
+ */
9100
+ export const SignaturePublicKey = algorithm => declareCryptoKey("SignaturePublicKey", "Signature", "PublicKey", Signature_.isPublicKey, algorithm);
9101
+ /**
9102
+ * Schema that decodes a raw public key into a `Signature.PublicKey`: 32 bytes
9103
+ * for Ed25519, or an uncompressed SEC1 point for ECDSA.
9104
+ *
9105
+ * **Details**
9106
+ *
9107
+ * Decoding runs `Signature.publicKey`, which is synchronous, so the schema
9108
+ * works with `Schema.decodeSync`. Under `Config.schema` the bytes are read as
9109
+ * base64. A `CryptoError` becomes an `InvalidValue` issue whose `cause` is
9110
+ * the error. RSA public keys have no raw form, so passing an RSA algorithm is
9111
+ * a type error.
9112
+ *
9113
+ * @stability unstable
9114
+ * @category crypto
9115
+ * @since 4.0.0
9116
+ */
9117
+ export const SignaturePublicKeyFromBytes = algorithm => cryptoKeyFromBytes("SignaturePublicKeyFromBytes", SignaturePublicKey(algorithm), bytes => Signature_.publicKey(algorithm, bytes), Signature_.toBytes);
9118
+ /**
9119
+ * Schema that decodes a `Signature.PublicKey` with
9120
+ * `KeyFormat.decodePublic` and encodes it with `KeyFormat.encode`.
9121
+ *
9122
+ * **Details**
9123
+ *
9124
+ * The format must hold public keys: `KeyFormat.spki`, `KeyFormat.jwk`, or
9125
+ * `KeyFormat.pem(KeyFormat.spki)`. A format for another role is a type
9126
+ * error. Decoding runs the runtime's key import, so use the async decoding
9127
+ * functions: `Schema.decodeSync` throws. A `CryptoError` becomes an
9128
+ * `InvalidValue` issue whose `cause` is the error.
9129
+ *
9130
+ * @stability unstable
9131
+ * @category crypto
9132
+ * @since 4.0.0
9133
+ */
9134
+ export const SignaturePublicKeyFromFormat = (format, algorithm) => cryptoKeyFromFormat("SignaturePublicKeyFromFormat", SignaturePublicKey(algorithm), format, data => KeyFormat_.decodePublic(format, algorithm, data), true);
9135
+ /**
9136
+ * Schema for live `Signature.PrivateKey` values of an algorithm.
9137
+ *
9138
+ * **Details**
9139
+ *
9140
+ * Decoding checks the key's algorithm and returns the key itself. The key has
9141
+ * no JSON form: `toCodecJson` fails with a `Forbidden` issue, so use
9142
+ * {@link SignaturePrivateKeyFromFormat} or
9143
+ * {@link SignaturePrivateKeyFromBytes} to read and write keys. Keys display
9144
+ * redacted, compare by reference, and have no `Arbitrary`.
9145
+ *
9146
+ * @stability unstable
9147
+ * @category crypto
9148
+ * @since 4.0.0
9149
+ */
9150
+ export const SignaturePrivateKey = algorithm => declareCryptoKey("SignaturePrivateKey", "Signature", "PrivateKey", Signature_.isPrivateKey, algorithm);
9151
+ /**
9152
+ * Schema that decodes an Ed25519 seed into a `Signature.PrivateKey`.
9153
+ *
9154
+ * **Details**
9155
+ *
9156
+ * Decoding runs `Signature.privateKey`, which is synchronous, so the schema
9157
+ * works with `Schema.decodeSync`. Under `Config.schema` the bytes are read as
9158
+ * base64. A `CryptoError` becomes an `InvalidValue` issue whose `cause` is
9159
+ * the error. ECDSA and RSA private keys have no raw form, so passing them is
9160
+ * a type error. Encoding fails with a `Forbidden` issue unless `allowEncode`
9161
+ * is `true`.
9162
+ *
9163
+ * @stability unstable
9164
+ * @category crypto
9165
+ * @since 4.0.0
9166
+ */
9167
+ export const SignaturePrivateKeyFromBytes = (algorithm, options) => cryptoKeyFromBytes("SignaturePrivateKeyFromBytes", SignaturePrivateKey(algorithm), bytes => Signature_.privateKey(algorithm, bytes), options?.allowEncode === true ? Signature_.toBytes : undefined);
9168
+ /**
9169
+ * Schema that decodes a `Signature.PrivateKey` with
9170
+ * `KeyFormat.decodePrivate`.
9171
+ *
9172
+ * **Details**
9173
+ *
9174
+ * The format must hold private keys: `KeyFormat.pkcs8`, `KeyFormat.jwk`,
9175
+ * `KeyFormat.pkcs1`, `KeyFormat.sec1`, or their PEM forms. A format for
9176
+ * another role is a type error. Decoding runs the runtime's key import, so
9177
+ * use the async decoding functions: `Schema.decodeSync` throws. A
9178
+ * `CryptoError` becomes an `InvalidValue` issue whose `cause` is the error.
9179
+ * Encoding fails with a `Forbidden` issue unless `allowEncode` is `true`,
9180
+ * and always for the read-only PKCS#1 and SEC1 formats.
9181
+ *
9182
+ * @stability unstable
9183
+ * @category crypto
9184
+ * @since 4.0.0
9185
+ */
9186
+ export const SignaturePrivateKeyFromFormat = (format, algorithm, options) => cryptoKeyFromFormat("SignaturePrivateKeyFromFormat", SignaturePrivateKey(algorithm), format, data => KeyFormat_.decodePrivate(format, algorithm, data), options?.allowEncode === true);
9187
+ /**
9188
+ * Schema for live `KeyAgreement.PublicKey` values of an algorithm.
9189
+ *
9190
+ * **Details**
9191
+ *
9192
+ * Decoding checks the key's algorithm and returns the key itself. The key has
9193
+ * no JSON form: `toCodecJson` fails with a `Forbidden` issue, so use
9194
+ * {@link KeyAgreementPublicKeyFromFormat} or
9195
+ * {@link KeyAgreementPublicKeyFromBytes} to read and write keys. Keys compare
9196
+ * by reference and have no `Arbitrary`.
9197
+ *
9198
+ * @stability unstable
9199
+ * @category crypto
9200
+ * @since 4.0.0
9201
+ */
9202
+ export const KeyAgreementPublicKey = algorithm => declareCryptoKey("KeyAgreementPublicKey", "KeyAgreement", "PublicKey", KeyAgreement_.isPublicKey, algorithm);
9203
+ /**
9204
+ * Schema that decodes a raw public key into a `KeyAgreement.PublicKey`: 32
9205
+ * bytes for X25519, or an uncompressed SEC1 point for ECDH.
9206
+ *
9207
+ * **Details**
9208
+ *
9209
+ * Decoding runs `KeyAgreement.publicKey`, which is synchronous, so the schema
9210
+ * works with `Schema.decodeSync`. Under `Config.schema` the bytes are read as
9211
+ * base64. A `CryptoError` becomes an `InvalidValue` issue whose `cause` is
9212
+ * the error.
9213
+ *
9214
+ * @stability unstable
9215
+ * @category crypto
9216
+ * @since 4.0.0
9217
+ */
9218
+ export const KeyAgreementPublicKeyFromBytes = algorithm => cryptoKeyFromBytes("KeyAgreementPublicKeyFromBytes", KeyAgreementPublicKey(algorithm), bytes => KeyAgreement_.publicKey(algorithm, bytes), KeyAgreement_.toBytes);
9219
+ /**
9220
+ * Schema that decodes a `KeyAgreement.PublicKey` with
9221
+ * `KeyFormat.decodePublic` and encodes it with `KeyFormat.encode`.
9222
+ *
9223
+ * **Details**
9224
+ *
9225
+ * The format must hold public keys: `KeyFormat.spki`, `KeyFormat.jwk`, or
9226
+ * `KeyFormat.pem(KeyFormat.spki)`. A format for another role is a type
9227
+ * error. Decoding runs the runtime's key import, so use the async decoding
9228
+ * functions: `Schema.decodeSync` throws. A `CryptoError` becomes an
9229
+ * `InvalidValue` issue whose `cause` is the error.
9230
+ *
9231
+ * @stability unstable
9232
+ * @category crypto
9233
+ * @since 4.0.0
9234
+ */
9235
+ export const KeyAgreementPublicKeyFromFormat = (format, algorithm) => cryptoKeyFromFormat("KeyAgreementPublicKeyFromFormat", KeyAgreementPublicKey(algorithm), format, data => KeyFormat_.decodePublic(format, algorithm, data), true);
9236
+ /**
9237
+ * Schema for live `KeyAgreement.PrivateKey` values of an algorithm.
9238
+ *
9239
+ * **Details**
9240
+ *
9241
+ * Decoding checks the key's algorithm and returns the key itself. The key has
9242
+ * no JSON form: `toCodecJson` fails with a `Forbidden` issue, so use
9243
+ * {@link KeyAgreementPrivateKeyFromFormat} or
9244
+ * {@link KeyAgreementPrivateKeyFromBytes} to read and write keys. Keys
9245
+ * display redacted, compare by reference, and have no `Arbitrary`.
9246
+ *
9247
+ * @stability unstable
9248
+ * @category crypto
9249
+ * @since 4.0.0
9250
+ */
9251
+ export const KeyAgreementPrivateKey = algorithm => declareCryptoKey("KeyAgreementPrivateKey", "KeyAgreement", "PrivateKey", KeyAgreement_.isPrivateKey, algorithm);
9252
+ /**
9253
+ * Schema that decodes an X25519 private key into a
9254
+ * `KeyAgreement.PrivateKey`.
9255
+ *
9256
+ * **Details**
9257
+ *
9258
+ * Decoding runs `KeyAgreement.privateKey`, which is synchronous, so the
9259
+ * schema works with `Schema.decodeSync`. Under `Config.schema` the bytes are
9260
+ * read as base64. A `CryptoError` becomes an `InvalidValue` issue whose
9261
+ * `cause` is the error. ECDH private keys have no raw form, so passing them
9262
+ * is a type error. Encoding fails with a `Forbidden` issue unless
9263
+ * `allowEncode` is `true`.
9264
+ *
9265
+ * @stability unstable
9266
+ * @category crypto
9267
+ * @since 4.0.0
9268
+ */
9269
+ export const KeyAgreementPrivateKeyFromBytes = (algorithm, options) => cryptoKeyFromBytes("KeyAgreementPrivateKeyFromBytes", KeyAgreementPrivateKey(algorithm), bytes => KeyAgreement_.privateKey(algorithm, bytes), options?.allowEncode === true ? KeyAgreement_.toBytes : undefined);
9270
+ /**
9271
+ * Schema that decodes a `KeyAgreement.PrivateKey` with
9272
+ * `KeyFormat.decodePrivate`.
9273
+ *
9274
+ * **Details**
9275
+ *
9276
+ * The format must hold private keys: `KeyFormat.pkcs8`, `KeyFormat.jwk`,
9277
+ * `KeyFormat.sec1`, or their PEM forms. A format for another role is a type
9278
+ * error. Decoding runs the runtime's key import, so use the async decoding
9279
+ * functions: `Schema.decodeSync` throws. A `CryptoError` becomes an
9280
+ * `InvalidValue` issue whose `cause` is the error. Encoding fails with a
9281
+ * `Forbidden` issue unless `allowEncode` is `true`, and always for the
9282
+ * read-only PKCS#1 and SEC1 formats.
9283
+ *
9284
+ * @stability unstable
9285
+ * @category crypto
9286
+ * @since 4.0.0
9287
+ */
9288
+ export const KeyAgreementPrivateKeyFromFormat = (format, algorithm, options) => cryptoKeyFromFormat("KeyAgreementPrivateKeyFromFormat", KeyAgreementPrivateKey(algorithm), format, data => KeyFormat_.decodePrivate(format, algorithm, data), options?.allowEncode === true);
9289
+ /**
9290
+ * Schema for live AES-KW `KeyWrap.Key` values of an algorithm.
9291
+ *
9292
+ * **Details**
9293
+ *
9294
+ * Decoding checks the key's algorithm and returns the key itself. The key has
9295
+ * no JSON form: `toCodecJson` fails with a `Forbidden` issue, so use
9296
+ * {@link KeyWrapKeyFromFormat} or {@link KeyWrapKeyFromBytes} to read and
9297
+ * write keys. Keys display redacted, compare by reference, and have no
9298
+ * `Arbitrary`.
9299
+ *
9300
+ * @stability unstable
9301
+ * @category crypto
9302
+ * @since 4.0.0
9303
+ */
9304
+ export const KeyWrapKey = algorithm => declareCryptoKey("KeyWrapKey", "KeyWrap", "Key", KeyWrap_.isKey, algorithm);
9305
+ /**
9306
+ * Schema that decodes raw key bytes into an AES-KW `KeyWrap.Key`.
9307
+ *
9308
+ * **Details**
9309
+ *
9310
+ * Decoding runs `KeyWrap.key`, which is synchronous, so the schema works with
9311
+ * `Schema.decodeSync`. Under `Config.schema` the bytes are read as base64. A
9312
+ * `CryptoError` becomes an `InvalidValue` issue whose `cause` is the error.
9313
+ * Encoding fails with a `Forbidden` issue unless `allowEncode` is `true`.
9314
+ *
9315
+ * @stability unstable
9316
+ * @category crypto
9317
+ * @since 4.0.0
9318
+ */
9319
+ export const KeyWrapKeyFromBytes = (algorithm, options) => cryptoKeyFromBytes("KeyWrapKeyFromBytes", KeyWrapKey(algorithm), bytes => KeyWrap_.key(algorithm, bytes), options?.allowEncode === true ? KeyWrap_.toBytes : undefined);
9320
+ /**
9321
+ * Schema that decodes an AES-KW `KeyWrap.Key` from a JWK with
9322
+ * `KeyFormat.decodeSecret`.
9323
+ *
9324
+ * **Details**
9325
+ *
9326
+ * Decoding returns an Effect, so use the async decoding functions:
9327
+ * `Schema.decodeSync` throws. A `CryptoError` becomes an `InvalidValue` issue
9328
+ * whose `cause` is the error. Encoding fails with a `Forbidden` issue unless
9329
+ * `allowEncode` is `true`.
9330
+ *
9331
+ * @stability unstable
9332
+ * @category crypto
9333
+ * @since 4.0.0
9334
+ */
9335
+ export const KeyWrapKeyFromFormat = (format, algorithm, options) => cryptoKeyFromFormat("KeyWrapKeyFromFormat", KeyWrapKey(algorithm), format, data => KeyFormat_.decodeSecret(format, algorithm, data), options?.allowEncode === true);
9336
+ /**
9337
+ * Schema for live RSA-OAEP `KeyWrap.PublicKey` values of an algorithm.
9338
+ *
9339
+ * **Details**
9340
+ *
9341
+ * Decoding checks the key's algorithm and returns the key itself. The key has
9342
+ * no JSON form: `toCodecJson` fails with a `Forbidden` issue, so use
9343
+ * {@link KeyWrapPublicKeyFromFormat} to read and write keys. RSA-OAEP keys
9344
+ * have no raw form. Keys compare by reference and have no `Arbitrary`.
9345
+ *
9346
+ * @stability unstable
9347
+ * @category crypto
9348
+ * @since 4.0.0
9349
+ */
9350
+ export const KeyWrapPublicKey = algorithm => declareCryptoKey("KeyWrapPublicKey", "KeyWrap", "PublicKey", KeyWrap_.isPublicKey, algorithm);
9351
+ /**
9352
+ * Schema that decodes an RSA-OAEP `KeyWrap.PublicKey` with
9353
+ * `KeyFormat.decodePublic` and encodes it with `KeyFormat.encode`.
9354
+ *
9355
+ * **Details**
9356
+ *
9357
+ * The format must hold public keys: `KeyFormat.spki`, `KeyFormat.jwk`, or
9358
+ * `KeyFormat.pem(KeyFormat.spki)`. A format for another role is a type
9359
+ * error. Decoding runs the runtime's key import, so use the async decoding
9360
+ * functions: `Schema.decodeSync` throws. A `CryptoError` becomes an
9361
+ * `InvalidValue` issue whose `cause` is the error.
9362
+ *
9363
+ * @stability unstable
9364
+ * @category crypto
9365
+ * @since 4.0.0
9366
+ */
9367
+ export const KeyWrapPublicKeyFromFormat = (format, algorithm) => cryptoKeyFromFormat("KeyWrapPublicKeyFromFormat", KeyWrapPublicKey(algorithm), format, data => KeyFormat_.decodePublic(format, algorithm, data), true);
9368
+ /**
9369
+ * Schema for live RSA-OAEP `KeyWrap.PrivateKey` values of an algorithm.
9370
+ *
9371
+ * **Details**
9372
+ *
9373
+ * Decoding checks the key's algorithm and returns the key itself. The key has
9374
+ * no JSON form: `toCodecJson` fails with a `Forbidden` issue, so use
9375
+ * {@link KeyWrapPrivateKeyFromFormat} to read and write keys. RSA-OAEP keys
9376
+ * have no raw form. Keys display redacted, compare by reference, and have no
9377
+ * `Arbitrary`.
9378
+ *
9379
+ * @stability unstable
9380
+ * @category crypto
9381
+ * @since 4.0.0
9382
+ */
9383
+ export const KeyWrapPrivateKey = algorithm => declareCryptoKey("KeyWrapPrivateKey", "KeyWrap", "PrivateKey", KeyWrap_.isPrivateKey, algorithm);
9384
+ /**
9385
+ * Schema that decodes an RSA-OAEP `KeyWrap.PrivateKey` with
9386
+ * `KeyFormat.decodePrivate`.
9387
+ *
9388
+ * **Details**
9389
+ *
9390
+ * The format must hold private keys: `KeyFormat.pkcs8`, `KeyFormat.jwk`,
9391
+ * `KeyFormat.pkcs1`, or their PEM forms. A format for another role is a type
9392
+ * error. Decoding runs the runtime's key import, so use the async decoding
9393
+ * functions: `Schema.decodeSync` throws. A `CryptoError` becomes an
9394
+ * `InvalidValue` issue whose `cause` is the error. Encoding fails with a
9395
+ * `Forbidden` issue unless `allowEncode` is `true`, and always for the
9396
+ * read-only PKCS#1 format.
9397
+ *
9398
+ * @stability unstable
9399
+ * @category crypto
9400
+ * @since 4.0.0
9401
+ */
9402
+ export const KeyWrapPrivateKeyFromFormat = (format, algorithm, options) => cryptoKeyFromFormat("KeyWrapPrivateKeyFromFormat", KeyWrapPrivateKey(algorithm), format, data => KeyFormat_.decodePrivate(format, algorithm, data), options?.allowEncode === true);
8753
9403
  /**
8754
9404
  * Creates a schema for `Exit` values using schemas for the success value, typed
8755
9405
  * failure, and unexpected defect channels.