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
@@ -0,0 +1,484 @@
1
+ /**
2
+ * Digital signatures: Ed25519, ECDSA on P-256, P-384 and P-521, RSA-PSS, and
3
+ * RSASSA-PKCS1-v1_5.
4
+ *
5
+ * The {@link Signature} service generates key pairs, signs, verifies, and
6
+ * computes a private key's public key. The top-level {@link privateKey},
7
+ * {@link publicKey}, {@link privateKeyFromCryptoKey},
8
+ * {@link publicKeyFromCryptoKey}, and {@link toBytes} functions build and
9
+ * export keys without a service.
10
+ *
11
+ * The hash is part of the algorithm. ECDSA P-256, P-384 and P-521 sign with
12
+ * SHA-256, SHA-384 and SHA-512, as JOSE ES256, ES384 and ES512 do. RSA
13
+ * algorithms come from {@link rsaPss} and {@link rsaPkcs1v15}, with pre-made
14
+ * values such as {@link rsaPssSha256}.
15
+ *
16
+ * Keys are opaque. They hold either bytes or a `CryptoKey`, display only their
17
+ * algorithm, and compare by reference. The bytes are:
18
+ *
19
+ * - Ed25519: the 32-byte seed and the 32-byte public key;
20
+ * - ECDSA: PKCS#8 for private keys, and the uncompressed SEC1 point for public
21
+ * keys;
22
+ * - RSA: PKCS#8 and SPKI DER.
23
+ *
24
+ * Only Ed25519 private keys and Ed25519 and ECDSA public keys have a raw
25
+ * constructor. Other keys come from `Signature.generateKeyPair`,
26
+ * `CryptoKey`s, or key formats.
27
+ *
28
+ * **Gotchas**
29
+ *
30
+ * - Ed25519 needs Chrome 137, Firefox 129, or Safari 17. There is no
31
+ * fallback for older browsers.
32
+ * - Ed25519 keys are generated from `SecureRandom` bytes, so a seeded
33
+ * `SecureRandom` reproduces them. ECDSA and RSA key generation, and ECDSA
34
+ * and RSA-PSS signatures, use WebCrypto's own randomness and cannot be
35
+ * seeded. Test them with round trips such as `verify(sign(data))`.
36
+ *
37
+ * @stability unstable
38
+ * @since 4.0.0
39
+ */
40
+ import * as Context from "../Context.js";
41
+ import * as Effect from "../Effect.js";
42
+ import * as Layer from "../Layer.js";
43
+ import * as Predicate from "../Predicate.js";
44
+ import * as CryptoError from "./CryptoError.js";
45
+ import * as Digest from "./Digest.js";
46
+ import * as Asymmetric from "./internal/asymmetric.js";
47
+ import * as KeyModel from "./internal/key.js";
48
+ import * as internal from "./internal/webCrypto.js";
49
+ import * as SecureRandom from "./SecureRandom.js";
50
+ import { WebCrypto } from "./WebCrypto.js";
51
+ const PrivateKeyTypeId = "~effect/crypto/Signature/PrivateKey";
52
+ const PublicKeyTypeId = "~effect/crypto/Signature/PublicKey";
53
+ /**
54
+ * Ed25519 (RFC 8032).
55
+ *
56
+ * @stability unstable
57
+ * @category algorithms
58
+ * @since 4.0.0
59
+ */
60
+ export const ed25519 = {
61
+ _tag: "Ed25519",
62
+ name: "ed25519"
63
+ };
64
+ /**
65
+ * ECDSA on P-256 with SHA-256 (JOSE ES256), with 64-byte signatures.
66
+ *
67
+ * @stability unstable
68
+ * @category algorithms
69
+ * @since 4.0.0
70
+ */
71
+ export const ecdsaP256 = {
72
+ _tag: "Ecdsa",
73
+ name: "ecdsaP256",
74
+ namedCurve: "P-256",
75
+ hash: Digest.sha256
76
+ };
77
+ /**
78
+ * ECDSA on P-384 with SHA-384 (JOSE ES384), with 96-byte signatures.
79
+ *
80
+ * @stability unstable
81
+ * @category algorithms
82
+ * @since 4.0.0
83
+ */
84
+ export const ecdsaP384 = {
85
+ _tag: "Ecdsa",
86
+ name: "ecdsaP384",
87
+ namedCurve: "P-384",
88
+ hash: Digest.sha384
89
+ };
90
+ /**
91
+ * ECDSA on P-521 with SHA-512 (JOSE ES512), with 132-byte signatures.
92
+ *
93
+ * @stability unstable
94
+ * @category algorithms
95
+ * @since 4.0.0
96
+ */
97
+ export const ecdsaP521 = {
98
+ _tag: "Ecdsa",
99
+ name: "ecdsaP521",
100
+ namedCurve: "P-521",
101
+ hash: Digest.sha512
102
+ };
103
+ /**
104
+ * Builds an RSA-PSS algorithm for a hash and a modulus length in bits.
105
+ *
106
+ * **Details**
107
+ *
108
+ * MGF1 uses the same hash. The salt length defaults to the hash's output
109
+ * length.
110
+ *
111
+ * @stability unstable
112
+ * @category algorithms
113
+ * @since 4.0.0
114
+ */
115
+ export const rsaPss = options => ({
116
+ _tag: "RsaPss",
117
+ name: `rsaPss${Digest.nameSuffix(options.hash)}`,
118
+ hash: options.hash,
119
+ modulusLength: options.modulusLength,
120
+ saltLength: options.saltLength ?? options.hash.outputLength
121
+ });
122
+ /**
123
+ * Builds an RSASSA-PKCS1-v1_5 algorithm for a hash and a modulus length in
124
+ * bits.
125
+ *
126
+ * @stability unstable
127
+ * @category algorithms
128
+ * @since 4.0.0
129
+ */
130
+ export const rsaPkcs1v15 = options => ({
131
+ _tag: "RsaPkcs1v15",
132
+ name: `rsaPkcs1v15${Digest.nameSuffix(options.hash)}`,
133
+ hash: options.hash,
134
+ modulusLength: options.modulusLength
135
+ });
136
+ /**
137
+ * RSA-PSS with SHA-256 (JOSE PS256), generating 3072-bit keys.
138
+ *
139
+ * @stability unstable
140
+ * @category algorithms
141
+ * @since 4.0.0
142
+ */
143
+ export const rsaPssSha256 = /*#__PURE__*/rsaPss({
144
+ hash: Digest.sha256,
145
+ modulusLength: 3072
146
+ });
147
+ /**
148
+ * RSA-PSS with SHA-384 (JOSE PS384), generating 3072-bit keys.
149
+ *
150
+ * @stability unstable
151
+ * @category algorithms
152
+ * @since 4.0.0
153
+ */
154
+ export const rsaPssSha384 = /*#__PURE__*/rsaPss({
155
+ hash: Digest.sha384,
156
+ modulusLength: 3072
157
+ });
158
+ /**
159
+ * RSA-PSS with SHA-512 (JOSE PS512), generating 3072-bit keys.
160
+ *
161
+ * @stability unstable
162
+ * @category algorithms
163
+ * @since 4.0.0
164
+ */
165
+ export const rsaPssSha512 = /*#__PURE__*/rsaPss({
166
+ hash: Digest.sha512,
167
+ modulusLength: 3072
168
+ });
169
+ /**
170
+ * RSASSA-PKCS1-v1_5 with SHA-256 (JOSE RS256), generating 3072-bit keys.
171
+ *
172
+ * @stability unstable
173
+ * @category algorithms
174
+ * @since 4.0.0
175
+ */
176
+ export const rsaPkcs1v15Sha256 = /*#__PURE__*/rsaPkcs1v15({
177
+ hash: Digest.sha256,
178
+ modulusLength: 3072
179
+ });
180
+ /**
181
+ * RSASSA-PKCS1-v1_5 with SHA-384 (JOSE RS384), generating 3072-bit keys.
182
+ *
183
+ * @stability unstable
184
+ * @category algorithms
185
+ * @since 4.0.0
186
+ */
187
+ export const rsaPkcs1v15Sha384 = /*#__PURE__*/rsaPkcs1v15({
188
+ hash: Digest.sha384,
189
+ modulusLength: 3072
190
+ });
191
+ /**
192
+ * RSASSA-PKCS1-v1_5 with SHA-512 (JOSE RS512), generating 3072-bit keys.
193
+ *
194
+ * @stability unstable
195
+ * @category algorithms
196
+ * @since 4.0.0
197
+ */
198
+ export const rsaPkcs1v15Sha512 = /*#__PURE__*/rsaPkcs1v15({
199
+ hash: Digest.sha512,
200
+ modulusLength: 3072
201
+ });
202
+ const PrivateKeyProto = /*#__PURE__*/KeyModel.redactedProto(PrivateKeyTypeId, "Signature.PrivateKey");
203
+ const PublicKeyProto = /*#__PURE__*/KeyModel.redactedProto(PublicKeyTypeId, "Signature.PublicKey");
204
+ /**
205
+ * Checks whether a value is a {@link PrivateKey}.
206
+ *
207
+ * @stability unstable
208
+ * @category guards
209
+ * @since 4.0.0
210
+ */
211
+ export const isPrivateKey = u => Predicate.hasProperty(u, PrivateKeyTypeId);
212
+ /**
213
+ * Checks whether a value is a {@link PublicKey}.
214
+ *
215
+ * @stability unstable
216
+ * @category guards
217
+ * @since 4.0.0
218
+ */
219
+ export const isPublicKey = u => Predicate.hasProperty(u, PublicKeyTypeId);
220
+ const specOf = algorithm => {
221
+ const base = {
222
+ privateUsages: ["sign"],
223
+ publicUsages: ["verify"]
224
+ };
225
+ switch (algorithm._tag) {
226
+ case "Ed25519":
227
+ return {
228
+ ...base,
229
+ name: "Ed25519",
230
+ importParams: {
231
+ name: "Ed25519"
232
+ },
233
+ seedPrefix: Asymmetric.ed25519Prefix,
234
+ publicFormat: "raw"
235
+ };
236
+ case "Ecdsa":
237
+ return {
238
+ ...base,
239
+ name: "ECDSA",
240
+ importParams: {
241
+ name: "ECDSA",
242
+ namedCurve: algorithm.namedCurve
243
+ },
244
+ seedPrefix: undefined,
245
+ publicFormat: "raw",
246
+ check: Asymmetric.checkNamedCurve(algorithm.namedCurve)
247
+ };
248
+ case "RsaPss":
249
+ case "RsaPkcs1v15":
250
+ {
251
+ const name = algorithm._tag === "RsaPss" ? "RSA-PSS" : "RSASSA-PKCS1-v1_5";
252
+ return {
253
+ ...base,
254
+ name,
255
+ importParams: {
256
+ name,
257
+ hash: algorithm.hash.name
258
+ },
259
+ seedPrefix: undefined,
260
+ publicFormat: "spki",
261
+ check: Asymmetric.checkHash(algorithm.hash.name)
262
+ };
263
+ }
264
+ }
265
+ };
266
+ /** @internal */
267
+ export const family = {
268
+ module: "Signature",
269
+ specOf,
270
+ privateKeyProto: PrivateKeyProto,
271
+ publicKeyProto: PublicKeyProto,
272
+ isPrivateKey
273
+ };
274
+ const signParams = algorithm => {
275
+ switch (algorithm._tag) {
276
+ case "Ed25519":
277
+ return {
278
+ name: "Ed25519"
279
+ };
280
+ case "Ecdsa":
281
+ return {
282
+ name: "ECDSA",
283
+ hash: algorithm.hash.name
284
+ };
285
+ case "RsaPss":
286
+ return {
287
+ name: "RSA-PSS",
288
+ saltLength: algorithm.saltLength
289
+ };
290
+ case "RsaPkcs1v15":
291
+ return {
292
+ name: "RSASSA-PKCS1-v1_5"
293
+ };
294
+ }
295
+ };
296
+ const generateParams = algorithm => {
297
+ switch (algorithm._tag) {
298
+ case "Ed25519":
299
+ return {
300
+ name: "Ed25519"
301
+ };
302
+ case "Ecdsa":
303
+ return {
304
+ name: "ECDSA",
305
+ namedCurve: algorithm.namedCurve
306
+ };
307
+ case "RsaPss":
308
+ case "RsaPkcs1v15":
309
+ return Asymmetric.rsaGenerateParams(specOf(algorithm), algorithm.modulusLength);
310
+ }
311
+ };
312
+ // The length of the algorithm's signatures, which for RSA is the size of the
313
+ // key's modulus. A signature of another length is rejected without asking
314
+ // WebCrypto, so every runtime returns `false` for it.
315
+ const signatureLength = (algorithm, cryptoKey) => {
316
+ switch (algorithm._tag) {
317
+ case "Ed25519":
318
+ return 64;
319
+ case "Ecdsa":
320
+ return 2 * Asymmetric.coordinateSizes[algorithm.namedCurve];
321
+ case "RsaPss":
322
+ case "RsaPkcs1v15":
323
+ return Math.ceil(cryptoKey.algorithm.modulusLength / 8);
324
+ }
325
+ };
326
+ // RFC 8017, section 9.1.1: the encoded message must fit the hash, the salt
327
+ // and two more bytes. The modulus is only known once the key is imported, so
328
+ // the check throws inside `run`.
329
+ const checkSaltLength = (algorithm, cryptoKey) => {
330
+ if (algorithm._tag !== "RsaPss") return;
331
+ let problem;
332
+ if (!Number.isSafeInteger(algorithm.saltLength) || algorithm.saltLength < 0) {
333
+ problem = "PSS salt length must be a non-negative safe integer";
334
+ } else {
335
+ const modulusLength = cryptoKey.algorithm.modulusLength;
336
+ if (algorithm.hash.outputLength + algorithm.saltLength + 2 > Math.ceil((modulusLength - 1) / 8)) {
337
+ problem = `A ${algorithm.saltLength}-byte PSS salt does not fit a ${modulusLength}-bit key with ${algorithm.hash.name}`;
338
+ }
339
+ }
340
+ if (problem !== undefined) throw new internal.Failure(new CryptoError.InvalidArgument({
341
+ description: problem
342
+ }));
343
+ };
344
+ /**
345
+ * Service that generates key pairs, signs, verifies, and computes public keys.
346
+ *
347
+ * **Example** (Signing and verifying with Ed25519)
348
+ *
349
+ * ```ts import.meta.vitest
350
+ * import { Effect, Layer } from "effect"
351
+ * import { SecureRandom, Signature } from "effect/crypto"
352
+ *
353
+ * const program = Effect.gen(function*() {
354
+ * const signature = yield* Signature.Signature
355
+ * const { privateKey, publicKey } = yield* signature.generateKeyPair(Signature.ed25519)
356
+ * const data = new TextEncoder().encode("message")
357
+ * const signed = yield* signature.sign(privateKey, data)
358
+ * return [signed.length, yield* signature.verify(publicKey, signed, data)]
359
+ * })
360
+ *
361
+ * const layer = Signature.layerWebCrypto.pipe(Layer.provide(SecureRandom.layerWebCrypto))
362
+ * await Effect.runPromise(program.pipe(Effect.provide(layer))) // => [64, true]
363
+ * ```
364
+ *
365
+ * @stability unstable
366
+ * @category services
367
+ * @since 4.0.0
368
+ */
369
+ export class Signature extends /*#__PURE__*/Context.Service()("effect/crypto/Signature") {}
370
+ /**
371
+ * Layer that provides `Signature` on the `WebCrypto` reference.
372
+ *
373
+ * **Details**
374
+ *
375
+ * Every algorithm runs on `crypto.subtle`. The layer imports a byte-backed
376
+ * key on first use and caches the `CryptoKey`. Ed25519 private keys come from
377
+ * `SecureRandom`, so a seeded `SecureRandom` reproduces them.
378
+ *
379
+ * @stability unstable
380
+ * @category layers
381
+ * @since 4.0.0
382
+ */
383
+ export const layerWebCrypto = /*#__PURE__*/Layer.effect(Signature, /*#__PURE__*/Effect.gen(function* () {
384
+ const random = yield* SecureRandom.SecureRandom;
385
+ const crypto = yield* WebCrypto;
386
+ const caches = Asymmetric.makeCaches(family);
387
+ return Signature.of({
388
+ generateKeyPair: algorithm => Asymmetric.generateKeyPair(family, crypto, random, algorithm, generateParams(algorithm)),
389
+ sign: (privateKey, data) => internal.run("Signature", "sign", privateKey.algorithm.name, crypto, async subtle => {
390
+ const cryptoKey = await caches.privateKey(subtle, privateKey);
391
+ checkSaltLength(privateKey.algorithm, cryptoKey);
392
+ return new Uint8Array(await subtle.sign(signParams(privateKey.algorithm), cryptoKey, data));
393
+ }),
394
+ verify: (publicKey, signature, data) => internal.run("Signature", "verify", publicKey.algorithm.name, crypto, async subtle => {
395
+ const cryptoKey = await caches.publicKey(subtle, publicKey);
396
+ checkSaltLength(publicKey.algorithm, cryptoKey);
397
+ if (signature.length !== signatureLength(publicKey.algorithm, cryptoKey)) return false;
398
+ return subtle.verify(signParams(publicKey.algorithm), cryptoKey, signature, data);
399
+ }, cause => Asymmetric.publicKeyError("Signature", "verify", publicKey, cause)),
400
+ publicKeyOf: privateKey => Asymmetric.publicKeyOf(family, crypto, privateKey)
401
+ });
402
+ }));
403
+ /**
404
+ * Builds an Ed25519 private key from its 32-byte seed.
405
+ *
406
+ * **Details**
407
+ *
408
+ * The bytes are copied. Another length fails with an `InvalidKey` reason,
409
+ * including the 64-byte `seed‖public key` form libsodium and TweetNaCl use:
410
+ * pass its first 32 bytes. ECDSA and RSA private keys have no raw form, so
411
+ * passing them is a type error.
412
+ *
413
+ * @stability unstable
414
+ * @category constructors
415
+ * @since 4.0.0
416
+ */
417
+ export const privateKey = (algorithm, bytes) => KeyModel.fromBytes("Signature", "privateKey", PrivateKeyProto, algorithm, bytes, Asymmetric.checkSeedLength("Ed25519", "private"));
418
+ /**
419
+ * Builds a public key from its raw form: 32 bytes for Ed25519, or an
420
+ * uncompressed SEC1 point for ECDSA.
421
+ *
422
+ * **Details**
423
+ *
424
+ * The bytes are copied. A wrong length, or a compressed point, fails with an
425
+ * `InvalidKey` reason. Only uncompressed points are taken because Safari and
426
+ * Firefox before 146 reject compressed ones in raw import, though they accept
427
+ * them inside SPKI: decode a compressed point with `KeyFormat.spki`. Whether a
428
+ * point is on the curve is checked when the key is first used. RSA public keys have
429
+ * no raw form, so passing them is a type error.
430
+ *
431
+ * @stability unstable
432
+ * @category constructors
433
+ * @since 4.0.0
434
+ */
435
+ export const publicKey = (algorithm, bytes) => KeyModel.fromBytes("Signature", "publicKey", PublicKeyProto, algorithm, bytes, algorithm._tag === "Ecdsa" ? Asymmetric.checkPoint(algorithm.namedCurve) : Asymmetric.checkSeedLength("Ed25519", "public"));
436
+ /**
437
+ * Builds a private key from an existing `CryptoKey`, such as a
438
+ * non-extractable one.
439
+ *
440
+ * **Details**
441
+ *
442
+ * The `CryptoKey` must be a private key of the algorithm's WebCrypto name,
443
+ * curve or hash, with the `sign` usage. Otherwise the constructor fails with
444
+ * an `InvalidKey` reason. The modulus length of an RSA algorithm is not
445
+ * checked. The key must come from the `Crypto` object of the `WebCrypto`
446
+ * reference.
447
+ *
448
+ * @stability unstable
449
+ * @category constructors
450
+ * @since 4.0.0
451
+ */
452
+ export const privateKeyFromCryptoKey = (algorithm, cryptoKey) => Asymmetric.fromCryptoKey(family, "privateKeyFromCryptoKey", algorithm, "private", cryptoKey);
453
+ /**
454
+ * Builds a public key from an existing `CryptoKey`.
455
+ *
456
+ * **Details**
457
+ *
458
+ * The `CryptoKey` must be a public key of the algorithm's WebCrypto name,
459
+ * curve or hash, with the `verify` usage. Otherwise the constructor fails
460
+ * with an `InvalidKey` reason. The key must come from the `Crypto` object of
461
+ * the `WebCrypto` reference.
462
+ *
463
+ * @stability unstable
464
+ * @category constructors
465
+ * @since 4.0.0
466
+ */
467
+ export const publicKeyFromCryptoKey = (algorithm, cryptoKey) => Asymmetric.fromCryptoKey(family, "publicKeyFromCryptoKey", algorithm, "public", cryptoKey);
468
+ /**
469
+ * Exports a key's stored bytes.
470
+ *
471
+ * **Details**
472
+ *
473
+ * Returns a fresh `Uint8Array`: the seed or raw public key for Ed25519,
474
+ * PKCS#8 or the uncompressed point for ECDSA, and PKCS#8 or SPKI DER for
475
+ * RSA. A `CryptoKey`-backed key is exported on the `WebCrypto` reference, and
476
+ * fails with a `NotExtractable` reason when the `CryptoKey` is not
477
+ * extractable.
478
+ *
479
+ * @stability unstable
480
+ * @category converting
481
+ * @since 4.0.0
482
+ */
483
+ export const toBytes = key => Asymmetric.toBytes(family, key);
484
+ //# sourceMappingURL=Signature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Signature.js","names":[],"sources":["../../src/crypto/Signature.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCA,OAAO,KAAK,OAAO,MAAM,eAAe;AACxC,OAAO,KAAK,MAAM,MAAM,cAAc;AAEtC,OAAO,KAAK,KAAK,MAAM,aAAa;AACpC,OAAO,KAAK,SAAS,MAAM,iBAAiB;AAC5C,OAAO,KAAK,WAAW,MAAM,kBAAkB;AAC/C,OAAO,KAAK,MAAM,MAAM,aAAa;AACrC,OAAO,KAAK,UAAU,MAAM,0BAA0B;AACtD,OAAO,KAAK,QAAQ,MAAM,mBAAmB;AAC7C,OAAO,KAAK,QAAQ,MAAM,yBAAyB;AACnD,OAAO,KAAK,YAAY,MAAM,mBAAmB;AACjD,SAAS,SAAS,QAAQ,gBAAgB;AAE1C,MAAM,gBAAgB,GAAG,qCAA8C;AACvE,MAAM,eAAe,GAAG,oCAA6C;AAqFrE;;;;;;;AAOA,OAAO,MAAM,OAAO,GAAY;EAAE,IAAI,EAAE,SAAS;EAAE,IAAI,EAAE;AAAS,CAAE;AAEpE;;;;;;;AAOA,OAAO,MAAM,SAAS,GAAmB;EAAE,IAAI,EAAE,OAAO;EAAE,IAAI,EAAE,WAAW;EAAE,UAAU,EAAE,OAAO;EAAE,IAAI,EAAE,MAAM,CAAC;AAAM,CAAE;AAEvH;;;;;;;AAOA,OAAO,MAAM,SAAS,GAAmB;EAAE,IAAI,EAAE,OAAO;EAAE,IAAI,EAAE,WAAW;EAAE,UAAU,EAAE,OAAO;EAAE,IAAI,EAAE,MAAM,CAAC;AAAM,CAAE;AAEvH;;;;;;;AAOA,OAAO,MAAM,SAAS,GAAmB;EAAE,IAAI,EAAE,OAAO;EAAE,IAAI,EAAE,WAAW;EAAE,UAAU,EAAE,OAAO;EAAE,IAAI,EAAE,MAAM,CAAC;AAAM,CAAE;AAEvH;;;;;;;;;;;;AAYA,OAAO,MAAM,MAAM,GAAI,OAItB,KAAc;EACb,IAAI,EAAE,QAAQ;EACd,IAAI,EAAE,SAAS,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;EAChD,IAAI,EAAE,OAAO,CAAC,IAAI;EAClB,aAAa,EAAE,OAAO,CAAC,aAAa;EACpC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAChD,CAAC;AAEF;;;;;;;;AAQA,OAAO,MAAM,WAAW,GAAI,OAG3B,KAAmB;EAClB,IAAI,EAAE,aAAa;EACnB,IAAI,EAAE,cAAc,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;EACrD,IAAI,EAAE,OAAO,CAAC,IAAI;EAClB,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF;;;;;;;AAOA,OAAO,MAAM,YAAY,gBAAW,MAAM,CAAC;EAAE,IAAI,EAAE,MAAM,CAAC,MAAM;EAAE,aAAa,EAAE;AAAI,CAAE,CAAC;AAExF;;;;;;;AAOA,OAAO,MAAM,YAAY,gBAAW,MAAM,CAAC;EAAE,IAAI,EAAE,MAAM,CAAC,MAAM;EAAE,aAAa,EAAE;AAAI,CAAE,CAAC;AAExF;;;;;;;AAOA,OAAO,MAAM,YAAY,gBAAW,MAAM,CAAC;EAAE,IAAI,EAAE,MAAM,CAAC,MAAM;EAAE,aAAa,EAAE;AAAI,CAAE,CAAC;AAExF;;;;;;;AAOA,OAAO,MAAM,iBAAiB,gBAAgB,WAAW,CAAC;EAAE,IAAI,EAAE,MAAM,CAAC,MAAM;EAAE,aAAa,EAAE;AAAI,CAAE,CAAC;AAEvG;;;;;;;AAOA,OAAO,MAAM,iBAAiB,gBAAgB,WAAW,CAAC;EAAE,IAAI,EAAE,MAAM,CAAC,MAAM;EAAE,aAAa,EAAE;AAAI,CAAE,CAAC;AAEvG;;;;;;;AAOA,OAAO,MAAM,iBAAiB,gBAAgB,WAAW,CAAC;EAAE,IAAI,EAAE,MAAM,CAAC,MAAM;EAAE,aAAa,EAAE;AAAI,CAAE,CAAC;AAkDvG,MAAM,eAAe,gBAAG,QAAQ,CAAC,aAAa,CAAC,gBAAgB,EAAE,sBAAsB,CAAC;AACxF,MAAM,cAAc,gBAAG,QAAQ,CAAC,aAAa,CAAC,eAAe,EAAE,qBAAqB,CAAC;AAErF;;;;;;;AAOA,OAAO,MAAM,YAAY,GAAI,CAAU,IAAsB,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,gBAAgB,CAAC;AAEvG;;;;;;;AAOA,OAAO,MAAM,WAAW,GAAI,CAAU,IAAqB,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,eAAe,CAAC;AAEpG,MAAM,MAAM,GAAI,SAAoB,IAAqB;EACvD,MAAM,IAAI,GAAG;IAAE,aAAa,EAAE,CAAC,MAAM,CAAC;IAAE,YAAY,EAAE,CAAC,QAAQ;EAAC,CAAW;EAC3E,QAAQ,SAAS,CAAC,IAAI;IACpB,KAAK,SAAS;MACZ,OAAO;QACL,GAAG,IAAI;QACP,IAAI,EAAE,SAAS;QACf,YAAY,EAAE;UAAE,IAAI,EAAE;QAAS,CAAE;QACjC,UAAU,EAAE,UAAU,CAAC,aAAa;QACpC,YAAY,EAAE;OACf;IACH,KAAK,OAAO;MACV,OAAO;QACL,GAAG,IAAI;QACP,IAAI,EAAE,OAAO;QACb,YAAY,EAAE;UAAE,IAAI,EAAE,OAAO;UAAE,UAAU,EAAE,SAAS,CAAC;QAAU,CAAE;QACjE,UAAU,EAAE,SAAS;QACrB,YAAY,EAAE,KAAK;QACnB,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU;OACvD;IACH,KAAK,QAAQ;IACb,KAAK,aAAa;MAAE;QAClB,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,KAAK,QAAQ,GAAG,SAAS,GAAG,mBAAmB;QAC1E,OAAO;UACL,GAAG,IAAI;UACP,IAAI;UACJ,YAAY,EAAE;YAAE,IAAI;YAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;UAAI,CAAE;UACjD,UAAU,EAAE,SAAS;UACrB,YAAY,EAAE,MAAM;UACpB,KAAK,EAAE,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI;SAChD;MACH;EACF;AACF,CAAC;AAED;AACA,OAAO,MAAM,MAAM,GAAsB;EACvC,MAAM,EAAE,WAAW;EACnB,MAAM;EACN,eAAe,EAAE,eAAe;EAChC,cAAc,EAAE,cAAc;EAC9B;CACD;AAED,MAAM,UAAU,GAAI,SAAoB,IAAsD;EAC5F,QAAQ,SAAS,CAAC,IAAI;IACpB,KAAK,SAAS;MACZ,OAAO;QAAE,IAAI,EAAE;MAAS,CAAE;IAC5B,KAAK,OAAO;MACV,OAAO;QAAE,IAAI,EAAE,OAAO;QAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC;MAAI,CAAE;IACrD,KAAK,QAAQ;MACX,OAAO;QAAE,IAAI,EAAE,SAAS;QAAE,UAAU,EAAE,SAAS,CAAC;MAAU,CAAE;IAC9D,KAAK,aAAa;MAChB,OAAO;QAAE,IAAI,EAAE;MAAmB,CAAE;EACxC;AACF,CAAC;AAED,MAAM,cAAc,GAAI,SAAoB,IAAkE;EAC5G,QAAQ,SAAS,CAAC,IAAI;IACpB,KAAK,SAAS;MACZ,OAAO;QAAE,IAAI,EAAE;MAAS,CAAE;IAC5B,KAAK,OAAO;MACV,OAAO;QAAE,IAAI,EAAE,OAAO;QAAE,UAAU,EAAE,SAAS,CAAC;MAAU,CAAE;IAC5D,KAAK,QAAQ;IACb,KAAK,aAAa;MAChB,OAAO,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,aAAa,CAAC;EACnF;AACF,CAAC;AAED;AACA;AACA;AACA,MAAM,eAAe,GAAG,CAAC,SAAoB,EAAE,SAAoB,KAAY;EAC7E,QAAQ,SAAS,CAAC,IAAI;IACpB,KAAK,SAAS;MACZ,OAAO,EAAE;IACX,KAAK,OAAO;MACV,OAAO,CAAC,GAAG,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,UAAU,CAAC;IAC7D,KAAK,QAAQ;IACb,KAAK,aAAa;MAChB,OAAO,IAAI,CAAC,IAAI,CAAE,SAAS,CAAC,SAAmC,CAAC,aAAa,GAAG,CAAC,CAAC;EACtF;AACF,CAAC;AAED;AACA;AACA;AACA,MAAM,eAAe,GAAG,CAAC,SAAoB,EAAE,SAAoB,KAAU;EAC3E,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE;EACjC,IAAI,OAA2B;EAC/B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC,UAAU,GAAG,CAAC,EAAE;IAC3E,OAAO,GAAG,qDAAqD;EACjE,CAAC,MAAM;IACL,MAAM,aAAa,GAAI,SAAS,CAAC,SAAmC,CAAC,aAAa;IAClF,IAAI,SAAS,CAAC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;MAC/F,OAAO,GACL,KAAK,SAAS,CAAC,UAAU,iCAAiC,aAAa,iBAAiB,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE;IACjH;EACF;EACA,IAAI,OAAO,KAAK,SAAS,EAAE,MAAM,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,WAAW,CAAC,eAAe,CAAC;IAAE,WAAW,EAAE;EAAO,CAAE,CAAC,CAAC;AAClH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,OAAM,MAAO,SAAU,sBAAQ,OAAO,CAAC,OAAO,EA8B1C,CAAC,yBAAyB,CAAC;AAE/B;;;;;;;;;;;;;AAaA,OAAO,MAAM,cAAc,gBAA6D,KAAK,CAAC,MAAM,CAClG,SAAS,eACT,MAAM,CAAC,GAAG,CAAC,aAAS;EAClB,MAAM,MAAM,GAAG,OAAO,YAAY,CAAC,YAAY;EAC/C,MAAM,MAAM,GAAG,OAAO,SAAS;EAC/B,MAAM,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC;EAC5C,OAAO,SAAS,CAAC,EAAE,CAAC;IAClB,eAAe,EAAwB,SAAY,IACjD,UAAU,CAAC,eAAe,CAAa,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;IACtG,IAAI,EAAE,CAAC,UAAU,EAAE,IAAI,KACrB,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAO,MAAM,IAAI;MACpF,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC;MAC7D,eAAe,CAAC,UAAU,CAAC,SAAS,EAAE,SAAS,CAAC;MAChD,OAAO,IAAI,UAAU,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,IAAoB,CAAC,CAAC;IAC7G,CAAC,CAAC;IACJ,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,KACjC,QAAQ,CAAC,GAAG,CACV,WAAW,EACX,QAAQ,EACR,SAAS,CAAC,SAAS,CAAC,IAAI,EACxB,MAAM,EACN,MAAO,MAAM,IAAI;MACf,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC;MAC3D,eAAe,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC;MAC/C,IAAI,SAAS,CAAC,MAAM,KAAK,eAAe,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,OAAO,KAAK;MACtF,OAAO,MAAM,CAAC,MAAM,CAClB,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,EAC/B,SAAS,EACT,SAAyB,EACzB,IAAoB,CACrB;IACH,CAAC,EACA,KAAK,IAAK,UAAU,CAAC,cAAc,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,CAC9E;IACH,WAAW,EAAwB,UAAyB,IAC1D,UAAU,CAAC,WAAW,CAAe,MAAM,EAAE,MAAM,EAAE,UAAU;GAClE,CAAC;AACJ,CAAC,CAAC,CACH;AAED;;;;;;;;;;;;;;AAcA,OAAO,MAAM,UAAU,GAAG,CAGxB,SAAY,EACZ,KAAiB,KAEjB,QAAQ,CAAC,SAAS,CAChB,WAAW,EACX,YAAY,EACZ,eAAe,EACf,SAAS,EACT,KAAK,EACL,UAAU,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CACjD;AAEH;;;;;;;;;;;;;;;;;AAiBA,OAAO,MAAM,SAAS,GAAG,CAGvB,SAAY,EACZ,KAAiB,KAEjB,QAAQ,CAAC,SAAS,CAChB,WAAW,EACX,WAAW,EACX,cAAc,EACd,SAAS,EACT,KAAK,EACL,SAAS,CAAC,IAAI,KAAK,OAAO,GACtB,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,UAAU,CAAC,GAC3C,UAAU,CAAC,eAAe,CAAC,SAAS,EAAE,QAAQ,CAAC,CACpD;AAEH;;;;;;;;;;;;;;;;AAgBA,OAAO,MAAM,uBAAuB,GAAG,CACrC,SAAY,EACZ,SAAoB,KAEpB,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,yBAAyB,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;AAE9F;;;;;;;;;;;;;;AAcA,OAAO,MAAM,sBAAsB,GAAG,CACpC,SAAY,EACZ,SAAoB,KAEpB,UAAU,CAAC,aAAa,CAAC,MAAM,EAAE,wBAAwB,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC;AAE5F;;;;;;;;;;;;;;;AAeA,OAAO,MAAM,OAAO,GAAI,GAA2B,IACjD,UAAU,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC","ignoreList":[]}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * The WebCrypto `Crypto` object that the `effect/crypto` modules run on.
3
+ *
4
+ * The `layerWebCrypto` layers of the family modules, such as
5
+ * `Digest.layerWebCrypto`, and key functions that touch
6
+ * `crypto.subtle`, such as `Mac.toBytes`, read the {@link WebCrypto}
7
+ * reference. It defaults to `globalThis.crypto`. Provide {@link layer} to run
8
+ * them on a polyfill, a worker's object, or a test double.
9
+ *
10
+ * **Gotchas**
11
+ *
12
+ * Browsers expose `crypto.subtle` only in secure contexts. Elsewhere, every
13
+ * operation that needs it dies with "crypto.subtle is unavailable". Layers
14
+ * still build, and `SecureRandom` and the pure TypeScript algorithms, such as
15
+ * MD5, keep working.
16
+ *
17
+ * @stability unstable
18
+ * @since 4.0.0
19
+ */
20
+ import * as Context from "../Context.ts";
21
+ import * as Layer from "../Layer.ts";
22
+ /**
23
+ * Reference to the WebCrypto `Crypto` object, defaulting to
24
+ * `globalThis.crypto`.
25
+ *
26
+ * @see {@link layer} for replacing it
27
+ *
28
+ * @stability unstable
29
+ * @category references
30
+ * @since 4.0.0
31
+ */
32
+ export declare const WebCrypto: Context.Reference<Crypto>;
33
+ /**
34
+ * Layer that sets the {@link WebCrypto} reference.
35
+ *
36
+ * **When to use**
37
+ *
38
+ * Use to run the `effect/crypto` modules on a polyfill, a worker's `Crypto`
39
+ * object, or a test double.
40
+ *
41
+ * **Example** (Using a `Crypto` polyfill)
42
+ *
43
+ * ```ts import.meta.vitest
44
+ * import { Effect } from "effect"
45
+ * import { Digest, WebCrypto } from "effect/crypto"
46
+ *
47
+ * const program = Effect.gen(function*() {
48
+ * const digest = yield* Digest.Digest
49
+ * return yield* digest.digestHex(Digest.sha256, new TextEncoder().encode("abc"))
50
+ * }).pipe(Effect.provide(Digest.layerWebCrypto))
51
+ *
52
+ * const hex = await Effect.runPromise(program.pipe(Effect.provide(WebCrypto.layer(globalThis.crypto))))
53
+ * hex.length // => 64
54
+ * ```
55
+ *
56
+ * @stability unstable
57
+ * @category layers
58
+ * @since 4.0.0
59
+ */
60
+ export declare const layer: (crypto: Crypto) => Layer.Layer<never>;
61
+ //# sourceMappingURL=WebCrypto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebCrypto.d.ts","sourceRoot":"","sources":["../../src/crypto/WebCrypto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,KAAK,MAAM,aAAa,CAAA;AAEpC;;;;;;;;;GASG;AACH,eAAO,MAAM,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,CAE9C,CAAA;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,KAAK,WAAY,MAAM,KAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAqC,CAAA"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * The WebCrypto `Crypto` object that the `effect/crypto` modules run on.
3
+ *
4
+ * The `layerWebCrypto` layers of the family modules, such as
5
+ * `Digest.layerWebCrypto`, and key functions that touch
6
+ * `crypto.subtle`, such as `Mac.toBytes`, read the {@link WebCrypto}
7
+ * reference. It defaults to `globalThis.crypto`. Provide {@link layer} to run
8
+ * them on a polyfill, a worker's object, or a test double.
9
+ *
10
+ * **Gotchas**
11
+ *
12
+ * Browsers expose `crypto.subtle` only in secure contexts. Elsewhere, every
13
+ * operation that needs it dies with "crypto.subtle is unavailable". Layers
14
+ * still build, and `SecureRandom` and the pure TypeScript algorithms, such as
15
+ * MD5, keep working.
16
+ *
17
+ * @stability unstable
18
+ * @since 4.0.0
19
+ */
20
+ import * as Context from "../Context.js";
21
+ import * as Layer from "../Layer.js";
22
+ /**
23
+ * Reference to the WebCrypto `Crypto` object, defaulting to
24
+ * `globalThis.crypto`.
25
+ *
26
+ * @see {@link layer} for replacing it
27
+ *
28
+ * @stability unstable
29
+ * @category references
30
+ * @since 4.0.0
31
+ */
32
+ export const WebCrypto = /*#__PURE__*/Context.Reference("effect/crypto/WebCrypto", {
33
+ defaultValue: () => globalThis.crypto
34
+ });
35
+ /**
36
+ * Layer that sets the {@link WebCrypto} reference.
37
+ *
38
+ * **When to use**
39
+ *
40
+ * Use to run the `effect/crypto` modules on a polyfill, a worker's `Crypto`
41
+ * object, or a test double.
42
+ *
43
+ * **Example** (Using a `Crypto` polyfill)
44
+ *
45
+ * ```ts import.meta.vitest
46
+ * import { Effect } from "effect"
47
+ * import { Digest, WebCrypto } from "effect/crypto"
48
+ *
49
+ * const program = Effect.gen(function*() {
50
+ * const digest = yield* Digest.Digest
51
+ * return yield* digest.digestHex(Digest.sha256, new TextEncoder().encode("abc"))
52
+ * }).pipe(Effect.provide(Digest.layerWebCrypto))
53
+ *
54
+ * const hex = await Effect.runPromise(program.pipe(Effect.provide(WebCrypto.layer(globalThis.crypto))))
55
+ * hex.length // => 64
56
+ * ```
57
+ *
58
+ * @stability unstable
59
+ * @category layers
60
+ * @since 4.0.0
61
+ */
62
+ export const layer = crypto => Layer.succeed(WebCrypto, crypto);
63
+ //# sourceMappingURL=WebCrypto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebCrypto.js","names":[],"sources":["../../src/crypto/WebCrypto.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;AAmBA,OAAO,KAAK,OAAO,MAAM,eAAe;AACxC,OAAO,KAAK,KAAK,MAAM,aAAa;AAEpC;;;;;;;;;;AAUA,OAAO,MAAM,SAAS,gBAA8B,OAAO,CAAC,SAAS,CAAS,yBAAyB,EAAE;EACvG,YAAY,EAAE,MAAM,UAAU,CAAC;CAChC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,OAAO,MAAM,KAAK,GAAI,MAAc,IAAyB,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC","ignoreList":[]}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * @stability unstable
3
+ * @since 4.0.0
4
+ */
5
+ /**
6
+ * @stability unstable
7
+ * @since 4.0.0
8
+ */
9
+ export * as Aead from "./Aead.ts";
10
+ /**
11
+ * @stability unstable
12
+ * @since 4.0.0
13
+ */
14
+ export * as Cipher from "./Cipher.ts";
15
+ /**
16
+ * @stability unstable
17
+ * @since 4.0.0
18
+ */
19
+ export * as CryptoError from "./CryptoError.ts";
20
+ /**
21
+ * @stability unstable
22
+ * @since 4.0.0
23
+ */
24
+ export * as Digest from "./Digest.ts";
25
+ /**
26
+ * @stability unstable
27
+ * @since 4.0.0
28
+ */
29
+ export * as Kdf from "./Kdf.ts";
30
+ /**
31
+ * @stability unstable
32
+ * @since 4.0.0
33
+ */
34
+ export * as KeyAgreement from "./KeyAgreement.ts";
35
+ /**
36
+ * @stability unstable
37
+ * @since 4.0.0
38
+ */
39
+ export * as KeyFormat from "./KeyFormat.ts";
40
+ /**
41
+ * @stability unstable
42
+ * @since 4.0.0
43
+ */
44
+ export * as KeyWrap from "./KeyWrap.ts";
45
+ /**
46
+ * @stability unstable
47
+ * @since 4.0.0
48
+ */
49
+ export * as Mac from "./Mac.ts";
50
+ /**
51
+ * @stability unstable
52
+ * @since 4.0.0
53
+ */
54
+ export * as SecureRandom from "./SecureRandom.ts";
55
+ /**
56
+ * @stability unstable
57
+ * @since 4.0.0
58
+ */
59
+ export * as Signature from "./Signature.ts";
60
+ /**
61
+ * @stability unstable
62
+ * @since 4.0.0
63
+ */
64
+ export * as WebCrypto from "./WebCrypto.ts";
65
+ //# sourceMappingURL=index.d.ts.map