effect 4.0.5 → 4.0.7

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 (1177) hide show
  1. package/ai-docs/package.json +1 -1
  2. package/ai-docs/src/06_schedule/10_schedules.ts +5 -4
  3. package/ai-docs/tsconfig.json +3 -1
  4. package/dist/Arbitrary.d.ts +10 -2
  5. package/dist/Arbitrary.d.ts.map +1 -1
  6. package/dist/Arbitrary.js +2 -1
  7. package/dist/Arbitrary.js.map +1 -1
  8. package/dist/Array.d.ts +117 -52
  9. package/dist/Array.d.ts.map +1 -1
  10. package/dist/Array.js +41 -20
  11. package/dist/Array.js.map +1 -1
  12. package/dist/Bytes.d.ts +79 -0
  13. package/dist/Bytes.d.ts.map +1 -0
  14. package/dist/Bytes.js +109 -0
  15. package/dist/Bytes.js.map +1 -0
  16. package/dist/Channel.d.ts +181 -13
  17. package/dist/Channel.d.ts.map +1 -1
  18. package/dist/Channel.js +144 -34
  19. package/dist/Channel.js.map +1 -1
  20. package/dist/ChannelSchema.d.ts.map +1 -1
  21. package/dist/ChannelSchema.js.map +1 -1
  22. package/dist/Chunk.d.ts +39 -21
  23. package/dist/Chunk.d.ts.map +1 -1
  24. package/dist/Chunk.js +26 -17
  25. package/dist/Chunk.js.map +1 -1
  26. package/dist/Config.d.ts.map +1 -1
  27. package/dist/Config.js +8 -3
  28. package/dist/Config.js.map +1 -1
  29. package/dist/ConfigProvider.d.ts.map +1 -1
  30. package/dist/ConfigProvider.js +2 -1
  31. package/dist/ConfigProvider.js.map +1 -1
  32. package/dist/Cron.d.ts +2 -2
  33. package/dist/Cron.d.ts.map +1 -1
  34. package/dist/Cron.js +6 -3
  35. package/dist/Cron.js.map +1 -1
  36. package/dist/Data.d.ts +54 -235
  37. package/dist/Data.d.ts.map +1 -1
  38. package/dist/Data.js.map +1 -1
  39. package/dist/Duration.d.ts.map +1 -1
  40. package/dist/Duration.js +56 -16
  41. package/dist/Duration.js.map +1 -1
  42. package/dist/Effect.d.ts +488 -164
  43. package/dist/Effect.d.ts.map +1 -1
  44. package/dist/Effect.js +204 -38
  45. package/dist/Effect.js.map +1 -1
  46. package/dist/Equal.d.ts.map +1 -1
  47. package/dist/Equal.js +8 -1
  48. package/dist/Equal.js.map +1 -1
  49. package/dist/Equivalence.d.ts +2 -1
  50. package/dist/Equivalence.d.ts.map +1 -1
  51. package/dist/Equivalence.js +12 -8
  52. package/dist/Equivalence.js.map +1 -1
  53. package/dist/Exit.d.ts +27 -12
  54. package/dist/Exit.d.ts.map +1 -1
  55. package/dist/Exit.js +8 -3
  56. package/dist/Exit.js.map +1 -1
  57. package/dist/FiberHandle.d.ts +2 -0
  58. package/dist/FiberHandle.d.ts.map +1 -1
  59. package/dist/FiberHandle.js +9 -4
  60. package/dist/FiberHandle.js.map +1 -1
  61. package/dist/FiberMap.d.ts +2 -0
  62. package/dist/FiberMap.d.ts.map +1 -1
  63. package/dist/FiberMap.js +5 -2
  64. package/dist/FiberMap.js.map +1 -1
  65. package/dist/FileSystem.d.ts +5 -0
  66. package/dist/FileSystem.d.ts.map +1 -1
  67. package/dist/FileSystem.js +3 -0
  68. package/dist/FileSystem.js.map +1 -1
  69. package/dist/Formatter.d.ts.map +1 -1
  70. package/dist/Formatter.js +27 -13
  71. package/dist/Formatter.js.map +1 -1
  72. package/dist/Graph.d.ts.map +1 -1
  73. package/dist/Graph.js.map +1 -1
  74. package/dist/Hash.d.ts.map +1 -1
  75. package/dist/Hash.js +4 -1
  76. package/dist/Hash.js.map +1 -1
  77. package/dist/HashSet.d.ts.map +1 -1
  78. package/dist/HashSet.js.map +1 -1
  79. package/dist/Iterable.d.ts.map +1 -1
  80. package/dist/Iterable.js +18 -17
  81. package/dist/Iterable.js.map +1 -1
  82. package/dist/JsonPatch.js +4 -0
  83. package/dist/JsonPatch.js.map +1 -1
  84. package/dist/JsonSchema.d.ts +9 -3
  85. package/dist/JsonSchema.d.ts.map +1 -1
  86. package/dist/JsonSchema.js +32 -43
  87. package/dist/JsonSchema.js.map +1 -1
  88. package/dist/Layer.d.ts.map +1 -1
  89. package/dist/Layer.js +2 -2
  90. package/dist/Layer.js.map +1 -1
  91. package/dist/ManagedRuntime.d.ts +19 -1
  92. package/dist/ManagedRuntime.d.ts.map +1 -1
  93. package/dist/ManagedRuntime.js +62 -6
  94. package/dist/ManagedRuntime.js.map +1 -1
  95. package/dist/Metric.d.ts +135 -3
  96. package/dist/Metric.d.ts.map +1 -1
  97. package/dist/Metric.js +197 -25
  98. package/dist/Metric.js.map +1 -1
  99. package/dist/MutableHashMap.d.ts.map +1 -1
  100. package/dist/MutableHashMap.js.map +1 -1
  101. package/dist/MutableList.d.ts +5 -2
  102. package/dist/MutableList.d.ts.map +1 -1
  103. package/dist/MutableList.js +7 -5
  104. package/dist/MutableList.js.map +1 -1
  105. package/dist/MutableRef.d.ts.map +1 -1
  106. package/dist/MutableRef.js +7 -0
  107. package/dist/MutableRef.js.map +1 -1
  108. package/dist/Number.js +2 -2
  109. package/dist/Number.js.map +1 -1
  110. package/dist/Optic.d.ts.map +1 -1
  111. package/dist/Optic.js.map +1 -1
  112. package/dist/PartitionedSemaphore.d.ts +2 -1
  113. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  114. package/dist/PartitionedSemaphore.js +22 -12
  115. package/dist/PartitionedSemaphore.js.map +1 -1
  116. package/dist/Path.d.ts.map +1 -1
  117. package/dist/Path.js +8 -1
  118. package/dist/Path.js.map +1 -1
  119. package/dist/Pool.d.ts.map +1 -1
  120. package/dist/Pool.js +77 -27
  121. package/dist/Pool.js.map +1 -1
  122. package/dist/PubSub.d.ts.map +1 -1
  123. package/dist/PubSub.js +17 -13
  124. package/dist/PubSub.js.map +1 -1
  125. package/dist/Queue.d.ts +4 -1
  126. package/dist/Queue.d.ts.map +1 -1
  127. package/dist/Queue.js +4 -1
  128. package/dist/Queue.js.map +1 -1
  129. package/dist/Random.d.ts.map +1 -1
  130. package/dist/Random.js +1 -1
  131. package/dist/Random.js.map +1 -1
  132. package/dist/RcMap.d.ts +12 -7
  133. package/dist/RcMap.d.ts.map +1 -1
  134. package/dist/RcMap.js +9 -6
  135. package/dist/RcMap.js.map +1 -1
  136. package/dist/Record.d.ts +51 -0
  137. package/dist/Record.d.ts.map +1 -1
  138. package/dist/Record.js +17 -0
  139. package/dist/Record.js.map +1 -1
  140. package/dist/Ref.d.ts.map +1 -1
  141. package/dist/Ref.js +8 -0
  142. package/dist/Ref.js.map +1 -1
  143. package/dist/References.d.ts +5 -4
  144. package/dist/References.d.ts.map +1 -1
  145. package/dist/References.js +5 -4
  146. package/dist/References.js.map +1 -1
  147. package/dist/RequestResolver.d.ts +31 -1
  148. package/dist/RequestResolver.d.ts.map +1 -1
  149. package/dist/RequestResolver.js +39 -4
  150. package/dist/RequestResolver.js.map +1 -1
  151. package/dist/Resource.js +1 -1
  152. package/dist/Resource.js.map +1 -1
  153. package/dist/Runtime.d.ts +3 -3
  154. package/dist/Runtime.d.ts.map +1 -1
  155. package/dist/Runtime.js +18 -15
  156. package/dist/Runtime.js.map +1 -1
  157. package/dist/Schedule.d.ts.map +1 -1
  158. package/dist/Schedule.js +1 -1
  159. package/dist/Schedule.js.map +1 -1
  160. package/dist/Schema.d.ts +408 -340
  161. package/dist/Schema.d.ts.map +1 -1
  162. package/dist/Schema.js +370 -47
  163. package/dist/Schema.js.map +1 -1
  164. package/dist/SchemaAST.d.ts +9 -7
  165. package/dist/SchemaAST.d.ts.map +1 -1
  166. package/dist/SchemaAST.js +38 -25
  167. package/dist/SchemaAST.js.map +1 -1
  168. package/dist/SchemaGetter.d.ts +8 -3
  169. package/dist/SchemaGetter.d.ts.map +1 -1
  170. package/dist/SchemaGetter.js +15 -5
  171. package/dist/SchemaGetter.js.map +1 -1
  172. package/dist/SchemaIssue.d.ts +4 -4
  173. package/dist/SchemaIssue.d.ts.map +1 -1
  174. package/dist/SchemaIssue.js +29 -51
  175. package/dist/SchemaIssue.js.map +1 -1
  176. package/dist/SchemaParser.d.ts.map +1 -1
  177. package/dist/SchemaParser.js +48 -22
  178. package/dist/SchemaParser.js.map +1 -1
  179. package/dist/SchemaRepresentation.d.ts +75 -11
  180. package/dist/SchemaRepresentation.d.ts.map +1 -1
  181. package/dist/SchemaRepresentation.js +41 -13
  182. package/dist/SchemaRepresentation.js.map +1 -1
  183. package/dist/SchemaTransformation.d.ts +5 -2
  184. package/dist/SchemaTransformation.d.ts.map +1 -1
  185. package/dist/SchemaTransformation.js +10 -3
  186. package/dist/SchemaTransformation.js.map +1 -1
  187. package/dist/Scope.d.ts +12 -2
  188. package/dist/Scope.d.ts.map +1 -1
  189. package/dist/Scope.js +5 -0
  190. package/dist/Scope.js.map +1 -1
  191. package/dist/ScopedCache.d.ts +10 -7
  192. package/dist/ScopedCache.d.ts.map +1 -1
  193. package/dist/ScopedCache.js +9 -5
  194. package/dist/ScopedCache.js.map +1 -1
  195. package/dist/SemVer.d.ts +1196 -0
  196. package/dist/SemVer.d.ts.map +1 -0
  197. package/dist/SemVer.js +756 -0
  198. package/dist/SemVer.js.map +1 -0
  199. package/dist/SemVerRange.d.ts +559 -0
  200. package/dist/SemVerRange.d.ts.map +1 -0
  201. package/dist/SemVerRange.js +551 -0
  202. package/dist/SemVerRange.js.map +1 -0
  203. package/dist/Semaphore.d.ts.map +1 -1
  204. package/dist/Semaphore.js +54 -35
  205. package/dist/Semaphore.js.map +1 -1
  206. package/dist/Sink.d.ts.map +1 -1
  207. package/dist/Sink.js +13 -4
  208. package/dist/Sink.js.map +1 -1
  209. package/dist/Stream.d.ts +235 -8
  210. package/dist/Stream.d.ts.map +1 -1
  211. package/dist/Stream.js +167 -70
  212. package/dist/Stream.js.map +1 -1
  213. package/dist/String.d.ts +7 -2
  214. package/dist/String.d.ts.map +1 -1
  215. package/dist/String.js +11 -6
  216. package/dist/String.js.map +1 -1
  217. package/dist/TextDiff.d.ts +399 -0
  218. package/dist/TextDiff.d.ts.map +1 -0
  219. package/dist/TextDiff.js +634 -0
  220. package/dist/TextDiff.js.map +1 -0
  221. package/dist/Tracer.d.ts +11 -1
  222. package/dist/Tracer.d.ts.map +1 -1
  223. package/dist/Tracer.js +6 -1
  224. package/dist/Tracer.js.map +1 -1
  225. package/dist/TxHashMap.d.ts.map +1 -1
  226. package/dist/TxHashMap.js.map +1 -1
  227. package/dist/TxHashSet.d.ts.map +1 -1
  228. package/dist/TxHashSet.js.map +1 -1
  229. package/dist/ai/AiError.d.ts +68 -4
  230. package/dist/ai/AiError.d.ts.map +1 -1
  231. package/dist/ai/AiError.js +50 -2
  232. package/dist/ai/AiError.js.map +1 -1
  233. package/dist/ai/Chat.d.ts +1 -2
  234. package/dist/ai/Chat.d.ts.map +1 -1
  235. package/dist/ai/Chat.js +6 -3
  236. package/dist/ai/Chat.js.map +1 -1
  237. package/dist/ai/Decision.d.ts +46 -1
  238. package/dist/ai/Decision.d.ts.map +1 -1
  239. package/dist/ai/Decision.js.map +1 -1
  240. package/dist/ai/DecisionModel.d.ts +129 -11
  241. package/dist/ai/DecisionModel.d.ts.map +1 -1
  242. package/dist/ai/DecisionModel.js +182 -94
  243. package/dist/ai/DecisionModel.js.map +1 -1
  244. package/dist/ai/EmbeddingModel.d.ts +10 -0
  245. package/dist/ai/EmbeddingModel.d.ts.map +1 -1
  246. package/dist/ai/EmbeddingModel.js +21 -7
  247. package/dist/ai/EmbeddingModel.js.map +1 -1
  248. package/dist/ai/LanguageModel.d.ts.map +1 -1
  249. package/dist/ai/LanguageModel.js +9 -0
  250. package/dist/ai/LanguageModel.js.map +1 -1
  251. package/dist/ai/McpClient.d.ts +289 -0
  252. package/dist/ai/McpClient.d.ts.map +1 -0
  253. package/dist/ai/McpClient.js +819 -0
  254. package/dist/ai/McpClient.js.map +1 -0
  255. package/dist/ai/McpClientError.d.ts +254 -0
  256. package/dist/ai/McpClientError.d.ts.map +1 -0
  257. package/dist/ai/McpClientError.js +260 -0
  258. package/dist/ai/McpClientError.js.map +1 -0
  259. package/dist/ai/McpProtocol.d.ts +2 -2
  260. package/dist/ai/McpProtocol.d.ts.map +1 -1
  261. package/dist/ai/McpSchema.d.ts +258 -125
  262. package/dist/ai/McpSchema.d.ts.map +1 -1
  263. package/dist/ai/McpSchema.js +94 -24
  264. package/dist/ai/McpSchema.js.map +1 -1
  265. package/dist/ai/McpServer.d.ts.map +1 -1
  266. package/dist/ai/McpServer.js +46 -37
  267. package/dist/ai/McpServer.js.map +1 -1
  268. package/dist/ai/Prompt.d.ts +74 -20
  269. package/dist/ai/Prompt.d.ts.map +1 -1
  270. package/dist/ai/Prompt.js +61 -1
  271. package/dist/ai/Prompt.js.map +1 -1
  272. package/dist/ai/Response.d.ts +160 -3
  273. package/dist/ai/Response.d.ts.map +1 -1
  274. package/dist/ai/Response.js +39 -37
  275. package/dist/ai/Response.js.map +1 -1
  276. package/dist/ai/Tool.d.ts +36 -4
  277. package/dist/ai/Tool.d.ts.map +1 -1
  278. package/dist/ai/Tool.js +5 -2
  279. package/dist/ai/Tool.js.map +1 -1
  280. package/dist/ai/Toolkit.d.ts +48 -1
  281. package/dist/ai/Toolkit.d.ts.map +1 -1
  282. package/dist/ai/Toolkit.js +73 -13
  283. package/dist/ai/Toolkit.js.map +1 -1
  284. package/dist/ai/index.d.ts +10 -0
  285. package/dist/ai/index.d.ts.map +1 -1
  286. package/dist/ai/index.js +10 -0
  287. package/dist/ai/index.js.map +1 -1
  288. package/dist/ai/internal/mcpCore.js.map +1 -1
  289. package/dist/ai/internal/mcpProtocol/v2024_11_05.js +1 -1
  290. package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
  291. package/dist/ai/internal/mcpProtocol/v2025_03_26.js +1 -1
  292. package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
  293. package/dist/ai/internal/mcpProtocol/v2025_06_18.js +2 -2
  294. package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
  295. package/dist/ai/internal/mcpProtocol/v2025_11_25.js +2 -2
  296. package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
  297. package/dist/ai/internal/mcpProtocol/v2026_07_28.js +4 -7
  298. package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
  299. package/dist/ai/internal/mcpProtocol.js +16 -2
  300. package/dist/ai/internal/mcpProtocol.js.map +1 -1
  301. package/dist/ai/internal/mcpRuntime.js +3 -4
  302. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  303. package/dist/ai/internal/mcpSchema/v2024_11_05.js +19 -13
  304. package/dist/ai/internal/mcpSchema/v2024_11_05.js.map +1 -1
  305. package/dist/ai/internal/mcpSchema/v2025_03_26.js +3 -2
  306. package/dist/ai/internal/mcpSchema/v2025_03_26.js.map +1 -1
  307. package/dist/ai/internal/mcpSchema/v2025_06_18.js +7 -7
  308. package/dist/ai/internal/mcpSchema/v2025_06_18.js.map +1 -1
  309. package/dist/ai/internal/mcpSchema/v2025_11_25.js +8 -8
  310. package/dist/ai/internal/mcpSchema/v2025_11_25.js.map +1 -1
  311. package/dist/ai/internal/mcpSchema/v2026_07_28.js +43 -42
  312. package/dist/ai/internal/mcpSchema/v2026_07_28.js.map +1 -1
  313. package/dist/cli/Argument.d.ts +15 -0
  314. package/dist/cli/Argument.d.ts.map +1 -1
  315. package/dist/cli/Argument.js +5 -0
  316. package/dist/cli/Argument.js.map +1 -1
  317. package/dist/cli/CliError.d.ts +120 -2
  318. package/dist/cli/CliError.d.ts.map +1 -1
  319. package/dist/cli/CliError.js +106 -5
  320. package/dist/cli/CliError.js.map +1 -1
  321. package/dist/cli/CliOutput.d.ts +155 -6
  322. package/dist/cli/CliOutput.d.ts.map +1 -1
  323. package/dist/cli/CliOutput.js +62 -6
  324. package/dist/cli/CliOutput.js.map +1 -1
  325. package/dist/cli/Command.d.ts +310 -18
  326. package/dist/cli/Command.d.ts.map +1 -1
  327. package/dist/cli/Command.js +164 -33
  328. package/dist/cli/Command.js.map +1 -1
  329. package/dist/cli/Completions.d.ts +63 -0
  330. package/dist/cli/Completions.d.ts.map +1 -1
  331. package/dist/cli/Completions.js +49 -9
  332. package/dist/cli/Completions.js.map +1 -1
  333. package/dist/cli/Flag.d.ts +130 -0
  334. package/dist/cli/Flag.d.ts.map +1 -1
  335. package/dist/cli/Flag.js +61 -0
  336. package/dist/cli/Flag.js.map +1 -1
  337. package/dist/cli/GlobalFlag.d.ts.map +1 -1
  338. package/dist/cli/GlobalFlag.js +14 -6
  339. package/dist/cli/GlobalFlag.js.map +1 -1
  340. package/dist/cli/Param.d.ts +116 -0
  341. package/dist/cli/Param.d.ts.map +1 -1
  342. package/dist/cli/Param.js +77 -2
  343. package/dist/cli/Param.js.map +1 -1
  344. package/dist/cli/TerminalCapabilities.d.ts +85 -0
  345. package/dist/cli/TerminalCapabilities.d.ts.map +1 -0
  346. package/dist/cli/TerminalCapabilities.js +124 -0
  347. package/dist/cli/TerminalCapabilities.js.map +1 -0
  348. package/dist/cli/index.d.ts +5 -0
  349. package/dist/cli/index.d.ts.map +1 -1
  350. package/dist/cli/index.js +5 -0
  351. package/dist/cli/index.js.map +1 -1
  352. package/dist/cli/internal/command.d.ts +2 -1
  353. package/dist/cli/internal/command.d.ts.map +1 -1
  354. package/dist/cli/internal/command.js +5 -2
  355. package/dist/cli/internal/command.js.map +1 -1
  356. package/dist/cli/internal/completions/bash.js +77 -30
  357. package/dist/cli/internal/completions/bash.js.map +1 -1
  358. package/dist/cli/internal/completions/descriptor.js +9 -1
  359. package/dist/cli/internal/completions/descriptor.js.map +1 -1
  360. package/dist/cli/internal/completions/fish.js +10 -8
  361. package/dist/cli/internal/completions/fish.js.map +1 -1
  362. package/dist/cli/internal/completions/powershell.js +18 -9
  363. package/dist/cli/internal/completions/powershell.js.map +1 -1
  364. package/dist/cli/internal/completions/zsh.js +8 -5
  365. package/dist/cli/internal/completions/zsh.js.map +1 -1
  366. package/dist/cli/internal/formatter.d.ts +2 -0
  367. package/dist/cli/internal/formatter.d.ts.map +1 -0
  368. package/dist/cli/internal/formatter.js +15 -0
  369. package/dist/cli/internal/formatter.js.map +1 -0
  370. package/dist/cli/internal/lexer.js +24 -10
  371. package/dist/cli/internal/lexer.js.map +1 -1
  372. package/dist/cli/internal/parser.js +24 -12
  373. package/dist/cli/internal/parser.js.map +1 -1
  374. package/dist/cluster/ClusterCron.d.ts +29 -1
  375. package/dist/cluster/ClusterCron.d.ts.map +1 -1
  376. package/dist/cluster/ClusterCron.js +64 -32
  377. package/dist/cluster/ClusterCron.js.map +1 -1
  378. package/dist/cluster/ClusterMetrics.d.ts +143 -7
  379. package/dist/cluster/ClusterMetrics.d.ts.map +1 -1
  380. package/dist/cluster/ClusterMetrics.js +151 -7
  381. package/dist/cluster/ClusterMetrics.js.map +1 -1
  382. package/dist/cluster/ClusterWorkflowEngine.d.ts +1 -1
  383. package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  384. package/dist/cluster/ClusterWorkflowEngine.js +82 -21
  385. package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
  386. package/dist/cluster/Entity.d.ts +2 -0
  387. package/dist/cluster/Entity.d.ts.map +1 -1
  388. package/dist/cluster/Entity.js.map +1 -1
  389. package/dist/cluster/MessageStorage.d.ts +44 -45
  390. package/dist/cluster/MessageStorage.d.ts.map +1 -1
  391. package/dist/cluster/MessageStorage.js +6 -7
  392. package/dist/cluster/MessageStorage.js.map +1 -1
  393. package/dist/cluster/Runners.d.ts.map +1 -1
  394. package/dist/cluster/Runners.js +54 -15
  395. package/dist/cluster/Runners.js.map +1 -1
  396. package/dist/cluster/Sharding.d.ts +1 -0
  397. package/dist/cluster/Sharding.d.ts.map +1 -1
  398. package/dist/cluster/Sharding.js +155 -52
  399. package/dist/cluster/Sharding.js.map +1 -1
  400. package/dist/cluster/ShardingConfig.d.ts +30 -0
  401. package/dist/cluster/ShardingConfig.d.ts.map +1 -1
  402. package/dist/cluster/ShardingConfig.js +4 -0
  403. package/dist/cluster/ShardingConfig.js.map +1 -1
  404. package/dist/cluster/Snowflake.d.ts.map +1 -1
  405. package/dist/cluster/Snowflake.js +3 -7
  406. package/dist/cluster/Snowflake.js.map +1 -1
  407. package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
  408. package/dist/cluster/SqlMessageStorage.js +40 -50
  409. package/dist/cluster/SqlMessageStorage.js.map +1 -1
  410. package/dist/cluster/SqlRunnerStorage.d.ts +2 -2
  411. package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
  412. package/dist/cluster/SqlRunnerStorage.js +97 -43
  413. package/dist/cluster/SqlRunnerStorage.js.map +1 -1
  414. package/dist/cluster/internal/entityManager.js +119 -28
  415. package/dist/cluster/internal/entityManager.js.map +1 -1
  416. package/dist/devtools/DevTools.d.ts +3 -2
  417. package/dist/devtools/DevTools.d.ts.map +1 -1
  418. package/dist/devtools/DevTools.js +3 -2
  419. package/dist/devtools/DevTools.js.map +1 -1
  420. package/dist/devtools/DevToolsClient.d.ts +11 -0
  421. package/dist/devtools/DevToolsClient.d.ts.map +1 -1
  422. package/dist/devtools/DevToolsClient.js +33 -4
  423. package/dist/devtools/DevToolsClient.js.map +1 -1
  424. package/dist/encoding/Base64.js +36 -0
  425. package/dist/encoding/Base64.js.map +1 -1
  426. package/dist/encoding/Base64Url.d.ts +29 -0
  427. package/dist/encoding/Base64Url.d.ts.map +1 -1
  428. package/dist/encoding/Base64Url.js +29 -0
  429. package/dist/encoding/Base64Url.js.map +1 -1
  430. package/dist/encoding/Ini.d.ts.map +1 -1
  431. package/dist/encoding/Ini.js +3 -0
  432. package/dist/encoding/Ini.js.map +1 -1
  433. package/dist/encoding/JsonArray.d.ts +270 -0
  434. package/dist/encoding/JsonArray.d.ts.map +1 -0
  435. package/dist/encoding/JsonArray.js +691 -0
  436. package/dist/encoding/JsonArray.js.map +1 -0
  437. package/dist/encoding/Ndjson.d.ts +43 -4
  438. package/dist/encoding/Ndjson.d.ts.map +1 -1
  439. package/dist/encoding/Ndjson.js +169 -18
  440. package/dist/encoding/Ndjson.js.map +1 -1
  441. package/dist/encoding/SchemaBinary.d.ts +9 -1
  442. package/dist/encoding/SchemaBinary.d.ts.map +1 -1
  443. package/dist/encoding/SchemaBinary.js +12 -19
  444. package/dist/encoding/SchemaBinary.js.map +1 -1
  445. package/dist/encoding/Sse.d.ts.map +1 -1
  446. package/dist/encoding/Sse.js +3 -3
  447. package/dist/encoding/Sse.js.map +1 -1
  448. package/dist/encoding/Tar.d.ts +309 -0
  449. package/dist/encoding/Tar.d.ts.map +1 -0
  450. package/dist/encoding/Tar.js +1182 -0
  451. package/dist/encoding/Tar.js.map +1 -0
  452. package/dist/encoding/Toml.d.ts.map +1 -1
  453. package/dist/encoding/Toml.js +24 -19
  454. package/dist/encoding/Toml.js.map +1 -1
  455. package/dist/encoding/Xml.d.ts +464 -0
  456. package/dist/encoding/Xml.d.ts.map +1 -0
  457. package/dist/encoding/Xml.js +1619 -0
  458. package/dist/encoding/Xml.js.map +1 -0
  459. package/dist/encoding/Yaml.d.ts +6 -2
  460. package/dist/encoding/Yaml.d.ts.map +1 -1
  461. package/dist/encoding/Yaml.js +97 -34
  462. package/dist/encoding/Yaml.js.map +1 -1
  463. package/dist/encoding/Zip.d.ts +413 -0
  464. package/dist/encoding/Zip.d.ts.map +1 -0
  465. package/dist/encoding/Zip.js +1255 -0
  466. package/dist/encoding/Zip.js.map +1 -0
  467. package/dist/encoding/index.d.ts +20 -0
  468. package/dist/encoding/index.d.ts.map +1 -1
  469. package/dist/encoding/index.js +20 -0
  470. package/dist/encoding/index.js.map +1 -1
  471. package/dist/eventlog/EventJournal.d.ts +90 -5
  472. package/dist/eventlog/EventJournal.d.ts.map +1 -1
  473. package/dist/eventlog/EventJournal.js +488 -228
  474. package/dist/eventlog/EventJournal.js.map +1 -1
  475. package/dist/eventlog/EventLog.d.ts +180 -12
  476. package/dist/eventlog/EventLog.d.ts.map +1 -1
  477. package/dist/eventlog/EventLog.js +394 -146
  478. package/dist/eventlog/EventLog.js.map +1 -1
  479. package/dist/eventlog/EventLogEncryption.d.ts +36 -30
  480. package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
  481. package/dist/eventlog/EventLogEncryption.js +97 -38
  482. package/dist/eventlog/EventLogEncryption.js.map +1 -1
  483. package/dist/eventlog/EventLogMessage.d.ts +74 -34
  484. package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
  485. package/dist/eventlog/EventLogMessage.js +45 -11
  486. package/dist/eventlog/EventLogMessage.js.map +1 -1
  487. package/dist/eventlog/EventLogRemote.d.ts +45 -8
  488. package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
  489. package/dist/eventlog/EventLogRemote.js +51 -14
  490. package/dist/eventlog/EventLogRemote.js.map +1 -1
  491. package/dist/eventlog/EventLogServer.d.ts +46 -3
  492. package/dist/eventlog/EventLogServer.d.ts.map +1 -1
  493. package/dist/eventlog/EventLogServer.js +119 -19
  494. package/dist/eventlog/EventLogServer.js.map +1 -1
  495. package/dist/eventlog/EventLogServerEncrypted.d.ts +23 -33
  496. package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  497. package/dist/eventlog/EventLogServerEncrypted.js +97 -70
  498. package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
  499. package/dist/eventlog/EventLogServerUnencrypted.d.ts +39 -5
  500. package/dist/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  501. package/dist/eventlog/EventLogServerUnencrypted.js +151 -69
  502. package/dist/eventlog/EventLogServerUnencrypted.js.map +1 -1
  503. package/dist/eventlog/EventRow.d.ts +288 -0
  504. package/dist/eventlog/EventRow.d.ts.map +1 -0
  505. package/dist/eventlog/EventRow.js +435 -0
  506. package/dist/eventlog/EventRow.js.map +1 -0
  507. package/dist/eventlog/SqlEventJournal.d.ts +18 -18
  508. package/dist/eventlog/SqlEventJournal.d.ts.map +1 -1
  509. package/dist/eventlog/SqlEventJournal.js +417 -169
  510. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  511. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +10 -18
  512. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
  513. package/dist/eventlog/SqlEventLogServerEncrypted.js +179 -69
  514. package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  515. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts +23 -3
  516. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
  517. package/dist/eventlog/SqlEventLogServerUnencrypted.js +102 -51
  518. package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  519. package/dist/eventlog/index.d.ts +5 -0
  520. package/dist/eventlog/index.d.ts.map +1 -1
  521. package/dist/eventlog/index.js +5 -0
  522. package/dist/eventlog/index.js.map +1 -1
  523. package/dist/eventlog/internal/conflicts.d.ts +46 -0
  524. package/dist/eventlog/internal/conflicts.d.ts.map +1 -0
  525. package/dist/eventlog/internal/conflicts.js +89 -0
  526. package/dist/eventlog/internal/conflicts.js.map +1 -0
  527. package/dist/graphql/GraphQLClientError.d.ts +2 -2
  528. package/dist/graphql/GraphQLClientError.d.ts.map +1 -1
  529. package/dist/graphql/GraphQLClientError.js +4 -18
  530. package/dist/graphql/GraphQLClientError.js.map +1 -1
  531. package/dist/graphql/GraphQLProtocol.d.ts +12 -9
  532. package/dist/graphql/GraphQLProtocol.d.ts.map +1 -1
  533. package/dist/graphql/GraphQLProtocol.js +4 -3
  534. package/dist/graphql/GraphQLProtocol.js.map +1 -1
  535. package/dist/graphql/GraphQLResolver.d.ts +2 -0
  536. package/dist/graphql/GraphQLResolver.d.ts.map +1 -1
  537. package/dist/graphql/GraphQLResolver.js +74 -32
  538. package/dist/graphql/GraphQLResolver.js.map +1 -1
  539. package/dist/http/Cookies.d.ts.map +1 -1
  540. package/dist/http/Cookies.js +10 -9
  541. package/dist/http/Cookies.js.map +1 -1
  542. package/dist/http/FetchHttpClient.d.ts +8 -1
  543. package/dist/http/FetchHttpClient.d.ts.map +1 -1
  544. package/dist/http/FetchHttpClient.js +51 -4
  545. package/dist/http/FetchHttpClient.js.map +1 -1
  546. package/dist/http/FindMyWay/internal/router.js +10 -0
  547. package/dist/http/FindMyWay/internal/router.js.map +1 -1
  548. package/dist/http/Headers.d.ts +227 -0
  549. package/dist/http/Headers.d.ts.map +1 -1
  550. package/dist/http/Headers.js +261 -0
  551. package/dist/http/Headers.js.map +1 -1
  552. package/dist/http/HttpClient.d.ts +516 -0
  553. package/dist/http/HttpClient.d.ts.map +1 -1
  554. package/dist/http/HttpClient.js +286 -23
  555. package/dist/http/HttpClient.js.map +1 -1
  556. package/dist/http/HttpClientError.d.ts +8 -1
  557. package/dist/http/HttpClientError.d.ts.map +1 -1
  558. package/dist/http/HttpClientError.js +37 -1
  559. package/dist/http/HttpClientError.js.map +1 -1
  560. package/dist/http/HttpClientRequest.d.ts +127 -3
  561. package/dist/http/HttpClientRequest.d.ts.map +1 -1
  562. package/dist/http/HttpClientRequest.js +45 -3
  563. package/dist/http/HttpClientRequest.js.map +1 -1
  564. package/dist/http/HttpClientResponse.d.ts +53 -0
  565. package/dist/http/HttpClientResponse.d.ts.map +1 -1
  566. package/dist/http/HttpClientResponse.js +47 -0
  567. package/dist/http/HttpClientResponse.js.map +1 -1
  568. package/dist/http/HttpEffect.d.ts +6 -2
  569. package/dist/http/HttpEffect.d.ts.map +1 -1
  570. package/dist/http/HttpEffect.js +21 -17
  571. package/dist/http/HttpEffect.js.map +1 -1
  572. package/dist/http/HttpIncomingMessage.d.ts +2 -1
  573. package/dist/http/HttpIncomingMessage.d.ts.map +1 -1
  574. package/dist/http/HttpIncomingMessage.js +3 -23
  575. package/dist/http/HttpIncomingMessage.js.map +1 -1
  576. package/dist/http/HttpMiddleware.d.ts +119 -2
  577. package/dist/http/HttpMiddleware.d.ts.map +1 -1
  578. package/dist/http/HttpMiddleware.js +173 -29
  579. package/dist/http/HttpMiddleware.js.map +1 -1
  580. package/dist/http/HttpRouter.d.ts.map +1 -1
  581. package/dist/http/HttpRouter.js +9 -3
  582. package/dist/http/HttpRouter.js.map +1 -1
  583. package/dist/http/HttpServerError.d.ts +5 -2
  584. package/dist/http/HttpServerError.d.ts.map +1 -1
  585. package/dist/http/HttpServerError.js +7 -5
  586. package/dist/http/HttpServerError.js.map +1 -1
  587. package/dist/http/HttpServerRequest.d.ts +30 -5
  588. package/dist/http/HttpServerRequest.d.ts.map +1 -1
  589. package/dist/http/HttpServerRequest.js +109 -20
  590. package/dist/http/HttpServerRequest.js.map +1 -1
  591. package/dist/http/HttpServerResponse.d.ts +17 -8
  592. package/dist/http/HttpServerResponse.d.ts.map +1 -1
  593. package/dist/http/HttpServerResponse.js +37 -21
  594. package/dist/http/HttpServerResponse.js.map +1 -1
  595. package/dist/http/HttpStaticServer.d.ts +0 -12
  596. package/dist/http/HttpStaticServer.d.ts.map +1 -1
  597. package/dist/http/HttpStaticServer.js +65 -24
  598. package/dist/http/HttpStaticServer.js.map +1 -1
  599. package/dist/http/MultipartParser/internal/contentType.d.ts +15 -1
  600. package/dist/http/MultipartParser/internal/contentType.d.ts.map +1 -1
  601. package/dist/http/MultipartParser/internal/contentType.js +89 -7
  602. package/dist/http/MultipartParser/internal/contentType.js.map +1 -1
  603. package/dist/http/MultipartParser/internal/headers.d.ts.map +1 -1
  604. package/dist/http/MultipartParser/internal/headers.js +4 -12
  605. package/dist/http/MultipartParser/internal/headers.js.map +1 -1
  606. package/dist/http/MultipartParser/internal/multipart.d.ts.map +1 -1
  607. package/dist/http/MultipartParser/internal/multipart.js +6 -27
  608. package/dist/http/MultipartParser/internal/multipart.js.map +1 -1
  609. package/dist/http/Url.d.ts.map +1 -1
  610. package/dist/http/Url.js +6 -1
  611. package/dist/http/Url.js.map +1 -1
  612. package/dist/http/UrlParams.d.ts +3 -1
  613. package/dist/http/UrlParams.d.ts.map +1 -1
  614. package/dist/http/UrlParams.js +4 -2
  615. package/dist/http/UrlParams.js.map +1 -1
  616. package/dist/http/internal/compression.js +4 -5
  617. package/dist/http/internal/compression.js.map +1 -1
  618. package/dist/http/internal/decompression.js +20 -11
  619. package/dist/http/internal/decompression.js.map +1 -1
  620. package/dist/http/internal/httpBody.js +8 -1
  621. package/dist/http/internal/httpBody.js.map +1 -1
  622. package/dist/http/internal/lazyStream.d.ts +2 -0
  623. package/dist/http/internal/lazyStream.d.ts.map +1 -0
  624. package/dist/http/internal/lazyStream.js +18 -0
  625. package/dist/http/internal/lazyStream.js.map +1 -0
  626. package/dist/http/internal/requestState.d.ts +2 -0
  627. package/dist/http/internal/requestState.d.ts.map +1 -0
  628. package/dist/http/internal/requestState.js +28 -0
  629. package/dist/http/internal/requestState.js.map +1 -0
  630. package/dist/http/internal/urlParams.js +25 -0
  631. package/dist/http/internal/urlParams.js.map +1 -1
  632. package/dist/http/internal/webResponse.d.ts +2 -0
  633. package/dist/http/internal/webResponse.d.ts.map +1 -0
  634. package/dist/http/internal/webResponse.js +12 -0
  635. package/dist/http/internal/webResponse.js.map +1 -0
  636. package/dist/http-api/HttpApi.d.ts +3 -6
  637. package/dist/http-api/HttpApi.d.ts.map +1 -1
  638. package/dist/http-api/HttpApi.js +4 -7
  639. package/dist/http-api/HttpApi.js.map +1 -1
  640. package/dist/http-api/HttpApiBuilder.d.ts.map +1 -1
  641. package/dist/http-api/HttpApiBuilder.js +142 -23
  642. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  643. package/dist/http-api/HttpApiClient.d.ts +99 -4
  644. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  645. package/dist/http-api/HttpApiClient.js +218 -60
  646. package/dist/http-api/HttpApiClient.js.map +1 -1
  647. package/dist/http-api/HttpApiEndpoint.d.ts +72 -29
  648. package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
  649. package/dist/http-api/HttpApiEndpoint.js +140 -14
  650. package/dist/http-api/HttpApiEndpoint.js.map +1 -1
  651. package/dist/http-api/HttpApiError.d.ts +58 -0
  652. package/dist/http-api/HttpApiError.d.ts.map +1 -1
  653. package/dist/http-api/HttpApiError.js +38 -12
  654. package/dist/http-api/HttpApiError.js.map +1 -1
  655. package/dist/http-api/HttpApiScalar.d.ts +2 -1
  656. package/dist/http-api/HttpApiScalar.d.ts.map +1 -1
  657. package/dist/http-api/HttpApiScalar.js +6 -3
  658. package/dist/http-api/HttpApiScalar.js.map +1 -1
  659. package/dist/http-api/HttpApiSchema.d.ts +242 -13
  660. package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
  661. package/dist/http-api/HttpApiSchema.js +149 -5
  662. package/dist/http-api/HttpApiSchema.js.map +1 -1
  663. package/dist/http-api/HttpApiSwagger.d.ts +5 -0
  664. package/dist/http-api/HttpApiSwagger.d.ts.map +1 -1
  665. package/dist/http-api/HttpApiSwagger.js +14 -4
  666. package/dist/http-api/HttpApiSwagger.js.map +1 -1
  667. package/dist/http-api/HttpApiTest.d.ts +13 -2
  668. package/dist/http-api/HttpApiTest.d.ts.map +1 -1
  669. package/dist/http-api/HttpApiTest.js +33 -11
  670. package/dist/http-api/HttpApiTest.js.map +1 -1
  671. package/dist/http-api/OpenApi.d.ts +17 -3
  672. package/dist/http-api/OpenApi.d.ts.map +1 -1
  673. package/dist/http-api/OpenApi.js +81 -47
  674. package/dist/http-api/OpenApi.js.map +1 -1
  675. package/dist/http-api/internal/path.js +35 -10
  676. package/dist/http-api/internal/path.js.map +1 -1
  677. package/dist/http-api/internal/toCodecHttpProperties.d.ts +2 -0
  678. package/dist/http-api/internal/toCodecHttpProperties.d.ts.map +1 -0
  679. package/dist/http-api/internal/toCodecHttpProperties.js +38 -0
  680. package/dist/http-api/internal/toCodecHttpProperties.js.map +1 -0
  681. package/dist/index.d.ts +20 -0
  682. package/dist/index.d.ts.map +1 -1
  683. package/dist/index.js +20 -0
  684. package/dist/index.js.map +1 -1
  685. package/dist/internal/arbitrary/runner.d.ts.map +1 -1
  686. package/dist/internal/arbitrary/runner.js +120 -44
  687. package/dist/internal/arbitrary/runner.js.map +1 -1
  688. package/dist/internal/core.js +3 -1
  689. package/dist/internal/core.js.map +1 -1
  690. package/dist/internal/dateTime.js +19 -7
  691. package/dist/internal/dateTime.js.map +1 -1
  692. package/dist/internal/effect.js +106 -87
  693. package/dist/internal/effect.js.map +1 -1
  694. package/dist/internal/equal.js +14 -0
  695. package/dist/internal/equal.js.map +1 -1
  696. package/dist/internal/hashMap.js +2 -2
  697. package/dist/internal/hashMap.js.map +1 -1
  698. package/dist/internal/hydration.d.ts +2 -0
  699. package/dist/internal/hydration.d.ts.map +1 -0
  700. package/dist/internal/hydration.js +15 -0
  701. package/dist/internal/hydration.js.map +1 -0
  702. package/dist/internal/inflate.d.ts +2 -0
  703. package/dist/internal/inflate.d.ts.map +1 -0
  704. package/dist/internal/inflate.js +680 -0
  705. package/dist/internal/inflate.js.map +1 -0
  706. package/dist/internal/jsonSchema.d.ts +2 -0
  707. package/dist/internal/jsonSchema.d.ts.map +1 -0
  708. package/dist/internal/jsonSchema.js +28 -0
  709. package/dist/internal/jsonSchema.js.map +1 -0
  710. package/dist/internal/matcher.js +1 -1
  711. package/dist/internal/matcher.js.map +1 -1
  712. package/dist/internal/record.js +6 -0
  713. package/dist/internal/record.js.map +1 -1
  714. package/dist/internal/request.js +20 -7
  715. package/dist/internal/request.js.map +1 -1
  716. package/dist/internal/schedule.js +17 -22
  717. package/dist/internal/schedule.js.map +1 -1
  718. package/dist/internal/schema/compilerRegistry.js +4 -1
  719. package/dist/internal/schema/compilerRegistry.js.map +1 -1
  720. package/dist/internal/schema/content.d.ts +2 -0
  721. package/dist/internal/schema/content.d.ts.map +1 -0
  722. package/dist/internal/schema/content.js +13 -0
  723. package/dist/internal/schema/content.js.map +1 -0
  724. package/dist/internal/schema/fromJsonSchemaDocument.js +253 -255
  725. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  726. package/dist/internal/schema/fromRepresentation.js +2 -1
  727. package/dist/internal/schema/fromRepresentation.js.map +1 -1
  728. package/dist/internal/schema/interpreter.js +51 -36
  729. package/dist/internal/schema/interpreter.js.map +1 -1
  730. package/dist/internal/schema/standardSchema.js +42 -35
  731. package/dist/internal/schema/standardSchema.js.map +1 -1
  732. package/dist/internal/schema/toCodeDocument.js +10 -5
  733. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  734. package/dist/internal/schema/toCodec.js +99 -17
  735. package/dist/internal/schema/toCodec.js.map +1 -1
  736. package/dist/internal/schema/toFormatter.js +5 -5
  737. package/dist/internal/schema/toFormatter.js.map +1 -1
  738. package/dist/internal/schema/toJsonSchemaDocument.js +257 -170
  739. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
  740. package/dist/internal/schema/toRepresentation.js +107 -129
  741. package/dist/internal/schema/toRepresentation.js.map +1 -1
  742. package/dist/internal/sql.d.ts +2 -0
  743. package/dist/internal/sql.d.ts.map +1 -0
  744. package/dist/internal/sql.js +13 -0
  745. package/dist/internal/sql.js.map +1 -0
  746. package/dist/internal/trie.js +1 -3
  747. package/dist/internal/trie.js.map +1 -1
  748. package/dist/internal/uuid.js +7 -3
  749. package/dist/internal/uuid.js.map +1 -1
  750. package/dist/internal/version.js +1 -1
  751. package/dist/net/NetAddress.d.ts.map +1 -1
  752. package/dist/net/NetAddress.js +2 -8
  753. package/dist/net/NetAddress.js.map +1 -1
  754. package/dist/observability/OtlpExporter.d.ts.map +1 -1
  755. package/dist/observability/OtlpExporter.js +5 -12
  756. package/dist/observability/OtlpExporter.js.map +1 -1
  757. package/dist/observability/OtlpMetrics.d.ts.map +1 -1
  758. package/dist/observability/OtlpMetrics.js +5 -3
  759. package/dist/observability/OtlpMetrics.js.map +1 -1
  760. package/dist/observability/OtlpProxy.d.ts +154 -0
  761. package/dist/observability/OtlpProxy.d.ts.map +1 -0
  762. package/dist/observability/OtlpProxy.js +235 -0
  763. package/dist/observability/OtlpProxy.js.map +1 -0
  764. package/dist/observability/OtlpResource.d.ts +3 -1
  765. package/dist/observability/OtlpResource.d.ts.map +1 -1
  766. package/dist/observability/OtlpResource.js +11 -4
  767. package/dist/observability/OtlpResource.js.map +1 -1
  768. package/dist/observability/OtlpSerialization.d.ts +5 -0
  769. package/dist/observability/OtlpSerialization.d.ts.map +1 -1
  770. package/dist/observability/OtlpSerialization.js +14 -3
  771. package/dist/observability/OtlpSerialization.js.map +1 -1
  772. package/dist/observability/OtlpTracer.d.ts.map +1 -1
  773. package/dist/observability/OtlpTracer.js +4 -0
  774. package/dist/observability/OtlpTracer.js.map +1 -1
  775. package/dist/observability/index.d.ts +5 -0
  776. package/dist/observability/index.d.ts.map +1 -1
  777. package/dist/observability/index.js +5 -0
  778. package/dist/observability/index.js.map +1 -1
  779. package/dist/observability/internal/protobuf.d.ts +0 -9
  780. package/dist/observability/internal/protobuf.d.ts.map +1 -1
  781. package/dist/observability/internal/protobuf.js +2 -10
  782. package/dist/observability/internal/protobuf.js.map +1 -1
  783. package/dist/persistence/CircuitBreaker.d.ts +897 -0
  784. package/dist/persistence/CircuitBreaker.d.ts.map +1 -0
  785. package/dist/persistence/CircuitBreaker.js +1165 -0
  786. package/dist/persistence/CircuitBreaker.js.map +1 -0
  787. package/dist/persistence/PersistedCache.d.ts.map +1 -1
  788. package/dist/persistence/PersistedCache.js +1 -1
  789. package/dist/persistence/PersistedCache.js.map +1 -1
  790. package/dist/persistence/PersistedQueue.d.ts +6 -2
  791. package/dist/persistence/PersistedQueue.d.ts.map +1 -1
  792. package/dist/persistence/PersistedQueue.js +162 -84
  793. package/dist/persistence/PersistedQueue.js.map +1 -1
  794. package/dist/persistence/Persistence.d.ts +28 -0
  795. package/dist/persistence/Persistence.d.ts.map +1 -1
  796. package/dist/persistence/Persistence.js +36 -8
  797. package/dist/persistence/Persistence.js.map +1 -1
  798. package/dist/persistence/RateLimiter.d.ts.map +1 -1
  799. package/dist/persistence/RateLimiter.js +8 -12
  800. package/dist/persistence/RateLimiter.js.map +1 -1
  801. package/dist/persistence/Redis.d.ts +78 -2
  802. package/dist/persistence/Redis.d.ts.map +1 -1
  803. package/dist/persistence/Redis.js +62 -7
  804. package/dist/persistence/Redis.js.map +1 -1
  805. package/dist/persistence/UserDirectories.d.ts +129 -0
  806. package/dist/persistence/UserDirectories.d.ts.map +1 -0
  807. package/dist/persistence/UserDirectories.js +178 -0
  808. package/dist/persistence/UserDirectories.js.map +1 -0
  809. package/dist/persistence/index.d.ts +10 -0
  810. package/dist/persistence/index.d.ts.map +1 -1
  811. package/dist/persistence/index.js +10 -0
  812. package/dist/persistence/index.js.map +1 -1
  813. package/dist/process/ChildProcess.d.ts +32 -5
  814. package/dist/process/ChildProcess.d.ts.map +1 -1
  815. package/dist/process/ChildProcess.js.map +1 -1
  816. package/dist/process/ChildProcessSpawner.d.ts +30 -0
  817. package/dist/process/ChildProcessSpawner.d.ts.map +1 -1
  818. package/dist/process/ChildProcessSpawner.js +5 -2
  819. package/dist/process/ChildProcessSpawner.js.map +1 -1
  820. package/dist/reactivity/AsyncResult.d.ts +1 -1
  821. package/dist/reactivity/AsyncResult.d.ts.map +1 -1
  822. package/dist/reactivity/AsyncResult.js +1 -1
  823. package/dist/reactivity/AsyncResult.js.map +1 -1
  824. package/dist/reactivity/Atom.d.ts +69 -30
  825. package/dist/reactivity/Atom.d.ts.map +1 -1
  826. package/dist/reactivity/Atom.js +40 -15
  827. package/dist/reactivity/Atom.js.map +1 -1
  828. package/dist/reactivity/AtomHttpApi.d.ts +5 -5
  829. package/dist/reactivity/AtomHttpApi.d.ts.map +1 -1
  830. package/dist/reactivity/AtomHttpApi.js +1 -1
  831. package/dist/reactivity/AtomHttpApi.js.map +1 -1
  832. package/dist/reactivity/AtomRegistry.d.ts +2 -2
  833. package/dist/reactivity/AtomRegistry.d.ts.map +1 -1
  834. package/dist/reactivity/AtomRegistry.js +44 -9
  835. package/dist/reactivity/AtomRegistry.js.map +1 -1
  836. package/dist/reactivity/AtomRpc.d.ts +3 -3
  837. package/dist/reactivity/AtomRpc.d.ts.map +1 -1
  838. package/dist/reactivity/AtomRpc.js +1 -1
  839. package/dist/reactivity/AtomRpc.js.map +1 -1
  840. package/dist/reactivity/Hydration.d.ts.map +1 -1
  841. package/dist/reactivity/Hydration.js +46 -12
  842. package/dist/reactivity/Hydration.js.map +1 -1
  843. package/dist/reactivity/Reactivity.d.ts +71 -7
  844. package/dist/reactivity/Reactivity.d.ts.map +1 -1
  845. package/dist/reactivity/Reactivity.js +21 -12
  846. package/dist/reactivity/Reactivity.js.map +1 -1
  847. package/dist/rpc/Rpc.d.ts +18 -0
  848. package/dist/rpc/Rpc.d.ts.map +1 -1
  849. package/dist/rpc/Rpc.js +20 -0
  850. package/dist/rpc/Rpc.js.map +1 -1
  851. package/dist/rpc/RpcClient.d.ts +26 -2
  852. package/dist/rpc/RpcClient.d.ts.map +1 -1
  853. package/dist/rpc/RpcClient.js +198 -61
  854. package/dist/rpc/RpcClient.js.map +1 -1
  855. package/dist/rpc/RpcSerialization.d.ts +29 -0
  856. package/dist/rpc/RpcSerialization.d.ts.map +1 -1
  857. package/dist/rpc/RpcSerialization.js +41 -13
  858. package/dist/rpc/RpcSerialization.js.map +1 -1
  859. package/dist/rpc/RpcServer.d.ts.map +1 -1
  860. package/dist/rpc/RpcServer.js +20 -19
  861. package/dist/rpc/RpcServer.js.map +1 -1
  862. package/dist/rpc/RpcTest.d.ts +1 -0
  863. package/dist/rpc/RpcTest.d.ts.map +1 -1
  864. package/dist/rpc/RpcTest.js +1 -0
  865. package/dist/rpc/RpcTest.js.map +1 -1
  866. package/dist/schema/Model.d.ts +1 -1
  867. package/dist/schema/VariantSchema.d.ts +22 -3
  868. package/dist/schema/VariantSchema.d.ts.map +1 -1
  869. package/dist/schema/VariantSchema.js +32 -18
  870. package/dist/schema/VariantSchema.js.map +1 -1
  871. package/dist/socket/Socket.d.ts +23 -1
  872. package/dist/socket/Socket.d.ts.map +1 -1
  873. package/dist/socket/Socket.js +36 -3
  874. package/dist/socket/Socket.js.map +1 -1
  875. package/dist/sql/Migrator.d.ts +2 -1
  876. package/dist/sql/Migrator.d.ts.map +1 -1
  877. package/dist/sql/Migrator.js +21 -6
  878. package/dist/sql/Migrator.js.map +1 -1
  879. package/dist/sql/SqlClient.d.ts +148 -5
  880. package/dist/sql/SqlClient.d.ts.map +1 -1
  881. package/dist/sql/SqlClient.js +155 -27
  882. package/dist/sql/SqlClient.js.map +1 -1
  883. package/dist/sql/SqlResolver.d.ts +13 -0
  884. package/dist/sql/SqlResolver.d.ts.map +1 -1
  885. package/dist/sql/SqlResolver.js +27 -4
  886. package/dist/sql/SqlResolver.js.map +1 -1
  887. package/dist/sql/Statement.d.ts +10 -1
  888. package/dist/sql/Statement.d.ts.map +1 -1
  889. package/dist/sql/Statement.js +45 -7
  890. package/dist/sql/Statement.js.map +1 -1
  891. package/dist/testing/TestClock.d.ts.map +1 -1
  892. package/dist/testing/TestClock.js +4 -2
  893. package/dist/testing/TestClock.js.map +1 -1
  894. package/dist/testing/TestSchema.d.ts +7 -1
  895. package/dist/testing/TestSchema.d.ts.map +1 -1
  896. package/dist/testing/TestSchema.js +9 -3
  897. package/dist/testing/TestSchema.js.map +1 -1
  898. package/dist/workflow/DurableDeferred.d.ts.map +1 -1
  899. package/dist/workflow/DurableDeferred.js +21 -2
  900. package/dist/workflow/DurableDeferred.js.map +1 -1
  901. package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
  902. package/dist/workflow/WorkflowEngine.js +18 -4
  903. package/dist/workflow/WorkflowEngine.js.map +1 -1
  904. package/package.json +13 -3
  905. package/src/Arbitrary.ts +10 -2
  906. package/src/Array.ts +128 -55
  907. package/src/Bytes.ts +111 -0
  908. package/src/Channel.ts +308 -452
  909. package/src/ChannelSchema.ts +1 -49
  910. package/src/Chunk.ts +55 -61
  911. package/src/Config.ts +12 -86
  912. package/src/ConfigProvider.ts +2 -1
  913. package/src/Cron.ts +6 -3
  914. package/src/Data.ts +60 -265
  915. package/src/Duration.ts +66 -16
  916. package/src/Effect.ts +503 -168
  917. package/src/Equal.ts +8 -1
  918. package/src/Equivalence.ts +7 -4
  919. package/src/Exit.ts +27 -12
  920. package/src/FiberHandle.ts +10 -9
  921. package/src/FiberMap.ts +13 -66
  922. package/src/FileSystem.ts +10 -0
  923. package/src/Formatter.ts +28 -13
  924. package/src/Graph.ts +171 -1263
  925. package/src/Hash.ts +4 -1
  926. package/src/HashSet.ts +0 -60
  927. package/src/Iterable.ts +15 -14
  928. package/src/JsonPatch.ts +4 -0
  929. package/src/JsonSchema.ts +40 -43
  930. package/src/Layer.ts +2 -2
  931. package/src/ManagedRuntime.ts +72 -6
  932. package/src/Metric.ts +252 -510
  933. package/src/MutableHashMap.ts +4 -473
  934. package/src/MutableList.ts +7 -5
  935. package/src/MutableRef.ts +8 -1
  936. package/src/Number.ts +2 -2
  937. package/src/Optic.ts +17 -332
  938. package/src/PartitionedSemaphore.ts +24 -13
  939. package/src/Path.ts +9 -1
  940. package/src/Pool.ts +109 -37
  941. package/src/PubSub.ts +17 -13
  942. package/src/Queue.ts +5 -37
  943. package/src/Random.ts +1 -1
  944. package/src/RcMap.ts +14 -8
  945. package/src/Record.ts +51 -0
  946. package/src/Ref.ts +15 -104
  947. package/src/References.ts +5 -4
  948. package/src/RequestResolver.ts +46 -87
  949. package/src/Resource.ts +1 -1
  950. package/src/Runtime.ts +19 -18
  951. package/src/Schedule.ts +3 -95
  952. package/src/Schema.ts +639 -381
  953. package/src/SchemaAST.ts +40 -29
  954. package/src/SchemaGetter.ts +22 -5
  955. package/src/SchemaIssue.ts +44 -53
  956. package/src/SchemaParser.ts +51 -18
  957. package/src/SchemaRepresentation.ts +95 -35
  958. package/src/SchemaTransformation.ts +10 -3
  959. package/src/Scope.ts +12 -2
  960. package/src/ScopedCache.ts +17 -142
  961. package/src/SemVer.ts +1528 -0
  962. package/src/SemVerRange.ts +883 -0
  963. package/src/Semaphore.ts +67 -40
  964. package/src/Sink.ts +21 -4
  965. package/src/Stream.ts +367 -1027
  966. package/src/String.ts +11 -8
  967. package/src/TextDiff.ts +766 -0
  968. package/src/Tracer.ts +15 -1
  969. package/src/TxHashMap.ts +1 -103
  970. package/src/TxHashSet.ts +48 -753
  971. package/src/ai/AiError.ts +66 -4
  972. package/src/ai/Chat.ts +10 -5
  973. package/src/ai/Decision.ts +49 -1
  974. package/src/ai/DecisionModel.ts +264 -108
  975. package/src/ai/EmbeddingModel.ts +25 -13
  976. package/src/ai/LanguageModel.ts +9 -0
  977. package/src/ai/McpClient.ts +1211 -0
  978. package/src/ai/McpClientError.ts +329 -0
  979. package/src/ai/McpProtocol.ts +2 -2
  980. package/src/ai/McpSchema.ts +153 -35
  981. package/src/ai/McpServer.ts +231 -233
  982. package/src/ai/Prompt.ts +114 -35
  983. package/src/ai/Response.ts +220 -65
  984. package/src/ai/Tool.ts +50 -6
  985. package/src/ai/Toolkit.ts +82 -11
  986. package/src/ai/index.ts +12 -0
  987. package/src/ai/internal/mcpCore.ts +13 -14
  988. package/src/ai/internal/mcpProtocol/v2024_11_05.ts +1 -1
  989. package/src/ai/internal/mcpProtocol/v2025_03_26.ts +1 -1
  990. package/src/ai/internal/mcpProtocol/v2025_06_18.ts +3 -3
  991. package/src/ai/internal/mcpProtocol/v2025_11_25.ts +3 -3
  992. package/src/ai/internal/mcpProtocol/v2026_07_28.ts +12 -14
  993. package/src/ai/internal/mcpProtocol.ts +22 -2
  994. package/src/ai/internal/mcpRuntime.ts +3 -4
  995. package/src/ai/internal/mcpSchema/v2024_11_05.ts +20 -13
  996. package/src/ai/internal/mcpSchema/v2025_03_26.ts +4 -2
  997. package/src/ai/internal/mcpSchema/v2025_06_18.ts +7 -7
  998. package/src/ai/internal/mcpSchema/v2025_11_25.ts +8 -8
  999. package/src/ai/internal/mcpSchema/v2026_07_28.ts +44 -42
  1000. package/src/cli/Argument.ts +15 -0
  1001. package/src/cli/CliError.ts +136 -4
  1002. package/src/cli/CliOutput.ts +183 -6
  1003. package/src/cli/Command.ts +367 -48
  1004. package/src/cli/Completions.ts +56 -0
  1005. package/src/cli/Flag.ts +132 -0
  1006. package/src/cli/GlobalFlag.ts +5 -6
  1007. package/src/cli/Param.ts +151 -6
  1008. package/src/cli/TerminalCapabilities.ts +159 -0
  1009. package/src/cli/index.ts +6 -0
  1010. package/src/cli/internal/command.ts +8 -3
  1011. package/src/cli/internal/completions/bash.ts +83 -32
  1012. package/src/cli/internal/completions/descriptor.ts +11 -1
  1013. package/src/cli/internal/completions/fish.ts +10 -8
  1014. package/src/cli/internal/completions/powershell.ts +23 -14
  1015. package/src/cli/internal/completions/zsh.ts +8 -5
  1016. package/src/cli/internal/formatter.ts +18 -0
  1017. package/src/cli/internal/lexer.ts +12 -5
  1018. package/src/cli/internal/parser.ts +31 -11
  1019. package/src/cluster/ClusterCron.ts +94 -35
  1020. package/src/cluster/ClusterMetrics.ts +149 -7
  1021. package/src/cluster/ClusterWorkflowEngine.ts +130 -57
  1022. package/src/cluster/Entity.ts +4 -0
  1023. package/src/cluster/MessageStorage.ts +26 -14
  1024. package/src/cluster/Runners.ts +76 -25
  1025. package/src/cluster/Sharding.ts +200 -58
  1026. package/src/cluster/ShardingConfig.ts +20 -0
  1027. package/src/cluster/Snowflake.ts +3 -7
  1028. package/src/cluster/SqlMessageStorage.ts +58 -55
  1029. package/src/cluster/SqlRunnerStorage.ts +120 -51
  1030. package/src/cluster/internal/entityManager.ts +155 -32
  1031. package/src/devtools/DevTools.ts +3 -2
  1032. package/src/devtools/DevToolsClient.ts +29 -10
  1033. package/src/encoding/Base64.ts +38 -0
  1034. package/src/encoding/Base64Url.ts +31 -0
  1035. package/src/encoding/Ini.ts +3 -0
  1036. package/src/encoding/JsonArray.ts +849 -0
  1037. package/src/encoding/Ndjson.ts +211 -20
  1038. package/src/encoding/SchemaBinary.ts +14 -48
  1039. package/src/encoding/Sse.ts +4 -3
  1040. package/src/encoding/Tar.ts +1417 -0
  1041. package/src/encoding/Toml.ts +36 -19
  1042. package/src/encoding/Xml.ts +2037 -0
  1043. package/src/encoding/Yaml.ts +108 -36
  1044. package/src/encoding/Zip.ts +1558 -0
  1045. package/src/encoding/index.ts +24 -0
  1046. package/src/eventlog/EventJournal.ts +611 -227
  1047. package/src/eventlog/EventLog.ts +496 -196
  1048. package/src/eventlog/EventLogEncryption.ts +128 -43
  1049. package/src/eventlog/EventLogMessage.ts +62 -11
  1050. package/src/eventlog/EventLogRemote.ts +77 -21
  1051. package/src/eventlog/EventLogServer.ts +162 -20
  1052. package/src/eventlog/EventLogServerEncrypted.ts +121 -80
  1053. package/src/eventlog/EventLogServerUnencrypted.ts +180 -77
  1054. package/src/eventlog/EventRow.ts +706 -0
  1055. package/src/eventlog/SqlEventJournal.ts +496 -193
  1056. package/src/eventlog/SqlEventLogServerEncrypted.ts +212 -83
  1057. package/src/eventlog/SqlEventLogServerUnencrypted.ts +141 -62
  1058. package/src/eventlog/index.ts +6 -0
  1059. package/src/eventlog/internal/conflicts.ts +119 -0
  1060. package/src/graphql/GraphQLClientError.ts +5 -12
  1061. package/src/graphql/GraphQLProtocol.ts +12 -9
  1062. package/src/graphql/GraphQLResolver.ts +90 -239
  1063. package/src/http/Cookies.ts +10 -11
  1064. package/src/http/FetchHttpClient.ts +56 -6
  1065. package/src/http/FindMyWay/internal/router.ts +11 -0
  1066. package/src/http/Headers.ts +337 -154
  1067. package/src/http/HttpClient.ts +673 -142
  1068. package/src/http/HttpClientError.ts +35 -1
  1069. package/src/http/HttpClientRequest.ts +151 -5
  1070. package/src/http/HttpClientResponse.ts +71 -0
  1071. package/src/http/HttpEffect.ts +25 -33
  1072. package/src/http/HttpIncomingMessage.ts +3 -23
  1073. package/src/http/HttpMiddleware.ts +194 -40
  1074. package/src/http/HttpRouter.ts +10 -3
  1075. package/src/http/HttpServerError.ts +8 -5
  1076. package/src/http/HttpServerRequest.ts +172 -27
  1077. package/src/http/HttpServerResponse.ts +49 -23
  1078. package/src/http/HttpStaticServer.ts +71 -26
  1079. package/src/http/MultipartParser/internal/contentType.ts +109 -8
  1080. package/src/http/MultipartParser/internal/headers.ts +4 -16
  1081. package/src/http/MultipartParser/internal/multipart.ts +10 -32
  1082. package/src/http/Url.ts +6 -1
  1083. package/src/http/UrlParams.ts +6 -1
  1084. package/src/http/internal/compression.ts +4 -5
  1085. package/src/http/internal/decompression.ts +32 -17
  1086. package/src/http/internal/httpBody.ts +10 -2
  1087. package/src/http/internal/lazyStream.ts +25 -0
  1088. package/src/http/internal/requestState.ts +33 -0
  1089. package/src/http/internal/urlParams.ts +29 -0
  1090. package/src/http/internal/webResponse.ts +20 -0
  1091. package/src/http-api/HttpApi.ts +4 -7
  1092. package/src/http-api/HttpApiBuilder.ts +190 -32
  1093. package/src/http-api/HttpApiClient.ts +364 -90
  1094. package/src/http-api/HttpApiEndpoint.ts +248 -46
  1095. package/src/http-api/HttpApiError.ts +55 -0
  1096. package/src/http-api/HttpApiScalar.ts +4 -3
  1097. package/src/http-api/HttpApiSchema.ts +373 -18
  1098. package/src/http-api/HttpApiSwagger.ts +11 -4
  1099. package/src/http-api/HttpApiTest.ts +36 -11
  1100. package/src/http-api/OpenApi.ts +103 -58
  1101. package/src/http-api/internal/path.ts +40 -12
  1102. package/src/http-api/internal/toCodecHttpProperties.ts +56 -0
  1103. package/src/index.ts +24 -0
  1104. package/src/internal/arbitrary/runner.ts +133 -36
  1105. package/src/internal/core.ts +3 -1
  1106. package/src/internal/dateTime.ts +20 -7
  1107. package/src/internal/effect.ts +144 -100
  1108. package/src/internal/equal.ts +17 -0
  1109. package/src/internal/hashMap.ts +2 -2
  1110. package/src/internal/hydration.ts +15 -0
  1111. package/src/internal/inflate.ts +710 -0
  1112. package/src/internal/jsonSchema.ts +27 -0
  1113. package/src/internal/matcher.ts +1 -1
  1114. package/src/internal/record.ts +6 -0
  1115. package/src/internal/request.ts +21 -6
  1116. package/src/internal/schedule.ts +20 -39
  1117. package/src/internal/schema/compilerRegistry.ts +6 -1
  1118. package/src/internal/schema/content.ts +18 -0
  1119. package/src/internal/schema/fromJsonSchemaDocument.ts +458 -351
  1120. package/src/internal/schema/fromRepresentation.ts +2 -1
  1121. package/src/internal/schema/interpreter.ts +58 -45
  1122. package/src/internal/schema/standardSchema.ts +34 -32
  1123. package/src/internal/schema/toCodeDocument.ts +12 -7
  1124. package/src/internal/schema/toCodec.ts +134 -15
  1125. package/src/internal/schema/toFormatter.ts +6 -6
  1126. package/src/internal/schema/toJsonSchemaDocument.ts +246 -194
  1127. package/src/internal/schema/toRepresentation.ts +122 -140
  1128. package/src/internal/sql.ts +14 -0
  1129. package/src/internal/trie.ts +1 -3
  1130. package/src/internal/uuid.ts +15 -10
  1131. package/src/internal/version.ts +1 -1
  1132. package/src/net/NetAddress.ts +2 -9
  1133. package/src/observability/OtlpExporter.ts +5 -12
  1134. package/src/observability/OtlpMetrics.ts +5 -3
  1135. package/src/observability/OtlpProxy.ts +314 -0
  1136. package/src/observability/OtlpResource.ts +16 -6
  1137. package/src/observability/OtlpSerialization.ts +17 -3
  1138. package/src/observability/OtlpTracer.ts +4 -0
  1139. package/src/observability/index.ts +6 -0
  1140. package/src/observability/internal/protobuf.ts +2 -10
  1141. package/src/persistence/CircuitBreaker.ts +1678 -0
  1142. package/src/persistence/PersistedCache.ts +3 -1
  1143. package/src/persistence/PersistedQueue.ts +223 -153
  1144. package/src/persistence/Persistence.ts +64 -30
  1145. package/src/persistence/RateLimiter.ts +18 -21
  1146. package/src/persistence/Redis.ts +129 -8
  1147. package/src/persistence/UserDirectories.ts +273 -0
  1148. package/src/persistence/index.ts +12 -0
  1149. package/src/process/ChildProcess.ts +32 -5
  1150. package/src/process/ChildProcessSpawner.ts +41 -2
  1151. package/src/reactivity/AsyncResult.ts +5 -39
  1152. package/src/reactivity/Atom.ts +134 -166
  1153. package/src/reactivity/AtomHttpApi.ts +10 -16
  1154. package/src/reactivity/AtomRegistry.ts +50 -29
  1155. package/src/reactivity/AtomRpc.ts +6 -22
  1156. package/src/reactivity/Hydration.ts +53 -12
  1157. package/src/reactivity/Reactivity.ts +97 -39
  1158. package/src/rpc/Rpc.ts +21 -0
  1159. package/src/rpc/RpcClient.ts +283 -104
  1160. package/src/rpc/RpcSerialization.ts +53 -14
  1161. package/src/rpc/RpcServer.ts +27 -21
  1162. package/src/rpc/RpcTest.ts +3 -0
  1163. package/src/schema/VariantSchema.ts +86 -22
  1164. package/src/socket/Socket.ts +45 -20
  1165. package/src/sql/Migrator.ts +26 -11
  1166. package/src/sql/SqlClient.ts +273 -29
  1167. package/src/sql/SqlResolver.ts +32 -9
  1168. package/src/sql/Statement.ts +65 -10
  1169. package/src/testing/TestClock.ts +4 -1
  1170. package/src/testing/TestSchema.ts +9 -3
  1171. package/src/workflow/DurableDeferred.ts +23 -6
  1172. package/src/workflow/WorkflowEngine.ts +34 -10
  1173. package/dist/http/internal/preResponseHandler.d.ts +0 -2
  1174. package/dist/http/internal/preResponseHandler.d.ts.map +0 -1
  1175. package/dist/http/internal/preResponseHandler.js +0 -14
  1176. package/dist/http/internal/preResponseHandler.js.map +0 -1
  1177. package/src/http/internal/preResponseHandler.ts +0 -19
