effect 4.0.6 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (978) hide show
  1. package/README.md +1 -1
  2. package/dist/Arbitrary.d.ts +10 -2
  3. package/dist/Arbitrary.d.ts.map +1 -1
  4. package/dist/Arbitrary.js +2 -1
  5. package/dist/Arbitrary.js.map +1 -1
  6. package/dist/BigDecimal.d.ts.map +1 -1
  7. package/dist/BigDecimal.js +3 -0
  8. package/dist/BigDecimal.js.map +1 -1
  9. package/dist/Channel.d.ts +12 -6
  10. package/dist/Channel.d.ts.map +1 -1
  11. package/dist/Channel.js +30 -9
  12. package/dist/Channel.js.map +1 -1
  13. package/dist/Config.d.ts +7 -1
  14. package/dist/Config.d.ts.map +1 -1
  15. package/dist/Config.js.map +1 -1
  16. package/dist/Context.d.ts +18 -1
  17. package/dist/Context.d.ts.map +1 -1
  18. package/dist/Context.js +27 -8
  19. package/dist/Context.js.map +1 -1
  20. package/dist/Cron.d.ts +81 -11
  21. package/dist/Cron.d.ts.map +1 -1
  22. package/dist/Cron.js +101 -26
  23. package/dist/Cron.js.map +1 -1
  24. package/dist/Data.d.ts +54 -235
  25. package/dist/Data.d.ts.map +1 -1
  26. package/dist/Data.js.map +1 -1
  27. package/dist/Duration.d.ts +78 -0
  28. package/dist/Duration.d.ts.map +1 -1
  29. package/dist/Duration.js +123 -0
  30. package/dist/Duration.js.map +1 -1
  31. package/dist/Effect.d.ts +165 -8
  32. package/dist/Effect.d.ts.map +1 -1
  33. package/dist/Effect.js +12 -2
  34. package/dist/Effect.js.map +1 -1
  35. package/dist/Equal.d.ts.map +1 -1
  36. package/dist/Equal.js +8 -1
  37. package/dist/Equal.js.map +1 -1
  38. package/dist/Exit.d.ts +3 -3
  39. package/dist/Exit.d.ts.map +1 -1
  40. package/dist/Exit.js.map +1 -1
  41. package/dist/FileSystem.d.ts +59 -4
  42. package/dist/FileSystem.d.ts.map +1 -1
  43. package/dist/FileSystem.js +9 -2
  44. package/dist/FileSystem.js.map +1 -1
  45. package/dist/Formatter.d.ts.map +1 -1
  46. package/dist/Formatter.js +27 -13
  47. package/dist/Formatter.js.map +1 -1
  48. package/dist/Glob.d.ts +165 -0
  49. package/dist/Glob.d.ts.map +1 -0
  50. package/dist/Glob.js +127 -0
  51. package/dist/Glob.js.map +1 -0
  52. package/dist/Hash.d.ts.map +1 -1
  53. package/dist/Hash.js +4 -1
  54. package/dist/Hash.js.map +1 -1
  55. package/dist/JsonPatch.js +4 -0
  56. package/dist/JsonPatch.js.map +1 -1
  57. package/dist/JsonSchema.d.ts.map +1 -1
  58. package/dist/JsonSchema.js +13 -40
  59. package/dist/JsonSchema.js.map +1 -1
  60. package/dist/Match.d.ts +86 -0
  61. package/dist/Match.d.ts.map +1 -1
  62. package/dist/Match.js +72 -0
  63. package/dist/Match.js.map +1 -1
  64. package/dist/Metric.d.ts +3 -3
  65. package/dist/MutableList.d.ts +5 -2
  66. package/dist/MutableList.d.ts.map +1 -1
  67. package/dist/MutableList.js +7 -5
  68. package/dist/MutableList.js.map +1 -1
  69. package/dist/MutableRef.d.ts.map +1 -1
  70. package/dist/MutableRef.js +7 -0
  71. package/dist/MutableRef.js.map +1 -1
  72. package/dist/PartitionedSemaphore.d.ts +2 -1
  73. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  74. package/dist/PartitionedSemaphore.js +22 -12
  75. package/dist/PartitionedSemaphore.js.map +1 -1
  76. package/dist/Pool.d.ts +51 -0
  77. package/dist/Pool.d.ts.map +1 -1
  78. package/dist/Pool.js +136 -36
  79. package/dist/Pool.js.map +1 -1
  80. package/dist/PubSub.d.ts.map +1 -1
  81. package/dist/PubSub.js +5 -6
  82. package/dist/PubSub.js.map +1 -1
  83. package/dist/Random.d.ts.map +1 -1
  84. package/dist/Random.js +3 -3
  85. package/dist/Random.js.map +1 -1
  86. package/dist/RcMap.d.ts.map +1 -1
  87. package/dist/RcMap.js +8 -2
  88. package/dist/RcMap.js.map +1 -1
  89. package/dist/Ref.d.ts.map +1 -1
  90. package/dist/Ref.js +8 -0
  91. package/dist/Ref.js.map +1 -1
  92. package/dist/Schedule.d.ts +18 -1
  93. package/dist/Schedule.d.ts.map +1 -1
  94. package/dist/Schedule.js +8 -3
  95. package/dist/Schedule.js.map +1 -1
  96. package/dist/Schema.d.ts +690 -49
  97. package/dist/Schema.d.ts.map +1 -1
  98. package/dist/Schema.js +687 -28
  99. package/dist/Schema.js.map +1 -1
  100. package/dist/SchemaAST.d.ts +4 -2
  101. package/dist/SchemaAST.d.ts.map +1 -1
  102. package/dist/SchemaAST.js +14 -17
  103. package/dist/SchemaAST.js.map +1 -1
  104. package/dist/SchemaGetter.d.ts +6 -1
  105. package/dist/SchemaGetter.d.ts.map +1 -1
  106. package/dist/SchemaGetter.js +22 -11
  107. package/dist/SchemaGetter.js.map +1 -1
  108. package/dist/SchemaParser.d.ts.map +1 -1
  109. package/dist/SchemaParser.js +48 -22
  110. package/dist/SchemaParser.js.map +1 -1
  111. package/dist/SchemaRepresentation.d.ts +33 -10
  112. package/dist/SchemaRepresentation.d.ts.map +1 -1
  113. package/dist/SchemaRepresentation.js +39 -13
  114. package/dist/SchemaRepresentation.js.map +1 -1
  115. package/dist/SchemaTransformation.d.ts +12 -4
  116. package/dist/SchemaTransformation.d.ts.map +1 -1
  117. package/dist/SchemaTransformation.js +15 -5
  118. package/dist/SchemaTransformation.js.map +1 -1
  119. package/dist/ScopedCache.d.ts.map +1 -1
  120. package/dist/ScopedCache.js +5 -7
  121. package/dist/ScopedCache.js.map +1 -1
  122. package/dist/Semaphore.d.ts +130 -0
  123. package/dist/Semaphore.d.ts.map +1 -1
  124. package/dist/Semaphore.js +94 -35
  125. package/dist/Semaphore.js.map +1 -1
  126. package/dist/Sink.d.ts.map +1 -1
  127. package/dist/Sink.js +7 -2
  128. package/dist/Sink.js.map +1 -1
  129. package/dist/Stream.d.ts +13 -4
  130. package/dist/Stream.d.ts.map +1 -1
  131. package/dist/Stream.js +31 -10
  132. package/dist/Stream.js.map +1 -1
  133. package/dist/String.d.ts +3 -0
  134. package/dist/String.d.ts.map +1 -1
  135. package/dist/String.js +3 -0
  136. package/dist/String.js.map +1 -1
  137. package/dist/Terminal.d.ts +18 -1
  138. package/dist/Terminal.d.ts.map +1 -1
  139. package/dist/Terminal.js +1 -1
  140. package/dist/Terminal.js.map +1 -1
  141. package/dist/Tracer.d.ts +11 -1
  142. package/dist/Tracer.d.ts.map +1 -1
  143. package/dist/Tracer.js +6 -1
  144. package/dist/Tracer.js.map +1 -1
  145. package/dist/ai/AiError.d.ts +43 -116
  146. package/dist/ai/AiError.d.ts.map +1 -1
  147. package/dist/ai/AiError.js +53 -72
  148. package/dist/ai/AiError.js.map +1 -1
  149. package/dist/ai/Decision.d.ts +196 -15
  150. package/dist/ai/Decision.d.ts.map +1 -1
  151. package/dist/ai/Decision.js +130 -0
  152. package/dist/ai/Decision.js.map +1 -1
  153. package/dist/ai/DecisionModel.d.ts +54 -13
  154. package/dist/ai/DecisionModel.d.ts.map +1 -1
  155. package/dist/ai/DecisionModel.js +123 -12
  156. package/dist/ai/DecisionModel.js.map +1 -1
  157. package/dist/ai/LanguageModel.d.ts.map +1 -1
  158. package/dist/ai/LanguageModel.js +9 -0
  159. package/dist/ai/LanguageModel.js.map +1 -1
  160. package/dist/ai/McpSchema.d.ts +110 -110
  161. package/dist/ai/McpSchema.d.ts.map +1 -1
  162. package/dist/ai/McpServer.d.ts +630 -29
  163. package/dist/ai/McpServer.d.ts.map +1 -1
  164. package/dist/ai/McpServer.js +583 -131
  165. package/dist/ai/McpServer.js.map +1 -1
  166. package/dist/ai/McpTest.d.ts +130 -0
  167. package/dist/ai/McpTest.d.ts.map +1 -0
  168. package/dist/ai/McpTest.js +237 -0
  169. package/dist/ai/McpTest.js.map +1 -0
  170. package/dist/ai/Prompt.d.ts +52 -0
  171. package/dist/ai/Prompt.d.ts.map +1 -1
  172. package/dist/ai/Prompt.js +38 -0
  173. package/dist/ai/Prompt.js.map +1 -1
  174. package/dist/ai/Response.d.ts +17 -28
  175. package/dist/ai/Response.d.ts.map +1 -1
  176. package/dist/ai/Response.js +5 -10
  177. package/dist/ai/Response.js.map +1 -1
  178. package/dist/ai/Tool.d.ts +43 -1
  179. package/dist/ai/Tool.d.ts.map +1 -1
  180. package/dist/ai/Tool.js +5 -2
  181. package/dist/ai/Tool.js.map +1 -1
  182. package/dist/ai/Toolkit.d.ts.map +1 -1
  183. package/dist/ai/Toolkit.js +8 -1
  184. package/dist/ai/Toolkit.js.map +1 -1
  185. package/dist/ai/index.d.ts +5 -0
  186. package/dist/ai/index.d.ts.map +1 -1
  187. package/dist/ai/index.js +5 -0
  188. package/dist/ai/index.js.map +1 -1
  189. package/dist/ai/internal/mcpCore.js +17 -12
  190. package/dist/ai/internal/mcpCore.js.map +1 -1
  191. package/dist/ai/internal/mcpProtocol/v2024_11_05.js +4 -5
  192. package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
  193. package/dist/ai/internal/mcpProtocol/v2025_03_26.js +4 -5
  194. package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
  195. package/dist/ai/internal/mcpProtocol/v2025_06_18.js +4 -5
  196. package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
  197. package/dist/ai/internal/mcpProtocol/v2025_11_25.js +4 -5
  198. package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
  199. package/dist/ai/internal/mcpProtocol/v2026_07_28.js +18 -10
  200. package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
  201. package/dist/ai/internal/mcpProtocol.js +13 -0
  202. package/dist/ai/internal/mcpProtocol.js.map +1 -1
  203. package/dist/ai/internal/mcpRuntime.js +5 -3
  204. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  205. package/dist/ai/internal/mcpStatefulRuntime.js +6 -1
  206. package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
  207. package/dist/cli/Argument.d.ts +21 -0
  208. package/dist/cli/Argument.d.ts.map +1 -1
  209. package/dist/cli/Argument.js +7 -0
  210. package/dist/cli/Argument.js.map +1 -1
  211. package/dist/cli/CliError.d.ts +78 -0
  212. package/dist/cli/CliError.d.ts.map +1 -1
  213. package/dist/cli/CliError.js +65 -3
  214. package/dist/cli/CliError.js.map +1 -1
  215. package/dist/cli/CliOutput.d.ts +220 -7
  216. package/dist/cli/CliOutput.d.ts.map +1 -1
  217. package/dist/cli/CliOutput.js +156 -43
  218. package/dist/cli/CliOutput.js.map +1 -1
  219. package/dist/cli/Command.d.ts +47 -16
  220. package/dist/cli/Command.d.ts.map +1 -1
  221. package/dist/cli/Command.js +67 -29
  222. package/dist/cli/Command.js.map +1 -1
  223. package/dist/cli/Completions.d.ts +58 -0
  224. package/dist/cli/Completions.d.ts.map +1 -1
  225. package/dist/cli/Completions.js +49 -9
  226. package/dist/cli/Completions.js.map +1 -1
  227. package/dist/cli/Flag.d.ts +122 -0
  228. package/dist/cli/Flag.d.ts.map +1 -1
  229. package/dist/cli/Flag.js +42 -0
  230. package/dist/cli/Flag.js.map +1 -1
  231. package/dist/cli/GlobalFlag.d.ts.map +1 -1
  232. package/dist/cli/GlobalFlag.js +15 -7
  233. package/dist/cli/GlobalFlag.js.map +1 -1
  234. package/dist/cli/HelpDoc.d.ts +15 -1
  235. package/dist/cli/HelpDoc.d.ts.map +1 -1
  236. package/dist/cli/Param.d.ts +15 -0
  237. package/dist/cli/Param.d.ts.map +1 -1
  238. package/dist/cli/Param.js +23 -2
  239. package/dist/cli/Param.js.map +1 -1
  240. package/dist/cli/Primitive.d.ts +14 -0
  241. package/dist/cli/Primitive.d.ts.map +1 -1
  242. package/dist/cli/Primitive.js +15 -1
  243. package/dist/cli/Primitive.js.map +1 -1
  244. package/dist/cli/Prompt.d.ts +1 -0
  245. package/dist/cli/Prompt.d.ts.map +1 -1
  246. package/dist/cli/Prompt.js +1 -0
  247. package/dist/cli/Prompt.js.map +1 -1
  248. package/dist/cli/TerminalCapabilities.d.ts +3 -2
  249. package/dist/cli/TerminalCapabilities.d.ts.map +1 -1
  250. package/dist/cli/TerminalCapabilities.js +3 -1
  251. package/dist/cli/TerminalCapabilities.js.map +1 -1
  252. package/dist/cli/internal/completions/bash.js +73 -27
  253. package/dist/cli/internal/completions/bash.js.map +1 -1
  254. package/dist/cli/internal/help.d.ts.map +1 -1
  255. package/dist/cli/internal/help.js +17 -10
  256. package/dist/cli/internal/help.js.map +1 -1
  257. package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  258. package/dist/cluster/ClusterWorkflowEngine.js +45 -10
  259. package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
  260. package/dist/cluster/MessageStorage.d.ts +23 -45
  261. package/dist/cluster/MessageStorage.d.ts.map +1 -1
  262. package/dist/cluster/MessageStorage.js +6 -7
  263. package/dist/cluster/MessageStorage.js.map +1 -1
  264. package/dist/cluster/Sharding.d.ts.map +1 -1
  265. package/dist/cluster/Sharding.js +151 -49
  266. package/dist/cluster/Sharding.js.map +1 -1
  267. package/dist/cluster/ShardingConfig.d.ts +76 -0
  268. package/dist/cluster/ShardingConfig.d.ts.map +1 -1
  269. package/dist/cluster/ShardingConfig.js +4 -0
  270. package/dist/cluster/ShardingConfig.js.map +1 -1
  271. package/dist/cluster/SingleRunner.d.ts +3 -3
  272. package/dist/cluster/SingleRunner.d.ts.map +1 -1
  273. package/dist/cluster/SingleRunner.js +1 -1
  274. package/dist/cluster/Snowflake.d.ts.map +1 -1
  275. package/dist/cluster/Snowflake.js +3 -7
  276. package/dist/cluster/Snowflake.js.map +1 -1
  277. package/dist/cluster/SqlMessageStorage.d.ts +37 -6
  278. package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
  279. package/dist/cluster/SqlMessageStorage.js +34 -7
  280. package/dist/cluster/SqlMessageStorage.js.map +1 -1
  281. package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
  282. package/dist/cluster/SqlRunnerStorage.js +109 -46
  283. package/dist/cluster/SqlRunnerStorage.js.map +1 -1
  284. package/dist/cluster/internal/entityManager.js +54 -20
  285. package/dist/cluster/internal/entityManager.js.map +1 -1
  286. package/dist/crypto/Aead.d.ts +322 -0
  287. package/dist/crypto/Aead.d.ts.map +1 -0
  288. package/dist/crypto/Aead.js +331 -0
  289. package/dist/crypto/Aead.js.map +1 -0
  290. package/dist/crypto/Cipher.d.ts +235 -0
  291. package/dist/crypto/Cipher.d.ts.map +1 -0
  292. package/dist/crypto/Cipher.js +233 -0
  293. package/dist/crypto/Cipher.js.map +1 -0
  294. package/dist/crypto/CryptoError.d.ts +212 -0
  295. package/dist/crypto/CryptoError.d.ts.map +1 -0
  296. package/dist/crypto/CryptoError.js +202 -0
  297. package/dist/crypto/CryptoError.js.map +1 -0
  298. package/dist/crypto/Digest.d.ts +143 -0
  299. package/dist/crypto/Digest.d.ts.map +1 -0
  300. package/dist/crypto/Digest.js +146 -0
  301. package/dist/crypto/Digest.js.map +1 -0
  302. package/dist/crypto/Kdf.d.ts +220 -0
  303. package/dist/crypto/Kdf.d.ts.map +1 -0
  304. package/dist/crypto/Kdf.js +212 -0
  305. package/dist/crypto/Kdf.js.map +1 -0
  306. package/dist/crypto/KeyAgreement.d.ts +323 -0
  307. package/dist/crypto/KeyAgreement.d.ts.map +1 -0
  308. package/dist/crypto/KeyAgreement.js +303 -0
  309. package/dist/crypto/KeyAgreement.js.map +1 -0
  310. package/dist/crypto/KeyFormat.d.ts +309 -0
  311. package/dist/crypto/KeyFormat.d.ts.map +1 -0
  312. package/dist/crypto/KeyFormat.js +556 -0
  313. package/dist/crypto/KeyFormat.js.map +1 -0
  314. package/dist/crypto/KeyWrap.d.ts +389 -0
  315. package/dist/crypto/KeyWrap.d.ts.map +1 -0
  316. package/dist/crypto/KeyWrap.js +381 -0
  317. package/dist/crypto/KeyWrap.js.map +1 -0
  318. package/dist/crypto/Mac.d.ts +277 -0
  319. package/dist/crypto/Mac.d.ts.map +1 -0
  320. package/dist/crypto/Mac.js +288 -0
  321. package/dist/crypto/Mac.js.map +1 -0
  322. package/dist/crypto/SecureRandom.d.ts +340 -0
  323. package/dist/crypto/SecureRandom.d.ts.map +1 -0
  324. package/dist/crypto/SecureRandom.js +257 -0
  325. package/dist/crypto/SecureRandom.js.map +1 -0
  326. package/dist/crypto/Signature.d.ts +448 -0
  327. package/dist/crypto/Signature.d.ts.map +1 -0
  328. package/dist/crypto/Signature.js +484 -0
  329. package/dist/crypto/Signature.js.map +1 -0
  330. package/dist/crypto/WebCrypto.d.ts +61 -0
  331. package/dist/crypto/WebCrypto.d.ts.map +1 -0
  332. package/dist/crypto/WebCrypto.js +63 -0
  333. package/dist/crypto/WebCrypto.js.map +1 -0
  334. package/dist/crypto/index.d.ts +65 -0
  335. package/dist/crypto/index.d.ts.map +1 -0
  336. package/dist/crypto/index.js +66 -0
  337. package/dist/crypto/index.js.map +1 -0
  338. package/dist/crypto/internal/asymmetric.d.ts +2 -0
  339. package/dist/crypto/internal/asymmetric.d.ts.map +1 -0
  340. package/dist/crypto/internal/asymmetric.js +210 -0
  341. package/dist/crypto/internal/asymmetric.js.map +1 -0
  342. package/dist/crypto/internal/chacha.d.ts +46 -0
  343. package/dist/crypto/internal/chacha.d.ts.map +1 -0
  344. package/dist/crypto/internal/chacha.js +885 -0
  345. package/dist/crypto/internal/chacha.js.map +1 -0
  346. package/dist/crypto/internal/der.d.ts +6 -0
  347. package/dist/crypto/internal/der.d.ts.map +1 -0
  348. package/dist/crypto/internal/der.js +86 -0
  349. package/dist/crypto/internal/der.js.map +1 -0
  350. package/dist/crypto/internal/digest.d.ts +2 -0
  351. package/dist/crypto/internal/digest.d.ts.map +1 -0
  352. package/dist/crypto/internal/digest.js +15 -0
  353. package/dist/crypto/internal/digest.js.map +1 -0
  354. package/dist/crypto/internal/key.d.ts +2 -0
  355. package/dist/crypto/internal/key.d.ts.map +1 -0
  356. package/dist/crypto/internal/key.js +170 -0
  357. package/dist/crypto/internal/key.js.map +1 -0
  358. package/dist/crypto/internal/md5.d.ts +39 -0
  359. package/dist/crypto/internal/md5.d.ts.map +1 -0
  360. package/dist/crypto/internal/md5.js +179 -0
  361. package/dist/crypto/internal/md5.js.map +1 -0
  362. package/dist/crypto/internal/webCrypto.d.ts +2 -0
  363. package/dist/crypto/internal/webCrypto.d.ts.map +1 -0
  364. package/dist/crypto/internal/webCrypto.js +111 -0
  365. package/dist/crypto/internal/webCrypto.js.map +1 -0
  366. package/dist/devtools/DevToolsClient.d.ts.map +1 -1
  367. package/dist/devtools/DevToolsClient.js +2 -0
  368. package/dist/devtools/DevToolsClient.js.map +1 -1
  369. package/dist/encoding/Base64.js +36 -0
  370. package/dist/encoding/Base64.js.map +1 -1
  371. package/dist/encoding/Base64Url.d.ts.map +1 -1
  372. package/dist/encoding/Base64Url.js +3 -2
  373. package/dist/encoding/Base64Url.js.map +1 -1
  374. package/dist/encoding/Csv.d.ts +608 -0
  375. package/dist/encoding/Csv.d.ts.map +1 -0
  376. package/dist/encoding/Csv.js +718 -0
  377. package/dist/encoding/Csv.js.map +1 -0
  378. package/dist/encoding/Hex.d.ts +3 -2
  379. package/dist/encoding/Hex.d.ts.map +1 -1
  380. package/dist/encoding/Hex.js +3 -2
  381. package/dist/encoding/Hex.js.map +1 -1
  382. package/dist/encoding/SchemaBinary.d.ts.map +1 -1
  383. package/dist/encoding/SchemaBinary.js +42 -4
  384. package/dist/encoding/SchemaBinary.js.map +1 -1
  385. package/dist/encoding/Sse.d.ts.map +1 -1
  386. package/dist/encoding/Sse.js +3 -3
  387. package/dist/encoding/Sse.js.map +1 -1
  388. package/dist/encoding/Toml.d.ts +17 -3
  389. package/dist/encoding/Toml.d.ts.map +1 -1
  390. package/dist/encoding/Toml.js +124 -31
  391. package/dist/encoding/Toml.js.map +1 -1
  392. package/dist/encoding/Yaml.d.ts +8 -1
  393. package/dist/encoding/Yaml.d.ts.map +1 -1
  394. package/dist/encoding/Yaml.js +54 -18
  395. package/dist/encoding/Yaml.js.map +1 -1
  396. package/dist/encoding/index.d.ts +5 -0
  397. package/dist/encoding/index.d.ts.map +1 -1
  398. package/dist/encoding/index.js +5 -0
  399. package/dist/encoding/index.js.map +1 -1
  400. package/dist/eventlog/EventJournal.d.ts.map +1 -1
  401. package/dist/eventlog/EventJournal.js +6 -3
  402. package/dist/eventlog/EventJournal.js.map +1 -1
  403. package/dist/eventlog/EventLog.d.ts +119 -4
  404. package/dist/eventlog/EventLog.d.ts.map +1 -1
  405. package/dist/eventlog/EventLog.js +200 -12
  406. package/dist/eventlog/EventLog.js.map +1 -1
  407. package/dist/eventlog/EventLogEncryption.d.ts +41 -4
  408. package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
  409. package/dist/eventlog/EventLogEncryption.js +83 -64
  410. package/dist/eventlog/EventLogEncryption.js.map +1 -1
  411. package/dist/eventlog/EventLogMessage.d.ts +279 -0
  412. package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
  413. package/dist/eventlog/EventLogMessage.js +217 -1
  414. package/dist/eventlog/EventLogMessage.js.map +1 -1
  415. package/dist/eventlog/EventLogRemote.d.ts +200 -28
  416. package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
  417. package/dist/eventlog/EventLogRemote.js +186 -16
  418. package/dist/eventlog/EventLogRemote.js.map +1 -1
  419. package/dist/eventlog/EventLogServer.d.ts +3 -0
  420. package/dist/eventlog/EventLogServer.d.ts.map +1 -1
  421. package/dist/eventlog/EventLogServer.js +18 -10
  422. package/dist/eventlog/EventLogServer.js.map +1 -1
  423. package/dist/eventlog/EventLogServerEncrypted.d.ts +326 -5
  424. package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  425. package/dist/eventlog/EventLogServerEncrypted.js +769 -14
  426. package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
  427. package/dist/eventlog/EventLogSessionAuth.d.ts +5 -3
  428. package/dist/eventlog/EventLogSessionAuth.d.ts.map +1 -1
  429. package/dist/eventlog/EventLogSessionAuth.js +41 -64
  430. package/dist/eventlog/EventLogSessionAuth.js.map +1 -1
  431. package/dist/eventlog/EventRow.d.ts +4 -0
  432. package/dist/eventlog/EventRow.d.ts.map +1 -1
  433. package/dist/eventlog/EventRow.js +12 -2
  434. package/dist/eventlog/EventRow.js.map +1 -1
  435. package/dist/eventlog/SqlEventJournal.d.ts.map +1 -1
  436. package/dist/eventlog/SqlEventJournal.js +47 -27
  437. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  438. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +21 -5
  439. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
  440. package/dist/eventlog/SqlEventLogServerEncrypted.js +1048 -113
  441. package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  442. package/dist/eventlog/SqlEventLogServerUnencrypted.js +2 -2
  443. package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  444. package/dist/eventlog/internal/batches.d.ts +12 -0
  445. package/dist/eventlog/internal/batches.d.ts.map +1 -0
  446. package/dist/eventlog/internal/batches.js +26 -0
  447. package/dist/eventlog/internal/batches.js.map +1 -0
  448. package/dist/eventlog/internal/compaction.d.ts +38 -0
  449. package/dist/eventlog/internal/compaction.d.ts.map +1 -0
  450. package/dist/eventlog/internal/compaction.js +33 -0
  451. package/dist/eventlog/internal/compaction.js.map +1 -0
  452. package/dist/eventlog/internal/conflicts.d.ts +0 -1
  453. package/dist/eventlog/internal/conflicts.d.ts.map +1 -1
  454. package/dist/eventlog/internal/conflicts.js +0 -3
  455. package/dist/eventlog/internal/conflicts.js.map +1 -1
  456. package/dist/eventlog/internal/identityRootSecretDerivation.js +66 -67
  457. package/dist/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
  458. package/dist/eventlog/internal/remoteCompaction.d.ts +31 -0
  459. package/dist/eventlog/internal/remoteCompaction.d.ts.map +1 -0
  460. package/dist/eventlog/internal/remoteCompaction.js +76 -0
  461. package/dist/eventlog/internal/remoteCompaction.js.map +1 -0
  462. package/dist/http/Cookies.d.ts +172 -0
  463. package/dist/http/Cookies.d.ts.map +1 -1
  464. package/dist/http/Cookies.js +153 -10
  465. package/dist/http/Cookies.js.map +1 -1
  466. package/dist/http/FetchHttpClient.d.ts +26 -2
  467. package/dist/http/FetchHttpClient.d.ts.map +1 -1
  468. package/dist/http/FetchHttpClient.js +78 -15
  469. package/dist/http/FetchHttpClient.js.map +1 -1
  470. package/dist/http/HttpClient.d.ts +502 -8
  471. package/dist/http/HttpClient.d.ts.map +1 -1
  472. package/dist/http/HttpClient.js +296 -12
  473. package/dist/http/HttpClient.js.map +1 -1
  474. package/dist/http/HttpClientError.d.ts +8 -1
  475. package/dist/http/HttpClientError.d.ts.map +1 -1
  476. package/dist/http/HttpClientError.js +37 -1
  477. package/dist/http/HttpClientError.js.map +1 -1
  478. package/dist/http/HttpClientRequest.d.ts +9 -5
  479. package/dist/http/HttpClientRequest.d.ts.map +1 -1
  480. package/dist/http/HttpClientRequest.js +3 -4
  481. package/dist/http/HttpClientRequest.js.map +1 -1
  482. package/dist/http/HttpClientResponse.d.ts.map +1 -1
  483. package/dist/http/HttpClientResponse.js +3 -2
  484. package/dist/http/HttpClientResponse.js.map +1 -1
  485. package/dist/http/HttpMethod.d.ts +7 -1
  486. package/dist/http/HttpMethod.d.ts.map +1 -1
  487. package/dist/http/HttpMethod.js +3 -8
  488. package/dist/http/HttpMethod.js.map +1 -1
  489. package/dist/http/HttpMiddleware.d.ts +1 -1
  490. package/dist/http/HttpMiddleware.d.ts.map +1 -1
  491. package/dist/http/HttpMiddleware.js +14 -16
  492. package/dist/http/HttpMiddleware.js.map +1 -1
  493. package/dist/http/HttpRouter.d.ts.map +1 -1
  494. package/dist/http/HttpRouter.js +2 -1
  495. package/dist/http/HttpRouter.js.map +1 -1
  496. package/dist/http/HttpServerError.js +2 -2
  497. package/dist/http/HttpServerError.js.map +1 -1
  498. package/dist/http/HttpServerRequest.d.ts +11 -3
  499. package/dist/http/HttpServerRequest.d.ts.map +1 -1
  500. package/dist/http/HttpServerRequest.js +77 -25
  501. package/dist/http/HttpServerRequest.js.map +1 -1
  502. package/dist/http/HttpServerResponse.d.ts.map +1 -1
  503. package/dist/http/HttpServerResponse.js +3 -2
  504. package/dist/http/HttpServerResponse.js.map +1 -1
  505. package/dist/http/HttpStaticServer.d.ts.map +1 -1
  506. package/dist/http/HttpStaticServer.js +48 -21
  507. package/dist/http/HttpStaticServer.js.map +1 -1
  508. package/dist/http/HttpTraceContext.d.ts +2 -1
  509. package/dist/http/HttpTraceContext.d.ts.map +1 -1
  510. package/dist/http/HttpTraceContext.js +7 -5
  511. package/dist/http/HttpTraceContext.js.map +1 -1
  512. package/dist/http/MultipartParser/internal/contentType.js +3 -3
  513. package/dist/http/ProblemDetails.d.ts +96 -0
  514. package/dist/http/ProblemDetails.d.ts.map +1 -0
  515. package/dist/http/ProblemDetails.js +98 -0
  516. package/dist/http/ProblemDetails.js.map +1 -0
  517. package/dist/http/UrlParams.d.ts +3 -1
  518. package/dist/http/UrlParams.d.ts.map +1 -1
  519. package/dist/http/UrlParams.js +4 -2
  520. package/dist/http/UrlParams.js.map +1 -1
  521. package/dist/http/index.d.ts +5 -0
  522. package/dist/http/index.d.ts.map +1 -1
  523. package/dist/http/index.js +5 -0
  524. package/dist/http/index.js.map +1 -1
  525. package/dist/http/internal/compression.js +4 -5
  526. package/dist/http/internal/compression.js.map +1 -1
  527. package/dist/http/internal/decompression.js +6 -2
  528. package/dist/http/internal/decompression.js.map +1 -1
  529. package/dist/http/internal/httpBody.js +8 -1
  530. package/dist/http/internal/httpBody.js.map +1 -1
  531. package/dist/http/internal/urlParams.js +33 -0
  532. package/dist/http/internal/urlParams.js.map +1 -1
  533. package/dist/http-api/HttpApi.d.ts +3 -6
  534. package/dist/http-api/HttpApi.d.ts.map +1 -1
  535. package/dist/http-api/HttpApi.js +3 -6
  536. package/dist/http-api/HttpApi.js.map +1 -1
  537. package/dist/http-api/HttpApiBuilder.d.ts.map +1 -1
  538. package/dist/http-api/HttpApiBuilder.js +43 -13
  539. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  540. package/dist/http-api/HttpApiClient.d.ts +140 -7
  541. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  542. package/dist/http-api/HttpApiClient.js +193 -44
  543. package/dist/http-api/HttpApiClient.js.map +1 -1
  544. package/dist/http-api/HttpApiEndpoint.d.ts +24 -7
  545. package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
  546. package/dist/http-api/HttpApiEndpoint.js +123 -32
  547. package/dist/http-api/HttpApiEndpoint.js.map +1 -1
  548. package/dist/http-api/HttpApiError.d.ts +185 -13
  549. package/dist/http-api/HttpApiError.d.ts.map +1 -1
  550. package/dist/http-api/HttpApiError.js +128 -0
  551. package/dist/http-api/HttpApiError.js.map +1 -1
  552. package/dist/http-api/HttpApiMiddleware.d.ts +64 -17
  553. package/dist/http-api/HttpApiMiddleware.d.ts.map +1 -1
  554. package/dist/http-api/HttpApiMiddleware.js +85 -1
  555. package/dist/http-api/HttpApiMiddleware.js.map +1 -1
  556. package/dist/http-api/HttpApiSchema.d.ts +142 -33
  557. package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
  558. package/dist/http-api/HttpApiSchema.js +123 -59
  559. package/dist/http-api/HttpApiSchema.js.map +1 -1
  560. package/dist/http-api/HttpApiTest.d.ts.map +1 -1
  561. package/dist/http-api/HttpApiTest.js +3 -2
  562. package/dist/http-api/HttpApiTest.js.map +1 -1
  563. package/dist/http-api/OpenApi.d.ts.map +1 -1
  564. package/dist/http-api/OpenApi.js +25 -16
  565. package/dist/http-api/OpenApi.js.map +1 -1
  566. package/dist/http-api/internal/toCodecHttpProperties.d.ts +2 -0
  567. package/dist/http-api/internal/toCodecHttpProperties.d.ts.map +1 -0
  568. package/dist/http-api/internal/toCodecHttpProperties.js +38 -0
  569. package/dist/http-api/internal/toCodecHttpProperties.js.map +1 -0
  570. package/dist/index.d.ts +5 -5
  571. package/dist/index.d.ts.map +1 -1
  572. package/dist/index.js +5 -5
  573. package/dist/index.js.map +1 -1
  574. package/dist/internal/arbitrary/runner.d.ts.map +1 -1
  575. package/dist/internal/arbitrary/runner.js +120 -44
  576. package/dist/internal/arbitrary/runner.js.map +1 -1
  577. package/dist/internal/core.js +2 -0
  578. package/dist/internal/core.js.map +1 -1
  579. package/dist/internal/effect.js +46 -27
  580. package/dist/internal/effect.js.map +1 -1
  581. package/dist/internal/equal.js +14 -0
  582. package/dist/internal/equal.js.map +1 -1
  583. package/dist/internal/glob.d.ts +2 -0
  584. package/dist/internal/glob.d.ts.map +1 -0
  585. package/dist/internal/glob.js +630 -0
  586. package/dist/internal/glob.js.map +1 -0
  587. package/dist/internal/jsonSchema.d.ts +2 -0
  588. package/dist/internal/jsonSchema.d.ts.map +1 -0
  589. package/dist/internal/jsonSchema.js +28 -0
  590. package/dist/internal/jsonSchema.js.map +1 -0
  591. package/dist/internal/matcher.js +11 -1
  592. package/dist/internal/matcher.js.map +1 -1
  593. package/dist/internal/persistence.js +9 -0
  594. package/dist/internal/persistence.js.map +1 -1
  595. package/dist/internal/rcRef.js +4 -1
  596. package/dist/internal/rcRef.js.map +1 -1
  597. package/dist/internal/schema/compilerRegistry.js +4 -1
  598. package/dist/internal/schema/compilerRegistry.js.map +1 -1
  599. package/dist/internal/schema/content.d.ts +2 -0
  600. package/dist/internal/schema/content.d.ts.map +1 -0
  601. package/dist/internal/schema/content.js +13 -0
  602. package/dist/internal/schema/content.js.map +1 -0
  603. package/dist/internal/schema/fromJsonSchemaDocument.js +173 -185
  604. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  605. package/dist/internal/schema/fromRepresentation.js +2 -1
  606. package/dist/internal/schema/fromRepresentation.js.map +1 -1
  607. package/dist/internal/schema/standardSchema.js +8 -2
  608. package/dist/internal/schema/standardSchema.js.map +1 -1
  609. package/dist/internal/schema/toCodeDocument.js +9 -6
  610. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  611. package/dist/internal/schema/toCodec.js +21 -24
  612. package/dist/internal/schema/toCodec.js.map +1 -1
  613. package/dist/internal/schema/toJsonSchemaDocument.js +205 -140
  614. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
  615. package/dist/internal/schema/toRepresentation.js +107 -129
  616. package/dist/internal/schema/toRepresentation.js.map +1 -1
  617. package/dist/internal/sql.d.ts +2 -0
  618. package/dist/internal/sql.d.ts.map +1 -0
  619. package/dist/internal/sql.js +13 -0
  620. package/dist/internal/sql.js.map +1 -0
  621. package/dist/internal/trie.js +42 -13
  622. package/dist/internal/trie.js.map +1 -1
  623. package/dist/internal/ulid.js +41 -0
  624. package/dist/internal/ulid.js.map +1 -1
  625. package/dist/internal/uuid.js +52 -8
  626. package/dist/internal/uuid.js.map +1 -1
  627. package/dist/internal/version.js +1 -1
  628. package/dist/observability/Otlp.d.ts +15 -4
  629. package/dist/observability/Otlp.d.ts.map +1 -1
  630. package/dist/observability/Otlp.js +10 -0
  631. package/dist/observability/Otlp.js.map +1 -1
  632. package/dist/observability/OtlpProxy.d.ts +154 -0
  633. package/dist/observability/OtlpProxy.d.ts.map +1 -0
  634. package/dist/observability/OtlpProxy.js +235 -0
  635. package/dist/observability/OtlpProxy.js.map +1 -0
  636. package/dist/observability/OtlpResource.d.ts +7 -0
  637. package/dist/observability/OtlpResource.d.ts.map +1 -1
  638. package/dist/observability/OtlpResource.js +11 -1
  639. package/dist/observability/OtlpResource.js.map +1 -1
  640. package/dist/observability/OtlpTracer.d.ts.map +1 -1
  641. package/dist/observability/OtlpTracer.js +4 -0
  642. package/dist/observability/OtlpTracer.js.map +1 -1
  643. package/dist/observability/index.d.ts +5 -0
  644. package/dist/observability/index.d.ts.map +1 -1
  645. package/dist/observability/index.js +5 -0
  646. package/dist/observability/index.js.map +1 -1
  647. package/dist/persistence/CircuitBreaker.d.ts +897 -0
  648. package/dist/persistence/CircuitBreaker.d.ts.map +1 -0
  649. package/dist/persistence/CircuitBreaker.js +1165 -0
  650. package/dist/persistence/CircuitBreaker.js.map +1 -0
  651. package/dist/persistence/KeyValueStore.d.ts +47 -2
  652. package/dist/persistence/KeyValueStore.d.ts.map +1 -1
  653. package/dist/persistence/KeyValueStore.js +129 -18
  654. package/dist/persistence/KeyValueStore.js.map +1 -1
  655. package/dist/persistence/PersistedQueue.d.ts +9 -0
  656. package/dist/persistence/PersistedQueue.d.ts.map +1 -1
  657. package/dist/persistence/PersistedQueue.js +94 -52
  658. package/dist/persistence/PersistedQueue.js.map +1 -1
  659. package/dist/persistence/Persistence.d.ts +10 -4
  660. package/dist/persistence/Persistence.d.ts.map +1 -1
  661. package/dist/persistence/Persistence.js +18 -11
  662. package/dist/persistence/Persistence.js.map +1 -1
  663. package/dist/persistence/Redis.d.ts +78 -2
  664. package/dist/persistence/Redis.d.ts.map +1 -1
  665. package/dist/persistence/Redis.js +62 -7
  666. package/dist/persistence/Redis.js.map +1 -1
  667. package/dist/persistence/index.d.ts +5 -0
  668. package/dist/persistence/index.d.ts.map +1 -1
  669. package/dist/persistence/index.js +5 -0
  670. package/dist/persistence/index.js.map +1 -1
  671. package/dist/process/ChildProcess.d.ts +237 -71
  672. package/dist/process/ChildProcess.d.ts.map +1 -1
  673. package/dist/process/ChildProcess.js +56 -158
  674. package/dist/process/ChildProcess.js.map +1 -1
  675. package/dist/process/ChildProcessSpawner.d.ts +35 -0
  676. package/dist/process/ChildProcessSpawner.d.ts.map +1 -1
  677. package/dist/process/ChildProcessSpawner.js +5 -2
  678. package/dist/process/ChildProcessSpawner.js.map +1 -1
  679. package/dist/process/CommandLine.d.ts +294 -0
  680. package/dist/process/CommandLine.d.ts.map +1 -0
  681. package/dist/process/CommandLine.js +481 -0
  682. package/dist/process/CommandLine.js.map +1 -0
  683. package/dist/process/index.d.ts +5 -0
  684. package/dist/process/index.d.ts.map +1 -1
  685. package/dist/process/index.js +5 -0
  686. package/dist/process/index.js.map +1 -1
  687. package/dist/reactivity/AsyncResult.d.ts +1 -1
  688. package/dist/reactivity/AsyncResult.d.ts.map +1 -1
  689. package/dist/reactivity/Atom.d.ts +2 -1
  690. package/dist/reactivity/Atom.d.ts.map +1 -1
  691. package/dist/reactivity/Atom.js +3 -4
  692. package/dist/reactivity/Atom.js.map +1 -1
  693. package/dist/reactivity/AtomRegistry.js.map +1 -1
  694. package/dist/rpc/RpcClient.d.ts +16 -1
  695. package/dist/rpc/RpcClient.d.ts.map +1 -1
  696. package/dist/rpc/RpcClient.js +59 -24
  697. package/dist/rpc/RpcClient.js.map +1 -1
  698. package/dist/rpc/RpcMessage.d.ts +10 -1
  699. package/dist/rpc/RpcMessage.d.ts.map +1 -1
  700. package/dist/rpc/RpcMessage.js +1 -0
  701. package/dist/rpc/RpcMessage.js.map +1 -1
  702. package/dist/rpc/RpcSerialization.d.ts +14 -0
  703. package/dist/rpc/RpcSerialization.d.ts.map +1 -1
  704. package/dist/rpc/RpcSerialization.js +26 -8
  705. package/dist/rpc/RpcSerialization.js.map +1 -1
  706. package/dist/rpc/RpcServer.d.ts +31 -0
  707. package/dist/rpc/RpcServer.d.ts.map +1 -1
  708. package/dist/rpc/RpcServer.js +139 -56
  709. package/dist/rpc/RpcServer.js.map +1 -1
  710. package/dist/rpc/RpcTest.d.ts +1 -0
  711. package/dist/rpc/RpcTest.d.ts.map +1 -1
  712. package/dist/rpc/RpcTest.js +1 -0
  713. package/dist/rpc/RpcTest.js.map +1 -1
  714. package/dist/schema/Model.d.ts +14 -0
  715. package/dist/schema/Model.d.ts.map +1 -1
  716. package/dist/schema/Model.js +18 -3
  717. package/dist/schema/Model.js.map +1 -1
  718. package/dist/sql/Migrator.d.ts +2 -20
  719. package/dist/sql/Migrator.d.ts.map +1 -1
  720. package/dist/sql/Migrator.js +13 -55
  721. package/dist/sql/Migrator.js.map +1 -1
  722. package/dist/sql/MigratorFileSystem.d.ts +21 -0
  723. package/dist/sql/MigratorFileSystem.d.ts.map +1 -0
  724. package/dist/sql/MigratorFileSystem.js +57 -0
  725. package/dist/sql/MigratorFileSystem.js.map +1 -0
  726. package/dist/sql/SqlClient.d.ts +9 -4
  727. package/dist/sql/SqlClient.d.ts.map +1 -1
  728. package/dist/sql/SqlClient.js +13 -10
  729. package/dist/sql/SqlClient.js.map +1 -1
  730. package/dist/sql/SqlResolver.d.ts +4 -0
  731. package/dist/sql/SqlResolver.d.ts.map +1 -1
  732. package/dist/sql/SqlResolver.js +18 -4
  733. package/dist/sql/SqlResolver.js.map +1 -1
  734. package/dist/sql/Statement.d.ts +27 -6
  735. package/dist/sql/Statement.d.ts.map +1 -1
  736. package/dist/sql/Statement.js +21 -15
  737. package/dist/sql/Statement.js.map +1 -1
  738. package/dist/sql/index.js +1 -1
  739. package/dist/testing/index.d.ts +0 -5
  740. package/dist/testing/index.d.ts.map +1 -1
  741. package/dist/testing/index.js +0 -5
  742. package/dist/testing/index.js.map +1 -1
  743. package/dist/workflow/DurableDeferred.d.ts.map +1 -1
  744. package/dist/workflow/DurableDeferred.js +21 -2
  745. package/dist/workflow/DurableDeferred.js.map +1 -1
  746. package/dist/workflow/internal/crypto.js +9 -8
  747. package/dist/workflow/internal/crypto.js.map +1 -1
  748. package/package.json +3 -1
  749. package/src/Arbitrary.ts +10 -2
  750. package/src/BigDecimal.ts +3 -0
  751. package/src/Channel.ts +64 -29
  752. package/src/Config.ts +7 -1
  753. package/src/Context.ts +34 -10
  754. package/src/Cron.ts +178 -29
  755. package/src/Data.ts +60 -265
  756. package/src/Duration.ts +140 -0
  757. package/src/Effect.ts +915 -86
  758. package/src/Equal.ts +8 -1
  759. package/src/Exit.ts +3 -3
  760. package/src/FileSystem.ts +65 -4
  761. package/src/Formatter.ts +28 -13
  762. package/src/Glob.ts +205 -0
  763. package/src/Hash.ts +4 -1
  764. package/src/JsonPatch.ts +4 -0
  765. package/src/JsonSchema.ts +12 -40
  766. package/src/Match.ts +127 -0
  767. package/src/Metric.ts +3 -3
  768. package/src/MutableList.ts +7 -5
  769. package/src/MutableRef.ts +8 -1
  770. package/src/PartitionedSemaphore.ts +24 -13
  771. package/src/Pool.ts +182 -52
  772. package/src/PubSub.ts +5 -6
  773. package/src/Random.ts +3 -3
  774. package/src/RcMap.ts +5 -1
  775. package/src/Ref.ts +8 -0
  776. package/src/Schedule.ts +27 -4
  777. package/src/Schema.ts +1237 -87
  778. package/src/SchemaAST.ts +20 -20
  779. package/src/SchemaGetter.ts +27 -11
  780. package/src/SchemaParser.ts +51 -18
  781. package/src/SchemaRepresentation.ts +50 -34
  782. package/src/SchemaTransformation.ts +17 -5
  783. package/src/ScopedCache.ts +5 -9
  784. package/src/Semaphore.ts +208 -40
  785. package/src/Sink.ts +15 -2
  786. package/src/Stream.ts +48 -22
  787. package/src/String.ts +3 -0
  788. package/src/Terminal.ts +19 -1
  789. package/src/Tracer.ts +15 -1
  790. package/src/ai/AiError.ts +56 -80
  791. package/src/ai/Decision.ts +257 -6
  792. package/src/ai/DecisionModel.ts +171 -28
  793. package/src/ai/LanguageModel.ts +9 -0
  794. package/src/ai/McpServer.ts +1283 -299
  795. package/src/ai/McpTest.ts +380 -0
  796. package/src/ai/Prompt.ts +65 -0
  797. package/src/ai/Response.ts +36 -31
  798. package/src/ai/Tool.ts +65 -10
  799. package/src/ai/Toolkit.ts +4 -1
  800. package/src/ai/index.ts +6 -0
  801. package/src/ai/internal/mcpCore.ts +78 -44
  802. package/src/ai/internal/mcpProtocol/v2024_11_05.ts +4 -7
  803. package/src/ai/internal/mcpProtocol/v2025_03_26.ts +4 -7
  804. package/src/ai/internal/mcpProtocol/v2025_06_18.ts +4 -7
  805. package/src/ai/internal/mcpProtocol/v2025_11_25.ts +4 -7
  806. package/src/ai/internal/mcpProtocol/v2026_07_28.ts +15 -10
  807. package/src/ai/internal/mcpProtocol.ts +29 -0
  808. package/src/ai/internal/mcpRuntime.ts +9 -5
  809. package/src/ai/internal/mcpStatefulRuntime.ts +14 -2
  810. package/src/cli/Argument.ts +21 -0
  811. package/src/cli/CliError.ts +90 -3
  812. package/src/cli/CliOutput.ts +300 -55
  813. package/src/cli/Command.ts +76 -41
  814. package/src/cli/Completions.ts +51 -0
  815. package/src/cli/Flag.ts +122 -0
  816. package/src/cli/GlobalFlag.ts +6 -7
  817. package/src/cli/HelpDoc.ts +18 -1
  818. package/src/cli/Param.ts +35 -6
  819. package/src/cli/Primitive.ts +16 -1
  820. package/src/cli/Prompt.ts +1 -0
  821. package/src/cli/TerminalCapabilities.ts +6 -3
  822. package/src/cli/internal/completions/bash.ts +79 -29
  823. package/src/cli/internal/help.ts +21 -9
  824. package/src/cluster/ClusterWorkflowEngine.ts +46 -16
  825. package/src/cluster/MessageStorage.ts +19 -14
  826. package/src/cluster/Sharding.ts +176 -47
  827. package/src/cluster/ShardingConfig.ts +43 -0
  828. package/src/cluster/SingleRunner.ts +3 -3
  829. package/src/cluster/Snowflake.ts +3 -7
  830. package/src/cluster/SqlMessageStorage.ts +49 -17
  831. package/src/cluster/SqlRunnerStorage.ts +143 -70
  832. package/src/cluster/internal/entityManager.ts +75 -22
  833. package/src/crypto/Aead.ts +517 -0
  834. package/src/crypto/Cipher.ts +326 -0
  835. package/src/crypto/CryptoError.ts +242 -0
  836. package/src/crypto/Digest.ts +167 -0
  837. package/src/crypto/Kdf.ts +315 -0
  838. package/src/crypto/KeyAgreement.ts +489 -0
  839. package/src/crypto/KeyFormat.ts +712 -0
  840. package/src/crypto/KeyWrap.ts +639 -0
  841. package/src/crypto/Mac.ts +386 -0
  842. package/src/crypto/SecureRandom.ts +459 -0
  843. package/src/crypto/Signature.ts +673 -0
  844. package/src/crypto/WebCrypto.ts +64 -0
  845. package/src/crypto/index.ts +78 -0
  846. package/src/crypto/internal/asymmetric.ts +329 -0
  847. package/src/crypto/internal/chacha.ts +1088 -0
  848. package/src/crypto/internal/der.ts +110 -0
  849. package/src/crypto/internal/digest.ts +16 -0
  850. package/src/crypto/internal/key.ts +235 -0
  851. package/src/crypto/internal/md5.ts +170 -0
  852. package/src/crypto/internal/webCrypto.ts +150 -0
  853. package/src/devtools/DevToolsClient.ts +2 -0
  854. package/src/encoding/Base64.ts +38 -0
  855. package/src/encoding/Base64Url.ts +5 -2
  856. package/src/encoding/Csv.ts +1298 -0
  857. package/src/encoding/Hex.ts +3 -2
  858. package/src/encoding/SchemaBinary.ts +40 -4
  859. package/src/encoding/Sse.ts +4 -3
  860. package/src/encoding/Toml.ts +117 -35
  861. package/src/encoding/Yaml.ts +61 -18
  862. package/src/encoding/index.ts +6 -0
  863. package/src/eventlog/EventJournal.ts +4 -3
  864. package/src/eventlog/EventLog.ts +340 -15
  865. package/src/eventlog/EventLogEncryption.ts +118 -110
  866. package/src/eventlog/EventLogMessage.ts +273 -1
  867. package/src/eventlog/EventLogRemote.ts +367 -23
  868. package/src/eventlog/EventLogServer.ts +23 -8
  869. package/src/eventlog/EventLogServerEncrypted.ts +1130 -67
  870. package/src/eventlog/EventLogSessionAuth.ts +56 -70
  871. package/src/eventlog/EventRow.ts +12 -3
  872. package/src/eventlog/SqlEventJournal.ts +68 -45
  873. package/src/eventlog/SqlEventLogServerEncrypted.ts +1244 -136
  874. package/src/eventlog/SqlEventLogServerUnencrypted.ts +2 -2
  875. package/src/eventlog/internal/batches.ts +30 -0
  876. package/src/eventlog/internal/compaction.ts +64 -0
  877. package/src/eventlog/internal/conflicts.ts +0 -4
  878. package/src/eventlog/internal/identityRootSecretDerivation.ts +93 -123
  879. package/src/eventlog/internal/remoteCompaction.ts +92 -0
  880. package/src/http/Cookies.ts +291 -12
  881. package/src/http/FetchHttpClient.ts +88 -16
  882. package/src/http/HttpClient.ts +636 -29
  883. package/src/http/HttpClientError.ts +35 -1
  884. package/src/http/HttpClientRequest.ts +21 -10
  885. package/src/http/HttpClientResponse.ts +3 -2
  886. package/src/http/HttpMethod.ts +10 -2
  887. package/src/http/HttpMiddleware.ts +15 -18
  888. package/src/http/HttpRouter.ts +2 -1
  889. package/src/http/HttpServerError.ts +2 -2
  890. package/src/http/HttpServerRequest.ts +101 -30
  891. package/src/http/HttpServerResponse.ts +3 -2
  892. package/src/http/HttpStaticServer.ts +51 -22
  893. package/src/http/HttpTraceContext.ts +7 -4
  894. package/src/http/MultipartParser/internal/contentType.ts +3 -3
  895. package/src/http/ProblemDetails.ts +149 -0
  896. package/src/http/UrlParams.ts +6 -1
  897. package/src/http/index.ts +6 -0
  898. package/src/http/internal/compression.ts +4 -5
  899. package/src/http/internal/decompression.ts +10 -4
  900. package/src/http/internal/httpBody.ts +10 -2
  901. package/src/http/internal/urlParams.ts +37 -0
  902. package/src/http-api/HttpApi.ts +3 -6
  903. package/src/http-api/HttpApiBuilder.ts +61 -19
  904. package/src/http-api/HttpApiClient.ts +284 -72
  905. package/src/http-api/HttpApiEndpoint.ts +135 -35
  906. package/src/http-api/HttpApiError.ts +250 -0
  907. package/src/http-api/HttpApiMiddleware.ts +95 -1
  908. package/src/http-api/HttpApiSchema.ts +236 -52
  909. package/src/http-api/HttpApiTest.ts +3 -2
  910. package/src/http-api/OpenApi.ts +20 -17
  911. package/src/http-api/internal/toCodecHttpProperties.ts +56 -0
  912. package/src/index.ts +6 -6
  913. package/src/internal/arbitrary/runner.ts +133 -36
  914. package/src/internal/core.ts +2 -0
  915. package/src/internal/effect.ts +58 -34
  916. package/src/internal/equal.ts +17 -0
  917. package/src/internal/glob.ts +736 -0
  918. package/src/internal/jsonSchema.ts +27 -0
  919. package/src/internal/matcher.ts +18 -1
  920. package/src/internal/persistence.ts +11 -0
  921. package/src/internal/rcRef.ts +4 -1
  922. package/src/internal/schema/compilerRegistry.ts +6 -1
  923. package/src/internal/schema/content.ts +18 -0
  924. package/src/internal/schema/fromJsonSchemaDocument.ts +228 -190
  925. package/src/internal/schema/fromRepresentation.ts +2 -1
  926. package/src/internal/schema/standardSchema.ts +2 -2
  927. package/src/internal/schema/toCodeDocument.ts +11 -7
  928. package/src/internal/schema/toCodec.ts +26 -22
  929. package/src/internal/schema/toJsonSchemaDocument.ts +189 -167
  930. package/src/internal/schema/toRepresentation.ts +122 -140
  931. package/src/internal/sql.ts +14 -0
  932. package/src/internal/trie.ts +43 -14
  933. package/src/internal/ulid.ts +44 -0
  934. package/src/internal/uuid.ts +57 -16
  935. package/src/internal/version.ts +1 -1
  936. package/src/observability/Otlp.ts +21 -4
  937. package/src/observability/OtlpProxy.ts +314 -0
  938. package/src/observability/OtlpResource.ts +9 -1
  939. package/src/observability/OtlpTracer.ts +4 -0
  940. package/src/observability/index.ts +6 -0
  941. package/src/persistence/CircuitBreaker.ts +1678 -0
  942. package/src/persistence/KeyValueStore.ts +219 -22
  943. package/src/persistence/PersistedQueue.ts +128 -59
  944. package/src/persistence/Persistence.ts +20 -13
  945. package/src/persistence/Redis.ts +129 -8
  946. package/src/persistence/index.ts +6 -0
  947. package/src/process/ChildProcess.ts +285 -264
  948. package/src/process/ChildProcessSpawner.ts +46 -2
  949. package/src/process/CommandLine.ts +630 -0
  950. package/src/process/index.ts +6 -0
  951. package/src/reactivity/AsyncResult.ts +1 -1
  952. package/src/reactivity/Atom.ts +5 -5
  953. package/src/reactivity/AtomRegistry.ts +1 -1
  954. package/src/rpc/RpcClient.ts +75 -36
  955. package/src/rpc/RpcMessage.ts +10 -1
  956. package/src/rpc/RpcSerialization.ts +35 -9
  957. package/src/rpc/RpcServer.ts +176 -63
  958. package/src/rpc/RpcTest.ts +3 -0
  959. package/src/schema/Model.ts +26 -3
  960. package/src/sql/Migrator.ts +15 -69
  961. package/src/sql/MigratorFileSystem.ts +71 -0
  962. package/src/sql/SqlClient.ts +13 -20
  963. package/src/sql/SqlResolver.ts +23 -9
  964. package/src/sql/Statement.ts +38 -9
  965. package/src/sql/index.ts +1 -1
  966. package/src/testing/index.ts +0 -6
  967. package/src/workflow/DurableDeferred.ts +23 -6
  968. package/src/workflow/internal/crypto.ts +15 -11
  969. package/dist/Crypto.d.ts +0 -244
  970. package/dist/Crypto.d.ts.map +0 -1
  971. package/dist/Crypto.js +0 -139
  972. package/dist/Crypto.js.map +0 -1
  973. package/dist/testing/TestCrypto.d.ts +0 -73
  974. package/dist/testing/TestCrypto.d.ts.map +0 -1
  975. package/dist/testing/TestCrypto.js +0 -87
  976. package/dist/testing/TestCrypto.js.map +0 -1
  977. package/src/Crypto.ts +0 -347
  978. package/src/testing/TestCrypto.ts +0 -94
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";
@@ -2127,11 +2134,18 @@ export function extendTo(fields, derive) {
2127
2134
  *
2128
2135
  * **Gotchas**
2129
2136
  *
2137
+ * Dynamic records reject value schemas wrapped with {@link optionalKey} or
2138
+ * {@link optional}. Index signatures already allow keys to be absent; use
2139
+ * {@link UndefinedOr} when existing entries may contain `undefined`. Optional
2140
+ * value schemas remain valid for finite literal keys, which become declared
2141
+ * properties.
2142
+ *
2130
2143
  * When decoded or encoded key transformations produce the same property key,
2131
2144
  * sequential parsing applies selected own properties in selection order, so
2132
2145
  * the later selected property overwrites the earlier value. Dynamic key
2133
- * selection always examines own properties. Finite literal keys are declared
2134
- * fields and may therefore be inherited. Output key order is not guaranteed.
2146
+ * selection always examines own properties. Finite literal and enum keys are
2147
+ * declared fields and may therefore be inherited. Output key order is not
2148
+ * guaranteed.
2135
2149
  *
2136
2150
  * **Example** (Defining a string-keyed record of numbers)
2137
2151
  *
@@ -3457,9 +3471,8 @@ export function link() {
3457
3471
  * )
3458
3472
  *
3459
3473
  * const result = Schema.decodeUnknownResult(schema)({ password: "123456", confirmPassword: "1234567" })
3460
- * if (Result.isFailure(result) && result.failure.issue._tag === "Filter" && result.failure.issue.issue._tag === "Pointer") {
3461
- * result.failure.issue.issue.path // => ["password"]
3462
- * }
3474
+ * const message = Result.isFailure(result) ? result.failure.message : ""
3475
+ * message // => "password and confirmPassword must match\n at [\"password\"]"
3463
3476
  * ```
3464
3477
  *
3465
3478
  * **Example** (Reporting multiple failures at once)
@@ -3479,9 +3492,8 @@ export function link() {
3479
3492
  * )
3480
3493
  *
3481
3494
  * const result = Schema.decodeUnknownResult(schema)({ a: 1, b: 0, c: 0 })
3482
- * if (Result.isFailure(result) && result.failure.issue._tag === "Filter" && result.failure.issue.issue._tag === "Composite") {
3483
- * result.failure.issue.issue.issues.map((issue) => issue._tag === "Pointer" ? issue.path : []) // => [["b"], ["c"]]
3484
- * }
3495
+ * const message = Result.isFailure(result) ? result.failure.message : ""
3496
+ * message // => "b must be greater than 0\n at [\"b\"]\nc must be greater than 0\n at [\"c\"]"
3485
3497
  * ```
3486
3498
  *
3487
3499
  * @stability stable
@@ -3567,7 +3579,7 @@ export function isPattern(regExp, annotations) {
3567
3579
  const source = regExp.source;
3568
3580
  const flags = regExp.flags;
3569
3581
  const canExport = /^[dg]*uy?$/.test(flags);
3570
- const runtimeRegExp = flags === "" ? `new RegExp(${format(source)})` : `new RegExp(${format(source)}, ${format(flags)})`;
3582
+ const runtimeRegExp = flags === "" ? `new globalThis.RegExp(${format(source)})` : `new globalThis.RegExp(${format(source)}, ${format(flags)})`;
3571
3583
  return SchemaAST.isPattern(regExp, {
3572
3584
  toJsonSchema: () => canExport ? {
3573
3585
  pattern: flags.endsWith("y") ? `^(?:${source})` : source
@@ -3709,7 +3721,7 @@ export function isUUID(version, annotations) {
3709
3721
  ...annotations
3710
3722
  });
3711
3723
  }
3712
- const GUID_REGEXP = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/;
3724
+ const GUID_REGEXP = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/u;
3713
3725
  /**
3714
3726
  * Validates that a string has the GUID / UUID textual shape.
3715
3727
  *
@@ -3742,21 +3754,22 @@ export function isGUID(annotations) {
3742
3754
  id: "effect/schema/isGUID",
3743
3755
  payload: null
3744
3756
  },
3745
- toJsonSchema: () => ({
3746
- pattern: GUID_REGEXP.source
3747
- }),
3748
3757
  toCode: () => ({
3749
3758
  runtime: "Schema.isGUID()"
3750
3759
  }),
3751
3760
  ...annotations
3752
3761
  });
3753
3762
  }
3763
+ const ULID_REGEXP = /^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/u;
3754
3764
  /**
3755
3765
  * Validates that a string is a valid ULID (Universally Unique Lexicographically
3756
3766
  * Sortable Identifier).
3757
3767
  *
3758
3768
  * **Details**
3759
3769
  *
3770
+ * Accepts uppercase and lowercase characters. The first character must be
3771
+ * between `0` and `7` so the value fits in 128 bits.
3772
+ *
3760
3773
  * JSON Schema:
3761
3774
  *
3762
3775
  * This check corresponds to a `pattern` constraint in JSON Schema that matches
@@ -3772,21 +3785,60 @@ export function isGUID(annotations) {
3772
3785
  * @since 4.0.0
3773
3786
  */
3774
3787
  export function isULID(annotations) {
3775
- const regExp = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/;
3776
- return isPattern(regExp, {
3788
+ return isPattern(ULID_REGEXP, {
3777
3789
  representation: {
3778
3790
  id: "effect/schema/isULID",
3779
3791
  payload: null
3780
3792
  },
3781
- toJsonSchema: () => ({
3782
- pattern: regExp.source
3783
- }),
3784
3793
  toCode: () => ({
3785
3794
  runtime: "Schema.isULID()"
3786
3795
  }),
3787
3796
  ...annotations
3788
3797
  });
3789
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
+ }
3790
3842
  /**
3791
3843
  * Validates that a string is valid Base64 encoded data.
3792
3844
  *
@@ -4087,15 +4139,17 @@ const CAPITALIZED_PATTERN = "^(?:[^a-z][\\s\\S]*)?$";
4087
4139
  * @since 4.0.0
4088
4140
  */
4089
4141
  export function isCapitalized(annotations) {
4090
- const regExp = new globalThis.RegExp(CAPITALIZED_PATTERN);
4091
- return makeFilter(s => s.charAt(0).toUpperCase() === s.charAt(0), {
4142
+ return makeFilter(s => {
4143
+ const [first = ""] = s;
4144
+ return first.toUpperCase() === first;
4145
+ }, {
4092
4146
  expected: "a string with the first character in uppercase",
4093
4147
  representation: {
4094
4148
  id: "effect/schema/isCapitalized",
4095
4149
  payload: null
4096
4150
  },
4097
4151
  toJsonSchema: () => [{
4098
- pattern: regExp.source
4152
+ pattern: CAPITALIZED_PATTERN
4099
4153
  }, true],
4100
4154
  toCode: () => ({
4101
4155
  runtime: "Schema.isCapitalized()"
@@ -4124,15 +4178,17 @@ const UNCAPITALIZED_PATTERN = "^(?:[^A-Z][\\s\\S]*)?$";
4124
4178
  * @since 4.0.0
4125
4179
  */
4126
4180
  export function isUncapitalized(annotations) {
4127
- const regExp = new globalThis.RegExp(UNCAPITALIZED_PATTERN);
4128
- return makeFilter(s => s.charAt(0).toLowerCase() === s.charAt(0), {
4181
+ return makeFilter(s => {
4182
+ const [first = ""] = s;
4183
+ return first.toLowerCase() === first;
4184
+ }, {
4129
4185
  expected: "a string with the first character in lowercase",
4130
4186
  representation: {
4131
4187
  id: "effect/schema/isUncapitalized",
4132
4188
  payload: null
4133
4189
  },
4134
4190
  toJsonSchema: () => [{
4135
- pattern: regExp.source
4191
+ pattern: UNCAPITALIZED_PATTERN
4136
4192
  }, true],
4137
4193
  toCode: () => ({
4138
4194
  runtime: "Schema.isUncapitalized()"
@@ -4690,7 +4746,7 @@ function encodeDatePayload(date) {
4690
4746
  return date.toISOString();
4691
4747
  }
4692
4748
  function formatDateRuntime(date) {
4693
- return `new Date(${format(date.getTime())})`;
4749
+ return `new globalThis.Date(${format(date.getTime())})`;
4694
4750
  }
4695
4751
  /**
4696
4752
  * Validates that a Date is greater than the specified value (exclusive).
@@ -6228,8 +6284,7 @@ export const DateFromString = /*#__PURE__*/DateString.pipe(/*#__PURE__*/decodeTo
6228
6284
  */
6229
6285
  export const DateFromMillis = /*#__PURE__*/Int.pipe(/*#__PURE__*/decodeTo(Date, SchemaTransformation.dateFromMillis));
6230
6286
  const JsonString = /*#__PURE__*/String.annotate({
6231
- expected: "a string that will be decoded as JSON",
6232
- contentMediaType: "application/json"
6287
+ expected: "a string that will be decoded as JSON"
6233
6288
  });
6234
6289
  /**
6235
6290
  * Returns a schema that decodes a JSON string and then decodes the parsed value
@@ -8377,6 +8432,20 @@ const durationFromMillis = /*#__PURE__*/SchemaTransformation.transform({
8377
8432
  decode: i => Duration_.millis(i),
8378
8433
  encode: a => Duration_.toMillis(a)
8379
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
+ });
8380
8449
  /**
8381
8450
  * Schema for `Duration` values.
8382
8451
  *
@@ -8516,6 +8585,30 @@ export const DurationFromNanos = /*#__PURE__*/BigInt.pipe(/*#__PURE__*/decodeTo(
8516
8585
  * @since 3.10.0
8517
8586
  */
8518
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));
8519
8612
  /**
8520
8613
  * Schema for supported DNS record types such as `"A"` or `"SRV"`.
8521
8614
  *
@@ -8745,6 +8838,568 @@ export const DnsTxtRecord = /*#__PURE__*/dnsRecordOfType("TXT", {
8745
8838
  export const DnsRecord = /*#__PURE__*/Union([DnsARecord, DnsAaaaRecord, DnsCaaRecord, DnsCnameRecord, DnsMxRecord, DnsNaptrRecord, DnsNsRecord, DnsPtrRecord, DnsSoaRecord, DnsSrvRecord, DnsTlsaRecord, DnsTxtRecord]).annotate({
8746
8839
  identifier: "DnsRecord"
8747
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);
8748
9403
  /**
8749
9404
  * Creates a schema for `Exit` values using schemas for the success value, typed
8750
9405
  * failure, and unexpected defect channels.
@@ -9764,7 +10419,7 @@ function makeClass(Inherited, identifier, struct, annotations, proto) {
9764
10419
  return getClassSchema(this).rebuild(ast);
9765
10420
  }
9766
10421
  static make(input, options) {
9767
- return SchemaParser.make(getClassSchema(this))(input ?? {}, options);
10422
+ return SchemaParser.makeClassSync(SchemaAST.toType(getClassSchema(this).ast), input ?? {}, options, fields => makeClassTrusted(this, fields));
9768
10423
  }
9769
10424
  static makeOption(input, options) {
9770
10425
  return SchemaParser.makeOption(getClassSchema(this))(input ?? {}, options);
@@ -9879,6 +10534,10 @@ function isStruct(schema) {
9879
10534
  *
9880
10535
  * **Gotchas**
9881
10536
  *
10537
+ * To subclass a `Schema.Class`, use `Base.extend<Self>(...)`, even when only
10538
+ * adding methods or getters. Pass `{}` for the fields when none are added.
10539
+ * Plain `class Child extends Base` is unsupported.
10540
+ *
9882
10541
  * Passing `disableChecks: true` skips filters and checks, not parsing of types
9883
10542
  * and structure. Wrong types and shapes are still rejected, and constructor
9884
10543
  * defaults still apply.