effect 4.0.6 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (978) hide show
  1. package/README.md +1 -1
  2. package/dist/Arbitrary.d.ts +10 -2
  3. package/dist/Arbitrary.d.ts.map +1 -1
  4. package/dist/Arbitrary.js +2 -1
  5. package/dist/Arbitrary.js.map +1 -1
  6. package/dist/BigDecimal.d.ts.map +1 -1
  7. package/dist/BigDecimal.js +3 -0
  8. package/dist/BigDecimal.js.map +1 -1
  9. package/dist/Channel.d.ts +12 -6
  10. package/dist/Channel.d.ts.map +1 -1
  11. package/dist/Channel.js +30 -9
  12. package/dist/Channel.js.map +1 -1
  13. package/dist/Config.d.ts +7 -1
  14. package/dist/Config.d.ts.map +1 -1
  15. package/dist/Config.js.map +1 -1
  16. package/dist/Context.d.ts +18 -1
  17. package/dist/Context.d.ts.map +1 -1
  18. package/dist/Context.js +27 -8
  19. package/dist/Context.js.map +1 -1
  20. package/dist/Cron.d.ts +81 -11
  21. package/dist/Cron.d.ts.map +1 -1
  22. package/dist/Cron.js +101 -26
  23. package/dist/Cron.js.map +1 -1
  24. package/dist/Data.d.ts +54 -235
  25. package/dist/Data.d.ts.map +1 -1
  26. package/dist/Data.js.map +1 -1
  27. package/dist/Duration.d.ts +78 -0
  28. package/dist/Duration.d.ts.map +1 -1
  29. package/dist/Duration.js +123 -0
  30. package/dist/Duration.js.map +1 -1
  31. package/dist/Effect.d.ts +165 -8
  32. package/dist/Effect.d.ts.map +1 -1
  33. package/dist/Effect.js +12 -2
  34. package/dist/Effect.js.map +1 -1
  35. package/dist/Equal.d.ts.map +1 -1
  36. package/dist/Equal.js +8 -1
  37. package/dist/Equal.js.map +1 -1
  38. package/dist/Exit.d.ts +3 -3
  39. package/dist/Exit.d.ts.map +1 -1
  40. package/dist/Exit.js.map +1 -1
  41. package/dist/FileSystem.d.ts +59 -4
  42. package/dist/FileSystem.d.ts.map +1 -1
  43. package/dist/FileSystem.js +9 -2
  44. package/dist/FileSystem.js.map +1 -1
  45. package/dist/Formatter.d.ts.map +1 -1
  46. package/dist/Formatter.js +27 -13
  47. package/dist/Formatter.js.map +1 -1
  48. package/dist/Glob.d.ts +165 -0
  49. package/dist/Glob.d.ts.map +1 -0
  50. package/dist/Glob.js +127 -0
  51. package/dist/Glob.js.map +1 -0
  52. package/dist/Hash.d.ts.map +1 -1
  53. package/dist/Hash.js +4 -1
  54. package/dist/Hash.js.map +1 -1
  55. package/dist/JsonPatch.js +4 -0
  56. package/dist/JsonPatch.js.map +1 -1
  57. package/dist/JsonSchema.d.ts.map +1 -1
  58. package/dist/JsonSchema.js +13 -40
  59. package/dist/JsonSchema.js.map +1 -1
  60. package/dist/Match.d.ts +86 -0
  61. package/dist/Match.d.ts.map +1 -1
  62. package/dist/Match.js +72 -0
  63. package/dist/Match.js.map +1 -1
  64. package/dist/Metric.d.ts +3 -3
  65. package/dist/MutableList.d.ts +5 -2
  66. package/dist/MutableList.d.ts.map +1 -1
  67. package/dist/MutableList.js +7 -5
  68. package/dist/MutableList.js.map +1 -1
  69. package/dist/MutableRef.d.ts.map +1 -1
  70. package/dist/MutableRef.js +7 -0
  71. package/dist/MutableRef.js.map +1 -1
  72. package/dist/PartitionedSemaphore.d.ts +2 -1
  73. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  74. package/dist/PartitionedSemaphore.js +22 -12
  75. package/dist/PartitionedSemaphore.js.map +1 -1
  76. package/dist/Pool.d.ts +51 -0
  77. package/dist/Pool.d.ts.map +1 -1
  78. package/dist/Pool.js +136 -36
  79. package/dist/Pool.js.map +1 -1
  80. package/dist/PubSub.d.ts.map +1 -1
  81. package/dist/PubSub.js +5 -6
  82. package/dist/PubSub.js.map +1 -1
  83. package/dist/Random.d.ts.map +1 -1
  84. package/dist/Random.js +3 -3
  85. package/dist/Random.js.map +1 -1
  86. package/dist/RcMap.d.ts.map +1 -1
  87. package/dist/RcMap.js +8 -2
  88. package/dist/RcMap.js.map +1 -1
  89. package/dist/Ref.d.ts.map +1 -1
  90. package/dist/Ref.js +8 -0
  91. package/dist/Ref.js.map +1 -1
  92. package/dist/Schedule.d.ts +18 -1
  93. package/dist/Schedule.d.ts.map +1 -1
  94. package/dist/Schedule.js +8 -3
  95. package/dist/Schedule.js.map +1 -1
  96. package/dist/Schema.d.ts +690 -49
  97. package/dist/Schema.d.ts.map +1 -1
  98. package/dist/Schema.js +687 -28
  99. package/dist/Schema.js.map +1 -1
  100. package/dist/SchemaAST.d.ts +4 -2
  101. package/dist/SchemaAST.d.ts.map +1 -1
  102. package/dist/SchemaAST.js +14 -17
  103. package/dist/SchemaAST.js.map +1 -1
  104. package/dist/SchemaGetter.d.ts +6 -1
  105. package/dist/SchemaGetter.d.ts.map +1 -1
  106. package/dist/SchemaGetter.js +22 -11
  107. package/dist/SchemaGetter.js.map +1 -1
  108. package/dist/SchemaParser.d.ts.map +1 -1
  109. package/dist/SchemaParser.js +48 -22
  110. package/dist/SchemaParser.js.map +1 -1
  111. package/dist/SchemaRepresentation.d.ts +33 -10
  112. package/dist/SchemaRepresentation.d.ts.map +1 -1
  113. package/dist/SchemaRepresentation.js +39 -13
  114. package/dist/SchemaRepresentation.js.map +1 -1
  115. package/dist/SchemaTransformation.d.ts +12 -4
  116. package/dist/SchemaTransformation.d.ts.map +1 -1
  117. package/dist/SchemaTransformation.js +15 -5
  118. package/dist/SchemaTransformation.js.map +1 -1
  119. package/dist/ScopedCache.d.ts.map +1 -1
  120. package/dist/ScopedCache.js +5 -7
  121. package/dist/ScopedCache.js.map +1 -1
  122. package/dist/Semaphore.d.ts +130 -0
  123. package/dist/Semaphore.d.ts.map +1 -1
  124. package/dist/Semaphore.js +94 -35
  125. package/dist/Semaphore.js.map +1 -1
  126. package/dist/Sink.d.ts.map +1 -1
  127. package/dist/Sink.js +7 -2
  128. package/dist/Sink.js.map +1 -1
  129. package/dist/Stream.d.ts +13 -4
  130. package/dist/Stream.d.ts.map +1 -1
  131. package/dist/Stream.js +31 -10
  132. package/dist/Stream.js.map +1 -1
  133. package/dist/String.d.ts +3 -0
  134. package/dist/String.d.ts.map +1 -1
  135. package/dist/String.js +3 -0
  136. package/dist/String.js.map +1 -1
  137. package/dist/Terminal.d.ts +18 -1
  138. package/dist/Terminal.d.ts.map +1 -1
  139. package/dist/Terminal.js +1 -1
  140. package/dist/Terminal.js.map +1 -1
  141. package/dist/Tracer.d.ts +11 -1
  142. package/dist/Tracer.d.ts.map +1 -1
  143. package/dist/Tracer.js +6 -1
  144. package/dist/Tracer.js.map +1 -1
  145. package/dist/ai/AiError.d.ts +43 -116
  146. package/dist/ai/AiError.d.ts.map +1 -1
  147. package/dist/ai/AiError.js +53 -72
  148. package/dist/ai/AiError.js.map +1 -1
  149. package/dist/ai/Decision.d.ts +196 -15
  150. package/dist/ai/Decision.d.ts.map +1 -1
  151. package/dist/ai/Decision.js +130 -0
  152. package/dist/ai/Decision.js.map +1 -1
  153. package/dist/ai/DecisionModel.d.ts +54 -13
  154. package/dist/ai/DecisionModel.d.ts.map +1 -1
  155. package/dist/ai/DecisionModel.js +123 -12
  156. package/dist/ai/DecisionModel.js.map +1 -1
  157. package/dist/ai/LanguageModel.d.ts.map +1 -1
  158. package/dist/ai/LanguageModel.js +9 -0
  159. package/dist/ai/LanguageModel.js.map +1 -1
  160. package/dist/ai/McpSchema.d.ts +110 -110
  161. package/dist/ai/McpSchema.d.ts.map +1 -1
  162. package/dist/ai/McpServer.d.ts +630 -29
  163. package/dist/ai/McpServer.d.ts.map +1 -1
  164. package/dist/ai/McpServer.js +583 -131
  165. package/dist/ai/McpServer.js.map +1 -1
  166. package/dist/ai/McpTest.d.ts +130 -0
  167. package/dist/ai/McpTest.d.ts.map +1 -0
  168. package/dist/ai/McpTest.js +237 -0
  169. package/dist/ai/McpTest.js.map +1 -0
  170. package/dist/ai/Prompt.d.ts +52 -0
  171. package/dist/ai/Prompt.d.ts.map +1 -1
  172. package/dist/ai/Prompt.js +38 -0
  173. package/dist/ai/Prompt.js.map +1 -1
  174. package/dist/ai/Response.d.ts +17 -28
  175. package/dist/ai/Response.d.ts.map +1 -1
  176. package/dist/ai/Response.js +5 -10
  177. package/dist/ai/Response.js.map +1 -1
  178. package/dist/ai/Tool.d.ts +43 -1
  179. package/dist/ai/Tool.d.ts.map +1 -1
  180. package/dist/ai/Tool.js +5 -2
  181. package/dist/ai/Tool.js.map +1 -1
  182. package/dist/ai/Toolkit.d.ts.map +1 -1
  183. package/dist/ai/Toolkit.js +8 -1
  184. package/dist/ai/Toolkit.js.map +1 -1
  185. package/dist/ai/index.d.ts +5 -0
  186. package/dist/ai/index.d.ts.map +1 -1
  187. package/dist/ai/index.js +5 -0
  188. package/dist/ai/index.js.map +1 -1
  189. package/dist/ai/internal/mcpCore.js +17 -12
  190. package/dist/ai/internal/mcpCore.js.map +1 -1
  191. package/dist/ai/internal/mcpProtocol/v2024_11_05.js +4 -5
  192. package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
  193. package/dist/ai/internal/mcpProtocol/v2025_03_26.js +4 -5
  194. package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
  195. package/dist/ai/internal/mcpProtocol/v2025_06_18.js +4 -5
  196. package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
  197. package/dist/ai/internal/mcpProtocol/v2025_11_25.js +4 -5
  198. package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
  199. package/dist/ai/internal/mcpProtocol/v2026_07_28.js +18 -10
  200. package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
  201. package/dist/ai/internal/mcpProtocol.js +13 -0
  202. package/dist/ai/internal/mcpProtocol.js.map +1 -1
  203. package/dist/ai/internal/mcpRuntime.js +5 -3
  204. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  205. package/dist/ai/internal/mcpStatefulRuntime.js +6 -1
  206. package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
  207. package/dist/cli/Argument.d.ts +21 -0
  208. package/dist/cli/Argument.d.ts.map +1 -1
  209. package/dist/cli/Argument.js +7 -0
  210. package/dist/cli/Argument.js.map +1 -1
  211. package/dist/cli/CliError.d.ts +78 -0
  212. package/dist/cli/CliError.d.ts.map +1 -1
  213. package/dist/cli/CliError.js +65 -3
  214. package/dist/cli/CliError.js.map +1 -1
  215. package/dist/cli/CliOutput.d.ts +220 -7
  216. package/dist/cli/CliOutput.d.ts.map +1 -1
  217. package/dist/cli/CliOutput.js +156 -43
  218. package/dist/cli/CliOutput.js.map +1 -1
  219. package/dist/cli/Command.d.ts +47 -16
  220. package/dist/cli/Command.d.ts.map +1 -1
  221. package/dist/cli/Command.js +67 -29
  222. package/dist/cli/Command.js.map +1 -1
  223. package/dist/cli/Completions.d.ts +58 -0
  224. package/dist/cli/Completions.d.ts.map +1 -1
  225. package/dist/cli/Completions.js +49 -9
  226. package/dist/cli/Completions.js.map +1 -1
  227. package/dist/cli/Flag.d.ts +122 -0
  228. package/dist/cli/Flag.d.ts.map +1 -1
  229. package/dist/cli/Flag.js +42 -0
  230. package/dist/cli/Flag.js.map +1 -1
  231. package/dist/cli/GlobalFlag.d.ts.map +1 -1
  232. package/dist/cli/GlobalFlag.js +15 -7
  233. package/dist/cli/GlobalFlag.js.map +1 -1
  234. package/dist/cli/HelpDoc.d.ts +15 -1
  235. package/dist/cli/HelpDoc.d.ts.map +1 -1
  236. package/dist/cli/Param.d.ts +15 -0
  237. package/dist/cli/Param.d.ts.map +1 -1
  238. package/dist/cli/Param.js +23 -2
  239. package/dist/cli/Param.js.map +1 -1
  240. package/dist/cli/Primitive.d.ts +14 -0
  241. package/dist/cli/Primitive.d.ts.map +1 -1
  242. package/dist/cli/Primitive.js +15 -1
  243. package/dist/cli/Primitive.js.map +1 -1
  244. package/dist/cli/Prompt.d.ts +1 -0
  245. package/dist/cli/Prompt.d.ts.map +1 -1
  246. package/dist/cli/Prompt.js +1 -0
  247. package/dist/cli/Prompt.js.map +1 -1
  248. package/dist/cli/TerminalCapabilities.d.ts +3 -2
  249. package/dist/cli/TerminalCapabilities.d.ts.map +1 -1
  250. package/dist/cli/TerminalCapabilities.js +3 -1
  251. package/dist/cli/TerminalCapabilities.js.map +1 -1
  252. package/dist/cli/internal/completions/bash.js +73 -27
  253. package/dist/cli/internal/completions/bash.js.map +1 -1
  254. package/dist/cli/internal/help.d.ts.map +1 -1
  255. package/dist/cli/internal/help.js +17 -10
  256. package/dist/cli/internal/help.js.map +1 -1
  257. package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  258. package/dist/cluster/ClusterWorkflowEngine.js +45 -10
  259. package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
  260. package/dist/cluster/MessageStorage.d.ts +23 -45
  261. package/dist/cluster/MessageStorage.d.ts.map +1 -1
  262. package/dist/cluster/MessageStorage.js +6 -7
  263. package/dist/cluster/MessageStorage.js.map +1 -1
  264. package/dist/cluster/Sharding.d.ts.map +1 -1
  265. package/dist/cluster/Sharding.js +151 -49
  266. package/dist/cluster/Sharding.js.map +1 -1
  267. package/dist/cluster/ShardingConfig.d.ts +76 -0
  268. package/dist/cluster/ShardingConfig.d.ts.map +1 -1
  269. package/dist/cluster/ShardingConfig.js +4 -0
  270. package/dist/cluster/ShardingConfig.js.map +1 -1
  271. package/dist/cluster/SingleRunner.d.ts +3 -3
  272. package/dist/cluster/SingleRunner.d.ts.map +1 -1
  273. package/dist/cluster/SingleRunner.js +1 -1
  274. package/dist/cluster/Snowflake.d.ts.map +1 -1
  275. package/dist/cluster/Snowflake.js +3 -7
  276. package/dist/cluster/Snowflake.js.map +1 -1
  277. package/dist/cluster/SqlMessageStorage.d.ts +37 -6
  278. package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
  279. package/dist/cluster/SqlMessageStorage.js +34 -7
  280. package/dist/cluster/SqlMessageStorage.js.map +1 -1
  281. package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
  282. package/dist/cluster/SqlRunnerStorage.js +109 -46
  283. package/dist/cluster/SqlRunnerStorage.js.map +1 -1
  284. package/dist/cluster/internal/entityManager.js +54 -20
  285. package/dist/cluster/internal/entityManager.js.map +1 -1
  286. package/dist/crypto/Aead.d.ts +322 -0
  287. package/dist/crypto/Aead.d.ts.map +1 -0
  288. package/dist/crypto/Aead.js +331 -0
  289. package/dist/crypto/Aead.js.map +1 -0
  290. package/dist/crypto/Cipher.d.ts +235 -0
  291. package/dist/crypto/Cipher.d.ts.map +1 -0
  292. package/dist/crypto/Cipher.js +233 -0
  293. package/dist/crypto/Cipher.js.map +1 -0
  294. package/dist/crypto/CryptoError.d.ts +212 -0
  295. package/dist/crypto/CryptoError.d.ts.map +1 -0
  296. package/dist/crypto/CryptoError.js +202 -0
  297. package/dist/crypto/CryptoError.js.map +1 -0
  298. package/dist/crypto/Digest.d.ts +143 -0
  299. package/dist/crypto/Digest.d.ts.map +1 -0
  300. package/dist/crypto/Digest.js +146 -0
  301. package/dist/crypto/Digest.js.map +1 -0
  302. package/dist/crypto/Kdf.d.ts +220 -0
  303. package/dist/crypto/Kdf.d.ts.map +1 -0
  304. package/dist/crypto/Kdf.js +212 -0
  305. package/dist/crypto/Kdf.js.map +1 -0
  306. package/dist/crypto/KeyAgreement.d.ts +323 -0
  307. package/dist/crypto/KeyAgreement.d.ts.map +1 -0
  308. package/dist/crypto/KeyAgreement.js +303 -0
  309. package/dist/crypto/KeyAgreement.js.map +1 -0
  310. package/dist/crypto/KeyFormat.d.ts +309 -0
  311. package/dist/crypto/KeyFormat.d.ts.map +1 -0
  312. package/dist/crypto/KeyFormat.js +556 -0
  313. package/dist/crypto/KeyFormat.js.map +1 -0
  314. package/dist/crypto/KeyWrap.d.ts +389 -0
  315. package/dist/crypto/KeyWrap.d.ts.map +1 -0
  316. package/dist/crypto/KeyWrap.js +381 -0
  317. package/dist/crypto/KeyWrap.js.map +1 -0
  318. package/dist/crypto/Mac.d.ts +277 -0
  319. package/dist/crypto/Mac.d.ts.map +1 -0
  320. package/dist/crypto/Mac.js +288 -0
  321. package/dist/crypto/Mac.js.map +1 -0
  322. package/dist/crypto/SecureRandom.d.ts +340 -0
  323. package/dist/crypto/SecureRandom.d.ts.map +1 -0
  324. package/dist/crypto/SecureRandom.js +257 -0
  325. package/dist/crypto/SecureRandom.js.map +1 -0
  326. package/dist/crypto/Signature.d.ts +448 -0
  327. package/dist/crypto/Signature.d.ts.map +1 -0
  328. package/dist/crypto/Signature.js +484 -0
  329. package/dist/crypto/Signature.js.map +1 -0
  330. package/dist/crypto/WebCrypto.d.ts +61 -0
  331. package/dist/crypto/WebCrypto.d.ts.map +1 -0
  332. package/dist/crypto/WebCrypto.js +63 -0
  333. package/dist/crypto/WebCrypto.js.map +1 -0
  334. package/dist/crypto/index.d.ts +65 -0
  335. package/dist/crypto/index.d.ts.map +1 -0
  336. package/dist/crypto/index.js +66 -0
  337. package/dist/crypto/index.js.map +1 -0
  338. package/dist/crypto/internal/asymmetric.d.ts +2 -0
  339. package/dist/crypto/internal/asymmetric.d.ts.map +1 -0
  340. package/dist/crypto/internal/asymmetric.js +210 -0
  341. package/dist/crypto/internal/asymmetric.js.map +1 -0
  342. package/dist/crypto/internal/chacha.d.ts +46 -0
  343. package/dist/crypto/internal/chacha.d.ts.map +1 -0
  344. package/dist/crypto/internal/chacha.js +885 -0
  345. package/dist/crypto/internal/chacha.js.map +1 -0
  346. package/dist/crypto/internal/der.d.ts +6 -0
  347. package/dist/crypto/internal/der.d.ts.map +1 -0
  348. package/dist/crypto/internal/der.js +86 -0
  349. package/dist/crypto/internal/der.js.map +1 -0
  350. package/dist/crypto/internal/digest.d.ts +2 -0
  351. package/dist/crypto/internal/digest.d.ts.map +1 -0
  352. package/dist/crypto/internal/digest.js +15 -0
  353. package/dist/crypto/internal/digest.js.map +1 -0
  354. package/dist/crypto/internal/key.d.ts +2 -0
  355. package/dist/crypto/internal/key.d.ts.map +1 -0
  356. package/dist/crypto/internal/key.js +170 -0
  357. package/dist/crypto/internal/key.js.map +1 -0
  358. package/dist/crypto/internal/md5.d.ts +39 -0
  359. package/dist/crypto/internal/md5.d.ts.map +1 -0
  360. package/dist/crypto/internal/md5.js +179 -0
  361. package/dist/crypto/internal/md5.js.map +1 -0
  362. package/dist/crypto/internal/webCrypto.d.ts +2 -0
  363. package/dist/crypto/internal/webCrypto.d.ts.map +1 -0
  364. package/dist/crypto/internal/webCrypto.js +111 -0
  365. package/dist/crypto/internal/webCrypto.js.map +1 -0
  366. package/dist/devtools/DevToolsClient.d.ts.map +1 -1
  367. package/dist/devtools/DevToolsClient.js +2 -0
  368. package/dist/devtools/DevToolsClient.js.map +1 -1
  369. package/dist/encoding/Base64.js +36 -0
  370. package/dist/encoding/Base64.js.map +1 -1
  371. package/dist/encoding/Base64Url.d.ts.map +1 -1
  372. package/dist/encoding/Base64Url.js +3 -2
  373. package/dist/encoding/Base64Url.js.map +1 -1
  374. package/dist/encoding/Csv.d.ts +608 -0
  375. package/dist/encoding/Csv.d.ts.map +1 -0
  376. package/dist/encoding/Csv.js +718 -0
  377. package/dist/encoding/Csv.js.map +1 -0
  378. package/dist/encoding/Hex.d.ts +3 -2
  379. package/dist/encoding/Hex.d.ts.map +1 -1
  380. package/dist/encoding/Hex.js +3 -2
  381. package/dist/encoding/Hex.js.map +1 -1
  382. package/dist/encoding/SchemaBinary.d.ts.map +1 -1
  383. package/dist/encoding/SchemaBinary.js +42 -4
  384. package/dist/encoding/SchemaBinary.js.map +1 -1
  385. package/dist/encoding/Sse.d.ts.map +1 -1
  386. package/dist/encoding/Sse.js +3 -3
  387. package/dist/encoding/Sse.js.map +1 -1
  388. package/dist/encoding/Toml.d.ts +17 -3
  389. package/dist/encoding/Toml.d.ts.map +1 -1
  390. package/dist/encoding/Toml.js +124 -31
  391. package/dist/encoding/Toml.js.map +1 -1
  392. package/dist/encoding/Yaml.d.ts +8 -1
  393. package/dist/encoding/Yaml.d.ts.map +1 -1
  394. package/dist/encoding/Yaml.js +54 -18
  395. package/dist/encoding/Yaml.js.map +1 -1
  396. package/dist/encoding/index.d.ts +5 -0
  397. package/dist/encoding/index.d.ts.map +1 -1
  398. package/dist/encoding/index.js +5 -0
  399. package/dist/encoding/index.js.map +1 -1
  400. package/dist/eventlog/EventJournal.d.ts.map +1 -1
  401. package/dist/eventlog/EventJournal.js +6 -3
  402. package/dist/eventlog/EventJournal.js.map +1 -1
  403. package/dist/eventlog/EventLog.d.ts +119 -4
  404. package/dist/eventlog/EventLog.d.ts.map +1 -1
  405. package/dist/eventlog/EventLog.js +200 -12
  406. package/dist/eventlog/EventLog.js.map +1 -1
  407. package/dist/eventlog/EventLogEncryption.d.ts +41 -4
  408. package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
  409. package/dist/eventlog/EventLogEncryption.js +83 -64
  410. package/dist/eventlog/EventLogEncryption.js.map +1 -1
  411. package/dist/eventlog/EventLogMessage.d.ts +279 -0
  412. package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
  413. package/dist/eventlog/EventLogMessage.js +217 -1
  414. package/dist/eventlog/EventLogMessage.js.map +1 -1
  415. package/dist/eventlog/EventLogRemote.d.ts +200 -28
  416. package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
  417. package/dist/eventlog/EventLogRemote.js +186 -16
  418. package/dist/eventlog/EventLogRemote.js.map +1 -1
  419. package/dist/eventlog/EventLogServer.d.ts +3 -0
  420. package/dist/eventlog/EventLogServer.d.ts.map +1 -1
  421. package/dist/eventlog/EventLogServer.js +18 -10
  422. package/dist/eventlog/EventLogServer.js.map +1 -1
  423. package/dist/eventlog/EventLogServerEncrypted.d.ts +326 -5
  424. package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  425. package/dist/eventlog/EventLogServerEncrypted.js +769 -14
  426. package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
  427. package/dist/eventlog/EventLogSessionAuth.d.ts +5 -3
  428. package/dist/eventlog/EventLogSessionAuth.d.ts.map +1 -1
  429. package/dist/eventlog/EventLogSessionAuth.js +41 -64
  430. package/dist/eventlog/EventLogSessionAuth.js.map +1 -1
  431. package/dist/eventlog/EventRow.d.ts +4 -0
  432. package/dist/eventlog/EventRow.d.ts.map +1 -1
  433. package/dist/eventlog/EventRow.js +12 -2
  434. package/dist/eventlog/EventRow.js.map +1 -1
  435. package/dist/eventlog/SqlEventJournal.d.ts.map +1 -1
  436. package/dist/eventlog/SqlEventJournal.js +47 -27
  437. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  438. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +21 -5
  439. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
  440. package/dist/eventlog/SqlEventLogServerEncrypted.js +1048 -113
  441. package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  442. package/dist/eventlog/SqlEventLogServerUnencrypted.js +2 -2
  443. package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  444. package/dist/eventlog/internal/batches.d.ts +12 -0
  445. package/dist/eventlog/internal/batches.d.ts.map +1 -0
  446. package/dist/eventlog/internal/batches.js +26 -0
  447. package/dist/eventlog/internal/batches.js.map +1 -0
  448. package/dist/eventlog/internal/compaction.d.ts +38 -0
  449. package/dist/eventlog/internal/compaction.d.ts.map +1 -0
  450. package/dist/eventlog/internal/compaction.js +33 -0
  451. package/dist/eventlog/internal/compaction.js.map +1 -0
  452. package/dist/eventlog/internal/conflicts.d.ts +0 -1
  453. package/dist/eventlog/internal/conflicts.d.ts.map +1 -1
  454. package/dist/eventlog/internal/conflicts.js +0 -3
  455. package/dist/eventlog/internal/conflicts.js.map +1 -1
  456. package/dist/eventlog/internal/identityRootSecretDerivation.js +66 -67
  457. package/dist/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
  458. package/dist/eventlog/internal/remoteCompaction.d.ts +31 -0
  459. package/dist/eventlog/internal/remoteCompaction.d.ts.map +1 -0
  460. package/dist/eventlog/internal/remoteCompaction.js +76 -0
  461. package/dist/eventlog/internal/remoteCompaction.js.map +1 -0
  462. package/dist/http/Cookies.d.ts +172 -0
  463. package/dist/http/Cookies.d.ts.map +1 -1
  464. package/dist/http/Cookies.js +153 -10
  465. package/dist/http/Cookies.js.map +1 -1
  466. package/dist/http/FetchHttpClient.d.ts +26 -2
  467. package/dist/http/FetchHttpClient.d.ts.map +1 -1
  468. package/dist/http/FetchHttpClient.js +78 -15
  469. package/dist/http/FetchHttpClient.js.map +1 -1
  470. package/dist/http/HttpClient.d.ts +502 -8
  471. package/dist/http/HttpClient.d.ts.map +1 -1
  472. package/dist/http/HttpClient.js +296 -12
  473. package/dist/http/HttpClient.js.map +1 -1
  474. package/dist/http/HttpClientError.d.ts +8 -1
  475. package/dist/http/HttpClientError.d.ts.map +1 -1
  476. package/dist/http/HttpClientError.js +37 -1
  477. package/dist/http/HttpClientError.js.map +1 -1
  478. package/dist/http/HttpClientRequest.d.ts +9 -5
  479. package/dist/http/HttpClientRequest.d.ts.map +1 -1
  480. package/dist/http/HttpClientRequest.js +3 -4
  481. package/dist/http/HttpClientRequest.js.map +1 -1
  482. package/dist/http/HttpClientResponse.d.ts.map +1 -1
  483. package/dist/http/HttpClientResponse.js +3 -2
  484. package/dist/http/HttpClientResponse.js.map +1 -1
  485. package/dist/http/HttpMethod.d.ts +7 -1
  486. package/dist/http/HttpMethod.d.ts.map +1 -1
  487. package/dist/http/HttpMethod.js +3 -8
  488. package/dist/http/HttpMethod.js.map +1 -1
  489. package/dist/http/HttpMiddleware.d.ts +1 -1
  490. package/dist/http/HttpMiddleware.d.ts.map +1 -1
  491. package/dist/http/HttpMiddleware.js +14 -16
  492. package/dist/http/HttpMiddleware.js.map +1 -1
  493. package/dist/http/HttpRouter.d.ts.map +1 -1
  494. package/dist/http/HttpRouter.js +2 -1
  495. package/dist/http/HttpRouter.js.map +1 -1
  496. package/dist/http/HttpServerError.js +2 -2
  497. package/dist/http/HttpServerError.js.map +1 -1
  498. package/dist/http/HttpServerRequest.d.ts +11 -3
  499. package/dist/http/HttpServerRequest.d.ts.map +1 -1
  500. package/dist/http/HttpServerRequest.js +77 -25
  501. package/dist/http/HttpServerRequest.js.map +1 -1
  502. package/dist/http/HttpServerResponse.d.ts.map +1 -1
  503. package/dist/http/HttpServerResponse.js +3 -2
  504. package/dist/http/HttpServerResponse.js.map +1 -1
  505. package/dist/http/HttpStaticServer.d.ts.map +1 -1
  506. package/dist/http/HttpStaticServer.js +48 -21
  507. package/dist/http/HttpStaticServer.js.map +1 -1
  508. package/dist/http/HttpTraceContext.d.ts +2 -1
  509. package/dist/http/HttpTraceContext.d.ts.map +1 -1
  510. package/dist/http/HttpTraceContext.js +7 -5
  511. package/dist/http/HttpTraceContext.js.map +1 -1
  512. package/dist/http/MultipartParser/internal/contentType.js +3 -3
  513. package/dist/http/ProblemDetails.d.ts +96 -0
  514. package/dist/http/ProblemDetails.d.ts.map +1 -0
  515. package/dist/http/ProblemDetails.js +98 -0
  516. package/dist/http/ProblemDetails.js.map +1 -0
  517. package/dist/http/UrlParams.d.ts +3 -1
  518. package/dist/http/UrlParams.d.ts.map +1 -1
  519. package/dist/http/UrlParams.js +4 -2
  520. package/dist/http/UrlParams.js.map +1 -1
  521. package/dist/http/index.d.ts +5 -0
  522. package/dist/http/index.d.ts.map +1 -1
  523. package/dist/http/index.js +5 -0
  524. package/dist/http/index.js.map +1 -1
  525. package/dist/http/internal/compression.js +4 -5
  526. package/dist/http/internal/compression.js.map +1 -1
  527. package/dist/http/internal/decompression.js +6 -2
  528. package/dist/http/internal/decompression.js.map +1 -1
  529. package/dist/http/internal/httpBody.js +8 -1
  530. package/dist/http/internal/httpBody.js.map +1 -1
  531. package/dist/http/internal/urlParams.js +33 -0
  532. package/dist/http/internal/urlParams.js.map +1 -1
  533. package/dist/http-api/HttpApi.d.ts +3 -6
  534. package/dist/http-api/HttpApi.d.ts.map +1 -1
  535. package/dist/http-api/HttpApi.js +3 -6
  536. package/dist/http-api/HttpApi.js.map +1 -1
  537. package/dist/http-api/HttpApiBuilder.d.ts.map +1 -1
  538. package/dist/http-api/HttpApiBuilder.js +43 -13
  539. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  540. package/dist/http-api/HttpApiClient.d.ts +140 -7
  541. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  542. package/dist/http-api/HttpApiClient.js +193 -44
  543. package/dist/http-api/HttpApiClient.js.map +1 -1
  544. package/dist/http-api/HttpApiEndpoint.d.ts +24 -7
  545. package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
  546. package/dist/http-api/HttpApiEndpoint.js +123 -32
  547. package/dist/http-api/HttpApiEndpoint.js.map +1 -1
  548. package/dist/http-api/HttpApiError.d.ts +185 -13
  549. package/dist/http-api/HttpApiError.d.ts.map +1 -1
  550. package/dist/http-api/HttpApiError.js +128 -0
  551. package/dist/http-api/HttpApiError.js.map +1 -1
  552. package/dist/http-api/HttpApiMiddleware.d.ts +64 -17
  553. package/dist/http-api/HttpApiMiddleware.d.ts.map +1 -1
  554. package/dist/http-api/HttpApiMiddleware.js +85 -1
  555. package/dist/http-api/HttpApiMiddleware.js.map +1 -1
  556. package/dist/http-api/HttpApiSchema.d.ts +142 -33
  557. package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
  558. package/dist/http-api/HttpApiSchema.js +123 -59
  559. package/dist/http-api/HttpApiSchema.js.map +1 -1
  560. package/dist/http-api/HttpApiTest.d.ts.map +1 -1
  561. package/dist/http-api/HttpApiTest.js +3 -2
  562. package/dist/http-api/HttpApiTest.js.map +1 -1
  563. package/dist/http-api/OpenApi.d.ts.map +1 -1
  564. package/dist/http-api/OpenApi.js +25 -16
  565. package/dist/http-api/OpenApi.js.map +1 -1
  566. package/dist/http-api/internal/toCodecHttpProperties.d.ts +2 -0
  567. package/dist/http-api/internal/toCodecHttpProperties.d.ts.map +1 -0
  568. package/dist/http-api/internal/toCodecHttpProperties.js +38 -0
  569. package/dist/http-api/internal/toCodecHttpProperties.js.map +1 -0
  570. package/dist/index.d.ts +5 -5
  571. package/dist/index.d.ts.map +1 -1
  572. package/dist/index.js +5 -5
  573. package/dist/index.js.map +1 -1
  574. package/dist/internal/arbitrary/runner.d.ts.map +1 -1
  575. package/dist/internal/arbitrary/runner.js +120 -44
  576. package/dist/internal/arbitrary/runner.js.map +1 -1
  577. package/dist/internal/core.js +2 -0
  578. package/dist/internal/core.js.map +1 -1
  579. package/dist/internal/effect.js +46 -27
  580. package/dist/internal/effect.js.map +1 -1
  581. package/dist/internal/equal.js +14 -0
  582. package/dist/internal/equal.js.map +1 -1
  583. package/dist/internal/glob.d.ts +2 -0
  584. package/dist/internal/glob.d.ts.map +1 -0
  585. package/dist/internal/glob.js +630 -0
  586. package/dist/internal/glob.js.map +1 -0
  587. package/dist/internal/jsonSchema.d.ts +2 -0
  588. package/dist/internal/jsonSchema.d.ts.map +1 -0
  589. package/dist/internal/jsonSchema.js +28 -0
  590. package/dist/internal/jsonSchema.js.map +1 -0
  591. package/dist/internal/matcher.js +11 -1
  592. package/dist/internal/matcher.js.map +1 -1
  593. package/dist/internal/persistence.js +9 -0
  594. package/dist/internal/persistence.js.map +1 -1
  595. package/dist/internal/rcRef.js +4 -1
  596. package/dist/internal/rcRef.js.map +1 -1
  597. package/dist/internal/schema/compilerRegistry.js +4 -1
  598. package/dist/internal/schema/compilerRegistry.js.map +1 -1
  599. package/dist/internal/schema/content.d.ts +2 -0
  600. package/dist/internal/schema/content.d.ts.map +1 -0
  601. package/dist/internal/schema/content.js +13 -0
  602. package/dist/internal/schema/content.js.map +1 -0
  603. package/dist/internal/schema/fromJsonSchemaDocument.js +173 -185
  604. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  605. package/dist/internal/schema/fromRepresentation.js +2 -1
  606. package/dist/internal/schema/fromRepresentation.js.map +1 -1
  607. package/dist/internal/schema/standardSchema.js +8 -2
  608. package/dist/internal/schema/standardSchema.js.map +1 -1
  609. package/dist/internal/schema/toCodeDocument.js +9 -6
  610. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  611. package/dist/internal/schema/toCodec.js +21 -24
  612. package/dist/internal/schema/toCodec.js.map +1 -1
  613. package/dist/internal/schema/toJsonSchemaDocument.js +205 -140
  614. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
  615. package/dist/internal/schema/toRepresentation.js +107 -129
  616. package/dist/internal/schema/toRepresentation.js.map +1 -1
  617. package/dist/internal/sql.d.ts +2 -0
  618. package/dist/internal/sql.d.ts.map +1 -0
  619. package/dist/internal/sql.js +13 -0
  620. package/dist/internal/sql.js.map +1 -0
  621. package/dist/internal/trie.js +42 -13
  622. package/dist/internal/trie.js.map +1 -1
  623. package/dist/internal/ulid.js +41 -0
  624. package/dist/internal/ulid.js.map +1 -1
  625. package/dist/internal/uuid.js +52 -8
  626. package/dist/internal/uuid.js.map +1 -1
  627. package/dist/internal/version.js +1 -1
  628. package/dist/observability/Otlp.d.ts +15 -4
  629. package/dist/observability/Otlp.d.ts.map +1 -1
  630. package/dist/observability/Otlp.js +10 -0
  631. package/dist/observability/Otlp.js.map +1 -1
  632. package/dist/observability/OtlpProxy.d.ts +154 -0
  633. package/dist/observability/OtlpProxy.d.ts.map +1 -0
  634. package/dist/observability/OtlpProxy.js +235 -0
  635. package/dist/observability/OtlpProxy.js.map +1 -0
  636. package/dist/observability/OtlpResource.d.ts +7 -0
  637. package/dist/observability/OtlpResource.d.ts.map +1 -1
  638. package/dist/observability/OtlpResource.js +11 -1
  639. package/dist/observability/OtlpResource.js.map +1 -1
  640. package/dist/observability/OtlpTracer.d.ts.map +1 -1
  641. package/dist/observability/OtlpTracer.js +4 -0
  642. package/dist/observability/OtlpTracer.js.map +1 -1
  643. package/dist/observability/index.d.ts +5 -0
  644. package/dist/observability/index.d.ts.map +1 -1
  645. package/dist/observability/index.js +5 -0
  646. package/dist/observability/index.js.map +1 -1
  647. package/dist/persistence/CircuitBreaker.d.ts +897 -0
  648. package/dist/persistence/CircuitBreaker.d.ts.map +1 -0
  649. package/dist/persistence/CircuitBreaker.js +1165 -0
  650. package/dist/persistence/CircuitBreaker.js.map +1 -0
  651. package/dist/persistence/KeyValueStore.d.ts +47 -2
  652. package/dist/persistence/KeyValueStore.d.ts.map +1 -1
  653. package/dist/persistence/KeyValueStore.js +129 -18
  654. package/dist/persistence/KeyValueStore.js.map +1 -1
  655. package/dist/persistence/PersistedQueue.d.ts +9 -0
  656. package/dist/persistence/PersistedQueue.d.ts.map +1 -1
  657. package/dist/persistence/PersistedQueue.js +94 -52
  658. package/dist/persistence/PersistedQueue.js.map +1 -1
  659. package/dist/persistence/Persistence.d.ts +10 -4
  660. package/dist/persistence/Persistence.d.ts.map +1 -1
  661. package/dist/persistence/Persistence.js +18 -11
  662. package/dist/persistence/Persistence.js.map +1 -1
  663. package/dist/persistence/Redis.d.ts +78 -2
  664. package/dist/persistence/Redis.d.ts.map +1 -1
  665. package/dist/persistence/Redis.js +62 -7
  666. package/dist/persistence/Redis.js.map +1 -1
  667. package/dist/persistence/index.d.ts +5 -0
  668. package/dist/persistence/index.d.ts.map +1 -1
  669. package/dist/persistence/index.js +5 -0
  670. package/dist/persistence/index.js.map +1 -1
  671. package/dist/process/ChildProcess.d.ts +237 -71
  672. package/dist/process/ChildProcess.d.ts.map +1 -1
  673. package/dist/process/ChildProcess.js +56 -158
  674. package/dist/process/ChildProcess.js.map +1 -1
  675. package/dist/process/ChildProcessSpawner.d.ts +35 -0
  676. package/dist/process/ChildProcessSpawner.d.ts.map +1 -1
  677. package/dist/process/ChildProcessSpawner.js +5 -2
  678. package/dist/process/ChildProcessSpawner.js.map +1 -1
  679. package/dist/process/CommandLine.d.ts +294 -0
  680. package/dist/process/CommandLine.d.ts.map +1 -0
  681. package/dist/process/CommandLine.js +481 -0
  682. package/dist/process/CommandLine.js.map +1 -0
  683. package/dist/process/index.d.ts +5 -0
  684. package/dist/process/index.d.ts.map +1 -1
  685. package/dist/process/index.js +5 -0
  686. package/dist/process/index.js.map +1 -1
  687. package/dist/reactivity/AsyncResult.d.ts +1 -1
  688. package/dist/reactivity/AsyncResult.d.ts.map +1 -1
  689. package/dist/reactivity/Atom.d.ts +2 -1
  690. package/dist/reactivity/Atom.d.ts.map +1 -1
  691. package/dist/reactivity/Atom.js +3 -4
  692. package/dist/reactivity/Atom.js.map +1 -1
  693. package/dist/reactivity/AtomRegistry.js.map +1 -1
  694. package/dist/rpc/RpcClient.d.ts +16 -1
  695. package/dist/rpc/RpcClient.d.ts.map +1 -1
  696. package/dist/rpc/RpcClient.js +59 -24
  697. package/dist/rpc/RpcClient.js.map +1 -1
  698. package/dist/rpc/RpcMessage.d.ts +10 -1
  699. package/dist/rpc/RpcMessage.d.ts.map +1 -1
  700. package/dist/rpc/RpcMessage.js +1 -0
  701. package/dist/rpc/RpcMessage.js.map +1 -1
  702. package/dist/rpc/RpcSerialization.d.ts +14 -0
  703. package/dist/rpc/RpcSerialization.d.ts.map +1 -1
  704. package/dist/rpc/RpcSerialization.js +26 -8
  705. package/dist/rpc/RpcSerialization.js.map +1 -1
  706. package/dist/rpc/RpcServer.d.ts +31 -0
  707. package/dist/rpc/RpcServer.d.ts.map +1 -1
  708. package/dist/rpc/RpcServer.js +139 -56
  709. package/dist/rpc/RpcServer.js.map +1 -1
  710. package/dist/rpc/RpcTest.d.ts +1 -0
  711. package/dist/rpc/RpcTest.d.ts.map +1 -1
  712. package/dist/rpc/RpcTest.js +1 -0
  713. package/dist/rpc/RpcTest.js.map +1 -1
  714. package/dist/schema/Model.d.ts +14 -0
  715. package/dist/schema/Model.d.ts.map +1 -1
  716. package/dist/schema/Model.js +18 -3
  717. package/dist/schema/Model.js.map +1 -1
  718. package/dist/sql/Migrator.d.ts +2 -20
  719. package/dist/sql/Migrator.d.ts.map +1 -1
  720. package/dist/sql/Migrator.js +13 -55
  721. package/dist/sql/Migrator.js.map +1 -1
  722. package/dist/sql/MigratorFileSystem.d.ts +21 -0
  723. package/dist/sql/MigratorFileSystem.d.ts.map +1 -0
  724. package/dist/sql/MigratorFileSystem.js +57 -0
  725. package/dist/sql/MigratorFileSystem.js.map +1 -0
  726. package/dist/sql/SqlClient.d.ts +9 -4
  727. package/dist/sql/SqlClient.d.ts.map +1 -1
  728. package/dist/sql/SqlClient.js +13 -10
  729. package/dist/sql/SqlClient.js.map +1 -1
  730. package/dist/sql/SqlResolver.d.ts +4 -0
  731. package/dist/sql/SqlResolver.d.ts.map +1 -1
  732. package/dist/sql/SqlResolver.js +18 -4
  733. package/dist/sql/SqlResolver.js.map +1 -1
  734. package/dist/sql/Statement.d.ts +27 -6
  735. package/dist/sql/Statement.d.ts.map +1 -1
  736. package/dist/sql/Statement.js +21 -15
  737. package/dist/sql/Statement.js.map +1 -1
  738. package/dist/sql/index.js +1 -1
  739. package/dist/testing/index.d.ts +0 -5
  740. package/dist/testing/index.d.ts.map +1 -1
  741. package/dist/testing/index.js +0 -5
  742. package/dist/testing/index.js.map +1 -1
  743. package/dist/workflow/DurableDeferred.d.ts.map +1 -1
  744. package/dist/workflow/DurableDeferred.js +21 -2
  745. package/dist/workflow/DurableDeferred.js.map +1 -1
  746. package/dist/workflow/internal/crypto.js +9 -8
  747. package/dist/workflow/internal/crypto.js.map +1 -1
  748. package/package.json +3 -1
  749. package/src/Arbitrary.ts +10 -2
  750. package/src/BigDecimal.ts +3 -0
  751. package/src/Channel.ts +64 -29
  752. package/src/Config.ts +7 -1
  753. package/src/Context.ts +34 -10
  754. package/src/Cron.ts +178 -29
  755. package/src/Data.ts +60 -265
  756. package/src/Duration.ts +140 -0
  757. package/src/Effect.ts +915 -86
  758. package/src/Equal.ts +8 -1
  759. package/src/Exit.ts +3 -3
  760. package/src/FileSystem.ts +65 -4
  761. package/src/Formatter.ts +28 -13
  762. package/src/Glob.ts +205 -0
  763. package/src/Hash.ts +4 -1
  764. package/src/JsonPatch.ts +4 -0
  765. package/src/JsonSchema.ts +12 -40
  766. package/src/Match.ts +127 -0
  767. package/src/Metric.ts +3 -3
  768. package/src/MutableList.ts +7 -5
  769. package/src/MutableRef.ts +8 -1
  770. package/src/PartitionedSemaphore.ts +24 -13
  771. package/src/Pool.ts +182 -52
  772. package/src/PubSub.ts +5 -6
  773. package/src/Random.ts +3 -3
  774. package/src/RcMap.ts +5 -1
  775. package/src/Ref.ts +8 -0
  776. package/src/Schedule.ts +27 -4
  777. package/src/Schema.ts +1237 -87
  778. package/src/SchemaAST.ts +20 -20
  779. package/src/SchemaGetter.ts +27 -11
  780. package/src/SchemaParser.ts +51 -18
  781. package/src/SchemaRepresentation.ts +50 -34
  782. package/src/SchemaTransformation.ts +17 -5
  783. package/src/ScopedCache.ts +5 -9
  784. package/src/Semaphore.ts +208 -40
  785. package/src/Sink.ts +15 -2
  786. package/src/Stream.ts +48 -22
  787. package/src/String.ts +3 -0
  788. package/src/Terminal.ts +19 -1
  789. package/src/Tracer.ts +15 -1
  790. package/src/ai/AiError.ts +56 -80
  791. package/src/ai/Decision.ts +257 -6
  792. package/src/ai/DecisionModel.ts +171 -28
  793. package/src/ai/LanguageModel.ts +9 -0
  794. package/src/ai/McpServer.ts +1283 -299
  795. package/src/ai/McpTest.ts +380 -0
  796. package/src/ai/Prompt.ts +65 -0
  797. package/src/ai/Response.ts +36 -31
  798. package/src/ai/Tool.ts +65 -10
  799. package/src/ai/Toolkit.ts +4 -1
  800. package/src/ai/index.ts +6 -0
  801. package/src/ai/internal/mcpCore.ts +78 -44
  802. package/src/ai/internal/mcpProtocol/v2024_11_05.ts +4 -7
  803. package/src/ai/internal/mcpProtocol/v2025_03_26.ts +4 -7
  804. package/src/ai/internal/mcpProtocol/v2025_06_18.ts +4 -7
  805. package/src/ai/internal/mcpProtocol/v2025_11_25.ts +4 -7
  806. package/src/ai/internal/mcpProtocol/v2026_07_28.ts +15 -10
  807. package/src/ai/internal/mcpProtocol.ts +29 -0
  808. package/src/ai/internal/mcpRuntime.ts +9 -5
  809. package/src/ai/internal/mcpStatefulRuntime.ts +14 -2
  810. package/src/cli/Argument.ts +21 -0
  811. package/src/cli/CliError.ts +90 -3
  812. package/src/cli/CliOutput.ts +300 -55
  813. package/src/cli/Command.ts +76 -41
  814. package/src/cli/Completions.ts +51 -0
  815. package/src/cli/Flag.ts +122 -0
  816. package/src/cli/GlobalFlag.ts +6 -7
  817. package/src/cli/HelpDoc.ts +18 -1
  818. package/src/cli/Param.ts +35 -6
  819. package/src/cli/Primitive.ts +16 -1
  820. package/src/cli/Prompt.ts +1 -0
  821. package/src/cli/TerminalCapabilities.ts +6 -3
  822. package/src/cli/internal/completions/bash.ts +79 -29
  823. package/src/cli/internal/help.ts +21 -9
  824. package/src/cluster/ClusterWorkflowEngine.ts +46 -16
  825. package/src/cluster/MessageStorage.ts +19 -14
  826. package/src/cluster/Sharding.ts +176 -47
  827. package/src/cluster/ShardingConfig.ts +43 -0
  828. package/src/cluster/SingleRunner.ts +3 -3
  829. package/src/cluster/Snowflake.ts +3 -7
  830. package/src/cluster/SqlMessageStorage.ts +49 -17
  831. package/src/cluster/SqlRunnerStorage.ts +143 -70
  832. package/src/cluster/internal/entityManager.ts +75 -22
  833. package/src/crypto/Aead.ts +517 -0
  834. package/src/crypto/Cipher.ts +326 -0
  835. package/src/crypto/CryptoError.ts +242 -0
  836. package/src/crypto/Digest.ts +167 -0
  837. package/src/crypto/Kdf.ts +315 -0
  838. package/src/crypto/KeyAgreement.ts +489 -0
  839. package/src/crypto/KeyFormat.ts +712 -0
  840. package/src/crypto/KeyWrap.ts +639 -0
  841. package/src/crypto/Mac.ts +386 -0
  842. package/src/crypto/SecureRandom.ts +459 -0
  843. package/src/crypto/Signature.ts +673 -0
  844. package/src/crypto/WebCrypto.ts +64 -0
  845. package/src/crypto/index.ts +78 -0
  846. package/src/crypto/internal/asymmetric.ts +329 -0
  847. package/src/crypto/internal/chacha.ts +1088 -0
  848. package/src/crypto/internal/der.ts +110 -0
  849. package/src/crypto/internal/digest.ts +16 -0
  850. package/src/crypto/internal/key.ts +235 -0
  851. package/src/crypto/internal/md5.ts +170 -0
  852. package/src/crypto/internal/webCrypto.ts +150 -0
  853. package/src/devtools/DevToolsClient.ts +2 -0
  854. package/src/encoding/Base64.ts +38 -0
  855. package/src/encoding/Base64Url.ts +5 -2
  856. package/src/encoding/Csv.ts +1298 -0
  857. package/src/encoding/Hex.ts +3 -2
  858. package/src/encoding/SchemaBinary.ts +40 -4
  859. package/src/encoding/Sse.ts +4 -3
  860. package/src/encoding/Toml.ts +117 -35
  861. package/src/encoding/Yaml.ts +61 -18
  862. package/src/encoding/index.ts +6 -0
  863. package/src/eventlog/EventJournal.ts +4 -3
  864. package/src/eventlog/EventLog.ts +340 -15
  865. package/src/eventlog/EventLogEncryption.ts +118 -110
  866. package/src/eventlog/EventLogMessage.ts +273 -1
  867. package/src/eventlog/EventLogRemote.ts +367 -23
  868. package/src/eventlog/EventLogServer.ts +23 -8
  869. package/src/eventlog/EventLogServerEncrypted.ts +1130 -67
  870. package/src/eventlog/EventLogSessionAuth.ts +56 -70
  871. package/src/eventlog/EventRow.ts +12 -3
  872. package/src/eventlog/SqlEventJournal.ts +68 -45
  873. package/src/eventlog/SqlEventLogServerEncrypted.ts +1244 -136
  874. package/src/eventlog/SqlEventLogServerUnencrypted.ts +2 -2
  875. package/src/eventlog/internal/batches.ts +30 -0
  876. package/src/eventlog/internal/compaction.ts +64 -0
  877. package/src/eventlog/internal/conflicts.ts +0 -4
  878. package/src/eventlog/internal/identityRootSecretDerivation.ts +93 -123
  879. package/src/eventlog/internal/remoteCompaction.ts +92 -0
  880. package/src/http/Cookies.ts +291 -12
  881. package/src/http/FetchHttpClient.ts +88 -16
  882. package/src/http/HttpClient.ts +636 -29
  883. package/src/http/HttpClientError.ts +35 -1
  884. package/src/http/HttpClientRequest.ts +21 -10
  885. package/src/http/HttpClientResponse.ts +3 -2
  886. package/src/http/HttpMethod.ts +10 -2
  887. package/src/http/HttpMiddleware.ts +15 -18
  888. package/src/http/HttpRouter.ts +2 -1
  889. package/src/http/HttpServerError.ts +2 -2
  890. package/src/http/HttpServerRequest.ts +101 -30
  891. package/src/http/HttpServerResponse.ts +3 -2
  892. package/src/http/HttpStaticServer.ts +51 -22
  893. package/src/http/HttpTraceContext.ts +7 -4
  894. package/src/http/MultipartParser/internal/contentType.ts +3 -3
  895. package/src/http/ProblemDetails.ts +149 -0
  896. package/src/http/UrlParams.ts +6 -1
  897. package/src/http/index.ts +6 -0
  898. package/src/http/internal/compression.ts +4 -5
  899. package/src/http/internal/decompression.ts +10 -4
  900. package/src/http/internal/httpBody.ts +10 -2
  901. package/src/http/internal/urlParams.ts +37 -0
  902. package/src/http-api/HttpApi.ts +3 -6
  903. package/src/http-api/HttpApiBuilder.ts +61 -19
  904. package/src/http-api/HttpApiClient.ts +284 -72
  905. package/src/http-api/HttpApiEndpoint.ts +135 -35
  906. package/src/http-api/HttpApiError.ts +250 -0
  907. package/src/http-api/HttpApiMiddleware.ts +95 -1
  908. package/src/http-api/HttpApiSchema.ts +236 -52
  909. package/src/http-api/HttpApiTest.ts +3 -2
  910. package/src/http-api/OpenApi.ts +20 -17
  911. package/src/http-api/internal/toCodecHttpProperties.ts +56 -0
  912. package/src/index.ts +6 -6
  913. package/src/internal/arbitrary/runner.ts +133 -36
  914. package/src/internal/core.ts +2 -0
  915. package/src/internal/effect.ts +58 -34
  916. package/src/internal/equal.ts +17 -0
  917. package/src/internal/glob.ts +736 -0
  918. package/src/internal/jsonSchema.ts +27 -0
  919. package/src/internal/matcher.ts +18 -1
  920. package/src/internal/persistence.ts +11 -0
  921. package/src/internal/rcRef.ts +4 -1
  922. package/src/internal/schema/compilerRegistry.ts +6 -1
  923. package/src/internal/schema/content.ts +18 -0
  924. package/src/internal/schema/fromJsonSchemaDocument.ts +228 -190
  925. package/src/internal/schema/fromRepresentation.ts +2 -1
  926. package/src/internal/schema/standardSchema.ts +2 -2
  927. package/src/internal/schema/toCodeDocument.ts +11 -7
  928. package/src/internal/schema/toCodec.ts +26 -22
  929. package/src/internal/schema/toJsonSchemaDocument.ts +189 -167
  930. package/src/internal/schema/toRepresentation.ts +122 -140
  931. package/src/internal/sql.ts +14 -0
  932. package/src/internal/trie.ts +43 -14
  933. package/src/internal/ulid.ts +44 -0
  934. package/src/internal/uuid.ts +57 -16
  935. package/src/internal/version.ts +1 -1
  936. package/src/observability/Otlp.ts +21 -4
  937. package/src/observability/OtlpProxy.ts +314 -0
  938. package/src/observability/OtlpResource.ts +9 -1
  939. package/src/observability/OtlpTracer.ts +4 -0
  940. package/src/observability/index.ts +6 -0
  941. package/src/persistence/CircuitBreaker.ts +1678 -0
  942. package/src/persistence/KeyValueStore.ts +219 -22
  943. package/src/persistence/PersistedQueue.ts +128 -59
  944. package/src/persistence/Persistence.ts +20 -13
  945. package/src/persistence/Redis.ts +129 -8
  946. package/src/persistence/index.ts +6 -0
  947. package/src/process/ChildProcess.ts +285 -264
  948. package/src/process/ChildProcessSpawner.ts +46 -2
  949. package/src/process/CommandLine.ts +630 -0
  950. package/src/process/index.ts +6 -0
  951. package/src/reactivity/AsyncResult.ts +1 -1
  952. package/src/reactivity/Atom.ts +5 -5
  953. package/src/reactivity/AtomRegistry.ts +1 -1
  954. package/src/rpc/RpcClient.ts +75 -36
  955. package/src/rpc/RpcMessage.ts +10 -1
  956. package/src/rpc/RpcSerialization.ts +35 -9
  957. package/src/rpc/RpcServer.ts +176 -63
  958. package/src/rpc/RpcTest.ts +3 -0
  959. package/src/schema/Model.ts +26 -3
  960. package/src/sql/Migrator.ts +15 -69
  961. package/src/sql/MigratorFileSystem.ts +71 -0
  962. package/src/sql/SqlClient.ts +13 -20
  963. package/src/sql/SqlResolver.ts +23 -9
  964. package/src/sql/Statement.ts +38 -9
  965. package/src/sql/index.ts +1 -1
  966. package/src/testing/index.ts +0 -6
  967. package/src/workflow/DurableDeferred.ts +23 -6
  968. package/src/workflow/internal/crypto.ts +15 -11
  969. package/dist/Crypto.d.ts +0 -244
  970. package/dist/Crypto.d.ts.map +0 -1
  971. package/dist/Crypto.js +0 -139
  972. package/dist/Crypto.js.map +0 -1
  973. package/dist/testing/TestCrypto.d.ts +0 -73
  974. package/dist/testing/TestCrypto.d.ts.map +0 -1
  975. package/dist/testing/TestCrypto.js +0 -87
  976. package/dist/testing/TestCrypto.js.map +0 -1
  977. package/src/Crypto.ts +0 -347
  978. package/src/testing/TestCrypto.ts +0 -94
