effect 4.0.5 → 4.0.6

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 (985) 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/Array.d.ts +117 -52
  5. package/dist/Array.d.ts.map +1 -1
  6. package/dist/Array.js +41 -20
  7. package/dist/Array.js.map +1 -1
  8. package/dist/Bytes.d.ts +79 -0
  9. package/dist/Bytes.d.ts.map +1 -0
  10. package/dist/Bytes.js +109 -0
  11. package/dist/Bytes.js.map +1 -0
  12. package/dist/Channel.d.ts +181 -13
  13. package/dist/Channel.d.ts.map +1 -1
  14. package/dist/Channel.js +125 -30
  15. package/dist/Channel.js.map +1 -1
  16. package/dist/ChannelSchema.d.ts.map +1 -1
  17. package/dist/ChannelSchema.js.map +1 -1
  18. package/dist/Chunk.d.ts +39 -21
  19. package/dist/Chunk.d.ts.map +1 -1
  20. package/dist/Chunk.js +26 -17
  21. package/dist/Chunk.js.map +1 -1
  22. package/dist/Config.d.ts.map +1 -1
  23. package/dist/Config.js +8 -3
  24. package/dist/Config.js.map +1 -1
  25. package/dist/ConfigProvider.d.ts.map +1 -1
  26. package/dist/ConfigProvider.js +2 -1
  27. package/dist/ConfigProvider.js.map +1 -1
  28. package/dist/Cron.d.ts +2 -2
  29. package/dist/Cron.d.ts.map +1 -1
  30. package/dist/Cron.js +6 -3
  31. package/dist/Cron.js.map +1 -1
  32. package/dist/Duration.d.ts.map +1 -1
  33. package/dist/Duration.js +56 -16
  34. package/dist/Duration.js.map +1 -1
  35. package/dist/Effect.d.ts +487 -163
  36. package/dist/Effect.d.ts.map +1 -1
  37. package/dist/Effect.js +203 -37
  38. package/dist/Effect.js.map +1 -1
  39. package/dist/Equivalence.d.ts +2 -1
  40. package/dist/Equivalence.d.ts.map +1 -1
  41. package/dist/Equivalence.js +12 -8
  42. package/dist/Equivalence.js.map +1 -1
  43. package/dist/Exit.d.ts +24 -9
  44. package/dist/Exit.d.ts.map +1 -1
  45. package/dist/Exit.js +8 -3
  46. package/dist/Exit.js.map +1 -1
  47. package/dist/FiberHandle.d.ts +2 -0
  48. package/dist/FiberHandle.d.ts.map +1 -1
  49. package/dist/FiberHandle.js +9 -4
  50. package/dist/FiberHandle.js.map +1 -1
  51. package/dist/FiberMap.d.ts +2 -0
  52. package/dist/FiberMap.d.ts.map +1 -1
  53. package/dist/FiberMap.js +5 -2
  54. package/dist/FiberMap.js.map +1 -1
  55. package/dist/FileSystem.d.ts +5 -0
  56. package/dist/FileSystem.d.ts.map +1 -1
  57. package/dist/FileSystem.js +3 -0
  58. package/dist/FileSystem.js.map +1 -1
  59. package/dist/Graph.d.ts.map +1 -1
  60. package/dist/Graph.js.map +1 -1
  61. package/dist/HashSet.d.ts.map +1 -1
  62. package/dist/HashSet.js.map +1 -1
  63. package/dist/Iterable.d.ts.map +1 -1
  64. package/dist/Iterable.js +18 -17
  65. package/dist/Iterable.js.map +1 -1
  66. package/dist/JsonSchema.d.ts +9 -3
  67. package/dist/JsonSchema.d.ts.map +1 -1
  68. package/dist/JsonSchema.js +19 -3
  69. package/dist/JsonSchema.js.map +1 -1
  70. package/dist/Layer.d.ts.map +1 -1
  71. package/dist/Layer.js +2 -2
  72. package/dist/Layer.js.map +1 -1
  73. package/dist/ManagedRuntime.d.ts +19 -1
  74. package/dist/ManagedRuntime.d.ts.map +1 -1
  75. package/dist/ManagedRuntime.js +62 -6
  76. package/dist/ManagedRuntime.js.map +1 -1
  77. package/dist/Metric.d.ts +132 -0
  78. package/dist/Metric.d.ts.map +1 -1
  79. package/dist/Metric.js +197 -25
  80. package/dist/Metric.js.map +1 -1
  81. package/dist/MutableHashMap.d.ts.map +1 -1
  82. package/dist/MutableHashMap.js.map +1 -1
  83. package/dist/Number.js +2 -2
  84. package/dist/Number.js.map +1 -1
  85. package/dist/Optic.d.ts.map +1 -1
  86. package/dist/Optic.js.map +1 -1
  87. package/dist/Path.d.ts.map +1 -1
  88. package/dist/Path.js +8 -1
  89. package/dist/Path.js.map +1 -1
  90. package/dist/PubSub.d.ts.map +1 -1
  91. package/dist/PubSub.js +12 -7
  92. package/dist/PubSub.js.map +1 -1
  93. package/dist/Queue.d.ts +4 -1
  94. package/dist/Queue.d.ts.map +1 -1
  95. package/dist/Queue.js +4 -1
  96. package/dist/Queue.js.map +1 -1
  97. package/dist/Random.d.ts.map +1 -1
  98. package/dist/Random.js +1 -1
  99. package/dist/Random.js.map +1 -1
  100. package/dist/RcMap.d.ts +12 -7
  101. package/dist/RcMap.d.ts.map +1 -1
  102. package/dist/RcMap.js +9 -6
  103. package/dist/RcMap.js.map +1 -1
  104. package/dist/Record.d.ts +51 -0
  105. package/dist/Record.d.ts.map +1 -1
  106. package/dist/Record.js +17 -0
  107. package/dist/Record.js.map +1 -1
  108. package/dist/Ref.d.ts.map +1 -1
  109. package/dist/Ref.js.map +1 -1
  110. package/dist/References.d.ts +5 -4
  111. package/dist/References.d.ts.map +1 -1
  112. package/dist/References.js +5 -4
  113. package/dist/References.js.map +1 -1
  114. package/dist/RequestResolver.d.ts +31 -1
  115. package/dist/RequestResolver.d.ts.map +1 -1
  116. package/dist/RequestResolver.js +39 -4
  117. package/dist/RequestResolver.js.map +1 -1
  118. package/dist/Resource.js +1 -1
  119. package/dist/Resource.js.map +1 -1
  120. package/dist/Runtime.d.ts +3 -3
  121. package/dist/Runtime.d.ts.map +1 -1
  122. package/dist/Runtime.js +18 -15
  123. package/dist/Runtime.js.map +1 -1
  124. package/dist/Schedule.d.ts.map +1 -1
  125. package/dist/Schedule.js.map +1 -1
  126. package/dist/Schema.d.ts +384 -332
  127. package/dist/Schema.d.ts.map +1 -1
  128. package/dist/Schema.js +333 -19
  129. package/dist/Schema.js.map +1 -1
  130. package/dist/SchemaAST.d.ts +5 -5
  131. package/dist/SchemaAST.d.ts.map +1 -1
  132. package/dist/SchemaAST.js +24 -8
  133. package/dist/SchemaAST.js.map +1 -1
  134. package/dist/SchemaGetter.d.ts +8 -3
  135. package/dist/SchemaGetter.d.ts.map +1 -1
  136. package/dist/SchemaGetter.js +15 -5
  137. package/dist/SchemaGetter.js.map +1 -1
  138. package/dist/SchemaIssue.d.ts +4 -4
  139. package/dist/SchemaIssue.d.ts.map +1 -1
  140. package/dist/SchemaIssue.js +29 -51
  141. package/dist/SchemaIssue.js.map +1 -1
  142. package/dist/SchemaRepresentation.d.ts +56 -1
  143. package/dist/SchemaRepresentation.d.ts.map +1 -1
  144. package/dist/SchemaRepresentation.js +18 -0
  145. package/dist/SchemaRepresentation.js.map +1 -1
  146. package/dist/SchemaTransformation.d.ts +1 -1
  147. package/dist/SchemaTransformation.js +1 -1
  148. package/dist/Scope.d.ts +12 -2
  149. package/dist/Scope.d.ts.map +1 -1
  150. package/dist/Scope.js +5 -0
  151. package/dist/Scope.js.map +1 -1
  152. package/dist/ScopedCache.d.ts +10 -7
  153. package/dist/ScopedCache.d.ts.map +1 -1
  154. package/dist/ScopedCache.js +9 -5
  155. package/dist/ScopedCache.js.map +1 -1
  156. package/dist/SemVer.d.ts +1196 -0
  157. package/dist/SemVer.d.ts.map +1 -0
  158. package/dist/SemVer.js +756 -0
  159. package/dist/SemVer.js.map +1 -0
  160. package/dist/SemVerRange.d.ts +559 -0
  161. package/dist/SemVerRange.d.ts.map +1 -0
  162. package/dist/SemVerRange.js +551 -0
  163. package/dist/SemVerRange.js.map +1 -0
  164. package/dist/Sink.d.ts.map +1 -1
  165. package/dist/Sink.js +6 -2
  166. package/dist/Sink.js.map +1 -1
  167. package/dist/Stream.d.ts +235 -8
  168. package/dist/Stream.d.ts.map +1 -1
  169. package/dist/Stream.js +145 -60
  170. package/dist/Stream.js.map +1 -1
  171. package/dist/String.d.ts +4 -2
  172. package/dist/String.d.ts.map +1 -1
  173. package/dist/String.js +8 -6
  174. package/dist/String.js.map +1 -1
  175. package/dist/TextDiff.d.ts +399 -0
  176. package/dist/TextDiff.d.ts.map +1 -0
  177. package/dist/TextDiff.js +634 -0
  178. package/dist/TextDiff.js.map +1 -0
  179. package/dist/TxHashMap.d.ts.map +1 -1
  180. package/dist/TxHashMap.js.map +1 -1
  181. package/dist/TxHashSet.d.ts.map +1 -1
  182. package/dist/TxHashSet.js.map +1 -1
  183. package/dist/ai/AiError.d.ts +68 -4
  184. package/dist/ai/AiError.d.ts.map +1 -1
  185. package/dist/ai/AiError.js +50 -2
  186. package/dist/ai/AiError.js.map +1 -1
  187. package/dist/ai/Chat.d.ts +1 -2
  188. package/dist/ai/Chat.d.ts.map +1 -1
  189. package/dist/ai/Chat.js +6 -3
  190. package/dist/ai/Chat.js.map +1 -1
  191. package/dist/ai/Decision.d.ts +46 -1
  192. package/dist/ai/Decision.d.ts.map +1 -1
  193. package/dist/ai/Decision.js.map +1 -1
  194. package/dist/ai/DecisionModel.d.ts +129 -11
  195. package/dist/ai/DecisionModel.d.ts.map +1 -1
  196. package/dist/ai/DecisionModel.js +182 -94
  197. package/dist/ai/DecisionModel.js.map +1 -1
  198. package/dist/ai/EmbeddingModel.d.ts +10 -0
  199. package/dist/ai/EmbeddingModel.d.ts.map +1 -1
  200. package/dist/ai/EmbeddingModel.js +21 -7
  201. package/dist/ai/EmbeddingModel.js.map +1 -1
  202. package/dist/ai/McpClient.d.ts +289 -0
  203. package/dist/ai/McpClient.d.ts.map +1 -0
  204. package/dist/ai/McpClient.js +819 -0
  205. package/dist/ai/McpClient.js.map +1 -0
  206. package/dist/ai/McpClientError.d.ts +254 -0
  207. package/dist/ai/McpClientError.d.ts.map +1 -0
  208. package/dist/ai/McpClientError.js +260 -0
  209. package/dist/ai/McpClientError.js.map +1 -0
  210. package/dist/ai/McpProtocol.d.ts +2 -2
  211. package/dist/ai/McpProtocol.d.ts.map +1 -1
  212. package/dist/ai/McpSchema.d.ts +368 -235
  213. package/dist/ai/McpSchema.d.ts.map +1 -1
  214. package/dist/ai/McpSchema.js +94 -24
  215. package/dist/ai/McpSchema.js.map +1 -1
  216. package/dist/ai/McpServer.d.ts.map +1 -1
  217. package/dist/ai/McpServer.js +25 -22
  218. package/dist/ai/McpServer.js.map +1 -1
  219. package/dist/ai/Prompt.d.ts +22 -20
  220. package/dist/ai/Prompt.d.ts.map +1 -1
  221. package/dist/ai/Prompt.js +23 -1
  222. package/dist/ai/Prompt.js.map +1 -1
  223. package/dist/ai/Response.d.ts +147 -3
  224. package/dist/ai/Response.d.ts.map +1 -1
  225. package/dist/ai/Response.js +35 -37
  226. package/dist/ai/Response.js.map +1 -1
  227. package/dist/ai/Tool.d.ts +12 -4
  228. package/dist/ai/Tool.d.ts.map +1 -1
  229. package/dist/ai/Tool.js.map +1 -1
  230. package/dist/ai/Toolkit.d.ts +48 -1
  231. package/dist/ai/Toolkit.d.ts.map +1 -1
  232. package/dist/ai/Toolkit.js +65 -12
  233. package/dist/ai/Toolkit.js.map +1 -1
  234. package/dist/ai/index.d.ts +10 -0
  235. package/dist/ai/index.d.ts.map +1 -1
  236. package/dist/ai/index.js +10 -0
  237. package/dist/ai/index.js.map +1 -1
  238. package/dist/ai/internal/mcpCore.js.map +1 -1
  239. package/dist/ai/internal/mcpProtocol/v2024_11_05.js +1 -1
  240. package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
  241. package/dist/ai/internal/mcpProtocol/v2025_03_26.js +1 -1
  242. package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
  243. package/dist/ai/internal/mcpProtocol/v2025_06_18.js +2 -2
  244. package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
  245. package/dist/ai/internal/mcpProtocol/v2025_11_25.js +2 -2
  246. package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
  247. package/dist/ai/internal/mcpProtocol/v2026_07_28.js +4 -7
  248. package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
  249. package/dist/ai/internal/mcpProtocol.js +16 -2
  250. package/dist/ai/internal/mcpProtocol.js.map +1 -1
  251. package/dist/ai/internal/mcpRuntime.js +3 -4
  252. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  253. package/dist/ai/internal/mcpSchema/v2024_11_05.js +19 -13
  254. package/dist/ai/internal/mcpSchema/v2024_11_05.js.map +1 -1
  255. package/dist/ai/internal/mcpSchema/v2025_03_26.js +3 -2
  256. package/dist/ai/internal/mcpSchema/v2025_03_26.js.map +1 -1
  257. package/dist/ai/internal/mcpSchema/v2025_06_18.js +7 -7
  258. package/dist/ai/internal/mcpSchema/v2025_06_18.js.map +1 -1
  259. package/dist/ai/internal/mcpSchema/v2025_11_25.js +8 -8
  260. package/dist/ai/internal/mcpSchema/v2025_11_25.js.map +1 -1
  261. package/dist/ai/internal/mcpSchema/v2026_07_28.js +43 -42
  262. package/dist/ai/internal/mcpSchema/v2026_07_28.js.map +1 -1
  263. package/dist/cli/CliError.d.ts +42 -2
  264. package/dist/cli/CliError.d.ts.map +1 -1
  265. package/dist/cli/CliError.js +44 -5
  266. package/dist/cli/CliError.js.map +1 -1
  267. package/dist/cli/Command.d.ts +286 -2
  268. package/dist/cli/Command.d.ts.map +1 -1
  269. package/dist/cli/Command.js +107 -6
  270. package/dist/cli/Command.js.map +1 -1
  271. package/dist/cli/Completions.d.ts +5 -0
  272. package/dist/cli/Completions.d.ts.map +1 -1
  273. package/dist/cli/Completions.js.map +1 -1
  274. package/dist/cli/Flag.d.ts +115 -0
  275. package/dist/cli/Flag.d.ts.map +1 -1
  276. package/dist/cli/Flag.js +56 -0
  277. package/dist/cli/Flag.js.map +1 -1
  278. package/dist/cli/GlobalFlag.d.ts.map +1 -1
  279. package/dist/cli/GlobalFlag.js +3 -3
  280. package/dist/cli/GlobalFlag.js.map +1 -1
  281. package/dist/cli/Param.d.ts +107 -0
  282. package/dist/cli/Param.d.ts.map +1 -1
  283. package/dist/cli/Param.js +56 -0
  284. package/dist/cli/Param.js.map +1 -1
  285. package/dist/cli/TerminalCapabilities.d.ts +84 -0
  286. package/dist/cli/TerminalCapabilities.d.ts.map +1 -0
  287. package/dist/cli/TerminalCapabilities.js +122 -0
  288. package/dist/cli/TerminalCapabilities.js.map +1 -0
  289. package/dist/cli/index.d.ts +5 -0
  290. package/dist/cli/index.d.ts.map +1 -1
  291. package/dist/cli/index.js +5 -0
  292. package/dist/cli/index.js.map +1 -1
  293. package/dist/cli/internal/command.d.ts +2 -1
  294. package/dist/cli/internal/command.d.ts.map +1 -1
  295. package/dist/cli/internal/command.js +5 -2
  296. package/dist/cli/internal/command.js.map +1 -1
  297. package/dist/cli/internal/completions/bash.js +4 -3
  298. package/dist/cli/internal/completions/bash.js.map +1 -1
  299. package/dist/cli/internal/completions/descriptor.js +9 -1
  300. package/dist/cli/internal/completions/descriptor.js.map +1 -1
  301. package/dist/cli/internal/completions/fish.js +10 -8
  302. package/dist/cli/internal/completions/fish.js.map +1 -1
  303. package/dist/cli/internal/completions/powershell.js +18 -9
  304. package/dist/cli/internal/completions/powershell.js.map +1 -1
  305. package/dist/cli/internal/completions/zsh.js +8 -5
  306. package/dist/cli/internal/completions/zsh.js.map +1 -1
  307. package/dist/cli/internal/formatter.d.ts +2 -0
  308. package/dist/cli/internal/formatter.d.ts.map +1 -0
  309. package/dist/cli/internal/formatter.js +15 -0
  310. package/dist/cli/internal/formatter.js.map +1 -0
  311. package/dist/cli/internal/lexer.js +24 -10
  312. package/dist/cli/internal/lexer.js.map +1 -1
  313. package/dist/cli/internal/parser.js +24 -12
  314. package/dist/cli/internal/parser.js.map +1 -1
  315. package/dist/cluster/ClusterCron.d.ts +29 -1
  316. package/dist/cluster/ClusterCron.d.ts.map +1 -1
  317. package/dist/cluster/ClusterCron.js +64 -32
  318. package/dist/cluster/ClusterCron.js.map +1 -1
  319. package/dist/cluster/ClusterMetrics.d.ts +143 -7
  320. package/dist/cluster/ClusterMetrics.d.ts.map +1 -1
  321. package/dist/cluster/ClusterMetrics.js +151 -7
  322. package/dist/cluster/ClusterMetrics.js.map +1 -1
  323. package/dist/cluster/ClusterWorkflowEngine.d.ts +1 -1
  324. package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  325. package/dist/cluster/ClusterWorkflowEngine.js +37 -11
  326. package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
  327. package/dist/cluster/Entity.d.ts +2 -0
  328. package/dist/cluster/Entity.d.ts.map +1 -1
  329. package/dist/cluster/Entity.js.map +1 -1
  330. package/dist/cluster/MessageStorage.d.ts +21 -0
  331. package/dist/cluster/MessageStorage.d.ts.map +1 -1
  332. package/dist/cluster/MessageStorage.js.map +1 -1
  333. package/dist/cluster/Runners.d.ts.map +1 -1
  334. package/dist/cluster/Runners.js +54 -15
  335. package/dist/cluster/Runners.js.map +1 -1
  336. package/dist/cluster/Sharding.d.ts +1 -0
  337. package/dist/cluster/Sharding.d.ts.map +1 -1
  338. package/dist/cluster/Sharding.js +95 -32
  339. package/dist/cluster/Sharding.js.map +1 -1
  340. package/dist/cluster/ShardingConfig.d.ts +20 -0
  341. package/dist/cluster/ShardingConfig.d.ts.map +1 -1
  342. package/dist/cluster/ShardingConfig.js +4 -0
  343. package/dist/cluster/ShardingConfig.js.map +1 -1
  344. package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
  345. package/dist/cluster/SqlMessageStorage.js +40 -50
  346. package/dist/cluster/SqlMessageStorage.js.map +1 -1
  347. package/dist/cluster/SqlRunnerStorage.d.ts +2 -2
  348. package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
  349. package/dist/cluster/SqlRunnerStorage.js +10 -4
  350. package/dist/cluster/SqlRunnerStorage.js.map +1 -1
  351. package/dist/cluster/internal/entityManager.js +65 -8
  352. package/dist/cluster/internal/entityManager.js.map +1 -1
  353. package/dist/devtools/DevTools.d.ts +3 -2
  354. package/dist/devtools/DevTools.d.ts.map +1 -1
  355. package/dist/devtools/DevTools.js +3 -2
  356. package/dist/devtools/DevTools.js.map +1 -1
  357. package/dist/devtools/DevToolsClient.d.ts +11 -0
  358. package/dist/devtools/DevToolsClient.d.ts.map +1 -1
  359. package/dist/devtools/DevToolsClient.js +31 -4
  360. package/dist/devtools/DevToolsClient.js.map +1 -1
  361. package/dist/encoding/Base64Url.d.ts +29 -0
  362. package/dist/encoding/Base64Url.d.ts.map +1 -1
  363. package/dist/encoding/Base64Url.js +29 -0
  364. package/dist/encoding/Base64Url.js.map +1 -1
  365. package/dist/encoding/Ini.d.ts.map +1 -1
  366. package/dist/encoding/Ini.js +3 -0
  367. package/dist/encoding/Ini.js.map +1 -1
  368. package/dist/encoding/JsonArray.d.ts +270 -0
  369. package/dist/encoding/JsonArray.d.ts.map +1 -0
  370. package/dist/encoding/JsonArray.js +691 -0
  371. package/dist/encoding/JsonArray.js.map +1 -0
  372. package/dist/encoding/Ndjson.d.ts +43 -4
  373. package/dist/encoding/Ndjson.d.ts.map +1 -1
  374. package/dist/encoding/Ndjson.js +169 -18
  375. package/dist/encoding/Ndjson.js.map +1 -1
  376. package/dist/encoding/SchemaBinary.d.ts +9 -1
  377. package/dist/encoding/SchemaBinary.d.ts.map +1 -1
  378. package/dist/encoding/SchemaBinary.js +12 -19
  379. package/dist/encoding/SchemaBinary.js.map +1 -1
  380. package/dist/encoding/Tar.d.ts +309 -0
  381. package/dist/encoding/Tar.d.ts.map +1 -0
  382. package/dist/encoding/Tar.js +1182 -0
  383. package/dist/encoding/Tar.js.map +1 -0
  384. package/dist/encoding/Toml.js +3 -3
  385. package/dist/encoding/Toml.js.map +1 -1
  386. package/dist/encoding/Xml.d.ts +464 -0
  387. package/dist/encoding/Xml.d.ts.map +1 -0
  388. package/dist/encoding/Xml.js +1619 -0
  389. package/dist/encoding/Xml.js.map +1 -0
  390. package/dist/encoding/Yaml.d.ts +6 -2
  391. package/dist/encoding/Yaml.d.ts.map +1 -1
  392. package/dist/encoding/Yaml.js +97 -34
  393. package/dist/encoding/Yaml.js.map +1 -1
  394. package/dist/encoding/Zip.d.ts +413 -0
  395. package/dist/encoding/Zip.d.ts.map +1 -0
  396. package/dist/encoding/Zip.js +1255 -0
  397. package/dist/encoding/Zip.js.map +1 -0
  398. package/dist/encoding/index.d.ts +20 -0
  399. package/dist/encoding/index.d.ts.map +1 -1
  400. package/dist/encoding/index.js +20 -0
  401. package/dist/encoding/index.js.map +1 -1
  402. package/dist/eventlog/EventJournal.d.ts +90 -5
  403. package/dist/eventlog/EventJournal.d.ts.map +1 -1
  404. package/dist/eventlog/EventJournal.js +488 -228
  405. package/dist/eventlog/EventJournal.js.map +1 -1
  406. package/dist/eventlog/EventLog.d.ts +180 -12
  407. package/dist/eventlog/EventLog.d.ts.map +1 -1
  408. package/dist/eventlog/EventLog.js +394 -146
  409. package/dist/eventlog/EventLog.js.map +1 -1
  410. package/dist/eventlog/EventLogEncryption.d.ts +36 -30
  411. package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
  412. package/dist/eventlog/EventLogEncryption.js +97 -38
  413. package/dist/eventlog/EventLogEncryption.js.map +1 -1
  414. package/dist/eventlog/EventLogMessage.d.ts +74 -34
  415. package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
  416. package/dist/eventlog/EventLogMessage.js +45 -11
  417. package/dist/eventlog/EventLogMessage.js.map +1 -1
  418. package/dist/eventlog/EventLogRemote.d.ts +45 -8
  419. package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
  420. package/dist/eventlog/EventLogRemote.js +51 -14
  421. package/dist/eventlog/EventLogRemote.js.map +1 -1
  422. package/dist/eventlog/EventLogServer.d.ts +46 -3
  423. package/dist/eventlog/EventLogServer.d.ts.map +1 -1
  424. package/dist/eventlog/EventLogServer.js +119 -19
  425. package/dist/eventlog/EventLogServer.js.map +1 -1
  426. package/dist/eventlog/EventLogServerEncrypted.d.ts +23 -33
  427. package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  428. package/dist/eventlog/EventLogServerEncrypted.js +97 -70
  429. package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
  430. package/dist/eventlog/EventLogServerUnencrypted.d.ts +39 -5
  431. package/dist/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  432. package/dist/eventlog/EventLogServerUnencrypted.js +151 -69
  433. package/dist/eventlog/EventLogServerUnencrypted.js.map +1 -1
  434. package/dist/eventlog/EventRow.d.ts +288 -0
  435. package/dist/eventlog/EventRow.d.ts.map +1 -0
  436. package/dist/eventlog/EventRow.js +435 -0
  437. package/dist/eventlog/EventRow.js.map +1 -0
  438. package/dist/eventlog/SqlEventJournal.d.ts +18 -18
  439. package/dist/eventlog/SqlEventJournal.d.ts.map +1 -1
  440. package/dist/eventlog/SqlEventJournal.js +387 -159
  441. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  442. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +10 -18
  443. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
  444. package/dist/eventlog/SqlEventLogServerEncrypted.js +179 -69
  445. package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  446. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts +23 -3
  447. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
  448. package/dist/eventlog/SqlEventLogServerUnencrypted.js +102 -51
  449. package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  450. package/dist/eventlog/index.d.ts +5 -0
  451. package/dist/eventlog/index.d.ts.map +1 -1
  452. package/dist/eventlog/index.js +5 -0
  453. package/dist/eventlog/index.js.map +1 -1
  454. package/dist/eventlog/internal/conflicts.d.ts +47 -0
  455. package/dist/eventlog/internal/conflicts.d.ts.map +1 -0
  456. package/dist/eventlog/internal/conflicts.js +92 -0
  457. package/dist/eventlog/internal/conflicts.js.map +1 -0
  458. package/dist/graphql/GraphQLClientError.d.ts +2 -2
  459. package/dist/graphql/GraphQLClientError.d.ts.map +1 -1
  460. package/dist/graphql/GraphQLClientError.js +4 -18
  461. package/dist/graphql/GraphQLClientError.js.map +1 -1
  462. package/dist/graphql/GraphQLProtocol.d.ts +12 -9
  463. package/dist/graphql/GraphQLProtocol.d.ts.map +1 -1
  464. package/dist/graphql/GraphQLProtocol.js +4 -3
  465. package/dist/graphql/GraphQLProtocol.js.map +1 -1
  466. package/dist/graphql/GraphQLResolver.d.ts +2 -0
  467. package/dist/graphql/GraphQLResolver.d.ts.map +1 -1
  468. package/dist/graphql/GraphQLResolver.js +74 -32
  469. package/dist/graphql/GraphQLResolver.js.map +1 -1
  470. package/dist/http/FetchHttpClient.d.ts +8 -1
  471. package/dist/http/FetchHttpClient.d.ts.map +1 -1
  472. package/dist/http/FetchHttpClient.js +51 -4
  473. package/dist/http/FetchHttpClient.js.map +1 -1
  474. package/dist/http/FindMyWay/internal/router.js +10 -0
  475. package/dist/http/FindMyWay/internal/router.js.map +1 -1
  476. package/dist/http/Headers.d.ts +227 -0
  477. package/dist/http/Headers.d.ts.map +1 -1
  478. package/dist/http/Headers.js +261 -0
  479. package/dist/http/Headers.js.map +1 -1
  480. package/dist/http/HttpClient.d.ts +93 -0
  481. package/dist/http/HttpClient.d.ts.map +1 -1
  482. package/dist/http/HttpClient.js +55 -16
  483. package/dist/http/HttpClient.js.map +1 -1
  484. package/dist/http/HttpClientRequest.d.ts +127 -3
  485. package/dist/http/HttpClientRequest.d.ts.map +1 -1
  486. package/dist/http/HttpClientRequest.js +44 -2
  487. package/dist/http/HttpClientRequest.js.map +1 -1
  488. package/dist/http/HttpClientResponse.d.ts +53 -0
  489. package/dist/http/HttpClientResponse.d.ts.map +1 -1
  490. package/dist/http/HttpClientResponse.js +47 -0
  491. package/dist/http/HttpClientResponse.js.map +1 -1
  492. package/dist/http/HttpEffect.d.ts +6 -2
  493. package/dist/http/HttpEffect.d.ts.map +1 -1
  494. package/dist/http/HttpEffect.js +21 -17
  495. package/dist/http/HttpEffect.js.map +1 -1
  496. package/dist/http/HttpIncomingMessage.d.ts +2 -1
  497. package/dist/http/HttpIncomingMessage.d.ts.map +1 -1
  498. package/dist/http/HttpIncomingMessage.js +3 -23
  499. package/dist/http/HttpIncomingMessage.js.map +1 -1
  500. package/dist/http/HttpMiddleware.d.ts +119 -2
  501. package/dist/http/HttpMiddleware.d.ts.map +1 -1
  502. package/dist/http/HttpMiddleware.js +159 -13
  503. package/dist/http/HttpMiddleware.js.map +1 -1
  504. package/dist/http/HttpRouter.d.ts.map +1 -1
  505. package/dist/http/HttpRouter.js +7 -2
  506. package/dist/http/HttpRouter.js.map +1 -1
  507. package/dist/http/HttpServerError.d.ts +5 -2
  508. package/dist/http/HttpServerError.d.ts.map +1 -1
  509. package/dist/http/HttpServerError.js +5 -3
  510. package/dist/http/HttpServerError.js.map +1 -1
  511. package/dist/http/HttpServerRequest.d.ts +25 -5
  512. package/dist/http/HttpServerRequest.d.ts.map +1 -1
  513. package/dist/http/HttpServerRequest.js +36 -10
  514. package/dist/http/HttpServerRequest.js.map +1 -1
  515. package/dist/http/HttpServerResponse.d.ts +17 -8
  516. package/dist/http/HttpServerResponse.d.ts.map +1 -1
  517. package/dist/http/HttpServerResponse.js +37 -21
  518. package/dist/http/HttpServerResponse.js.map +1 -1
  519. package/dist/http/HttpStaticServer.d.ts +0 -12
  520. package/dist/http/HttpStaticServer.d.ts.map +1 -1
  521. package/dist/http/HttpStaticServer.js +21 -7
  522. package/dist/http/HttpStaticServer.js.map +1 -1
  523. package/dist/http/MultipartParser/internal/contentType.d.ts +15 -1
  524. package/dist/http/MultipartParser/internal/contentType.d.ts.map +1 -1
  525. package/dist/http/MultipartParser/internal/contentType.js +87 -5
  526. package/dist/http/MultipartParser/internal/contentType.js.map +1 -1
  527. package/dist/http/MultipartParser/internal/headers.d.ts.map +1 -1
  528. package/dist/http/MultipartParser/internal/headers.js +4 -12
  529. package/dist/http/MultipartParser/internal/headers.js.map +1 -1
  530. package/dist/http/MultipartParser/internal/multipart.d.ts.map +1 -1
  531. package/dist/http/MultipartParser/internal/multipart.js +6 -27
  532. package/dist/http/MultipartParser/internal/multipart.js.map +1 -1
  533. package/dist/http/Url.d.ts.map +1 -1
  534. package/dist/http/Url.js +6 -1
  535. package/dist/http/Url.js.map +1 -1
  536. package/dist/http/internal/decompression.js +17 -11
  537. package/dist/http/internal/decompression.js.map +1 -1
  538. package/dist/http/internal/lazyStream.d.ts +2 -0
  539. package/dist/http/internal/lazyStream.d.ts.map +1 -0
  540. package/dist/http/internal/lazyStream.js +18 -0
  541. package/dist/http/internal/lazyStream.js.map +1 -0
  542. package/dist/http/internal/requestState.d.ts +2 -0
  543. package/dist/http/internal/requestState.d.ts.map +1 -0
  544. package/dist/http/internal/requestState.js +28 -0
  545. package/dist/http/internal/requestState.js.map +1 -0
  546. package/dist/http/internal/webResponse.d.ts +2 -0
  547. package/dist/http/internal/webResponse.d.ts.map +1 -0
  548. package/dist/http/internal/webResponse.js +12 -0
  549. package/dist/http/internal/webResponse.js.map +1 -0
  550. package/dist/http-api/HttpApi.js +1 -1
  551. package/dist/http-api/HttpApi.js.map +1 -1
  552. package/dist/http-api/HttpApiBuilder.d.ts.map +1 -1
  553. package/dist/http-api/HttpApiBuilder.js +121 -18
  554. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  555. package/dist/http-api/HttpApiClient.d.ts +29 -4
  556. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  557. package/dist/http-api/HttpApiClient.js +83 -23
  558. package/dist/http-api/HttpApiClient.js.map +1 -1
  559. package/dist/http-api/HttpApiEndpoint.d.ts +55 -29
  560. package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
  561. package/dist/http-api/HttpApiEndpoint.js +49 -5
  562. package/dist/http-api/HttpApiEndpoint.js.map +1 -1
  563. package/dist/http-api/HttpApiError.d.ts +58 -0
  564. package/dist/http-api/HttpApiError.d.ts.map +1 -1
  565. package/dist/http-api/HttpApiError.js +38 -12
  566. package/dist/http-api/HttpApiError.js.map +1 -1
  567. package/dist/http-api/HttpApiScalar.d.ts +2 -1
  568. package/dist/http-api/HttpApiScalar.d.ts.map +1 -1
  569. package/dist/http-api/HttpApiScalar.js +6 -3
  570. package/dist/http-api/HttpApiScalar.js.map +1 -1
  571. package/dist/http-api/HttpApiSchema.d.ts +191 -9
  572. package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
  573. package/dist/http-api/HttpApiSchema.js +137 -4
  574. package/dist/http-api/HttpApiSchema.js.map +1 -1
  575. package/dist/http-api/HttpApiSwagger.d.ts +5 -0
  576. package/dist/http-api/HttpApiSwagger.d.ts.map +1 -1
  577. package/dist/http-api/HttpApiSwagger.js +14 -4
  578. package/dist/http-api/HttpApiSwagger.js.map +1 -1
  579. package/dist/http-api/HttpApiTest.d.ts +13 -2
  580. package/dist/http-api/HttpApiTest.d.ts.map +1 -1
  581. package/dist/http-api/HttpApiTest.js +30 -9
  582. package/dist/http-api/HttpApiTest.js.map +1 -1
  583. package/dist/http-api/OpenApi.d.ts +17 -3
  584. package/dist/http-api/OpenApi.d.ts.map +1 -1
  585. package/dist/http-api/OpenApi.js +57 -32
  586. package/dist/http-api/OpenApi.js.map +1 -1
  587. package/dist/http-api/internal/path.js +35 -10
  588. package/dist/http-api/internal/path.js.map +1 -1
  589. package/dist/index.d.ts +20 -0
  590. package/dist/index.d.ts.map +1 -1
  591. package/dist/index.js +20 -0
  592. package/dist/index.js.map +1 -1
  593. package/dist/internal/core.js +1 -1
  594. package/dist/internal/core.js.map +1 -1
  595. package/dist/internal/dateTime.js +19 -7
  596. package/dist/internal/dateTime.js.map +1 -1
  597. package/dist/internal/effect.js +85 -74
  598. package/dist/internal/effect.js.map +1 -1
  599. package/dist/internal/hashMap.js +2 -2
  600. package/dist/internal/hashMap.js.map +1 -1
  601. package/dist/internal/hydration.d.ts +2 -0
  602. package/dist/internal/hydration.d.ts.map +1 -0
  603. package/dist/internal/hydration.js +15 -0
  604. package/dist/internal/hydration.js.map +1 -0
  605. package/dist/internal/inflate.d.ts +2 -0
  606. package/dist/internal/inflate.d.ts.map +1 -0
  607. package/dist/internal/inflate.js +680 -0
  608. package/dist/internal/inflate.js.map +1 -0
  609. package/dist/internal/record.js +6 -0
  610. package/dist/internal/record.js.map +1 -1
  611. package/dist/internal/request.js +20 -7
  612. package/dist/internal/request.js.map +1 -1
  613. package/dist/internal/schedule.js +17 -22
  614. package/dist/internal/schedule.js.map +1 -1
  615. package/dist/internal/schema/fromJsonSchemaDocument.js +136 -126
  616. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  617. package/dist/internal/schema/interpreter.js +51 -36
  618. package/dist/internal/schema/interpreter.js.map +1 -1
  619. package/dist/internal/schema/standardSchema.js +34 -33
  620. package/dist/internal/schema/standardSchema.js.map +1 -1
  621. package/dist/internal/schema/toCodeDocument.js +7 -2
  622. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  623. package/dist/internal/schema/toCodec.js +86 -1
  624. package/dist/internal/schema/toCodec.js.map +1 -1
  625. package/dist/internal/schema/toFormatter.js +5 -5
  626. package/dist/internal/schema/toFormatter.js.map +1 -1
  627. package/dist/internal/schema/toJsonSchemaDocument.js +60 -38
  628. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
  629. package/dist/internal/trie.js +1 -3
  630. package/dist/internal/trie.js.map +1 -1
  631. package/dist/internal/uuid.js +7 -3
  632. package/dist/internal/uuid.js.map +1 -1
  633. package/dist/internal/version.js +1 -1
  634. package/dist/net/NetAddress.d.ts.map +1 -1
  635. package/dist/net/NetAddress.js +2 -8
  636. package/dist/net/NetAddress.js.map +1 -1
  637. package/dist/observability/OtlpExporter.d.ts.map +1 -1
  638. package/dist/observability/OtlpExporter.js +5 -12
  639. package/dist/observability/OtlpExporter.js.map +1 -1
  640. package/dist/observability/OtlpMetrics.d.ts.map +1 -1
  641. package/dist/observability/OtlpMetrics.js +5 -3
  642. package/dist/observability/OtlpMetrics.js.map +1 -1
  643. package/dist/observability/OtlpResource.d.ts +3 -1
  644. package/dist/observability/OtlpResource.d.ts.map +1 -1
  645. package/dist/observability/OtlpResource.js +11 -4
  646. package/dist/observability/OtlpResource.js.map +1 -1
  647. package/dist/observability/OtlpSerialization.d.ts +5 -0
  648. package/dist/observability/OtlpSerialization.d.ts.map +1 -1
  649. package/dist/observability/OtlpSerialization.js +14 -3
  650. package/dist/observability/OtlpSerialization.js.map +1 -1
  651. package/dist/observability/internal/protobuf.d.ts +0 -9
  652. package/dist/observability/internal/protobuf.d.ts.map +1 -1
  653. package/dist/observability/internal/protobuf.js +2 -10
  654. package/dist/observability/internal/protobuf.js.map +1 -1
  655. package/dist/persistence/PersistedCache.d.ts.map +1 -1
  656. package/dist/persistence/PersistedCache.js +1 -1
  657. package/dist/persistence/PersistedCache.js.map +1 -1
  658. package/dist/persistence/PersistedQueue.d.ts +6 -2
  659. package/dist/persistence/PersistedQueue.d.ts.map +1 -1
  660. package/dist/persistence/PersistedQueue.js +162 -84
  661. package/dist/persistence/PersistedQueue.js.map +1 -1
  662. package/dist/persistence/Persistence.d.ts +28 -0
  663. package/dist/persistence/Persistence.d.ts.map +1 -1
  664. package/dist/persistence/Persistence.js +36 -8
  665. package/dist/persistence/Persistence.js.map +1 -1
  666. package/dist/persistence/RateLimiter.d.ts.map +1 -1
  667. package/dist/persistence/RateLimiter.js +8 -12
  668. package/dist/persistence/RateLimiter.js.map +1 -1
  669. package/dist/persistence/UserDirectories.d.ts +129 -0
  670. package/dist/persistence/UserDirectories.d.ts.map +1 -0
  671. package/dist/persistence/UserDirectories.js +178 -0
  672. package/dist/persistence/UserDirectories.js.map +1 -0
  673. package/dist/persistence/index.d.ts +5 -0
  674. package/dist/persistence/index.d.ts.map +1 -1
  675. package/dist/persistence/index.js +5 -0
  676. package/dist/persistence/index.js.map +1 -1
  677. package/dist/process/ChildProcess.d.ts +2 -1
  678. package/dist/process/ChildProcess.d.ts.map +1 -1
  679. package/dist/process/ChildProcess.js.map +1 -1
  680. package/dist/reactivity/AsyncResult.d.ts.map +1 -1
  681. package/dist/reactivity/AsyncResult.js +1 -1
  682. package/dist/reactivity/AsyncResult.js.map +1 -1
  683. package/dist/reactivity/Atom.d.ts +69 -30
  684. package/dist/reactivity/Atom.d.ts.map +1 -1
  685. package/dist/reactivity/Atom.js +40 -15
  686. package/dist/reactivity/Atom.js.map +1 -1
  687. package/dist/reactivity/AtomHttpApi.d.ts +5 -5
  688. package/dist/reactivity/AtomHttpApi.d.ts.map +1 -1
  689. package/dist/reactivity/AtomHttpApi.js +1 -1
  690. package/dist/reactivity/AtomHttpApi.js.map +1 -1
  691. package/dist/reactivity/AtomRegistry.d.ts +2 -2
  692. package/dist/reactivity/AtomRegistry.d.ts.map +1 -1
  693. package/dist/reactivity/AtomRegistry.js +44 -9
  694. package/dist/reactivity/AtomRegistry.js.map +1 -1
  695. package/dist/reactivity/AtomRpc.d.ts +3 -3
  696. package/dist/reactivity/AtomRpc.d.ts.map +1 -1
  697. package/dist/reactivity/AtomRpc.js +1 -1
  698. package/dist/reactivity/AtomRpc.js.map +1 -1
  699. package/dist/reactivity/Hydration.d.ts.map +1 -1
  700. package/dist/reactivity/Hydration.js +46 -12
  701. package/dist/reactivity/Hydration.js.map +1 -1
  702. package/dist/reactivity/Reactivity.d.ts +71 -7
  703. package/dist/reactivity/Reactivity.d.ts.map +1 -1
  704. package/dist/reactivity/Reactivity.js +21 -12
  705. package/dist/reactivity/Reactivity.js.map +1 -1
  706. package/dist/rpc/Rpc.d.ts +18 -0
  707. package/dist/rpc/Rpc.d.ts.map +1 -1
  708. package/dist/rpc/Rpc.js +20 -0
  709. package/dist/rpc/Rpc.js.map +1 -1
  710. package/dist/rpc/RpcClient.d.ts +26 -2
  711. package/dist/rpc/RpcClient.d.ts.map +1 -1
  712. package/dist/rpc/RpcClient.js +196 -60
  713. package/dist/rpc/RpcClient.js.map +1 -1
  714. package/dist/rpc/RpcSerialization.d.ts +15 -0
  715. package/dist/rpc/RpcSerialization.d.ts.map +1 -1
  716. package/dist/rpc/RpcSerialization.js +21 -5
  717. package/dist/rpc/RpcSerialization.js.map +1 -1
  718. package/dist/rpc/RpcServer.d.ts.map +1 -1
  719. package/dist/rpc/RpcServer.js +9 -18
  720. package/dist/rpc/RpcServer.js.map +1 -1
  721. package/dist/schema/Model.d.ts +1 -1
  722. package/dist/schema/VariantSchema.d.ts +22 -3
  723. package/dist/schema/VariantSchema.d.ts.map +1 -1
  724. package/dist/schema/VariantSchema.js +32 -18
  725. package/dist/schema/VariantSchema.js.map +1 -1
  726. package/dist/socket/Socket.d.ts +23 -1
  727. package/dist/socket/Socket.d.ts.map +1 -1
  728. package/dist/socket/Socket.js +36 -3
  729. package/dist/socket/Socket.js.map +1 -1
  730. package/dist/sql/Migrator.d.ts.map +1 -1
  731. package/dist/sql/Migrator.js +15 -3
  732. package/dist/sql/Migrator.js.map +1 -1
  733. package/dist/sql/SqlClient.d.ts +143 -5
  734. package/dist/sql/SqlClient.d.ts.map +1 -1
  735. package/dist/sql/SqlClient.js +148 -27
  736. package/dist/sql/SqlClient.js.map +1 -1
  737. package/dist/sql/SqlResolver.d.ts +9 -0
  738. package/dist/sql/SqlResolver.d.ts.map +1 -1
  739. package/dist/sql/SqlResolver.js +9 -0
  740. package/dist/sql/SqlResolver.js.map +1 -1
  741. package/dist/sql/Statement.d.ts +3 -1
  742. package/dist/sql/Statement.d.ts.map +1 -1
  743. package/dist/sql/Statement.js +24 -5
  744. package/dist/sql/Statement.js.map +1 -1
  745. package/dist/testing/TestClock.d.ts.map +1 -1
  746. package/dist/testing/TestClock.js +4 -2
  747. package/dist/testing/TestClock.js.map +1 -1
  748. package/dist/testing/TestSchema.d.ts +7 -1
  749. package/dist/testing/TestSchema.d.ts.map +1 -1
  750. package/dist/testing/TestSchema.js +9 -3
  751. package/dist/testing/TestSchema.js.map +1 -1
  752. package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
  753. package/dist/workflow/WorkflowEngine.js +18 -4
  754. package/dist/workflow/WorkflowEngine.js.map +1 -1
  755. package/package.json +13 -3
  756. package/src/Array.ts +128 -55
  757. package/src/Bytes.ts +111 -0
  758. package/src/Channel.ts +263 -436
  759. package/src/ChannelSchema.ts +1 -49
  760. package/src/Chunk.ts +55 -61
  761. package/src/Config.ts +12 -86
  762. package/src/ConfigProvider.ts +2 -1
  763. package/src/Cron.ts +6 -3
  764. package/src/Duration.ts +66 -16
  765. package/src/Effect.ts +502 -167
  766. package/src/Equivalence.ts +7 -4
  767. package/src/Exit.ts +24 -9
  768. package/src/FiberHandle.ts +10 -9
  769. package/src/FiberMap.ts +13 -66
  770. package/src/FileSystem.ts +10 -0
  771. package/src/Graph.ts +171 -1263
  772. package/src/HashSet.ts +0 -60
  773. package/src/Iterable.ts +15 -14
  774. package/src/JsonSchema.ts +28 -3
  775. package/src/Layer.ts +2 -2
  776. package/src/ManagedRuntime.ts +72 -6
  777. package/src/Metric.ts +249 -507
  778. package/src/MutableHashMap.ts +4 -473
  779. package/src/Number.ts +2 -2
  780. package/src/Optic.ts +17 -332
  781. package/src/Path.ts +9 -1
  782. package/src/PubSub.ts +12 -7
  783. package/src/Queue.ts +5 -37
  784. package/src/Random.ts +1 -1
  785. package/src/RcMap.ts +14 -8
  786. package/src/Record.ts +51 -0
  787. package/src/Ref.ts +7 -104
  788. package/src/References.ts +5 -4
  789. package/src/RequestResolver.ts +46 -87
  790. package/src/Resource.ts +1 -1
  791. package/src/Runtime.ts +19 -18
  792. package/src/Schedule.ts +2 -94
  793. package/src/Schema.ts +591 -356
  794. package/src/SchemaAST.ts +20 -9
  795. package/src/SchemaGetter.ts +22 -5
  796. package/src/SchemaIssue.ts +44 -53
  797. package/src/SchemaRepresentation.ts +64 -1
  798. package/src/SchemaTransformation.ts +1 -1
  799. package/src/Scope.ts +12 -2
  800. package/src/ScopedCache.ts +17 -142
  801. package/src/SemVer.ts +1528 -0
  802. package/src/SemVerRange.ts +883 -0
  803. package/src/Sink.ts +6 -2
  804. package/src/Stream.ts +334 -1011
  805. package/src/String.ts +8 -8
  806. package/src/TextDiff.ts +766 -0
  807. package/src/TxHashMap.ts +1 -103
  808. package/src/TxHashSet.ts +48 -753
  809. package/src/ai/AiError.ts +66 -4
  810. package/src/ai/Chat.ts +10 -5
  811. package/src/ai/Decision.ts +49 -1
  812. package/src/ai/DecisionModel.ts +264 -108
  813. package/src/ai/EmbeddingModel.ts +25 -13
  814. package/src/ai/McpClient.ts +1211 -0
  815. package/src/ai/McpClientError.ts +329 -0
  816. package/src/ai/McpProtocol.ts +2 -2
  817. package/src/ai/McpSchema.ts +153 -35
  818. package/src/ai/McpServer.ts +217 -220
  819. package/src/ai/Prompt.ts +49 -35
  820. package/src/ai/Response.ts +195 -65
  821. package/src/ai/Tool.ts +12 -4
  822. package/src/ai/Toolkit.ts +78 -10
  823. package/src/ai/index.ts +12 -0
  824. package/src/ai/internal/mcpCore.ts +13 -14
  825. package/src/ai/internal/mcpProtocol/v2024_11_05.ts +1 -1
  826. package/src/ai/internal/mcpProtocol/v2025_03_26.ts +1 -1
  827. package/src/ai/internal/mcpProtocol/v2025_06_18.ts +3 -3
  828. package/src/ai/internal/mcpProtocol/v2025_11_25.ts +3 -3
  829. package/src/ai/internal/mcpProtocol/v2026_07_28.ts +12 -14
  830. package/src/ai/internal/mcpProtocol.ts +22 -2
  831. package/src/ai/internal/mcpRuntime.ts +3 -4
  832. package/src/ai/internal/mcpSchema/v2024_11_05.ts +20 -13
  833. package/src/ai/internal/mcpSchema/v2025_03_26.ts +4 -2
  834. package/src/ai/internal/mcpSchema/v2025_06_18.ts +7 -7
  835. package/src/ai/internal/mcpSchema/v2025_11_25.ts +8 -8
  836. package/src/ai/internal/mcpSchema/v2026_07_28.ts +44 -42
  837. package/src/cli/CliError.ts +49 -4
  838. package/src/cli/Command.ts +316 -9
  839. package/src/cli/Completions.ts +5 -0
  840. package/src/cli/Flag.ts +117 -0
  841. package/src/cli/GlobalFlag.ts +3 -3
  842. package/src/cli/Param.ts +122 -0
  843. package/src/cli/TerminalCapabilities.ts +156 -0
  844. package/src/cli/index.ts +6 -0
  845. package/src/cli/internal/command.ts +8 -3
  846. package/src/cli/internal/completions/bash.ts +4 -3
  847. package/src/cli/internal/completions/descriptor.ts +11 -1
  848. package/src/cli/internal/completions/fish.ts +10 -8
  849. package/src/cli/internal/completions/powershell.ts +23 -14
  850. package/src/cli/internal/completions/zsh.ts +8 -5
  851. package/src/cli/internal/formatter.ts +18 -0
  852. package/src/cli/internal/lexer.ts +12 -5
  853. package/src/cli/internal/parser.ts +31 -11
  854. package/src/cluster/ClusterCron.ts +94 -35
  855. package/src/cluster/ClusterMetrics.ts +149 -7
  856. package/src/cluster/ClusterWorkflowEngine.ts +84 -41
  857. package/src/cluster/Entity.ts +4 -0
  858. package/src/cluster/MessageStorage.ts +7 -0
  859. package/src/cluster/Runners.ts +76 -25
  860. package/src/cluster/Sharding.ts +118 -38
  861. package/src/cluster/ShardingConfig.ts +15 -0
  862. package/src/cluster/SqlMessageStorage.ts +58 -55
  863. package/src/cluster/SqlRunnerStorage.ts +10 -4
  864. package/src/cluster/internal/entityManager.ts +80 -10
  865. package/src/devtools/DevTools.ts +3 -2
  866. package/src/devtools/DevToolsClient.ts +27 -10
  867. package/src/encoding/Base64Url.ts +31 -0
  868. package/src/encoding/Ini.ts +3 -0
  869. package/src/encoding/JsonArray.ts +849 -0
  870. package/src/encoding/Ndjson.ts +211 -20
  871. package/src/encoding/SchemaBinary.ts +14 -48
  872. package/src/encoding/Tar.ts +1417 -0
  873. package/src/encoding/Toml.ts +3 -3
  874. package/src/encoding/Xml.ts +2037 -0
  875. package/src/encoding/Yaml.ts +108 -36
  876. package/src/encoding/Zip.ts +1558 -0
  877. package/src/encoding/index.ts +24 -0
  878. package/src/eventlog/EventJournal.ts +611 -227
  879. package/src/eventlog/EventLog.ts +496 -196
  880. package/src/eventlog/EventLogEncryption.ts +128 -43
  881. package/src/eventlog/EventLogMessage.ts +62 -11
  882. package/src/eventlog/EventLogRemote.ts +77 -21
  883. package/src/eventlog/EventLogServer.ts +162 -20
  884. package/src/eventlog/EventLogServerEncrypted.ts +121 -80
  885. package/src/eventlog/EventLogServerUnencrypted.ts +180 -77
  886. package/src/eventlog/EventRow.ts +706 -0
  887. package/src/eventlog/SqlEventJournal.ts +453 -173
  888. package/src/eventlog/SqlEventLogServerEncrypted.ts +212 -83
  889. package/src/eventlog/SqlEventLogServerUnencrypted.ts +141 -62
  890. package/src/eventlog/index.ts +6 -0
  891. package/src/eventlog/internal/conflicts.ts +123 -0
  892. package/src/graphql/GraphQLClientError.ts +5 -12
  893. package/src/graphql/GraphQLProtocol.ts +12 -9
  894. package/src/graphql/GraphQLResolver.ts +90 -239
  895. package/src/http/FetchHttpClient.ts +56 -6
  896. package/src/http/FindMyWay/internal/router.ts +11 -0
  897. package/src/http/Headers.ts +337 -154
  898. package/src/http/HttpClient.ts +126 -135
  899. package/src/http/HttpClientRequest.ts +142 -4
  900. package/src/http/HttpClientResponse.ts +71 -0
  901. package/src/http/HttpEffect.ts +25 -33
  902. package/src/http/HttpIncomingMessage.ts +3 -23
  903. package/src/http/HttpMiddleware.ts +180 -23
  904. package/src/http/HttpRouter.ts +8 -2
  905. package/src/http/HttpServerError.ts +6 -3
  906. package/src/http/HttpServerRequest.ts +71 -12
  907. package/src/http/HttpServerResponse.ts +49 -23
  908. package/src/http/HttpStaticServer.ts +25 -9
  909. package/src/http/MultipartParser/internal/contentType.ts +107 -6
  910. package/src/http/MultipartParser/internal/headers.ts +4 -16
  911. package/src/http/MultipartParser/internal/multipart.ts +10 -32
  912. package/src/http/Url.ts +6 -1
  913. package/src/http/internal/decompression.ts +26 -17
  914. package/src/http/internal/lazyStream.ts +25 -0
  915. package/src/http/internal/requestState.ts +33 -0
  916. package/src/http/internal/webResponse.ts +20 -0
  917. package/src/http-api/HttpApi.ts +1 -1
  918. package/src/http-api/HttpApiBuilder.ts +151 -23
  919. package/src/http-api/HttpApiClient.ts +158 -30
  920. package/src/http-api/HttpApiEndpoint.ts +144 -33
  921. package/src/http-api/HttpApiError.ts +55 -0
  922. package/src/http-api/HttpApiScalar.ts +4 -3
  923. package/src/http-api/HttpApiSchema.ts +275 -13
  924. package/src/http-api/HttpApiSwagger.ts +11 -4
  925. package/src/http-api/HttpApiTest.ts +33 -9
  926. package/src/http-api/OpenApi.ts +84 -42
  927. package/src/http-api/internal/path.ts +40 -12
  928. package/src/index.ts +24 -0
  929. package/src/internal/core.ts +1 -1
  930. package/src/internal/dateTime.ts +20 -7
  931. package/src/internal/effect.ts +120 -84
  932. package/src/internal/hashMap.ts +2 -2
  933. package/src/internal/hydration.ts +15 -0
  934. package/src/internal/inflate.ts +710 -0
  935. package/src/internal/record.ts +6 -0
  936. package/src/internal/request.ts +21 -6
  937. package/src/internal/schedule.ts +20 -39
  938. package/src/internal/schema/fromJsonSchemaDocument.ts +262 -193
  939. package/src/internal/schema/interpreter.ts +58 -45
  940. package/src/internal/schema/standardSchema.ts +32 -30
  941. package/src/internal/schema/toCodeDocument.ts +8 -3
  942. package/src/internal/schema/toCodec.ts +116 -1
  943. package/src/internal/schema/toFormatter.ts +6 -6
  944. package/src/internal/schema/toJsonSchemaDocument.ts +69 -39
  945. package/src/internal/trie.ts +1 -3
  946. package/src/internal/uuid.ts +15 -10
  947. package/src/internal/version.ts +1 -1
  948. package/src/net/NetAddress.ts +2 -9
  949. package/src/observability/OtlpExporter.ts +5 -12
  950. package/src/observability/OtlpMetrics.ts +5 -3
  951. package/src/observability/OtlpResource.ts +16 -6
  952. package/src/observability/OtlpSerialization.ts +17 -3
  953. package/src/observability/internal/protobuf.ts +2 -10
  954. package/src/persistence/PersistedCache.ts +3 -1
  955. package/src/persistence/PersistedQueue.ts +223 -153
  956. package/src/persistence/Persistence.ts +64 -30
  957. package/src/persistence/RateLimiter.ts +18 -21
  958. package/src/persistence/UserDirectories.ts +273 -0
  959. package/src/persistence/index.ts +6 -0
  960. package/src/process/ChildProcess.ts +2 -1
  961. package/src/reactivity/AsyncResult.ts +4 -38
  962. package/src/reactivity/Atom.ts +134 -166
  963. package/src/reactivity/AtomHttpApi.ts +10 -16
  964. package/src/reactivity/AtomRegistry.ts +50 -29
  965. package/src/reactivity/AtomRpc.ts +6 -22
  966. package/src/reactivity/Hydration.ts +53 -12
  967. package/src/reactivity/Reactivity.ts +97 -39
  968. package/src/rpc/Rpc.ts +21 -0
  969. package/src/rpc/RpcClient.ts +279 -103
  970. package/src/rpc/RpcSerialization.ts +21 -5
  971. package/src/rpc/RpcServer.ts +11 -20
  972. package/src/schema/VariantSchema.ts +86 -22
  973. package/src/socket/Socket.ts +45 -20
  974. package/src/sql/Migrator.ts +19 -9
  975. package/src/sql/SqlClient.ts +266 -29
  976. package/src/sql/SqlResolver.ts +9 -0
  977. package/src/sql/Statement.ts +35 -8
  978. package/src/testing/TestClock.ts +4 -1
  979. package/src/testing/TestSchema.ts +9 -3
  980. package/src/workflow/WorkflowEngine.ts +34 -10
  981. package/dist/http/internal/preResponseHandler.d.ts +0 -2
  982. package/dist/http/internal/preResponseHandler.d.ts.map +0 -1
  983. package/dist/http/internal/preResponseHandler.js +0 -14
  984. package/dist/http/internal/preResponseHandler.js.map +0 -1
  985. package/src/http/internal/preResponseHandler.ts +0 -19