@@ -876,28 +876,30 @@ export const makeStoreRedis = Effect.fnUntraced(function*(
876
876
  })
877
877
  )
878
878
 
879
- const scanKeys = (pattern: string) =>
880
- Effect.gen(function*() {
881
- const keys: Array<string> = []
882
- let cursor = "0"
883
- do {
884
- const [next, batch] = yield* redis.send<[string, Array<string>]>(
885
- "SCAN",
886
- cursor,
887
- "MATCH",
888
- pattern,
889
- "COUNT",
890
- "100"
891
- )
892
- cursor = next
893
- for (const key of batch) keys.push(key)
894
- } while (cursor !== "0")
895
- return keys
896
- })
879
+ const scanKeys = Effect.fnUntraced(function*(pattern: string) {
880
+ const keys: Array<string> = []
881
+ let cursor = "0"
882
+ do {
883
+ const [next, batch] = yield* redis.send<[string, Array<string>]>(
884
+ "SCAN",
885
+ cursor,
886
+ "MATCH",
887
+ pattern,
888
+ "COUNT",
889
+ "100"
890
+ )
891
+ cursor = next
892
+ for (const key of batch) keys.push(key)
893
+ } while (cursor !== "0")
894
+ return keys
895
+ })
897
896
 
898
897
  return PersistedQueueStore.of({
899
898
  offer: ({ delay, element, id, isCustomId, name }) => {
900
899
  const keys = keysFor(name)
900
+ // replace lone surrogates like Redis' UTF-8 encoding does, so the id in
901
+ // the payload matches the id keys
902
+ id = id.replace(/[\uD800-\uDFFF]/gu, "\uFFFD")
901
903
  const payload = JSON.stringify({ id, element })
902
904
  const send = Effect.suspend(() => {
903
905
  if (delay === undefined) {
@@ -1004,8 +1006,8 @@ export const makeStoreRedis = Effect.fnUntraced(function*(
1004
1006
  })
1005
1007
  )
1006
1008
  }),
1007
- cleanup: ({ failedTimeToLive, timeToLive }) =>
1008
- Effect.gen(function*() {
1009
+ cleanup: Effect.fnUntraced(
1010
+ function*({ failedTimeToLive, timeToLive }) {
1009
1011
  const now = clock.currentTimeMillisUnsafe()
1010
1012
  const idsKeys = yield* scanKeys(`${prefix}*:ids`)
1011
1013
  const cutoff = now - Duration.toMillis(timeToLive)
@@ -1027,15 +1029,15 @@ export const makeStoreRedis = Effect.fnUntraced(function*(
1027
1029
  { concurrency: 16, discard: true }
1028
1030
  )
1029
1031
  }
1030
- }).pipe(
1031
- Effect.mapError(({ cause }) =>
1032
- new PersistedQueueError({
1033
- message: "Failed to clean up persisted queue",
1034
- cause
1035
- })
1036
- )
1032
+ },
1033
+ Effect.mapError(({ cause }) =>
1034
+ new PersistedQueueError({
1035
+ message: "Failed to clean up persisted queue",
1036
+ cause
1037
+ })
1037
1038
  )
1038
- })
1039
+ )
1040
+ });
1039
1041
  })
