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
@@ -4,6 +4,7 @@ import * as SchemaAST from "../../SchemaAST.ts"
4
4
  import type * as SchemaRepresentation from "../../SchemaRepresentation.ts"
5
5
  import * as InternalRecord from "../record.ts"
6
6
  import * as InternalAnnotations from "./annotations.ts"
7
+ import * as InternalContent from "./content.ts"
7
8
 
8
9
  const defaultReferencePolicy: SchemaRepresentation.ReferencePolicy = ({ identifier }) => identifier
9
10
 
@@ -15,9 +16,17 @@ interface ReferenceCandidate {
15
16
  readonly ast: SchemaAST.AST
16
17
  readonly identifier: string | undefined
17
18
  readonly fallback: string | undefined
19
+ readonly content: Content | undefined
18
20
  occurrences: number
19
- isRecursive: boolean
20
- reference: string | undefined
21
+ visiting?: boolean | undefined
22
+ isRecursive?: boolean | undefined
23
+ reference?: string | undefined
24
+ emitted?: boolean | undefined
25
+ }
26
+
27
+ interface Content {
28
+ readonly mediaType: string
29
+ readonly schema?: ReferenceCandidate | undefined
21
30
  }
22
31
 
23
32
  function annotationsField<A>(annotations: A | undefined): { readonly annotations: A } | undefined {
@@ -39,16 +48,14 @@ export function toRepresentations(
39
48
  options?: SchemaRepresentation.ToRepresentationOptions
40
49
  ): SchemaRepresentation.MultiDocument {
41
50
  const references: Record<string, SchemaRepresentation.Representation> = {}
42
- const referenceOwners = new Map<string, ReferenceCandidate>()
43
- const buildingReferences = new Set<string>()
44
- const candidates = new Map<SchemaAST.AST, Map<string | undefined, ReferenceCandidate>>()
45
- const visitingCandidates = new Set<ReferenceCandidate>()
51
+ const usedReferences = new Set<string>()
52
+ const candidates = new Map<SchemaAST.AST, Array<ReferenceCandidate>>()
46
53
 
47
54
  for (const ast of asts) visit(ast)
48
55
 
49
56
  const referencePolicy = options?.referencePolicy ?? defaultReferencePolicy
50
- for (const candidatesByIdentifier of candidates.values()) {
51
- for (const candidate of candidatesByIdentifier.values()) {
57
+ for (const variants of candidates.values()) {
58
+ for (const candidate of variants) {
52
59
  const requestedReference = referencePolicy({
53
60
  ast: candidate.ast,
54
61
  occurrences: candidate.occurrences,
@@ -59,25 +66,24 @@ export function toRepresentations(
59
66
  !requestedReference.endsWith("_")
60
67
  ? "_"
61
68
  : ""
62
- candidate.reference = getReference(requestedReference, candidate, separator)
69
+ candidate.reference = getReference(requestedReference, separator)
63
70
  } else if (candidate.isRecursive) {
64
- candidate.reference = getReference(`${candidate.ast._tag}_`, candidate, "")
71
+ candidate.reference = getReference(`${candidate.ast._tag}_`, "")
65
72
  }
66
73
  }
67
74
  }
68
75
 
69
- const representations = Arr.map(asts, (ast) => recur(ast))
76
+ const representations = Arr.map(asts, recur)
70
77
 
71
78
  return { representations, references }
72
79
 
73
- function getReference(prefix: string, owner: ReferenceCandidate, separator = "_"): string {
80
+ function getReference(prefix: string, separator: string): string {
74
81
  let candidate = prefix
75
82
  let suffix = 0
76
- while (referenceOwners.has(candidate)) {
77
- if (referenceOwners.get(candidate) === owner) return candidate
83
+ while (usedReferences.has(candidate)) {
78
84
  candidate = `${prefix}${separator}${++suffix}`
79
85
  }
80
- referenceOwners.set(candidate, owner)
86
+ usedReferences.add(candidate)
81
87
  return candidate
82
88
  }
83
89
 
@@ -99,18 +105,27 @@ export function toRepresentations(
99
105
  : SchemaAST.annotate(ast, { identifier: reference })
100
106
  }
101
107
 
102
- function makeReference(reference: string, ast: SchemaAST.AST): SchemaRepresentation.Reference {
103
- if (!Object.hasOwn(references, reference) && !buildingReferences.has(reference)) {
104
- buildingReferences.add(reference)
105
- const representation = on(ast)
106
- buildingReferences.delete(reference)
107
- InternalRecord.assignProperty(references, reference, representation)
108
+ function getCandidate(
109
+ input: SchemaAST.AST,
110
+ encodingLength = input.encoding?.length ?? 0
111
+ ): ReferenceCandidate {
112
+ let ast = input
113
+ let content: Content | undefined
114
+ while (ast.encoding !== undefined && encodingLength > 0) {
115
+ const last = ast.encoding[encodingLength - 1]
116
+ // Only retain content when this operation produces the final string.
117
+ if (last.to.encoding === undefined && last.to._tag === "String") {
118
+ const metadata = InternalContent.getContent(last.transformation.encode)
119
+ if (metadata !== undefined) {
120
+ content = {
121
+ mediaType: metadata.mediaType,
122
+ schema: metadata.preserveSchema ? getCandidate(ast, encodingLength - 1) : undefined
123
+ }
124
+ }
125
+ }
126
+ ast = last.to
127
+ encodingLength = ast.encoding?.length ?? 0
108
128
  }
109
- return { _tag: "Reference", $ref: reference }
110
- }
111
-
112
- function getCandidate(input: SchemaAST.AST): ReferenceCandidate {
113
- const ast = SchemaAST.getLastEncoding(input)
114
129
  const owner = SchemaAST.getContextOwner(ast)
115
130
  let identifier = InternalAnnotations.resolveIdentifier(ast)
116
131
  const fallback = identifier === undefined
@@ -118,46 +133,48 @@ export function toRepresentations(
118
133
  InternalAnnotations.resolveIdentifierFallback(ast)
119
134
  : undefined
120
135
  if (fallback !== undefined) identifier = `${fallback}Encoded`
121
- let candidatesByIdentifier = candidates.get(owner)
122
- if (candidatesByIdentifier === undefined) {
123
- candidatesByIdentifier = new Map()
124
- candidates.set(owner, candidatesByIdentifier)
136
+ let variants = candidates.get(owner)
137
+ if (variants === undefined) {
138
+ variants = []
139
+ candidates.set(owner, variants)
125
140
  }
126
- let candidate = candidatesByIdentifier.get(identifier)
141
+ let candidate = variants.find((candidate) =>
142
+ candidate.identifier === identifier &&
143
+ candidate.content?.mediaType === content?.mediaType &&
144
+ candidate.content?.schema === content?.schema
145
+ )
127
146
  if (candidate === undefined) {
128
147
  candidate = {
129
148
  ast: owner,
130
149
  identifier,
131
150
  fallback,
132
- occurrences: 0,
133
- isRecursive: false,
134
- reference: undefined
151
+ content,
152
+ occurrences: 0
135
153
  }
136
- candidatesByIdentifier.set(identifier, candidate)
154
+ variants.push(candidate)
137
155
  }
138
156
  return candidate
139
157
  }
140
158
 
141
- function visit(input: SchemaAST.AST): void {
142
- const candidate = getCandidate(input)
159
+ function visit(input: SchemaAST.AST): SchemaAST.AST {
160
+ visitCandidate(getCandidate(input))
161
+ return input
162
+ }
163
+
164
+ function visitCandidate(candidate: ReferenceCandidate): void {
143
165
  const ast = candidate.ast
144
166
  candidate.occurrences++
145
- if (visitingCandidates.has(candidate)) {
167
+ if (candidate.visiting) {
146
168
  candidate.isRecursive = true
147
169
  return
148
170
  }
149
171
  if (candidate.occurrences > 1) return
150
- visitingCandidates.add(candidate)
172
+ candidate.visiting = true
173
+ if (candidate.content?.schema !== undefined) visitCandidate(candidate.content.schema)
151
174
  visitChecks(ast.checks)
152
175
  switch (ast._tag) {
153
- case "Declaration":
154
- case "Arrays":
155
- case "Objects":
156
- case "Union":
157
- ast.recur((child) => {
158
- visit(child)
159
- return child
160
- })
176
+ default:
177
+ if ("recur" in ast) ast.recur(visit)
161
178
  break
162
179
  case "TemplateLiteral":
163
180
  ast.parts.forEach(visit)
@@ -166,7 +183,7 @@ export function toRepresentations(
166
183
  visit(ast.thunk())
167
184
  break
168
185
  }
169
- visitingCandidates.delete(candidate)
186
+ candidate.visiting = false
170
187
  }
171
188
 
172
189
  function visitChecks(checks: SchemaAST.Checks | undefined): void {
@@ -177,74 +194,74 @@ export function toRepresentations(
177
194
  }
178
195
 
179
196
  function recur(input: SchemaAST.AST): SchemaRepresentation.Representation {
180
- const candidate = getCandidate(input)
197
+ return recurCandidate(getCandidate(input))
198
+ }
199
+
200
+ function recurCandidate(candidate: ReferenceCandidate): SchemaRepresentation.Representation {
181
201
  const ast = candidate.ast
182
202
  const reference = candidate.reference
183
203
  if (reference !== undefined) {
184
- const annotated = candidate.identifier === undefined ? ast : annotateReference(ast, candidate, reference)
185
- return makeReference(reference, annotated)
204
+ if (!candidate.emitted) {
205
+ candidate.emitted = true
206
+ const annotated = candidate.identifier === undefined ? ast : annotateReference(ast, candidate, reference)
207
+ const representation = on(annotated, candidate.content)
208
+ InternalRecord.assignProperty(references, reference, representation)
209
+ }
210
+ return { _tag: "Reference", $ref: reference }
186
211
  }
187
- return on(ast)
212
+ return on(ast, candidate.content)
188
213
  }
189
214
 
190
- function on(ast: SchemaAST.AST): SchemaRepresentation.Representation {
191
- const checks = fromChecks(ast.checks)
215
+ function on(ast: SchemaAST.AST, content: Content | undefined): SchemaRepresentation.Representation {
216
+ const common = {
217
+ checks: ast.checks?.map(fromCheck) ?? [],
218
+ ...(ast._tag === "Declaration" ? fromAnnotations(ast.annotations) : annotationsField(ast.annotations))
219
+ }
192
220
  switch (ast._tag) {
193
221
  case "Declaration":
194
222
  return {
195
- _tag: "Declaration",
196
- typeParameters: ast.typeParameters.map((ast) => recur(ast)),
197
- checks,
198
- ...fromDeclarationAnnotations(ast.annotations)
223
+ _tag: ast._tag,
224
+ typeParameters: ast.typeParameters.map(recur),
225
+ ...common
199
226
  }
200
- case "Null":
201
- case "Undefined":
202
- case "Void":
203
- case "Never":
204
- case "Unknown":
205
- case "Any":
206
- case "String":
207
- case "Boolean":
208
- case "Number":
209
- case "BigInt":
210
- case "Symbol":
211
- case "ObjectKeyword":
227
+ default:
212
228
  return {
213
229
  _tag: ast._tag,
214
- checks,
215
- ...annotationsField(ast.annotations)
230
+ ...(content === undefined ? undefined : {
231
+ content: {
232
+ mediaType: content.mediaType,
233
+ ...(content.schema === undefined ? undefined : { schema: recurCandidate(content.schema) })
234
+ }
235
+ }),
236
+ ...common
216
237
  }
217
238
  case "Literal":
218
239
  return {
219
- _tag: "Literal",
240
+ _tag: ast._tag,
220
241
  literal: ast.literal,
221
- checks,
222
- ...annotationsField(ast.annotations)
242
+ ...common
223
243
  }
224
244
  case "UniqueSymbol":
225
245
  return {
226
- _tag: "UniqueSymbol",
246
+ _tag: ast._tag,
227
247
  symbol: ast.symbol,
228
- checks,
229
- ...annotationsField(ast.annotations)
248
+ ...common
230
249
  }
231
250
  case "Enum":
232
251
  return {
233
- _tag: "Enum",
252
+ _tag: ast._tag,
234
253
  enums: ast.enums,
235
- checks,
236
- ...annotationsField(ast.annotations)
254
+ ...common
237
255
  }
238
256
  case "TemplateLiteral":
239
257
  return {
240
- _tag: "TemplateLiteral",
241
- parts: ast.parts.map((ast) => recur(ast)),
242
- checks,
243
- ...annotationsField(ast.annotations)
258
+ _tag: ast._tag,
259
+ parts: ast.parts.map(recur),
260
+ ...common
244
261
  }
245
262
  case "Arrays":
246
263
  return {
247
- _tag: "Arrays",
264
+ _tag: ast._tag,
248
265
  elements: ast.elements.map((element) => {
249
266
  const projected = SchemaAST.getLastEncoding(element)
250
267
  const annotations = projected.context?.annotations
@@ -254,13 +271,12 @@ export function toRepresentations(
254
271
  ...annotationsField(annotations)
255
272
  }
256
273
  }),
257
- rest: ast.rest.map((ast) => recur(ast)),
258
- checks,
259
- ...annotationsField(ast.annotations)
274
+ rest: ast.rest.map(recur),
275
+ ...common
260
276
  }
261
277
  case "Objects":
262
278
  return {
263
- _tag: "Objects",
279
+ _tag: ast._tag,
264
280
  propertySignatures: ast.propertySignatures.map((property) => {
265
281
  const projected = SchemaAST.getLastEncoding(property.type)
266
282
  const annotations = projected.context?.annotations
@@ -276,83 +292,49 @@ export function toRepresentations(
276
292
  parameter: recur(index.parameter),
277
293
  type: recur(index.type)
278
294
  })),
279
- checks,
280
- ...annotationsField(ast.annotations)
295
+ ...common
281
296
  }
282
297
  case "Union":
283
298
  return {
284
- _tag: "Union",
285
- types: ast.types.map((ast) => recur(ast)),
299
+ _tag: ast._tag,
300
+ types: ast.types.map(recur),
286
301
  ...(ast.options === undefined ? {} : { options: ast.options }),
287
- checks,
288
- ...annotationsField(ast.annotations)
302
+ ...common
289
303
  }
290
304
  case "Suspend":
291
305
  return {
292
- _tag: "Suspend",
306
+ _tag: ast._tag,
307
+ ...common,
293
308
  checks: [],
294
- thunk: recur(ast.thunk()),
295
- ...annotationsField(ast.annotations)
309
+ thunk: recur(ast.thunk())
296
310
  }
297
311
  }
298
312
  }
299
313
 
300
- function fromChecks(
301
- checks: readonly [SchemaAST.Check<any>, ...Array<SchemaAST.Check<any>>] | undefined
302
- ): Array<SchemaRepresentation.Check> {
303
- return checks?.map(fromCheck) ?? []
304
- }
305
-
306
314
  function fromCheck(
307
315
  check: SchemaAST.Check<any>
308
316
  ): SchemaRepresentation.Check {
309
- switch (check._tag) {
310
- case "Filter":
311
- return {
312
- _tag: "Filter",
313
- aborted: check.aborted,
314
- ...fromCheckAnnotations(check.annotations)
315
- }
316
- case "FilterGroup":
317
- return {
318
- _tag: "FilterGroup",
319
- checks: Arr.map(check.checks, fromCheck),
320
- ...fromCheckAnnotations(check.annotations)
321
- }
322
- }
323
- }
324
-
325
- function fromDeclarationAnnotations<
326
- A extends Schema.Annotations.Annotations & {
327
- readonly representation?: SchemaRepresentation.RepresentationAnnotation | undefined
328
- }
329
- >(annotations: A | undefined): {
330
- readonly representation?: SchemaRepresentation.RepresentationAnnotation | undefined
331
- readonly annotations?: Omit<A, "representation"> | undefined
332
- } | undefined {
333
- if (annotations === undefined) return undefined
334
- const { representation, ...ordinary } = annotations
335
317
  return {
336
- ...(representation === undefined ? undefined : { representation }),
337
- ...(Object.keys(ordinary).length === 0 ? undefined : { annotations: ordinary })
318
+ ...(check._tag === "Filter"
319
+ ? { _tag: check._tag, aborted: check.aborted }
320
+ : { _tag: check._tag, checks: Arr.map(check.checks, fromCheck) }),
321
+ ...fromAnnotations(check.annotations, true)
338
322
  }
339
323
  }
340
324
 
341
- function fromCheckAnnotations<
325
+ function fromAnnotations<
342
326
  A extends Schema.Annotations.Annotations & {
343
327
  readonly representation?: SchemaRepresentation.CheckRepresentationAnnotation<SchemaAST.AST> | undefined
344
328
  }
345
- >(annotations: A | undefined): {
329
+ >(annotations: A | undefined, projectSchemas = false): {
346
330
  readonly representation?: CheckRepresentationAnnotation | undefined
347
331
  readonly annotations?: Omit<A, "representation"> | undefined
348
332
  } | undefined {
349
333
  if (annotations === undefined) return undefined
350
334
  const { representation, ...ordinary } = annotations
351
- const projected = representation === undefined
352
- ? undefined
353
- : representation.schemas === undefined
354
- ? representation as CheckRepresentationAnnotation
355
- : { ...representation, schemas: representation.schemas.map((schema) => recur(SchemaAST.toType(schema))) }
335
+ const projected = projectSchemas && representation?.schemas !== undefined
336
+ ? { ...representation, schemas: representation.schemas.map((schema) => recur(SchemaAST.toType(schema))) }
337
+ : representation as CheckRepresentationAnnotation | undefined
356
338
  return {
357
339
  ...(projected === undefined ? undefined : { representation: projected }),
358
340
  ...(Object.keys(ordinary).length === 0 ? undefined : { annotations: ordinary })
@@ -0,0 +1,14 @@
1
+ import * as Context from "../Context.ts"
2
+
3
+ /**
4
+ * The transaction service of the innermost transaction started with
5
+ * `SqlClient.makeWithTransaction`. `SqlResolver` reads it to find that
6
+ * transaction when the request's context has no `SqlClient` for it. Removing
7
+ * the service from a context also hides the transaction from this lookup.
8
+ *
9
+ * @internal
10
+ */
11
+ export const CurrentTransactionService = Context.Reference<Context.Key<any, object> | undefined>(
12
+ "effect/sql/CurrentTransactionService",
13
+ { defaultValue: () => undefined }
14
+ )
@@ -21,6 +21,7 @@ type TraversalFilter<K, V> = (k: K, v: V) => boolean
21
21
  /** @internal */
22
22
  export interface TrieImpl<in out V> extends TR.Trie<V> {
23
23
  readonly _root: Node<V> | undefined
24
+ readonly _empty: Entry<V> | undefined
24
25
  readonly _count: number
25
26
  }
26
27
 
@@ -70,15 +71,17 @@ const TrieProto: TR.Trie<unknown> = {
70
71
  }
71
72
  }
72
73
 
73
- const makeImpl = <V>(root: Node<V> | undefined): TrieImpl<V> => {
74
+ const makeImpl = <V>(root: Node<V> | undefined, emptyEntry: Entry<V> | undefined): TrieImpl<V> => {
74
75
  const trie = Object.create(TrieProto)
75
76
  trie._root = root
76
- trie._count = root?.count ?? 0
77
+ trie._empty = emptyEntry
78
+ trie._count = (root?.count ?? 0) + (emptyEntry === undefined ? 0 : 1)
77
79
  return trie
78
80
  }
79
81
 
80
82
  class TrieIterator<in out V, out T> implements IterableIterator<T> {
81
83
  stack: Array<[Node<V>, string, boolean]> = []
84
+ emptyEntry: Entry<V> | undefined
82
85
  readonly f: TraversalMap<string, V, T>
83
86
  readonly filter: TraversalFilter<string, V>
84
87
 
@@ -89,6 +92,7 @@ class TrieIterator<in out V, out T> implements IterableIterator<T> {
89
92
  ) {
90
93
  this.f = f
91
94
  this.filter = filter
95
+ this.emptyEntry = trie._empty
92
96
  const root = trie._root !== undefined ? trie._root : undefined
93
97
  if (root !== undefined) {
94
98
  this.stack.push([root, "", false])
@@ -96,6 +100,13 @@ class TrieIterator<in out V, out T> implements IterableIterator<T> {
96
100
  }
97
101
 
98
102
  next(): IteratorResult<T> {
103
+ const emptyEntry = this.emptyEntry
104
+ if (emptyEntry !== undefined) {
105
+ this.emptyEntry = undefined
106
+ if (this.filter("", emptyEntry.value)) {
107
+ return { done: false, value: this.f("", emptyEntry.value) }
108
+ }
109
+ }
99
110
  while (this.stack.length > 0) {
100
111
  const [node, keyString, isAdded] = this.stack.pop()!
101
112
 
@@ -140,7 +151,7 @@ export const isTrie: {
140
151
  } = (u: unknown): u is TR.Trie<unknown> => hasProperty(u, TrieTypeId)
141
152
 
142
153
  /** @internal */
143
- export const empty = <V = never>(): TR.Trie<V> => makeImpl<V>(undefined)
154
+ export const empty = <V = never>(): TR.Trie<V> => makeImpl<V>(undefined, undefined)
144
155
 
145
156
  /** @internal */
146
157
  export const fromIterable = <V>(entries: Iterable<readonly [string, V]>) => {
@@ -163,7 +174,7 @@ export const insert = dual<
163
174
  <V>(key: string, value: V) => (self: TR.Trie<V>) => TR.Trie<V>,
164
175
  <V>(self: TR.Trie<V>, key: string, value: V) => TR.Trie<V>
165
176
  >(3, <V>(self: TR.Trie<V>, key: string, value: V) => {
166
- if (key.length === 0) return self
177
+ if (key.length === 0) return makeImpl((self as TrieImpl<V>)._root, { value })
167
178
 
168
179
  // -1:left | 0:mid | 1:right
169
180
  const dStack: Array<Ordering.Ordering> = []
@@ -255,11 +266,11 @@ export const insert = dual<
255
266
  }
256
267
 
257
268
  nStack[0].count = count
258
- return makeImpl(nStack[0])
269
+ return makeImpl(nStack[0], (self as TrieImpl<V>)._empty)
259
270
  })
260
271
 
261
272
  /** @internal */
262
- export const size = <V>(self: TR.Trie<V>): number => (self as TrieImpl<V>)._root?.count ?? 0
273
+ export const size = <V>(self: TR.Trie<V>): number => (self as TrieImpl<V>)._count
263
274
 
264
275
  /** @internal */
265
276
  export const isEmpty = <V>(self: TR.Trie<V>): boolean => size(self) === 0
@@ -394,8 +405,12 @@ export const get = dual<
394
405
  >(
395
406
  2,
396
407
  <V>(self: TR.Trie<V>, key: string) => {
408
+ if (key.length === 0) {
409
+ const emptyEntry = (self as TrieImpl<V>)._empty
410
+ return emptyEntry === undefined ? Option.none() : Option.some(emptyEntry.value)
411
+ }
397
412
  let n: Node<V> | undefined = (self as TrieImpl<V>)._root
398
- if (n === undefined || key.length === 0) return Option.none()
413
+ if (n === undefined) return Option.none()
399
414
  let cIndex = 0
400
415
  while (cIndex < key.length) {
401
416
  const c = key[cIndex]
@@ -453,8 +468,11 @@ export const remove = dual<
453
468
  >(
454
469
  2,
455
470
  <V>(self: TR.Trie<V>, key: string) => {
471
+ if (key.length === 0) {
472
+ return (self as TrieImpl<V>)._empty === undefined ? self : makeImpl((self as TrieImpl<V>)._root, undefined)
473
+ }
456
474
  let n: Node<V> | undefined = (self as TrieImpl<V>)._root
457
- if (n === undefined || key.length === 0) return self
475
+ if (n === undefined) return self
458
476
 
459
477
  const count = n.count - 1
460
478
  // -1:left | 0:mid | 1:right
@@ -554,7 +572,7 @@ export const remove = dual<
554
572
  }
555
573
 
556
574
  nStack[0].count = count
557
- return makeImpl(nStack[0])
575
+ return makeImpl(nStack[0], (self as TrieImpl<V>)._empty)
558
576
  }
559
577
  )
560
578
 
@@ -589,8 +607,12 @@ export const modify = dual<
589
607
  >(
590
608
  3,
591
609
  <V>(self: TR.Trie<V>, key: string, f: (v: V) => V): TR.Trie<V> => {
610
+ if (key.length === 0) {
611
+ const emptyEntry = (self as TrieImpl<V>)._empty
612
+ return emptyEntry === undefined ? self : makeImpl((self as TrieImpl<V>)._root, { value: f(emptyEntry.value) })
613
+ }
592
614
  let n: Node<V> | undefined = (self as TrieImpl<V>)._root
593
- if (n === undefined || key.length === 0) return self
615
+ if (n === undefined) return self
594
616
 
595
617
  // -1:left | 0:mid | 1:right
596
618
  const dStack: Array<Ordering.Ordering> = []
@@ -689,7 +711,7 @@ export const modify = dual<
689
711
  }
690
712
  }
691
713
 
692
- return makeImpl(nStack[0])
714
+ return makeImpl(nStack[0], (self as TrieImpl<V>)._empty)
693
715
  }
694
716
  )
695
717
 
@@ -700,9 +722,12 @@ export const longestPrefixOf = dual<
700
722
  >(
701
723
  2,
702
724
  <V>(self: TR.Trie<V>, key: string): Option.Option<[string, V]> => {
725
+ const emptyEntry = (self as TrieImpl<V>)._empty
726
+ let longestPrefixNode: Option.Option<[string, V]> = emptyEntry === undefined
727
+ ? Option.none()
728
+ : Option.some(["", emptyEntry.value])
703
729
  let n: Node<V> | undefined = (self as TrieImpl<V>)._root
704
- if (n === undefined || key.length === 0) return Option.none()
705
- let longestPrefixNode: Option.Option<[string, V]> = Option.none()
730
+ if (n === undefined || key.length === 0) return longestPrefixNode
706
731
  let cIndex = 0
707
732
  while (cIndex < key.length) {
708
733
  const c = key[cIndex]
@@ -735,10 +760,14 @@ export const longestPrefixOf = dual<
735
760
  }
736
761
  )
737
762
 
763
+ interface Entry<V> {
764
+ readonly value: V
765
+ }
766
+
738
767
  interface Node<V> {
739
768
  key: string
740
769
  count: number
741
- value?: { readonly value: V } | undefined
770
+ value?: Entry<V> | undefined
742
771
  left?: Node<V> | undefined
743
772
  mid?: Node<V> | undefined
744
773
  right?: Node<V> | undefined
@@ -28,3 +28,47 @@ export const ulidString = (timestampMillis: number, bytes: Uint8Array): string =
28
28
 
29
29
  return out
30
30
  }
31
+
32
+ /**
33
+ * Makes a ULID generator in the ULID spec's monotonic mode: within a
34
+ * millisecond, or when the clock moves back, the 80-bit random part of the last
35
+ * ULID is incremented. The ordering ends at the maximum timestamp, 2^48 − 1 ms,
36
+ * which overflow cannot advance. `randomBytes` is only called for fresh
37
+ * randomness.
38
+ *
39
+ * @internal
40
+ */
41
+ export const makeMonotonic = () => {
42
+ let lastTimestamp = -1
43
+ const random = new Uint8Array(10)
44
+ return (timestampMillis: number, randomBytes: () => Uint8Array): string => {
45
+ const timestamp = timestampMillis >= 0 ? Math.min(Math.trunc(timestampMillis), maxTimestamp) : 0
46
+ if (timestamp > lastTimestamp) {
47
+ lastTimestamp = timestamp
48
+ random.set(randomBytes())
49
+ } else if (!increment(random)) {
50
+ lastTimestamp = Math.min(lastTimestamp + 1, maxTimestamp)
51
+ random.set(randomBytes())
52
+ }
53
+ return ulidString(lastTimestamp, random)
54
+ }
55
+ }
56
+
57
+ // Returns false when the bytes overflow, leaving them all zero.
58
+ const increment = (bytes: Uint8Array): boolean => {
59
+ for (let i = bytes.length - 1; i >= 0; i--) {
60
+ if (bytes[i] !== 0xff) {
61
+ bytes[i]++
62
+ return true
63
+ }
64
+ bytes[i] = 0
65
+ }
66
+ return false
67
+ }
68
+
69
+ /**
70
+ * The ULID ordering state shared by every `Date.now()` caller in the realm.
71
+ *
72
+ * @internal
73
+ */
74
+ export const monotonic = makeMonotonic()