package/dist/Crypto.d.ts DELETED
@@ -1,244 +0,0 @@
1
- /**
2
- * Defines a platform-independent service for cryptographic operations.
3
- *
4
- * Runtime packages provide concrete implementations backed by the host
5
- * platform's cryptography APIs. This module defines the service interface and a
6
- * constructor from random-byte and digest primitives. The service provides
7
- * secure random bytes and numbers, UUIDv4 and UUIDv7 generation, shuffling, and
8
- * SHA message digests.
9
- *
10
- * @stability unstable
11
- * @since 4.0.0
12
- */
13
- import * as Context from "./Context.ts";
14
- import * as Effect from "./Effect.ts";
15
- import * as PlatformError from "./PlatformError.ts";
16
- declare const TypeId = "~effect/Crypto";
17
- /**
18
- * Digest algorithms supported by the platform `Crypto` service.
19
- *
20
- * **Gotchas**
21
- *
22
- * SHA-1 is included for interoperability with existing protocols. Do not use
23
- * SHA-1 for new security-sensitive designs.
24
- *
25
- * **Example** (Using a digest algorithm)
26
- *
27
- * ```ts import.meta.vitest
28
- * import { Crypto } from "effect"
29
- *
30
- * const algorithm: Crypto.DigestAlgorithm = "SHA-256"
31
- * ```
32
- *
33
- * @stability unstable
34
- * @category models
35
- * @since 4.0.0
36
- */
37
- export type DigestAlgorithm = "SHA-1" | "SHA-256" | "SHA-384" | "SHA-512";
38
- /**
39
- * Platform-agnostic cryptographic operations.
40
- *
41
- * **Details**
42
- *
43
- * `Crypto` implementations must use cryptographically secure platform APIs.
44
- * The random generator helpers are derived by the `make` constructor from
45
- * the random methods on this service.
46
- *
47
- * **Example** (Using cryptographic operations)
48
- *
49
- * ```ts import.meta.vitest
50
- * import { Crypto, Effect, Layer } from "effect"
51
- *
52
- * const TestCrypto = Layer.succeed(
53
- * Crypto.Crypto,
54
- * Crypto.make({
55
- * randomBytes: (size) => new Uint8Array(size),
56
- * digest: (_algorithm, data) => Effect.succeed(data)
57
- * })
58
- * )
59
- *
60
- * const program = Effect.gen(function*() {
61
- * const crypto = yield* Crypto.Crypto
62
- * const bytes = yield* crypto.randomBytes(16)
63
- * const uuidv4 = yield* crypto.randomUUIDv4()
64
- * const hash = yield* crypto.digest("SHA-256", bytes)
65
- * return [bytes.length, uuidv4.length, hash.length]
66
- * })
67
- *
68
- * await Effect.runPromise(Effect.provide(program, TestCrypto)) // => [16, 36, 16]
69
- * ```
70
- *
71
- * @stability unstable
72
- * @category services
73
- * @since 4.0.0
74
- */
75
- export interface Crypto {
76
- readonly [TypeId]: typeof TypeId;
77
- /**
78
- * Generates a random integer in the range Number.MIN_SAFE_INTEGER to
79
- * Number.MAX_SAFE_INTEGER (both inclusive).
80
- */
81
- nextIntUnsafe(): number;
82
- /**
83
- * Generates a random number in the range 0 (inclusive) to 1 (exclusive).
84
- */
85
- nextDoubleUnsafe(): number;
86
- /**
87
- * Generates cryptographically secure random bytes.
88
- */
89
- randomBytes(size: number): Effect.Effect<Uint8Array, PlatformError.PlatformError>;
90
- /**
91
- * Computes a cryptographic digest for the supplied data.
92
- */
93
- digest(algorithm: DigestAlgorithm, data: Uint8Array): Effect.Effect<Uint8Array, PlatformError.PlatformError>;
94
- /**
95
- * Generates a cryptographically secure random number between 0 (inclusive)
96
- * and 1 (exclusive).
97
- */
98
- readonly random: Effect.Effect<number>;
99
- /**
100
- * Generates a cryptographically secure random boolean.
101
- */
102
- readonly randomBoolean: Effect.Effect<boolean>;
103
- /**
104
- * Generates a cryptographically secure random integer between
105
- * `Number.MIN_SAFE_INTEGER` and `Number.MAX_SAFE_INTEGER` (both inclusive).
106
- */
107
- readonly randomInt: Effect.Effect<number>;
108
- /**
109
- * Generates a cryptographically secure random number between `min`
110
- * (inclusive) and `max` (exclusive).
111
- */
112
- randomBetween(min: number, max: number): Effect.Effect<number>;
113
- /**
114
- * Generates a cryptographically secure random integer between `min` and `max`.
115
- *
116
- * **Details**
117
- *
118
- * The lower bound is rounded up with `Math.ceil` and the upper bound is
119
- * rounded down with `Math.floor`. By default the range is inclusive; set
120
- * `options.halfOpen: true` to exclude the upper bound.
121
- */
122
- randomIntBetween(min: number, max: number, options?: {
123
- readonly halfOpen?: boolean | undefined;
124
- }): Effect.Effect<number>;
125
- /**
126
- * Uses the cryptographically secure random generator to shuffle the supplied
127
- * iterable.
128
- */
129
- randomShuffle<A>(elements: Iterable<A>): Effect.Effect<Array<A>>;
130
- /**
131
- * Generates a cryptographically secure UUIDv4.
132
- *
133
- * **Details**
134
- *
135
- * The default `"hex"` format returns a lowercase, hyphenated UUID string
136
- * (36 characters), not a bare hexadecimal string. The `"bytes"` format
137
- * returns the 16 UUID bytes, including the version and variant bits.
138
- */
139
- randomUUIDv4(options?: {
140
- readonly format?: "hex" | undefined;
141
- }): Effect.Effect<string, PlatformError.PlatformError>;
142
- randomUUIDv4<Format extends "hex" | "bytes">(options: {
143
- readonly format: Format;
144
- }): Effect.Effect<Format extends "bytes" ? Uint8Array : string, PlatformError.PlatformError>;
145
- randomUUIDv4(options?: {
146
- readonly format?: "hex" | "bytes" | undefined;
147
- }): Effect.Effect<string | Uint8Array, PlatformError.PlatformError>;
148
- /**
149
- * Generates a cryptographically secure UUIDv7 using the `Clock` timestamp.
150
- *
151
- * **Details**
152
- *
153
- * The default `"hex"` format returns a lowercase, hyphenated UUID string
154
- * (36 characters), not a bare hexadecimal string. The `"bytes"` format
155
- * returns the 16 UUID bytes, including the timestamp, version and variant bits.
156
- */
157
- randomUUIDv7(options?: {
158
- readonly format?: "hex" | undefined;
159
- }): Effect.Effect<string, PlatformError.PlatformError>;
160
- randomUUIDv7<Format extends "hex" | "bytes">(options: {
161
- readonly format: Format;
162
- }): Effect.Effect<Format extends "bytes" ? Uint8Array : string, PlatformError.PlatformError>;
163
- randomUUIDv7(options?: {
164
- readonly format?: "hex" | "bytes" | undefined;
165
- }): Effect.Effect<string | Uint8Array, PlatformError.PlatformError>;
166
- /**
167
- * Generates a cryptographically secure ULID string.
168
- *
169
- * **Details**
170
- *
171
- * ULIDs contain 26 uppercase Crockford base32 characters. The first 10 encode
172
- * the `Clock` timestamp in milliseconds; the remaining 16 encode 80 random
173
- * bits. ULIDs sort by timestamp, with no ordering guarantee within the same
174
- * millisecond.
175
- *
176
- * Timestamp normalization matches UUIDv7: fractions are truncated, values are
177
- * clamped to the 48-bit range, and `NaN` encodes as zero.
178
- */
179
- readonly randomULID: Effect.Effect<string, PlatformError.PlatformError>;
180
- }
181
- /**
182
- * Service tag for platform cryptography.
183
- *
184
- * **When to use**
185
- *
186
- * Use when you need to provide or retrieve the full platform cryptography
187
- * service from an effect's context.
188
- *
189
- * **Details**
190
- *
191
- * Providing this service supplies platform-agnostic cryptographic operations
192
- * such as hashing, UUID generation, and secure random values.
193
- *
194
- * @see {@link make} for constructing a Crypto service from primitive operations
195
- *
196
- * @stability unstable
197
- * @category services
198
- * @since 4.0.0
199
- */
200
- export declare const Crypto: Context.Service<Crypto, Crypto>;
201
- /**
202
- * Creates a `Crypto` service from the primitive implementation, deriving the
203
- * random generator helpers and UUID generation from those primitives.
204
- *
205
- * **When to use**
206
- *
207
- * Use to build a Crypto service for a platform integration, test layer, or
208
- * custom runtime from primitive random-byte and digest operations.
209
- *
210
- * **Details**
211
- *
212
- * The constructor derives random numbers, booleans, integer ranges, shuffling,
213
- * and UUID generation from `impl.randomBytes`. Digest operations delegate to
214
- * `impl.digest`.
215
- *
216
- * **Gotchas**
217
- *
218
- * `impl.randomBytes` must return cryptographically secure bytes of the
219
- * requested length. UUID formatting mutates the byte array returned for UUID
220
- * generation, so the implementation should return a fresh array for each call.
221
- *
222
- * **Example** (Creating a Crypto service)
223
- *
224
- * ```ts import.meta.vitest
225
- * import { Crypto, Effect } from "effect"
226
- *
227
- * const testCrypto = Crypto.make({
228
- * randomBytes: (size) => new Uint8Array(size),
229
- * digest: (_algorithm, data) => Effect.succeed(data)
230
- * })
231
- *
232
- * await Effect.runPromise(testCrypto.randomBytes(4)) // => new Uint8Array([0, 0, 0, 0])
233
- * ```
234
- *
235
- * @stability unstable
236
- * @category constructors
237
- * @since 4.0.0
238
- */
239
- export declare const make: (impl: {
240
- readonly randomBytes: (size: number) => Uint8Array;
241
- readonly digest: (algorithm: DigestAlgorithm, data: Uint8Array) => Effect.Effect<Uint8Array, PlatformError.PlatformError>;
242
- }) => Crypto;
243
- export {};
244
- //# sourceMappingURL=Crypto.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Crypto.d.ts","sourceRoot":"","sources":["../src/Crypto.ts"],"names":[],"mappings":"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"}
package/dist/Crypto.js DELETED
@@ -1,139 +0,0 @@
1
- /**
2
- * Defines a platform-independent service for cryptographic operations.
3
- *
4
- * Runtime packages provide concrete implementations backed by the host
5
- * platform's cryptography APIs. This module defines the service interface and a
6
- * constructor from random-byte and digest primitives. The service provides
7
- * secure random bytes and numbers, UUIDv4 and UUIDv7 generation, shuffling, and
8
- * SHA message digests.
9
- *
10
- * @stability unstable
11
- * @since 4.0.0
12
- */
13
- import * as Context from "./Context.js";
14
- import * as Effect from "./Effect.js";
15
- import * as random from "./internal/random.js";
16
- import * as Ulid from "./internal/ulid.js";
17
- import * as Uuid from "./internal/uuid.js";
18
- import * as PlatformError from "./PlatformError.js";
19
- const TypeId = "~effect/Crypto";
20
- /**
21
- * Service tag for platform cryptography.
22
- *
23
- * **When to use**
24
- *
25
- * Use when you need to provide or retrieve the full platform cryptography
26
- * service from an effect's context.
27
- *
28
- * **Details**
29
- *
30
- * Providing this service supplies platform-agnostic cryptographic operations
31
- * such as hashing, UUID generation, and secure random values.
32
- *
33
- * @see {@link make} for constructing a Crypto service from primitive operations
34
- *
35
- * @stability unstable
36
- * @category services
37
- * @since 4.0.0
38
- */
39
- export const Crypto = /*#__PURE__*/Context.Service("effect/Crypto");
40
- /**
41
- * Creates a `Crypto` service from the primitive implementation, deriving the
42
- * random generator helpers and UUID generation from those primitives.
43
- *
44
- * **When to use**
45
- *
46
- * Use to build a Crypto service for a platform integration, test layer, or
47
- * custom runtime from primitive random-byte and digest operations.
48
- *
49
- * **Details**
50
- *
51
- * The constructor derives random numbers, booleans, integer ranges, shuffling,
52
- * and UUID generation from `impl.randomBytes`. Digest operations delegate to
53
- * `impl.digest`.
54
- *
55
- * **Gotchas**
56
- *
57
- * `impl.randomBytes` must return cryptographically secure bytes of the
58
- * requested length. UUID formatting mutates the byte array returned for UUID
59
- * generation, so the implementation should return a fresh array for each call.
60
- *
61
- * **Example** (Creating a Crypto service)
62
- *
63
- * ```ts import.meta.vitest
64
- * import { Crypto, Effect } from "effect"
65
- *
66
- * const testCrypto = Crypto.make({
67
- * randomBytes: (size) => new Uint8Array(size),
68
- * digest: (_algorithm, data) => Effect.succeed(data)
69
- * })
70
- *
71
- * await Effect.runPromise(testCrypto.randomBytes(4)) // => new Uint8Array([0, 0, 0, 0])
72
- * ```
73
- *
74
- * @stability unstable
75
- * @category constructors
76
- * @since 4.0.0
77
- */
78
- export const make = impl => {
79
- const randomBytesUnsafe = impl.randomBytes;
80
- const randomBytes = size => Effect.map(validateSize("randomBytes", size), randomBytesUnsafe);
81
- const readUint53 = bytes => (bytes[0] & 0x1f) * 2 ** 48 + bytes[1] * 2 ** 40 + bytes[2] * 2 ** 32 + bytes[3] * 2 ** 24 + bytes[4] * 2 ** 16 + bytes[5] * 2 ** 8 + bytes[6];
82
- const nextDoubleUnsafe = () => readUint53(randomBytesUnsafe(7)) / 2 ** 53;
83
- const nextIntUnsafe = () => {
84
- while (true) {
85
- const bytes = randomBytesUnsafe(7);
86
- const value = readUint53(bytes);
87
- if ((bytes[0] & 0x20) === 0) {
88
- return value + Number.MIN_SAFE_INTEGER;
89
- }
90
- if (value < Number.MAX_SAFE_INTEGER) {
91
- return value + 1;
92
- }
93
- }
94
- };
95
- return Crypto.of({
96
- [TypeId]: TypeId,
97
- randomBytes,
98
- nextDoubleUnsafe,
99
- nextIntUnsafe,
100
- digest: impl.digest,
101
- random: Effect.sync(() => nextDoubleUnsafe()),
102
- randomBoolean: Effect.sync(() => nextDoubleUnsafe() > 0.5),
103
- randomInt: Effect.sync(() => nextIntUnsafe()),
104
- randomBetween: (min, max) => Effect.sync(() => random.nextBetween(min, max, nextDoubleUnsafe())),
105
- randomIntBetween(min, max, options) {
106
- const extra = options?.halfOpen === true ? 0 : 1;
107
- return Effect.sync(() => {
108
- const minInt = Math.ceil(min);
109
- const maxInt = Math.floor(max);
110
- return Math.floor(nextDoubleUnsafe() * (maxInt - minInt + extra)) + minInt;
111
- });
112
- },
113
- randomShuffle: elements => Effect.sync(() => {
114
- const buffer = Array.from(elements);
115
- for (let i = buffer.length - 1; i >= 1; i = i - 1) {
116
- const index = Math.min(i, Math.floor(nextDoubleUnsafe() * (i + 1)));
117
- const value = buffer[i];
118
- buffer[i] = buffer[index];
119
- buffer[index] = value;
120
- }
121
- return buffer;
122
- }),
123
- randomUUIDv4: options => Effect.sync(() => {
124
- const bytes = Uuid.v4Bytes(randomBytesUnsafe(16));
125
- return options?.format === "bytes" ? bytes : Uuid.stringify(bytes);
126
- }),
127
- randomUUIDv7: options => Effect.clockWith(clock => {
128
- const bytes = Uuid.v7Bytes(clock.currentTimeMillisUnsafe(), randomBytesUnsafe(16));
129
- return Effect.succeed(options?.format === "bytes" ? bytes : Uuid.stringify(bytes));
130
- }),
131
- randomULID: Effect.clockWith(clock => Effect.succeed(Ulid.ulidString(clock.currentTimeMillisUnsafe(), randomBytesUnsafe(10))))
132
- });
133
- };
134
- const validateSize = (method, size) => Number.isSafeInteger(size) && size >= 0 ? Effect.succeed(size) : Effect.fail(PlatformError.badArgument({
135
- module: "Crypto",
136
- method,
137
- description: "size must be a non-negative safe integer"
138
- }));
139
- //# sourceMappingURL=Crypto.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Crypto.js","names":[],"sources":["../src/Crypto.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,73 +0,0 @@
1
- /**
2
- * Provides a deterministic implementation of the Effect `Crypto` service for
3
- * tests.
4
- *
5
- * Random bytes, numbers, shuffles, UUIDs, and ULIDs are derived from a seeded
6
- * pseudo-random generator. Digest operations are delegated to an underlying
7
- * platform `Crypto` service.
8
- *
9
- * @stability unstable
10
- * @since 4.0.0
11
- */
12
- import * as Crypto from "../Crypto.ts";
13
- import * as Effect from "../Effect.ts";
14
- import * as Layer from "../Layer.ts";
15
- /**
16
- * Creates a deterministic `Crypto` service using a seeded pseudo-random
17
- * generator.
18
- *
19
- * **When to use**
20
- *
21
- * Use to construct a `Crypto` service whose random operations are reproducible
22
- * in tests while preserving the digest implementation of a platform `Crypto`
23
- * service.
24
- *
25
- * **Details**
26
- *
27
- * The effect requires an existing `Crypto` service and delegates digest
28
- * operations to it. Each evaluation starts a new random sequence from `seed`;
29
- * every other random operation is derived from that sequence.
30
- *
31
- * **Gotchas**
32
- *
33
- * The generated values are deterministic and must not be used for
34
- * security-sensitive purposes. The sequence depends on the order in which
35
- * random operations are evaluated. UUIDv7 and ULID values also include the
36
- * current `Clock` time, which must be controlled separately when their complete
37
- * output needs to be reproducible.
38
- *
39
- * @see {@link layer} for providing the service as a layer
40
- *
41
- * @stability unstable
42
- * @category constructors
43
- * @since 4.0.0
44
- */
45
- export declare const make: (seed: string | number) => Effect.Effect<Crypto.Crypto, never, Crypto.Crypto>;
46
- /**
47
- * Creates a layer that provides deterministic `Crypto` random operations from
48
- * a seed.
49
- *
50
- * **When to use**
51
- *
52
- * Use to provide reproducible random bytes, numbers, shuffles, UUIDs, and ULIDs
53
- * to an Effect program under test.
54
- *
55
- * **Details**
56
- *
57
- * The layer requires an existing platform `Crypto` service whose digest
58
- * implementation is retained. Each layer build starts the random sequence from
59
- * `seed`.
60
- *
61
- * **Gotchas**
62
- *
63
- * UUIDv7 and ULID values also depend on the current `Clock`. Provide a test
64
- * clock when their complete output needs to be reproducible.
65
- *
66
- * @see {@link make} for constructing the service directly
67
- *
68
- * @stability unstable
69
- * @category layers
70
- * @since 4.0.0
71
- */
72
- export declare const layer: (seed: string | number) => Layer.Layer<Crypto.Crypto, never, Crypto.Crypto>;
73
- //# sourceMappingURL=TestCrypto.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TestCrypto.d.ts","sourceRoot":"","sources":["../../src/testing/TestCrypto.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,KAAK,MAAM,aAAa,CAAA;AAGpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,IAAI,EAAE,CACjB,IAAI,EAAE,MAAM,GAAG,MAAM,KAClB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAgBrD,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,KAAK,SAAU,MAAM,GAAG,MAAM,KAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CACpD,CAAA"}
@@ -1,87 +0,0 @@
1
- /**
2
- * Provides a deterministic implementation of the Effect `Crypto` service for
3
- * tests.
4
- *
5
- * Random bytes, numbers, shuffles, UUIDs, and ULIDs are derived from a seeded
6
- * pseudo-random generator. Digest operations are delegated to an underlying
7
- * platform `Crypto` service.
8
- *
9
- * @stability unstable
10
- * @since 4.0.0
11
- */
12
- import * as Crypto from "../Crypto.js";
13
- import * as Effect from "../Effect.js";
14
- import * as Layer from "../Layer.js";
15
- import * as Random from "../Random.js";
16
- /**
17
- * Creates a deterministic `Crypto` service using a seeded pseudo-random
18
- * generator.
19
- *
20
- * **When to use**
21
- *
22
- * Use to construct a `Crypto` service whose random operations are reproducible
23
- * in tests while preserving the digest implementation of a platform `Crypto`
24
- * service.
25
- *
26
- * **Details**
27
- *
28
- * The effect requires an existing `Crypto` service and delegates digest
29
- * operations to it. Each evaluation starts a new random sequence from `seed`;
30
- * every other random operation is derived from that sequence.
31
- *
32
- * **Gotchas**
33
- *
34
- * The generated values are deterministic and must not be used for
35
- * security-sensitive purposes. The sequence depends on the order in which
36
- * random operations are evaluated. UUIDv7 and ULID values also include the
37
- * current `Clock` time, which must be controlled separately when their complete
38
- * output needs to be reproducible.
39
- *
40
- * @see {@link layer} for providing the service as a layer
41
- *
42
- * @stability unstable
43
- * @category constructors
44
- * @since 4.0.0
45
- */
46
- export const make = /*#__PURE__*/Effect.fnUntraced(function* (_seed) {
47
- const crypto = yield* Crypto.Crypto;
48
- const seededRandom = yield* Random.Random;
49
- return Crypto.make({
50
- randomBytes: size => {
51
- const bytes = new Uint8Array(size);
52
- for (let i = 0; i < size; i++) {
53
- bytes[i] = Math.floor(seededRandom.nextDoubleUnsafe() * 256);
54
- }
55
- return bytes;
56
- },
57
- digest: crypto.digest
58
- });
59
- }, (effect, seed) => Random.withSeed(effect, seed));
60
- /**
61
- * Creates a layer that provides deterministic `Crypto` random operations from
62
- * a seed.
63
- *
64
- * **When to use**
65
- *
66
- * Use to provide reproducible random bytes, numbers, shuffles, UUIDs, and ULIDs
67
- * to an Effect program under test.
68
- *
69
- * **Details**
70
- *
71
- * The layer requires an existing platform `Crypto` service whose digest
72
- * implementation is retained. Each layer build starts the random sequence from
73
- * `seed`.
74
- *
75
- * **Gotchas**
76
- *
77
- * UUIDv7 and ULID values also depend on the current `Clock`. Provide a test
78
- * clock when their complete output needs to be reproducible.
79
- *
80
- * @see {@link make} for constructing the service directly
81
- *
82
- * @stability unstable
83
- * @category layers
84
- * @since 4.0.0
85
- */
86
- export const layer = seed => Layer.effect(Crypto.Crypto, make(seed));
87
- //# sourceMappingURL=TestCrypto.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TestCrypto.js","names":[],"sources":["../../src/testing/TestCrypto.ts"],"sourcesContent":[null],"mappings":"AAAA;;;;;;;;;;;AAWA,OAAO,KAAK,MAAM,MAAM,cAAc;AACtC,OAAO,KAAK,MAAM,MAAM,cAAc;AACtC,OAAO,KAAK,KAAK,MAAM,aAAa;AACpC,OAAO,KAAK,MAAM,MAAM,cAAc;AAEtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,OAAO,MAAM,IAAI,gBAEyC,MAAM,CAAC,UAAU,CACzE,WAAU,KAAsB;EAC9B,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC,MAAM;EACnC,MAAM,YAAY,GAAG,OAAO,MAAM,CAAC,MAAM;EACzC,OAAO,MAAM,CAAC,IAAI,CAAC;IACjB,WAAW,EAAG,IAAI,IAAI;MACpB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC;MAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE;QAC7B,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,gBAAgB,EAAE,GAAG,GAAG,CAAC;MAC9D;MACA,OAAO,KAAK;IACd,CAAC;IACD,MAAM,EAAE,MAAM,CAAC;GAChB,CAAC;AACJ,CAAC,EACD,CAAC,MAAM,EAAE,IAAI,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAChD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,OAAO,MAAM,KAAK,GAAI,IAAqB,IACzC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC","ignoreList":[]}