1040
1042
 
1041
1043
  const offerRedis = Redis.script(
@@ -1231,6 +1233,27 @@ redis.call("ZADD", key_ids, "XX", "+inf", id)
1231
1233
  }
1232
1234
  )
1233
1235
 
1236
+ // Every record starts with {"id":"...". Decode only the id, since Redis cjson
1237
+ // rejects lone UTF-16 surrogates that JSON.stringify can emit in the element.
1238
+ const queueRecordIdRedis = `
1239
+ local function record_id(payload)
1240
+ assert(string.sub(payload, 1, 7) == '{"id":"', "Invalid queue record id")
1241
+ local i = 8
1242
+ while i <= #payload do
1243
+ local byte = string.byte(payload, i)
1244
+ if byte == 92 then
1245
+ -- Skip escaped characters, including escaped quotes and backslashes.
1246
+ i = i + 2
1247
+ elseif byte == 34 then
1248
+ return cjson.decode(string.sub(payload, 7, i))
1249
+ else
1250
+ i = i + 1
1251
+ end
1252
+ end
1253
+ error("Unterminated queue record id")
1254
+ end
1255
+ `
1256
+
1234
1257
  const takeRedis = Redis.script(
1235
1258
  (
1236
1259
  ...args: [
@@ -1257,6 +1280,8 @@ local batch_size = tonumber(ARGV[3])
1257
1280
  local pttl = ARGV[4]
1258
1281
  local now = ARGV[5]
1259
1282
 
1283
+ ${queueRecordIdRedis}
1284
+
1260
1285
  local due = redis.call("ZRANGEBYSCORE", key_delayed, "-inf", now, "LIMIT", 0, 100)
1261
1286
  if #due > 0 then
1262
1287
  for i, payload in ipairs(due) do
@@ -1265,14 +1290,21 @@ if #due > 0 then
1265
1290
  redis.call("ZREM", key_delayed, unpack(due))
1266
1291
  end
1267
1292
 
1268
- local payloads = redis.call("LPOP", key_queue, batch_size)
1269
- if not payloads then
1293
+ local payloads = redis.call("LRANGE", key_queue, 0, batch_size - 1)
1294
+ if #payloads == 0 then
1270
1295
  return nil
1271
1296
  end
1272
1297
 
1273
- local result = {}
1298
+ -- read every id before removing the batch, as script errors do not roll back
1299
+ local ids = {}
1274
1300
  for i, payload in ipairs(payloads) do
1275
- local id = cjson.decode(payload).id
1301
+ ids[i] = record_id(payload)
1302
+ end
1303
+ redis.call("LTRIM", key_queue, #payloads, -1)
1304
+
1305
+ local result = {}
1306
+ for i, id in ipairs(ids) do
1307
+ local payload = payloads[i]
1276
1308
  local key_lock = prefix .. id .. ":lock"
1277
1309
  redis.call("SET", key_lock, worker_id, "PX", pttl)
1278
1310
  redis.call("HSET", key_pending, id, payload)
@@ -1311,21 +1343,20 @@ local key_ids = KEYS[2]
1311
1343
  local cutoff = tonumber(ARGV[1])
1312
1344
  local removed = 0
1313
1345
 
1346
+ ${queueRecordIdRedis}
1347
+
1314
1348
  while removed < ${trimFailedBatchSize} do
1315
1349
  local head = redis.call("LINDEX", key_failed, 0)
1316
1350
  if not head then break end
1317
- local ok, decoded = pcall(cjson.decode, head)
1351
+ local ok, id = pcall(record_id, head)
1318
1352
  if ok then
1319
- local failed_at = tonumber(decoded.failedAt)
1353
+ -- failedAt is always the last field of a failed record
1354
+ local failed_at = tonumber(string.match(head, ',"failedAt":([^,}]+)%}$'))
1320
1355
  if failed_at ~= nil and failed_at >= cutoff then break end
1321
- redis.call("LPOP", key_failed)
1322
- if decoded.id ~= nil then
1323
- redis.call("ZREM", key_ids, decoded.id)
1324
- end
1325
- else
1326
- -- a corrupt head would otherwise block trimming of the whole list
1327
- redis.call("LPOP", key_failed)
1356
+ redis.call("ZREM", key_ids, id)
1328
1357
  end
1358
+ -- a corrupt head would otherwise block trimming of the whole list
1359
+ redis.call("LPOP", key_failed)
1329
1360
  removed = removed + 1
1330
1361
  end
1331
1362
 
@@ -1361,8 +1392,12 @@ export const layerStoreRedis: (
1361
1392
  * **Details**
1362
1393
  *
1363
1394
  * The store creates the queue table and indexes, acquires rows with
1364
- * per-worker locks, refreshes active locks while scoped takes are running, and
1365
- * retries or completes rows according to the processing exit.
1395
+ * per-acquisition locks, refreshes active locks while scoped takes are running,
1396
+ * and retries or completes rows according to the processing exit.
1397
+ *
1398
+ * Settlements and refreshes only apply to the acquisition a handler received,
1399
+ * so a handler whose lock lapsed can still settle or renew its claim until
1400
+ * another poll re-claims the row.
1366
1401
  *
1367
1402
  * Offer and retry delays are measured with the database clock and rounded up
1368
1403
  * to whole seconds.
@@ -1398,8 +1433,6 @@ export const makeStoreSql: (
1398
1433
  options?.lockExpiration ? Duration.fromInputUnsafe(options.lockExpiration) : Duration.minutes(2),
1399
1434
  Duration.millis(1)
1400
1435
  )
1401
- const workerId = crypto.randomUUID()
1402
-
1403
1436
  const ackRetrySchedule = makeAckRetrySchedule(lockExpiration)
1404
1437
 
1405
1438
  yield* Effect.orDie(
@@ -1457,15 +1490,44 @@ export const makeStoreSql: (
1457
1490
  INSERT IGNORE INTO ${tableNameSql} (id, queue_name, element, state, attempts, visible_at, created_at, updated_at)
1458
1491
  VALUES (${id}, ${name}, ${element}, 'pending', 0, ${visibleAt}, ${sqlNow}, ${sqlNow})
1459
1492
  `,
1460
- mssql: () => (id: string, name: string, element: string, visibleAt: Fragment) =>
1461
- sql`
1462
- MERGE ${tableNameSql} WITH (HOLDLOCK) AS target
1463
- USING (SELECT ${id} AS id, ${name} AS queue_name) AS source
1464
- ON target.id = source.id AND target.queue_name = source.queue_name
1465
- WHEN NOT MATCHED THEN
1466
- INSERT (id, queue_name, element, state, attempts, visible_at, created_at, updated_at)
1467
- VALUES (source.id, source.queue_name, ${element}, 'pending', 0, ${visibleAt}, ${sqlNow}, ${sqlNow});
1468
- `,
1493
+ // Avoids MERGE WITH (HOLDLOCK), whose range locks deadlock concurrent offers.
1494
+ // - READCOMMITTEDLOCK makes the check wait for an uncommitted duplicate, even
1495
+ // under read committed snapshot.
1496
+ // - A duplicate inserted after the check raises 2601/2627. XACT_ABORT is off
1497
+ // so that error doesn't doom the caller's transaction; it is restored
1498
+ // before rethrowing any other error.
1499
+ // - The nested sp_executesql restores XACT_ABORT on exit, including on
1500
+ // cancellation.
1501
+ mssql: () => {
1502
+ // matches the SQL Server compiler's identifier escaping
1503
+ const escape = (name: string) => `[${name.replace(/\]/g, "]]").replace(/\./g, "].[")}]`
1504
+ const table = escape(tableName)
1505
+ const offerSql = `
1506
+ SET XACT_ABORT OFF;
1507
+ BEGIN TRY
1508
+ IF NOT EXISTS (
1509
+ SELECT 1 FROM ${table} WITH (READCOMMITTEDLOCK, FORCESEEK, INDEX(${escape(`idx_${tableName}_id`)}))
1510
+ WHERE id = @id AND queue_name = @name
1511
+ )
1512
+ INSERT INTO ${table} (id, queue_name, element, state, attempts, visible_at, created_at, updated_at)
1513
+ VALUES (@id, @name, @element, 'pending', 0, @visible_at, SYSDATETIME(), SYSDATETIME());
1514
+ END TRY
1515
+ BEGIN CATCH
1516
+ IF ERROR_NUMBER() NOT IN (2601, 2627) OR XACT_STATE() = -1
1517
+ BEGIN
1518
+ IF @xact_abort <> 0 SET XACT_ABORT ON;
1519
+ THROW;
1520
+ END
1521
+ END CATCH`
1522
+ return (id: string, name: string, element: string, visibleAt: Fragment) =>
1523
+ sql`
1524
+ DECLARE @visible_at DATETIME2 = ${visibleAt};
1525
+ DECLARE @xact_abort INT = @@OPTIONS & 16384;
1526
+ EXEC sp_executesql ${offerSql},
1527
+ N'@id NVARCHAR(MAX), @name NVARCHAR(MAX), @element NVARCHAR(MAX), @visible_at DATETIME2, @xact_abort INT',
1528
+ @id = ${id}, @name = ${name}, @element = ${element}, @visible_at = @visible_at, @xact_abort = @xact_abort;
1529
+ `
1530
+ },
1469
1531
  // sqlite
1470
1532
  orElse: () => (id: string, name: string, element: string, visibleAt: Fragment) =>
1471
1533
  sql`
@@ -1480,75 +1542,80 @@ export const makeStoreSql: (
1480
1542
  })
1481
1543
  const stringLiteral = (s: string) => sql.literal(wrapString(s))
1482
1544
 
1483
- const workerIdSql = stringLiteral(workerId)
1484
- const elementIds = new Set<number | string>()
1545
+ // Elements this store has claimed and not yet settled. Each poll claims its
1546
+ // rows under a fresh lock, so a settlement only matches the acquisition it
1547
+ // belongs to, even after the same store re-claims a lapsed row.
1548
+ const held = new Set<Element>()
1485
1549
  const refreshLocks: Effect.Effect<void, SqlError> = Effect.suspend((): Effect.Effect<void, SqlError> => {
1486
- if (elementIds.size === 0) return Effect.void
1487
- const ids = Array.from(elementIds)
1550
+ if (held.size === 0) return Effect.void
1551
+ const sequences = new Set<number | string>()
1552
+ const locks = new Set<string>()
1553
+ for (const element of held) {
1554
+ sequences.add(element.sequence)
1555
+ locks.add(wrapString(element.lock))
1556
+ }
1557
+ // A row only ever carries the lock of the poll that claimed it, so matching
1558
+ // every held sequence against every live lock renews just this store's own
1559
+ // claims while keeping the statement flat
1488
1560
  return sql`
1489
1561
  UPDATE ${tableNameSql}
1490
1562
  SET acquired_at = ${sqlNow}
1491
- WHERE sequence IN (${sql.literal(ids.join(","))})
1492
- AND acquired_by = ${workerIdSql}
1563
+ WHERE sequence IN (${sql.literal(Array.from(sequences).join(","))})
1564
+ AND acquired_by IN (${sql.literal(Array.from(locks).join(","))})
1493
1565
  `
1494
1566
  })
1495
- const ack = (
1496
- statement: Effect.Effect<unknown, SqlError>,
1497
- sequences: ReadonlyArray<number | string>
1498
- ): Effect.Effect<void> =>
1567
+ const ack = (statement: Effect.Effect<unknown, SqlError>, element: Element): Effect.Effect<void> =>
1499
1568
  statement.pipe(
1500
1569
  Effect.retry(ackRetrySchedule),
1501
1570
  Effect.orDie,
1502
1571
  Effect.ensuring(Effect.sync(() => {
1503
- for (const sequence of sequences) {
1504
- elementIds.delete(sequence)
1505
- }
1572
+ held.delete(element)
1506
1573
  })),
1507
1574
  Effect.asVoid
1508
1575
  )
1509
- const complete = (sequence: number | string) =>
1576
+ const complete = (element: Element) =>
1510
1577
  ack(
1511
1578
  sql`
1512
1579
  UPDATE ${tableNameSql}
1513
1580
  SET acquired_at = NULL, acquired_by = NULL, updated_at = ${sqlNow}, state = 'completed'
1514
- WHERE sequence = ${sequence}
1515
- AND acquired_by = ${workerIdSql}
1581
+ WHERE sequence = ${element.sequence}
1582
+ AND acquired_by = ${stringLiteral(element.lock)}
1516
1583
  `,
1517
- [sequence]
1584
+ element
1518
1585
  )
1519
- const fail = (sequence: number | string, cause: Cause.Cause<any>) =>
1586
+ const fail = (element: Element, cause: Cause.Cause<any>) =>
1520
1587
  ack(
1521
1588
  sql`
1522
1589
  UPDATE ${tableNameSql}
1523
1590
  SET acquired_at = NULL, acquired_by = NULL, updated_at = ${sqlNow}, state = 'failed', last_failure = ${
1524
1591
  Cause.pretty(cause)
1525
1592
  }
1526
- WHERE sequence = ${sequence}
1527
- AND acquired_by = ${workerIdSql}
1593
+ WHERE sequence = ${element.sequence}
1594
+ AND acquired_by = ${stringLiteral(element.lock)}
1528
1595
  `,
1529
- [sequence]
1596
+ element
1530
1597
  )
1531
- const retry = (sequence: number | string, delay: Duration.Duration, cause: Cause.Cause<any>) =>
1598
+ const retry = (element: Element, delay: Duration.Duration, cause: Cause.Cause<any>) =>
1532
1599
  ack(
1533
1600
  sql`
1534
1601
  UPDATE ${tableNameSql}
1535
1602
  SET acquired_at = NULL, acquired_by = NULL, updated_at = ${sqlNow}, visible_at = ${
1536
1603
  secondsFromNow(Duration.toSeconds(delay))
1537
1604
  }, last_failure = ${Cause.pretty(cause)}
1538
- WHERE sequence = ${sequence}
1539
- AND acquired_by = ${workerIdSql}
1605
+ WHERE sequence = ${element.sequence}
1606
+ AND acquired_by = ${stringLiteral(element.lock)}
1540
1607
  `,
1541
- [sequence]
1608
+ element
1542
1609
  )
1543
- const interrupt = (ids: Array<number | string>) =>
1610
+ const interrupt = (element: Element) =>
1544
1611
  ack(
1545
1612
  sql`
1546
1613
  UPDATE ${tableNameSql}
1547
1614
  SET acquired_at = NULL, acquired_by = NULL, attempts = attempts - 1
1548
- WHERE sequence IN (${sql.literal(ids.join(","))})
1549
- AND acquired_by = ${workerIdSql}
1615
+ WHERE sequence = ${element.sequence}
1616
+ AND acquired_by = ${stringLiteral(element.lock)}
1550
1617
  `,
1551
- ids
1618
+ element
1552
1619
  )
1553
1620
 
1554
1621
  yield* refreshLocks.pipe(
@@ -1568,6 +1635,7 @@ export const makeStoreSql: (
1568
1635
  readonly sequence: number | string
1569
1636
  readonly element: string
1570
1637
  attempts: number
1638
+ lock: string
1571
1639
  }
1572
1640
  const queueStates = makeQueueStates()
1573
1641
  const mailboxes = yield* RcMap.make({
@@ -1581,10 +1649,10 @@ export const makeStoreSql: (
1581
1649
  const nudge = state.nudge
1582
1650
 
1583
1651
  yield* Effect.addFinalizer(() =>
1584
- Effect.flatMap(Queue.clear(queue), (elements) => {
1585
- if (elements.length === 0) return Effect.void
1586
- return interrupt(Array.from(elements, (e) => e.sequence))
1587
- })
1652
+ Effect.flatMap(
1653
+ Queue.clear(queue),
1654
+ (elements) => Effect.forEach(elements, interrupt, { concurrency: "unbounded", discard: true })
1655
+ )
1588
1656
  )
1589
1657
 
1590
1658
  // flip exhausted rows whose lock expired (worker crashed on the final
@@ -1606,11 +1674,11 @@ export const makeStoreSql: (
1606
1674
  )
1607
1675
 
1608
1676
  const poll = sql.onDialectOrElse({
1609
- pg: () => (size: number) =>
1677
+ pg: () => (size: number, lockSql: Fragment) =>
1610
1678
  sql<Element>`
1611
1679
  WITH cte AS (
1612
1680
  UPDATE ${tableNameSql}
1613
- SET acquired_at = ${sqlNow}, acquired_by = ${workerIdSql}, attempts = attempts + 1
1681
+ SET acquired_at = ${sqlNow}, acquired_by = ${lockSql}, attempts = attempts + 1
1614
1682
  WHERE sequence IN (
1615
1683
  SELECT sequence FROM ${tableNameSql}
1616
1684
  WHERE queue_name = ${name}
@@ -1627,7 +1695,7 @@ export const makeStoreSql: (
1627
1695
  SELECT sequence, id, element, attempts FROM cte
1628
1696
  ORDER BY visible_at ASC, sequence ASC
1629
1697
  `,
1630
- mysql: () => (size: number) =>
1698
+ mysql: () => (size: number, lockSql: Fragment) =>
1631
1699
  sql<Element>`
1632
1700
  SELECT sequence, id, element, attempts FROM ${tableNameSql} q
1633
1701
  WHERE queue_name = ${name}
@@ -1643,7 +1711,7 @@ export const makeStoreSql: (
1643
1711
  if (rows.length === 0) return Effect.void
1644
1712
  return sql`
1645
1713
  UPDATE ${tableNameSql}
1646
- SET acquired_at = ${sqlNow}, acquired_by = ${workerIdSql}, attempts = attempts + 1
1714
+ SET acquired_at = ${sqlNow}, acquired_by = ${lockSql}, attempts = attempts + 1
1647
1715
  WHERE sequence IN (${sql.literal(rows.map((r) => r.sequence).join(","))})
1648
1716
  `.unprepared
1649
1717
  }),
@@ -1655,10 +1723,13 @@ export const makeStoreSql: (
1655
1723
  }),
1656
1724
  sql.withTransaction
1657
1725
  ),
1658
- mssql: () => (size: number) =>
1726
+ // READPAST skips rows locked by another claim or a settlement instead
1727
+ // of deadlocking with them
1728
+ mssql: () => (size: number, lockSql: Fragment) =>
1659
1729
  sql<Element>`
1660
1730
  WITH cte AS (
1661
- SELECT TOP ${sql.literal(size.toString())} sequence FROM ${tableNameSql}
1731
+ SELECT TOP ${sql.literal(size.toString())} sequence
1732
+ FROM ${tableNameSql} WITH (UPDLOCK, READPAST, ROWLOCK)
1662
1733
  WHERE queue_name = ${name}
1663
1734
  AND state = 'pending'
1664
1735
  AND attempts < ${maxAttempts}
@@ -1667,16 +1738,16 @@ export const makeStoreSql: (
1667
1738
  ORDER BY visible_at ASC, sequence ASC
1668
1739
  )
1669
1740
  UPDATE q
1670
- SET acquired_at = ${sqlNow}, acquired_by = ${workerIdSql}, attempts = q.attempts + 1
1741
+ SET acquired_at = ${sqlNow}, acquired_by = ${lockSql}, attempts = q.attempts + 1
1671
1742
  OUTPUT inserted.sequence, inserted.id, inserted.element, inserted.attempts
1672
1743
  FROM ${tableNameSql} AS q
1673
1744
  INNER JOIN cte ON q.sequence = cte.sequence
1674
1745
  `,
1675
1746
  // sqlite
1676
- orElse: () => (size: number) =>
1747
+ orElse: () => (size: number, lockSql: Fragment) =>
1677
1748
  sql<Element>`
1678
1749
  UPDATE ${tableNameSql}
1679
- SET acquired_at = ${sqlNow}, acquired_by = ${workerIdSql}, attempts = attempts + 1
1750
+ SET acquired_at = ${sqlNow}, acquired_by = ${lockSql}, attempts = attempts + 1
1680
1751
  WHERE sequence IN (
1681
1752
  SELECT sequence FROM ${tableNameSql}
1682
1753
  WHERE queue_name = ${name}
@@ -1696,7 +1767,8 @@ export const makeStoreSql: (
1696
1767
  yield* pollLatch.await
1697
1768
  yield* Effect.yieldNow
1698
1769
  nudge.closeUnsafe()
1699
- const results = takers.current === 0 ? [] : yield* poll(takers.current)
1770
+ const lock = crypto.randomUUID()
1771
+ const results = takers.current === 0 ? [] : yield* poll(takers.current, stringLiteral(lock))
1700
1772
  if (results.length === 0) {
1701
1773
  yield* Effect.race(Effect.sleep(pollInterval), nudge.await)
1702
1774
  continue
@@ -1704,7 +1776,8 @@ export const makeStoreSql: (
1704
1776
  takenLatch.closeUnsafe()
1705
1777
  for (const row of results) {
1706
1778
  row.attempts = Number(row.attempts)
1707
- elementIds.add(row.sequence)
1779
+ row.lock = lock
1780
+ held.add(row)
1708
1781
  }
1709
1782
  yield* Queue.offerAll(queue, results)
1710
1783
  yield* takenLatch.await
@@ -1797,10 +1870,11 @@ export const makeStoreSql: (
1797
1870
  })
1798
1871
  )
1799
1872
  ).pipe(
1873
+ // Wake takers once the offer is committed.
1800
1874
  Effect.tap(() =>
1801
- Effect.sync(() => {
1875
+ sql.afterCommit(Effect.sync(() => {
1802
1876
  queueStates.peek(name)?.nudge.openUnsafe()
1803
- })
1877
+ }))
1804
1878
  )
1805
1879
  ),
1806
1880
  take: (options) => {
@@ -1843,26 +1917,26 @@ export const makeStoreSql: (
1843
1917
  } catch (defect) {
1844
1918
  // a row that cannot be parsed will never succeed, so dead-letter
1845
1919
  // it and take the next element
1846
- return Effect.andThen(fail(element.sequence, Cause.die(defect)), loop)
1920
+ return Effect.andThen(fail(element, Cause.die(defect)), loop)
1847
1921
  }
1848
1922
  return Effect.as(
1849
1923
  Effect.addFinalizer((exit) => {
1850
1924
  if (exit._tag === "Success") {
1851
- return complete(element.sequence)
1925
+ return complete(element)
1852
1926
  }
1853
1927
  const dead = deadLetterFromCause(exit.cause)
1854
1928
  if (dead !== undefined) {
1855
- return fail(element.sequence, dead.cause)
1929
+ return fail(element, dead.cause)
1856
1930
  }
1857
1931
  if (Cause.hasInterruptsOnly(exit.cause)) {
1858
- return interrupt([element.sequence])
1932
+ return interrupt(element)
1859
1933
  }
1860
1934
  if (element.attempts >= options.maxAttempts) {
1861
- return fail(element.sequence, exit.cause)
1935
+ return fail(element, exit.cause)
1862
1936
  }
1863
1937
  return Effect.flatMap(
1864
1938
  options.retryDelay(element.attempts),
1865
- (delay) => retry(element.sequence, delay, exit.cause)
1939
+ (delay) => retry(element, delay, exit.cause)
1866
1940
  )
1867
1941
  }),
1868
1942
  { id: element.id, attempts: element.attempts, element: parsed }
@@ -1872,22 +1946,22 @@ export const makeStoreSql: (
1872
1946
  )
1873
1947
  return loop
1874
1948
  },
1875
- cleanup: ({ failedTimeToLive, timeToLive }) =>
1876
- Effect.gen(function*() {
1949
+ cleanup: Effect.fnUntraced(
1950
+ function*({ failedTimeToLive, timeToLive }) {
1877
1951
  yield* cleanupState("completed", timeToLive)
1878
1952
  if (failedTimeToLive !== undefined) {
1879
1953
  yield* cleanupState("failed", failedTimeToLive)
1880
1954
  }
1881
- }).pipe(
1882
- Effect.catchCause((cause) =>
1883
- Effect.fail(
1884
- new PersistedQueueError({
1885
- message: "Failed to clean up persisted queue",
1886
- cause
1887
- })
1888
- )
1955
+ },
1956
+ Effect.catchCause((cause) =>
1957
+ Effect.fail(
1958
+ new PersistedQueueError({
1959
+ message: "Failed to clean up persisted queue",
1960
+ cause
1961
+ })
1889
1962
  )
1890
1963
  )
1964
+ )
1891
1965
  })
1892
1966
  })
1893
1967
 
@@ -2005,46 +2079,43 @@ const sqlMigrations = (tableName: string) =>
2005
2079
  const takeIndex = sql(`idx_${tableName}_take`)
2006
2080
 
2007
2081
  yield* sql.onDialectOrElse({
2008
- pg: () =>
2009
- Effect.gen(function*() {
2010
- yield* sql`DROP INDEX IF EXISTS ${takeIndex}`
2011
- yield* sql`ALTER TABLE ${tableNameSql}
2082
+ pg: Effect.fnUntraced(function*() {
2083
+ yield* sql`DROP INDEX IF EXISTS ${takeIndex}`
2084
+ yield* sql`ALTER TABLE ${tableNameSql}
2012
2085
  ADD COLUMN state VARCHAR(10),
2013
2086
  ADD COLUMN visible_at TIMESTAMP`
2014
- yield* sql`UPDATE ${tableNameSql}
2087
+ yield* sql`UPDATE ${tableNameSql}
2015
2088
  SET state = CASE WHEN completed THEN 'completed' ELSE 'pending' END,
2016
2089
  visible_at = updated_at`
2017
- yield* sql`ALTER TABLE ${tableNameSql}
2090
+ yield* sql`ALTER TABLE ${tableNameSql}
2018
2091
  ALTER COLUMN sequence TYPE BIGINT,
2019
2092
  ALTER COLUMN id TYPE VARCHAR(255),
2020
2093
  ALTER COLUMN queue_name TYPE VARCHAR(255),
2021
2094
  ALTER COLUMN state SET NOT NULL,
2022
2095
  ALTER COLUMN visible_at SET NOT NULL,
2023
2096
  DROP COLUMN completed`
2024
- }),
2025
- mysql: () =>
2026
- Effect.gen(function*() {
2027
- yield* sql`DROP INDEX ${takeIndex} ON ${tableNameSql}`
2028
- yield* sql`ALTER TABLE ${tableNameSql}
2097
+ }),
2098
+ mysql: Effect.fnUntraced(function*() {
2099
+ yield* sql`DROP INDEX ${takeIndex} ON ${tableNameSql}`
2100
+ yield* sql`ALTER TABLE ${tableNameSql}
2029
2101
  MODIFY COLUMN id VARCHAR(255) NOT NULL,
2030
2102
  MODIFY COLUMN queue_name VARCHAR(255) NOT NULL,
2031
2103
  MODIFY COLUMN element MEDIUMTEXT NOT NULL,
2032
2104
  MODIFY COLUMN last_failure MEDIUMTEXT NULL,
2033
2105
  ADD COLUMN state VARCHAR(10) NULL,
2034
2106
  ADD COLUMN visible_at DATETIME NULL`
2035
- yield* sql`UPDATE ${tableNameSql}
2107
+ yield* sql`UPDATE ${tableNameSql}
2036
2108
  SET state = CASE WHEN completed THEN 'completed' ELSE 'pending' END,
2037
2109
  visible_at = updated_at`
2038
- yield* sql`ALTER TABLE ${tableNameSql}
2110
+ yield* sql`ALTER TABLE ${tableNameSql}
2039
2111
  MODIFY COLUMN state VARCHAR(10) NOT NULL,
2040
2112
  MODIFY COLUMN visible_at DATETIME NOT NULL,
2041
2113
  DROP COLUMN completed`
2042
- }),
2043
- mssql: () =>
2044
- Effect.gen(function*() {
2045
- const upgradedTableName = `${tableName}_upgrade`
2046
- const upgradedTable = sql(upgradedTableName)
2047
- yield* sql`CREATE TABLE ${upgradedTable} (
2114
+ }),
2115
+ mssql: Effect.fnUntraced(function*() {
2116
+ const upgradedTableName = `${tableName}_upgrade`
2117
+ const upgradedTable = sql(upgradedTableName)
2118
+ yield* sql`CREATE TABLE ${upgradedTable} (
2048
2119
  sequence BIGINT IDENTITY(1,1) PRIMARY KEY,
2049
2120
  id NVARCHAR(255) NOT NULL,
2050
2121
  queue_name NVARCHAR(255) NOT NULL,
@@ -2058,7 +2129,7 @@ const sqlMigrations = (tableName: string) =>
2058
2129
  created_at DATETIME2 NOT NULL,
2059
2130
  updated_at DATETIME2 NOT NULL
2060
2131
  )`
2061
- yield* sql`SET IDENTITY_INSERT ${upgradedTable} ON;
2132
+ yield* sql`SET IDENTITY_INSERT ${upgradedTable} ON;
2062
2133
  INSERT INTO ${upgradedTable}
2063
2134
  (sequence, id, queue_name, element, state, attempts, last_failure, visible_at,
2064
2135
  acquired_at, acquired_by, created_at, updated_at)
@@ -2067,19 +2138,18 @@ const sqlMigrations = (tableName: string) =>
2067
2138
  attempts, last_failure, updated_at, acquired_at, acquired_by, created_at, updated_at
2068
2139
  FROM ${tableNameSql};
2069
2140
  SET IDENTITY_INSERT ${upgradedTable} OFF`
2070
- yield* sql`DROP TABLE ${tableNameSql}`
2071
- yield* sql`EXEC sp_rename ${upgradedTableName}, ${tableName}`
2072
- yield* sql`CREATE UNIQUE INDEX ${sql(`idx_${tableName}_id`)} ON ${tableNameSql} (id, queue_name)`
2073
- yield* sql`CREATE INDEX ${sql(`idx_${tableName}_update`)} ON ${tableNameSql} (sequence, acquired_by)`
2074
- }),
2141
+ yield* sql`DROP TABLE ${tableNameSql}`
2142
+ yield* sql`EXEC sp_rename ${upgradedTableName}, ${tableName}`
2143
+ yield* sql`CREATE UNIQUE INDEX ${sql(`idx_${tableName}_id`)} ON ${tableNameSql} (id, queue_name)`
2144
+ yield* sql`CREATE INDEX ${sql(`idx_${tableName}_update`)} ON ${tableNameSql} (sequence, acquired_by)`
2145
+ }),
2075
2146
  // sqlite rebuilds the table because altering or dropping constrained
2076
2147
  // columns is not portable across supported SQLite versions.
2077
- orElse: () =>
2078
- Effect.gen(function*() {
2079
- const upgradedTableName = `${tableName}_upgrade`
2080
- const upgradedTable = sql(upgradedTableName)
2081
- yield* sql`DROP INDEX IF EXISTS ${takeIndex}`
2082
- yield* sql`CREATE TABLE ${upgradedTable} (
2148
+ orElse: Effect.fnUntraced(function*() {
2149
+ const upgradedTableName = `${tableName}_upgrade`
2150
+ const upgradedTable = sql(upgradedTableName)
2151
+ yield* sql`DROP INDEX IF EXISTS ${takeIndex}`
2152
+ yield* sql`CREATE TABLE ${upgradedTable} (
2083
2153
  sequence INTEGER PRIMARY KEY AUTOINCREMENT,
2084
2154
  id TEXT NOT NULL,
2085
2155
  queue_name TEXT NOT NULL,
@@ -2093,18 +2163,18 @@ const sqlMigrations = (tableName: string) =>
2093
2163
  created_at DATETIME NOT NULL,
2094
2164
  updated_at DATETIME NOT NULL
2095
2165
  )`
2096
- yield* sql`INSERT INTO ${upgradedTable}
2166
+ yield* sql`INSERT INTO ${upgradedTable}
2097
2167
  (sequence, id, queue_name, element, state, attempts, last_failure, visible_at,
2098
2168
  acquired_at, acquired_by, created_at, updated_at)
2099
2169
  SELECT sequence, id, queue_name, element,
2100
2170
  CASE WHEN completed THEN 'completed' ELSE 'pending' END,
2101
2171
  attempts, last_failure, updated_at, acquired_at, acquired_by, created_at, updated_at
2102
2172
  FROM ${tableNameSql}`
2103
- yield* sql`DROP TABLE ${tableNameSql}`
2104
- yield* sql`ALTER TABLE ${upgradedTable} RENAME TO ${tableNameSql}`
2105
- yield* sql`CREATE UNIQUE INDEX ${sql(`idx_${tableName}_id`)} ON ${tableNameSql} (id, queue_name)`
2106
- yield* sql`CREATE INDEX ${sql(`idx_${tableName}_update`)} ON ${tableNameSql} (sequence, acquired_by)`
2107
- })
2173
+ yield* sql`DROP TABLE ${tableNameSql}`
2174
+ yield* sql`ALTER TABLE ${upgradedTable} RENAME TO ${tableNameSql}`
2175
+ yield* sql`CREATE UNIQUE INDEX ${sql(`idx_${tableName}_id`)} ON ${tableNameSql} (id, queue_name)`
2176
+ yield* sql`CREATE INDEX ${sql(`idx_${tableName}_update`)} ON ${tableNameSql} (sequence, acquired_by)`
2177
+ })
2108
2178
  })
2109
2179
 
2110
2180
  // partial index where supported, so pollers never scan completed rows