effect 4.0.7 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (679) hide show
  1. package/README.md +1 -1
  2. package/dist/BigDecimal.d.ts.map +1 -1
  3. package/dist/BigDecimal.js +3 -0
  4. package/dist/BigDecimal.js.map +1 -1
  5. package/dist/Channel.d.ts +12 -6
  6. package/dist/Channel.d.ts.map +1 -1
  7. package/dist/Channel.js +9 -3
  8. package/dist/Channel.js.map +1 -1
  9. package/dist/Config.d.ts +7 -1
  10. package/dist/Config.d.ts.map +1 -1
  11. package/dist/Config.js.map +1 -1
  12. package/dist/Context.d.ts +18 -1
  13. package/dist/Context.d.ts.map +1 -1
  14. package/dist/Context.js +27 -8
  15. package/dist/Context.js.map +1 -1
  16. package/dist/Cron.d.ts +81 -11
  17. package/dist/Cron.d.ts.map +1 -1
  18. package/dist/Cron.js +101 -26
  19. package/dist/Cron.js.map +1 -1
  20. package/dist/Duration.d.ts +78 -0
  21. package/dist/Duration.d.ts.map +1 -1
  22. package/dist/Duration.js +123 -0
  23. package/dist/Duration.js.map +1 -1
  24. package/dist/Effect.d.ts +164 -7
  25. package/dist/Effect.d.ts.map +1 -1
  26. package/dist/Effect.js +11 -1
  27. package/dist/Effect.js.map +1 -1
  28. package/dist/FileSystem.d.ts +59 -4
  29. package/dist/FileSystem.d.ts.map +1 -1
  30. package/dist/FileSystem.js +9 -2
  31. package/dist/FileSystem.js.map +1 -1
  32. package/dist/Glob.d.ts +165 -0
  33. package/dist/Glob.d.ts.map +1 -0
  34. package/dist/Glob.js +127 -0
  35. package/dist/Glob.js.map +1 -0
  36. package/dist/Match.d.ts +86 -0
  37. package/dist/Match.d.ts.map +1 -1
  38. package/dist/Match.js +72 -0
  39. package/dist/Match.js.map +1 -1
  40. package/dist/Pool.d.ts +51 -0
  41. package/dist/Pool.d.ts.map +1 -1
  42. package/dist/Pool.js +59 -9
  43. package/dist/Pool.js.map +1 -1
  44. package/dist/Random.d.ts.map +1 -1
  45. package/dist/Random.js +3 -3
  46. package/dist/Random.js.map +1 -1
  47. package/dist/RcMap.d.ts.map +1 -1
  48. package/dist/RcMap.js +8 -2
  49. package/dist/RcMap.js.map +1 -1
  50. package/dist/Schedule.d.ts +18 -1
  51. package/dist/Schedule.d.ts.map +1 -1
  52. package/dist/Schedule.js +7 -2
  53. package/dist/Schedule.js.map +1 -1
  54. package/dist/Schema.d.ts +666 -41
  55. package/dist/Schema.d.ts.map +1 -1
  56. package/dist/Schema.js +650 -0
  57. package/dist/Schema.js.map +1 -1
  58. package/dist/SchemaGetter.d.ts +6 -1
  59. package/dist/SchemaGetter.d.ts.map +1 -1
  60. package/dist/SchemaGetter.js +22 -11
  61. package/dist/SchemaGetter.js.map +1 -1
  62. package/dist/SchemaRepresentation.d.ts +14 -0
  63. package/dist/SchemaRepresentation.d.ts.map +1 -1
  64. package/dist/SchemaRepresentation.js +16 -0
  65. package/dist/SchemaRepresentation.js.map +1 -1
  66. package/dist/SchemaTransformation.d.ts +8 -3
  67. package/dist/SchemaTransformation.d.ts.map +1 -1
  68. package/dist/SchemaTransformation.js +6 -3
  69. package/dist/SchemaTransformation.js.map +1 -1
  70. package/dist/ScopedCache.d.ts.map +1 -1
  71. package/dist/ScopedCache.js +5 -7
  72. package/dist/ScopedCache.js.map +1 -1
  73. package/dist/Semaphore.d.ts +130 -0
  74. package/dist/Semaphore.d.ts.map +1 -1
  75. package/dist/Semaphore.js +40 -0
  76. package/dist/Semaphore.js.map +1 -1
  77. package/dist/Stream.d.ts +13 -4
  78. package/dist/Stream.d.ts.map +1 -1
  79. package/dist/Stream.js +9 -0
  80. package/dist/Stream.js.map +1 -1
  81. package/dist/Terminal.d.ts +18 -1
  82. package/dist/Terminal.d.ts.map +1 -1
  83. package/dist/Terminal.js +1 -1
  84. package/dist/Terminal.js.map +1 -1
  85. package/dist/ai/AiError.d.ts +43 -116
  86. package/dist/ai/AiError.d.ts.map +1 -1
  87. package/dist/ai/AiError.js +53 -72
  88. package/dist/ai/AiError.js.map +1 -1
  89. package/dist/ai/Decision.d.ts +196 -15
  90. package/dist/ai/Decision.d.ts.map +1 -1
  91. package/dist/ai/Decision.js +130 -0
  92. package/dist/ai/Decision.js.map +1 -1
  93. package/dist/ai/DecisionModel.d.ts +54 -13
  94. package/dist/ai/DecisionModel.d.ts.map +1 -1
  95. package/dist/ai/DecisionModel.js +123 -12
  96. package/dist/ai/DecisionModel.js.map +1 -1
  97. package/dist/ai/McpServer.d.ts +630 -29
  98. package/dist/ai/McpServer.d.ts.map +1 -1
  99. package/dist/ai/McpServer.js +562 -116
  100. package/dist/ai/McpServer.js.map +1 -1
  101. package/dist/ai/McpTest.d.ts +130 -0
  102. package/dist/ai/McpTest.d.ts.map +1 -0
  103. package/dist/ai/McpTest.js +237 -0
  104. package/dist/ai/McpTest.js.map +1 -0
  105. package/dist/ai/Response.d.ts +1 -25
  106. package/dist/ai/Response.d.ts.map +1 -1
  107. package/dist/ai/Response.js +1 -10
  108. package/dist/ai/Response.js.map +1 -1
  109. package/dist/ai/Tool.d.ts +19 -1
  110. package/dist/ai/Tool.d.ts.map +1 -1
  111. package/dist/ai/Tool.js.map +1 -1
  112. package/dist/ai/index.d.ts +5 -0
  113. package/dist/ai/index.d.ts.map +1 -1
  114. package/dist/ai/index.js +5 -0
  115. package/dist/ai/index.js.map +1 -1
  116. package/dist/ai/internal/mcpCore.js +17 -12
  117. package/dist/ai/internal/mcpCore.js.map +1 -1
  118. package/dist/ai/internal/mcpProtocol/v2024_11_05.js +4 -5
  119. package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
  120. package/dist/ai/internal/mcpProtocol/v2025_03_26.js +4 -5
  121. package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
  122. package/dist/ai/internal/mcpProtocol/v2025_06_18.js +4 -5
  123. package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
  124. package/dist/ai/internal/mcpProtocol/v2025_11_25.js +4 -5
  125. package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
  126. package/dist/ai/internal/mcpProtocol/v2026_07_28.js +18 -10
  127. package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
  128. package/dist/ai/internal/mcpProtocol.js +13 -0
  129. package/dist/ai/internal/mcpProtocol.js.map +1 -1
  130. package/dist/ai/internal/mcpRuntime.js +5 -3
  131. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  132. package/dist/ai/internal/mcpStatefulRuntime.js +6 -1
  133. package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
  134. package/dist/cli/Argument.d.ts +6 -0
  135. package/dist/cli/Argument.d.ts.map +1 -1
  136. package/dist/cli/Argument.js +2 -0
  137. package/dist/cli/Argument.js.map +1 -1
  138. package/dist/cli/CliOutput.d.ts +65 -1
  139. package/dist/cli/CliOutput.d.ts.map +1 -1
  140. package/dist/cli/CliOutput.js +94 -37
  141. package/dist/cli/CliOutput.js.map +1 -1
  142. package/dist/cli/Command.d.ts +23 -0
  143. package/dist/cli/Command.d.ts.map +1 -1
  144. package/dist/cli/Command.js +8 -0
  145. package/dist/cli/Command.js.map +1 -1
  146. package/dist/cli/Flag.d.ts +107 -0
  147. package/dist/cli/Flag.d.ts.map +1 -1
  148. package/dist/cli/Flag.js +37 -0
  149. package/dist/cli/Flag.js.map +1 -1
  150. package/dist/cli/HelpDoc.d.ts +15 -1
  151. package/dist/cli/HelpDoc.d.ts.map +1 -1
  152. package/dist/cli/Param.d.ts +6 -0
  153. package/dist/cli/Param.d.ts.map +1 -1
  154. package/dist/cli/Param.js +2 -0
  155. package/dist/cli/Param.js.map +1 -1
  156. package/dist/cli/Primitive.d.ts +14 -0
  157. package/dist/cli/Primitive.d.ts.map +1 -1
  158. package/dist/cli/Primitive.js +15 -1
  159. package/dist/cli/Primitive.js.map +1 -1
  160. package/dist/cli/Prompt.d.ts +1 -0
  161. package/dist/cli/Prompt.d.ts.map +1 -1
  162. package/dist/cli/Prompt.js +1 -0
  163. package/dist/cli/Prompt.js.map +1 -1
  164. package/dist/cli/internal/help.d.ts.map +1 -1
  165. package/dist/cli/internal/help.js +17 -10
  166. package/dist/cli/internal/help.js.map +1 -1
  167. package/dist/cluster/Sharding.d.ts.map +1 -1
  168. package/dist/cluster/Sharding.js +90 -28
  169. package/dist/cluster/Sharding.js.map +1 -1
  170. package/dist/cluster/ShardingConfig.d.ts +72 -6
  171. package/dist/cluster/ShardingConfig.d.ts.map +1 -1
  172. package/dist/cluster/ShardingConfig.js +4 -0
  173. package/dist/cluster/ShardingConfig.js.map +1 -1
  174. package/dist/cluster/SingleRunner.d.ts +3 -3
  175. package/dist/cluster/SingleRunner.d.ts.map +1 -1
  176. package/dist/cluster/SingleRunner.js +1 -1
  177. package/dist/cluster/SqlMessageStorage.d.ts +37 -6
  178. package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
  179. package/dist/cluster/SqlMessageStorage.js +34 -7
  180. package/dist/cluster/SqlMessageStorage.js.map +1 -1
  181. package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
  182. package/dist/cluster/SqlRunnerStorage.js +23 -8
  183. package/dist/cluster/SqlRunnerStorage.js.map +1 -1
  184. package/dist/crypto/Aead.d.ts +322 -0
  185. package/dist/crypto/Aead.d.ts.map +1 -0
  186. package/dist/crypto/Aead.js +331 -0
  187. package/dist/crypto/Aead.js.map +1 -0
  188. package/dist/crypto/Cipher.d.ts +235 -0
  189. package/dist/crypto/Cipher.d.ts.map +1 -0
  190. package/dist/crypto/Cipher.js +233 -0
  191. package/dist/crypto/Cipher.js.map +1 -0
  192. package/dist/crypto/CryptoError.d.ts +212 -0
  193. package/dist/crypto/CryptoError.d.ts.map +1 -0
  194. package/dist/crypto/CryptoError.js +202 -0
  195. package/dist/crypto/CryptoError.js.map +1 -0
  196. package/dist/crypto/Digest.d.ts +143 -0
  197. package/dist/crypto/Digest.d.ts.map +1 -0
  198. package/dist/crypto/Digest.js +146 -0
  199. package/dist/crypto/Digest.js.map +1 -0
  200. package/dist/crypto/Kdf.d.ts +220 -0
  201. package/dist/crypto/Kdf.d.ts.map +1 -0
  202. package/dist/crypto/Kdf.js +212 -0
  203. package/dist/crypto/Kdf.js.map +1 -0
  204. package/dist/crypto/KeyAgreement.d.ts +323 -0
  205. package/dist/crypto/KeyAgreement.d.ts.map +1 -0
  206. package/dist/crypto/KeyAgreement.js +303 -0
  207. package/dist/crypto/KeyAgreement.js.map +1 -0
  208. package/dist/crypto/KeyFormat.d.ts +309 -0
  209. package/dist/crypto/KeyFormat.d.ts.map +1 -0
  210. package/dist/crypto/KeyFormat.js +556 -0
  211. package/dist/crypto/KeyFormat.js.map +1 -0
  212. package/dist/crypto/KeyWrap.d.ts +389 -0
  213. package/dist/crypto/KeyWrap.d.ts.map +1 -0
  214. package/dist/crypto/KeyWrap.js +381 -0
  215. package/dist/crypto/KeyWrap.js.map +1 -0
  216. package/dist/crypto/Mac.d.ts +277 -0
  217. package/dist/crypto/Mac.d.ts.map +1 -0
  218. package/dist/crypto/Mac.js +288 -0
  219. package/dist/crypto/Mac.js.map +1 -0
  220. package/dist/crypto/SecureRandom.d.ts +340 -0
  221. package/dist/crypto/SecureRandom.d.ts.map +1 -0
  222. package/dist/crypto/SecureRandom.js +257 -0
  223. package/dist/crypto/SecureRandom.js.map +1 -0
  224. package/dist/crypto/Signature.d.ts +448 -0
  225. package/dist/crypto/Signature.d.ts.map +1 -0
  226. package/dist/crypto/Signature.js +484 -0
  227. package/dist/crypto/Signature.js.map +1 -0
  228. package/dist/crypto/WebCrypto.d.ts +61 -0
  229. package/dist/crypto/WebCrypto.d.ts.map +1 -0
  230. package/dist/crypto/WebCrypto.js +63 -0
  231. package/dist/crypto/WebCrypto.js.map +1 -0
  232. package/dist/crypto/index.d.ts +65 -0
  233. package/dist/crypto/index.d.ts.map +1 -0
  234. package/dist/crypto/index.js +66 -0
  235. package/dist/crypto/index.js.map +1 -0
  236. package/dist/crypto/internal/asymmetric.d.ts +2 -0
  237. package/dist/crypto/internal/asymmetric.d.ts.map +1 -0
  238. package/dist/crypto/internal/asymmetric.js +210 -0
  239. package/dist/crypto/internal/asymmetric.js.map +1 -0
  240. package/dist/crypto/internal/chacha.d.ts +46 -0
  241. package/dist/crypto/internal/chacha.d.ts.map +1 -0
  242. package/dist/crypto/internal/chacha.js +885 -0
  243. package/dist/crypto/internal/chacha.js.map +1 -0
  244. package/dist/crypto/internal/der.d.ts +6 -0
  245. package/dist/crypto/internal/der.d.ts.map +1 -0
  246. package/dist/crypto/internal/der.js +86 -0
  247. package/dist/crypto/internal/der.js.map +1 -0
  248. package/dist/crypto/internal/digest.d.ts +2 -0
  249. package/dist/crypto/internal/digest.d.ts.map +1 -0
  250. package/dist/crypto/internal/digest.js +15 -0
  251. package/dist/crypto/internal/digest.js.map +1 -0
  252. package/dist/crypto/internal/key.d.ts +2 -0
  253. package/dist/crypto/internal/key.d.ts.map +1 -0
  254. package/dist/crypto/internal/key.js +170 -0
  255. package/dist/crypto/internal/key.js.map +1 -0
  256. package/dist/crypto/internal/md5.d.ts +39 -0
  257. package/dist/crypto/internal/md5.d.ts.map +1 -0
  258. package/dist/crypto/internal/md5.js +179 -0
  259. package/dist/crypto/internal/md5.js.map +1 -0
  260. package/dist/crypto/internal/webCrypto.d.ts +2 -0
  261. package/dist/crypto/internal/webCrypto.d.ts.map +1 -0
  262. package/dist/crypto/internal/webCrypto.js +111 -0
  263. package/dist/crypto/internal/webCrypto.js.map +1 -0
  264. package/dist/encoding/Base64Url.d.ts.map +1 -1
  265. package/dist/encoding/Base64Url.js +3 -2
  266. package/dist/encoding/Base64Url.js.map +1 -1
  267. package/dist/encoding/Csv.d.ts +608 -0
  268. package/dist/encoding/Csv.d.ts.map +1 -0
  269. package/dist/encoding/Csv.js +718 -0
  270. package/dist/encoding/Csv.js.map +1 -0
  271. package/dist/encoding/Hex.d.ts +3 -2
  272. package/dist/encoding/Hex.d.ts.map +1 -1
  273. package/dist/encoding/Hex.js +3 -2
  274. package/dist/encoding/Hex.js.map +1 -1
  275. package/dist/encoding/SchemaBinary.d.ts.map +1 -1
  276. package/dist/encoding/SchemaBinary.js +42 -4
  277. package/dist/encoding/SchemaBinary.js.map +1 -1
  278. package/dist/encoding/Toml.d.ts +17 -3
  279. package/dist/encoding/Toml.d.ts.map +1 -1
  280. package/dist/encoding/Toml.js +104 -16
  281. package/dist/encoding/Toml.js.map +1 -1
  282. package/dist/encoding/Yaml.d.ts +8 -1
  283. package/dist/encoding/Yaml.d.ts.map +1 -1
  284. package/dist/encoding/Yaml.js +54 -18
  285. package/dist/encoding/Yaml.js.map +1 -1
  286. package/dist/encoding/index.d.ts +5 -0
  287. package/dist/encoding/index.d.ts.map +1 -1
  288. package/dist/encoding/index.js +5 -0
  289. package/dist/encoding/index.js.map +1 -1
  290. package/dist/eventlog/EventJournal.d.ts.map +1 -1
  291. package/dist/eventlog/EventJournal.js +6 -3
  292. package/dist/eventlog/EventJournal.js.map +1 -1
  293. package/dist/eventlog/EventLog.d.ts +119 -4
  294. package/dist/eventlog/EventLog.d.ts.map +1 -1
  295. package/dist/eventlog/EventLog.js +200 -12
  296. package/dist/eventlog/EventLog.js.map +1 -1
  297. package/dist/eventlog/EventLogEncryption.d.ts +41 -4
  298. package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
  299. package/dist/eventlog/EventLogEncryption.js +83 -64
  300. package/dist/eventlog/EventLogEncryption.js.map +1 -1
  301. package/dist/eventlog/EventLogMessage.d.ts +279 -0
  302. package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
  303. package/dist/eventlog/EventLogMessage.js +217 -1
  304. package/dist/eventlog/EventLogMessage.js.map +1 -1
  305. package/dist/eventlog/EventLogRemote.d.ts +200 -28
  306. package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
  307. package/dist/eventlog/EventLogRemote.js +186 -16
  308. package/dist/eventlog/EventLogRemote.js.map +1 -1
  309. package/dist/eventlog/EventLogServer.d.ts +3 -0
  310. package/dist/eventlog/EventLogServer.d.ts.map +1 -1
  311. package/dist/eventlog/EventLogServer.js +18 -10
  312. package/dist/eventlog/EventLogServer.js.map +1 -1
  313. package/dist/eventlog/EventLogServerEncrypted.d.ts +326 -5
  314. package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  315. package/dist/eventlog/EventLogServerEncrypted.js +769 -14
  316. package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
  317. package/dist/eventlog/EventLogSessionAuth.d.ts +5 -3
  318. package/dist/eventlog/EventLogSessionAuth.d.ts.map +1 -1
  319. package/dist/eventlog/EventLogSessionAuth.js +41 -64
  320. package/dist/eventlog/EventLogSessionAuth.js.map +1 -1
  321. package/dist/eventlog/EventRow.d.ts +4 -0
  322. package/dist/eventlog/EventRow.d.ts.map +1 -1
  323. package/dist/eventlog/EventRow.js +12 -2
  324. package/dist/eventlog/EventRow.js.map +1 -1
  325. package/dist/eventlog/SqlEventJournal.js +2 -2
  326. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  327. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +21 -5
  328. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
  329. package/dist/eventlog/SqlEventLogServerEncrypted.js +1048 -113
  330. package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  331. package/dist/eventlog/SqlEventLogServerUnencrypted.js +2 -2
  332. package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  333. package/dist/eventlog/internal/batches.d.ts +12 -0
  334. package/dist/eventlog/internal/batches.d.ts.map +1 -0
  335. package/dist/eventlog/internal/batches.js +26 -0
  336. package/dist/eventlog/internal/batches.js.map +1 -0
  337. package/dist/eventlog/internal/compaction.d.ts +38 -0
  338. package/dist/eventlog/internal/compaction.d.ts.map +1 -0
  339. package/dist/eventlog/internal/compaction.js +33 -0
  340. package/dist/eventlog/internal/compaction.js.map +1 -0
  341. package/dist/eventlog/internal/identityRootSecretDerivation.js +66 -67
  342. package/dist/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
  343. package/dist/eventlog/internal/remoteCompaction.d.ts +31 -0
  344. package/dist/eventlog/internal/remoteCompaction.d.ts.map +1 -0
  345. package/dist/eventlog/internal/remoteCompaction.js +76 -0
  346. package/dist/eventlog/internal/remoteCompaction.js.map +1 -0
  347. package/dist/http/Cookies.d.ts +172 -0
  348. package/dist/http/Cookies.d.ts.map +1 -1
  349. package/dist/http/Cookies.js +143 -1
  350. package/dist/http/Cookies.js.map +1 -1
  351. package/dist/http/FetchHttpClient.d.ts +26 -2
  352. package/dist/http/FetchHttpClient.d.ts.map +1 -1
  353. package/dist/http/FetchHttpClient.js +78 -15
  354. package/dist/http/FetchHttpClient.js.map +1 -1
  355. package/dist/http/HttpClient.d.ts +79 -8
  356. package/dist/http/HttpClient.d.ts.map +1 -1
  357. package/dist/http/HttpClient.js +65 -5
  358. package/dist/http/HttpClient.js.map +1 -1
  359. package/dist/http/HttpClientRequest.d.ts +9 -5
  360. package/dist/http/HttpClientRequest.d.ts.map +1 -1
  361. package/dist/http/HttpClientRequest.js +2 -3
  362. package/dist/http/HttpClientRequest.js.map +1 -1
  363. package/dist/http/HttpClientResponse.d.ts.map +1 -1
  364. package/dist/http/HttpClientResponse.js +3 -2
  365. package/dist/http/HttpClientResponse.js.map +1 -1
  366. package/dist/http/HttpMethod.d.ts +7 -1
  367. package/dist/http/HttpMethod.d.ts.map +1 -1
  368. package/dist/http/HttpMethod.js +3 -8
  369. package/dist/http/HttpMethod.js.map +1 -1
  370. package/dist/http/HttpServerRequest.d.ts +5 -2
  371. package/dist/http/HttpServerRequest.d.ts.map +1 -1
  372. package/dist/http/HttpServerRequest.js +6 -17
  373. package/dist/http/HttpServerRequest.js.map +1 -1
  374. package/dist/http/HttpServerResponse.d.ts.map +1 -1
  375. package/dist/http/HttpServerResponse.js +3 -2
  376. package/dist/http/HttpServerResponse.js.map +1 -1
  377. package/dist/http/HttpTraceContext.d.ts +2 -1
  378. package/dist/http/HttpTraceContext.d.ts.map +1 -1
  379. package/dist/http/HttpTraceContext.js +7 -5
  380. package/dist/http/HttpTraceContext.js.map +1 -1
  381. package/dist/http/ProblemDetails.d.ts +96 -0
  382. package/dist/http/ProblemDetails.d.ts.map +1 -0
  383. package/dist/http/ProblemDetails.js +98 -0
  384. package/dist/http/ProblemDetails.js.map +1 -0
  385. package/dist/http/index.d.ts +5 -0
  386. package/dist/http/index.d.ts.map +1 -1
  387. package/dist/http/index.js +5 -0
  388. package/dist/http/index.js.map +1 -1
  389. package/dist/http/internal/decompression.js +3 -2
  390. package/dist/http/internal/decompression.js.map +1 -1
  391. package/dist/http/internal/urlParams.js +8 -0
  392. package/dist/http/internal/urlParams.js.map +1 -1
  393. package/dist/http-api/HttpApiBuilder.js +19 -5
  394. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  395. package/dist/http-api/HttpApiClient.d.ts +63 -0
  396. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  397. package/dist/http-api/HttpApiClient.js +51 -0
  398. package/dist/http-api/HttpApiClient.js.map +1 -1
  399. package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
  400. package/dist/http-api/HttpApiEndpoint.js +14 -5
  401. package/dist/http-api/HttpApiEndpoint.js.map +1 -1
  402. package/dist/http-api/HttpApiError.d.ts +185 -13
  403. package/dist/http-api/HttpApiError.d.ts.map +1 -1
  404. package/dist/http-api/HttpApiError.js +128 -0
  405. package/dist/http-api/HttpApiError.js.map +1 -1
  406. package/dist/http-api/HttpApiMiddleware.d.ts +64 -17
  407. package/dist/http-api/HttpApiMiddleware.d.ts.map +1 -1
  408. package/dist/http-api/HttpApiMiddleware.js +85 -1
  409. package/dist/http-api/HttpApiMiddleware.js.map +1 -1
  410. package/dist/http-api/HttpApiSchema.d.ts +76 -14
  411. package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
  412. package/dist/http-api/HttpApiSchema.js +53 -0
  413. package/dist/http-api/HttpApiSchema.js.map +1 -1
  414. package/dist/index.d.ts +5 -5
  415. package/dist/index.d.ts.map +1 -1
  416. package/dist/index.js +5 -5
  417. package/dist/index.js.map +1 -1
  418. package/dist/internal/effect.js +25 -14
  419. package/dist/internal/effect.js.map +1 -1
  420. package/dist/internal/glob.d.ts +2 -0
  421. package/dist/internal/glob.d.ts.map +1 -0
  422. package/dist/internal/glob.js +630 -0
  423. package/dist/internal/glob.js.map +1 -0
  424. package/dist/internal/matcher.js +10 -0
  425. package/dist/internal/matcher.js.map +1 -1
  426. package/dist/internal/persistence.js +9 -0
  427. package/dist/internal/persistence.js.map +1 -1
  428. package/dist/internal/rcRef.js +4 -1
  429. package/dist/internal/rcRef.js.map +1 -1
  430. package/dist/internal/schema/toCodeDocument.js +6 -3
  431. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  432. package/dist/internal/trie.js +42 -13
  433. package/dist/internal/trie.js.map +1 -1
  434. package/dist/internal/ulid.js +41 -0
  435. package/dist/internal/ulid.js.map +1 -1
  436. package/dist/internal/uuid.js +52 -8
  437. package/dist/internal/uuid.js.map +1 -1
  438. package/dist/internal/version.js +1 -1
  439. package/dist/observability/Otlp.d.ts +15 -4
  440. package/dist/observability/Otlp.d.ts.map +1 -1
  441. package/dist/observability/Otlp.js +10 -0
  442. package/dist/observability/Otlp.js.map +1 -1
  443. package/dist/observability/OtlpResource.d.ts +7 -0
  444. package/dist/observability/OtlpResource.d.ts.map +1 -1
  445. package/dist/observability/OtlpResource.js +11 -1
  446. package/dist/observability/OtlpResource.js.map +1 -1
  447. package/dist/persistence/KeyValueStore.d.ts +47 -2
  448. package/dist/persistence/KeyValueStore.d.ts.map +1 -1
  449. package/dist/persistence/KeyValueStore.js +129 -18
  450. package/dist/persistence/KeyValueStore.js.map +1 -1
  451. package/dist/persistence/PersistedQueue.d.ts +9 -0
  452. package/dist/persistence/PersistedQueue.d.ts.map +1 -1
  453. package/dist/persistence/PersistedQueue.js +94 -52
  454. package/dist/persistence/PersistedQueue.js.map +1 -1
  455. package/dist/persistence/Persistence.d.ts +10 -4
  456. package/dist/persistence/Persistence.d.ts.map +1 -1
  457. package/dist/persistence/Persistence.js +18 -11
  458. package/dist/persistence/Persistence.js.map +1 -1
  459. package/dist/process/ChildProcess.d.ts +207 -67
  460. package/dist/process/ChildProcess.d.ts.map +1 -1
  461. package/dist/process/ChildProcess.js +56 -158
  462. package/dist/process/ChildProcess.js.map +1 -1
  463. package/dist/process/ChildProcessSpawner.d.ts +5 -0
  464. package/dist/process/ChildProcessSpawner.d.ts.map +1 -1
  465. package/dist/process/ChildProcessSpawner.js.map +1 -1
  466. package/dist/process/CommandLine.d.ts +294 -0
  467. package/dist/process/CommandLine.d.ts.map +1 -0
  468. package/dist/process/CommandLine.js +481 -0
  469. package/dist/process/CommandLine.js.map +1 -0
  470. package/dist/process/index.d.ts +5 -0
  471. package/dist/process/index.d.ts.map +1 -1
  472. package/dist/process/index.js +5 -0
  473. package/dist/process/index.js.map +1 -1
  474. package/dist/reactivity/Atom.d.ts +2 -1
  475. package/dist/reactivity/Atom.d.ts.map +1 -1
  476. package/dist/reactivity/Atom.js +3 -4
  477. package/dist/reactivity/Atom.js.map +1 -1
  478. package/dist/reactivity/AtomRegistry.js.map +1 -1
  479. package/dist/rpc/RpcClient.d.ts +16 -1
  480. package/dist/rpc/RpcClient.d.ts.map +1 -1
  481. package/dist/rpc/RpcClient.js +50 -16
  482. package/dist/rpc/RpcClient.js.map +1 -1
  483. package/dist/rpc/RpcMessage.d.ts +10 -1
  484. package/dist/rpc/RpcMessage.d.ts.map +1 -1
  485. package/dist/rpc/RpcMessage.js +1 -0
  486. package/dist/rpc/RpcMessage.js.map +1 -1
  487. package/dist/rpc/RpcSerialization.d.ts.map +1 -1
  488. package/dist/rpc/RpcSerialization.js +6 -0
  489. package/dist/rpc/RpcSerialization.js.map +1 -1
  490. package/dist/rpc/RpcServer.d.ts +31 -0
  491. package/dist/rpc/RpcServer.d.ts.map +1 -1
  492. package/dist/rpc/RpcServer.js +139 -66
  493. package/dist/rpc/RpcServer.js.map +1 -1
  494. package/dist/schema/Model.d.ts +14 -0
  495. package/dist/schema/Model.d.ts.map +1 -1
  496. package/dist/schema/Model.js +18 -3
  497. package/dist/schema/Model.js.map +1 -1
  498. package/dist/sql/Migrator.d.ts +0 -19
  499. package/dist/sql/Migrator.d.ts.map +1 -1
  500. package/dist/sql/Migrator.js +3 -48
  501. package/dist/sql/Migrator.js.map +1 -1
  502. package/dist/sql/MigratorFileSystem.d.ts +21 -0
  503. package/dist/sql/MigratorFileSystem.d.ts.map +1 -0
  504. package/dist/sql/MigratorFileSystem.js +57 -0
  505. package/dist/sql/MigratorFileSystem.js.map +1 -0
  506. package/dist/sql/SqlClient.d.ts.map +1 -1
  507. package/dist/sql/SqlClient.js +5 -9
  508. package/dist/sql/SqlClient.js.map +1 -1
  509. package/dist/sql/Statement.d.ts +20 -6
  510. package/dist/sql/Statement.d.ts.map +1 -1
  511. package/dist/sql/Statement.js +0 -13
  512. package/dist/sql/Statement.js.map +1 -1
  513. package/dist/sql/index.js +1 -1
  514. package/dist/testing/index.d.ts +0 -5
  515. package/dist/testing/index.d.ts.map +1 -1
  516. package/dist/testing/index.js +0 -5
  517. package/dist/testing/index.js.map +1 -1
  518. package/dist/workflow/internal/crypto.js +9 -8
  519. package/dist/workflow/internal/crypto.js.map +1 -1
  520. package/package.json +3 -1
  521. package/src/BigDecimal.ts +3 -0
  522. package/src/Channel.ts +17 -11
  523. package/src/Config.ts +7 -1
  524. package/src/Context.ts +34 -10
  525. package/src/Cron.ts +178 -29
  526. package/src/Duration.ts +140 -0
  527. package/src/Effect.ts +914 -85
  528. package/src/FileSystem.ts +65 -4
  529. package/src/Glob.ts +205 -0
  530. package/src/Match.ts +127 -0
  531. package/src/Pool.ts +73 -15
  532. package/src/Random.ts +3 -3
  533. package/src/RcMap.ts +5 -1
  534. package/src/Schedule.ts +26 -3
  535. package/src/Schema.ts +1189 -62
  536. package/src/SchemaGetter.ts +27 -11
  537. package/src/SchemaRepresentation.ts +19 -0
  538. package/src/SchemaTransformation.ts +8 -3
  539. package/src/ScopedCache.ts +5 -9
  540. package/src/Semaphore.ts +141 -0
  541. package/src/Stream.ts +15 -6
  542. package/src/Terminal.ts +19 -1
  543. package/src/ai/AiError.ts +56 -80
  544. package/src/ai/Decision.ts +257 -6
  545. package/src/ai/DecisionModel.ts +171 -28
  546. package/src/ai/McpServer.ts +1269 -286
  547. package/src/ai/McpTest.ts +380 -0
  548. package/src/ai/Response.ts +2 -22
  549. package/src/ai/Tool.ts +27 -8
  550. package/src/ai/index.ts +6 -0
  551. package/src/ai/internal/mcpCore.ts +78 -44
  552. package/src/ai/internal/mcpProtocol/v2024_11_05.ts +4 -7
  553. package/src/ai/internal/mcpProtocol/v2025_03_26.ts +4 -7
  554. package/src/ai/internal/mcpProtocol/v2025_06_18.ts +4 -7
  555. package/src/ai/internal/mcpProtocol/v2025_11_25.ts +4 -7
  556. package/src/ai/internal/mcpProtocol/v2026_07_28.ts +15 -10
  557. package/src/ai/internal/mcpProtocol.ts +29 -0
  558. package/src/ai/internal/mcpRuntime.ts +9 -5
  559. package/src/ai/internal/mcpStatefulRuntime.ts +14 -2
  560. package/src/cli/Argument.ts +6 -0
  561. package/src/cli/CliOutput.ts +117 -49
  562. package/src/cli/Command.ts +23 -0
  563. package/src/cli/Flag.ts +107 -0
  564. package/src/cli/HelpDoc.ts +18 -1
  565. package/src/cli/Param.ts +6 -0
  566. package/src/cli/Primitive.ts +16 -1
  567. package/src/cli/Prompt.ts +1 -0
  568. package/src/cli/internal/help.ts +21 -9
  569. package/src/cluster/Sharding.ts +93 -26
  570. package/src/cluster/ShardingConfig.ts +41 -3
  571. package/src/cluster/SingleRunner.ts +3 -3
  572. package/src/cluster/SqlMessageStorage.ts +49 -17
  573. package/src/cluster/SqlRunnerStorage.ts +37 -27
  574. package/src/crypto/Aead.ts +517 -0
  575. package/src/crypto/Cipher.ts +326 -0
  576. package/src/crypto/CryptoError.ts +242 -0
  577. package/src/crypto/Digest.ts +167 -0
  578. package/src/crypto/Kdf.ts +315 -0
  579. package/src/crypto/KeyAgreement.ts +489 -0
  580. package/src/crypto/KeyFormat.ts +712 -0
  581. package/src/crypto/KeyWrap.ts +639 -0
  582. package/src/crypto/Mac.ts +386 -0
  583. package/src/crypto/SecureRandom.ts +459 -0
  584. package/src/crypto/Signature.ts +673 -0
  585. package/src/crypto/WebCrypto.ts +64 -0
  586. package/src/crypto/index.ts +78 -0
  587. package/src/crypto/internal/asymmetric.ts +329 -0
  588. package/src/crypto/internal/chacha.ts +1088 -0
  589. package/src/crypto/internal/der.ts +110 -0
  590. package/src/crypto/internal/digest.ts +16 -0
  591. package/src/crypto/internal/key.ts +235 -0
  592. package/src/crypto/internal/md5.ts +170 -0
  593. package/src/crypto/internal/webCrypto.ts +150 -0
  594. package/src/encoding/Base64Url.ts +5 -2
  595. package/src/encoding/Csv.ts +1298 -0
  596. package/src/encoding/Hex.ts +3 -2
  597. package/src/encoding/SchemaBinary.ts +40 -4
  598. package/src/encoding/Toml.ts +85 -20
  599. package/src/encoding/Yaml.ts +61 -18
  600. package/src/encoding/index.ts +6 -0
  601. package/src/eventlog/EventJournal.ts +4 -3
  602. package/src/eventlog/EventLog.ts +340 -15
  603. package/src/eventlog/EventLogEncryption.ts +118 -110
  604. package/src/eventlog/EventLogMessage.ts +273 -1
  605. package/src/eventlog/EventLogRemote.ts +367 -23
  606. package/src/eventlog/EventLogServer.ts +23 -8
  607. package/src/eventlog/EventLogServerEncrypted.ts +1130 -67
  608. package/src/eventlog/EventLogSessionAuth.ts +56 -70
  609. package/src/eventlog/EventRow.ts +12 -3
  610. package/src/eventlog/SqlEventJournal.ts +2 -2
  611. package/src/eventlog/SqlEventLogServerEncrypted.ts +1244 -136
  612. package/src/eventlog/SqlEventLogServerUnencrypted.ts +2 -2
  613. package/src/eventlog/internal/batches.ts +30 -0
  614. package/src/eventlog/internal/compaction.ts +64 -0
  615. package/src/eventlog/internal/identityRootSecretDerivation.ts +93 -123
  616. package/src/eventlog/internal/remoteCompaction.ts +92 -0
  617. package/src/http/Cookies.ts +281 -1
  618. package/src/http/FetchHttpClient.ts +88 -16
  619. package/src/http/HttpClient.ts +89 -22
  620. package/src/http/HttpClientRequest.ts +12 -9
  621. package/src/http/HttpClientResponse.ts +3 -2
  622. package/src/http/HttpMethod.ts +10 -2
  623. package/src/http/HttpServerRequest.ts +15 -30
  624. package/src/http/HttpServerResponse.ts +3 -2
  625. package/src/http/HttpTraceContext.ts +7 -4
  626. package/src/http/ProblemDetails.ts +149 -0
  627. package/src/http/index.ts +6 -0
  628. package/src/http/internal/decompression.ts +4 -4
  629. package/src/http/internal/urlParams.ts +8 -0
  630. package/src/http-api/HttpApiBuilder.ts +24 -12
  631. package/src/http-api/HttpApiClient.ts +67 -1
  632. package/src/http-api/HttpApiEndpoint.ts +14 -5
  633. package/src/http-api/HttpApiError.ts +250 -0
  634. package/src/http-api/HttpApiMiddleware.ts +95 -1
  635. package/src/http-api/HttpApiSchema.ts +105 -14
  636. package/src/index.ts +6 -6
  637. package/src/internal/effect.ts +34 -18
  638. package/src/internal/glob.ts +736 -0
  639. package/src/internal/matcher.ts +17 -0
  640. package/src/internal/persistence.ts +11 -0
  641. package/src/internal/rcRef.ts +4 -1
  642. package/src/internal/schema/toCodeDocument.ts +7 -3
  643. package/src/internal/trie.ts +43 -14
  644. package/src/internal/ulid.ts +44 -0
  645. package/src/internal/uuid.ts +57 -16
  646. package/src/internal/version.ts +1 -1
  647. package/src/observability/Otlp.ts +21 -4
  648. package/src/observability/OtlpResource.ts +9 -1
  649. package/src/persistence/KeyValueStore.ts +219 -22
  650. package/src/persistence/PersistedQueue.ts +128 -59
  651. package/src/persistence/Persistence.ts +20 -13
  652. package/src/process/ChildProcess.ts +255 -260
  653. package/src/process/ChildProcessSpawner.ts +5 -0
  654. package/src/process/CommandLine.ts +630 -0
  655. package/src/process/index.ts +6 -0
  656. package/src/reactivity/Atom.ts +5 -5
  657. package/src/reactivity/AtomRegistry.ts +1 -1
  658. package/src/rpc/RpcClient.ts +62 -26
  659. package/src/rpc/RpcMessage.ts +10 -1
  660. package/src/rpc/RpcSerialization.ts +3 -0
  661. package/src/rpc/RpcServer.ts +176 -78
  662. package/src/schema/Model.ts +26 -3
  663. package/src/sql/Migrator.ts +4 -63
  664. package/src/sql/MigratorFileSystem.ts +71 -0
  665. package/src/sql/SqlClient.ts +2 -16
  666. package/src/sql/Statement.ts +8 -7
  667. package/src/sql/index.ts +1 -1
  668. package/src/testing/index.ts +0 -6
  669. package/src/workflow/internal/crypto.ts +15 -11
  670. package/dist/Crypto.d.ts +0 -244
  671. package/dist/Crypto.d.ts.map +0 -1
  672. package/dist/Crypto.js +0 -139
  673. package/dist/Crypto.js.map +0 -1
  674. package/dist/testing/TestCrypto.d.ts +0 -73
  675. package/dist/testing/TestCrypto.d.ts.map +0 -1
  676. package/dist/testing/TestCrypto.js +0 -87
  677. package/dist/testing/TestCrypto.js.map +0 -1
  678. package/src/Crypto.ts +0 -347
  679. package/src/testing/TestCrypto.ts +0 -94
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Loads SQL migrations by reading a directory.
3
+ *
4
+ * @stability unstable
5
+ * @since 4.0.0
6
+ */
7
+ import * as Effect from "../Effect.ts"
8
+ import { FileSystem } from "../FileSystem.ts"
9
+ import * as Option from "../Option.ts"
10
+ import { Path } from "../Path.ts"
11
+ import { type Loader, MigrationError, type ResolvedMigration } from "./Migrator.ts"
12
+
13
+ // Kept out of `Migrator.ts` and the `effect/sql` barrel: Metro rejects the
14
+ // non-literal `import()` below in any module it bundles.
15
+
16
+ /**
17
+ * Creates a migration loader that reads a directory with `FileSystem`, imports
18
+ * files named `<id>_<name>.js`, `<id>_<name>.ts`,
19
+ * `<id>_<name>.mjs`, or `<id>_<name>.mts`, and sorts migrations by id.
20
+ *
21
+ * **Details**
22
+ *
23
+ * Requires a `Path` service appropriate for the migration directory's path
24
+ * syntax. On Windows, prefer a platform-aware implementation such as
25
+ * `NodePath.layer`; the core `Path.layer` uses POSIX semantics and does not
26
+ * preserve Windows drive-letter paths.
27
+ *
28
+ * @stability unstable
29
+ * @category loaders
30
+ * @since 4.0.0
31
+ */
32
+ export const fromFileSystem: (directory: string) => Loader<FileSystem | Path> = Effect.fnUntraced(function*(directory) {
33
+ const Fs = yield* FileSystem
34
+ const path = yield* Path
35
+ const files = yield* Effect.mapError(
36
+ Fs.readDirectory(directory),
37
+ (cause) =>
38
+ new MigrationError({
39
+ kind: "Failed",
40
+ cause,
41
+ message: "Failed to read migrations directory"
42
+ })
43
+ )
44
+ return files
45
+ .map((file) => Option.fromNullishOr(file.match(/^(?:.*\/)?(\d+)_([^.]+)\.(js|ts|mjs|mts)$/)))
46
+ .flatMap(
47
+ Option.match({
48
+ onNone: () => [],
49
+ onSome: ([basename, id, name]): ReadonlyArray<ResolvedMigration> =>
50
+ [
51
+ [
52
+ Number(id),
53
+ name,
54
+ // `import` needs a file URL: on Windows an absolute path such as
55
+ // `D:\migrations\1_init.ts` is rejected by the ESM loader. `orDie` keeps the
56
+ // failure a defect so `loadMigration` reports it as an import error.
57
+ Effect.flatMap(Effect.orDie(path.toFileUrl(path.join(directory, basename))), (url) =>
58
+ Effect.promise(
59
+ () =>
60
+ import(
61
+ /* @vite-ignore */
62
+ /* webpackIgnore: true */
63
+ url.href
64
+ )
65
+ ))
66
+ ]
67
+ ] as const
68
+ })
69
+ )
70
+ .sort(([a], [b]) => a - b);
71
+ })
@@ -21,7 +21,6 @@ import { hasProperty } from "../Predicate.ts"
21
21
  import type * as Queue from "../Queue.ts"