@@ -0,0 +1,435 @@
1
+ /**
2
+ * Mutable rows that converge across event-log replicas.
3
+ *
4
+ * Each row type has one event with `set`, `patch` and `remove` payloads, keyed
5
+ * by one or more of its fields. Pass the result of `make` to `EventGroup.add`.
6
+ * Its `set`, `patch` and `remove` constructors return `{ event, payload }`,
7
+ * which spreads into `EventLog.write` and serves as an item of
8
+ * `EventLog.writeMany` or an argument of an `EventLog.makeClient` client.
9
+ *
10
+ * `handler` resolves conflicts per top-level field and calls at most one
11
+ * storage callback. Replicas converge to the result of applying entries in
12
+ * id order. `compaction` drops entries that newer ones shadow.
13
+ *
14
+ * **Details**
15
+ *
16
+ * Replay decodes entries and stored conflicts with the current row schema,
17
+ * which must accept every encoding previously written:
18
+ *
19
+ * - New fields must accept absence, for example with
20
+ * `Schema.withDecodingDefaultKey`. Nullable fields alone reject old `set`
21
+ * entries. Patches never apply defaults.
22
+ * - Removing a field is safe. Old entries decode without it.
23
+ * - To change a field's type, keep its encoded type and change its decoded
24
+ * type with a transformation, such as `Schema.NumberFromString` for a field
25
+ * that used to be a string.
26
+ * - Making a field required, renaming it, narrowing its type, changing its
27
+ * encoded type or changing the key breaks old entries. That includes
28
+ * widening a field to a union of its old and new types, because union
29
+ * encodings are tagged. A rename keeps old entries readable only if the
30
+ * field has an explicit `SchemaBinary.fieldId`.
31
+ * - Key-field schemas must decode written values to ones with the same
32
+ * primary key, since replicas derive the key from decoded values.
33
+ *
34
+ * Conflicts are scoped to one row; parent removal does not resolve concurrent
35
+ * child writes. For cascading deletion, retain a removed-parent marker and
36
+ * delete its children in the parent `remove` callback. The `remove` callback
37
+ * writes the marker even when the parent was never stored, since compaction
38
+ * or a newer `remove` can skip its `set`, and the marker must not depend on
39
+ * the old row. A parent `patch` treats a marker as a missing row. Child `set`
40
+ * and `patch` callbacks must skip marked parents but allow parents not yet
41
+ * received. Make the parent id part of the child key, as in
42
+ * `fields: ["parentId", "id"]`, so a child cannot move between parents. This
43
+ * converges only if parent deletion is final (no key reuse). Queries must
44
+ * exclude marked parents. Retain markers unless the app defines a safe cutoff
45
+ * for removing them.
46
+ *
47
+ * **Example** (Syncing grocery rows)
48
+ *
49
+ * ```ts
50
+ * import { Effect, Schema } from "effect"
51
+ * import { EventGroup, EventLog, EventRow } from "effect/eventlog"
52
+ *
53
+ * const Grocery = EventRow.make("grocery", {
54
+ * key: "id",
55
+ * schema: Schema.Struct({
56
+ * id: Schema.String,
57
+ * name: Schema.String,
58
+ * completed: Schema.Boolean
59
+ * })
60
+ * })
61
+ *
62
+ * const Groceries = EventGroup.empty.add(Grocery)
63
+ *
64
+ * const store = new Map<string, typeof Grocery.schema.Type>()
65
+ *
66
+ * export const GroceriesLive = EventLog.group(Groceries, (handlers) =>
67
+ * handlers.handle(
68
+ * "grocery",
69
+ * EventRow.handler(Grocery, {
70
+ * set: (row) => Effect.sync(() => store.set(row.id, row)),
71
+ * patch: (id, fields) =>
72
+ * Effect.sync(() => {
73
+ * const row = store.get(id)
74
+ * if (row !== undefined) store.set(id, { ...row, ...fields })
75
+ * }),
76
+ * remove: (id) => Effect.sync(() => store.delete(id))
77
+ * })
78
+ * ))
79
+ *
80
+ * export const complete = Effect.fnUntraced(function*(id: string) {
81
+ * const log = yield* EventLog.EventLog
82
+ * yield* log.write({
83
+ * schema: EventLog.schema(Groceries),
84
+ * ...Grocery.patch(id, { completed: true })
85
+ * })
86
+ * })
87
+ * ```
88
+ *
89
+ * **Example** (Evolving a row schema)
90
+ *
91
+ * ```ts import.meta.vitest
92
+ * import { Effect, Schema } from "effect"
93
+ * import { EventGroup, EventRow } from "effect/eventlog"
94
+ *
95
+ * const ItemV1 = EventRow.make("item", {
96
+ * key: "id",
97
+ * schema: Schema.Struct({ id: Schema.String, quantity: Schema.String })
98
+ * })
99
+ *
100
+ * // Adds a nullable field and reads the old string quantity as a number.
101
+ * const ItemV2 = EventRow.make("item", {
102
+ * key: "id",
103
+ * schema: Schema.Struct({
104
+ * id: Schema.String,
105
+ * quantity: Schema.NumberFromString,
106
+ * note: Schema.NullOr(Schema.String).pipe(
107
+ * Schema.withDecodingDefaultKey(Effect.succeed(null))
108
+ * )
109
+ * })
110
+ * })
111
+ *
112
+ * const v1 = EventGroup.empty.add(ItemV1).events.item.payloadSchemaBinary
113
+ * const v2 = EventGroup.empty.add(ItemV2).events.item.payloadSchemaBinary
114
+ *
115
+ * const written = Schema.encodeUnknownSync(v1)(ItemV1.set({ id: "a", quantity: "3" }).payload)
116
+ * const decoded = Schema.decodeUnknownSync(v2)(written)
117
+ * decoded // => { _tag: "set", row: { id: "a", quantity: 3, note: null } }
118
+ * ```
119
+ *
120
+ * @stability unstable
121
+ * @since 4.0.6
122
+ */
123
+ import * as Context from "../Context.js";
124
+ import * as Effect from "../Effect.js";
125
+ import * as SchemaBinary from "../encoding/SchemaBinary.js";
126
+ import * as Layer from "../Layer.js";
127
+ import * as Result from "../Result.js";
128
+ import * as Schema from "../Schema.js";
129
+ import * as SchemaGetter from "../SchemaGetter.js";
130
+ import * as SchemaIssue from "../SchemaIssue.js";
131
+ import * as SchemaParser from "../SchemaParser.js";
132
+ import * as Struct from "../Struct.js";
133
+ import { Entry } from "./EventJournal.js";
134
+ import * as EventLog from "./EventLog.js";
135
+ /**
136
+ * Defines a row type as a single event.
137
+ *
138
+ * **Details**
139
+ *
140
+ * `key` names a required field, or declares required fields with an
141
+ * optional `derive` function. `patch`, `remove` and the handler callbacks take
142
+ * the key as typed values: the field's value for a single field, and a struct
143
+ * of the fields for a declaration. Key fields cannot be patched. To move a
144
+ * row, remove it and set it again.
145
+ *
146
+ * A single-field key must be a {@link DefaultKeyField}. Declare other fields
147
+ * with a `derive` function.
148
+ *
149
+ * `keyOf` computes the primary key that conflicts are grouped by: the value
150
+ * of a string single-field key, the result of `derive`, or else the JSON
151
+ * tuple of the key fields' JSON encodings. `-0` and `0` are the same key.
152
+ *
153
+ * Last-writer-wins applies to top-level fields. Nested values are atomic, so
154
+ * concurrent updates within one nested value do not merge.
155
+ *
156
+ * `error` is the error schema of the event. Handler callbacks can fail with it.
157
+ *
158
+ * **Gotchas**
159
+ *
160
+ * Do not compact row events with `EventLog.groupCompaction` or
161
+ * `EventLog.groupBatchCompaction`. Compaction runs before stored conflicts
162
+ * are read, so merging row ops loses or misapplies writes. Use
163
+ * {@link compaction}, which only drops entries that newer ones shadow.
164
+ *
165
+ * For multi-row operations, use `EventLog.writeMany` with one op per row.
166
+ *
167
+ * @stability unstable
168
+ * @category constructors
169
+ * @since 4.0.6
170
+ */
171
+ export const make = (tag, options) => {
172
+ const fields = options.schema.fields;
173
+ const key = typeof options.key === "string" ? scalarKey(options.key, fields[options.key]) : declaredKey(options.key, fields);
174
+ const patchFields = {};
175
+ for (const name of Object.keys(fields)) {
176
+ if (!key.fields.includes(name)) patchFields[name] = patchField(fields[name]);
177
+ }
178
+ const payload = Schema.Union([Schema.TaggedStruct("set", {
179
+ row: options.schema
180
+ }), Schema.TaggedStruct("patch", {
181
+ key: key.schema,
182
+ fields: Schema.Struct(patchFields)
183
+ }), Schema.TaggedStruct("remove", {
184
+ key: key.schema
185
+ })]);
186
+ return {
187
+ tag,
188
+ keyFields: key.fields,
189
+ schema: options.schema,
190
+ keyOf: key.primaryKey,
191
+ [keyFromId]: key.fromRow,
192
+ primaryKey: payload => key.primaryKey(payload._tag === "set" ? payload.row : key.toValues(payload.key)),
193
+ payload,
194
+ success: Schema.Void,
195
+ error: options.error ?? Schema.Never,
196
+ set: row => ({
197
+ event: tag,
198
+ payload: {
199
+ _tag: "set",
200
+ row
201
+ }
202
+ }),
203
+ patch: (key, fields) => ({
204
+ event: tag,
205
+ payload: {
206
+ _tag: "patch",
207
+ key,
208
+ fields
209
+ }
210
+ }),
211
+ remove: key => ({
212
+ event: tag,
213
+ payload: {
214
+ _tag: "remove",
215
+ key
216
+ }
217
+ })
218
+ };
219
+ };
220
+ /**
221
+ * Builds the handler for a row event, to pass to `handlers.handle`.
222
+ *
223
+ * **Details**
224
+ *
225
+ * Resolves newer conflicts in id order and calls at most one callback with
226
+ * typed values and key, never conflicts.
227
+ *
228
+ * Newer writes take precedence per top-level field. Empty patches and entries
229
+ * with nothing left to write skip the callback but are still journaled and synced.
230
+ * A late `set` retains newer patches, including when the row is missing.
231
+ *
232
+ * Decodes stored entry bytes so local writes and replay pass the same values
233
+ * to callbacks, stripping keys outside the schema at any depth. Requires the
234
+ * payload schema's decoding services, plus any services the callbacks require.
235
+ * Callbacks may fail with the event's error type; success is always `void`.
236
+ *
237
+ * **Gotchas**
238
+ *
239
+ * Convergence requires this callback contract:
240
+ *
241
+ * - `set` replaces the whole row, creating it if it is missing.
242
+ * - `patch` updates an existing row and does nothing if the row is missing.
243
+ * Upserting can resurrect removed rows on only some replicas.
244
+ * - `remove` is idempotent.
245
+ *
246
+ * @stability unstable
247
+ * @category handlers
248
+ * @since 4.0.6
249
+ */
250
+ export const handler = (row, callbacks) => {
251
+ const decode = Schema.decodeUnknownEffect(SchemaBinary.toCodec(row.payload));
252
+ const keyFrom = row[keyFromId];
253
+ return options => Effect.flatMap(Effect.orDie(decode(options.entry.payload)), payload => {
254
+ const op = resolve(payload, options.conflicts);
255
+ if (op === undefined) return Effect.void;
256
+ switch (op._tag) {
257
+ case "set":
258
+ return callbacks.set(op.row, keyFrom(op.row));
259
+ case "patch":
260
+ return Object.keys(op.fields).length === 0 ? Effect.void : callbacks.patch(op.key, op.fields);
261
+ case "remove":
262
+ return callbacks.remove(op.key);
263
+ }
264
+ }).pipe(Effect.asVoid);
265
+ };
266
+ /**
267
+ * Registers a compactor for one row event of a group.
268
+ *
269
+ * **Details**
270
+ *
271
+ * Drops entries superseded within the same remote batch and row by a newer
272
+ * `set` or `remove`. A `patch` is also dropped when newer patches together
273
+ * overwrite all its fields. Kept entries retain their ids and stored conflicts.
274
+ *
275
+ * A `set` or `remove` followed only by patches is kept: without it, the
276
+ * patches would apply to a different row, or to none. Entries that fail to
277
+ * decode are kept.
278
+ *
279
+ * Leaves other events' compactors unchanged. Register one compactor per row
280
+ * event.
281
+ *
282
+ * @stability unstable
283
+ * @category compaction
284
+ * @since 4.0.6
285
+ */
286
+ export const compaction = (group, row) => Layer.effectDiscard(Effect.gen(function* () {
287
+ const registry = yield* EventLog.Registry;
288
+ const services = yield* Effect.context();
289
+ const decode = Schema.decodeUnknownEffect(group.events[row.tag].payloadSchemaBinary);
290
+ yield* registry.registerCompaction({
291
+ events: [row.tag],
292
+ effect: Effect.fnUntraced(function* ({
293
+ entries,
294
+ write
295
+ }) {
296
+ const ops = new Map();
297
+ for (const entry of entries) {
298
+ const payload = yield* Effect.result(decode(entry.payload).pipe(Effect.updateContext(input => Context.merge(services, input))));
299
+ if (Result.isSuccess(payload)) ops.set(entry, payload.success);
300
+ }
301
+ const shadowed = shadowedEntries(entries, ops);
302
+ for (const entry of entries) {
303
+ if (!shadowed.has(entry)) yield* write(entry);
304
+ }
305
+ })
306
+ });
307
+ }));
308
+ const shadowedEntries = (entries, ops) => {
309
+ const shadowed = new Set();
310
+ const byKey = new Map();
311
+ for (const entry of entries) {
312
+ const row = byKey.get(entry.primaryKey);
313
+ if (row === undefined) byKey.set(entry.primaryKey, [entry]);else row.push(entry);
314
+ }
315
+ for (const row of byKey.values()) {
316
+ row.sort(Entry.Order);
317
+ let replaced = false;
318
+ let patched = false;
319
+ const written = new Set();
320
+ for (let i = row.length - 1; i >= 0; i--) {
321
+ const op = ops.get(row[i]);
322
+ if (op === undefined) continue;
323
+ if (op._tag !== "patch") {
324
+ if (replaced) shadowed.add(row[i]);
325
+ replaced = true;
326
+ continue;
327
+ }
328
+ const names = Object.keys(op.fields);
329
+ if (replaced || patched && names.every(name => written.has(name))) shadowed.add(row[i]);
330
+ patched = true;
331
+ for (const name of names) written.add(name);
332
+ }
333
+ }
334
+ return shadowed;
335
+ };
336
+ const keyFromId = "~effect/eventlog/EventRow/keyFrom";
337
+ const scalarKey = (name, field) => ({
338
+ fields: [name],
339
+ schema: field,
340
+ fromRow: row => row[name],
341
+ toValues: key => ({
342
+ [name]: key
343
+ }),
344
+ primaryKey: jsonKey([[name, field]], true)
345
+ });
346
+ const declaredKey = (declaration, fields) => {
347
+ const names = declaration.fields;
348
+ const derive = declaration.derive;
349
+ return {
350
+ fields: names,
351
+ schema: Schema.Struct(Struct.pick(fields, names)),
352
+ fromRow: row => Struct.pick(row, names),
353
+ toValues: key => key,
354
+ primaryKey: derive !== undefined ? row => derive(Struct.pick(row, names)) : jsonKey(names.map(name => [name, fields[name]]), false)
355
+ };
356
+ };
357
+ // A string single-field key is its own primary key. Otherwise the key is the
358
+ // JSON tuple of the fields' JSON encodings, distinct for distinct values of
359
+ // `DefaultKeyField`s. A field holds one kind of value, so a raw string never
360
+ // meets a tuple from the same field.
361
+ const jsonKey = (fields, single) => {
362
+ let encoders;
363
+ return row => {
364
+ if (single && typeof row[fields[0][0]] === "string") return row[fields[0][0]];
365
+ encoders ??= fields.map(([name, field]) => [name, Schema.encodeUnknownSync(Schema.toCodecJson(field))]);
366
+ return JSON.stringify(encoders.map(([name, encode]) => encode(row[name])));
367
+ };
368
+ };
369
+ // Run the field codec only for present keys, bypassing missing-key defaults.
370
+ const patchField = field => {
371
+ const decode = SchemaParser.decodeUnknownEffect(field);
372
+ // The struct wrapper detects encodings that drop a written key.
373
+ const encode = SchemaParser.encodeUnknownEffect(Schema.Struct({
374
+ value: field
375
+ }));
376
+ return Schema.optionalKey(Schema.toEncoded(field)).pipe(Schema.decodeTo(Schema.optionalKey(Schema.toType(field)), {
377
+ decode: SchemaGetter.transformEffect(decode),
378
+ encode: SchemaGetter.transformEffect((value, options) => Effect.flatMap(encode({
379
+ value
380
+ }, options), encoded => Object.hasOwn(encoded, "value") ? Effect.succeed(encoded.value) : Effect.fail(new SchemaIssue.Forbidden({
381
+ message: "A patch cannot write a value whose encoding omits the key"
382
+ }, value))))
383
+ }));
384
+ };
385
+ const compose = (x, y) => {
386
+ if (y._tag !== "patch") return y;
387
+ switch (x._tag) {
388
+ case "set":
389
+ return {
390
+ _tag: "set",
391
+ row: {
392
+ ...x.row,
393
+ ...y.fields
394
+ }
395
+ };
396
+ case "patch":
397
+ return {
398
+ _tag: "patch",
399
+ key: y.key,
400
+ fields: {
401
+ ...x.fields,
402
+ ...y.fields
403
+ }
404
+ };
405
+ case "remove":
406
+ return x;
407
+ }
408
+ };
409
+ const resolve = (entry, conflicts) => {
410
+ if (conflicts.length === 0) return entry;
411
+ let newer = conflicts[0].payload;
412
+ for (let i = 1; i < conflicts.length; i++) {
413
+ newer = compose(newer, conflicts[i].payload);
414
+ }
415
+ if (newer._tag !== "patch") return undefined;
416
+ switch (entry._tag) {
417
+ case "set":
418
+ return {
419
+ _tag: "set",
420
+ row: {
421
+ ...entry.row,
422
+ ...newer.fields
423
+ }
424
+ };
425
+ case "patch":
426
+ return {
427
+ _tag: "patch",
428
+ key: entry.key,
429
+ fields: Struct.omit(entry.fields, Object.keys(newer.fields))
430
+ };
431
+ case "remove":
432
+ return entry;
433
+ }
434
+ };
435
+ //# sourceMappingURL=EventRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventRow.js","names":[],"sources":["../../src/eventlog/EventRow.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -8,8 +8,20 @@ import * as EventJournal from "./EventJournal.ts";
8
8
  *
