effect 4.0.5 → 4.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1177) hide show
  1. package/ai-docs/package.json +1 -1
  2. package/ai-docs/src/06_schedule/10_schedules.ts +5 -4
  3. package/ai-docs/tsconfig.json +3 -1
  4. package/dist/Arbitrary.d.ts +10 -2
  5. package/dist/Arbitrary.d.ts.map +1 -1
  6. package/dist/Arbitrary.js +2 -1
  7. package/dist/Arbitrary.js.map +1 -1
  8. package/dist/Array.d.ts +117 -52
  9. package/dist/Array.d.ts.map +1 -1
  10. package/dist/Array.js +41 -20
  11. package/dist/Array.js.map +1 -1
  12. package/dist/Bytes.d.ts +79 -0
  13. package/dist/Bytes.d.ts.map +1 -0
  14. package/dist/Bytes.js +109 -0
  15. package/dist/Bytes.js.map +1 -0
  16. package/dist/Channel.d.ts +181 -13
  17. package/dist/Channel.d.ts.map +1 -1
  18. package/dist/Channel.js +144 -34
  19. package/dist/Channel.js.map +1 -1
  20. package/dist/ChannelSchema.d.ts.map +1 -1
  21. package/dist/ChannelSchema.js.map +1 -1
  22. package/dist/Chunk.d.ts +39 -21
  23. package/dist/Chunk.d.ts.map +1 -1
  24. package/dist/Chunk.js +26 -17
  25. package/dist/Chunk.js.map +1 -1
  26. package/dist/Config.d.ts.map +1 -1
  27. package/dist/Config.js +8 -3
  28. package/dist/Config.js.map +1 -1
  29. package/dist/ConfigProvider.d.ts.map +1 -1
  30. package/dist/ConfigProvider.js +2 -1
  31. package/dist/ConfigProvider.js.map +1 -1
  32. package/dist/Cron.d.ts +2 -2
  33. package/dist/Cron.d.ts.map +1 -1
  34. package/dist/Cron.js +6 -3
  35. package/dist/Cron.js.map +1 -1
  36. package/dist/Data.d.ts +54 -235
  37. package/dist/Data.d.ts.map +1 -1
  38. package/dist/Data.js.map +1 -1
  39. package/dist/Duration.d.ts.map +1 -1
  40. package/dist/Duration.js +56 -16
  41. package/dist/Duration.js.map +1 -1
  42. package/dist/Effect.d.ts +488 -164
  43. package/dist/Effect.d.ts.map +1 -1
  44. package/dist/Effect.js +204 -38
  45. package/dist/Effect.js.map +1 -1
  46. package/dist/Equal.d.ts.map +1 -1
  47. package/dist/Equal.js +8 -1
  48. package/dist/Equal.js.map +1 -1
  49. package/dist/Equivalence.d.ts +2 -1
  50. package/dist/Equivalence.d.ts.map +1 -1
  51. package/dist/Equivalence.js +12 -8
  52. package/dist/Equivalence.js.map +1 -1
  53. package/dist/Exit.d.ts +27 -12
  54. package/dist/Exit.d.ts.map +1 -1
  55. package/dist/Exit.js +8 -3
  56. package/dist/Exit.js.map +1 -1
  57. package/dist/FiberHandle.d.ts +2 -0
  58. package/dist/FiberHandle.d.ts.map +1 -1
  59. package/dist/FiberHandle.js +9 -4
  60. package/dist/FiberHandle.js.map +1 -1
  61. package/dist/FiberMap.d.ts +2 -0
  62. package/dist/FiberMap.d.ts.map +1 -1
  63. package/dist/FiberMap.js +5 -2
  64. package/dist/FiberMap.js.map +1 -1
  65. package/dist/FileSystem.d.ts +5 -0
  66. package/dist/FileSystem.d.ts.map +1 -1
  67. package/dist/FileSystem.js +3 -0
  68. package/dist/FileSystem.js.map +1 -1
  69. package/dist/Formatter.d.ts.map +1 -1
  70. package/dist/Formatter.js +27 -13
  71. package/dist/Formatter.js.map +1 -1
  72. package/dist/Graph.d.ts.map +1 -1
  73. package/dist/Graph.js.map +1 -1
  74. package/dist/Hash.d.ts.map +1 -1
  75. package/dist/Hash.js +4 -1
  76. package/dist/Hash.js.map +1 -1
  77. package/dist/HashSet.d.ts.map +1 -1
  78. package/dist/HashSet.js.map +1 -1
  79. package/dist/Iterable.d.ts.map +1 -1
  80. package/dist/Iterable.js +18 -17
  81. package/dist/Iterable.js.map +1 -1
  82. package/dist/JsonPatch.js +4 -0
  83. package/dist/JsonPatch.js.map +1 -1
  84. package/dist/JsonSchema.d.ts +9 -3
  85. package/dist/JsonSchema.d.ts.map +1 -1
  86. package/dist/JsonSchema.js +32 -43
  87. package/dist/JsonSchema.js.map +1 -1
  88. package/dist/Layer.d.ts.map +1 -1
  89. package/dist/Layer.js +2 -2
  90. package/dist/Layer.js.map +1 -1
  91. package/dist/ManagedRuntime.d.ts +19 -1
  92. package/dist/ManagedRuntime.d.ts.map +1 -1
  93. package/dist/ManagedRuntime.js +62 -6
  94. package/dist/ManagedRuntime.js.map +1 -1
  95. package/dist/Metric.d.ts +135 -3
  96. package/dist/Metric.d.ts.map +1 -1
  97. package/dist/Metric.js +197 -25
  98. package/dist/Metric.js.map +1 -1
  99. package/dist/MutableHashMap.d.ts.map +1 -1
  100. package/dist/MutableHashMap.js.map +1 -1
  101. package/dist/MutableList.d.ts +5 -2
  102. package/dist/MutableList.d.ts.map +1 -1
  103. package/dist/MutableList.js +7 -5
  104. package/dist/MutableList.js.map +1 -1
  105. package/dist/MutableRef.d.ts.map +1 -1
  106. package/dist/MutableRef.js +7 -0
  107. package/dist/MutableRef.js.map +1 -1
  108. package/dist/Number.js +2 -2
  109. package/dist/Number.js.map +1 -1
  110. package/dist/Optic.d.ts.map +1 -1
  111. package/dist/Optic.js.map +1 -1
  112. package/dist/PartitionedSemaphore.d.ts +2 -1
  113. package/dist/PartitionedSemaphore.d.ts.map +1 -1
  114. package/dist/PartitionedSemaphore.js +22 -12
  115. package/dist/PartitionedSemaphore.js.map +1 -1
  116. package/dist/Path.d.ts.map +1 -1
  117. package/dist/Path.js +8 -1
  118. package/dist/Path.js.map +1 -1
  119. package/dist/Pool.d.ts.map +1 -1
  120. package/dist/Pool.js +77 -27
  121. package/dist/Pool.js.map +1 -1
  122. package/dist/PubSub.d.ts.map +1 -1
  123. package/dist/PubSub.js +17 -13
  124. package/dist/PubSub.js.map +1 -1
  125. package/dist/Queue.d.ts +4 -1
  126. package/dist/Queue.d.ts.map +1 -1
  127. package/dist/Queue.js +4 -1
  128. package/dist/Queue.js.map +1 -1
  129. package/dist/Random.d.ts.map +1 -1
  130. package/dist/Random.js +1 -1
  131. package/dist/Random.js.map +1 -1
  132. package/dist/RcMap.d.ts +12 -7
  133. package/dist/RcMap.d.ts.map +1 -1
  134. package/dist/RcMap.js +9 -6
  135. package/dist/RcMap.js.map +1 -1
  136. package/dist/Record.d.ts +51 -0
  137. package/dist/Record.d.ts.map +1 -1
  138. package/dist/Record.js +17 -0
  139. package/dist/Record.js.map +1 -1
  140. package/dist/Ref.d.ts.map +1 -1
  141. package/dist/Ref.js +8 -0
  142. package/dist/Ref.js.map +1 -1
  143. package/dist/References.d.ts +5 -4
  144. package/dist/References.d.ts.map +1 -1
  145. package/dist/References.js +5 -4
  146. package/dist/References.js.map +1 -1
  147. package/dist/RequestResolver.d.ts +31 -1
  148. package/dist/RequestResolver.d.ts.map +1 -1
  149. package/dist/RequestResolver.js +39 -4
  150. package/dist/RequestResolver.js.map +1 -1
  151. package/dist/Resource.js +1 -1
  152. package/dist/Resource.js.map +1 -1
  153. package/dist/Runtime.d.ts +3 -3
  154. package/dist/Runtime.d.ts.map +1 -1
  155. package/dist/Runtime.js +18 -15
  156. package/dist/Runtime.js.map +1 -1
  157. package/dist/Schedule.d.ts.map +1 -1
  158. package/dist/Schedule.js +1 -1
  159. package/dist/Schedule.js.map +1 -1
  160. package/dist/Schema.d.ts +408 -340
  161. package/dist/Schema.d.ts.map +1 -1
  162. package/dist/Schema.js +370 -47
  163. package/dist/Schema.js.map +1 -1
  164. package/dist/SchemaAST.d.ts +9 -7
  165. package/dist/SchemaAST.d.ts.map +1 -1
  166. package/dist/SchemaAST.js +38 -25
  167. package/dist/SchemaAST.js.map +1 -1
  168. package/dist/SchemaGetter.d.ts +8 -3
  169. package/dist/SchemaGetter.d.ts.map +1 -1
  170. package/dist/SchemaGetter.js +15 -5
  171. package/dist/SchemaGetter.js.map +1 -1
  172. package/dist/SchemaIssue.d.ts +4 -4
  173. package/dist/SchemaIssue.d.ts.map +1 -1
  174. package/dist/SchemaIssue.js +29 -51
  175. package/dist/SchemaIssue.js.map +1 -1
  176. package/dist/SchemaParser.d.ts.map +1 -1
  177. package/dist/SchemaParser.js +48 -22
  178. package/dist/SchemaParser.js.map +1 -1
  179. package/dist/SchemaRepresentation.d.ts +75 -11
  180. package/dist/SchemaRepresentation.d.ts.map +1 -1
  181. package/dist/SchemaRepresentation.js +41 -13
  182. package/dist/SchemaRepresentation.js.map +1 -1
  183. package/dist/SchemaTransformation.d.ts +5 -2
  184. package/dist/SchemaTransformation.d.ts.map +1 -1
  185. package/dist/SchemaTransformation.js +10 -3
  186. package/dist/SchemaTransformation.js.map +1 -1
  187. package/dist/Scope.d.ts +12 -2
  188. package/dist/Scope.d.ts.map +1 -1
  189. package/dist/Scope.js +5 -0
  190. package/dist/Scope.js.map +1 -1
  191. package/dist/ScopedCache.d.ts +10 -7
  192. package/dist/ScopedCache.d.ts.map +1 -1
  193. package/dist/ScopedCache.js +9 -5
  194. package/dist/ScopedCache.js.map +1 -1
  195. package/dist/SemVer.d.ts +1196 -0
  196. package/dist/SemVer.d.ts.map +1 -0
  197. package/dist/SemVer.js +756 -0
  198. package/dist/SemVer.js.map +1 -0
  199. package/dist/SemVerRange.d.ts +559 -0
  200. package/dist/SemVerRange.d.ts.map +1 -0
  201. package/dist/SemVerRange.js +551 -0
  202. package/dist/SemVerRange.js.map +1 -0
  203. package/dist/Semaphore.d.ts.map +1 -1
  204. package/dist/Semaphore.js +54 -35
  205. package/dist/Semaphore.js.map +1 -1
  206. package/dist/Sink.d.ts.map +1 -1
  207. package/dist/Sink.js +13 -4
  208. package/dist/Sink.js.map +1 -1
  209. package/dist/Stream.d.ts +235 -8
  210. package/dist/Stream.d.ts.map +1 -1
  211. package/dist/Stream.js +167 -70
  212. package/dist/Stream.js.map +1 -1
  213. package/dist/String.d.ts +7 -2
  214. package/dist/String.d.ts.map +1 -1
  215. package/dist/String.js +11 -6
  216. package/dist/String.js.map +1 -1
  217. package/dist/TextDiff.d.ts +399 -0
  218. package/dist/TextDiff.d.ts.map +1 -0
  219. package/dist/TextDiff.js +634 -0
  220. package/dist/TextDiff.js.map +1 -0
  221. package/dist/Tracer.d.ts +11 -1
  222. package/dist/Tracer.d.ts.map +1 -1
  223. package/dist/Tracer.js +6 -1
  224. package/dist/Tracer.js.map +1 -1
  225. package/dist/TxHashMap.d.ts.map +1 -1
  226. package/dist/TxHashMap.js.map +1 -1
  227. package/dist/TxHashSet.d.ts.map +1 -1
  228. package/dist/TxHashSet.js.map +1 -1
  229. package/dist/ai/AiError.d.ts +68 -4
  230. package/dist/ai/AiError.d.ts.map +1 -1
  231. package/dist/ai/AiError.js +50 -2
  232. package/dist/ai/AiError.js.map +1 -1
  233. package/dist/ai/Chat.d.ts +1 -2
  234. package/dist/ai/Chat.d.ts.map +1 -1
  235. package/dist/ai/Chat.js +6 -3
  236. package/dist/ai/Chat.js.map +1 -1
  237. package/dist/ai/Decision.d.ts +46 -1
  238. package/dist/ai/Decision.d.ts.map +1 -1
  239. package/dist/ai/Decision.js.map +1 -1
  240. package/dist/ai/DecisionModel.d.ts +129 -11
  241. package/dist/ai/DecisionModel.d.ts.map +1 -1
  242. package/dist/ai/DecisionModel.js +182 -94
  243. package/dist/ai/DecisionModel.js.map +1 -1
  244. package/dist/ai/EmbeddingModel.d.ts +10 -0
  245. package/dist/ai/EmbeddingModel.d.ts.map +1 -1
  246. package/dist/ai/EmbeddingModel.js +21 -7
  247. package/dist/ai/EmbeddingModel.js.map +1 -1
  248. package/dist/ai/LanguageModel.d.ts.map +1 -1
  249. package/dist/ai/LanguageModel.js +9 -0
  250. package/dist/ai/LanguageModel.js.map +1 -1
  251. package/dist/ai/McpClient.d.ts +289 -0
  252. package/dist/ai/McpClient.d.ts.map +1 -0
  253. package/dist/ai/McpClient.js +819 -0
  254. package/dist/ai/McpClient.js.map +1 -0
  255. package/dist/ai/McpClientError.d.ts +254 -0
  256. package/dist/ai/McpClientError.d.ts.map +1 -0
  257. package/dist/ai/McpClientError.js +260 -0
  258. package/dist/ai/McpClientError.js.map +1 -0
  259. package/dist/ai/McpProtocol.d.ts +2 -2
  260. package/dist/ai/McpProtocol.d.ts.map +1 -1
  261. package/dist/ai/McpSchema.d.ts +258 -125
  262. package/dist/ai/McpSchema.d.ts.map +1 -1
  263. package/dist/ai/McpSchema.js +94 -24
  264. package/dist/ai/McpSchema.js.map +1 -1
  265. package/dist/ai/McpServer.d.ts.map +1 -1
  266. package/dist/ai/McpServer.js +46 -37
  267. package/dist/ai/McpServer.js.map +1 -1
  268. package/dist/ai/Prompt.d.ts +74 -20
  269. package/dist/ai/Prompt.d.ts.map +1 -1
  270. package/dist/ai/Prompt.js +61 -1
  271. package/dist/ai/Prompt.js.map +1 -1
  272. package/dist/ai/Response.d.ts +160 -3
  273. package/dist/ai/Response.d.ts.map +1 -1
  274. package/dist/ai/Response.js +39 -37
  275. package/dist/ai/Response.js.map +1 -1
  276. package/dist/ai/Tool.d.ts +36 -4
  277. package/dist/ai/Tool.d.ts.map +1 -1
  278. package/dist/ai/Tool.js +5 -2
  279. package/dist/ai/Tool.js.map +1 -1
  280. package/dist/ai/Toolkit.d.ts +48 -1
  281. package/dist/ai/Toolkit.d.ts.map +1 -1
  282. package/dist/ai/Toolkit.js +73 -13
  283. package/dist/ai/Toolkit.js.map +1 -1
  284. package/dist/ai/index.d.ts +10 -0
  285. package/dist/ai/index.d.ts.map +1 -1
  286. package/dist/ai/index.js +10 -0
  287. package/dist/ai/index.js.map +1 -1
  288. package/dist/ai/internal/mcpCore.js.map +1 -1
  289. package/dist/ai/internal/mcpProtocol/v2024_11_05.js +1 -1
  290. package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
  291. package/dist/ai/internal/mcpProtocol/v2025_03_26.js +1 -1
  292. package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
  293. package/dist/ai/internal/mcpProtocol/v2025_06_18.js +2 -2
  294. package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
  295. package/dist/ai/internal/mcpProtocol/v2025_11_25.js +2 -2
  296. package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
  297. package/dist/ai/internal/mcpProtocol/v2026_07_28.js +4 -7
  298. package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
  299. package/dist/ai/internal/mcpProtocol.js +16 -2
  300. package/dist/ai/internal/mcpProtocol.js.map +1 -1
  301. package/dist/ai/internal/mcpRuntime.js +3 -4
  302. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  303. package/dist/ai/internal/mcpSchema/v2024_11_05.js +19 -13
  304. package/dist/ai/internal/mcpSchema/v2024_11_05.js.map +1 -1
  305. package/dist/ai/internal/mcpSchema/v2025_03_26.js +3 -2
  306. package/dist/ai/internal/mcpSchema/v2025_03_26.js.map +1 -1
  307. package/dist/ai/internal/mcpSchema/v2025_06_18.js +7 -7
  308. package/dist/ai/internal/mcpSchema/v2025_06_18.js.map +1 -1
  309. package/dist/ai/internal/mcpSchema/v2025_11_25.js +8 -8
  310. package/dist/ai/internal/mcpSchema/v2025_11_25.js.map +1 -1
  311. package/dist/ai/internal/mcpSchema/v2026_07_28.js +43 -42
  312. package/dist/ai/internal/mcpSchema/v2026_07_28.js.map +1 -1
  313. package/dist/cli/Argument.d.ts +15 -0
  314. package/dist/cli/Argument.d.ts.map +1 -1
  315. package/dist/cli/Argument.js +5 -0
  316. package/dist/cli/Argument.js.map +1 -1
  317. package/dist/cli/CliError.d.ts +120 -2
  318. package/dist/cli/CliError.d.ts.map +1 -1
  319. package/dist/cli/CliError.js +106 -5
  320. package/dist/cli/CliError.js.map +1 -1
  321. package/dist/cli/CliOutput.d.ts +155 -6
  322. package/dist/cli/CliOutput.d.ts.map +1 -1
  323. package/dist/cli/CliOutput.js +62 -6
  324. package/dist/cli/CliOutput.js.map +1 -1
  325. package/dist/cli/Command.d.ts +310 -18
  326. package/dist/cli/Command.d.ts.map +1 -1
  327. package/dist/cli/Command.js +164 -33
  328. package/dist/cli/Command.js.map +1 -1
  329. package/dist/cli/Completions.d.ts +63 -0
  330. package/dist/cli/Completions.d.ts.map +1 -1
  331. package/dist/cli/Completions.js +49 -9
  332. package/dist/cli/Completions.js.map +1 -1
  333. package/dist/cli/Flag.d.ts +130 -0
  334. package/dist/cli/Flag.d.ts.map +1 -1
  335. package/dist/cli/Flag.js +61 -0
  336. package/dist/cli/Flag.js.map +1 -1
  337. package/dist/cli/GlobalFlag.d.ts.map +1 -1
  338. package/dist/cli/GlobalFlag.js +14 -6
  339. package/dist/cli/GlobalFlag.js.map +1 -1
  340. package/dist/cli/Param.d.ts +116 -0
  341. package/dist/cli/Param.d.ts.map +1 -1
  342. package/dist/cli/Param.js +77 -2
  343. package/dist/cli/Param.js.map +1 -1
  344. package/dist/cli/TerminalCapabilities.d.ts +85 -0
  345. package/dist/cli/TerminalCapabilities.d.ts.map +1 -0
  346. package/dist/cli/TerminalCapabilities.js +124 -0
  347. package/dist/cli/TerminalCapabilities.js.map +1 -0
  348. package/dist/cli/index.d.ts +5 -0
  349. package/dist/cli/index.d.ts.map +1 -1
  350. package/dist/cli/index.js +5 -0
  351. package/dist/cli/index.js.map +1 -1
  352. package/dist/cli/internal/command.d.ts +2 -1
  353. package/dist/cli/internal/command.d.ts.map +1 -1
  354. package/dist/cli/internal/command.js +5 -2
  355. package/dist/cli/internal/command.js.map +1 -1
  356. package/dist/cli/internal/completions/bash.js +77 -30
  357. package/dist/cli/internal/completions/bash.js.map +1 -1
  358. package/dist/cli/internal/completions/descriptor.js +9 -1
  359. package/dist/cli/internal/completions/descriptor.js.map +1 -1
  360. package/dist/cli/internal/completions/fish.js +10 -8
  361. package/dist/cli/internal/completions/fish.js.map +1 -1
  362. package/dist/cli/internal/completions/powershell.js +18 -9
  363. package/dist/cli/internal/completions/powershell.js.map +1 -1
  364. package/dist/cli/internal/completions/zsh.js +8 -5
  365. package/dist/cli/internal/completions/zsh.js.map +1 -1
  366. package/dist/cli/internal/formatter.d.ts +2 -0
  367. package/dist/cli/internal/formatter.d.ts.map +1 -0
  368. package/dist/cli/internal/formatter.js +15 -0
  369. package/dist/cli/internal/formatter.js.map +1 -0
  370. package/dist/cli/internal/lexer.js +24 -10
  371. package/dist/cli/internal/lexer.js.map +1 -1
  372. package/dist/cli/internal/parser.js +24 -12
  373. package/dist/cli/internal/parser.js.map +1 -1
  374. package/dist/cluster/ClusterCron.d.ts +29 -1
  375. package/dist/cluster/ClusterCron.d.ts.map +1 -1
  376. package/dist/cluster/ClusterCron.js +64 -32
  377. package/dist/cluster/ClusterCron.js.map +1 -1
  378. package/dist/cluster/ClusterMetrics.d.ts +143 -7
  379. package/dist/cluster/ClusterMetrics.d.ts.map +1 -1
  380. package/dist/cluster/ClusterMetrics.js +151 -7
  381. package/dist/cluster/ClusterMetrics.js.map +1 -1
  382. package/dist/cluster/ClusterWorkflowEngine.d.ts +1 -1
  383. package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  384. package/dist/cluster/ClusterWorkflowEngine.js +82 -21
  385. package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
  386. package/dist/cluster/Entity.d.ts +2 -0
  387. package/dist/cluster/Entity.d.ts.map +1 -1
  388. package/dist/cluster/Entity.js.map +1 -1
  389. package/dist/cluster/MessageStorage.d.ts +44 -45
  390. package/dist/cluster/MessageStorage.d.ts.map +1 -1
  391. package/dist/cluster/MessageStorage.js +6 -7
  392. package/dist/cluster/MessageStorage.js.map +1 -1
  393. package/dist/cluster/Runners.d.ts.map +1 -1
  394. package/dist/cluster/Runners.js +54 -15
  395. package/dist/cluster/Runners.js.map +1 -1
  396. package/dist/cluster/Sharding.d.ts +1 -0
  397. package/dist/cluster/Sharding.d.ts.map +1 -1
  398. package/dist/cluster/Sharding.js +155 -52
  399. package/dist/cluster/Sharding.js.map +1 -1
  400. package/dist/cluster/ShardingConfig.d.ts +30 -0
  401. package/dist/cluster/ShardingConfig.d.ts.map +1 -1
  402. package/dist/cluster/ShardingConfig.js +4 -0
  403. package/dist/cluster/ShardingConfig.js.map +1 -1
  404. package/dist/cluster/Snowflake.d.ts.map +1 -1
  405. package/dist/cluster/Snowflake.js +3 -7
  406. package/dist/cluster/Snowflake.js.map +1 -1
  407. package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
  408. package/dist/cluster/SqlMessageStorage.js +40 -50
  409. package/dist/cluster/SqlMessageStorage.js.map +1 -1
  410. package/dist/cluster/SqlRunnerStorage.d.ts +2 -2
  411. package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
  412. package/dist/cluster/SqlRunnerStorage.js +97 -43
  413. package/dist/cluster/SqlRunnerStorage.js.map +1 -1
  414. package/dist/cluster/internal/entityManager.js +119 -28
  415. package/dist/cluster/internal/entityManager.js.map +1 -1
  416. package/dist/devtools/DevTools.d.ts +3 -2
  417. package/dist/devtools/DevTools.d.ts.map +1 -1
  418. package/dist/devtools/DevTools.js +3 -2
  419. package/dist/devtools/DevTools.js.map +1 -1
  420. package/dist/devtools/DevToolsClient.d.ts +11 -0
  421. package/dist/devtools/DevToolsClient.d.ts.map +1 -1
  422. package/dist/devtools/DevToolsClient.js +33 -4
  423. package/dist/devtools/DevToolsClient.js.map +1 -1
  424. package/dist/encoding/Base64.js +36 -0
  425. package/dist/encoding/Base64.js.map +1 -1
  426. package/dist/encoding/Base64Url.d.ts +29 -0
  427. package/dist/encoding/Base64Url.d.ts.map +1 -1
  428. package/dist/encoding/Base64Url.js +29 -0
  429. package/dist/encoding/Base64Url.js.map +1 -1
  430. package/dist/encoding/Ini.d.ts.map +1 -1
  431. package/dist/encoding/Ini.js +3 -0
  432. package/dist/encoding/Ini.js.map +1 -1
  433. package/dist/encoding/JsonArray.d.ts +270 -0
  434. package/dist/encoding/JsonArray.d.ts.map +1 -0
  435. package/dist/encoding/JsonArray.js +691 -0
  436. package/dist/encoding/JsonArray.js.map +1 -0
  437. package/dist/encoding/Ndjson.d.ts +43 -4
  438. package/dist/encoding/Ndjson.d.ts.map +1 -1
  439. package/dist/encoding/Ndjson.js +169 -18
  440. package/dist/encoding/Ndjson.js.map +1 -1
  441. package/dist/encoding/SchemaBinary.d.ts +9 -1
  442. package/dist/encoding/SchemaBinary.d.ts.map +1 -1
  443. package/dist/encoding/SchemaBinary.js +12 -19
  444. package/dist/encoding/SchemaBinary.js.map +1 -1
  445. package/dist/encoding/Sse.d.ts.map +1 -1
  446. package/dist/encoding/Sse.js +3 -3
  447. package/dist/encoding/Sse.js.map +1 -1
  448. package/dist/encoding/Tar.d.ts +309 -0
  449. package/dist/encoding/Tar.d.ts.map +1 -0
  450. package/dist/encoding/Tar.js +1182 -0
  451. package/dist/encoding/Tar.js.map +1 -0
  452. package/dist/encoding/Toml.d.ts.map +1 -1
  453. package/dist/encoding/Toml.js +24 -19
  454. package/dist/encoding/Toml.js.map +1 -1
  455. package/dist/encoding/Xml.d.ts +464 -0
  456. package/dist/encoding/Xml.d.ts.map +1 -0
  457. package/dist/encoding/Xml.js +1619 -0
  458. package/dist/encoding/Xml.js.map +1 -0
  459. package/dist/encoding/Yaml.d.ts +6 -2
  460. package/dist/encoding/Yaml.d.ts.map +1 -1
  461. package/dist/encoding/Yaml.js +97 -34
  462. package/dist/encoding/Yaml.js.map +1 -1
  463. package/dist/encoding/Zip.d.ts +413 -0
  464. package/dist/encoding/Zip.d.ts.map +1 -0
  465. package/dist/encoding/Zip.js +1255 -0
  466. package/dist/encoding/Zip.js.map +1 -0
  467. package/dist/encoding/index.d.ts +20 -0
  468. package/dist/encoding/index.d.ts.map +1 -1
  469. package/dist/encoding/index.js +20 -0
  470. package/dist/encoding/index.js.map +1 -1
  471. package/dist/eventlog/EventJournal.d.ts +90 -5
  472. package/dist/eventlog/EventJournal.d.ts.map +1 -1
  473. package/dist/eventlog/EventJournal.js +488 -228
  474. package/dist/eventlog/EventJournal.js.map +1 -1
  475. package/dist/eventlog/EventLog.d.ts +180 -12
  476. package/dist/eventlog/EventLog.d.ts.map +1 -1
  477. package/dist/eventlog/EventLog.js +394 -146
  478. package/dist/eventlog/EventLog.js.map +1 -1
  479. package/dist/eventlog/EventLogEncryption.d.ts +36 -30
  480. package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
  481. package/dist/eventlog/EventLogEncryption.js +97 -38
  482. package/dist/eventlog/EventLogEncryption.js.map +1 -1
  483. package/dist/eventlog/EventLogMessage.d.ts +74 -34
  484. package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
  485. package/dist/eventlog/EventLogMessage.js +45 -11
  486. package/dist/eventlog/EventLogMessage.js.map +1 -1
  487. package/dist/eventlog/EventLogRemote.d.ts +45 -8
  488. package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
  489. package/dist/eventlog/EventLogRemote.js +51 -14
  490. package/dist/eventlog/EventLogRemote.js.map +1 -1
  491. package/dist/eventlog/EventLogServer.d.ts +46 -3
  492. package/dist/eventlog/EventLogServer.d.ts.map +1 -1
  493. package/dist/eventlog/EventLogServer.js +119 -19
  494. package/dist/eventlog/EventLogServer.js.map +1 -1
  495. package/dist/eventlog/EventLogServerEncrypted.d.ts +23 -33
  496. package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  497. package/dist/eventlog/EventLogServerEncrypted.js +97 -70
  498. package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
  499. package/dist/eventlog/EventLogServerUnencrypted.d.ts +39 -5
  500. package/dist/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  501. package/dist/eventlog/EventLogServerUnencrypted.js +151 -69
  502. package/dist/eventlog/EventLogServerUnencrypted.js.map +1 -1
  503. package/dist/eventlog/EventRow.d.ts +288 -0
  504. package/dist/eventlog/EventRow.d.ts.map +1 -0
  505. package/dist/eventlog/EventRow.js +435 -0
  506. package/dist/eventlog/EventRow.js.map +1 -0
  507. package/dist/eventlog/SqlEventJournal.d.ts +18 -18
  508. package/dist/eventlog/SqlEventJournal.d.ts.map +1 -1
  509. package/dist/eventlog/SqlEventJournal.js +417 -169
  510. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  511. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +10 -18
  512. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
  513. package/dist/eventlog/SqlEventLogServerEncrypted.js +179 -69
  514. package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  515. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts +23 -3
  516. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
  517. package/dist/eventlog/SqlEventLogServerUnencrypted.js +102 -51
  518. package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  519. package/dist/eventlog/index.d.ts +5 -0
  520. package/dist/eventlog/index.d.ts.map +1 -1
  521. package/dist/eventlog/index.js +5 -0
  522. package/dist/eventlog/index.js.map +1 -1
  523. package/dist/eventlog/internal/conflicts.d.ts +46 -0
  524. package/dist/eventlog/internal/conflicts.d.ts.map +1 -0
  525. package/dist/eventlog/internal/conflicts.js +89 -0
  526. package/dist/eventlog/internal/conflicts.js.map +1 -0
  527. package/dist/graphql/GraphQLClientError.d.ts +2 -2
  528. package/dist/graphql/GraphQLClientError.d.ts.map +1 -1
  529. package/dist/graphql/GraphQLClientError.js +4 -18
  530. package/dist/graphql/GraphQLClientError.js.map +1 -1
  531. package/dist/graphql/GraphQLProtocol.d.ts +12 -9
  532. package/dist/graphql/GraphQLProtocol.d.ts.map +1 -1
  533. package/dist/graphql/GraphQLProtocol.js +4 -3
  534. package/dist/graphql/GraphQLProtocol.js.map +1 -1
  535. package/dist/graphql/GraphQLResolver.d.ts +2 -0
  536. package/dist/graphql/GraphQLResolver.d.ts.map +1 -1
  537. package/dist/graphql/GraphQLResolver.js +74 -32
  538. package/dist/graphql/GraphQLResolver.js.map +1 -1
  539. package/dist/http/Cookies.d.ts.map +1 -1
  540. package/dist/http/Cookies.js +10 -9
  541. package/dist/http/Cookies.js.map +1 -1
  542. package/dist/http/FetchHttpClient.d.ts +8 -1
  543. package/dist/http/FetchHttpClient.d.ts.map +1 -1
  544. package/dist/http/FetchHttpClient.js +51 -4
  545. package/dist/http/FetchHttpClient.js.map +1 -1
  546. package/dist/http/FindMyWay/internal/router.js +10 -0
  547. package/dist/http/FindMyWay/internal/router.js.map +1 -1
  548. package/dist/http/Headers.d.ts +227 -0
  549. package/dist/http/Headers.d.ts.map +1 -1
  550. package/dist/http/Headers.js +261 -0
  551. package/dist/http/Headers.js.map +1 -1
  552. package/dist/http/HttpClient.d.ts +516 -0
  553. package/dist/http/HttpClient.d.ts.map +1 -1
  554. package/dist/http/HttpClient.js +286 -23
  555. package/dist/http/HttpClient.js.map +1 -1
  556. package/dist/http/HttpClientError.d.ts +8 -1
  557. package/dist/http/HttpClientError.d.ts.map +1 -1
  558. package/dist/http/HttpClientError.js +37 -1
  559. package/dist/http/HttpClientError.js.map +1 -1
  560. package/dist/http/HttpClientRequest.d.ts +127 -3
  561. package/dist/http/HttpClientRequest.d.ts.map +1 -1
  562. package/dist/http/HttpClientRequest.js +45 -3
  563. package/dist/http/HttpClientRequest.js.map +1 -1
  564. package/dist/http/HttpClientResponse.d.ts +53 -0
  565. package/dist/http/HttpClientResponse.d.ts.map +1 -1
  566. package/dist/http/HttpClientResponse.js +47 -0
  567. package/dist/http/HttpClientResponse.js.map +1 -1
  568. package/dist/http/HttpEffect.d.ts +6 -2
  569. package/dist/http/HttpEffect.d.ts.map +1 -1
  570. package/dist/http/HttpEffect.js +21 -17
  571. package/dist/http/HttpEffect.js.map +1 -1
  572. package/dist/http/HttpIncomingMessage.d.ts +2 -1
  573. package/dist/http/HttpIncomingMessage.d.ts.map +1 -1
  574. package/dist/http/HttpIncomingMessage.js +3 -23
  575. package/dist/http/HttpIncomingMessage.js.map +1 -1
  576. package/dist/http/HttpMiddleware.d.ts +119 -2
  577. package/dist/http/HttpMiddleware.d.ts.map +1 -1
  578. package/dist/http/HttpMiddleware.js +173 -29
  579. package/dist/http/HttpMiddleware.js.map +1 -1
  580. package/dist/http/HttpRouter.d.ts.map +1 -1
  581. package/dist/http/HttpRouter.js +9 -3
  582. package/dist/http/HttpRouter.js.map +1 -1
  583. package/dist/http/HttpServerError.d.ts +5 -2
  584. package/dist/http/HttpServerError.d.ts.map +1 -1
  585. package/dist/http/HttpServerError.js +7 -5
  586. package/dist/http/HttpServerError.js.map +1 -1
  587. package/dist/http/HttpServerRequest.d.ts +30 -5
  588. package/dist/http/HttpServerRequest.d.ts.map +1 -1
  589. package/dist/http/HttpServerRequest.js +109 -20
  590. package/dist/http/HttpServerRequest.js.map +1 -1
  591. package/dist/http/HttpServerResponse.d.ts +17 -8
  592. package/dist/http/HttpServerResponse.d.ts.map +1 -1
  593. package/dist/http/HttpServerResponse.js +37 -21
  594. package/dist/http/HttpServerResponse.js.map +1 -1
  595. package/dist/http/HttpStaticServer.d.ts +0 -12
  596. package/dist/http/HttpStaticServer.d.ts.map +1 -1
  597. package/dist/http/HttpStaticServer.js +65 -24
  598. package/dist/http/HttpStaticServer.js.map +1 -1
  599. package/dist/http/MultipartParser/internal/contentType.d.ts +15 -1
  600. package/dist/http/MultipartParser/internal/contentType.d.ts.map +1 -1
  601. package/dist/http/MultipartParser/internal/contentType.js +89 -7
  602. package/dist/http/MultipartParser/internal/contentType.js.map +1 -1
  603. package/dist/http/MultipartParser/internal/headers.d.ts.map +1 -1
  604. package/dist/http/MultipartParser/internal/headers.js +4 -12
  605. package/dist/http/MultipartParser/internal/headers.js.map +1 -1
  606. package/dist/http/MultipartParser/internal/multipart.d.ts.map +1 -1
  607. package/dist/http/MultipartParser/internal/multipart.js +6 -27
  608. package/dist/http/MultipartParser/internal/multipart.js.map +1 -1
  609. package/dist/http/Url.d.ts.map +1 -1
  610. package/dist/http/Url.js +6 -1
  611. package/dist/http/Url.js.map +1 -1
  612. package/dist/http/UrlParams.d.ts +3 -1
  613. package/dist/http/UrlParams.d.ts.map +1 -1
  614. package/dist/http/UrlParams.js +4 -2
  615. package/dist/http/UrlParams.js.map +1 -1
  616. package/dist/http/internal/compression.js +4 -5
  617. package/dist/http/internal/compression.js.map +1 -1
  618. package/dist/http/internal/decompression.js +20 -11
  619. package/dist/http/internal/decompression.js.map +1 -1
  620. package/dist/http/internal/httpBody.js +8 -1
  621. package/dist/http/internal/httpBody.js.map +1 -1
  622. package/dist/http/internal/lazyStream.d.ts +2 -0
  623. package/dist/http/internal/lazyStream.d.ts.map +1 -0
  624. package/dist/http/internal/lazyStream.js +18 -0
  625. package/dist/http/internal/lazyStream.js.map +1 -0
  626. package/dist/http/internal/requestState.d.ts +2 -0
  627. package/dist/http/internal/requestState.d.ts.map +1 -0
  628. package/dist/http/internal/requestState.js +28 -0
  629. package/dist/http/internal/requestState.js.map +1 -0
  630. package/dist/http/internal/urlParams.js +25 -0
  631. package/dist/http/internal/urlParams.js.map +1 -1
  632. package/dist/http/internal/webResponse.d.ts +2 -0
  633. package/dist/http/internal/webResponse.d.ts.map +1 -0
  634. package/dist/http/internal/webResponse.js +12 -0
  635. package/dist/http/internal/webResponse.js.map +1 -0
  636. package/dist/http-api/HttpApi.d.ts +3 -6
  637. package/dist/http-api/HttpApi.d.ts.map +1 -1
  638. package/dist/http-api/HttpApi.js +4 -7
  639. package/dist/http-api/HttpApi.js.map +1 -1
  640. package/dist/http-api/HttpApiBuilder.d.ts.map +1 -1
  641. package/dist/http-api/HttpApiBuilder.js +142 -23
  642. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  643. package/dist/http-api/HttpApiClient.d.ts +99 -4
  644. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  645. package/dist/http-api/HttpApiClient.js +218 -60
  646. package/dist/http-api/HttpApiClient.js.map +1 -1
  647. package/dist/http-api/HttpApiEndpoint.d.ts +72 -29
  648. package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
  649. package/dist/http-api/HttpApiEndpoint.js +140 -14
  650. package/dist/http-api/HttpApiEndpoint.js.map +1 -1
  651. package/dist/http-api/HttpApiError.d.ts +58 -0
  652. package/dist/http-api/HttpApiError.d.ts.map +1 -1
  653. package/dist/http-api/HttpApiError.js +38 -12
  654. package/dist/http-api/HttpApiError.js.map +1 -1
  655. package/dist/http-api/HttpApiScalar.d.ts +2 -1
  656. package/dist/http-api/HttpApiScalar.d.ts.map +1 -1
  657. package/dist/http-api/HttpApiScalar.js +6 -3
  658. package/dist/http-api/HttpApiScalar.js.map +1 -1
  659. package/dist/http-api/HttpApiSchema.d.ts +242 -13
  660. package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
  661. package/dist/http-api/HttpApiSchema.js +149 -5
  662. package/dist/http-api/HttpApiSchema.js.map +1 -1
  663. package/dist/http-api/HttpApiSwagger.d.ts +5 -0
  664. package/dist/http-api/HttpApiSwagger.d.ts.map +1 -1
  665. package/dist/http-api/HttpApiSwagger.js +14 -4
  666. package/dist/http-api/HttpApiSwagger.js.map +1 -1
  667. package/dist/http-api/HttpApiTest.d.ts +13 -2
  668. package/dist/http-api/HttpApiTest.d.ts.map +1 -1
  669. package/dist/http-api/HttpApiTest.js +33 -11
  670. package/dist/http-api/HttpApiTest.js.map +1 -1
  671. package/dist/http-api/OpenApi.d.ts +17 -3
  672. package/dist/http-api/OpenApi.d.ts.map +1 -1
  673. package/dist/http-api/OpenApi.js +81 -47
  674. package/dist/http-api/OpenApi.js.map +1 -1
  675. package/dist/http-api/internal/path.js +35 -10
  676. package/dist/http-api/internal/path.js.map +1 -1
  677. package/dist/http-api/internal/toCodecHttpProperties.d.ts +2 -0
  678. package/dist/http-api/internal/toCodecHttpProperties.d.ts.map +1 -0
  679. package/dist/http-api/internal/toCodecHttpProperties.js +38 -0
  680. package/dist/http-api/internal/toCodecHttpProperties.js.map +1 -0
  681. package/dist/index.d.ts +20 -0
  682. package/dist/index.d.ts.map +1 -1
  683. package/dist/index.js +20 -0
  684. package/dist/index.js.map +1 -1
  685. package/dist/internal/arbitrary/runner.d.ts.map +1 -1
  686. package/dist/internal/arbitrary/runner.js +120 -44
  687. package/dist/internal/arbitrary/runner.js.map +1 -1
  688. package/dist/internal/core.js +3 -1
  689. package/dist/internal/core.js.map +1 -1
  690. package/dist/internal/dateTime.js +19 -7
  691. package/dist/internal/dateTime.js.map +1 -1
  692. package/dist/internal/effect.js +106 -87
  693. package/dist/internal/effect.js.map +1 -1
  694. package/dist/internal/equal.js +14 -0
  695. package/dist/internal/equal.js.map +1 -1
  696. package/dist/internal/hashMap.js +2 -2
  697. package/dist/internal/hashMap.js.map +1 -1
  698. package/dist/internal/hydration.d.ts +2 -0
  699. package/dist/internal/hydration.d.ts.map +1 -0
  700. package/dist/internal/hydration.js +15 -0
  701. package/dist/internal/hydration.js.map +1 -0
  702. package/dist/internal/inflate.d.ts +2 -0
  703. package/dist/internal/inflate.d.ts.map +1 -0
  704. package/dist/internal/inflate.js +680 -0
  705. package/dist/internal/inflate.js.map +1 -0
  706. package/dist/internal/jsonSchema.d.ts +2 -0
  707. package/dist/internal/jsonSchema.d.ts.map +1 -0
  708. package/dist/internal/jsonSchema.js +28 -0
  709. package/dist/internal/jsonSchema.js.map +1 -0
  710. package/dist/internal/matcher.js +1 -1
  711. package/dist/internal/matcher.js.map +1 -1
  712. package/dist/internal/record.js +6 -0
  713. package/dist/internal/record.js.map +1 -1
  714. package/dist/internal/request.js +20 -7
  715. package/dist/internal/request.js.map +1 -1
  716. package/dist/internal/schedule.js +17 -22
  717. package/dist/internal/schedule.js.map +1 -1
  718. package/dist/internal/schema/compilerRegistry.js +4 -1
  719. package/dist/internal/schema/compilerRegistry.js.map +1 -1
  720. package/dist/internal/schema/content.d.ts +2 -0
  721. package/dist/internal/schema/content.d.ts.map +1 -0
  722. package/dist/internal/schema/content.js +13 -0
  723. package/dist/internal/schema/content.js.map +1 -0
  724. package/dist/internal/schema/fromJsonSchemaDocument.js +253 -255
  725. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  726. package/dist/internal/schema/fromRepresentation.js +2 -1
  727. package/dist/internal/schema/fromRepresentation.js.map +1 -1
  728. package/dist/internal/schema/interpreter.js +51 -36
  729. package/dist/internal/schema/interpreter.js.map +1 -1
  730. package/dist/internal/schema/standardSchema.js +42 -35
  731. package/dist/internal/schema/standardSchema.js.map +1 -1
  732. package/dist/internal/schema/toCodeDocument.js +10 -5
  733. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  734. package/dist/internal/schema/toCodec.js +99 -17
  735. package/dist/internal/schema/toCodec.js.map +1 -1
  736. package/dist/internal/schema/toFormatter.js +5 -5
  737. package/dist/internal/schema/toFormatter.js.map +1 -1
  738. package/dist/internal/schema/toJsonSchemaDocument.js +257 -170
  739. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
  740. package/dist/internal/schema/toRepresentation.js +107 -129
  741. package/dist/internal/schema/toRepresentation.js.map +1 -1
  742. package/dist/internal/sql.d.ts +2 -0
  743. package/dist/internal/sql.d.ts.map +1 -0
  744. package/dist/internal/sql.js +13 -0
  745. package/dist/internal/sql.js.map +1 -0
  746. package/dist/internal/trie.js +1 -3
  747. package/dist/internal/trie.js.map +1 -1
  748. package/dist/internal/uuid.js +7 -3
  749. package/dist/internal/uuid.js.map +1 -1
  750. package/dist/internal/version.js +1 -1
  751. package/dist/net/NetAddress.d.ts.map +1 -1
  752. package/dist/net/NetAddress.js +2 -8
  753. package/dist/net/NetAddress.js.map +1 -1
  754. package/dist/observability/OtlpExporter.d.ts.map +1 -1
  755. package/dist/observability/OtlpExporter.js +5 -12
  756. package/dist/observability/OtlpExporter.js.map +1 -1
  757. package/dist/observability/OtlpMetrics.d.ts.map +1 -1
  758. package/dist/observability/OtlpMetrics.js +5 -3
  759. package/dist/observability/OtlpMetrics.js.map +1 -1
  760. package/dist/observability/OtlpProxy.d.ts +154 -0
  761. package/dist/observability/OtlpProxy.d.ts.map +1 -0
  762. package/dist/observability/OtlpProxy.js +235 -0
  763. package/dist/observability/OtlpProxy.js.map +1 -0
  764. package/dist/observability/OtlpResource.d.ts +3 -1
  765. package/dist/observability/OtlpResource.d.ts.map +1 -1
  766. package/dist/observability/OtlpResource.js +11 -4
  767. package/dist/observability/OtlpResource.js.map +1 -1
  768. package/dist/observability/OtlpSerialization.d.ts +5 -0
  769. package/dist/observability/OtlpSerialization.d.ts.map +1 -1
  770. package/dist/observability/OtlpSerialization.js +14 -3
  771. package/dist/observability/OtlpSerialization.js.map +1 -1
  772. package/dist/observability/OtlpTracer.d.ts.map +1 -1
  773. package/dist/observability/OtlpTracer.js +4 -0
  774. package/dist/observability/OtlpTracer.js.map +1 -1
  775. package/dist/observability/index.d.ts +5 -0
  776. package/dist/observability/index.d.ts.map +1 -1
  777. package/dist/observability/index.js +5 -0
  778. package/dist/observability/index.js.map +1 -1
  779. package/dist/observability/internal/protobuf.d.ts +0 -9
  780. package/dist/observability/internal/protobuf.d.ts.map +1 -1
  781. package/dist/observability/internal/protobuf.js +2 -10
  782. package/dist/observability/internal/protobuf.js.map +1 -1
  783. package/dist/persistence/CircuitBreaker.d.ts +897 -0
  784. package/dist/persistence/CircuitBreaker.d.ts.map +1 -0
  785. package/dist/persistence/CircuitBreaker.js +1165 -0
  786. package/dist/persistence/CircuitBreaker.js.map +1 -0
  787. package/dist/persistence/PersistedCache.d.ts.map +1 -1
  788. package/dist/persistence/PersistedCache.js +1 -1
  789. package/dist/persistence/PersistedCache.js.map +1 -1
  790. package/dist/persistence/PersistedQueue.d.ts +6 -2
  791. package/dist/persistence/PersistedQueue.d.ts.map +1 -1
  792. package/dist/persistence/PersistedQueue.js +162 -84
  793. package/dist/persistence/PersistedQueue.js.map +1 -1
  794. package/dist/persistence/Persistence.d.ts +28 -0
  795. package/dist/persistence/Persistence.d.ts.map +1 -1
  796. package/dist/persistence/Persistence.js +36 -8
  797. package/dist/persistence/Persistence.js.map +1 -1
  798. package/dist/persistence/RateLimiter.d.ts.map +1 -1
  799. package/dist/persistence/RateLimiter.js +8 -12
  800. package/dist/persistence/RateLimiter.js.map +1 -1
  801. package/dist/persistence/Redis.d.ts +78 -2
  802. package/dist/persistence/Redis.d.ts.map +1 -1
  803. package/dist/persistence/Redis.js +62 -7
  804. package/dist/persistence/Redis.js.map +1 -1
  805. package/dist/persistence/UserDirectories.d.ts +129 -0
  806. package/dist/persistence/UserDirectories.d.ts.map +1 -0
  807. package/dist/persistence/UserDirectories.js +178 -0
  808. package/dist/persistence/UserDirectories.js.map +1 -0
  809. package/dist/persistence/index.d.ts +10 -0
  810. package/dist/persistence/index.d.ts.map +1 -1
  811. package/dist/persistence/index.js +10 -0
  812. package/dist/persistence/index.js.map +1 -1
  813. package/dist/process/ChildProcess.d.ts +32 -5
  814. package/dist/process/ChildProcess.d.ts.map +1 -1
  815. package/dist/process/ChildProcess.js.map +1 -1
  816. package/dist/process/ChildProcessSpawner.d.ts +30 -0
  817. package/dist/process/ChildProcessSpawner.d.ts.map +1 -1
  818. package/dist/process/ChildProcessSpawner.js +5 -2
  819. package/dist/process/ChildProcessSpawner.js.map +1 -1
  820. package/dist/reactivity/AsyncResult.d.ts +1 -1
  821. package/dist/reactivity/AsyncResult.d.ts.map +1 -1
  822. package/dist/reactivity/AsyncResult.js +1 -1
  823. package/dist/reactivity/AsyncResult.js.map +1 -1
  824. package/dist/reactivity/Atom.d.ts +69 -30
  825. package/dist/reactivity/Atom.d.ts.map +1 -1
  826. package/dist/reactivity/Atom.js +40 -15
  827. package/dist/reactivity/Atom.js.map +1 -1
  828. package/dist/reactivity/AtomHttpApi.d.ts +5 -5
  829. package/dist/reactivity/AtomHttpApi.d.ts.map +1 -1
  830. package/dist/reactivity/AtomHttpApi.js +1 -1
  831. package/dist/reactivity/AtomHttpApi.js.map +1 -1
  832. package/dist/reactivity/AtomRegistry.d.ts +2 -2
  833. package/dist/reactivity/AtomRegistry.d.ts.map +1 -1
  834. package/dist/reactivity/AtomRegistry.js +44 -9
  835. package/dist/reactivity/AtomRegistry.js.map +1 -1
  836. package/dist/reactivity/AtomRpc.d.ts +3 -3
  837. package/dist/reactivity/AtomRpc.d.ts.map +1 -1
  838. package/dist/reactivity/AtomRpc.js +1 -1
  839. package/dist/reactivity/AtomRpc.js.map +1 -1
  840. package/dist/reactivity/Hydration.d.ts.map +1 -1
  841. package/dist/reactivity/Hydration.js +46 -12
  842. package/dist/reactivity/Hydration.js.map +1 -1
  843. package/dist/reactivity/Reactivity.d.ts +71 -7
  844. package/dist/reactivity/Reactivity.d.ts.map +1 -1
  845. package/dist/reactivity/Reactivity.js +21 -12
  846. package/dist/reactivity/Reactivity.js.map +1 -1
  847. package/dist/rpc/Rpc.d.ts +18 -0
  848. package/dist/rpc/Rpc.d.ts.map +1 -1
  849. package/dist/rpc/Rpc.js +20 -0
  850. package/dist/rpc/Rpc.js.map +1 -1
  851. package/dist/rpc/RpcClient.d.ts +26 -2
  852. package/dist/rpc/RpcClient.d.ts.map +1 -1
  853. package/dist/rpc/RpcClient.js +198 -61
  854. package/dist/rpc/RpcClient.js.map +1 -1
  855. package/dist/rpc/RpcSerialization.d.ts +29 -0
  856. package/dist/rpc/RpcSerialization.d.ts.map +1 -1
  857. package/dist/rpc/RpcSerialization.js +41 -13
  858. package/dist/rpc/RpcSerialization.js.map +1 -1
  859. package/dist/rpc/RpcServer.d.ts.map +1 -1
  860. package/dist/rpc/RpcServer.js +20 -19
  861. package/dist/rpc/RpcServer.js.map +1 -1
  862. package/dist/rpc/RpcTest.d.ts +1 -0
  863. package/dist/rpc/RpcTest.d.ts.map +1 -1
  864. package/dist/rpc/RpcTest.js +1 -0
  865. package/dist/rpc/RpcTest.js.map +1 -1
  866. package/dist/schema/Model.d.ts +1 -1
  867. package/dist/schema/VariantSchema.d.ts +22 -3
  868. package/dist/schema/VariantSchema.d.ts.map +1 -1
  869. package/dist/schema/VariantSchema.js +32 -18
  870. package/dist/schema/VariantSchema.js.map +1 -1
  871. package/dist/socket/Socket.d.ts +23 -1
  872. package/dist/socket/Socket.d.ts.map +1 -1
  873. package/dist/socket/Socket.js +36 -3
  874. package/dist/socket/Socket.js.map +1 -1
  875. package/dist/sql/Migrator.d.ts +2 -1
  876. package/dist/sql/Migrator.d.ts.map +1 -1
  877. package/dist/sql/Migrator.js +21 -6
  878. package/dist/sql/Migrator.js.map +1 -1
  879. package/dist/sql/SqlClient.d.ts +148 -5
  880. package/dist/sql/SqlClient.d.ts.map +1 -1
  881. package/dist/sql/SqlClient.js +155 -27
  882. package/dist/sql/SqlClient.js.map +1 -1
  883. package/dist/sql/SqlResolver.d.ts +13 -0
  884. package/dist/sql/SqlResolver.d.ts.map +1 -1
  885. package/dist/sql/SqlResolver.js +27 -4
  886. package/dist/sql/SqlResolver.js.map +1 -1
  887. package/dist/sql/Statement.d.ts +10 -1
  888. package/dist/sql/Statement.d.ts.map +1 -1
  889. package/dist/sql/Statement.js +45 -7
  890. package/dist/sql/Statement.js.map +1 -1
  891. package/dist/testing/TestClock.d.ts.map +1 -1
  892. package/dist/testing/TestClock.js +4 -2
  893. package/dist/testing/TestClock.js.map +1 -1
  894. package/dist/testing/TestSchema.d.ts +7 -1
  895. package/dist/testing/TestSchema.d.ts.map +1 -1
  896. package/dist/testing/TestSchema.js +9 -3
  897. package/dist/testing/TestSchema.js.map +1 -1
  898. package/dist/workflow/DurableDeferred.d.ts.map +1 -1
  899. package/dist/workflow/DurableDeferred.js +21 -2
  900. package/dist/workflow/DurableDeferred.js.map +1 -1
  901. package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
  902. package/dist/workflow/WorkflowEngine.js +18 -4
  903. package/dist/workflow/WorkflowEngine.js.map +1 -1
  904. package/package.json +13 -3
  905. package/src/Arbitrary.ts +10 -2
  906. package/src/Array.ts +128 -55
  907. package/src/Bytes.ts +111 -0
  908. package/src/Channel.ts +308 -452
  909. package/src/ChannelSchema.ts +1 -49
  910. package/src/Chunk.ts +55 -61
  911. package/src/Config.ts +12 -86
  912. package/src/ConfigProvider.ts +2 -1
  913. package/src/Cron.ts +6 -3
  914. package/src/Data.ts +60 -265
  915. package/src/Duration.ts +66 -16
  916. package/src/Effect.ts +503 -168
  917. package/src/Equal.ts +8 -1
  918. package/src/Equivalence.ts +7 -4
  919. package/src/Exit.ts +27 -12
  920. package/src/FiberHandle.ts +10 -9
  921. package/src/FiberMap.ts +13 -66
  922. package/src/FileSystem.ts +10 -0
  923. package/src/Formatter.ts +28 -13
  924. package/src/Graph.ts +171 -1263
  925. package/src/Hash.ts +4 -1
  926. package/src/HashSet.ts +0 -60
  927. package/src/Iterable.ts +15 -14
  928. package/src/JsonPatch.ts +4 -0
  929. package/src/JsonSchema.ts +40 -43
  930. package/src/Layer.ts +2 -2
  931. package/src/ManagedRuntime.ts +72 -6
  932. package/src/Metric.ts +252 -510
  933. package/src/MutableHashMap.ts +4 -473
  934. package/src/MutableList.ts +7 -5
  935. package/src/MutableRef.ts +8 -1
  936. package/src/Number.ts +2 -2
  937. package/src/Optic.ts +17 -332
  938. package/src/PartitionedSemaphore.ts +24 -13
  939. package/src/Path.ts +9 -1
  940. package/src/Pool.ts +109 -37
  941. package/src/PubSub.ts +17 -13
  942. package/src/Queue.ts +5 -37
  943. package/src/Random.ts +1 -1
  944. package/src/RcMap.ts +14 -8
  945. package/src/Record.ts +51 -0
  946. package/src/Ref.ts +15 -104
  947. package/src/References.ts +5 -4
  948. package/src/RequestResolver.ts +46 -87
  949. package/src/Resource.ts +1 -1
  950. package/src/Runtime.ts +19 -18
  951. package/src/Schedule.ts +3 -95
  952. package/src/Schema.ts +639 -381
  953. package/src/SchemaAST.ts +40 -29
  954. package/src/SchemaGetter.ts +22 -5
  955. package/src/SchemaIssue.ts +44 -53
  956. package/src/SchemaParser.ts +51 -18
  957. package/src/SchemaRepresentation.ts +95 -35
  958. package/src/SchemaTransformation.ts +10 -3
  959. package/src/Scope.ts +12 -2
  960. package/src/ScopedCache.ts +17 -142
  961. package/src/SemVer.ts +1528 -0
  962. package/src/SemVerRange.ts +883 -0
  963. package/src/Semaphore.ts +67 -40
  964. package/src/Sink.ts +21 -4
  965. package/src/Stream.ts +367 -1027
  966. package/src/String.ts +11 -8
  967. package/src/TextDiff.ts +766 -0
  968. package/src/Tracer.ts +15 -1
  969. package/src/TxHashMap.ts +1 -103
  970. package/src/TxHashSet.ts +48 -753
  971. package/src/ai/AiError.ts +66 -4
  972. package/src/ai/Chat.ts +10 -5
  973. package/src/ai/Decision.ts +49 -1
  974. package/src/ai/DecisionModel.ts +264 -108
  975. package/src/ai/EmbeddingModel.ts +25 -13
  976. package/src/ai/LanguageModel.ts +9 -0
  977. package/src/ai/McpClient.ts +1211 -0
  978. package/src/ai/McpClientError.ts +329 -0
  979. package/src/ai/McpProtocol.ts +2 -2
  980. package/src/ai/McpSchema.ts +153 -35
  981. package/src/ai/McpServer.ts +231 -233
  982. package/src/ai/Prompt.ts +114 -35
  983. package/src/ai/Response.ts +220 -65
  984. package/src/ai/Tool.ts +50 -6
  985. package/src/ai/Toolkit.ts +82 -11
  986. package/src/ai/index.ts +12 -0
  987. package/src/ai/internal/mcpCore.ts +13 -14
  988. package/src/ai/internal/mcpProtocol/v2024_11_05.ts +1 -1
  989. package/src/ai/internal/mcpProtocol/v2025_03_26.ts +1 -1
  990. package/src/ai/internal/mcpProtocol/v2025_06_18.ts +3 -3
  991. package/src/ai/internal/mcpProtocol/v2025_11_25.ts +3 -3
  992. package/src/ai/internal/mcpProtocol/v2026_07_28.ts +12 -14
  993. package/src/ai/internal/mcpProtocol.ts +22 -2
  994. package/src/ai/internal/mcpRuntime.ts +3 -4
  995. package/src/ai/internal/mcpSchema/v2024_11_05.ts +20 -13
  996. package/src/ai/internal/mcpSchema/v2025_03_26.ts +4 -2
  997. package/src/ai/internal/mcpSchema/v2025_06_18.ts +7 -7
  998. package/src/ai/internal/mcpSchema/v2025_11_25.ts +8 -8
  999. package/src/ai/internal/mcpSchema/v2026_07_28.ts +44 -42
  1000. package/src/cli/Argument.ts +15 -0
  1001. package/src/cli/CliError.ts +136 -4
  1002. package/src/cli/CliOutput.ts +183 -6
  1003. package/src/cli/Command.ts +367 -48
  1004. package/src/cli/Completions.ts +56 -0
  1005. package/src/cli/Flag.ts +132 -0
  1006. package/src/cli/GlobalFlag.ts +5 -6
  1007. package/src/cli/Param.ts +151 -6
  1008. package/src/cli/TerminalCapabilities.ts +159 -0
  1009. package/src/cli/index.ts +6 -0
  1010. package/src/cli/internal/command.ts +8 -3
  1011. package/src/cli/internal/completions/bash.ts +83 -32
  1012. package/src/cli/internal/completions/descriptor.ts +11 -1
  1013. package/src/cli/internal/completions/fish.ts +10 -8
  1014. package/src/cli/internal/completions/powershell.ts +23 -14
  1015. package/src/cli/internal/completions/zsh.ts +8 -5
  1016. package/src/cli/internal/formatter.ts +18 -0
  1017. package/src/cli/internal/lexer.ts +12 -5
  1018. package/src/cli/internal/parser.ts +31 -11
  1019. package/src/cluster/ClusterCron.ts +94 -35
  1020. package/src/cluster/ClusterMetrics.ts +149 -7
  1021. package/src/cluster/ClusterWorkflowEngine.ts +130 -57
  1022. package/src/cluster/Entity.ts +4 -0
  1023. package/src/cluster/MessageStorage.ts +26 -14
  1024. package/src/cluster/Runners.ts +76 -25
  1025. package/src/cluster/Sharding.ts +200 -58
  1026. package/src/cluster/ShardingConfig.ts +20 -0
  1027. package/src/cluster/Snowflake.ts +3 -7
  1028. package/src/cluster/SqlMessageStorage.ts +58 -55
  1029. package/src/cluster/SqlRunnerStorage.ts +120 -51
  1030. package/src/cluster/internal/entityManager.ts +155 -32
  1031. package/src/devtools/DevTools.ts +3 -2
  1032. package/src/devtools/DevToolsClient.ts +29 -10
  1033. package/src/encoding/Base64.ts +38 -0
  1034. package/src/encoding/Base64Url.ts +31 -0
  1035. package/src/encoding/Ini.ts +3 -0
  1036. package/src/encoding/JsonArray.ts +849 -0
  1037. package/src/encoding/Ndjson.ts +211 -20
  1038. package/src/encoding/SchemaBinary.ts +14 -48
  1039. package/src/encoding/Sse.ts +4 -3
  1040. package/src/encoding/Tar.ts +1417 -0
  1041. package/src/encoding/Toml.ts +36 -19
  1042. package/src/encoding/Xml.ts +2037 -0
  1043. package/src/encoding/Yaml.ts +108 -36
  1044. package/src/encoding/Zip.ts +1558 -0
  1045. package/src/encoding/index.ts +24 -0
  1046. package/src/eventlog/EventJournal.ts +611 -227
  1047. package/src/eventlog/EventLog.ts +496 -196
  1048. package/src/eventlog/EventLogEncryption.ts +128 -43
  1049. package/src/eventlog/EventLogMessage.ts +62 -11
  1050. package/src/eventlog/EventLogRemote.ts +77 -21
  1051. package/src/eventlog/EventLogServer.ts +162 -20
  1052. package/src/eventlog/EventLogServerEncrypted.ts +121 -80
  1053. package/src/eventlog/EventLogServerUnencrypted.ts +180 -77
  1054. package/src/eventlog/EventRow.ts +706 -0
  1055. package/src/eventlog/SqlEventJournal.ts +496 -193
  1056. package/src/eventlog/SqlEventLogServerEncrypted.ts +212 -83
  1057. package/src/eventlog/SqlEventLogServerUnencrypted.ts +141 -62
  1058. package/src/eventlog/index.ts +6 -0
  1059. package/src/eventlog/internal/conflicts.ts +119 -0
  1060. package/src/graphql/GraphQLClientError.ts +5 -12
  1061. package/src/graphql/GraphQLProtocol.ts +12 -9
  1062. package/src/graphql/GraphQLResolver.ts +90 -239
  1063. package/src/http/Cookies.ts +10 -11
  1064. package/src/http/FetchHttpClient.ts +56 -6
  1065. package/src/http/FindMyWay/internal/router.ts +11 -0
  1066. package/src/http/Headers.ts +337 -154
  1067. package/src/http/HttpClient.ts +673 -142
  1068. package/src/http/HttpClientError.ts +35 -1
  1069. package/src/http/HttpClientRequest.ts +151 -5
  1070. package/src/http/HttpClientResponse.ts +71 -0
  1071. package/src/http/HttpEffect.ts +25 -33
  1072. package/src/http/HttpIncomingMessage.ts +3 -23
  1073. package/src/http/HttpMiddleware.ts +194 -40
  1074. package/src/http/HttpRouter.ts +10 -3
  1075. package/src/http/HttpServerError.ts +8 -5
  1076. package/src/http/HttpServerRequest.ts +172 -27
  1077. package/src/http/HttpServerResponse.ts +49 -23
  1078. package/src/http/HttpStaticServer.ts +71 -26
  1079. package/src/http/MultipartParser/internal/contentType.ts +109 -8
  1080. package/src/http/MultipartParser/internal/headers.ts +4 -16
  1081. package/src/http/MultipartParser/internal/multipart.ts +10 -32
  1082. package/src/http/Url.ts +6 -1
  1083. package/src/http/UrlParams.ts +6 -1
  1084. package/src/http/internal/compression.ts +4 -5
  1085. package/src/http/internal/decompression.ts +32 -17
  1086. package/src/http/internal/httpBody.ts +10 -2
  1087. package/src/http/internal/lazyStream.ts +25 -0
  1088. package/src/http/internal/requestState.ts +33 -0
  1089. package/src/http/internal/urlParams.ts +29 -0
  1090. package/src/http/internal/webResponse.ts +20 -0
  1091. package/src/http-api/HttpApi.ts +4 -7
  1092. package/src/http-api/HttpApiBuilder.ts +190 -32
  1093. package/src/http-api/HttpApiClient.ts +364 -90
  1094. package/src/http-api/HttpApiEndpoint.ts +248 -46
  1095. package/src/http-api/HttpApiError.ts +55 -0
  1096. package/src/http-api/HttpApiScalar.ts +4 -3
  1097. package/src/http-api/HttpApiSchema.ts +373 -18
  1098. package/src/http-api/HttpApiSwagger.ts +11 -4
  1099. package/src/http-api/HttpApiTest.ts +36 -11
  1100. package/src/http-api/OpenApi.ts +103 -58
  1101. package/src/http-api/internal/path.ts +40 -12
  1102. package/src/http-api/internal/toCodecHttpProperties.ts +56 -0
  1103. package/src/index.ts +24 -0
  1104. package/src/internal/arbitrary/runner.ts +133 -36
  1105. package/src/internal/core.ts +3 -1
  1106. package/src/internal/dateTime.ts +20 -7
  1107. package/src/internal/effect.ts +144 -100
  1108. package/src/internal/equal.ts +17 -0
  1109. package/src/internal/hashMap.ts +2 -2
  1110. package/src/internal/hydration.ts +15 -0
  1111. package/src/internal/inflate.ts +710 -0
  1112. package/src/internal/jsonSchema.ts +27 -0
  1113. package/src/internal/matcher.ts +1 -1
  1114. package/src/internal/record.ts +6 -0
  1115. package/src/internal/request.ts +21 -6
  1116. package/src/internal/schedule.ts +20 -39
  1117. package/src/internal/schema/compilerRegistry.ts +6 -1
  1118. package/src/internal/schema/content.ts +18 -0
  1119. package/src/internal/schema/fromJsonSchemaDocument.ts +458 -351
  1120. package/src/internal/schema/fromRepresentation.ts +2 -1
  1121. package/src/internal/schema/interpreter.ts +58 -45
  1122. package/src/internal/schema/standardSchema.ts +34 -32
  1123. package/src/internal/schema/toCodeDocument.ts +12 -7
  1124. package/src/internal/schema/toCodec.ts +134 -15
  1125. package/src/internal/schema/toFormatter.ts +6 -6
  1126. package/src/internal/schema/toJsonSchemaDocument.ts +246 -194
  1127. package/src/internal/schema/toRepresentation.ts +122 -140
  1128. package/src/internal/sql.ts +14 -0
  1129. package/src/internal/trie.ts +1 -3
  1130. package/src/internal/uuid.ts +15 -10
  1131. package/src/internal/version.ts +1 -1
  1132. package/src/net/NetAddress.ts +2 -9
  1133. package/src/observability/OtlpExporter.ts +5 -12
  1134. package/src/observability/OtlpMetrics.ts +5 -3
  1135. package/src/observability/OtlpProxy.ts +314 -0
  1136. package/src/observability/OtlpResource.ts +16 -6
  1137. package/src/observability/OtlpSerialization.ts +17 -3
  1138. package/src/observability/OtlpTracer.ts +4 -0
  1139. package/src/observability/index.ts +6 -0
  1140. package/src/observability/internal/protobuf.ts +2 -10
  1141. package/src/persistence/CircuitBreaker.ts +1678 -0
  1142. package/src/persistence/PersistedCache.ts +3 -1
  1143. package/src/persistence/PersistedQueue.ts +223 -153
  1144. package/src/persistence/Persistence.ts +64 -30
  1145. package/src/persistence/RateLimiter.ts +18 -21
  1146. package/src/persistence/Redis.ts +129 -8
  1147. package/src/persistence/UserDirectories.ts +273 -0
  1148. package/src/persistence/index.ts +12 -0
  1149. package/src/process/ChildProcess.ts +32 -5
  1150. package/src/process/ChildProcessSpawner.ts +41 -2
  1151. package/src/reactivity/AsyncResult.ts +5 -39
  1152. package/src/reactivity/Atom.ts +134 -166
  1153. package/src/reactivity/AtomHttpApi.ts +10 -16
  1154. package/src/reactivity/AtomRegistry.ts +50 -29
  1155. package/src/reactivity/AtomRpc.ts +6 -22
  1156. package/src/reactivity/Hydration.ts +53 -12
  1157. package/src/reactivity/Reactivity.ts +97 -39
  1158. package/src/rpc/Rpc.ts +21 -0
  1159. package/src/rpc/RpcClient.ts +283 -104
  1160. package/src/rpc/RpcSerialization.ts +53 -14
  1161. package/src/rpc/RpcServer.ts +27 -21
  1162. package/src/rpc/RpcTest.ts +3 -0
  1163. package/src/schema/VariantSchema.ts +86 -22
  1164. package/src/socket/Socket.ts +45 -20
  1165. package/src/sql/Migrator.ts +26 -11
  1166. package/src/sql/SqlClient.ts +273 -29
  1167. package/src/sql/SqlResolver.ts +32 -9
  1168. package/src/sql/Statement.ts +65 -10
  1169. package/src/testing/TestClock.ts +4 -1
  1170. package/src/testing/TestSchema.ts +9 -3
  1171. package/src/workflow/DurableDeferred.ts +23 -6
  1172. package/src/workflow/WorkflowEngine.ts +34 -10
  1173. package/dist/http/internal/preResponseHandler.d.ts +0 -2
  1174. package/dist/http/internal/preResponseHandler.d.ts.map +0 -1
  1175. package/dist/http/internal/preResponseHandler.js +0 -14
  1176. package/dist/http/internal/preResponseHandler.js.map +0 -1
  1177. package/src/http/internal/preResponseHandler.ts +0 -19
