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
@@ -293,55 +293,7 @@ export const duplex: {
293
293
  InDone,
294
294
  R | In["EncodingServices"] | Out["DecodingServices"]
295
295
  > =>
296
- encode(options.inputSchema)</**
297
- * Wraps a channel so callers work with typed input and output chunks while the
298
- * wrapped channel uses encoded chunks.
299
- *
300
- * **When to use**
301
- *
302
- * Use to expose typed input and output at a bidirectional channel boundary
303
- * while the wrapped channel continues to operate on schema-encoded chunks.
304
- *
305
- * **Details**
306
- *
307
- * Values sent into the resulting channel are encoded with `inputSchema` before
308
- * reaching the wrapped channel. Values emitted by the wrapped channel are
309
- * decoded with `outputSchema` before they are emitted downstream. Schema
310
- * failures are surfaced as `SchemaError`.
311
- *
312
- * @see {@link duplexUnknown} for the variant whose encoded side is intentionally untyped
313
- * @see {@link encode} for encoding typed chunks at one-way channel boundaries
314
- * @see {@link decode} for decoding encoded chunks at one-way channel boundaries
315
- *
316
- * @stability unstable
317
- * @category combinators
318
- * @since 4.0.0
319
- */
320
- InErr, /**
321
- * Wraps a channel so callers work with typed input and output chunks while the
322
- * wrapped channel uses encoded chunks.
323
- *
324
- * **When to use**
325
- *
326
- * Use to expose typed input and output at a bidirectional channel boundary
327
- * while the wrapped channel continues to operate on schema-encoded chunks.
328
- *
329
- * **Details**
330
- *
331
- * Values sent into the resulting channel are encoded with `inputSchema` before
332
- * reaching the wrapped channel. Values emitted by the wrapped channel are
333
- * decoded with `outputSchema` before they are emitted downstream. Schema
334
- * failures are surfaced as `SchemaError`.
335
- *
336
- * @see {@link duplexUnknown} for the variant whose encoded side is intentionally untyped
337
- * @see {@link encode} for encoding typed chunks at one-way channel boundaries
338
- * @see {@link decode} for decoding encoded chunks at one-way channel boundaries
339
- *
340
- * @stability unstable
341
- * @category combinators
342
- * @since 4.0.0
343
- */
344
- InDone>().pipe(
296
+ encode(options.inputSchema)<InErr, InDone>().pipe(
345
297
  Channel.pipeTo(self),
346
298
  Channel.pipeTo(decode(options.outputSchema)())
347
299
  ))
package/src/Chunk.ts CHANGED
@@ -561,6 +561,11 @@ export const reverse: <S extends Chunk<any>>(self: S) => Chunk.With<S, Chunk.Inf
561
561
  * Gets the value at an index in a `Chunk` safely, returning `None` when the index is
562
562
  * out of bounds.
563
563
  *
564
+ * **Details**
565
+ *
566
+ * The index is floored to an integer. `NaN` and infinite indexes are out of
567
+ * bounds. This never throws.
568
+ *
564
569
  * **Example** (Accessing elements safely)
565
570
  *
566
571
  * ```ts import.meta.vitest
@@ -585,6 +590,11 @@ export const get: {
585
590
  * Gets the value at an index in a `Chunk` safely, returning `None` when the index is
586
591
  * out of bounds.
587
592
  *
593
+ * **Details**
594
+ *
595
+ * The index is floored to an integer. `NaN` and infinite indexes are out of
596
+ * bounds. This never throws.
597
+ *
588
598
  * **Example** (Accessing elements safely)
589
599
  *
590
600
  * ```ts import.meta.vitest
@@ -609,6 +619,11 @@ export const get: {
609
619
  * Gets the value at an index in a `Chunk` safely, returning `None` when the index is
610
620
  * out of bounds.
611
621
  *
622
+ * **Details**
623
+ *
624
+ * The index is floored to an integer. `NaN` and infinite indexes are out of
625
+ * bounds. This never throws.
626
+ *
612
627
  * **Example** (Accessing elements safely)
613
628
  *
614
629
  * ```ts import.meta.vitest
@@ -631,8 +646,10 @@ export const get: {
631
646
  <A>(self: Chunk<A>, index: number): Option<A>
632
647
  } = dual(
633
648
  2,
634
- <A>(self: Chunk<A>, index: number): Option<A> =>
635
- index < 0 || index >= self.length ? O.none() : O.some(getUnsafe(self, index))
649
+ <A>(self: Chunk<A>, index: number): Option<A> => {
650
+ const i = Math.floor(index)
651
+ return i >= 0 && i < self.length ? O.some(getUnchecked(self, i)) : O.none()
652
+ }
636
653
  )
637
654
 
638
655
  /**
@@ -710,7 +727,8 @@ export const fromNonEmptyArrayUnsafe = <A>(self: NonEmptyReadonlyArray<A>): NonE
710
727
  *
711
728
  * **Gotchas**
712
729
  *
713
- * Throws if the index is out of bounds.
730
+ * Throws if the floored index is out of bounds, including for `NaN` and
731
+ * infinite indexes.
714
732
  *
715
733
  * **Example** (Accessing elements unsafely)
716
734
  *
@@ -741,7 +759,8 @@ export const getUnsafe: {
741
759
  *
742
760
  * **Gotchas**
743
761
  *
744
- * Throws if the index is out of bounds.
762
+ * Throws if the floored index is out of bounds, including for `NaN` and
763
+ * infinite indexes.
745
764
  *
746
765
  * **Example** (Accessing elements unsafely)
747
766
  *
@@ -772,7 +791,8 @@ export const getUnsafe: {
772
791
  *
773
792
  * **Gotchas**
774
793
  *
775
- * Throws if the index is out of bounds.
794
+ * Throws if the floored index is out of bounds, including for `NaN` and
795
+ * infinite indexes.
776
796
  *
777
797
  * **Example** (Accessing elements unsafely)
778
798
  *
@@ -795,32 +815,33 @@ export const getUnsafe: {
795
815
  <A>(self: Chunk<A>, index: number): A
796
816
  } = dual(2, <A>(self: Chunk<A>, index: number): A => {
797
817
  const i = Math.floor(index)
818
+ if (!(i >= 0 && i < self.length)) {
819
+ throw new Error(`Index out of bounds: ${i}`)
820
+ }
821
+ return getUnchecked(self, i)
822
+ })
823
+
824
+ const getUnchecked = <A>(self: Chunk<A>, i: number): A => {
798
825
  switch (self.backing._tag) {
799
826
  case "IEmpty": {
800
827
  throw new Error(`Index out of bounds: ${i}`)
801
828
  }
802
829
  case "ISingleton": {
803
- if (index !== 0) {
804
- throw new Error(`Index out of bounds: ${i}`)
805
- }
806
830
  return self.backing.a
807
831
  }
808
832
  case "IArray": {
809
- if (i >= self.length || i < 0) {
810
- throw new Error(`Index out of bounds: ${i}`)
811
- }
812
833
  return self.backing.array[i]!
813
834
  }
814
835
  case "IConcat": {
815
836
  return i < self.left.length
816
- ? getUnsafe(self.left, i)
817
- : getUnsafe(self.right, i - self.left.length)
837
+ ? getUnchecked(self.left, i)
838
+ : getUnchecked(self.right, i - self.left.length)
818
839
  }
819
840
  case "ISlice": {
820
- return getUnsafe(self.backing.chunk, i + self.backing.offset)
841
+ return getUnchecked(self.backing.chunk, i + self.backing.offset)
821
842
  }
822
843
  }
823
- })
844
+ }
824
845
 
825
846
  /**
826
847
  * Appends the specified element to the end of the `Chunk`.
@@ -1532,34 +1553,7 @@ export const appendAll: {
1532
1553
  }
1533
1554
  const diff = that.depth - self.depth
1534
1555
  if (Math.abs(diff) <= 1) {
1535
- return makeChunk</**
1536
- * Concatenates two chunks, combining their elements.
1537
- * If either chunk is non-empty, the result is also a non-empty chunk.
1538
- *
1539
- * **When to use**
1540
- *
1541
- * Use to concatenate two chunks when the second chunk's elements should come
1542
- * after the first.
1543
- *
1544
- * **Example** (Appending all elements)
1545
- *
1546
- * ```ts import.meta.vitest
1547
- * import { Chunk } from "effect"
1548
- *
1549
- * Chunk.make(1, 2).pipe(
1550
- * Chunk.appendAll(Chunk.make("a", "b")),
1551
- * Chunk.toArray
1552
- * ) // => [1, 2, "a", "b"]
1553
- * ```
1554
- *
1555
- * @see {@link prependAll} for concatenating chunks in the opposite order
1556
- * @see {@link append} for adding a single element to the end
1557
- *
1558
- * @stability stable
1559
- * @category combining
1560
- * @since 2.0.0
1561
- */
1562
- A | B>({ _tag: "IConcat", left: self, right: that });
1556
+ return makeChunk<A | B>({ _tag: "IConcat", left: self, right: that })
1563
1557
  } else if (diff < -1) {
1564
1558
  if (self.left.depth >= self.right.depth) {
1565
1559
  const nr = appendAll(self.right, that)
@@ -3929,7 +3923,12 @@ export const takeWhile: {
3929
3923
  })
3930
3924
 
3931
3925
  /**
3932
- * Creates a Chunks of unique values, in order, from all given Chunks.
3926
+ * Computes the union of two chunks using Effect equality.
3927
+ *
3928
+ * **Gotchas**
3929
+ *
3930
+ * Each input must already be deduplicated. Use {@link dedupe} to remove
3931
+ * duplicates from an input first.
3933
3932
  *
3934
3933
  * **Example** (Unioning chunks)
3935
3934
  *
@@ -3939,11 +3938,6 @@ export const takeWhile: {
3939
3938
  * const chunk1 = Chunk.make(1, 2, 3)
3940
3939
  * const chunk2 = Chunk.make(3, 4, 5)
3941
3940
  * Chunk.toArray(Chunk.union(chunk1, chunk2)) // => [1, 2, 3, 4, 5]
3942
- *
3943
- * // Handles duplicates within the same chunk
3944
- * const withDupes1 = Chunk.make(1, 1, 2)
3945
- * const withDupes2 = Chunk.make(2, 3, 3)
3946
- * Chunk.toArray(Chunk.union(withDupes1, withDupes2)) // => [1, 2, 3]
3947
3941
  * ```
3948
3942
  *
3949
3943
  * @stability stable
@@ -3952,7 +3946,12 @@ export const takeWhile: {
3952
3946
  */
3953
3947
  export const union: {
3954
3948
  /**
3955
- * Creates a Chunks of unique values, in order, from all given Chunks.
3949
+ * Computes the union of two chunks using Effect equality.
3950
+ *
3951
+ * **Gotchas**
3952
+ *
3953
+ * Each input must already be deduplicated. Use {@link dedupe} to remove
3954
+ * duplicates from an input first.
3956
3955
  *
3957
3956
  * **Example** (Unioning chunks)
3958
3957
  *
@@ -3962,11 +3961,6 @@ export const union: {
3962
3961
  * const chunk1 = Chunk.make(1, 2, 3)
3963
3962
  * const chunk2 = Chunk.make(3, 4, 5)
3964
3963
  * Chunk.toArray(Chunk.union(chunk1, chunk2)) // => [1, 2, 3, 4, 5]
3965
- *
3966
- * // Handles duplicates within the same chunk
3967
- * const withDupes1 = Chunk.make(1, 1, 2)
3968
- * const withDupes2 = Chunk.make(2, 3, 3)
3969
- * Chunk.toArray(Chunk.union(withDupes1, withDupes2)) // => [1, 2, 3]
3970
3964
  * ```
3971
3965
  *
3972
3966
  * @stability stable
@@ -3975,7 +3969,12 @@ export const union: {
3975
3969
  */
3976
3970
  <A>(that: Chunk<A>): <B>(self: Chunk<B>) => Chunk<A | B>
3977
3971
  /**
3978
- * Creates a Chunks of unique values, in order, from all given Chunks.
3972
+ * Computes the union of two chunks using Effect equality.
3973
+ *
3974
+ * **Gotchas**
3975
+ *
3976
+ * Each input must already be deduplicated. Use {@link dedupe} to remove
3977
+ * duplicates from an input first.
3979
3978
  *
3980
3979
  * **Example** (Unioning chunks)
3981
3980
  *
@@ -3985,11 +3984,6 @@ export const union: {
3985
3984
  * const chunk1 = Chunk.make(1, 2, 3)
3986
3985
  * const chunk2 = Chunk.make(3, 4, 5)
3987
3986
  * Chunk.toArray(Chunk.union(chunk1, chunk2)) // => [1, 2, 3, 4, 5]
3988
- *
3989
- * // Handles duplicates within the same chunk
3990
- * const withDupes1 = Chunk.make(1, 1, 2)
3991
- * const withDupes2 = Chunk.make(2, 3, 3)
3992
- * Chunk.toArray(Chunk.union(withDupes1, withDupes2)) // => [1, 2, 3]
3993
3987
  * ```
3994
3988
  *
3995
3989
  * @stability stable
package/src/Config.ts CHANGED
@@ -671,50 +671,7 @@ export const orElse: {
671
671
  */
672
672
  <A, A2>(self: Config<A>, that: (error: ConfigError) => Config<A2>): Config<A | A2>
673
673
  } = dual(2, <A, A2>(self: Config<A>, that: (error: ConfigError) => Config<A2>): Config<A | A2> => {
674
- return make</**
675
- * Provides a fallback config when parsing fails with a `ConfigError`.
676
- *
677
- * **When to use**
678
- *
679
- * Use when you need to try an alternative config source after the primary one
680
- * fails.
681
- *
682
- * **Details**
683
- *
684
- * Unlike {@link withDefault}, this handles both semantic absence and **all**
685
- * `ConfigError`s. The fallback function receives the error and returns a new
686
- * `Config`.
687
- *
688
- * **Gotchas**
689
- *
690
- * The fallback's result replaces the original failure. If the fallback is
691
- * absent, an outer {@link withDefault} or {@link option} can recover it. If the
692
- * fallback fails, only its error propagates. Defects and interruptions never
693
- * reach the fallback; they propagate unchanged.
694
- *
695
- * **Example** (Trying another port before using a default)
696
- *
697
- * ```ts import.meta.vitest
698
- * import { Config, ConfigProvider, Effect } from "effect"
699
- *
700
- * const port = Config.Int("PORT").pipe(
701
- * Config.orElse(() => Config.Int("BACKUP_PORT")),
702
- * Config.withDefault(3000)
703
- * )
704
- * const provider = ConfigProvider.fromUnknown({ PORT: "invalid", BACKUP_PORT: "8080" })
705
- * await Effect.runPromise(port.parse(provider)) // => 8080
706
- *
707
- * const missingBackup = ConfigProvider.fromUnknown({ PORT: "invalid" })
708
- * await Effect.runPromise(port.parse(missingBackup)) // => 3000
709
- * ```
710
- *
711
- * @see {@link withDefault} – fallback only on semantic absence
712
- *
713
- * @stability stable
714
- * @category combinators
715
- * @since 2.0.0
716
- */
717
- A | A2>((provider, pathPrefix) =>
674
+ return make<A | A2>((provider, pathPrefix) =>
718
675
  Effect.matchCauseEffect(evaluateAt(self, provider, pathPrefix), {
719
676
  // Only plain failures reach the fallback; defects and interruptions propagate unchanged.
720
677
  onFailure: (cause) => {
@@ -728,7 +685,7 @@ export const orElse: {
728
685
  ? evaluateAt(that(resolution.failure), provider, pathPrefix)
729
686
  : Effect.succeed(resolution)
730
687
  })
731
- );
688
+ )
732
689
  })
733
690
 
734
691
  /**
@@ -916,48 +873,12 @@ export const withDefault: {
916
873
  */
917
874
  <A, const A2>(self: Config<A>, defaultValue: A2): Config<A | A2>
918
875
  } = dual(2, <A, const A2>(self: Config<A>, defaultValue: A2): Config<A | A2> => {
919
- return make</**
920
- * Provides a fallback value when the config is absent.
921
- *
922
- * **When to use**
923
- *
924
- * Use when you need to make a config key optional with a sensible default.
925
- *
926
- * **Gotchas**
927
- *
928
- * Validation and source errors still propagate. For an {@link all} group, any
929
- * absent child causes the default to replace the entire group unless another
930
- * child fails. Apply defaults to individual children to preserve other values.
931
- *
932
- * A schema that successfully decodes absent input keeps its decoded value
933
- * instead of using the default. Schema configs first represent a missing or
934
- * incompatible provider shape as `undefined`; the default is used only when
935
- * the schema rejects that value and no relevant input was found.
936
- *
937
- * **Example** (Defaulting a missing port)
938
- *
939
- * ```ts import.meta.vitest
940
- * import { Config, ConfigProvider, Effect } from "effect"
941
- *
942
- * const port = Config.Number("port").pipe(Config.withDefault(3000))
943
- *
944
- * const provider = ConfigProvider.fromUnknown({})
945
- * Effect.runSync(port.parse(provider)) // => 3000
946
- * ```
947
- *
948
- * @see {@link option} – returns `Option` instead of a default value
949
- * @see {@link orElse} – catches all errors, not just absent input
950
- *
951
- * @stability stable
952
- * @category combinators
953
- * @since 2.0.0
954
- */
955
- A | A2>((provider, pathPrefix) =>
876
+ return make<A | A2>((provider, pathPrefix) =>
956
877
  Effect.mapEager(
957
878
  evaluateAt(self, provider, pathPrefix),
958
879
  (resolution) => Result.isFailure(resolution) ? Result.succeed(defaultValue) : resolution
959
880
  )
960
- );
881
+ )
961
882
  })
962
883
 
963
884
  /**
@@ -1171,7 +1092,6 @@ const toConfigCursorAST = memoize((root: SchemaAST.AST): SchemaAST.AST => {
1171
1092
  seen.add(ast)
1172
1093
  switch (ast._tag) {
1173
1094
  case "Objects": {
1174
- const matchesIndex = ast.indexSignatures.map((is) => SchemaParser._is(is.parameter))
1175
1095
  const materialize = Effect.fnUntraced(function*(cursor: ConfigCursor) {
1176
1096
  if (cursor.node?._tag !== "Record") {
1177
1097
  return undefined
@@ -1181,9 +1101,15 @@ const toConfigCursorAST = memoize((root: SchemaAST.AST): SchemaAST.AST => {
1181
1101
  for (const property of ast.propertySignatures) {
1182
1102
  if (typeof property.name === "string") keys.add(property.name)
1183
1103
  }
1184
- if (matchesIndex.length > 0) {
1104
+ if (ast.indexSignatures.length > 0) {
1105
+ const input: Record<string, undefined> = {}
1185
1106
  for (const key of node.keys) {
1186
- if (matchesIndex.some((matches) => matches(key))) keys.add(key)
1107
+ InternalRecord.assignProperty(input, key, undefined)
1108
+ }
1109
+ for (const is of ast.indexSignatures) {
1110
+ for (const key of SchemaAST.getIndexSignatureKeys(input, is.parameter)) {
1111
+ if (typeof key === "string") keys.add(key)
1112
+ }
1187
1113
  }
1188
1114
  }
1189
1115
  const out: Record<string, ConfigCursor> = {}
@@ -1391,11 +1391,12 @@ function interpolate(
1391
1391
  parsed: Record<string, string>,
1392
1392
  seen: ReadonlySet<string>
1393
1393
  ): string {
1394
- const reference = /(?<!\\)\${?(\w+)/g
1394
+ const reference = /\${?(\w+)/g
1395
1395
  let result = ""
1396
1396
  let cursor = 0
1397
1397
  let match: RegExpExecArray | null
1398
1398
  while ((match = reference.exec(envValue)) != null) {
1399
+ if (match.index > 0 && envValue[match.index - 1] === "\\") continue
1399
1400
  const [, name] = match
1400
1401
  let end = reference.lastIndex
1401
1402
  let defaultValue = ""
package/src/Cron.ts CHANGED
@@ -815,8 +815,8 @@ export const next = (cron: Cron, now?: DateTime.DateTime.Input): Date => {
815
815
  *
816
816
  * **Gotchas**
817
817
  *
818
- * The search is strict: if the supplied date/time already matches the schedule,
819
- * the result is the earlier occurrence.
818
+ * The search is strict: if the supplied date/time is exactly an occurrence of
819
+ * the schedule, the result is the earlier occurrence.
820
820
  *
821
821
  * @see {@link next} for finding the next scheduled occurrence
822
822
  *
@@ -866,7 +866,10 @@ const stepCron = (cron: Cron, now: DateTime.DateTime.Input | undefined, directio
866
866
  }).epochMilliseconds <= zoned.epochMilliseconds
867
867
 
868
868
  const result = dateTime.mutate(zoned, (current) => {
869
- current.setUTCSeconds(current.getUTCSeconds() + tick, 0)
869
+ // Start from the nearest whole second strictly past the input in the search
870
+ // direction. Going backward, a fractional input already has one.
871
+ const offset = reverse && current.getUTCMilliseconds() > 0 ? 0 : tick
872
+ current.setUTCSeconds(current.getUTCSeconds() + offset, 0)
870
873
 
871
874
  for (let i = 0; i < 10_000; i++) {
872
875
  if (cron.seconds.size !== 0) {
package/src/Duration.ts CHANGED
@@ -35,6 +35,10 @@ const bigint60 = BigInt(60)
35
35
  const bigint1e3 = BigInt(1_000)
36
36
  const bigint1e6 = BigInt(1_000_000)
37
37
  const bigint1e9 = BigInt(1_000_000_000)
38
+ const bigintNanosPerMinute = BigInt(60_000_000_000)
39
+ const bigintNanosPerHour = BigInt(3_600_000_000_000)
40
+ const bigintNanosPerDay = BigInt(86_400_000_000_000)
41
+ const bigintNanosPerWeek = BigInt(604_800_000_000_000)
38
42
 
39
43
  const roundTiesAwayFromZero = (input: number): bigint => BigInt(Math.sign(input) * Math.round(Math.abs(input)))
40
44
 
@@ -43,6 +47,14 @@ const roundMillisToNanos = (millis: number): bigint =>
43
47
 
44
48
  const fromNanosNumber = (nanos: number): Duration => make(Number.isFinite(nanos) ? roundTiesAwayFromZero(nanos) : nanos)
45
49
 
50
+ const nanosToUnit = (nanos: bigint, divisor: number): number => {
51
+ const value = Number(nanos)
52
+ // Preserve ordinary-input rounding; scale first only when nanoseconds overflow.
53
+ if (Number.isFinite(value)) return value / divisor
54
+ const scale = BigInt(divisor)
55
+ return Number(nanos / scale) + Number(nanos % scale) / divisor
56
+ }
57
+
46
58
  const parseNanos = (input: string, scale: bigint): bigint => {
47
59
  const decimalIndex = input.indexOf(".")
48
60
  if (decimalIndex === -1) return BigInt(input) * scale
@@ -62,6 +74,14 @@ const divideTiesAwayFromZero = (numerator: bigint, denominator: bigint): bigint
62
74
  return numerator < bigint0 ? -rounded : rounded
63
75
  }
64
76
 
77
+ const fromMillisString = (input: string, scale: number): Duration => {
78
+ const millis = Number(input) * scale
79
+ if (!Number.isFinite(millis)) return make(millis)
80
+ const nanos = parseNanos(input, BigInt(scale) * bigint1e6)
81
+ // Keep the millisecond representation only when it preserves the exact value.
82
+ return make(Number.isInteger(millis) && BigInt(millis) * bigint1e6 === nanos ? millis : nanos)
83
+ }
84
+
65
85
  const nanosToHrTime = (nanos: bigint): [seconds: number, nanos: number] => {
66
86
  const sign = nanos < bigint0 ? -bigint1 : bigint1
67
87
  const absolute = nanos < bigint0 ? -nanos : nanos
@@ -274,26 +294,25 @@ export const fromInputUnsafe = (input: Input): Duration => {
274
294
  if (unit === "micro" || unit === "micros") {
275
295
  return nanos(parseNanos(valueStr, bigint1e3))
276
296
  }
277
- const value = Number(valueStr)
278
297
  switch (unit) {
279
298
  case "milli":
280
299
  case "millis":
281
- return millis(value)
300
+ return fromMillisString(valueStr, 1)
282
301
  case "second":
283
302
  case "seconds":
284
- return seconds(value)
303
+ return fromMillisString(valueStr, 1_000)
285
304
  case "minute":
286
305
  case "minutes":
287
- return minutes(value)
306
+ return fromMillisString(valueStr, 60_000)
288
307
  case "hour":
289
308
  case "hours":
290
- return hours(value)
309
+ return fromMillisString(valueStr, 3_600_000)
291
310
  case "day":
292
311
  case "days":
293
- return days(value)
312
+ return fromMillisString(valueStr, 86_400_000)
294
313
  case "week":
295
314
  case "weeks":
296
- return weeks(value)
315
+ return fromMillisString(valueStr, 604_800_000)
297
316
  }
298
317
  break
299
318
  }
@@ -313,7 +332,10 @@ export const fromInputUnsafe = (input: Input): Duration => {
313
332
  if (input[0] === Infinity || input[1] === Infinity) {
314
333
  return infinity
315
334
  }
316
- return fromNanosNumber(input[0] * 1_000_000_000 + input[1])
335
+ const nanos = input[0] * 1_000_000_000 + input[1]
336
+ return Number.isFinite(nanos) && Number.isInteger(input[0]) && Number.isInteger(input[1])
337
+ ? make(BigInt(input[0]) * bigint1e9 + BigInt(input[1]))
338
+ : fromNanosNumber(nanos)
317
339
  }
318
340
  const obj = input as DurationObject
319
341
  let millis = 0
@@ -324,13 +346,41 @@ export const fromInputUnsafe = (input: Input): Duration => {
324
346
  if (obj.minutes) millis += obj.minutes * 60_000
325
347
  if (obj.seconds) millis += obj.seconds * 1_000
326
348
  if (obj.milliseconds) millis += obj.milliseconds
327
- if (!obj.microseconds && !obj.nanoseconds) return make(millis)
328
- return fromNanosNumber(millis * 1_000_000 + (obj.microseconds ?? 0) * 1_000 + (obj.nanoseconds ?? 0))
349
+ if (!obj.microseconds && !obj.nanoseconds) {
350
+ if (!Number.isFinite(millis)) return make(millis)
351
+ const exact = sumObjectNanos(obj)
352
+ // keep the Millis representation when the numeric total is already exact
353
+ return exact === undefined || BigInt(millis) * bigint1e6 === exact ? make(millis) : make(exact)
354
+ }
355
+ const nanos = millis * 1_000_000 + (obj.microseconds ?? 0) * 1_000 + (obj.nanoseconds ?? 0)
356
+ const exact = Number.isFinite(nanos) ? sumObjectNanos(obj) : undefined
357
+ return exact === undefined ? fromNanosNumber(nanos) : make(exact)
329
358
  }
330
359
  }
331
360
  return invalid(input)
332
361
  }
333
362
 
363
+ const isIntegerOrUnset = (n: number | undefined): boolean => !n || Number.isInteger(n)
364
+
365
+ // sums the fields exactly, or returns undefined if any field is fractional
366
+ const sumObjectNanos = (obj: DurationObject): bigint | undefined => {
367
+ if (
368
+ !isIntegerOrUnset(obj.weeks) || !isIntegerOrUnset(obj.days) || !isIntegerOrUnset(obj.hours) ||
369
+ !isIntegerOrUnset(obj.minutes) || !isIntegerOrUnset(obj.seconds) || !isIntegerOrUnset(obj.milliseconds) ||
370
+ !isIntegerOrUnset(obj.microseconds) || !isIntegerOrUnset(obj.nanoseconds)
371
+ ) return undefined
372
+ let nanos = bigint0
373
+ if (obj.weeks) nanos += BigInt(obj.weeks) * bigintNanosPerWeek
374
+ if (obj.days) nanos += BigInt(obj.days) * bigintNanosPerDay
375
+ if (obj.hours) nanos += BigInt(obj.hours) * bigintNanosPerHour
376
+ if (obj.minutes) nanos += BigInt(obj.minutes) * bigintNanosPerMinute
377
+ if (obj.seconds) nanos += BigInt(obj.seconds) * bigint1e9
378
+ if (obj.milliseconds) nanos += BigInt(obj.milliseconds) * bigint1e6
379
+ if (obj.microseconds) nanos += BigInt(obj.microseconds) * bigint1e3
380
+ if (obj.nanoseconds) nanos += BigInt(obj.nanoseconds)
381
+ return nanos
382
+ }
383
+
334
384
  const invalid = (input: unknown): never => {
335
385
  throw new Error(`Invalid Input: ${input}`)
336
386
  }
@@ -817,7 +867,7 @@ export const weeks = (weeks: number): Duration => make(weeks * 604_800_000)
817
867
  export const toMillis = (self: Input): number =>
818
868
  match(fromInputUnsafe(self), {
819
869
  onMillis: identity,
820
- onNanos: (nanos) => Number(nanos) / 1_000_000,
870
+ onNanos: (nanos) => nanosToUnit(nanos, 1_000_000),
821
871
  onInfinity: () => Infinity,
822
872
  onNegativeInfinity: () => -Infinity
823
873
  })
@@ -841,7 +891,7 @@ export const toMillis = (self: Input): number =>
841
891
  export const toSeconds = (self: Input): number =>
842
892
  match(fromInputUnsafe(self), {
843
893
  onMillis: (millis) => millis / 1_000,
844
- onNanos: (nanos) => Number(nanos) / 1_000_000_000,
894
+ onNanos: (nanos) => nanosToUnit(nanos, 1_000_000_000),
845
895
  onInfinity: () => Infinity,
846
896
  onNegativeInfinity: () => -Infinity
847
897
  })
@@ -865,7 +915,7 @@ export const toSeconds = (self: Input): number =>
865
915
  export const toMinutes = (self: Input): number =>
866
916
  match(fromInputUnsafe(self), {
867
917
  onMillis: (millis) => millis / 60_000,
868
- onNanos: (nanos) => Number(nanos) / 60_000_000_000,
918
+ onNanos: (nanos) => nanosToUnit(nanos, 60_000_000_000),
869
919
  onInfinity: () => Infinity,
870
920
  onNegativeInfinity: () => -Infinity
871
921
  })
@@ -889,7 +939,7 @@ export const toMinutes = (self: Input): number =>
889
939
  export const toHours = (self: Input): number =>
890
940
  match(fromInputUnsafe(self), {
891
941
  onMillis: (millis) => millis / 3_600_000,
892
- onNanos: (nanos) => Number(nanos) / 3_600_000_000_000,
942
+ onNanos: (nanos) => nanosToUnit(nanos, 3_600_000_000_000),
893
943
  onInfinity: () => Infinity,
894
944
  onNegativeInfinity: () => -Infinity
895
945
  })
@@ -913,7 +963,7 @@ export const toHours = (self: Input): number =>
913
963
  export const toDays = (self: Input): number =>
914
964
  match(fromInputUnsafe(self), {
915
965
  onMillis: (millis) => millis / 86_400_000,
916
- onNanos: (nanos) => Number(nanos) / 86_400_000_000_000,
966
+ onNanos: (nanos) => nanosToUnit(nanos, 86_400_000_000_000),
917
967
  onInfinity: () => Infinity,
918
968
  onNegativeInfinity: () => -Infinity
919
969
  })
@@ -937,7 +987,7 @@ export const toDays = (self: Input): number =>
937
987
  export const toWeeks = (self: Input): number =>
938
988
  match(fromInputUnsafe(self), {
939
989
  onMillis: (millis) => millis / 604_800_000,
940
- onNanos: (nanos) => Number(nanos) / 604_800_000_000_000,
990
+ onNanos: (nanos) => nanosToUnit(nanos, 604_800_000_000_000),
941
991
  onInfinity: () => Infinity,
942
992
  onNegativeInfinity: () => -Infinity
943
993
  })