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/Schema.ts CHANGED
@@ -79,6 +79,8 @@ import * as SchemaIssue from "./SchemaIssue.ts"
79
79
  import * as SchemaParser from "./SchemaParser.ts"
80
80
  import type * as SchemaRepresentation from "./SchemaRepresentation.ts"
81
81
  import * as SchemaTransformation from "./SchemaTransformation.ts"
82
+ import * as SemVer_ from "./SemVer.ts"
83
+ import * as SemVerRange_ from "./SemVerRange.ts"
82
84
  import type { StandardJSONSchemaV1, StandardSchemaV1 } from "./StandardSchema.ts"
83
85
  import type { Assign, Lambda, Mutable, Simplify } from "./Struct.ts"
84
86
  import * as Struct_ from "./Struct.ts"
@@ -123,8 +125,8 @@ export type ConstructorDefault = "no-default" | "with-default"
123
125
  *
124
126
  * **When to use**
125
127
  *
126
- * Use when passing `disableChecks: true` to skip validation when you trust the
127
- * data. Pass `parseOptions` to control parsing behavior.
128
+ * Use when passing `disableChecks: true` to skip filters and checks while still
129
+ * parsing types and structure. Pass `parseOptions` to control parsing behavior.
128
130
  *
129
131
  * @see {@link BottomWithoutNew.makeEffect}
130
132
  * @see {@link BottomWithoutNew.make}
@@ -139,7 +141,8 @@ export interface MakeOptions {
139
141
  */
140
142
  readonly parseOptions?: SchemaAST.ParseOptions | undefined
141
143
  /**
142
- * Whether to disable validation for the schema.
144
+ * Whether to skip filters and checks. Types and structure are still parsed,
145
+ * and constructor defaults still apply.
143
146
  */
144
147
  readonly disableChecks?: boolean | undefined
145
148
 
@@ -2961,8 +2964,8 @@ export interface Enum<A extends { [x: string]: string | number }>
2961
2964
  readonly enums: A
2962
2965
  }
2963
2966
  /**
2964
- * Creates a schema from a TypeScript enum object. Validates that the input is one of the enum's values.
2965
- * Numeric enum values must be finite.
2967
+ * Creates a schema from a TypeScript enum or an object mapping names to string or number values.
2968
+ * Validates that the input is one of those values. Numeric values must be finite.
2966
2969
  *
2967
2970
  * **Gotchas**
2968
2971
  *
@@ -2986,7 +2989,7 @@ export interface Enum<A extends { [x: string]: string | number }>
2986
2989
  * @category constructors
2987
2990
  * @since 4.0.0
2988
2991
  */