package/src/Metric.ts CHANGED
@@ -17,7 +17,7 @@ import * as Context from "./Context.ts"
17
17
  import * as Duration from "./Duration.ts"
18
18
  import type { Effect } from "./Effect.ts"
19
19
  import type { Exit } from "./Exit.ts"
20
- import { constUndefined, dual } from "./Function.ts"
20
+ import { constUndefined, constVoid, dual, identity } from "./Function.ts"
21
21
  import * as InternalEffect from "./internal/effect.ts"
22
22
  import * as InternalMetric from "./internal/metric.ts"
23
23
  import * as InternalRecord from "./internal/record.ts"
@@ -576,7 +576,7 @@ export interface GaugeState<in Input extends number | bigint> {
576
576
  * start: 1,
577
577
  * factor: 2,
578
578
  * count: 10
579
- * }) // 1, 2, 4, 8, ..., 512
579
+ * }) // 1, 2, 4, 8, ..., 256, Infinity
580
580
  * }
581
581
  * )
582
582
  *
@@ -696,8 +696,8 @@ export interface Histogram<Input> extends Metric<Input, HistogramState> {}
696
696
  * totalRequests: state.count, // 5
697
697
  * fastestResponse: state.min, // 50
698
698
  * slowestResponse: state.max, // 750