9
9
  * **Details**
10
10
  *
11
- * The constructor creates the entry and remote metadata tables when needed,
12
- * persists local and remote entries, and uses the configured `SqlClient`.
11
+ * Maintains `entryTable`, `${entryTable}_sequence`, `${entryTable}_sources`,
12
+ * `${remotesTable}_checkpoints` and `remoteCursorsTable` (default
13
+ * `${remotesTable}_cursors`) using the configured `SqlClient`.
14
+ *
15
+ * **Gotchas**
16
+ *
17
+ * Creating or migrating the schema requires a writable connection. Migrated
18
+ * databases can be reopened read-only.
19
+ *
20
+ * Journals from earlier releases keep one `remotesTable` row per entry per
21
+ * remote. Opening one replaces those rows with entry sources and drops the
22
+ * table; an entry known to several remotes keeps one of them as its source.
23
+ *
24
+ * Upload acknowledgements do not advance past unseen entries.
13
25
  *
14
26
  * @stability unstable
15
27
  * @category constructors
@@ -18,27 +30,14 @@ import * as EventJournal from "./EventJournal.ts";
18
30
  export declare const make: (options?: {
19
31
  readonly entryTable?: string;
20
32
  readonly remotesTable?: string;
33
+ readonly remoteCursorsTable?: string;
21
34
  }) => Effect.Effect<EventJournal.EventJournal["Service"], SqlError.SqlError, SqlClient.SqlClient>;