22
22
  import { type KeysInput, Reactivity } from "../reactivity/Reactivity.ts"
23
23
  import type { ReadonlyRecord } from "../Record.ts"
24
- import { UnhandledLogLevel } from "../References.ts"
25
24
  import * as Scope from "../Scope.ts"
26
25
  import * as Semaphore from "../Semaphore.ts"
27
26
  import * as Stream from "../Stream.ts"
@@ -430,13 +429,7 @@ export const makeSqliteAcquirers = <C extends Connection.Connection>(options: {
430
429
  })
431
430
  })
432
431
 
433
- const lease = Effect.uninterruptibleMask((restore) =>
434
- Effect.flatMap(Effect.scope, (scope) =>
435
- restore(semaphore.take(1)).pipe(
436
- Effect.andThen(Scope.addFinalizer(scope, semaphore.release(1))),
437
- Effect.andThen(available)
438
- ))
439
- )
432
+ const lease = Effect.uninterruptibleMask((restore) => Effect.andThen(restore(semaphore.takeScoped(1)), available))
440
433
 
441
434
  return {
442
435
  acquirer: lease,
@@ -488,14 +481,7 @@ interface AfterCommitBuffer {
488
481
  const afterCommitBuffers = new WeakMap<object, AfterCommitBuffer>()
489
482
 
490
483
  const runAfterCommit = <R>(effect: Effect.Effect<void, never, R>): Effect.Effect<void, never, R> =>
491
- Effect.catchCause(effect, (cause) =>
492
- Effect.withFiber((fiber) => {
493
- const unhandledLogLevel = fiber.getRef(UnhandledLogLevel)
494
- if (unhandledLogLevel) {
495
- return Effect.logWithLevel(unhandledLogLevel)("Unhandled error in SqlClient.afterCommit callback", cause)
496
- }
497
- return Effect.void
498
- }))
484
+ Effect.ignoreCause(effect, { log: "Unhandled", message: "Unhandled error in SqlClient.afterCommit callback" })
499
485
 
500
486
  const makeAfterCommit =
501
487
  (transactionService: Context.Key<any, any>) =>
@@ -11,6 +11,7 @@
11
11
  * @stability unstable
12
12
  * @since 4.0.0
13
13
  */
14
+ import type * as Arr from "../Array.ts"
14
15
  import { Clock } from "../Clock.ts"
15
16
  import * as Context from "../Context.ts"
16
17
  import * as Effect from "../Effect.ts"
@@ -278,7 +279,7 @@ export const arrayHelper = (value: ReadonlyArray<unknown | Fragment>): ArrayHelp
278
279
  */
279
280
  export interface RecordInsertHelper {
280
281
  readonly _tag: "RecordInsertHelper"
281
- readonly value: ReadonlyArray<Record<string, unknown>>
282
+ readonly value: Arr.NonEmptyReadonlyArray<Record<string, unknown>>
282
283
  /**
283
284
  * @internal
284
285
  */
@@ -305,7 +306,7 @@ const RecordInsertHelperProto = {
305
306
  * @since 4.0.0
306
307
  */
307
308
  export const recordInsertHelper = (
308
- value: ReadonlyArray<Record<string, unknown>>
309
+ value: Arr.NonEmptyReadonlyArray<Record<string, unknown>>
309
310
  ): RecordInsertHelper =>
310
311
  Object.assign(Object.create(RecordInsertHelperProto), {
311
312
  value,
@@ -322,7 +323,7 @@ export const recordInsertHelper = (
322
323
  */
323
324
  export interface RecordUpdateHelper {
324
325
  readonly _tag: "RecordUpdateHelper"
325
- readonly value: ReadonlyArray<Record<string, unknown>>
326
+ readonly value: Arr.NonEmptyReadonlyArray<Record<string, unknown>>
326
327
  readonly alias: string
327
328
  /**
328
329
  * @internal
@@ -345,7 +346,7 @@ const RecordUpdateHelperProto = {
345
346
  * @since 4.0.0
346
347
  */
347
348
  export const recordUpdateHelper = (
348
- value: ReadonlyArray<Record<string, unknown>>,
349
+ value: Arr.NonEmptyReadonlyArray<Record<string, unknown>>,
349
350
  alias: string
350
351
  ): RecordUpdateHelper =>
351
352
  Object.assign(Object.create(RecordUpdateHelperProto), {
@@ -502,7 +503,7 @@ export interface Constructor {
502
503
 
503
504
  readonly insert: {
504
505
  (
505
- value: ReadonlyArray<Record<string, unknown>>
506
+ value: Arr.NonEmptyReadonlyArray<Record<string, unknown>>
506
507
  ): RecordInsertHelper
507
508
  (value: Record<string, unknown>): RecordInsertHelper
508
509
  }
@@ -524,7 +525,7 @@ export interface Constructor {
524
525
  * transforms.
525
526
  */
526
527
  readonly updateValues: (
527
- value: ReadonlyArray<Record<string, unknown>>,
528
+ value: Arr.NonEmptyReadonlyArray<Record<string, unknown>>,
528
529
  alias: string
529
530
  ) => RecordUpdateHelper
530
531
 
@@ -631,7 +632,7 @@ export const make = (
631
632
  in: in_,
632
633
  insert(value: any) {
633
634
  return recordInsertHelper(
634
- Array.isArray(value) ? value : [value]
635
+ Array.isArray(value) ? value as Arr.NonEmptyArray<Record<string, unknown>> : [value]
635
636
  )
636
637
  },
637
638
  update(value: any, omit: any) {
package/src/sql/index.ts CHANGED
@@ -3,7 +3,7 @@
3
3
  * @since 4.0.0
4
4
  */
5
5
 
6
- // @barrel: Auto-generated exports. Do not edit manually.
6
+ // @barrel(!(MigratorFileSystem).ts): Auto-generated exports. Do not edit manually.
7
7
 
8
8
  /**
9
9
  * @stability unstable
@@ -17,12 +17,6 @@ export * as TestClock from "./TestClock.ts"
17
17
  */
18
18
  export * as TestConsole from "./TestConsole.ts"
19
19
 
20
- /**
21
- * @stability unstable
22
- * @since 4.0.0
23
- */
24
- export * as TestCrypto from "./TestCrypto.ts"
25
-
26
20
  /**
27
21
  * @stability unstable
28
22
  * @since 4.0.0
@@ -1,17 +1,21 @@
1
+ import * as Digest from "../../crypto/Digest.ts"
2
+ import { webCryptoDigest } from "../../crypto/internal/digest.ts"
3
+ import { WebCrypto } from "../../crypto/WebCrypto.ts"
1
4
  import * as Effect from "../../Effect.ts"
5
+ import * as Hex from "../../encoding/Hex.ts"
6
+
7
+ const encoder = new TextEncoder()
2
8
 
3
9
  /**
10
+ * Execution ids and idempotency keys are persisted, so they keep the first 16
11
+ * bytes of the SHA-256 digest as 32 hex characters.
12
+ *
4
13
  * @internal
5
14
  */
6
- export const makeHashDigest = (original: string) =>
7
- Effect.map(
8
- Effect.promise(() => crypto.subtle.digest("SHA-256", new TextEncoder().encode(original))),
9
- (buffer) => {
10
- const data = new Uint8Array(buffer)
11
- let hexString = ""
12
- for (let i = 0; i < 16; i++) {
13
- hexString += data[i].toString(16).padStart(2, "0")
14
- }
15
- return hexString
16
- }
15
+ export const makeHashDigest = (original: string): Effect.Effect<string> =>
16
+ WebCrypto.use((crypto) =>
17
+ Effect.map(
18
+ webCryptoDigest(crypto, Digest.sha256, encoder.encode(original)),
19
+ (bytes) => Hex.encode(bytes).slice(0, 32)
20
+ )
17
21
  )
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":[]}