699
- * averageResponse: state.sum / state.count, // 268
700
- * totalTime: state.sum, // 1340
699
+ * averageResponse: state.sum / state.count, // 259
700
+ * totalTime: state.sum, // 1295
701
701
  * distribution: bucketAnalysis
702
702
  * // Example distribution:
703
703
  * // [{ range: "0-100ms", count: 2, percentage: 40.0 },
@@ -1678,6 +1678,7 @@ abstract class Metric$<in Input, out State> implements Metric<Input, State> {
1678
1678
  declare readonly State: Covariant<State>
1679
1679
 
1680
1680
  #extraAttributes: Metric.AttributeSet | undefined
1681
+ #mergedAttributes: Metric.AttributeSet | undefined
1681
1682
  #key = ""
1682
1683
 
1683
1684
  readonly id: string
@@ -1709,29 +1710,61 @@ abstract class Metric$<in Input, out State> implements Metric<Input, State> {
1709
1710
  abstract createHooks(): Metric.Hooks<Input, State>
1710
1711
 
1711
1712
  hook(context: Context.Context<never>): Metric.Hooks<Input, State> {
1712
- const extraAttributes = Context.get(context, CurrentMetricAttributes)
1713
- if (extraAttributes !== this.#extraAttributes) {
1714
- this.#extraAttributes = extraAttributes
1715
- this.#key = makeKey(this, mergeAttributes(this.attributes, extraAttributes))
1716
- }
1713
+ const key = this.key(context)
1717
1714
  // The registry owns the series, so it is looked up on every update.
1718
1715
  const registry = Context.get(context, MetricRegistry)
1719
- let metadata = registry.get(this.#key)
1716
+ let metadata = registry.get(key)
1720
1717
  if (Predicate.isUndefined(metadata)) {
1721
- metadata = {
1722
- id: this.id,
1723
- type: this.type,
1724
- description: this.description,
1725
- attributes: Object.keys(extraAttributes).length > 0
1726
- ? mergeAttributes(this.attributes, extraAttributes)
1727
- : this.attributes,
1728
- hooks: this.createHooks()
1729
- }
1730
- registry.set(this.#key, metadata)
1718
+ metadata = this.metadata(this.createHooks())
1719
+ registry.set(key, metadata)
1731
1720
  }
1732
1721
  return metadata.hooks
1733
1722
  }
1734
1723
 
1724
+ removeUnsafe(context: Context.Context<never>): void {
1725
+ Context.get(context, MetricRegistry).delete(this.key(context))
1726
+ }
1727
+
1728
+ registerUnsafe(context: Context.Context<never>, hooks: Metric.Hooks<Input, State>): Registration {
1729
+ const key = this.key(context)
1730
+ // Keep the registry from registration time, so removal does not depend on
1731
+ // the context it is called from.
1732
+ const registry = Context.get(context, MetricRegistry)
1733
+ const metadata = this.metadata({ get: hooks.get, update: constVoid, modify: constVoid })
1734
+ registry.set(key, metadata)
1735
+ return {
1736
+ remove() {
1737
+ if (registry.get(key) === metadata) {
1738
+ registry.delete(key)
1739
+ }
1740
+ }
1741
+ }
1742
+ }
1743
+
1744
+ // Merges the attributes once per contextual attribute set, so series key and
1745
+ // metadata share the result.
1746
+ private key(context: Context.Context<never>): string {
1747
+ const extraAttributes = Context.get(context, CurrentMetricAttributes)
1748
+ if (extraAttributes !== this.#extraAttributes) {
1749
+ this.#extraAttributes = extraAttributes
1750
+ const merged = mergeAttributes(this.attributes, extraAttributes)
1751
+ this.#mergedAttributes = Object.keys(extraAttributes).length > 0 ? merged : this.attributes
1752
+ this.#key = makeKey(this, merged)
1753
+ }
1754
+ return this.#key
1755
+ }
1756
+
1757
+ // Must follow `key(context)`, which computes the merged attributes.
1758
+ private metadata(hooks: Metric.Hooks<Input, State>): Metric.Metadata<Input, State> {
1759
+ return {
1760
+ id: this.id,
1761
+ type: this.type,
1762
+ description: this.description,
1763
+ attributes: this.#mergedAttributes,
1764
+ hooks
1765
+ }
1766
+ }
1767
+
1735
1768
  pipe() {
1736
1769
  return pipeArguments(this, arguments)
1737
1770
  }
@@ -1992,29 +2025,50 @@ class SummaryMetric extends Metric$<readonly [value: number, timestamp: number],
1992
2025
  }
1993
2026
  }
1994
2027
 
1995
- class MetricTransform<in Input, out State, in Input2> extends Metric$<Input2, State> {
2028
+ // Every operation maps the context first and the input second, so wrappers
2029
+ // such as `withAttributes` address the same series for update, remove and
2030
+ // register.
2031
+ class MetricTransform<Input, out State, in Input2> extends Metric$<Input2, State> {
1996
2032
  type: Metric.Type
1997
2033
  readonly metric: Metric<Input, State>
1998
- override readonly valueUnsafe: (context: Context.Context<never>) => State
1999
- override readonly updateUnsafe: (input: Input2, context: Context.Context<never>) => void
2000
- override readonly modifyUnsafe: (input: Input2, context: Context.Context<never>) => void
2034
+ readonly mapInput: (input: Input2, context: Context.Context<never>) => Input
2035
+ readonly mapContext: (context: Context.Context<never>) => Context.Context<never>
2001
2036
 
2002
2037
  constructor(
2003
2038
  metric: Metric<Input, State>,
2004
- valueUnsafe: (context: Context.Context<never>) => State,
2005
- updateUnsafe: (input: Input2, context: Context.Context<never>) => void,
2006
- modifyUnsafe: (input: Input2, context: Context.Context<never>) => void
2039
+ mapInput: (input: Input2, context: Context.Context<never>) => Input,
2040
+ mapContext: (context: Context.Context<never>) => Context.Context<never>
2007
2041
  ) {
2008
2042
  super(metric.id, metric.description, metric.attributes)
2009
2043
  this.metric = metric
2010
- this.valueUnsafe = valueUnsafe
2011
- this.updateUnsafe = updateUnsafe
2012
- this.modifyUnsafe = modifyUnsafe
2044
+ this.mapInput = mapInput
2045
+ this.mapContext = mapContext
2013
2046
  this.type = metric.type
2014
2047
  }
2015
2048
  createHooks(): Metric.Hooks<Input2, State> {
2016
2049
  return (this.metric as any).createHooks()
2017
2050
  }
2051
+ override valueUnsafe(context: Context.Context<never>): State {
2052
+ return this.metric.valueUnsafe(this.mapContext(context))
2053
+ }
2054
+ override updateUnsafe(input: Input2, context: Context.Context<never>): void {
2055
+ const mapped = this.mapContext(context)
2056
+ this.metric.updateUnsafe(this.mapInput(input, mapped), mapped)
2057
+ }
2058
+ override modifyUnsafe(input: Input2, context: Context.Context<never>): void {
2059
+ const mapped = this.mapContext(context)
2060
+ this.metric.modifyUnsafe(this.mapInput(input, mapped), mapped)
2061
+ }
2062
+ override removeUnsafe(context: Context.Context<never>): void {
2063
+ removeUnsafe(this.metric, this.mapContext(context))
2064
+ }
2065
+ override registerUnsafe(context: Context.Context<never>, hooks: Metric.Hooks<Input2, State>): Registration {
2066
+ return registerUnsafe(this.metric, this.mapContext(context), {
2067
+ get: hooks.get,
2068
+ update: constVoid,
2069
+ modify: constVoid
2070
+ })
2071
+ }
2018
2072
  }
2019
2073
 
2020
2074
  /**
@@ -3001,93 +3055,7 @@ export const modify: {
3001
3055
  */
3002
3056
  <Input, State>(self: Metric<Input, State>, input: Input): Effect<void>
3003
3057
  } = dual<
3004
- /**
3005
- * Modifies the metric with the specified input.
3006
- *
3007
- * **Details**
3008
- *
3009
- * The behavior of `modify` depends on the metric type. Counters add the input
3010
- * value to the current count, gauges add the input value to the current gauge
3011
- * value, frequencies increment the occurrence count for the input string,
3012
- * histograms record the input value in the appropriate bucket, and summaries
3013
- * record the input observation.
3014
- *
3015
- * **Example** (Modifying metric values)
3016
- *
3017
- * ```ts import.meta.vitest
3018
- * import { Effect, Metric } from "effect"
3019
- *
3020
- * const temperatureGauge = Metric.gauge("temperature")
3021
- * const requestCounter = Metric.counter("requests")
3022
- *
3023
- * const program = Effect.gen(function*() {
3024
- * // Set initial temperature
3025
- * yield* Metric.update(temperatureGauge, 20)
3026
- *
3027
- * // Modify by adding/subtracting values
3028
- * yield* Metric.modify(temperatureGauge, 5) // Now 25
3029
- * yield* Metric.modify(temperatureGauge, -3) // Now 22
3030
- *
3031
- * // For counters, modify increments by the specified amount
3032
- * yield* Metric.modify(requestCounter, 10) // Add 10 to counter
3033
- * yield* Metric.modify(requestCounter, 5) // Add 5 more (total: 15)
3034
- *
3035
- * const temp = yield* Metric.value(temperatureGauge)
3036
- * const requests = yield* Metric.value(requestCounter)
3037
- * return [temp.value, requests.count] as const
3038
- * })
3039
- *
3040
- * await Effect.runPromise(Effect.provideService(program, Metric.MetricRegistry, new Map())) // => [22, 15]
3041
- * ```
3042
- *
3043
- * @stability stable
3044
- * @category mutations
3045
- * @since 3.6.5
3046
- */
3047
3058
  <Input>(input: Input) => <State>(self: Metric<Input, State>) => Effect<void>,
3048
- /**
3049
- * Modifies the metric with the specified input.
3050
- *
3051
- * **Details**
3052
- *
3053
- * The behavior of `modify` depends on the metric type. Counters add the input
3054
- * value to the current count, gauges add the input value to the current gauge
3055
- * value, frequencies increment the occurrence count for the input string,
3056
- * histograms record the input value in the appropriate bucket, and summaries
3057
- * record the input observation.
3058
- *
3059
- * **Example** (Modifying metric values)
3060
- *
3061
- * ```ts import.meta.vitest
3062
- * import { Effect, Metric } from "effect"
3063
- *
3064
- * const temperatureGauge = Metric.gauge("temperature")
3065
- * const requestCounter = Metric.counter("requests")
3066
- *
3067
- * const program = Effect.gen(function*() {
3068
- * // Set initial temperature
3069
- * yield* Metric.update(temperatureGauge, 20)
3070
- *
3071
- * // Modify by adding/subtracting values
3072
- * yield* Metric.modify(temperatureGauge, 5) // Now 25
3073
- * yield* Metric.modify(temperatureGauge, -3) // Now 22
3074
- *
3075
- * // For counters, modify increments by the specified amount
3076
- * yield* Metric.modify(requestCounter, 10) // Add 10 to counter
3077
- * yield* Metric.modify(requestCounter, 5) // Add 5 more (total: 15)
3078
- *
3079
- * const temp = yield* Metric.value(temperatureGauge)
3080
- * const requests = yield* Metric.value(requestCounter)
3081
- * return [temp.value, requests.count] as const
3082
- * })
3083
- *
3084
- * await Effect.runPromise(Effect.provideService(program, Metric.MetricRegistry, new Map())) // => [22, 15]
3085
- * ```
3086
- *
3087
- * @stability stable
3088
- * @category mutations
3089
- * @since 3.6.5
3090
- */
3091
3059
  <Input, State>(self: Metric<Input, State>, input: Input) => Effect<void>
3092
3060
  >(2, (self, input) =>
3093
3061
  InternalEffect.flatMap(
@@ -3252,109 +3220,7 @@ export const update: {
3252
3220
  */
3253
3221
  <Input, State>(self: Metric<Input, State>, input: Input): Effect<void>
3254
3222
  } = dual<
3255
- /**
3256
- * Updates the metric with the specified input.
3257
- *
3258
- * **Details**
3259
- *
3260
- * The behavior of `update` depends on the metric type. Counters add the input
3261
- * value to the current count, gauges replace the current value with the input
3262
- * value, frequencies increment the occurrence count for the input string,
3263
- * histograms record the input value in the appropriate bucket, and summaries
3264
- * record the input value as a new observation.
3265
- *
3266
- * **Example** (Updating metric values)
3267
- *
3268
- * ```ts import.meta.vitest
3269
- * import { Effect, Metric } from "effect"
3270
- *
3271
- * const cpuUsage = Metric.gauge("cpu_usage_percent")
3272
- * const httpStatus = Metric.frequency("http_status_codes")
3273
- * const responseTime = Metric.histogram("response_time_ms", {
3274
- * boundaries: [100, 500, 1000, 2000]
3275
- * })
3276
- *
3277
- * const program = Effect.gen(function*() {
3278
- * // Update gauge to specific values
3279
- * yield* Metric.update(cpuUsage, 45.2)
3280
- * yield* Metric.update(cpuUsage, 67.8) // Replaces previous value
3281
- *
3282
- * // Track HTTP status code occurrences
3283
- * yield* Metric.update(httpStatus, "200")
3284
- * yield* Metric.update(httpStatus, "404")
3285
- * yield* Metric.update(httpStatus, "200") // Increments 200 count
3286
- *
3287
- * // Record response times
3288
- * yield* Metric.update(responseTime, 250)
3289
- * yield* Metric.update(responseTime, 750)
3290
- * yield* Metric.update(responseTime, 1500)
3291
- *
3292
- * // Check current states
3293
- * const cpu = yield* Metric.value(cpuUsage)
3294
- * const statuses = yield* Metric.value(httpStatus)
3295
- * const times = yield* Metric.value(responseTime)
3296
- * return [cpu.value, statuses.occurrences.get("200"), times.count] as const
3297
- * })
3298
- *
3299
- * await Effect.runPromise(Effect.provideService(program, Metric.MetricRegistry, new Map())) // => [67.8, 2, 3]
3300
- * ```
3301
- *
3302
- * @stability stable
3303
- * @category mutations
3304
- * @since 2.0.0
3305
- */
3306
3223
  <Input>(input: Input) => <State>(self: Metric<Input, State>) => Effect<void>,
3307
- /**
3308
- * Updates the metric with the specified input.
3309
- *
3310
- * **Details**
3311
- *
3312
- * The behavior of `update` depends on the metric type. Counters add the input
3313
- * value to the current count, gauges replace the current value with the input
3314
- * value, frequencies increment the occurrence count for the input string,
3315
- * histograms record the input value in the appropriate bucket, and summaries
3316
- * record the input value as a new observation.
3317
- *
3318
- * **Example** (Updating metric values)
3319
- *
3320
- * ```ts import.meta.vitest
3321
- * import { Effect, Metric } from "effect"
3322
- *
3323
- * const cpuUsage = Metric.gauge("cpu_usage_percent")
3324
- * const httpStatus = Metric.frequency("http_status_codes")
3325
- * const responseTime = Metric.histogram("response_time_ms", {
3326
- * boundaries: [100, 500, 1000, 2000]
3327
- * })
3328
- *
3329
- * const program = Effect.gen(function*() {
3330
- * // Update gauge to specific values
3331
- * yield* Metric.update(cpuUsage, 45.2)
3332
- * yield* Metric.update(cpuUsage, 67.8) // Replaces previous value
3333
- *
3334
- * // Track HTTP status code occurrences
3335
- * yield* Metric.update(httpStatus, "200")
3336
- * yield* Metric.update(httpStatus, "404")
3337
- * yield* Metric.update(httpStatus, "200") // Increments 200 count
3338
- *
3339
- * // Record response times
3340
- * yield* Metric.update(responseTime, 250)
3341
- * yield* Metric.update(responseTime, 750)
3342
- * yield* Metric.update(responseTime, 1500)
3343
- *
3344
- * // Check current states
3345
- * const cpu = yield* Metric.value(cpuUsage)
3346
- * const statuses = yield* Metric.value(httpStatus)
3347
- * const times = yield* Metric.value(responseTime)
3348
- * return [cpu.value, statuses.occurrences.get("200"), times.count] as const
3349
- * })
3350
- *
3351
- * await Effect.runPromise(Effect.provideService(program, Metric.MetricRegistry, new Map())) // => [67.8, 2, 3]
3352
- * ```
3353
- *
3354
- * @stability stable
3355
- * @category mutations
3356
- * @since 2.0.0
3357
- */
3358
3224
  <Input, State>(self: Metric<Input, State>, input: Input) => Effect<void>
3359
3225
  >(
3360
3226
  2,
@@ -3363,38 +3229,180 @@ export const update: {
3363
3229
  )
3364
3230
 
3365
3231
  /**
3366
- * Returns a new metric that is powered by this one, but which accepts updates
3367
- * of the specified new type, which must be transformable to the input type of
3368
- * this metric.
3232
+ * Handle for a series registered with `Metric.registerUnsafe`.
3369
3233
  *
3370
- * **Example** (Mapping metric inputs)
3234
+ * **Details**
3235
+ *
3236
+ * `remove` deletes the series from the registry it was registered into, but
3237
+ * only while the registry still holds this registration. Calling it again, or
3238
+ * after another registration has replaced the series, does nothing.
3239
+ *
3240
+ * @stability unstable
3241
+ * @category models
3242
+ * @since 4.0.6
3243
+ */
3244
+ export interface Registration {
3245
+ readonly remove: () => void
3246
+ }
3247
+
3248
+ /**
3249
+ * Removes the series of a metric for the current attributes from the metric
3250
+ * registry.
3251
+ *
3252
+ * **When to use**
3253
+ *
3254
+ * Use when a series describes something that has gone away, such as a
3255
+ * connection or an entity, so the registry and exporters stop tracking it.
3256
+ *
3257
+ * **Details**
3258
+ *
3259
+ * The series is identified the same way `update` identifies it: by the metric
3260
+ * and its attributes merged with `CurrentMetricAttributes`. Other series of the
3261
+ * same metric are left alone. A later update creates the series again from its
3262
+ * initial state. Removing a series that does not exist does nothing.
3263
+ *
3264
+ * **Example** (Removing a series)
3371
3265
  *
3372
3266
  * ```ts import.meta.vitest
3373
3267
  * import { Effect, Metric } from "effect"
3374
3268
  *
3375
- * const durationHistogram = Metric.histogram("request_duration_ms", {
3376
- * description: "Request duration in milliseconds",
3377
- * boundaries: Metric.linearBoundaries({ start: 0, width: 100, count: 10 })
3378
- * })
3379
- *
3380
- * // Accept duration strings while recording numeric milliseconds
3381
- * const durationStringHistogram = Metric.mapInput(
3382
- * durationHistogram,
3383
- * (input: string) => Number(input)
3384
- * )
3269
+ * const connections = Metric.gauge("connections")
3385
3270
  *
3386
3271
  * const program = Effect.gen(function*() {
3387
- * yield* Metric.update(durationStringHistogram, "250")
3388
- * return yield* Metric.value(durationStringHistogram)
3272
+ * yield* Metric.update(connections, 3).pipe(
3273
+ * Effect.provideService(Metric.CurrentMetricAttributes, { pool: "a" })
3274
+ * )
3275
+ * yield* Metric.update(connections, 5).pipe(
3276
+ * Effect.provideService(Metric.CurrentMetricAttributes, { pool: "b" })
3277
+ * )
3278
+ * yield* Metric.remove(connections).pipe(
3279
+ * Effect.provideService(Metric.CurrentMetricAttributes, { pool: "a" })
3280
+ * )
3281
+ * const snapshots = yield* Metric.snapshot
3282
+ * return snapshots.map((snapshot) => snapshot.attributes)
3389
3283
  * })
3390
3284
  *
3391
- * const value = await Effect.runPromise(Effect.provideService(program, Metric.MetricRegistry, new Map()))
3392
- * const values = [value.count, value.sum] // => [1, 250]
3285
+ * await Effect.runPromise(Effect.provideService(program, Metric.MetricRegistry, new Map())) // => [{ pool: "b" }]
3393
3286
  * ```
3394
3287
  *
3395
- * @stability stable
3396
- * @category annotations
3397
- * @since 2.0.0
3288
+ * @see {@link removeUnsafe} for removing a series with an explicit `Context`
3289
+ *
3290
+ * @stability unstable
3291
+ * @category mutations
3292
+ * @since 4.0.6
3293
+ */
3294
+ export const remove = <Input, State>(self: Metric<Input, State>): Effect<void> =>
3295
+ InternalEffect.contextWith((context) => InternalEffect.sync(() => removeUnsafe(self, context)))
3296
+
3297
+ /**
3298
+ * Removes the series of a metric for the attributes in the provided `Context`
3299
+ * from the metric registry in that `Context`.
3300
+ *
3301
+ * **When to use**
3302
+ *
3303
+ * Use when a low-level integration already holds a `Context`. Use `remove`
3304
+ * in application code.
3305
+ *
3306
+ * @see {@link remove} for the `Effect` version
3307
+ *
3308
+ * @stability unstable
3309
+ * @category mutations
3310
+ * @since 4.0.6
3311
+ */
3312
+ export const removeUnsafe = <Input, State>(self: Metric<Input, State>, context: Context.Context<never>): void =>
3313
+ (self as Metric$<Input, State>).removeUnsafe(context)
3314
+
3315
+ /**
3316
+ * Registers a series backed by caller-supplied hooks, for gauges whose value is
3317
+ * read when metrics are snapshotted rather than pushed with updates.
3318
+ *
3319
+ * **When to use**
3320
+ *
3321
+ * Use when the value already lives in some data structure, such as a queue
3322
+ * size, and updating a metric on every change would cost more than reading the
3323
+ * value at export time.
3324
+ *
3325
+ * **Details**
3326
+ *
3327
+ * The series is identified as in `remove`, using the attributes and registry
3328
+ * from `context`, and replaces any series with the same identity. `hooks.get`
3329
+ * is called each time the series is read, for example by `snapshot` or an
3330
+ * exporter. The returned {@link Registration} removes it again.
3331
+ * `update` and `modify` on this series do nothing; the supplied mutation hooks
3332
+ * are ignored.
3333
+ *
3334
+ * **Gotchas**
3335
+ *
3336
+ * The registry keeps `hooks.get` reachable until the series is removed, along
3337
+ * with anything it closes over. Call `remove` once the source goes away.
3338
+ *
3339
+ * **Example** (Reporting a queue size on snapshot)
3340
+ *
3341
+ * ```ts import.meta.vitest
3342
+ * import { Context, Metric } from "effect"
3343
+ *
3344
+ * const context = Context.make(Metric.MetricRegistry, new Map())
3345
+ * const queueSize = Metric.gauge("queue_size")
3346
+ * const queue: Array<string> = ["a", "b"]
3347
+ *
3348
+ * const registration = Metric.registerUnsafe(queueSize, context, {
3349
+ * get: () => ({ value: queue.length }),
3350
+ * update: () => {},
3351
+ * modify: () => {}
3352
+ * })
3353
+ * queue.push("c")
3354
+ * const sizes = Metric.snapshotUnsafe(context).map((snapshot) => snapshot.state)
3355
+ * registration.remove()
3356
+ *
3357
+ * sizes // => [{ value: 3 }]
3358
+ * Metric.snapshotUnsafe(context).length // => 0
3359
+ * ```
3360
+ *
3361
+ * @see {@link remove} for removing a series updated with `update`
3362
+ *
3363
+ * @stability unstable
3364
+ * @category mutations
3365
+ * @since 4.0.6
3366
+ */
3367
+ export const registerUnsafe = <Input, State>(
3368
+ self: Metric<Input, State>,
3369
+ context: Context.Context<never>,
3370
+ hooks: Metric.Hooks<Input, State>
3371
+ ): Registration => (self as Metric$<Input, State>).registerUnsafe(context, hooks)
3372
+
3373
+ /**
3374
+ * Returns a new metric that is powered by this one, but which accepts updates
3375
+ * of the specified new type, which must be transformable to the input type of
3376
+ * this metric.
3377
+ *
3378
+ * **Example** (Mapping metric inputs)
3379
+ *
3380
+ * ```ts import.meta.vitest
3381
+ * import { Effect, Metric } from "effect"
3382
+ *
3383
+ * const durationHistogram = Metric.histogram("request_duration_ms", {
3384
+ * description: "Request duration in milliseconds",
3385
+ * boundaries: Metric.linearBoundaries({ start: 0, width: 100, count: 10 })
3386
+ * })
3387
+ *
3388
+ * // Accept duration strings while recording numeric milliseconds
3389
+ * const durationStringHistogram = Metric.mapInput(
3390
+ * durationHistogram,
3391
+ * (input: string) => Number(input)
3392
+ * )
3393
+ *
3394
+ * const program = Effect.gen(function*() {
3395
+ * yield* Metric.update(durationStringHistogram, "250")
3396
+ * return yield* Metric.value(durationStringHistogram)
3397
+ * })
3398
+ *
3399
+ * const value = await Effect.runPromise(Effect.provideService(program, Metric.MetricRegistry, new Map()))
3400
+ * const values = [value.count, value.sum] // => [1, 250]
3401
+ * ```
3402
+ *
3403
+ * @stability stable
3404
+ * @category annotations
3405
+ * @since 2.0.0
3398
3406
  */
3399
3407
  export const mapInput: {
3400
3408
  /**
@@ -3471,75 +3479,9 @@ export const mapInput: {
3471
3479
  f: (input: Input2, context: Context.Context<never>) => Input
3472
3480
  ): Metric<Input2, State>
3473
3481
  } = dual<
3474
- /**
3475
- * Returns a new metric that is powered by this one, but which accepts updates
3476
- * of the specified new type, which must be transformable to the input type of
3477
- * this metric.
3478
- *
3479
- * **Example** (Mapping metric inputs)
3480
- *
3481
- * ```ts import.meta.vitest
3482
- * import { Effect, Metric } from "effect"
3483
- *
3484
- * const durationHistogram = Metric.histogram("request_duration_ms", {
3485
- * description: "Request duration in milliseconds",
3486
- * boundaries: Metric.linearBoundaries({ start: 0, width: 100, count: 10 })
3487
- * })
3488
- *
3489
- * // Accept duration strings while recording numeric milliseconds
3490
- * const durationStringHistogram = Metric.mapInput(
3491
- * durationHistogram,
3492
- * (input: string) => Number(input)
3493
- * )
3494
- *
3495
- * const program = Effect.gen(function*() {
3496
- * yield* Metric.update(durationStringHistogram, "250")
3497
- * return yield* Metric.value(durationStringHistogram)
3498
- * })
3499
- *
3500
- * const value = await Effect.runPromise(Effect.provideService(program, Metric.MetricRegistry, new Map()))
3501
- * const values = [value.count, value.sum] // => [1, 250]
3502
- * ```
3503
- *
3504
- * @stability stable
3505
- * @category annotations
3506
- * @since 2.0.0
3507
- */
3508
- <Input, Input2 extends Input>(f: (input: Input2, context: Context.Context<never>) => Input) => <State>(self: Metric<Input, State>) => Metric<Input2, State>,
3509
- /**
3510
- * Returns a new metric that is powered by this one, but which accepts updates
3511
- * of the specified new type, which must be transformable to the input type of
3512
- * this metric.
3513
- *
3514
- * **Example** (Mapping metric inputs)
3515
- *
3516
- * ```ts import.meta.vitest
3517
- * import { Effect, Metric } from "effect"
3518
- *
3519
- * const durationHistogram = Metric.histogram("request_duration_ms", {
3520
- * description: "Request duration in milliseconds",
3521
- * boundaries: Metric.linearBoundaries({ start: 0, width: 100, count: 10 })
3522
- * })
3523
- *
3524
- * // Accept duration strings while recording numeric milliseconds
3525
- * const durationStringHistogram = Metric.mapInput(
3526
- * durationHistogram,
3527
- * (input: string) => Number(input)
3528
- * )
3529
- *
3530
- * const program = Effect.gen(function*() {
3531
- * yield* Metric.update(durationStringHistogram, "250")
3532
- * return yield* Metric.value(durationStringHistogram)
3533
- * })
3534
- *
3535
- * const value = await Effect.runPromise(Effect.provideService(program, Metric.MetricRegistry, new Map()))
3536
- * const values = [value.count, value.sum] // => [1, 250]
3537
- * ```
3538
- *
3539
- * @stability stable
3540
- * @category annotations
3541
- * @since 2.0.0
3542
- */
3482
+ <Input, Input2 extends Input>(
3483
+ f: (input: Input2, context: Context.Context<never>) => Input
3484
+ ) => <State>(self: Metric<Input, State>) => Metric<Input2, State>,
3543
3485
  <Input, State, Input2>(
3544
3486
  self: Metric<Input, State>,
3545
3487
  f: (input: Input2, context: Context.Context<never>) => Input
@@ -3547,13 +3489,7 @@ export const mapInput: {
3547
3489
  >(2, <Input, State, Input2>(
3548
3490
  self: Metric<Input, State>,
3549
3491
  f: (input: Input2, context: Context.Context<never>) => Input
3550
- ): Metric<Input2, State> =>
3551
- new MetricTransform(
3552
- self,
3553
- (context) => self.valueUnsafe(context),
3554
- (input, context) => self.updateUnsafe(f(input, context), context),
3555
- (input, context) => self.modifyUnsafe(f(input, context), context)
3556
- ))
3492
+ ): Metric<Input2, State> => new MetricTransform(self, f, identity))
3557
3493
 
3558
3494
  /**
3559
3495
  * Returns a new metric that is powered by this one, but which accepts updates
@@ -3667,79 +3603,7 @@ export const withConstantInput: {
3667
3603
  */
3668
3604
  <Input, State>(self: Metric<Input, State>, input: Input): Metric<unknown, State>
3669
3605
  } = dual<
3670
- /**
3671
- * Returns a new metric that is powered by this one, but which accepts updates
3672
- * of any type, and translates them to updates with the specified constant
3673
- * update value.
3674
- *
3675
- * **Example** (Ignoring inputs with a constant value)
3676
- *
3677
- * ```ts import.meta.vitest
3678
- * import { Effect, Metric } from "effect"
3679
- *
3680
- * // Create a counter that normally expects a number increment
3681
- * const requestCounter = Metric.counter("total_requests", {
3682
- * description: "Total number of requests processed"
3683
- * })
3684
- *
3685
- * // Create a version that always increments by 1, regardless of input
3686
- * const simpleRequestCounter = Metric.withConstantInput(requestCounter, 1)
3687
- *
3688
- * const program = Effect.gen(function*() {
3689
- * // These all increment the counter by 1, ignoring the input value
3690
- * yield* Metric.update(simpleRequestCounter, "any string")
3691
- * yield* Metric.update(simpleRequestCounter, { complex: "object" })
3692
- * yield* Metric.update(simpleRequestCounter, 999) // Still increments by 1
3693
- *
3694
- * const value = yield* Metric.value(simpleRequestCounter)
3695
- * return value // Counter state will show count: 3
3696
- * })
3697
- *
3698
- * const value = await Effect.runPromise(Effect.provideService(program, Metric.MetricRegistry, new Map()))
3699
- * const count = value.count // => 3
3700
- * ```
3701
- *
3702
- * @stability stable
3703
- * @category mapping
3704
- * @since 2.0.0
3705
- */
3706
3606
  <Input>(input: Input) => <State>(self: Metric<Input, State>) => Metric<unknown, State>,
3707
- /**
3708
- * Returns a new metric that is powered by this one, but which accepts updates
3709
- * of any type, and translates them to updates with the specified constant
3710
- * update value.
3711
- *
3712
- * **Example** (Ignoring inputs with a constant value)
3713
- *
3714
- * ```ts import.meta.vitest
3715
- * import { Effect, Metric } from "effect"
3716
- *
3717
- * // Create a counter that normally expects a number increment
3718
- * const requestCounter = Metric.counter("total_requests", {
3719
- * description: "Total number of requests processed"
3720
- * })
3721
- *
3722
- * // Create a version that always increments by 1, regardless of input
3723
- * const simpleRequestCounter = Metric.withConstantInput(requestCounter, 1)
3724
- *
3725
- * const program = Effect.gen(function*() {
3726
- * // These all increment the counter by 1, ignoring the input value
3727
- * yield* Metric.update(simpleRequestCounter, "any string")
3728
- * yield* Metric.update(simpleRequestCounter, { complex: "object" })
3729
- * yield* Metric.update(simpleRequestCounter, 999) // Still increments by 1
3730
- *
3731
- * const value = yield* Metric.value(simpleRequestCounter)
3732
- * return value // Counter state will show count: 3
3733
- * })
3734
- *
3735
- * const value = await Effect.runPromise(Effect.provideService(program, Metric.MetricRegistry, new Map()))
3736
- * const count = value.count // => 3
3737
- * ```
3738
- *
3739
- * @stability stable
3740
- * @category mapping
3741
- * @since 2.0.0
3742
- */
3743
3607
  <Input, State>(self: Metric<Input, State>, input: Input) => Metric<unknown, State>
3744
3608
  >(2, (self, input) => mapInput(self, () => input))
3745
3609
 
@@ -3921,135 +3785,13 @@ export const withAttributes: {
3921
3785
  */
3922
3786
  <Input, State>(self: Metric<Input, State>, attributes: Metric.Attributes): Metric<Input, State>
3923
3787
  } = dual<
3924
- /**
3925
- * Returns a new metric that applies the specified attributes to all operations.
3926
- *
3927
- * **Details**
3928
- *
3929
- * Attributes are key-value pairs that provide additional context for metrics,
3930
- * enabling filtering, grouping, and more detailed analysis. Each combination
3931
- * of attribute values creates a separate metric series.
3932
- *
3933
- * **Example** (Applying metric attributes)
3934
- *
3935
- * ```ts import.meta.vitest
3936
- * import { Effect, Metric } from "effect"
3937
- *
3938
- * const requestCounter = Metric.counter("http_requests_total", {
3939
- * description: "Total HTTP requests"
3940
- * })
3941
- *
3942
- * // Create tagged versions of the metric
3943
- * const getRequests = Metric.withAttributes(requestCounter, {
3944
- * method: "GET",
3945
- * endpoint: "/api/users"
3946
- * })
3947
- *
3948
- * const postRequests = Metric.withAttributes(requestCounter, {
3949
- * method: "POST",
3950
- * endpoint: "/api/users"
3951
- * })
3952
- *
3953
- * const program = Effect.gen(function*() {
3954
- * // These will be tracked as separate metric series
3955
- * yield* Metric.update(getRequests, 1) // http_requests_total{method="GET", endpoint="/api/users"}
3956
- * yield* Metric.update(postRequests, 1) // http_requests_total{method="POST", endpoint="/api/users"}
3957
- * yield* Metric.update(getRequests, 1) // Increments the GET counter
3958
- *
3959
- * // You can also chain attributes
3960
- * const taggedMetric = requestCounter.pipe(
3961
- * Metric.withAttributes({ service: "user-api" }),
3962
- * Metric.withAttributes({ version: "v1" })
3963
- * )
3964
- *
3965
- * yield* Metric.update(taggedMetric, 1) // http_requests_total{service="user-api", version="v1"}
3966
- * })
3967
- *
3968
- * const result = Effect.gen(function*() {
3969
- * yield* program
3970
- * const get = yield* Metric.value(getRequests)
3971
- * const post = yield* Metric.value(postRequests)
3972
- * return [get.count, post.count] as const
3973
- * })
3974
- *
3975
- * await Effect.runPromise(Effect.provideService(result, Metric.MetricRegistry, new Map())) // => [2, 1]
3976
- * ```
3977
- *
3978
- * @stability stable
3979
- * @category mapping
3980
- * @since 4.0.0
3981
- */
3982
3788
  (attributes: Metric.Attributes) => <Input, State>(self: Metric<Input, State>) => Metric<Input, State>,
3983
- /**
3984
- * Returns a new metric that applies the specified attributes to all operations.
3985
- *
3986
- * **Details**
3987
- *
3988
- * Attributes are key-value pairs that provide additional context for metrics,
3989
- * enabling filtering, grouping, and more detailed analysis. Each combination
3990
- * of attribute values creates a separate metric series.
3991
- *
3992
- * **Example** (Applying metric attributes)
3993
- *
3994
- * ```ts import.meta.vitest
3995
- * import { Effect, Metric } from "effect"
3996
- *
3997
- * const requestCounter = Metric.counter("http_requests_total", {
3998
- * description: "Total HTTP requests"
3999
- * })
4000
- *
4001
- * // Create tagged versions of the metric
4002
- * const getRequests = Metric.withAttributes(requestCounter, {
4003
- * method: "GET",
4004
- * endpoint: "/api/users"
4005
- * })
4006
- *
4007
- * const postRequests = Metric.withAttributes(requestCounter, {
4008
- * method: "POST",
4009
- * endpoint: "/api/users"
4010
- * })
4011
- *
4012
- * const program = Effect.gen(function*() {
4013
- * // These will be tracked as separate metric series
4014
- * yield* Metric.update(getRequests, 1) // http_requests_total{method="GET", endpoint="/api/users"}
4015
- * yield* Metric.update(postRequests, 1) // http_requests_total{method="POST", endpoint="/api/users"}
4016
- * yield* Metric.update(getRequests, 1) // Increments the GET counter
4017
- *
4018
- * // You can also chain attributes
4019
- * const taggedMetric = requestCounter.pipe(
4020
- * Metric.withAttributes({ service: "user-api" }),
4021
- * Metric.withAttributes({ version: "v1" })
4022
- * )
4023
- *
4024
- * yield* Metric.update(taggedMetric, 1) // http_requests_total{service="user-api", version="v1"}
4025
- * })
4026
- *
4027
- * const result = Effect.gen(function*() {
4028
- * yield* program
4029
- * const get = yield* Metric.value(getRequests)
4030
- * const post = yield* Metric.value(postRequests)
4031
- * return [get.count, post.count] as const
4032
- * })
4033
- *
4034
- * await Effect.runPromise(Effect.provideService(result, Metric.MetricRegistry, new Map())) // => [2, 1]
4035
- * ```
4036
- *
4037
- * @stability stable
4038
- * @category mapping
4039
- * @since 4.0.0
4040
- */
4041
3789
  <Input, State>(self: Metric<Input, State>, attributes: Metric.Attributes) => Metric<Input, State>
4042
3790
  >(2, <Input, State>(
4043
3791
  self: Metric<Input, State>,
4044
3792
  attributes: Metric.Attributes
4045
3793
  ): Metric<Input, State> => {
4046
- const attributed = addAttributesToContext(attributes)
4047
- return new MetricTransform(
4048
- self,
4049
- (context) => self.valueUnsafe(attributed(context)),
4050
- (input, context) => self.updateUnsafe(input, attributed(context)),
4051
- (input, context) => self.modifyUnsafe(input, attributed(context))
4052
- )
3794
+ return new MetricTransform(self, identity, addAttributesToContext(attributes))
4053
3795
  })
4054
3796
 
4055
3797
  // Metric Snapshots