22
35
  /**
23
- * Provides `EventJournal` using the SQL-backed implementation created by
24
- * `make`.
25
- *
26
- * **When to use**
27
- *
28
- * Use when composing a Layer graph that should provide a persistent SQL-backed
29
- * `EventJournal` from an existing `SqlClient` service.
30
- *
31
- * **Details**
32
- *
33
- * The layer delegates to `make(options)`, so the same optional `entryTable` and
34
- * `remotesTable` settings are used and construction requires `SqlClient` and
35
- * may fail with `SqlError`.
36
+ * Provides a SQL-backed `EventJournal` from an existing `SqlClient` service.
36
37
  *
37
38
  * **Gotchas**
38
39
  *
39
- * Layer construction performs the same minimal `CREATE TABLE IF NOT EXISTS`
40
- * setup as `make`; manage indexes and schema migrations outside this layer when
41
- * your SQL schema needs more than the built-in tables.
40
+ * Creating or migrating the schema requires a writable connection.
42
41
  *
43
42
  * @see {@link make} for constructing the SQL-backed service directly
44
43
  * @see {@link EventJournal.layerMemory} for an in-memory `EventJournal` layer
@@ -51,5 +50,6 @@ export declare const make: (options?: {
51
50
  export declare const layer: (options?: {
52
51
  readonly entryTable?: string;
53
52
  readonly remotesTable?: string;
53
+ readonly remoteCursorsTable?: string;
54
54
  }) => Layer.Layer<EventJournal.EventJournal, SqlError.SqlError, SqlClient.SqlClient>;
55
55
  //# sourceMappingURL=SqlEventJournal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SqlEventJournal.d.ts","sourceRoot":"","sources":["../../src/eventlog/SqlEventJournal.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAEtC,OAAO,KAAK,KAAK,MAAM,aAAa,CAAA;AAIpC,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAE9C,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAIjD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,IAAI,aAAc;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAC/B,KAAG,MAAM,CAAC,MAAM,CACf,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,EACpC,QAAQ,CAAC,QAAQ,EACjB,SAAS,CAAC,SAAS,CAyPjB,CAAA;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,KAAK,aAAc;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAC/B,KAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,SAAS,CACzB,CAAA"}
1
+ {"version":3,"file":"SqlEventJournal.d.ts","sourceRoot":"","sources":["../../src/eventlog/SqlEventJournal.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAEtC,OAAO,KAAK,KAAK,MAAM,aAAa,CAAA;AAIpC,OAAO,KAAK,SAAS,MAAM,qBAAqB,CAAA;AAChD,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAA;AAE9C,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AAKjD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,IAAI,aAAc;IAC7B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CACrC,KAAG,MAAM,CAAC,MAAM,CACf,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,EACpC,QAAQ,CAAC,QAAQ,EACjB,SAAS,CAAC,SAAS,CA+gBjB,CAAA;AAEJ;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,KAAK,aAAc;IAC9B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;CACrC,KAAG,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,SAAS,CACzB,CAAA"}