2989
- export function Enum<A extends { [x: string]: string | number }>(enums: A): Enum<A> {
2992
+ export function Enum<const A extends { [x: string]: string | number }>(enums: A): Enum<A> {
2990
2993
  return make(
2991
2994
  new SchemaAST.Enum(
2992
2995
  Object.keys(enums).filter(
@@ -3980,11 +3983,18 @@ export interface $Record<Key extends Record.Key, Value extends Constraint> exten
3980
3983
  *
3981
3984
  * **Gotchas**
3982
3985
  *
3986
+ * Dynamic records reject value schemas wrapped with {@link optionalKey} or
3987
+ * {@link optional}. Index signatures already allow keys to be absent; use
3988
+ * {@link UndefinedOr} when existing entries may contain `undefined`. Optional
3989
+ * value schemas remain valid for finite literal keys, which become declared
3990
+ * properties.
3991
+ *
3983
3992
  * When decoded or encoded key transformations produce the same property key,
3984
3993
  * sequential parsing applies selected own properties in selection order, so
3985
3994
  * the later selected property overwrites the earlier value. Dynamic key
3986
- * selection always examines own properties. Finite literal keys are declared
3987
- * fields and may therefore be inherited. Output key order is not guaranteed.
3995
+ * selection always examines own properties. Finite literal and enum keys are
3996
+ * declared fields and may therefore be inherited. Output key order is not
3997
+ * guaranteed.
3988
3998
  *
3989
3999
  * **Example** (Defining a string-keyed record of numbers)
3990
4000
  *
@@ -5632,8 +5642,8 @@ export interface compose<To extends Constraint, From extends Constraint> extends
5632
5642
  * **Gotchas**
5633
5643
  *
5634
5644
  * In a custom transformation, `decode` maps `From["Type"]` to `To["Encoded"]`
5635
- * and is used on the encoding path, while `encode` maps `To["Encoded"]` to
5636
- * `From["Type"]` and is used on the decoding path.
5645
+ * and is used on the decoding path, while `encode` maps `To["Encoded"]` to
5646
+ * `From["Type"]` and is used on the encoding path.
5637
5647
  *
5638
5648
  * **Example** (Transforming strings to numbers with a schema transformation)
5639
5649
  *
@@ -6316,12 +6326,6 @@ type Flatten<Schemas> = Schemas extends readonly [infer Head, ...infer Tail]
6316
6326
  ? Head extends Union<infer Inner> ? [...Flatten<Inner>, ...Flatten<Tail>]
6317
6327
  : [Head, ...Flatten<Tail>]
6318
6328
  : []
6319
- type DiscriminantKey<T extends PropertyKey> = T extends number ? `${T}` : T
6320
- type EnsureUniqueDiscriminants<Tags extends ReadonlyArray<PropertyKey>, Seen = never> = Tags extends
6321
- readonly [infer Head extends PropertyKey, ...infer Tail extends ReadonlyArray<PropertyKey>]
6322
- ? [DiscriminantKey<Head> & Seen] extends [never] ? EnsureUniqueDiscriminants<Tail, Seen | DiscriminantKey<Head>>
6323
- : never
6324
- : unknown
6325
6329
  type MatchCasesResult<Cases> = {
6326
6330
  [K in keyof Cases]-?: NonNullable<Cases[K]> extends (...args: Array<any>) => infer R ? R : never
6327
6331
  }[keyof Cases]
@@ -6406,10 +6410,9 @@ export type toTaggedUnion<
6406
6410
  *
6407
6411
  * **Gotchas**
6408
6412
  *
6409
- * Rejects overlapping discriminant types in known member tuples at compile
6410
- * time, including nested unions. Numeric and string values such as `1` and
6411
- * `"1"` count as duplicates. Also throws at runtime if multiple members use the
6412
- * same discriminant property key.
6413
+ * Throws when multiple members use the same discriminant property key,
6414
+ * including members of nested unions. Numeric and string values such as `1`
6415
+ * and `"1"` count as duplicates.
6413
6416
  *
6414
6417
  * **Example** (Adding tagged-union utilities to an existing union)
6415
6418
  *
@@ -6436,7 +6439,7 @@ export type toTaggedUnion<
6436
6439
  */
6437
6440
  export function toTaggedUnion<const Tag extends PropertyKey>(tag: Tag) {
6438
6441
  return <const Members extends ReadonlyArray<Constraint & { readonly Type: { readonly [K in Tag]: PropertyKey } }>>(
6439
- self: Union<Members> & NoInfer<EnsureUniqueDiscriminants<TaggedUnionUtils<Tag, Members>["discriminants"]>>
6442
+ self: Union<Members>
6440
6443
  ): toTaggedUnion<Tag, Members> => {
6441
6444
  const cases: Record<PropertyKey, unknown> = {}
6442
6445
  const discriminants: Array<PropertyKey> = []
@@ -6741,9 +6744,8 @@ export function link<T>() {
6741
6744
  * )
6742
6745
  *
6743
6746
  * const result = Schema.decodeUnknownResult(schema)({ password: "123456", confirmPassword: "1234567" })
6744
- * if (Result.isFailure(result) && result.failure.issue._tag === "Filter" && result.failure.issue.issue._tag === "Pointer") {
6745
- * result.failure.issue.issue.path // => ["password"]
6746
- * }
6747
+ * const message = Result.isFailure(result) ? result.failure.message : ""
6748
+ * message // => "password and confirmPassword must match\n at [\"password\"]"
6747
6749
  * ```
6748
6750
  *
6749
6751
  * **Example** (Reporting multiple failures at once)
@@ -6763,9 +6765,8 @@ export function link<T>() {
6763
6765
  * )
6764
6766
  *
6765
6767
  * const result = Schema.decodeUnknownResult(schema)({ a: 1, b: 0, c: 0 })
6766
- * if (Result.isFailure(result) && result.failure.issue._tag === "Filter" && result.failure.issue.issue._tag === "Composite") {
6767
- * result.failure.issue.issue.issues.map((issue) => issue._tag === "Pointer" ? issue.path : []) // => [["b"], ["c"]]
6768
- * }
6768
+ * const message = Result.isFailure(result) ? result.failure.message : ""
6769
+ * message // => "b must be greater than 0\n at [\"b\"]\nc must be greater than 0\n at [\"c\"]"
6769
6770
  * ```
6770
6771
  *
6771
6772
  * @stability stable
@@ -6908,8 +6909,8 @@ export function isPattern(
6908
6909
  const flags = regExp.flags
6909
6910
  const canExport = /^[dg]*uy?$/.test(flags)
6910
6911
  const runtimeRegExp = flags === ""
6911
- ? `new RegExp(${format(source)})`
6912
- : `new RegExp(${format(source)}, ${format(flags)})`
6912
+ ? `new globalThis.RegExp(${format(source)})`
6913
+ : `new globalThis.RegExp(${format(source)}, ${format(flags)})`
6913
6914
  return SchemaAST.isPattern(regExp, {
6914
6915
  toJsonSchema: () => canExport ? { pattern: flags.endsWith("y") ? `^(?:${source})` : source } : [{}, true],
6915
6916
  toCode: () => ({ runtime: `Schema.isPattern(${runtimeRegExp})` }),
@@ -7041,7 +7042,7 @@ export function isUUID(version?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8, annotations?: An
7041
7042
  )
7042
7043
  }
7043
7044
 
7044
- const GUID_REGEXP = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/
7045
+ const GUID_REGEXP = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/u
7045
7046
  /**
7046
7047
  * Validates that a string has the GUID / UUID textual shape.
7047
7048
  *
@@ -7076,18 +7077,22 @@ export function isGUID(annotations?: Annotations.Filter) {
7076
7077
  id: "effect/schema/isGUID",
7077
7078
  payload: null
7078
7079
  },
7079
- toJsonSchema: () => ({ pattern: GUID_REGEXP.source }),
7080
7080
  toCode: () => ({ runtime: "Schema.isGUID()" }),
7081
7081
  ...annotations
7082
7082
  }
7083
7083
  )
7084
7084
  }
7085
+
7086
+ const ULID_REGEXP = /^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$/u
7085
7087
  /**
7086
7088
  * Validates that a string is a valid ULID (Universally Unique Lexicographically
7087
7089
  * Sortable Identifier).
7088
7090
  *
7089
7091
  * **Details**
7090
7092
  *
7093
+ * Accepts uppercase and lowercase characters. The first character must be
7094
+ * between `0` and `7` so the value fits in 128 bits.
7095
+ *
7091
7096
  * JSON Schema:
7092
7097
  *
7093
7098
  * This check corresponds to a `pattern` constraint in JSON Schema that matches
@@ -7103,15 +7108,13 @@ export function isGUID(annotations?: Annotations.Filter) {
7103
7108
  * @since 4.0.0
7104
7109
  */
7105
7110
  export function isULID(annotations?: Annotations.Filter) {
7106
- const regExp = /^[0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{26}$/
7107
7111
  return isPattern(
7108
- regExp,
7112
+ ULID_REGEXP,
7109
7113
  {
7110
7114
  representation: {
7111
7115
  id: "effect/schema/isULID",
7112
7116
  payload: null
7113
7117
  },
7114
- toJsonSchema: () => ({ pattern: regExp.source }),
7115
7118
  toCode: () => ({ runtime: "Schema.isULID()" }),
7116
7119
  ...annotations
7117
7120
  }
@@ -7137,16 +7140,21 @@ export function isULID(annotations?: Annotations.Filter) {
7137
7140
  * @since 4.0.0
7138
7141
  */
7139
7142
  export function isBase64(annotations?: Annotations.Filter) {
7140
- const regExp = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/
7141
- return isPattern(
7142
- regExp,
7143
+ const pattern = "^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$"
7144
+ // `pattern` overflows the V8 stack on large inputs
7145
+ const regExp = /^[0-9a-zA-Z+/]*={0,2}$/
7146
+ return makeFilter(
7147
+ (s: string) => s.length % 4 === 0 && regExp.test(s),
7143
7148
  {
7144
7149
  expected: "a base64 encoded string",
7145
7150
  representation: {
7146
7151
  id: "effect/schema/isBase64",
7147
7152
  payload: null
7148
7153
  },
7149
- toJsonSchema: () => ({ pattern: regExp.source }),
7154
+ toJsonSchema: () => ({ pattern }),
7155
+ arbitraryConstraint: {
7156
+ patterns: [{ source: pattern, flags: "" }]
7157
+ },
7150
7158
  toCode: () => ({ runtime: "Schema.isBase64()" }),
7151
7159
  ...annotations
7152
7160
  }
@@ -7173,16 +7181,21 @@ export function isBase64(annotations?: Annotations.Filter) {
7173
7181
  * @since 4.0.0
7174
7182
  */
7175
7183
  export function isBase64Url(annotations?: Annotations.Filter) {
7176
- const regExp = /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/
7177
- return isPattern(
7178
- regExp,
7184
+ const pattern = "^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$"
7185
+ // `pattern` overflows the V8 stack on large inputs
7186
+ const regExp = /^[0-9a-zA-Z-_]*={0,2}$/
7187
+ return makeFilter(
7188
+ (s: string) => regExp.test(s) && (s.endsWith("=") ? s.length % 4 === 0 : s.length % 4 !== 1),
7179
7189
  {
7180
7190
  expected: "a base64url encoded string",
7181
7191
  representation: {
7182
7192
  id: "effect/schema/isBase64Url",
7183
7193
  payload: null
7184
7194
  },
7185
- toJsonSchema: () => ({ pattern: regExp.source }),
7195
+ toJsonSchema: () => ({ pattern }),
7196
+ arbitraryConstraint: {
7197
+ patterns: [{ source: pattern, flags: "" }]
7198
+ },
7186
7199
  toCode: () => ({ runtime: "Schema.isBase64Url()" }),
7187
7200
  ...annotations
7188
7201
  }
@@ -7386,16 +7399,18 @@ const CAPITALIZED_PATTERN = "^(?:[^a-z][\\s\\S]*)?$"
7386
7399
  * @since 4.0.0
7387
7400
  */
7388
7401
  export function isCapitalized(annotations?: Annotations.Filter) {
7389
- const regExp = new globalThis.RegExp(CAPITALIZED_PATTERN)
7390
7402
  return makeFilter(
7391
- (s: string) => s.charAt(0).toUpperCase() === s.charAt(0),
7403
+ (s: string) => {
7404
+ const [first = ""] = s
7405
+ return first.toUpperCase() === first
7406
+ },
7392
7407
  {
7393
7408
  expected: "a string with the first character in uppercase",
7394
7409
  representation: {
7395
7410
  id: "effect/schema/isCapitalized",
7396
7411
  payload: null
7397
7412
  },
7398
- toJsonSchema: () => [{ pattern: regExp.source }, true],
7413
+ toJsonSchema: () => [{ pattern: CAPITALIZED_PATTERN }, true],
7399
7414
  toCode: () => ({ runtime: "Schema.isCapitalized()" }),
7400
7415
  arbitraryConstraint: {
7401
7416
  patterns: [{ source: CAPITALIZED_PATTERN, flags: "" }]
@@ -7420,16 +7435,18 @@ const UNCAPITALIZED_PATTERN = "^(?:[^A-Z][\\s\\S]*)?$"
7420
7435
  * @since 4.0.0
7421
7436
  */
7422
7437
  export function isUncapitalized(annotations?: Annotations.Filter) {
7423
- const regExp = new globalThis.RegExp(UNCAPITALIZED_PATTERN)
7424
7438
  return makeFilter(
7425
- (s: string) => s.charAt(0).toLowerCase() === s.charAt(0),
7439
+ (s: string) => {
7440
+ const [first = ""] = s
7441
+ return first.toLowerCase() === first
7442
+ },
7426
7443
  {
7427
7444
  expected: "a string with the first character in lowercase",
7428
7445
  representation: {
7429
7446
  id: "effect/schema/isUncapitalized",
7430
7447
  payload: null
7431
7448
  },
7432
- toJsonSchema: () => [{ pattern: regExp.source }, true],
7449
+ toJsonSchema: () => [{ pattern: UNCAPITALIZED_PATTERN }, true],
7433
7450
  toCode: () => ({ runtime: "Schema.isUncapitalized()" }),
7434
7451
  arbitraryConstraint: {
7435
7452
  patterns: [{ source: UNCAPITALIZED_PATTERN, flags: "" }]
@@ -8058,7 +8075,7 @@ function encodeDatePayload(date: globalThis.Date): string {
8058
8075
  }
8059
8076
 
8060
8077
  function formatDateRuntime(date: globalThis.Date): string {
8061
- return `new Date(${format(date.getTime())})`
8078
+ return `new globalThis.Date(${format(date.getTime())})`
8062
8079
  }
8063
8080
  /**
8064
8081
  * Validates that a Date is greater than the specified value (exclusive).
@@ -9793,8 +9810,7 @@ export interface fromJsonString<S extends Constraint> extends decodeTo<S, String
9793
9810
  }
9794
9811
 
9795
9812
  const JsonString = String.annotate({
9796
- expected: "a string that will be decoded as JSON",
9797
- contentMediaType: "application/json"
9813
+ expected: "a string that will be decoded as JSON"
9798
9814
  })
9799
9815
  /**
9800
9816
  * Returns a schema that decodes a JSON string and then decodes the parsed value
@@ -9939,7 +9955,9 @@ export interface FormData extends instanceOf<globalThis.FormData> {
9939
9955
  * @category schemas
9940
9956
  * @since 4.0.0
9941
9957
  */
9942
- export const FormData: FormData = instanceOf(globalThis.FormData, {
9958
+ // Read the global inside the guard: resolving globalThis.FormData at module
9959
+ // scope loads undici on Node.
9960
+ export const FormData: FormData = declare((u): u is globalThis.FormData => u instanceof globalThis.FormData, {
9943
9961
  representation: {
9944
9962
  id: "effect/schema/FormData",
9945
9963
  payload: null
@@ -11277,7 +11295,7 @@ export function Cause<E extends Constraint, D extends Constraint>(error: E, defe
11277
11295
  }
11278
11296
  return Effect.mapBothEager(SchemaParser.decodeUnknownEffect(failures)(input.reasons, options), {
11279
11297
  onSuccess: Cause_.fromReasons,
11280
- onFailure: (issue) => SchemaIssue.makeCompositeAtKey(ast, "failures", issue, input, options)
11298
+ onFailure: (issue) => SchemaIssue.makeCompositeAtKey(ast, "reasons", issue, input, options)
11281
11299
  })
11282
11300
  }
11283
11301
  },
@@ -11680,6 +11698,65 @@ export const DateTimeUtcFromString: DateTimeUtcFromString = String.annotate({
11680
11698
  dateTimeUtcFromString
11681
11699
  )
11682
11700
  )
11701
+ const dateTimeUtcFromHttpDate: SchemaTransformation.Transformation<DateTime.Utc, string> = SchemaTransformation
11702
+ .transformEffect<DateTime.Utc, string>({
11703
+ decode: (s, options) =>
11704
+ Result_.match(Headers_.parseHttpDate(s), {
11705
+ onFailure: () =>
11706
+ Effect.fail(
11707
+ new SchemaIssue.InvalidValue(
11708
+ { expected: "an HTTP date (RFC 9110 §5.6.7)" },
11709
+ s,
11710
+ options
11711
+ )
11712
+ ),
11713
+ onSuccess: Effect.succeed
11714
+ }),
11715
+ encode: (utc) => Effect.succeed(Headers_.formatHttpDate(utc))
11716
+ })
11717
+ /**
11718
+ * Type-level representation of {@link DateTimeUtcFromHttpDate}.
11719
+ *
11720
+ * @stability unstable
11721
+ * @category models
11722
+ * @since 4.0.0
11723
+ */
11724
+ export interface DateTimeUtcFromHttpDate extends decodeTo<DateTimeUtc, String> {
11725
+ readonly "Rebuild": DateTimeUtcFromHttpDate
11726
+ }
11727
+ /**
11728
+ * Schema for HTTP date header values, such as `Date`, `Last-Modified` and
11729
+ * `Expires`, decoded as `DateTime.Utc`.
11730
+ *
11731
+ * **When to use**
11732
+ *
11733
+ * Use with HTTP API header schemas that carry dates. Decoding accepts the
11734
+ * three formats of RFC 9110 §5.6.7 and reads them as UTC; encoding emits the
11735
+ * preferred IMF-fixdate form (`Sun, 06 Nov 1994 08:49:37 GMT`).
11736
+ *
11737
+ * **Example** (Decoding an HTTP date)
11738
+ *
11739
+ * ```ts
11740
+ * import { DateTime, Schema } from "effect"
11741
+ *
11742
+ * const date = Schema.decodeSync(Schema.DateTimeUtcFromHttpDate)("Sun, 06 Nov 1994 08:49:37 GMT")
11743
+ * const millis = DateTime.toEpochMillis(date) // => 784111777000
11744
+ * ```
11745
+ *
11746
+ * @see {@link DateTimeUtcFromString} for ISO 8601 strings
11747
+ *
11748
+ * @stability unstable
11749
+ * @category schemas
11750
+ * @since 4.0.0
11751
+ */
11752
+ export const DateTimeUtcFromHttpDate: DateTimeUtcFromHttpDate = String.annotate({
11753
+ expected: "an HTTP date string"
11754
+ }).pipe(
11755
+ decodeTo(
11756
+ DateTimeUtc,
11757
+ dateTimeUtcFromHttpDate
11758
+ )
11759
+ )
11683
11760
  /**
11684
11761
  * Type-level representation of {@link DateTimeUtcFromMillis}.
11685
11762
  *
@@ -15190,6 +15267,110 @@ export const Headers: Headers = declare(
15190
15267
  }
15191
15268
  )
15192
15269
 
15270
+ /**
15271
+ * Type-level representation of {@link RetryAfter}.
15272
+ *
15273
+ * @stability unstable
15274
+ * @category models
15275
+ * @since 4.0.0
15276
+ */
15277
+ export interface RetryAfter extends
15278
+ Union<
15279
+ readonly [
15280
+ Struct<{ readonly _tag: tag<"Duration">; readonly duration: Duration }>,
15281
+ Struct<{ readonly _tag: tag<"DateTime">; readonly dateTime: DateTimeUtc }>
15282
+ ]
15283
+ >
15284
+ {
15285
+ readonly "Rebuild": RetryAfter
15286
+ }
15287
+
15288
+ /**
15289
+ * Schema for parsed `Retry-After` header values.
15290
+ *
15291
+ * **Details**
15292
+ *
15293
+ * Matches `Headers.RetryAfter`: either `{ _tag: "Duration", duration }` or
15294
+ * `{ _tag: "DateTime", dateTime }`. The duration must be finite and
15295
+ * non-negative. Use {@link RetryAfterFromString} for the header string form.
15296
+ *
15297
+ * @stability unstable
15298
+ * @category schemas
15299
+ * @since 4.0.0
15300
+ */
15301
+ export const RetryAfter: RetryAfter = Union([
15302
+ Struct({
15303
+ _tag: tag("Duration"),
15304
+ duration: Duration.check(
15305
+ makeFilter((d) => Duration_.isFinite(d) && !Duration_.isNegative(d), {
15306
+ expected: "a finite, non-negative duration"
15307
+ })
15308
+ )
15309
+ }),
15310
+ Struct({ _tag: tag("DateTime"), dateTime: DateTimeUtc })
15311
+ ])
15312
+
15313
+ const retryAfterFromString: SchemaTransformation.Transformation<Headers_.RetryAfter, string> = SchemaTransformation
15314
+ .transformEffect<Headers_.RetryAfter, string>({
15315
+ decode: (s, options) =>
15316
+ Result_.match(Headers_.parseRetryAfter(s), {
15317
+ onFailure: () =>
15318
+ Effect.fail(
15319
+ new SchemaIssue.InvalidValue(
15320
+ { expected: "whole non-negative seconds or an HTTP date (RFC 9110 §10.2.3)" },
15321
+ s,
15322
+ options
15323
+ )
15324
+ ),
15325
+ onSuccess: Effect.succeed
15326
+ }),
15327
+ encode: (self) => Effect.succeed(Headers_.formatRetryAfter(self))
15328
+ })
15329
+
15330
+ /**
15331
+ * Type-level representation of {@link RetryAfterFromString}.
15332
+ *
15333
+ * @stability unstable
15334
+ * @category models
15335
+ * @since 4.0.0
15336
+ */
15337
+ export interface RetryAfterFromString extends decodeTo<RetryAfter, String> {
15338
+ readonly "Rebuild": RetryAfterFromString
15339
+ }
15340
+
15341
+ /**
15342
+ * Schema for `Retry-After` header values, decoded with
15343
+ * `Headers.parseRetryAfter`.
15344
+ *
15345
+ * **When to use**
15346
+ *
15347
+ * Use with HTTP API header schemas that carry `Retry-After`. Decoding accepts
15348
+ * whole non-negative seconds or an HTTP date and rejects anything else;
15349
+ * encoding emits the delay as whole seconds, rounding a fractional second up,
15350
+ * or the date as an IMF-fixdate.
15351
+ *
15352
+ * **Example** (Decoding a Retry-After header)
15353
+ *
15354
+ * ```ts
15355
+ * import { Schema } from "effect"
15356
+ *
15357
+ * const value = Schema.decodeSync(Schema.RetryAfterFromString)("120")
15358
+ * // => { _tag: "Duration", duration: Duration.seconds(120) }
15359
+ * ```
15360
+ *
15361
+ * @stability unstable
15362
+ * @category schemas
15363
+ * @since 4.0.0
15364
+ */
15365
+ export const RetryAfterFromString: RetryAfterFromString = String.annotate({
15366
+ expected: "a Retry-After header value"
15367
+ }).pipe(
15368
+ decodeTo(
15369
+ RetryAfter,
15370
+ retryAfterFromString
15371
+ )
15372
+ )
15373
+
15193
15374
  /**
15194
15375
  * Type-level representation of {@link UrlParams}.
15195
15376
  *
@@ -15743,6 +15924,198 @@ export function Result<A extends Constraint, E extends Constraint>(
15743
15924
  return make(schema.ast, { success, failure })
15744
15925
  }
15745
15926
 
15927
+ // -----------------------------------------------------------------------------
15928
+ // SemVer schemas
15929
+ // -----------------------------------------------------------------------------
15930
+
15931
+ const semVerStringTransformation = <A>(
15932
+ parse: (input: string) => Result_.Result<A, SemVer_.SemVerError>,
15933
+ format: (value: A) => string
15934
+ ): SchemaTransformation.Transformation<A, string> =>
15935
+ SchemaTransformation.transformEffect({
15936
+ decode: (input, options) =>
15937
+ Effect.mapErrorEager(
15938
+ Effect.fromResult(parse(input)),
15939
+ (error) => new SchemaIssue.InvalidValue({ message: error.message }, input, options)
15940
+ ),
15941
+ encode: (value) => Effect.succeed(format(value))
15942
+ })
15943
+ // Alphanumeric identifiers contain at least one non-digit.
15944
+ const SemVerCoreArbitrary = Struct({
15945
+ major: Natural,
15946
+ minor: Natural,
15947
+ patch: Natural,
15948
+ prerelease: ArraySchema(Union([Natural, String.check(isPattern(/^[0-9]*[A-Za-z-][0-9A-Za-z-]*$/))]))
15949
+ })
15950
+ const semVerFromString = semVerStringTransformation(SemVer_.parse, SemVer_.format)
15951
+ const SemVerString = String.annotate({ expected: "a string that will be decoded as a SemVer" })
15952
+ /**
15953
+ * Type-level representation of {@link SemVer}.
15954
+ *
15955
+ * @stability unstable
15956
+ * @category models
15957
+ * @since 4.0.6
15958
+ */
15959
+ export interface SemVer extends declare<SemVer_.SemVer> {
15960
+ readonly "Rebuild": SemVer
15961
+ }
15962
+ /**
15963
+ * Schema for `SemVer` values.
15964
+ *
15965
+ * **Details**
15966
+ *
15967
+ * The JSON and StringTree codecs encode a version as its canonical string,
15968
+ * including build metadata.
15969
+ *
15970
+ * @see {@link SemVerFromString} for parsing version strings
15971
+ * @stability unstable
15972
+ * @category schemas
15973
+ * @since 4.0.6
15974
+ */
15975
+ export const SemVer: SemVer = declare(
15976
+ SemVer_.isSemVer,
15977
+ {
15978
+ representation: {
15979
+ id: "effect/schema/SemVer",
15980
+ payload: null
15981
+ },
15982
+ toCode: () => ({
15983
+ runtime: `Schema.SemVer`,
15984
+ Type: `SemVer.SemVer`,
15985
+ importDeclarations: [`import * as SemVer from "effect/SemVer"`]
15986
+ }),
15987
+ expected: "SemVer",
15988
+ toCodecArbitrary: () =>
15989
+ linkDecoding<SemVer_.SemVer>()(
15990
+ Struct({
15991
+ ...SemVerCoreArbitrary.fields,
15992
+ build: ArraySchema(String.check(isPattern(/^[0-9A-Za-z-]+$/)))
15993
+ }),
15994
+ SchemaGetter.transform(SemVer_.make)
15995
+ ),
15996
+ toCodecJson: () =>
15997
+ link<SemVer_.SemVer>()(
15998
+ SemVerString,
15999
+ semVerFromString
16000
+ ),
16001
+ toFormatter: () => SemVer_.format
16002
+ }
16003
+ )
16004
+ /**
16005
+ * Type-level representation of {@link SemVerFromString}.
16006
+ *
16007
+ * @stability unstable
16008
+ * @category models
16009
+ * @since 4.0.6
16010
+ */
16011
+ export interface SemVerFromString extends decodeTo<SemVer, String> {
16012
+ readonly "Rebuild": SemVerFromString
16013
+ }
16014
+ /**
16015
+ * Schema that parses a Semantic Versioning 2.0.0 string into a `SemVer`.
16016
+ *
16017
+ * **Details**
16018
+ *
16019
+ * Decodes with `SemVer.parse`, rejecting a `v` prefix, surrounding whitespace,
16020
+ * partial versions, and leading zeros. Encodes with `SemVer.format`, including
16021
+ * build metadata.
16022
+ *
16023
+ * @see {@link SemVer} for validating values that are already SemVer values
16024
+ * @stability unstable
16025
+ * @category schemas
16026
+ * @since 4.0.6
16027
+ */
16028
+ export const SemVerFromString: SemVerFromString = SemVerString.pipe(
16029
+ decodeTo(SemVer, semVerFromString)
16030
+ )
16031
+ const semVerRangeFromString = semVerStringTransformation(SemVerRange_.parse, SemVerRange_.format)
16032
+ const SemVerRangeString = String.annotate({ expected: "a string that will be decoded as a SemVer range" })
16033
+ /**
16034
+ * Type-level representation of {@link SemVerRange}.
16035
+ *
16036
+ * @stability unstable
16037
+ * @category models
16038
+ * @since 4.0.6
16039
+ */
16040
+ export interface SemVerRange extends declare<SemVerRange_.SemVerRange> {
16041
+ readonly "Rebuild": SemVerRange
16042
+ }
16043
+ /**
16044
+ * Schema for `SemVerRange` values.
16045
+ *
16046
+ * **Details**
16047
+ *
16048
+ * The JSON and StringTree codecs encode a range with `SemVerRange.format`.
16049
+ *
16050
+ * @see {@link SemVerRangeFromString} for parsing range strings
16051
+ * @stability unstable
16052
+ * @category schemas
16053
+ * @since 4.0.6
16054
+ */
16055
+ export const SemVerRange: SemVerRange = declare(
16056
+ SemVerRange_.isSemVerRange,
16057
+ {
16058
+ representation: {
16059
+ id: "effect/schema/SemVerRange",
16060
+ payload: null
16061
+ },
16062
+ toCode: () => ({
16063
+ runtime: `Schema.SemVerRange`,
16064
+ Type: `SemVerRange.SemVerRange`,
16065
+ importDeclarations: [`import * as SemVerRange from "effect/SemVerRange"`]
16066
+ }),
16067
+ expected: "SemVerRange",
16068
+ toCodecArbitrary: () =>
16069
+ linkDecoding<SemVerRange_.SemVerRange>()(
16070
+ ArraySchema(
16071
+ ArraySchema(Struct({
16072
+ operator: Literals(["", "=", "<", "<=", ">", ">=", "~", "^"]),
16073
+ version: SemVerCoreArbitrary
16074
+ })).check(isMinLength(1))
16075
+ ),
16076
+ SchemaGetter.transform((sets) =>
16077
+ SemVerRange_.parseUnsafe(
16078
+ sets.map((set) =>
16079
+ set.map(({ operator, version }) => `${operator}${SemVer_.format(SemVer_.make(version))}`).join(" ")
16080
+ ).join(" || ")
16081
+ )
16082
+ )
16083
+ ),
16084
+ toCodecJson: () =>
16085
+ link<SemVerRange_.SemVerRange>()(
16086
+ SemVerRangeString,
16087
+ semVerRangeFromString
16088
+ ),
16089
+ toFormatter: () => SemVerRange_.format
16090
+ }
16091
+ )
16092
+ /**
16093
+ * Type-level representation of {@link SemVerRangeFromString}.
16094
+ *
16095
+ * @stability unstable
16096
+ * @category models
16097
+ * @since 4.0.6
16098
+ */
16099
+ export interface SemVerRangeFromString extends decodeTo<SemVerRange, String> {
16100
+ readonly "Rebuild": SemVerRangeFromString
16101
+ }
16102
+ /**
16103
+ * Schema that parses an npm-style version range string into a `SemVerRange`.
16104
+ *
16105
+ * **Details**
16106
+ *
16107
+ * Decodes with `SemVerRange.parse` and encodes with `SemVerRange.format`,
16108
+ * preserving parsed operators and normalizing wildcard spellings.
16109
+ *
16110
+ * @see {@link SemVerRange} for validating values that are already ranges
16111
+ * @stability unstable
16112
+ * @category schemas
16113
+ * @since 4.0.6
16114
+ */
16115
+ export const SemVerRangeFromString: SemVerRangeFromString = SemVerRangeString.pipe(
16116
+ decodeTo(SemVerRange, semVerRangeFromString)
16117
+ )
16118
+
15746
16119
  /**
15747
16120
  * Type-level representation returned by {@link Class}.
15748
16121
  *
@@ -15905,7 +16278,12 @@ function makeClass<
15905
16278
  return getClassSchema(this).rebuild(ast)
15906
16279
  }
15907
16280
  static make(input: S["~type.make.in"], options?: MakeOptions): Self {
15908
- return SchemaParser.make(getClassSchema(this) as any)(input ?? {}, options) as Self
16281
+ return SchemaParser.makeClassSync(
16282
+ SchemaAST.toType(getClassSchema(this).ast),
16283
+ input ?? {},
16284
+ options,
16285
+ (fields) => makeClassTrusted(this, fields)
16286
+ )
15909
16287
  }
15910
16288
  static makeOption(input: S["~type.make.in"], options?: MakeOptions): Option_.Option<Self> {
15911
16289
  return SchemaParser.makeOption(getClassSchema(this) as any)(input ?? {}, options) as any
@@ -15958,16 +16336,19 @@ function makeClass<
15958
16336
  return out
15959
16337
  }
15960
16338
 
16339
+ /**
16340
+ * Constructs a class instance from fields that were already validated against
16341
+ * the class struct, without running the constructor's schema pass.
16342
+ *
16343
+ * @internal
16344
+ */
16345
+ export function makeClassTrusted<Self>(self: new(input: any, options?: MakeOptions) => Self, fields: object): Self {
16346
+ return new self(fields, { "~payload": { token: payloadToken, value: fields } })
16347
+ }
16348
+
15961
16349
  function getClassTransformation(self: new(...args: ReadonlyArray<any>) => any) {
15962
16350
  return new SchemaTransformation.Transformation<any, any, never, never>(
15963
- SchemaGetter.transform((input) =>
15964
- new self(input, {
15965
- "~payload": {
15966
- token: payloadToken,
15967
- value: input
15968
- }
15969
- })
15970
- ),
16351
+ SchemaGetter.transform((input) => makeClassTrusted(self, input)),
15971
16352
  SchemaGetter.passthrough()
15972
16353
  )
15973
16354
  }
@@ -16051,7 +16432,13 @@ function isStruct(schema: Struct.Fields | Struct<Struct.Fields>): schema is Stru
16051
16432
  *
16052
16433
  * **Gotchas**
16053
16434
  *
16054
- * Passing `disableChecks` in the options skips constructor validation.
16435
+ * To subclass a `Schema.Class`, use `Base.extend<Self>(...)`, even when only
16436
+ * adding methods or getters. Pass `{}` for the fields when none are added.
16437
+ * Plain `class Child extends Base` is unsupported.
16438
+ *
16439
+ * Passing `disableChecks: true` skips filters and checks, not parsing of types
16440
+ * and structure. Wrong types and shapes are still rejected, and constructor
16441
+ * defaults still apply.
16055
16442
  *
16056
16443
  * **Example** (Defining a basic class)
16057
16444
  *
@@ -16122,7 +16509,13 @@ export const Class: {
16122
16509
  *
16123
16510
  * **Gotchas**
16124
16511
  *
16125
- * Passing `disableChecks` in the options skips constructor validation.
16512
+ * To subclass a `Schema.Class`, use `Base.extend<Self>(...)`, even when only
16513
+ * adding methods or getters. Pass `{}` for the fields when none are added.
16514
+ * Plain `class Child extends Base` is unsupported.
16515
+ *
16516
+ * Passing `disableChecks: true` skips filters and checks, not parsing of types
16517
+ * and structure. Wrong types and shapes are still rejected, and constructor
16518
+ * defaults still apply.
16126
16519
  *
16127
16520
  * **Example** (Defining a basic class)
16128
16521
  *
@@ -16166,151 +16559,14 @@ export const Class: {
16166
16559
  * @since 3.10.0
16167
16560
  */
16168
16561
  <Self = never, Brand = {}>(identifier: string): {
16169
- /**
16170
- * Creates a schema-backed class whose constructor validates input against a
16171
- * {@link Struct} schema. Construction throws an `Error` with a
16172
- * `SchemaIssue.Issue` in its `cause` on invalid input.
16173
- *
16174
- * **When to use**
16175
- *
16176
- * Use when you need a schema-backed data class with validated construction,
16177
- * schema-derived decoding/encoding, and class-style methods or inheritance.
16178
- *
16179
- * **Details**
16180
- *
16181
- * Pass the desired class type as the first type parameter. The second optional
16182
- * type parameter can be used to add nominal brands.
16183
- *
16184
- * The `identifier` is the schema's stable runtime name. It is exposed on the
16185
- * class, stored in the schema AST, and used to label diagnostics and generated
16186
- * references as well as to format class instances.
16187
- *
16188
- * It also derives a runtime marker that recognizes instances across hot module
16189
- * reloads, where `instanceof` can fail because the constructor has been
16190
- * replaced. The identifier is explicit because the outer JavaScript class name
16191
- * is not available while the `extends` expression is evaluated and may change
16192
- * through renaming or minification.
16193
- *
16194
- * **Gotchas**
16195
- *
16196
- * Passing `disableChecks` in the options skips constructor validation.
16197
- *
16198
- * **Example** (Defining a basic class)
16199
- *
16200
- * ```ts import.meta.vitest
16201
- * import { Schema } from "effect"
16202
- *
16203
- * class Person extends Schema.Class<Person>("Person")({
16204
- * name: Schema.String,
16205
- * age: Schema.Number
16206
- * }) {}
16207
- *
16208
- * const alice = new Person({ name: "Alice", age: 30 })
16209
- * alice.name // => "Alice"
16210
- * String(alice) // => "Person({\"name\":\"Alice\",\"age\":30})"
16211
- * ```
16212
- *
16213
- * **Example** (Extending a class)
16214
- *
16215
- * ```ts import.meta.vitest
16216
- * import { Schema } from "effect"
16217
- *
16218
- * class Animal extends Schema.Class<Animal>("Animal")({
16219
- * name: Schema.String
16220
- * }) {}
16221
- *
16222
- * class Dog extends Animal.extend<Dog>("Dog")({
16223
- * breed: Schema.String
16224
- * }) {}
16225
- *
16226
- * const dog = new Dog({ name: "Rex", breed: "Labrador" })
16227
- * dog.name // => "Rex"
16228
- * dog.breed // => "Labrador"
16229
- * ```
16230
- *
16231
- * @see {@link TaggedClass} for adding a `_tag` literal field to the class schema
16232
- * @see {@link Error} for defining schema-backed error classes
16233
- * @see {@link TaggedError} for defining tagged schema-backed error classes
16234
- *
16235
- * @stability stable
16236
- * @category constructors
16237
- * @since 3.10.0
16238
- */
16239
16562
  <const Fields extends Struct.Fields>(
16240
16563
  fields: Fields,
16241
16564
  annotations?: Annotations.Declaration<Self, readonly [Struct<Fields>]>
16242
16565
  ): [Self] extends [never] ? MissingSelfGeneric<"Schema.Class"> : Class<Self, Struct<Fields>, Brand>
16243
- /**
16244
- * Creates a schema-backed class whose constructor validates input against a
16245
- * {@link Struct} schema. Construction throws an `Error` with a
16246
- * `SchemaIssue.Issue` in its `cause` on invalid input.
16247
- *
16248
- * **When to use**
16249
- *
16250
- * Use when you need a schema-backed data class with validated construction,
16251
- * schema-derived decoding/encoding, and class-style methods or inheritance.
16252
- *
16253
- * **Details**
16254
- *
16255
- * Pass the desired class type as the first type parameter. The second optional
16256
- * type parameter can be used to add nominal brands.
16257
- *
16258
- * The `identifier` is the schema's stable runtime name. It is exposed on the
16259
- * class, stored in the schema AST, and used to label diagnostics and generated
16260
- * references as well as to format class instances.
16261
- *
16262
- * It also derives a runtime marker that recognizes instances across hot module
16263
- * reloads, where `instanceof` can fail because the constructor has been
16264
- * replaced. The identifier is explicit because the outer JavaScript class name
16265
- * is not available while the `extends` expression is evaluated and may change
16266
- * through renaming or minification.
16267
- *
16268
- * **Gotchas**
16269
- *
16270
- * Passing `disableChecks` in the options skips constructor validation.
16271
- *
16272
- * **Example** (Defining a basic class)
16273
- *
16274
- * ```ts import.meta.vitest
16275
- * import { Schema } from "effect"
16276
- *
16277
- * class Person extends Schema.Class<Person>("Person")({
16278
- * name: Schema.String,
16279
- * age: Schema.Number
16280
- * }) {}
16281
- *
16282
- * const alice = new Person({ name: "Alice", age: 30 })
16283
- * alice.name // => "Alice"
16284
- * String(alice) // => "Person({\"name\":\"Alice\",\"age\":30})"
16285
- * ```
16286
- *
16287
- * **Example** (Extending a class)
16288
- *
16289
- * ```ts import.meta.vitest
16290
- * import { Schema } from "effect"
16291
- *
16292
- * class Animal extends Schema.Class<Animal>("Animal")({
16293
- * name: Schema.String
16294
- * }) {}
16295
- *
16296
- * class Dog extends Animal.extend<Dog>("Dog")({
16297
- * breed: Schema.String
16298
- * }) {}
16299
- *
16300
- * const dog = new Dog({ name: "Rex", breed: "Labrador" })
16301
- * dog.name // => "Rex"
16302
- * dog.breed // => "Labrador"
16303
- * ```
16304
- *
16305
- * @see {@link TaggedClass} for adding a `_tag` literal field to the class schema
16306
- * @see {@link Error} for defining schema-backed error classes
16307
- * @see {@link TaggedError} for defining tagged schema-backed error classes
16308
- *
16309
- * @stability stable
16310
- * @category constructors
16311
- * @since 3.10.0
16312
- */
16313
- <S extends Struct<Struct.Fields>>(schema: S, annotations?: Annotations.Declaration<Self, readonly [S]>): [Self] extends [never] ? MissingSelfGeneric<"Schema.Class"> : Class<Self, S, Brand>
16566
+ <S extends Struct<Struct.Fields>>(
16567
+ schema: S,
16568
+ annotations?: Annotations.Declaration<Self, readonly [S]>
16569
+ ): [Self] extends [never] ? MissingSelfGeneric<"Schema.Class"> : Class<Self, S, Brand>
16314
16570
  }
16315
16571
  } = <Self, Brand = {}>(identifier: string) =>
16316
16572
  (
@@ -16394,73 +16650,11 @@ export const TaggedClass: {
16394
16650
  * @since 3.10.0
16395
16651
  */
16396
16652
  <Self = never, Brand = {}>(identifier?: string): {
16397
- /**
16398
- * Defines a schema-backed class with an automatically populated `_tag` field.
16399
- *
16400
- * **When to use**
16401
- *
16402
- * Use to define class instances that are validated by a schema and participate
16403
- * in tagged union matching.
16404
- *
16405
- * **Details**
16406
- *
16407
- * The optional `identifier` parameter overrides the schema identifier;
16408
- * it defaults to the `tag` value.
16409
- *
16410
- * **Example** (Defining a tagged class)
16411
- *
16412
- * ```ts import.meta.vitest
16413
- * import { Schema } from "effect"
16414
- *
16415
- * class Circle extends Schema.TaggedClass<Circle>()("Circle", {
16416
- * radius: Schema.Number
16417
- * }) {}
16418
- *
16419
- * const c = new Circle({ radius: 5 })
16420
- * c._tag // => "Circle"
16421
- * c.radius // => 5
16422
- * ```
16423
- *
16424
- * @stability stable
16425
- * @category constructors
16426
- * @since 3.10.0
16427
- */
16428
16653
  <Tag extends string, const Fields extends Struct.Fields>(
16429
16654
  tag: Tag,
16430
16655
  fields: Fields,
16431
16656
  annotations?: Annotations.Declaration<Self, readonly [TaggedStruct<Tag, Fields>]>
16432
16657
  ): [Self] extends [never] ? MissingSelfGeneric<"Schema.TaggedClass"> : Class<Self, TaggedStruct<Tag, Fields>, Brand>
16433
- /**
16434
- * Defines a schema-backed class with an automatically populated `_tag` field.
16435
- *
16436
- * **When to use**
16437
- *
16438
- * Use to define class instances that are validated by a schema and participate
16439
- * in tagged union matching.
16440
- *
16441
- * **Details**
16442
- *
16443
- * The optional `identifier` parameter overrides the schema identifier;
16444
- * it defaults to the `tag` value.
16445
- *
16446
- * **Example** (Defining a tagged class)
16447
- *
16448
- * ```ts import.meta.vitest
16449
- * import { Schema } from "effect"
16450
- *
16451
- * class Circle extends Schema.TaggedClass<Circle>()("Circle", {
16452
- * radius: Schema.Number
16453
- * }) {}
16454
- *
16455
- * const c = new Circle({ radius: 5 })
16456
- * c._tag // => "Circle"
16457
- * c.radius // => 5
16458
- * ```
16459
- *
16460
- * @stability stable
16461
- * @category constructors
16462
- * @since 3.10.0
16463
- */
16464
16658
  <Tag extends string, S extends Struct<Struct.Fields>>(
16465
16659
  tag: Tag,
16466
16660
  schema: S,
@@ -16542,64 +16736,15 @@ export const Error: {
16542
16736
  * @since 4.0.0
16543
16737
  */
16544
16738
  <Self = never, Brand = {}>(identifier: string): {
16545
- /**
16546
- * Creates a schema-backed error class that can be used as a typed,
16547
- * yieldable error in Effect programs. Combines {@link Class} validation with
16548
- * the `YieldableError` interface so instances can be yielded directly inside
16549
- * `Effect.gen`.
16550
- *
16551
- * **Example** (Schema-backed error)
16552
- *
16553
- * ```ts import.meta.vitest
16554
- * import { Effect, Schema } from "effect"
16555
- *
16556
- * class NotFound extends Schema.Error<NotFound>("NotFound")({
16557
- * id: Schema.Number
16558
- * }) {}
16559
- *
16560
- * const program = Effect.gen(function*() {
16561
- * yield* new NotFound({ id: 1 })
16562
- * })
16563
- * const error = await Effect.runPromise(Effect.flip(program))
16564
- * error.id // => 1
16565
- * ```
16566
- *
16567
- * @stability stable
16568
- * @category constructors
16569
- * @since 4.0.0
16570
- */
16571
16739
  <const Fields extends Struct.Fields>(
16572
16740
  fields: Fields,
16573
16741
  annotations?: Annotations.Declaration<Self, readonly [Struct<Fields>]>
16574
16742
  ): [Self] extends [never] ? MissingSelfGeneric<"Schema.Error">
16575
16743
  : Class<Self, Struct<Fields>, Cause_.YieldableError & Brand>
16576
- /**
16577
- * Creates a schema-backed error class that can be used as a typed,
16578
- * yieldable error in Effect programs. Combines {@link Class} validation with
16579
- * the `YieldableError` interface so instances can be yielded directly inside
16580
- * `Effect.gen`.
16581
- *
16582
- * **Example** (Schema-backed error)
16583
- *
16584
- * ```ts import.meta.vitest
16585
- * import { Effect, Schema } from "effect"
16586
- *
16587
- * class NotFound extends Schema.Error<NotFound>("NotFound")({
16588
- * id: Schema.Number
16589
- * }) {}
16590
- *
16591
- * const program = Effect.gen(function*() {
16592
- * yield* new NotFound({ id: 1 })
16593
- * })
16594
- * const error = await Effect.runPromise(Effect.flip(program))
16595
- * error.id // => 1
16596
- * ```
16597
- *
16598
- * @stability stable
16599
- * @category constructors
16600
- * @since 4.0.0
16601
- */
16602
- <S extends Struct<Struct.Fields>>(schema: S, annotations?: Annotations.Declaration<Self, readonly [S]>): [Self] extends [never] ? MissingSelfGeneric<"Schema.Error"> : Class<Self, S, Cause_.YieldableError & Brand>
16744
+ <S extends Struct<Struct.Fields>>(
16745
+ schema: S,
16746
+ annotations?: Annotations.Declaration<Self, readonly [S]>
16747
+ ): [Self] extends [never] ? MissingSelfGeneric<"Schema.Error"> : Class<Self, S, Cause_.YieldableError & Brand>
16603
16748
  }
16604
16749
  } = <Self, Brand = {}>(identifier: string) =>
16605
16750
  (
@@ -16682,72 +16827,12 @@ export const TaggedError: {
16682
16827
  * @since 3.10.0
16683
16828
  */
16684
16829
  <Self = never, Brand = {}>(identifier?: string): {
16685
- /**
16686
- * Defines a schema-backed yieldable error class with an automatically populated
16687
- * `_tag` field.
16688
- *
16689
- * **When to use**
16690
- *
16691
- * Use to define typed errors that are schema validated, yielded in `Effect.gen`,
16692
- * and matched as tagged union members.
16693
- *
16694
- * **Example** (Defining a tagged error class)
16695
- *
16696
- * ```ts import.meta.vitest
16697
- * import { Effect, Schema } from "effect"
16698
- *
16699
- * class NotFound extends Schema.TaggedError<NotFound>()("NotFound", {
16700
- * id: Schema.Number
16701
- * }) {}
16702
- *
16703
- * const program = Effect.gen(function*() {
16704
- * yield* new NotFound({ id: 42 })
16705
- * })
16706
- * const error = await Effect.runPromise(Effect.flip(program))
16707
- * error._tag // => "NotFound"
16708
- * error.id // => 42
16709
- * ```
16710
- *
16711
- * @stability stable
16712
- * @category constructors
16713
- * @since 3.10.0
16714
- */
16715
16830
  <Tag extends string, const Fields extends Struct.Fields>(
16716
16831
  tag: Tag,
16717
16832
  fields: Fields,
16718
16833
  annotations?: Annotations.Declaration<Self, readonly [TaggedStruct<Tag, Fields>]>
16719
16834
  ): [Self] extends [never] ? MissingSelfGeneric<"Schema.TaggedError">
16720
16835
  : Class<Self, TaggedStruct<Tag, Fields>, Cause_.YieldableError & Brand>
16721
- /**
16722
- * Defines a schema-backed yieldable error class with an automatically populated
16723
- * `_tag` field.
16724
- *
16725
- * **When to use**
16726
- *
16727
- * Use to define typed errors that are schema validated, yielded in `Effect.gen`,
16728
- * and matched as tagged union members.
16729
- *
16730
- * **Example** (Defining a tagged error class)
16731
- *
16732
- * ```ts import.meta.vitest
16733
- * import { Effect, Schema } from "effect"
16734
- *
16735
- * class NotFound extends Schema.TaggedError<NotFound>()("NotFound", {
16736
- * id: Schema.Number
16737
- * }) {}
16738
- *
16739
- * const program = Effect.gen(function*() {
16740
- * yield* new NotFound({ id: 42 })
16741
- * })
16742
- * const error = await Effect.runPromise(Effect.flip(program))
16743
- * error._tag // => "NotFound"
16744
- * error.id // => 42
16745
- * ```
16746
- *
16747
- * @stability stable
16748
- * @category constructors
16749
- * @since 3.10.0
16750
- */
16751
16836
  <Tag extends string, S extends Struct<Struct.Fields>>(
16752
16837
  tag: Tag,
16753
16838
  schema: S,
@@ -17317,6 +17402,179 @@ export const toCodecArrayFromSingle: {
17317
17402
  */
17318
17403
  <S extends Constraint>(schema: S): toCodecArrayFromSingle<S>
17319
17404
  } = InternalToCodec.toCodecArrayFromSingle
17405
+ /**
17406
+ * Type-level representation returned by {@link toCodecGoJson}.
17407
+ *
17408
+ * @stability unstable
17409
+ * @category converting
17410
+ * @since 4.0.6
17411
+ */
17412
+ export interface toCodecGoJson<S extends Constraint> extends
17413
+ BottomLazy<
17414
+ S["ast"],
17415
+ toCodecGoJson<S>,
17416
+ S["~type.parameters"],
17417
+ S["~type.mutability"],
17418
+ S["~type.optionality"],
17419
+ S["~type.constructor.default"],
17420
+ S["~encoded.mutability"],
17421
+ S["~encoded.optionality"]
17422
+ >
17423
+ {
17424
+ readonly "Type": S["Type"]
17425
+ readonly "Encoded": Json
17426
+ readonly "DecodingServices": S["DecodingServices"]
17427
+ readonly "EncodingServices": S["EncodingServices"]
17428
+ readonly "~type.make.in": S["~type.make.in"]
17429
+ readonly "~type.make": S["~type.make"]
17430
+ readonly "Iso": S["Iso"]
17431
+ readonly schema: S
17432
+ }
17433
+ /**
17434
+ * Derives a JSON codec, like {@link toCodecJson}, that also accepts the
17435
+ * `null` values Go's `encoding/json` writes for nil pointers, slices, and maps.
17436
+ *
17437
+ * **When to use**
17438
+ *
17439
+ * Use when decoding JSON produced by a Go service (for example the Docker
17440
+ * Engine or Kubernetes APIs), where any field the API document describes as
17441
+ * optional, or any slice or map, may arrive as `null`.
17442
+ *
17443
+ * **Details**
17444
+ *
17445
+ * Decoding applies these rules at every level of the schema:
17446
+ *
17447
+ * - An optional key that is `null` decodes as a missing key.
17448
+ * - A required array (`Schema.Array`) that is `null` decodes as `[]`.
17449
+ * - A required record (`Schema.Record`) that is `null` decodes as `{}`.
17450
+ *
17451
+ * Array and record rules also apply at the top level and to nested collection
17452
+ * values. Tuples, non-empty arrays, and structs are not treated as collections;
17453
+ * collection checks still apply to the empty value.
17454
+ *
17455
+ * Encoding is unchanged from {@link toCodecJson}: the added rules only decode
17456
+ * `null` and do not emit it. A missing key stays missing.
17457
+ *
17458
+ * These rules also accept `encoding/json/v2` output. By default, v2 writes
17459
+ * nil slices and maps as `[]` and `{}`, but it can be configured to emit
17460
+ * `null` instead.
17461
+ *
17462
+ * **Gotchas**
17463
+ *
17464
+ * - Normalization deliberately discards the distinction between nil and empty
17465
+ * Go slices or maps. They are distinguishable in Go, and unmarshalling a
17466
+ * missing key, `null`, or an empty collection can affect existing values
17467
+ * differently. Use {@link toCodecJson} with explicit nullable schemas when
17468
+ * that distinction matters.
17469
+ * - A key whose schema already accepts `null` (for example
17470
+ * `Schema.NullOr(X)`, `Schema.Unknown`, or `Schema.Json`) keeps `null` as a
17471
+ * value.
17472
+ * - A required field that is not an array or a record (a nil pointer to a Go
17473
+ * struct, for example) still fails on `null`. Make it optional if the API
17474
+ * can omit it.
17475
+ * - A nil `[]byte` is written as `null` by `encoding/json` (and as `""` by
17476
+ * version 2), but its schema is a base64 string, not an array. A required
17477
+ * `[]byte` field that is `null` fails; make it optional if the API can send
17478
+ * `null`.
17479
+ * - Only these `null` rules are covered. Field formats such as durations,
17480
+ * base64 bytes, and numbers encoded as strings belong in the field schemas.
17481
+ *
17482
+ * **Example** (Decoding a Go response with nil fields)
17483
+ *
17484
+ * ```ts import.meta.vitest
17485
+ * import { Schema } from "effect"
17486
+ *
17487
+ * const Container = Schema.Struct({
17488
+ * Id: Schema.String,
17489
+ * Names: Schema.Array(Schema.String),
17490
+ * Labels: Schema.Record(Schema.String, Schema.String),
17491
+ * Status: Schema.optionalKey(Schema.String)
17492
+ * })
17493
+ *
17494
+ * const decode = Schema.decodeUnknownSync(Schema.toCodecGoJson(Container))
17495
+ *
17496
+ * decode({ Id: "a", Names: null, Labels: null, Status: null }) // => { Id: "a", Names: [], Labels: {} }
17497
+ * ```
17498
+ *
17499
+ * @see {@link toCodecJson} for the canonical JSON codec
17500
+ * @stability unstable
17501
+ * @category converting
17502
+ * @since 4.0.6
17503
+ */
17504
+ export const toCodecGoJson: {
17505
+ /**
17506
+ * Derives a JSON codec, like {@link toCodecJson}, that also accepts the
17507
+ * `null` values Go's `encoding/json` writes for nil pointers, slices, and maps.
17508
+ *
17509
+ * **When to use**
17510
+ *
17511
+ * Use when decoding JSON produced by a Go service (for example the Docker
17512
+ * Engine or Kubernetes APIs), where any field the API document describes as
17513
+ * optional, or any slice or map, may arrive as `null`.
17514
+ *
17515
+ * **Details**
17516
+ *
17517
+ * Decoding applies these rules at every level of the schema:
17518
+ *
17519
+ * - An optional key that is `null` decodes as a missing key.
17520
+ * - A required array (`Schema.Array`) that is `null` decodes as `[]`.
17521
+ * - A required record (`Schema.Record`) that is `null` decodes as `{}`.
17522
+ *
17523
+ * Array and record rules also apply at the top level and to nested collection
17524
+ * values. Tuples, non-empty arrays, and structs are not treated as collections;
17525
+ * collection checks still apply to the empty value.
17526
+ *
17527
+ * Encoding is unchanged from {@link toCodecJson}: the added rules only decode
17528
+ * `null` and do not emit it. A missing key stays missing.
17529
+ *
17530
+ * These rules also accept `encoding/json/v2` output. By default, v2 writes
17531
+ * nil slices and maps as `[]` and `{}`, but it can be configured to emit
17532
+ * `null` instead.
17533
+ *
17534
+ * **Gotchas**
17535
+ *
17536
+ * - Normalization deliberately discards the distinction between nil and empty
17537
+ * Go slices or maps. They are distinguishable in Go, and unmarshalling a
17538
+ * missing key, `null`, or an empty collection can affect existing values
17539
+ * differently. Use {@link toCodecJson} with explicit nullable schemas when
17540
+ * that distinction matters.
17541
+ * - A key whose schema already accepts `null` (for example
17542
+ * `Schema.NullOr(X)`, `Schema.Unknown`, or `Schema.Json`) keeps `null` as a
17543
+ * value.
17544
+ * - A required field that is not an array or a record (a nil pointer to a Go
17545
+ * struct, for example) still fails on `null`. Make it optional if the API
17546
+ * can omit it.
17547
+ * - A nil `[]byte` is written as `null` by `encoding/json` (and as `""` by
17548
+ * version 2), but its schema is a base64 string, not an array. A required
17549
+ * `[]byte` field that is `null` fails; make it optional if the API can send
17550
+ * `null`.
17551
+ * - Only these `null` rules are covered. Field formats such as durations,
17552
+ * base64 bytes, and numbers encoded as strings belong in the field schemas.
17553
+ *
17554
+ * **Example** (Decoding a Go response with nil fields)
17555
+ *
17556
+ * ```ts import.meta.vitest
17557
+ * import { Schema } from "effect"
17558
+ *
17559
+ * const Container = Schema.Struct({
17560
+ * Id: Schema.String,
17561
+ * Names: Schema.Array(Schema.String),
17562
+ * Labels: Schema.Record(Schema.String, Schema.String),
17563
+ * Status: Schema.optionalKey(Schema.String)
17564
+ * })
17565
+ *
17566
+ * const decode = Schema.decodeUnknownSync(Schema.toCodecGoJson(Container))
17567
+ *
17568
+ * decode({ Id: "a", Names: null, Labels: null, Status: null }) // => { Id: "a", Names: [], Labels: {} }
17569
+ * ```
17570
+ *
17571
+ * @see {@link toCodecJson} for the canonical JSON codec
17572
+ * @stability unstable
17573
+ * @category converting
17574
+ * @since 4.0.6
17575
+ */
17576
+ <S extends Constraint>(schema: S): toCodecGoJson<S>
17577
+ } = InternalToCodec.toCodecGoJson
17320
17578
  type XmlEncoderOptions = {
17321
17579
  /** Root element name for the returned XML string. Default: "root" */
17322
17580
  readonly rootName?: string | undefined
@@ -17934,7 +18192,7 @@ export declare namespace Annotations {
17934
18192
  readonly "~sentinels"?: ReadonlyArray<SchemaAST.Sentinel> | undefined
17935
18193
  }
17936
18194
  /**
17937
- * Annotations for filter schema nodes (created via `Schema.filter`). Extends
18195
+ * Annotations for filter checks (created via `Schema.makeFilter`). Extends
17938
18196
  * {@link Augment} with an optional error message, identifier, and metadata.
17939
18197
  * Filters are intentionally non-parametric to keep them covariant.
17940
18198
  *