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,288 @@
1
+ /**
2
+ * Message authentication codes: HMAC with SHA-1, SHA-256, SHA-384, or
3
+ * SHA-512.
4
+ *
5
+ * The {@link Mac} service generates keys, signs data, and verifies tags. The
6
+ * top-level {@link key}, {@link fromCryptoKey}, and {@link toBytes} functions
7
+ * build and export keys without a service, and {@link timingSafeEqual}
8
+ * compares byte arrays in constant time.
9
+ *
10
+ * Keys are opaque. They hold either key bytes or a `CryptoKey`, display only
11
+ * their algorithm, and compare by reference.
12
+ *
13
+ * @stability unstable
14
+ * @since 4.0.0
15
+ */
16
+ import * as Context from "../Context.js";
17
+ import * as Effect from "../Effect.js";
18
+ import * as Layer from "../Layer.js";
19
+ import * as Predicate from "../Predicate.js";
20
+ import * as Digest from "./Digest.js";
21
+ import * as KeyModel from "./internal/key.js";
22
+ import * as internal from "./internal/webCrypto.js";
23
+ import * as SecureRandom from "./SecureRandom.js";
24
+ import { WebCrypto } from "./WebCrypto.js";
25
+ const TypeId = "~effect/crypto/Mac/Key";
26
+ /**
27
+ * HMAC with SHA-1, with a 20-byte tag.
28
+ *
29
+ * **Gotchas**
30
+ *
31
+ * HMAC-SHA-1 is still secure as a MAC, but use it only for interoperability
32
+ * with existing protocols.
33
+ *
34
+ * @stability unstable
35
+ * @category algorithms
36
+ * @since 4.0.0
37
+ */
38
+ export const hmacSha1 = {
39
+ name: "hmacSha1",
40
+ hash: Digest.sha1
41
+ };
42
+ /**
43
+ * HMAC with SHA-256, with a 32-byte tag.
44
+ *
45
+ * @stability unstable
46
+ * @category algorithms
47
+ * @since 4.0.0
48
+ */
49
+ export const hmacSha256 = {
50
+ name: "hmacSha256",
51
+ hash: Digest.sha256
52
+ };
53
+ /**
54
+ * HMAC with SHA-384, with a 48-byte tag.
55
+ *
56
+ * @stability unstable
57
+ * @category algorithms
58
+ * @since 4.0.0
59
+ */
60
+ export const hmacSha384 = {
61
+ name: "hmacSha384",
62
+ hash: Digest.sha384
63
+ };
64
+ /**
65
+ * HMAC with SHA-512, with a 64-byte tag.
66
+ *
67
+ * @stability unstable
68
+ * @category algorithms
69
+ * @since 4.0.0
70
+ */
71
+ export const hmacSha512 = {
72
+ name: "hmacSha512",
73
+ hash: Digest.sha512
74
+ };
75
+ const KeyProto = /*#__PURE__*/KeyModel.redactedProto(TypeId, "Mac.Key");
76
+ /**
77
+ * Checks whether a value is a {@link Key}.
78
+ *
79
+ * @stability unstable
80
+ * @category guards
81
+ * @since 4.0.0
82
+ */
83
+ export const isKey = u => Predicate.hasProperty(u, TypeId);
84
+ // Generated keys have the hash's block size, as Web Crypto generates them.
85
+ const blockSizes = {
86
+ "MD5": 64,
87
+ "SHA-1": 64,
88
+ "SHA-256": 64,
89
+ "SHA-384": 128,
90
+ "SHA-512": 128
91
+ };
92
+ /**
93
+ * Service that generates HMAC keys, signs data, and verifies tags.
94
+ *
95
+ * **Example** (Signing and verifying a message)
96
+ *
97
+ * ```ts import.meta.vitest
98
+ * import { Effect, Layer } from "effect"
99
+ * import { Mac, SecureRandom } from "effect/crypto"
100
+ *
101
+ * const program = Effect.gen(function*() {
102
+ * const mac = yield* Mac.Mac
103
+ * const key = yield* mac.generateKey(Mac.hmacSha256)
104
+ * const data = new TextEncoder().encode("message")
105
+ * const tag = yield* mac.sign(key, data)
106
+ * return yield* mac.verify(key, tag, data)
107
+ * })
108
+ *
109
+ * const layer = Mac.layerWebCrypto.pipe(Layer.provide(SecureRandom.layerWebCrypto))
110
+ * const valid = await Effect.runPromise(program.pipe(Effect.provide(layer)))
111
+ * valid // => true
112
+ * ```
113
+ *
114
+ * @stability unstable
115
+ * @category services
116
+ * @since 4.0.0
117
+ */
118
+ export class Mac extends /*#__PURE__*/Context.Service()("effect/crypto/Mac") {}
119
+ const importParams = algorithm => ({
120
+ name: "HMAC",
121
+ hash: algorithm.hash.name
122
+ });
123
+ /**
124
+ * Builds a `Mac` layer on the `WebCrypto` reference that can sign and verify
125
+ * byte-backed keys with a synchronous HMAC primitive.
126
+ *
127
+ * **When to use**
128
+ *
129
+ * Use to run HMAC on a runtime's native code, as `NodeCrypto.layerMac` does
130
+ * with `createHmac` from `node:crypto`.
131
+ *
132
+ * **Details**
133
+ *
134
+ * `hmac` receives the hash name, the key bytes, and the data, and returns the
135
+ * tag. It runs only for byte-backed keys. `CryptoKey`-backed keys run on
136
+ * `crypto.subtle`, and generated keys come from `SecureRandom`, as in
137
+ * {@link layerWebCrypto}. `verify` computes the tag with `hmac` and compares
138
+ * it with {@link timingSafeEqual}. Without `hmac`, the layer is
139
+ * {@link layerWebCrypto}.
140
+ *
141
+ * **Gotchas**
142
+ *
143
+ * `hmac` receives the key's own bytes, not a copy, so it must not modify or
144
+ * keep them.
145
+ *
146
+ * **Example** (Signing with a native HMAC)
147
+ *
148
+ * ```ts
149
+ * import { Layer } from "effect"
150
+ * import { Mac, SecureRandom } from "effect/crypto"
151
+ *
152
+ * declare const nativeHmac: (hash: string, key: Uint8Array, data: Uint8Array) => Uint8Array
153
+ *
154
+ * const layer = Mac.layerWebCryptoWith({ hmac: nativeHmac }).pipe(
155
+ * Layer.provide(SecureRandom.layerWebCrypto)
156
+ * )
157
+ * ```
158
+ *
159
+ * @stability unstable
160
+ * @category layers
161
+ * @since 4.0.0
162
+ */
163
+ export const layerWebCryptoWith = options => Layer.effect(Mac, Effect.gen(function* () {
164
+ const random = yield* SecureRandom.SecureRandom;
165
+ const crypto = yield* WebCrypto;
166
+ const cryptoKeyFor = KeyModel.makeCache((subtle, bytes, algorithm) => subtle.importKey("raw", bytes, importParams(algorithm), false, ["sign", "verify"]));
167
+ const hmac = options.hmac;
168
+ // Computes a byte-backed key's tags with `hmac`, or `undefined` to use WebCrypto.
169
+ const hmacTag = key => {
170
+ if (hmac === undefined) return undefined;
171
+ const stored = KeyModel.material(key);
172
+ return stored._tag === "Bytes" ? data => hmac(key.algorithm.hash.name, stored.bytes, data) : undefined;
173
+ };
174
+ return Mac.of({
175
+ generateKey: algorithm => Effect.map(random.randomBytes(blockSizes[algorithm.hash.name]), bytes => KeyModel.makeBytes(KeyProto, algorithm, bytes)),
176
+ sign: (key, data) => {
177
+ const tagOf = hmacTag(key);
178
+ return tagOf !== undefined ? Effect.sync(() => tagOf(data)) : internal.run("Mac", "sign", key.algorithm.name, crypto, async subtle => new Uint8Array(await subtle.sign("HMAC", await cryptoKeyFor(subtle, key), data)));
179
+ },
180
+ // Both paths compare tags in constant time and reject other lengths.
181
+ verify: (key, tag, data) => {
182
+ const tagOf = hmacTag(key);
183
+ return tagOf !== undefined ? Effect.sync(() => timingSafeEqual(tagOf(data), tag)) : internal.run("Mac", "verify", key.algorithm.name, crypto, async subtle => subtle.verify("HMAC", await cryptoKeyFor(subtle, key), tag, data));
184
+ }
185
+ });
186
+ }));
187
+ /**
188
+ * Layer that provides `Mac` on the `WebCrypto` reference.
189
+ *
190
+ * **Details**
191
+ *
192
+ * Signing and verification run on `crypto.subtle`. The layer imports a
193
+ * byte-backed key on first use and caches the `CryptoKey`. Generated keys come
194
+ * from `SecureRandom`, so a seeded `SecureRandom` gives reproducible keys.
195
+ *
196
+ * @stability unstable
197
+ * @category layers
198
+ * @since 4.0.0
199
+ */
200
+ export const layerWebCrypto = /*#__PURE__*/layerWebCryptoWith({});
201
+ /**
202
+ * Builds a key from raw key bytes.
203
+ *
204
+ * **Details**
205
+ *
206
+ * The bytes are copied into a new `Uint8Array`, so later changes to the input,
207
+ * including a Node.js `Buffer`, do not reach the key. Any non-empty length is
208
+ * accepted; RFC 2104 recommends at least the hash's output length. An empty key
209
+ * fails with an `InvalidKey` reason.
210
+ *
211
+ * @stability unstable
212
+ * @category constructors
213
+ * @since 4.0.0
214
+ */
215
+ export const key = (algorithm, bytes) => KeyModel.fromBytes("Mac", "key", KeyProto, algorithm, bytes, bytes => bytes.length === 0 ? "An HMAC key cannot be empty" : undefined);
216
+ /**
217
+ * Builds a key from an existing `CryptoKey`, such as a non-extractable one.
218
+ *
219
+ * **Details**
220
+ *
221
+ * The `CryptoKey` must be a secret HMAC key with the algorithm's hash and both
222
+ * the `sign` and `verify` usages, since a key reaches both operations.
223
+ * Otherwise the constructor fails with an `InvalidKey` reason. It must come
224
+ * from the `Crypto` object of the `WebCrypto` reference.
225
+ *
226
+ * @stability unstable
227
+ * @category constructors
228
+ * @since 4.0.0
229
+ */
230
+ export const fromCryptoKey = (algorithm, cryptoKey) => KeyModel.fromCryptoKey("Mac", "fromCryptoKey", KeyProto, algorithm, cryptoKey, {
231
+ type: "secret",
232
+ name: "HMAC",
233
+ usages: ["sign", "verify"],
234
+ usagePolicy: "all",
235
+ check: keyAlgorithm => {
236
+ const hash = keyAlgorithm.hash?.name;
237
+ return hash === algorithm.hash.name ? undefined : `Expected an HMAC key for ${algorithm.hash.name}, not ${hash}`;
238
+ }
239
+ });
240
+ /**
241
+ * Exports a key's bytes.
242
+ *
243
+ * **Details**
244
+ *
245
+ * Returns a fresh `Uint8Array` that shares no memory with the key. A
246
+ * `CryptoKey`-backed key is exported on the `WebCrypto` reference, and fails
247
+ * with a `NotExtractable` reason when the `CryptoKey` is not extractable.
248
+ *
249
+ * @stability unstable
250
+ * @category converting
251
+ * @since 4.0.0
252
+ */
253
+ export const toBytes = key => KeyModel.toBytes("Mac", key, KeyModel.exportRaw);
254
+ /**
255
+ * Compares two byte arrays in constant time.
256
+ *
257
+ * **When to use**
258
+ *
259
+ * Use to compare secrets of a fixed, known length, such as tags computed
260
+ * outside {@link Mac}. To check an HMAC tag, use `Mac.verify`.
261
+ *
262
+ * **Gotchas**
263
+ *
264
+ * Arrays of different lengths return `false` immediately, revealing their
265
+ * lengths. Equal-length arrays are compared with an XOR-accumulate loop;
266
+ * JavaScript runtimes do not guarantee constant-time execution.
267
+ *
268
+ * **Example** (Comparing fixed-length secrets)
269
+ *
270
+ * ```ts import.meta.vitest
271
+ * import { Mac } from "effect/crypto"
272
+ *
273
+ * const expected = new Uint8Array([1, 2, 3])
274
+ * const received = new Uint8Array([1, 2, 3])
275
+ * Mac.timingSafeEqual(expected, received) // => true
276
+ * ```
277
+ *
278
+ * @stability unstable
279
+ * @category utils
280
+ * @since 4.0.0
281
+ */
282
+ export const timingSafeEqual = (a, b) => {
283
+ if (a.length !== b.length) return false;
284
+ let difference = 0;
285
+ for (let i = 0; i < a.length; i++) difference |= a[i] ^ b[i];
286
+ return difference === 0;
287
+ };
288
+ //# sourceMappingURL=Mac.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Mac.js","names":[],"sources":["../../src/crypto/Mac.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,340 @@
1
+ /**
2
+ * Cryptographically secure randomness: random bytes, uniform integers,
3
+ * shuffles, UUIDv4, UUIDv7, and ULIDs.
4
+ *
5
+ * The {@link SecureRandom} service is built from one `randomBytes` primitive
6
+ * with {@link make}. {@link layerWebCrypto} draws from `getRandomValues` on
7
+ * the `WebCrypto` reference. The `*Unsafe` functions draw synchronously from
8
+ * `globalThis.crypto` for code that cannot use a service, such as constructors
9
+ * and model defaults.
10
+ *
11
+ * Every operation has a `never` error channel. A bad size or an empty range is
12
+ * a defect.
13
+ *
14
+ * **Gotchas**
15
+ *
16
+ * There are no float, boolean, or full-range integer helpers. Insecure random
17
+ * numbers belong to `effect/Random`, and a secure bit is `randomBytes(1)`.
18
+ *
19
+ * @stability unstable
20
+ * @since 4.0.0
21
+ */
22
+ import * as Context from "../Context.ts";
23
+ import * as Effect from "../Effect.ts";
24
+ import * as Layer from "../Layer.ts";
25
+ /**
26
+ * Generates a UUID as a lowercase, hyphenated string or, with
27
+ * `format: "bytes"`, the 16 UUID bytes.
28
+ *
29
+ * @stability unstable
30
+ * @category models
31
+ * @since 4.0.0
32
+ */
33
+ export interface UuidGenerator {
34
+ (options?: {
35
+ readonly format?: "string" | undefined;
36
+ }): Effect.Effect<string>;
37
+ <Format extends "string" | "bytes">(options: {
38
+ readonly format: Format;
39
+ }): Effect.Effect<Format extends "bytes" ? Uint8Array : string>;
40
+ }
41
+ declare const SecureRandom_base: Context.ServiceClass<SecureRandom, "effect/crypto/SecureRandom", {
42
+ /**
43
+ * Generates `size` cryptographically secure random bytes.
44
+ *
45
+ * A negative or non-integer size dies with a `RangeError`.
46
+ */
47
+ readonly randomBytes: (size: number) => Effect.Effect<Uint8Array>;
48
+ /**
49
+ * Generates an integer between `min` and `max`, both inclusive unless
50
+ * `halfOpen` excludes `max`.
51
+ *
52
+ * **Details**
53
+ *
54
+ * The result is exactly uniform: draws that would bias it are rejected.
55
+ * `min` is rounded up and `max` down. An empty range, or bounds that do not
56
+ * round to safe integers, die with a `RangeError`.
57
+ */
58
+ readonly intBetween: (min: number, max: number, options?: {
59
+ readonly halfOpen?: boolean | undefined;
60
+ }) => Effect.Effect<number>;
61
+ /**
62
+ * Returns a uniformly shuffled copy of the elements, using Fisher-Yates over
63
+ * `intBetween`.
64
+ */
65
+ readonly shuffle: <A>(elements: Iterable<A>) => Effect.Effect<Array<A>>;
66
+ /**
67
+ * Generates a UUIDv4, as a lowercase hyphenated string or, with
68
+ * `format: "bytes"`, the 16 UUID bytes.
69
+ */
70
+ readonly uuidV4: UuidGenerator;
71
+ /**
72
+ * Generates a UUIDv7 from the `Clock` timestamp, as a lowercase hyphenated
73
+ * string or, with `format: "bytes"`, the 16 UUID bytes.
74
+ *
75
+ * Every UUIDv7 from this service sorts after the previous one, as a string
76
+ * and as bytes. Within a millisecond, a 42-bit counter seeded from random
77
+ * bytes orders them. If the `Clock` moves back, the last timestamp is kept,
78
+ * and if the counter overflows, the timestamp advances by 1 ms, so a
79
+ * timestamp can run slightly ahead of the `Clock`. The ordering ends at the
80
+ * maximum timestamp, 2^48 − 1 ms (in the year 10889), which overflow cannot
81
+ * advance. There is no ordering between separate services, processes or
82
+ * workers.
83
+ *
84
+ * Consecutive UUIDv7s reveal their generation order, so never use them as
85
+ * secrets. Uniqueness between generators is probabilistic: each UUID has 32
86
+ * fresh random bits, on top of a counter seeded from 41 random bits each
87
+ * millisecond.
88
+ */
89
+ readonly uuidV7: UuidGenerator;
90
+ /**
91
+ * Generates a ULID from the `Clock` timestamp: 26 uppercase Crockford
92
+ * base32 characters.
93
+ *
94
+ * Every ULID from this service sorts after the previous one, using the ULID
95
+ * spec's monotonic mode: within a millisecond, the 80-bit random part is
96
+ * incremented. If the `Clock` moves back, the last timestamp is kept, and if
97
+ * the random part overflows, the timestamp advances by 1 ms. The ordering
98
+ * ends at the maximum timestamp, 2^48 − 1 ms (in the year 10889), which
99
+ * overflow cannot advance. There is no ordering between separate services,
100
+ * processes or workers. Consecutive ULIDs reveal their generation order, so
101
+ * never use them as secrets.
102
+ */
103
+ readonly ulid: Effect.Effect<string>;
104
+ }>;
105
+ /**
106
+ * Service that generates cryptographically secure random values.
107
+ *
108
+ * **Details**
109
+ *
110
+ * Every operation is derived from `randomBytes`. See {@link make}.
111
+ *
112
+ * @stability unstable
113
+ * @category services
114
+ * @since 4.0.0
115
+ */
116
+ export declare class SecureRandom extends SecureRandom_base {
117
+ }
118
+ /**
119
+ * Creates a `SecureRandom` service from a secure byte source.
120
+ *
121
+ * **When to use**
122
+ *
123
+ * Use to build the service for a platform integration, a custom runtime, or a
124
+ * seeded test double.
125
+ *
126
+ * **Details**
127
+ *
128
+ * Every operation is derived from `randomBytes`. Sizes are checked before it
129
+ * is called, and an exception it throws is a defect. Each service orders its
130
+ * own UUIDv7s and ULIDs, independently of other services and of the
131
+ * `*Unsafe` functions.
132
+ *
133
+ * **Gotchas**
134
+ *
135
+ * `randomBytes` must return a fresh array of exactly `size` secure random
136
+ * bytes. UUID formatting mutates the returned array.
137
+ *
138
+ * **Example** (Creating a SecureRandom service)
139
+ *
140
+ * ```ts import.meta.vitest
141
+ * import { Effect } from "effect"
142
+ * import { SecureRandom } from "effect/crypto"
143
+ *
144
+ * const random = SecureRandom.make((size) => globalThis.crypto.getRandomValues(new Uint8Array(size)))
145
+ *
146
+ * const bytes = await Effect.runPromise(random.randomBytes(4))
147
+ * bytes.length // => 4
148
+ * ```
149
+ *
150
+ * @stability unstable
151
+ * @category constructors
152
+ * @since 4.0.0
153
+ */
154
+ export declare const make: (randomBytes: (size: number) => Uint8Array) => SecureRandom["Service"];
155
+ /**
156
+ * Layer that provides `SecureRandom` from `getRandomValues` on the `WebCrypto`
157
+ * reference.
158
+ *
159
+ * **Details**
160
+ *
161
+ * Requests above the 65,536-byte `getRandomValues` limit are filled in chunks.
162
+ * Only `getRandomValues` is needed, so the layer also works in insecure browser
163
+ * contexts, which have no `crypto.subtle`.
164
+ *
165
+ * @stability unstable
166
+ * @category layers
167
+ * @since 4.0.0
168
+ */
169
+ export declare const layerWebCrypto: Layer.Layer<SecureRandom>;
170
+ /**
171
+ * Synchronously generates `size` cryptographically secure random bytes from
172
+ * `globalThis.crypto`.
173
+ *
174
+ * **When to use**
175
+ *
176
+ * Use when a service cannot be read, as in constructors and model defaults.
177
+ * Elsewhere, use the `SecureRandom` service.
178
+ *
179
+ * **Gotchas**
180
+ *
181
+ * Reads `globalThis.crypto` directly, so neither the `WebCrypto` reference nor
182
+ * a mocked `SecureRandom` service affects it. A negative or non-integer size
183
+ * throws a `RangeError`.
184
+ *
185
+ * @stability unstable
186
+ * @category unsafe
187
+ * @since 4.0.0
188
+ */
189
+ export declare const randomBytesUnsafe: (size: number) => Uint8Array;
190
+ /**
191
+ * Synchronously generates a UUIDv4 from `globalThis.crypto`, as a lowercase
192
+ * hyphenated string or, with `format: "bytes"`, the 16 UUID bytes.
193
+ *
194
+ * **Gotchas**
195
+ *
196
+ * Reads `globalThis.crypto` directly, so neither the `WebCrypto` reference nor
197
+ * a mocked `SecureRandom` service affects it.
198
+ *
199
+ * @stability unstable
200
+ * @category unsafe
201
+ * @since 4.0.0
202
+ */
203
+ export declare const uuidV4Unsafe: {
204
+ /**
205
+ * Synchronously generates a UUIDv4 from `globalThis.crypto`, as a lowercase
206
+ * hyphenated string or, with `format: "bytes"`, the 16 UUID bytes.
207
+ *
208
+ * **Gotchas**
209
+ *
210
+ * Reads `globalThis.crypto` directly, so neither the `WebCrypto` reference nor
211
+ * a mocked `SecureRandom` service affects it.
212
+ *
213
+ * @stability unstable
214
+ * @category unsafe
215
+ * @since 4.0.0
216
+ */
217
+ (options?: {
218
+ readonly format?: "string" | undefined;
219
+ }): string;
220
+ /**
221
+ * Synchronously generates a UUIDv4 from `globalThis.crypto`, as a lowercase
222
+ * hyphenated string or, with `format: "bytes"`, the 16 UUID bytes.
223
+ *
224
+ * **Gotchas**
225
+ *
226
+ * Reads `globalThis.crypto` directly, so neither the `WebCrypto` reference nor
227
+ * a mocked `SecureRandom` service affects it.
228
+ *
229
+ * @stability unstable
230
+ * @category unsafe
231
+ * @since 4.0.0
232
+ */
233
+ <Format extends "string" | "bytes">(options: {
234
+ readonly format: Format;
235
+ }): Format extends "bytes" ? Uint8Array : string;
236
+ };
237
+ /**
238
+ * Synchronously generates a UUIDv7 from `Date.now()` and `globalThis.crypto`,
239
+ * as a lowercase hyphenated string or, with `format: "bytes"`, the 16 UUID
240
+ * bytes.
241
+ *
242
+ * **Details**
243
+ *
244
+ * Below the maximum timestamp, every UUIDv7 generated in this JS realm
245
+ * (process or worker) sorts after the previous one, as a string and as bytes,
246
+ * using the counter described on the `SecureRandom` service's `uuidV7`. The
247
+ * ordering is shared with `Model.UuidV7WithGenerate`, and does not hold across
248
+ * processes or workers. Consecutive UUIDv7s reveal their
249
+ * generation order, so never use them as secrets.
250
+ *
251
+ * **Gotchas**
252
+ *
253
+ * Reads `Date.now()` rather than the `Clock`, and `globalThis.crypto` rather
254
+ * than the `WebCrypto` reference. A timestamp can run slightly ahead of
255
+ * `Date.now()` when the clock moves back or the counter overflows.
256
+ *
257
+ * @stability unstable
258
+ * @category unsafe
259
+ * @since 4.0.0
260
+ */
261
+ export declare const uuidV7Unsafe: {
262
+ /**
263
+ * Synchronously generates a UUIDv7 from `Date.now()` and `globalThis.crypto`,
264
+ * as a lowercase hyphenated string or, with `format: "bytes"`, the 16 UUID
265
+ * bytes.
266
+ *
267
+ * **Details**
268
+ *
269
+ * Below the maximum timestamp, every UUIDv7 generated in this JS realm
270
+ * (process or worker) sorts after the previous one, as a string and as bytes,
271
+ * using the counter described on the `SecureRandom` service's `uuidV7`. The
272
+ * ordering is shared with `Model.UuidV7WithGenerate`, and does not hold across
273
+ * processes or workers. Consecutive UUIDv7s reveal their
274
+ * generation order, so never use them as secrets.
275
+ *
276
+ * **Gotchas**
277
+ *
278
+ * Reads `Date.now()` rather than the `Clock`, and `globalThis.crypto` rather
279
+ * than the `WebCrypto` reference. A timestamp can run slightly ahead of
280
+ * `Date.now()` when the clock moves back or the counter overflows.
281
+ *
282
+ * @stability unstable
283
+ * @category unsafe
284
+ * @since 4.0.0
285
+ */
286
+ (options?: {
287
+ readonly format?: "string" | undefined;
288
+ }): string;
289
+ /**
290
+ * Synchronously generates a UUIDv7 from `Date.now()` and `globalThis.crypto`,
291
+ * as a lowercase hyphenated string or, with `format: "bytes"`, the 16 UUID
292
+ * bytes.
293
+ *
294
+ * **Details**
295
+ *
296
+ * Below the maximum timestamp, every UUIDv7 generated in this JS realm
297
+ * (process or worker) sorts after the previous one, as a string and as bytes,
298
+ * using the counter described on the `SecureRandom` service's `uuidV7`. The
299
+ * ordering is shared with `Model.UuidV7WithGenerate`, and does not hold across
300
+ * processes or workers. Consecutive UUIDv7s reveal their
301
+ * generation order, so never use them as secrets.
302
+ *
303
+ * **Gotchas**
304
+ *
305
+ * Reads `Date.now()` rather than the `Clock`, and `globalThis.crypto` rather
306
+ * than the `WebCrypto` reference. A timestamp can run slightly ahead of
307
+ * `Date.now()` when the clock moves back or the counter overflows.
308
+ *
309
+ * @stability unstable
310
+ * @category unsafe
311
+ * @since 4.0.0
312
+ */
313
+ <Format extends "string" | "bytes">(options: {
314
+ readonly format: Format;
315
+ }): Format extends "bytes" ? Uint8Array : string;
316
+ };
317
+ /**
318
+ * Synchronously generates a ULID from `Date.now()` and `globalThis.crypto`.
319
+ *
320
+ * **Details**
321
+ *
322
+ * Below the maximum timestamp, every ULID generated in this JS realm (process
323
+ * or worker) sorts after the previous one, using the monotonic mode described
324
+ * on the `SecureRandom` service's `ulid`. The ordering does not hold across
325
+ * processes or workers. Consecutive ULIDs reveal their generation order, so
326
+ * never use them as secrets.
327
+ *
328
+ * **Gotchas**
329
+ *
330
+ * Reads `Date.now()` rather than the `Clock`, and `globalThis.crypto` rather
331
+ * than the `WebCrypto` reference. A timestamp can run slightly ahead of
332
+ * `Date.now()` when the clock moves back or the random part overflows.
333
+ *
334
+ * @stability unstable
335
+ * @category unsafe
336
+ * @since 4.0.0
337
+ */
338
+ export declare const ulidUnsafe: () => string;
339
+ export {};
340
+ //# sourceMappingURL=SecureRandom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecureRandom.d.ts","sourceRoot":"","sources":["../../src/crypto/SecureRandom.ts"],"names":[],"mappings":"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"}