effect 4.0.5 → 4.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (985) hide show
  1. package/ai-docs/package.json +1 -1
  2. package/ai-docs/src/06_schedule/10_schedules.ts +5 -4
  3. package/ai-docs/tsconfig.json +3 -1
  4. package/dist/Array.d.ts +117 -52
  5. package/dist/Array.d.ts.map +1 -1
  6. package/dist/Array.js +41 -20
  7. package/dist/Array.js.map +1 -1
  8. package/dist/Bytes.d.ts +79 -0
  9. package/dist/Bytes.d.ts.map +1 -0
  10. package/dist/Bytes.js +109 -0
  11. package/dist/Bytes.js.map +1 -0
  12. package/dist/Channel.d.ts +181 -13
  13. package/dist/Channel.d.ts.map +1 -1
  14. package/dist/Channel.js +125 -30
  15. package/dist/Channel.js.map +1 -1
  16. package/dist/ChannelSchema.d.ts.map +1 -1
  17. package/dist/ChannelSchema.js.map +1 -1
  18. package/dist/Chunk.d.ts +39 -21
  19. package/dist/Chunk.d.ts.map +1 -1
  20. package/dist/Chunk.js +26 -17
  21. package/dist/Chunk.js.map +1 -1
  22. package/dist/Config.d.ts.map +1 -1
  23. package/dist/Config.js +8 -3
  24. package/dist/Config.js.map +1 -1
  25. package/dist/ConfigProvider.d.ts.map +1 -1
  26. package/dist/ConfigProvider.js +2 -1
  27. package/dist/ConfigProvider.js.map +1 -1
  28. package/dist/Cron.d.ts +2 -2
  29. package/dist/Cron.d.ts.map +1 -1
  30. package/dist/Cron.js +6 -3
  31. package/dist/Cron.js.map +1 -1
  32. package/dist/Duration.d.ts.map +1 -1
  33. package/dist/Duration.js +56 -16
  34. package/dist/Duration.js.map +1 -1
  35. package/dist/Effect.d.ts +487 -163
  36. package/dist/Effect.d.ts.map +1 -1
  37. package/dist/Effect.js +203 -37
  38. package/dist/Effect.js.map +1 -1
  39. package/dist/Equivalence.d.ts +2 -1
  40. package/dist/Equivalence.d.ts.map +1 -1
  41. package/dist/Equivalence.js +12 -8
  42. package/dist/Equivalence.js.map +1 -1
  43. package/dist/Exit.d.ts +24 -9
  44. package/dist/Exit.d.ts.map +1 -1
  45. package/dist/Exit.js +8 -3
  46. package/dist/Exit.js.map +1 -1
  47. package/dist/FiberHandle.d.ts +2 -0
  48. package/dist/FiberHandle.d.ts.map +1 -1
  49. package/dist/FiberHandle.js +9 -4
  50. package/dist/FiberHandle.js.map +1 -1
  51. package/dist/FiberMap.d.ts +2 -0
  52. package/dist/FiberMap.d.ts.map +1 -1
  53. package/dist/FiberMap.js +5 -2
  54. package/dist/FiberMap.js.map +1 -1
  55. package/dist/FileSystem.d.ts +5 -0
  56. package/dist/FileSystem.d.ts.map +1 -1
  57. package/dist/FileSystem.js +3 -0
  58. package/dist/FileSystem.js.map +1 -1
  59. package/dist/Graph.d.ts.map +1 -1
  60. package/dist/Graph.js.map +1 -1
  61. package/dist/HashSet.d.ts.map +1 -1
  62. package/dist/HashSet.js.map +1 -1
  63. package/dist/Iterable.d.ts.map +1 -1
  64. package/dist/Iterable.js +18 -17
  65. package/dist/Iterable.js.map +1 -1
  66. package/dist/JsonSchema.d.ts +9 -3
  67. package/dist/JsonSchema.d.ts.map +1 -1
  68. package/dist/JsonSchema.js +19 -3
  69. package/dist/JsonSchema.js.map +1 -1
  70. package/dist/Layer.d.ts.map +1 -1
  71. package/dist/Layer.js +2 -2
  72. package/dist/Layer.js.map +1 -1
  73. package/dist/ManagedRuntime.d.ts +19 -1
  74. package/dist/ManagedRuntime.d.ts.map +1 -1
  75. package/dist/ManagedRuntime.js +62 -6
  76. package/dist/ManagedRuntime.js.map +1 -1
  77. package/dist/Metric.d.ts +132 -0
  78. package/dist/Metric.d.ts.map +1 -1
  79. package/dist/Metric.js +197 -25
  80. package/dist/Metric.js.map +1 -1
  81. package/dist/MutableHashMap.d.ts.map +1 -1
  82. package/dist/MutableHashMap.js.map +1 -1
  83. package/dist/Number.js +2 -2
  84. package/dist/Number.js.map +1 -1
  85. package/dist/Optic.d.ts.map +1 -1
  86. package/dist/Optic.js.map +1 -1
  87. package/dist/Path.d.ts.map +1 -1
  88. package/dist/Path.js +8 -1
  89. package/dist/Path.js.map +1 -1
  90. package/dist/PubSub.d.ts.map +1 -1
  91. package/dist/PubSub.js +12 -7
  92. package/dist/PubSub.js.map +1 -1
  93. package/dist/Queue.d.ts +4 -1
  94. package/dist/Queue.d.ts.map +1 -1
  95. package/dist/Queue.js +4 -1
  96. package/dist/Queue.js.map +1 -1
  97. package/dist/Random.d.ts.map +1 -1
  98. package/dist/Random.js +1 -1
  99. package/dist/Random.js.map +1 -1
  100. package/dist/RcMap.d.ts +12 -7
  101. package/dist/RcMap.d.ts.map +1 -1
  102. package/dist/RcMap.js +9 -6
  103. package/dist/RcMap.js.map +1 -1
  104. package/dist/Record.d.ts +51 -0
  105. package/dist/Record.d.ts.map +1 -1
  106. package/dist/Record.js +17 -0
  107. package/dist/Record.js.map +1 -1
  108. package/dist/Ref.d.ts.map +1 -1
  109. package/dist/Ref.js.map +1 -1
  110. package/dist/References.d.ts +5 -4
  111. package/dist/References.d.ts.map +1 -1
  112. package/dist/References.js +5 -4
  113. package/dist/References.js.map +1 -1
  114. package/dist/RequestResolver.d.ts +31 -1
  115. package/dist/RequestResolver.d.ts.map +1 -1
  116. package/dist/RequestResolver.js +39 -4
  117. package/dist/RequestResolver.js.map +1 -1
  118. package/dist/Resource.js +1 -1
  119. package/dist/Resource.js.map +1 -1
  120. package/dist/Runtime.d.ts +3 -3
  121. package/dist/Runtime.d.ts.map +1 -1
  122. package/dist/Runtime.js +18 -15
  123. package/dist/Runtime.js.map +1 -1
  124. package/dist/Schedule.d.ts.map +1 -1
  125. package/dist/Schedule.js.map +1 -1
  126. package/dist/Schema.d.ts +384 -332
  127. package/dist/Schema.d.ts.map +1 -1
  128. package/dist/Schema.js +333 -19
  129. package/dist/Schema.js.map +1 -1
  130. package/dist/SchemaAST.d.ts +5 -5
  131. package/dist/SchemaAST.d.ts.map +1 -1
  132. package/dist/SchemaAST.js +24 -8
  133. package/dist/SchemaAST.js.map +1 -1
  134. package/dist/SchemaGetter.d.ts +8 -3
  135. package/dist/SchemaGetter.d.ts.map +1 -1
  136. package/dist/SchemaGetter.js +15 -5
  137. package/dist/SchemaGetter.js.map +1 -1
  138. package/dist/SchemaIssue.d.ts +4 -4
  139. package/dist/SchemaIssue.d.ts.map +1 -1
  140. package/dist/SchemaIssue.js +29 -51
  141. package/dist/SchemaIssue.js.map +1 -1
  142. package/dist/SchemaRepresentation.d.ts +56 -1
  143. package/dist/SchemaRepresentation.d.ts.map +1 -1
  144. package/dist/SchemaRepresentation.js +18 -0
  145. package/dist/SchemaRepresentation.js.map +1 -1
  146. package/dist/SchemaTransformation.d.ts +1 -1
  147. package/dist/SchemaTransformation.js +1 -1
  148. package/dist/Scope.d.ts +12 -2
  149. package/dist/Scope.d.ts.map +1 -1
  150. package/dist/Scope.js +5 -0
  151. package/dist/Scope.js.map +1 -1
  152. package/dist/ScopedCache.d.ts +10 -7
  153. package/dist/ScopedCache.d.ts.map +1 -1
  154. package/dist/ScopedCache.js +9 -5
  155. package/dist/ScopedCache.js.map +1 -1
  156. package/dist/SemVer.d.ts +1196 -0
  157. package/dist/SemVer.d.ts.map +1 -0
  158. package/dist/SemVer.js +756 -0
  159. package/dist/SemVer.js.map +1 -0
  160. package/dist/SemVerRange.d.ts +559 -0
  161. package/dist/SemVerRange.d.ts.map +1 -0
  162. package/dist/SemVerRange.js +551 -0
  163. package/dist/SemVerRange.js.map +1 -0
  164. package/dist/Sink.d.ts.map +1 -1
  165. package/dist/Sink.js +6 -2
  166. package/dist/Sink.js.map +1 -1
  167. package/dist/Stream.d.ts +235 -8
  168. package/dist/Stream.d.ts.map +1 -1
  169. package/dist/Stream.js +145 -60
  170. package/dist/Stream.js.map +1 -1
  171. package/dist/String.d.ts +4 -2
  172. package/dist/String.d.ts.map +1 -1
  173. package/dist/String.js +8 -6
  174. package/dist/String.js.map +1 -1
  175. package/dist/TextDiff.d.ts +399 -0
  176. package/dist/TextDiff.d.ts.map +1 -0
  177. package/dist/TextDiff.js +634 -0
  178. package/dist/TextDiff.js.map +1 -0
  179. package/dist/TxHashMap.d.ts.map +1 -1
  180. package/dist/TxHashMap.js.map +1 -1
  181. package/dist/TxHashSet.d.ts.map +1 -1
  182. package/dist/TxHashSet.js.map +1 -1
  183. package/dist/ai/AiError.d.ts +68 -4
  184. package/dist/ai/AiError.d.ts.map +1 -1
  185. package/dist/ai/AiError.js +50 -2
  186. package/dist/ai/AiError.js.map +1 -1
  187. package/dist/ai/Chat.d.ts +1 -2
  188. package/dist/ai/Chat.d.ts.map +1 -1
  189. package/dist/ai/Chat.js +6 -3
  190. package/dist/ai/Chat.js.map +1 -1
  191. package/dist/ai/Decision.d.ts +46 -1
  192. package/dist/ai/Decision.d.ts.map +1 -1
  193. package/dist/ai/Decision.js.map +1 -1
  194. package/dist/ai/DecisionModel.d.ts +129 -11
  195. package/dist/ai/DecisionModel.d.ts.map +1 -1
  196. package/dist/ai/DecisionModel.js +182 -94
  197. package/dist/ai/DecisionModel.js.map +1 -1
  198. package/dist/ai/EmbeddingModel.d.ts +10 -0
  199. package/dist/ai/EmbeddingModel.d.ts.map +1 -1
  200. package/dist/ai/EmbeddingModel.js +21 -7
  201. package/dist/ai/EmbeddingModel.js.map +1 -1
  202. package/dist/ai/McpClient.d.ts +289 -0
  203. package/dist/ai/McpClient.d.ts.map +1 -0
  204. package/dist/ai/McpClient.js +819 -0
  205. package/dist/ai/McpClient.js.map +1 -0
  206. package/dist/ai/McpClientError.d.ts +254 -0
  207. package/dist/ai/McpClientError.d.ts.map +1 -0
  208. package/dist/ai/McpClientError.js +260 -0
  209. package/dist/ai/McpClientError.js.map +1 -0
  210. package/dist/ai/McpProtocol.d.ts +2 -2
  211. package/dist/ai/McpProtocol.d.ts.map +1 -1
  212. package/dist/ai/McpSchema.d.ts +368 -235
  213. package/dist/ai/McpSchema.d.ts.map +1 -1
  214. package/dist/ai/McpSchema.js +94 -24
  215. package/dist/ai/McpSchema.js.map +1 -1
  216. package/dist/ai/McpServer.d.ts.map +1 -1
  217. package/dist/ai/McpServer.js +25 -22
  218. package/dist/ai/McpServer.js.map +1 -1
  219. package/dist/ai/Prompt.d.ts +22 -20
  220. package/dist/ai/Prompt.d.ts.map +1 -1
  221. package/dist/ai/Prompt.js +23 -1
  222. package/dist/ai/Prompt.js.map +1 -1
  223. package/dist/ai/Response.d.ts +147 -3
  224. package/dist/ai/Response.d.ts.map +1 -1
  225. package/dist/ai/Response.js +35 -37
  226. package/dist/ai/Response.js.map +1 -1
  227. package/dist/ai/Tool.d.ts +12 -4
  228. package/dist/ai/Tool.d.ts.map +1 -1
  229. package/dist/ai/Tool.js.map +1 -1
  230. package/dist/ai/Toolkit.d.ts +48 -1
  231. package/dist/ai/Toolkit.d.ts.map +1 -1
  232. package/dist/ai/Toolkit.js +65 -12
  233. package/dist/ai/Toolkit.js.map +1 -1
  234. package/dist/ai/index.d.ts +10 -0
  235. package/dist/ai/index.d.ts.map +1 -1
  236. package/dist/ai/index.js +10 -0
  237. package/dist/ai/index.js.map +1 -1
  238. package/dist/ai/internal/mcpCore.js.map +1 -1
  239. package/dist/ai/internal/mcpProtocol/v2024_11_05.js +1 -1
  240. package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
  241. package/dist/ai/internal/mcpProtocol/v2025_03_26.js +1 -1
  242. package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
  243. package/dist/ai/internal/mcpProtocol/v2025_06_18.js +2 -2
  244. package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
  245. package/dist/ai/internal/mcpProtocol/v2025_11_25.js +2 -2
  246. package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
  247. package/dist/ai/internal/mcpProtocol/v2026_07_28.js +4 -7
  248. package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
  249. package/dist/ai/internal/mcpProtocol.js +16 -2
  250. package/dist/ai/internal/mcpProtocol.js.map +1 -1
  251. package/dist/ai/internal/mcpRuntime.js +3 -4
  252. package/dist/ai/internal/mcpRuntime.js.map +1 -1
  253. package/dist/ai/internal/mcpSchema/v2024_11_05.js +19 -13
  254. package/dist/ai/internal/mcpSchema/v2024_11_05.js.map +1 -1
  255. package/dist/ai/internal/mcpSchema/v2025_03_26.js +3 -2
  256. package/dist/ai/internal/mcpSchema/v2025_03_26.js.map +1 -1
  257. package/dist/ai/internal/mcpSchema/v2025_06_18.js +7 -7
  258. package/dist/ai/internal/mcpSchema/v2025_06_18.js.map +1 -1
  259. package/dist/ai/internal/mcpSchema/v2025_11_25.js +8 -8
  260. package/dist/ai/internal/mcpSchema/v2025_11_25.js.map +1 -1
  261. package/dist/ai/internal/mcpSchema/v2026_07_28.js +43 -42
  262. package/dist/ai/internal/mcpSchema/v2026_07_28.js.map +1 -1
  263. package/dist/cli/CliError.d.ts +42 -2
  264. package/dist/cli/CliError.d.ts.map +1 -1
  265. package/dist/cli/CliError.js +44 -5
  266. package/dist/cli/CliError.js.map +1 -1
  267. package/dist/cli/Command.d.ts +286 -2
  268. package/dist/cli/Command.d.ts.map +1 -1
  269. package/dist/cli/Command.js +107 -6
  270. package/dist/cli/Command.js.map +1 -1
  271. package/dist/cli/Completions.d.ts +5 -0
  272. package/dist/cli/Completions.d.ts.map +1 -1
  273. package/dist/cli/Completions.js.map +1 -1
  274. package/dist/cli/Flag.d.ts +115 -0
  275. package/dist/cli/Flag.d.ts.map +1 -1
  276. package/dist/cli/Flag.js +56 -0
  277. package/dist/cli/Flag.js.map +1 -1
  278. package/dist/cli/GlobalFlag.d.ts.map +1 -1
  279. package/dist/cli/GlobalFlag.js +3 -3
  280. package/dist/cli/GlobalFlag.js.map +1 -1
  281. package/dist/cli/Param.d.ts +107 -0
  282. package/dist/cli/Param.d.ts.map +1 -1
  283. package/dist/cli/Param.js +56 -0
  284. package/dist/cli/Param.js.map +1 -1
  285. package/dist/cli/TerminalCapabilities.d.ts +84 -0
  286. package/dist/cli/TerminalCapabilities.d.ts.map +1 -0
  287. package/dist/cli/TerminalCapabilities.js +122 -0
  288. package/dist/cli/TerminalCapabilities.js.map +1 -0
  289. package/dist/cli/index.d.ts +5 -0
  290. package/dist/cli/index.d.ts.map +1 -1
  291. package/dist/cli/index.js +5 -0
  292. package/dist/cli/index.js.map +1 -1
  293. package/dist/cli/internal/command.d.ts +2 -1
  294. package/dist/cli/internal/command.d.ts.map +1 -1
  295. package/dist/cli/internal/command.js +5 -2
  296. package/dist/cli/internal/command.js.map +1 -1
  297. package/dist/cli/internal/completions/bash.js +4 -3
  298. package/dist/cli/internal/completions/bash.js.map +1 -1
  299. package/dist/cli/internal/completions/descriptor.js +9 -1
  300. package/dist/cli/internal/completions/descriptor.js.map +1 -1
  301. package/dist/cli/internal/completions/fish.js +10 -8
  302. package/dist/cli/internal/completions/fish.js.map +1 -1
  303. package/dist/cli/internal/completions/powershell.js +18 -9
  304. package/dist/cli/internal/completions/powershell.js.map +1 -1
  305. package/dist/cli/internal/completions/zsh.js +8 -5
  306. package/dist/cli/internal/completions/zsh.js.map +1 -1
  307. package/dist/cli/internal/formatter.d.ts +2 -0
  308. package/dist/cli/internal/formatter.d.ts.map +1 -0
  309. package/dist/cli/internal/formatter.js +15 -0
  310. package/dist/cli/internal/formatter.js.map +1 -0
  311. package/dist/cli/internal/lexer.js +24 -10
  312. package/dist/cli/internal/lexer.js.map +1 -1
  313. package/dist/cli/internal/parser.js +24 -12
  314. package/dist/cli/internal/parser.js.map +1 -1
  315. package/dist/cluster/ClusterCron.d.ts +29 -1
  316. package/dist/cluster/ClusterCron.d.ts.map +1 -1
  317. package/dist/cluster/ClusterCron.js +64 -32
  318. package/dist/cluster/ClusterCron.js.map +1 -1
  319. package/dist/cluster/ClusterMetrics.d.ts +143 -7
  320. package/dist/cluster/ClusterMetrics.d.ts.map +1 -1
  321. package/dist/cluster/ClusterMetrics.js +151 -7
  322. package/dist/cluster/ClusterMetrics.js.map +1 -1
  323. package/dist/cluster/ClusterWorkflowEngine.d.ts +1 -1
  324. package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  325. package/dist/cluster/ClusterWorkflowEngine.js +37 -11
  326. package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
  327. package/dist/cluster/Entity.d.ts +2 -0
  328. package/dist/cluster/Entity.d.ts.map +1 -1
  329. package/dist/cluster/Entity.js.map +1 -1
  330. package/dist/cluster/MessageStorage.d.ts +21 -0
  331. package/dist/cluster/MessageStorage.d.ts.map +1 -1
  332. package/dist/cluster/MessageStorage.js.map +1 -1
  333. package/dist/cluster/Runners.d.ts.map +1 -1
  334. package/dist/cluster/Runners.js +54 -15
  335. package/dist/cluster/Runners.js.map +1 -1
  336. package/dist/cluster/Sharding.d.ts +1 -0
  337. package/dist/cluster/Sharding.d.ts.map +1 -1
  338. package/dist/cluster/Sharding.js +95 -32
  339. package/dist/cluster/Sharding.js.map +1 -1
  340. package/dist/cluster/ShardingConfig.d.ts +20 -0
  341. package/dist/cluster/ShardingConfig.d.ts.map +1 -1
  342. package/dist/cluster/ShardingConfig.js +4 -0
  343. package/dist/cluster/ShardingConfig.js.map +1 -1
  344. package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
  345. package/dist/cluster/SqlMessageStorage.js +40 -50
  346. package/dist/cluster/SqlMessageStorage.js.map +1 -1
  347. package/dist/cluster/SqlRunnerStorage.d.ts +2 -2
  348. package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
  349. package/dist/cluster/SqlRunnerStorage.js +10 -4
  350. package/dist/cluster/SqlRunnerStorage.js.map +1 -1
  351. package/dist/cluster/internal/entityManager.js +65 -8
  352. package/dist/cluster/internal/entityManager.js.map +1 -1
  353. package/dist/devtools/DevTools.d.ts +3 -2
  354. package/dist/devtools/DevTools.d.ts.map +1 -1
  355. package/dist/devtools/DevTools.js +3 -2
  356. package/dist/devtools/DevTools.js.map +1 -1
  357. package/dist/devtools/DevToolsClient.d.ts +11 -0
  358. package/dist/devtools/DevToolsClient.d.ts.map +1 -1
  359. package/dist/devtools/DevToolsClient.js +31 -4
  360. package/dist/devtools/DevToolsClient.js.map +1 -1
  361. package/dist/encoding/Base64Url.d.ts +29 -0
  362. package/dist/encoding/Base64Url.d.ts.map +1 -1
  363. package/dist/encoding/Base64Url.js +29 -0
  364. package/dist/encoding/Base64Url.js.map +1 -1
  365. package/dist/encoding/Ini.d.ts.map +1 -1
  366. package/dist/encoding/Ini.js +3 -0
  367. package/dist/encoding/Ini.js.map +1 -1
  368. package/dist/encoding/JsonArray.d.ts +270 -0
  369. package/dist/encoding/JsonArray.d.ts.map +1 -0
  370. package/dist/encoding/JsonArray.js +691 -0
  371. package/dist/encoding/JsonArray.js.map +1 -0
  372. package/dist/encoding/Ndjson.d.ts +43 -4
  373. package/dist/encoding/Ndjson.d.ts.map +1 -1
  374. package/dist/encoding/Ndjson.js +169 -18
  375. package/dist/encoding/Ndjson.js.map +1 -1
  376. package/dist/encoding/SchemaBinary.d.ts +9 -1
  377. package/dist/encoding/SchemaBinary.d.ts.map +1 -1
  378. package/dist/encoding/SchemaBinary.js +12 -19
  379. package/dist/encoding/SchemaBinary.js.map +1 -1
  380. package/dist/encoding/Tar.d.ts +309 -0
  381. package/dist/encoding/Tar.d.ts.map +1 -0
  382. package/dist/encoding/Tar.js +1182 -0
  383. package/dist/encoding/Tar.js.map +1 -0
  384. package/dist/encoding/Toml.js +3 -3
  385. package/dist/encoding/Toml.js.map +1 -1
  386. package/dist/encoding/Xml.d.ts +464 -0
  387. package/dist/encoding/Xml.d.ts.map +1 -0
  388. package/dist/encoding/Xml.js +1619 -0
  389. package/dist/encoding/Xml.js.map +1 -0
  390. package/dist/encoding/Yaml.d.ts +6 -2
  391. package/dist/encoding/Yaml.d.ts.map +1 -1
  392. package/dist/encoding/Yaml.js +97 -34
  393. package/dist/encoding/Yaml.js.map +1 -1
  394. package/dist/encoding/Zip.d.ts +413 -0
  395. package/dist/encoding/Zip.d.ts.map +1 -0
  396. package/dist/encoding/Zip.js +1255 -0
  397. package/dist/encoding/Zip.js.map +1 -0
  398. package/dist/encoding/index.d.ts +20 -0
  399. package/dist/encoding/index.d.ts.map +1 -1
  400. package/dist/encoding/index.js +20 -0
  401. package/dist/encoding/index.js.map +1 -1
  402. package/dist/eventlog/EventJournal.d.ts +90 -5
  403. package/dist/eventlog/EventJournal.d.ts.map +1 -1
  404. package/dist/eventlog/EventJournal.js +488 -228
  405. package/dist/eventlog/EventJournal.js.map +1 -1
  406. package/dist/eventlog/EventLog.d.ts +180 -12
  407. package/dist/eventlog/EventLog.d.ts.map +1 -1
  408. package/dist/eventlog/EventLog.js +394 -146
  409. package/dist/eventlog/EventLog.js.map +1 -1
  410. package/dist/eventlog/EventLogEncryption.d.ts +36 -30
  411. package/dist/eventlog/EventLogEncryption.d.ts.map +1 -1
  412. package/dist/eventlog/EventLogEncryption.js +97 -38
  413. package/dist/eventlog/EventLogEncryption.js.map +1 -1
  414. package/dist/eventlog/EventLogMessage.d.ts +74 -34
  415. package/dist/eventlog/EventLogMessage.d.ts.map +1 -1
  416. package/dist/eventlog/EventLogMessage.js +45 -11
  417. package/dist/eventlog/EventLogMessage.js.map +1 -1
  418. package/dist/eventlog/EventLogRemote.d.ts +45 -8
  419. package/dist/eventlog/EventLogRemote.d.ts.map +1 -1
  420. package/dist/eventlog/EventLogRemote.js +51 -14
  421. package/dist/eventlog/EventLogRemote.js.map +1 -1
  422. package/dist/eventlog/EventLogServer.d.ts +46 -3
  423. package/dist/eventlog/EventLogServer.d.ts.map +1 -1
  424. package/dist/eventlog/EventLogServer.js +119 -19
  425. package/dist/eventlog/EventLogServer.js.map +1 -1
  426. package/dist/eventlog/EventLogServerEncrypted.d.ts +23 -33
  427. package/dist/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  428. package/dist/eventlog/EventLogServerEncrypted.js +97 -70
  429. package/dist/eventlog/EventLogServerEncrypted.js.map +1 -1
  430. package/dist/eventlog/EventLogServerUnencrypted.d.ts +39 -5
  431. package/dist/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  432. package/dist/eventlog/EventLogServerUnencrypted.js +151 -69
  433. package/dist/eventlog/EventLogServerUnencrypted.js.map +1 -1
  434. package/dist/eventlog/EventRow.d.ts +288 -0
  435. package/dist/eventlog/EventRow.d.ts.map +1 -0
  436. package/dist/eventlog/EventRow.js +435 -0
  437. package/dist/eventlog/EventRow.js.map +1 -0
  438. package/dist/eventlog/SqlEventJournal.d.ts +18 -18
  439. package/dist/eventlog/SqlEventJournal.d.ts.map +1 -1
  440. package/dist/eventlog/SqlEventJournal.js +387 -159
  441. package/dist/eventlog/SqlEventJournal.js.map +1 -1
  442. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts +10 -18
  443. package/dist/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
  444. package/dist/eventlog/SqlEventLogServerEncrypted.js +179 -69
  445. package/dist/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  446. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts +23 -3
  447. package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
  448. package/dist/eventlog/SqlEventLogServerUnencrypted.js +102 -51
  449. package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  450. package/dist/eventlog/index.d.ts +5 -0
  451. package/dist/eventlog/index.d.ts.map +1 -1
  452. package/dist/eventlog/index.js +5 -0
  453. package/dist/eventlog/index.js.map +1 -1
  454. package/dist/eventlog/internal/conflicts.d.ts +47 -0
  455. package/dist/eventlog/internal/conflicts.d.ts.map +1 -0
  456. package/dist/eventlog/internal/conflicts.js +92 -0
  457. package/dist/eventlog/internal/conflicts.js.map +1 -0
  458. package/dist/graphql/GraphQLClientError.d.ts +2 -2
  459. package/dist/graphql/GraphQLClientError.d.ts.map +1 -1
  460. package/dist/graphql/GraphQLClientError.js +4 -18
  461. package/dist/graphql/GraphQLClientError.js.map +1 -1
  462. package/dist/graphql/GraphQLProtocol.d.ts +12 -9
  463. package/dist/graphql/GraphQLProtocol.d.ts.map +1 -1
  464. package/dist/graphql/GraphQLProtocol.js +4 -3
  465. package/dist/graphql/GraphQLProtocol.js.map +1 -1
  466. package/dist/graphql/GraphQLResolver.d.ts +2 -0
  467. package/dist/graphql/GraphQLResolver.d.ts.map +1 -1
  468. package/dist/graphql/GraphQLResolver.js +74 -32
  469. package/dist/graphql/GraphQLResolver.js.map +1 -1
  470. package/dist/http/FetchHttpClient.d.ts +8 -1
  471. package/dist/http/FetchHttpClient.d.ts.map +1 -1
  472. package/dist/http/FetchHttpClient.js +51 -4
  473. package/dist/http/FetchHttpClient.js.map +1 -1
  474. package/dist/http/FindMyWay/internal/router.js +10 -0
  475. package/dist/http/FindMyWay/internal/router.js.map +1 -1
  476. package/dist/http/Headers.d.ts +227 -0
  477. package/dist/http/Headers.d.ts.map +1 -1
  478. package/dist/http/Headers.js +261 -0
  479. package/dist/http/Headers.js.map +1 -1
  480. package/dist/http/HttpClient.d.ts +93 -0
  481. package/dist/http/HttpClient.d.ts.map +1 -1
  482. package/dist/http/HttpClient.js +55 -16
  483. package/dist/http/HttpClient.js.map +1 -1
  484. package/dist/http/HttpClientRequest.d.ts +127 -3
  485. package/dist/http/HttpClientRequest.d.ts.map +1 -1
  486. package/dist/http/HttpClientRequest.js +44 -2
  487. package/dist/http/HttpClientRequest.js.map +1 -1
  488. package/dist/http/HttpClientResponse.d.ts +53 -0
  489. package/dist/http/HttpClientResponse.d.ts.map +1 -1
  490. package/dist/http/HttpClientResponse.js +47 -0
  491. package/dist/http/HttpClientResponse.js.map +1 -1
  492. package/dist/http/HttpEffect.d.ts +6 -2
  493. package/dist/http/HttpEffect.d.ts.map +1 -1
  494. package/dist/http/HttpEffect.js +21 -17
  495. package/dist/http/HttpEffect.js.map +1 -1
  496. package/dist/http/HttpIncomingMessage.d.ts +2 -1
  497. package/dist/http/HttpIncomingMessage.d.ts.map +1 -1
  498. package/dist/http/HttpIncomingMessage.js +3 -23
  499. package/dist/http/HttpIncomingMessage.js.map +1 -1
  500. package/dist/http/HttpMiddleware.d.ts +119 -2
  501. package/dist/http/HttpMiddleware.d.ts.map +1 -1
  502. package/dist/http/HttpMiddleware.js +159 -13
  503. package/dist/http/HttpMiddleware.js.map +1 -1
  504. package/dist/http/HttpRouter.d.ts.map +1 -1
  505. package/dist/http/HttpRouter.js +7 -2
  506. package/dist/http/HttpRouter.js.map +1 -1
  507. package/dist/http/HttpServerError.d.ts +5 -2
  508. package/dist/http/HttpServerError.d.ts.map +1 -1
  509. package/dist/http/HttpServerError.js +5 -3
  510. package/dist/http/HttpServerError.js.map +1 -1
  511. package/dist/http/HttpServerRequest.d.ts +25 -5
  512. package/dist/http/HttpServerRequest.d.ts.map +1 -1
  513. package/dist/http/HttpServerRequest.js +36 -10
  514. package/dist/http/HttpServerRequest.js.map +1 -1
  515. package/dist/http/HttpServerResponse.d.ts +17 -8
  516. package/dist/http/HttpServerResponse.d.ts.map +1 -1
  517. package/dist/http/HttpServerResponse.js +37 -21
  518. package/dist/http/HttpServerResponse.js.map +1 -1
  519. package/dist/http/HttpStaticServer.d.ts +0 -12
  520. package/dist/http/HttpStaticServer.d.ts.map +1 -1
  521. package/dist/http/HttpStaticServer.js +21 -7
  522. package/dist/http/HttpStaticServer.js.map +1 -1
  523. package/dist/http/MultipartParser/internal/contentType.d.ts +15 -1
  524. package/dist/http/MultipartParser/internal/contentType.d.ts.map +1 -1
  525. package/dist/http/MultipartParser/internal/contentType.js +87 -5
  526. package/dist/http/MultipartParser/internal/contentType.js.map +1 -1
  527. package/dist/http/MultipartParser/internal/headers.d.ts.map +1 -1
  528. package/dist/http/MultipartParser/internal/headers.js +4 -12
  529. package/dist/http/MultipartParser/internal/headers.js.map +1 -1
  530. package/dist/http/MultipartParser/internal/multipart.d.ts.map +1 -1
  531. package/dist/http/MultipartParser/internal/multipart.js +6 -27
  532. package/dist/http/MultipartParser/internal/multipart.js.map +1 -1
  533. package/dist/http/Url.d.ts.map +1 -1
  534. package/dist/http/Url.js +6 -1
  535. package/dist/http/Url.js.map +1 -1
  536. package/dist/http/internal/decompression.js +17 -11
  537. package/dist/http/internal/decompression.js.map +1 -1
  538. package/dist/http/internal/lazyStream.d.ts +2 -0
  539. package/dist/http/internal/lazyStream.d.ts.map +1 -0
  540. package/dist/http/internal/lazyStream.js +18 -0
  541. package/dist/http/internal/lazyStream.js.map +1 -0
  542. package/dist/http/internal/requestState.d.ts +2 -0
  543. package/dist/http/internal/requestState.d.ts.map +1 -0
  544. package/dist/http/internal/requestState.js +28 -0
  545. package/dist/http/internal/requestState.js.map +1 -0
  546. package/dist/http/internal/webResponse.d.ts +2 -0
  547. package/dist/http/internal/webResponse.d.ts.map +1 -0
  548. package/dist/http/internal/webResponse.js +12 -0
  549. package/dist/http/internal/webResponse.js.map +1 -0
  550. package/dist/http-api/HttpApi.js +1 -1
  551. package/dist/http-api/HttpApi.js.map +1 -1
  552. package/dist/http-api/HttpApiBuilder.d.ts.map +1 -1
  553. package/dist/http-api/HttpApiBuilder.js +121 -18
  554. package/dist/http-api/HttpApiBuilder.js.map +1 -1
  555. package/dist/http-api/HttpApiClient.d.ts +29 -4
  556. package/dist/http-api/HttpApiClient.d.ts.map +1 -1
  557. package/dist/http-api/HttpApiClient.js +83 -23
  558. package/dist/http-api/HttpApiClient.js.map +1 -1
  559. package/dist/http-api/HttpApiEndpoint.d.ts +55 -29
  560. package/dist/http-api/HttpApiEndpoint.d.ts.map +1 -1
  561. package/dist/http-api/HttpApiEndpoint.js +49 -5
  562. package/dist/http-api/HttpApiEndpoint.js.map +1 -1
  563. package/dist/http-api/HttpApiError.d.ts +58 -0
  564. package/dist/http-api/HttpApiError.d.ts.map +1 -1
  565. package/dist/http-api/HttpApiError.js +38 -12
  566. package/dist/http-api/HttpApiError.js.map +1 -1
  567. package/dist/http-api/HttpApiScalar.d.ts +2 -1
  568. package/dist/http-api/HttpApiScalar.d.ts.map +1 -1
  569. package/dist/http-api/HttpApiScalar.js +6 -3
  570. package/dist/http-api/HttpApiScalar.js.map +1 -1
  571. package/dist/http-api/HttpApiSchema.d.ts +191 -9
  572. package/dist/http-api/HttpApiSchema.d.ts.map +1 -1
  573. package/dist/http-api/HttpApiSchema.js +137 -4
  574. package/dist/http-api/HttpApiSchema.js.map +1 -1
  575. package/dist/http-api/HttpApiSwagger.d.ts +5 -0
  576. package/dist/http-api/HttpApiSwagger.d.ts.map +1 -1
  577. package/dist/http-api/HttpApiSwagger.js +14 -4
  578. package/dist/http-api/HttpApiSwagger.js.map +1 -1
  579. package/dist/http-api/HttpApiTest.d.ts +13 -2
  580. package/dist/http-api/HttpApiTest.d.ts.map +1 -1
  581. package/dist/http-api/HttpApiTest.js +30 -9
  582. package/dist/http-api/HttpApiTest.js.map +1 -1
  583. package/dist/http-api/OpenApi.d.ts +17 -3
  584. package/dist/http-api/OpenApi.d.ts.map +1 -1
  585. package/dist/http-api/OpenApi.js +57 -32
  586. package/dist/http-api/OpenApi.js.map +1 -1
  587. package/dist/http-api/internal/path.js +35 -10
  588. package/dist/http-api/internal/path.js.map +1 -1
  589. package/dist/index.d.ts +20 -0
  590. package/dist/index.d.ts.map +1 -1
  591. package/dist/index.js +20 -0
  592. package/dist/index.js.map +1 -1
  593. package/dist/internal/core.js +1 -1
  594. package/dist/internal/core.js.map +1 -1
  595. package/dist/internal/dateTime.js +19 -7
  596. package/dist/internal/dateTime.js.map +1 -1
  597. package/dist/internal/effect.js +85 -74
  598. package/dist/internal/effect.js.map +1 -1
  599. package/dist/internal/hashMap.js +2 -2
  600. package/dist/internal/hashMap.js.map +1 -1
  601. package/dist/internal/hydration.d.ts +2 -0
  602. package/dist/internal/hydration.d.ts.map +1 -0
  603. package/dist/internal/hydration.js +15 -0
  604. package/dist/internal/hydration.js.map +1 -0
  605. package/dist/internal/inflate.d.ts +2 -0
  606. package/dist/internal/inflate.d.ts.map +1 -0
  607. package/dist/internal/inflate.js +680 -0
  608. package/dist/internal/inflate.js.map +1 -0
  609. package/dist/internal/record.js +6 -0
  610. package/dist/internal/record.js.map +1 -1
  611. package/dist/internal/request.js +20 -7
  612. package/dist/internal/request.js.map +1 -1
  613. package/dist/internal/schedule.js +17 -22
  614. package/dist/internal/schedule.js.map +1 -1
  615. package/dist/internal/schema/fromJsonSchemaDocument.js +136 -126
  616. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  617. package/dist/internal/schema/interpreter.js +51 -36
  618. package/dist/internal/schema/interpreter.js.map +1 -1
  619. package/dist/internal/schema/standardSchema.js +34 -33
  620. package/dist/internal/schema/standardSchema.js.map +1 -1
  621. package/dist/internal/schema/toCodeDocument.js +7 -2
  622. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  623. package/dist/internal/schema/toCodec.js +86 -1
  624. package/dist/internal/schema/toCodec.js.map +1 -1
  625. package/dist/internal/schema/toFormatter.js +5 -5
  626. package/dist/internal/schema/toFormatter.js.map +1 -1
  627. package/dist/internal/schema/toJsonSchemaDocument.js +60 -38
  628. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
  629. package/dist/internal/trie.js +1 -3
  630. package/dist/internal/trie.js.map +1 -1
  631. package/dist/internal/uuid.js +7 -3
  632. package/dist/internal/uuid.js.map +1 -1
  633. package/dist/internal/version.js +1 -1
  634. package/dist/net/NetAddress.d.ts.map +1 -1
  635. package/dist/net/NetAddress.js +2 -8
  636. package/dist/net/NetAddress.js.map +1 -1
  637. package/dist/observability/OtlpExporter.d.ts.map +1 -1
  638. package/dist/observability/OtlpExporter.js +5 -12
  639. package/dist/observability/OtlpExporter.js.map +1 -1
  640. package/dist/observability/OtlpMetrics.d.ts.map +1 -1
  641. package/dist/observability/OtlpMetrics.js +5 -3
  642. package/dist/observability/OtlpMetrics.js.map +1 -1
  643. package/dist/observability/OtlpResource.d.ts +3 -1
  644. package/dist/observability/OtlpResource.d.ts.map +1 -1
  645. package/dist/observability/OtlpResource.js +11 -4
  646. package/dist/observability/OtlpResource.js.map +1 -1
  647. package/dist/observability/OtlpSerialization.d.ts +5 -0
  648. package/dist/observability/OtlpSerialization.d.ts.map +1 -1
  649. package/dist/observability/OtlpSerialization.js +14 -3
  650. package/dist/observability/OtlpSerialization.js.map +1 -1
  651. package/dist/observability/internal/protobuf.d.ts +0 -9
  652. package/dist/observability/internal/protobuf.d.ts.map +1 -1
  653. package/dist/observability/internal/protobuf.js +2 -10
  654. package/dist/observability/internal/protobuf.js.map +1 -1
  655. package/dist/persistence/PersistedCache.d.ts.map +1 -1
  656. package/dist/persistence/PersistedCache.js +1 -1
  657. package/dist/persistence/PersistedCache.js.map +1 -1
  658. package/dist/persistence/PersistedQueue.d.ts +6 -2
  659. package/dist/persistence/PersistedQueue.d.ts.map +1 -1
  660. package/dist/persistence/PersistedQueue.js +162 -84
  661. package/dist/persistence/PersistedQueue.js.map +1 -1
  662. package/dist/persistence/Persistence.d.ts +28 -0
  663. package/dist/persistence/Persistence.d.ts.map +1 -1
  664. package/dist/persistence/Persistence.js +36 -8
  665. package/dist/persistence/Persistence.js.map +1 -1
  666. package/dist/persistence/RateLimiter.d.ts.map +1 -1
  667. package/dist/persistence/RateLimiter.js +8 -12
  668. package/dist/persistence/RateLimiter.js.map +1 -1
  669. package/dist/persistence/UserDirectories.d.ts +129 -0
  670. package/dist/persistence/UserDirectories.d.ts.map +1 -0
  671. package/dist/persistence/UserDirectories.js +178 -0
  672. package/dist/persistence/UserDirectories.js.map +1 -0
  673. package/dist/persistence/index.d.ts +5 -0
  674. package/dist/persistence/index.d.ts.map +1 -1
  675. package/dist/persistence/index.js +5 -0
  676. package/dist/persistence/index.js.map +1 -1
  677. package/dist/process/ChildProcess.d.ts +2 -1
  678. package/dist/process/ChildProcess.d.ts.map +1 -1
  679. package/dist/process/ChildProcess.js.map +1 -1
  680. package/dist/reactivity/AsyncResult.d.ts.map +1 -1
  681. package/dist/reactivity/AsyncResult.js +1 -1
  682. package/dist/reactivity/AsyncResult.js.map +1 -1
  683. package/dist/reactivity/Atom.d.ts +69 -30
  684. package/dist/reactivity/Atom.d.ts.map +1 -1
  685. package/dist/reactivity/Atom.js +40 -15
  686. package/dist/reactivity/Atom.js.map +1 -1
  687. package/dist/reactivity/AtomHttpApi.d.ts +5 -5
  688. package/dist/reactivity/AtomHttpApi.d.ts.map +1 -1
  689. package/dist/reactivity/AtomHttpApi.js +1 -1
  690. package/dist/reactivity/AtomHttpApi.js.map +1 -1
  691. package/dist/reactivity/AtomRegistry.d.ts +2 -2
  692. package/dist/reactivity/AtomRegistry.d.ts.map +1 -1
  693. package/dist/reactivity/AtomRegistry.js +44 -9
  694. package/dist/reactivity/AtomRegistry.js.map +1 -1
  695. package/dist/reactivity/AtomRpc.d.ts +3 -3
  696. package/dist/reactivity/AtomRpc.d.ts.map +1 -1
  697. package/dist/reactivity/AtomRpc.js +1 -1
  698. package/dist/reactivity/AtomRpc.js.map +1 -1
  699. package/dist/reactivity/Hydration.d.ts.map +1 -1
  700. package/dist/reactivity/Hydration.js +46 -12
  701. package/dist/reactivity/Hydration.js.map +1 -1
  702. package/dist/reactivity/Reactivity.d.ts +71 -7
  703. package/dist/reactivity/Reactivity.d.ts.map +1 -1
  704. package/dist/reactivity/Reactivity.js +21 -12
  705. package/dist/reactivity/Reactivity.js.map +1 -1
  706. package/dist/rpc/Rpc.d.ts +18 -0
  707. package/dist/rpc/Rpc.d.ts.map +1 -1
  708. package/dist/rpc/Rpc.js +20 -0
  709. package/dist/rpc/Rpc.js.map +1 -1
  710. package/dist/rpc/RpcClient.d.ts +26 -2
  711. package/dist/rpc/RpcClient.d.ts.map +1 -1
  712. package/dist/rpc/RpcClient.js +196 -60
  713. package/dist/rpc/RpcClient.js.map +1 -1
  714. package/dist/rpc/RpcSerialization.d.ts +15 -0
  715. package/dist/rpc/RpcSerialization.d.ts.map +1 -1
  716. package/dist/rpc/RpcSerialization.js +21 -5
  717. package/dist/rpc/RpcSerialization.js.map +1 -1
  718. package/dist/rpc/RpcServer.d.ts.map +1 -1
  719. package/dist/rpc/RpcServer.js +9 -18
  720. package/dist/rpc/RpcServer.js.map +1 -1
  721. package/dist/schema/Model.d.ts +1 -1
  722. package/dist/schema/VariantSchema.d.ts +22 -3
  723. package/dist/schema/VariantSchema.d.ts.map +1 -1
  724. package/dist/schema/VariantSchema.js +32 -18
  725. package/dist/schema/VariantSchema.js.map +1 -1
  726. package/dist/socket/Socket.d.ts +23 -1
  727. package/dist/socket/Socket.d.ts.map +1 -1
  728. package/dist/socket/Socket.js +36 -3
  729. package/dist/socket/Socket.js.map +1 -1
  730. package/dist/sql/Migrator.d.ts.map +1 -1
  731. package/dist/sql/Migrator.js +15 -3
  732. package/dist/sql/Migrator.js.map +1 -1
  733. package/dist/sql/SqlClient.d.ts +143 -5
  734. package/dist/sql/SqlClient.d.ts.map +1 -1
  735. package/dist/sql/SqlClient.js +148 -27
  736. package/dist/sql/SqlClient.js.map +1 -1
  737. package/dist/sql/SqlResolver.d.ts +9 -0
  738. package/dist/sql/SqlResolver.d.ts.map +1 -1
  739. package/dist/sql/SqlResolver.js +9 -0
  740. package/dist/sql/SqlResolver.js.map +1 -1
  741. package/dist/sql/Statement.d.ts +3 -1
  742. package/dist/sql/Statement.d.ts.map +1 -1
  743. package/dist/sql/Statement.js +24 -5
  744. package/dist/sql/Statement.js.map +1 -1
  745. package/dist/testing/TestClock.d.ts.map +1 -1
  746. package/dist/testing/TestClock.js +4 -2
  747. package/dist/testing/TestClock.js.map +1 -1
  748. package/dist/testing/TestSchema.d.ts +7 -1
  749. package/dist/testing/TestSchema.d.ts.map +1 -1
  750. package/dist/testing/TestSchema.js +9 -3
  751. package/dist/testing/TestSchema.js.map +1 -1
  752. package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
  753. package/dist/workflow/WorkflowEngine.js +18 -4
  754. package/dist/workflow/WorkflowEngine.js.map +1 -1
  755. package/package.json +13 -3
  756. package/src/Array.ts +128 -55
  757. package/src/Bytes.ts +111 -0
  758. package/src/Channel.ts +263 -436
  759. package/src/ChannelSchema.ts +1 -49
  760. package/src/Chunk.ts +55 -61
  761. package/src/Config.ts +12 -86
  762. package/src/ConfigProvider.ts +2 -1
  763. package/src/Cron.ts +6 -3
  764. package/src/Duration.ts +66 -16
  765. package/src/Effect.ts +502 -167
  766. package/src/Equivalence.ts +7 -4
  767. package/src/Exit.ts +24 -9
  768. package/src/FiberHandle.ts +10 -9
  769. package/src/FiberMap.ts +13 -66
  770. package/src/FileSystem.ts +10 -0
  771. package/src/Graph.ts +171 -1263
  772. package/src/HashSet.ts +0 -60
  773. package/src/Iterable.ts +15 -14
  774. package/src/JsonSchema.ts +28 -3
  775. package/src/Layer.ts +2 -2
  776. package/src/ManagedRuntime.ts +72 -6
  777. package/src/Metric.ts +249 -507
  778. package/src/MutableHashMap.ts +4 -473
  779. package/src/Number.ts +2 -2
  780. package/src/Optic.ts +17 -332
  781. package/src/Path.ts +9 -1
  782. package/src/PubSub.ts +12 -7
  783. package/src/Queue.ts +5 -37
  784. package/src/Random.ts +1 -1
  785. package/src/RcMap.ts +14 -8
  786. package/src/Record.ts +51 -0
  787. package/src/Ref.ts +7 -104
  788. package/src/References.ts +5 -4
  789. package/src/RequestResolver.ts +46 -87
  790. package/src/Resource.ts +1 -1
  791. package/src/Runtime.ts +19 -18
  792. package/src/Schedule.ts +2 -94
  793. package/src/Schema.ts +591 -356
  794. package/src/SchemaAST.ts +20 -9
  795. package/src/SchemaGetter.ts +22 -5
  796. package/src/SchemaIssue.ts +44 -53
  797. package/src/SchemaRepresentation.ts +64 -1
  798. package/src/SchemaTransformation.ts +1 -1
  799. package/src/Scope.ts +12 -2
  800. package/src/ScopedCache.ts +17 -142
  801. package/src/SemVer.ts +1528 -0
  802. package/src/SemVerRange.ts +883 -0
  803. package/src/Sink.ts +6 -2
  804. package/src/Stream.ts +334 -1011
  805. package/src/String.ts +8 -8
  806. package/src/TextDiff.ts +766 -0
  807. package/src/TxHashMap.ts +1 -103
  808. package/src/TxHashSet.ts +48 -753
  809. package/src/ai/AiError.ts +66 -4
  810. package/src/ai/Chat.ts +10 -5
  811. package/src/ai/Decision.ts +49 -1
  812. package/src/ai/DecisionModel.ts +264 -108
  813. package/src/ai/EmbeddingModel.ts +25 -13
  814. package/src/ai/McpClient.ts +1211 -0
  815. package/src/ai/McpClientError.ts +329 -0
  816. package/src/ai/McpProtocol.ts +2 -2
  817. package/src/ai/McpSchema.ts +153 -35
  818. package/src/ai/McpServer.ts +217 -220
  819. package/src/ai/Prompt.ts +49 -35
  820. package/src/ai/Response.ts +195 -65
  821. package/src/ai/Tool.ts +12 -4
  822. package/src/ai/Toolkit.ts +78 -10
  823. package/src/ai/index.ts +12 -0
  824. package/src/ai/internal/mcpCore.ts +13 -14
  825. package/src/ai/internal/mcpProtocol/v2024_11_05.ts +1 -1
  826. package/src/ai/internal/mcpProtocol/v2025_03_26.ts +1 -1
  827. package/src/ai/internal/mcpProtocol/v2025_06_18.ts +3 -3
  828. package/src/ai/internal/mcpProtocol/v2025_11_25.ts +3 -3
  829. package/src/ai/internal/mcpProtocol/v2026_07_28.ts +12 -14
  830. package/src/ai/internal/mcpProtocol.ts +22 -2
  831. package/src/ai/internal/mcpRuntime.ts +3 -4
  832. package/src/ai/internal/mcpSchema/v2024_11_05.ts +20 -13
  833. package/src/ai/internal/mcpSchema/v2025_03_26.ts +4 -2
  834. package/src/ai/internal/mcpSchema/v2025_06_18.ts +7 -7
  835. package/src/ai/internal/mcpSchema/v2025_11_25.ts +8 -8
  836. package/src/ai/internal/mcpSchema/v2026_07_28.ts +44 -42
  837. package/src/cli/CliError.ts +49 -4
  838. package/src/cli/Command.ts +316 -9
  839. package/src/cli/Completions.ts +5 -0
  840. package/src/cli/Flag.ts +117 -0
  841. package/src/cli/GlobalFlag.ts +3 -3
  842. package/src/cli/Param.ts +122 -0
  843. package/src/cli/TerminalCapabilities.ts +156 -0
  844. package/src/cli/index.ts +6 -0
  845. package/src/cli/internal/command.ts +8 -3
  846. package/src/cli/internal/completions/bash.ts +4 -3
  847. package/src/cli/internal/completions/descriptor.ts +11 -1
  848. package/src/cli/internal/completions/fish.ts +10 -8
  849. package/src/cli/internal/completions/powershell.ts +23 -14
  850. package/src/cli/internal/completions/zsh.ts +8 -5
  851. package/src/cli/internal/formatter.ts +18 -0
  852. package/src/cli/internal/lexer.ts +12 -5
  853. package/src/cli/internal/parser.ts +31 -11
  854. package/src/cluster/ClusterCron.ts +94 -35
  855. package/src/cluster/ClusterMetrics.ts +149 -7
  856. package/src/cluster/ClusterWorkflowEngine.ts +84 -41
  857. package/src/cluster/Entity.ts +4 -0
  858. package/src/cluster/MessageStorage.ts +7 -0
  859. package/src/cluster/Runners.ts +76 -25
  860. package/src/cluster/Sharding.ts +118 -38
  861. package/src/cluster/ShardingConfig.ts +15 -0
  862. package/src/cluster/SqlMessageStorage.ts +58 -55
  863. package/src/cluster/SqlRunnerStorage.ts +10 -4
  864. package/src/cluster/internal/entityManager.ts +80 -10
  865. package/src/devtools/DevTools.ts +3 -2
  866. package/src/devtools/DevToolsClient.ts +27 -10
  867. package/src/encoding/Base64Url.ts +31 -0
  868. package/src/encoding/Ini.ts +3 -0
  869. package/src/encoding/JsonArray.ts +849 -0
  870. package/src/encoding/Ndjson.ts +211 -20
  871. package/src/encoding/SchemaBinary.ts +14 -48
  872. package/src/encoding/Tar.ts +1417 -0
  873. package/src/encoding/Toml.ts +3 -3
  874. package/src/encoding/Xml.ts +2037 -0
  875. package/src/encoding/Yaml.ts +108 -36
  876. package/src/encoding/Zip.ts +1558 -0
  877. package/src/encoding/index.ts +24 -0
  878. package/src/eventlog/EventJournal.ts +611 -227
  879. package/src/eventlog/EventLog.ts +496 -196
  880. package/src/eventlog/EventLogEncryption.ts +128 -43
  881. package/src/eventlog/EventLogMessage.ts +62 -11
  882. package/src/eventlog/EventLogRemote.ts +77 -21
  883. package/src/eventlog/EventLogServer.ts +162 -20
  884. package/src/eventlog/EventLogServerEncrypted.ts +121 -80
  885. package/src/eventlog/EventLogServerUnencrypted.ts +180 -77
  886. package/src/eventlog/EventRow.ts +706 -0
  887. package/src/eventlog/SqlEventJournal.ts +453 -173
  888. package/src/eventlog/SqlEventLogServerEncrypted.ts +212 -83
  889. package/src/eventlog/SqlEventLogServerUnencrypted.ts +141 -62
  890. package/src/eventlog/index.ts +6 -0
  891. package/src/eventlog/internal/conflicts.ts +123 -0
  892. package/src/graphql/GraphQLClientError.ts +5 -12
  893. package/src/graphql/GraphQLProtocol.ts +12 -9
  894. package/src/graphql/GraphQLResolver.ts +90 -239
  895. package/src/http/FetchHttpClient.ts +56 -6
  896. package/src/http/FindMyWay/internal/router.ts +11 -0
  897. package/src/http/Headers.ts +337 -154
  898. package/src/http/HttpClient.ts +126 -135
  899. package/src/http/HttpClientRequest.ts +142 -4
  900. package/src/http/HttpClientResponse.ts +71 -0
  901. package/src/http/HttpEffect.ts +25 -33
  902. package/src/http/HttpIncomingMessage.ts +3 -23
  903. package/src/http/HttpMiddleware.ts +180 -23
  904. package/src/http/HttpRouter.ts +8 -2
  905. package/src/http/HttpServerError.ts +6 -3
  906. package/src/http/HttpServerRequest.ts +71 -12
  907. package/src/http/HttpServerResponse.ts +49 -23
  908. package/src/http/HttpStaticServer.ts +25 -9
  909. package/src/http/MultipartParser/internal/contentType.ts +107 -6
  910. package/src/http/MultipartParser/internal/headers.ts +4 -16
  911. package/src/http/MultipartParser/internal/multipart.ts +10 -32
  912. package/src/http/Url.ts +6 -1
  913. package/src/http/internal/decompression.ts +26 -17
  914. package/src/http/internal/lazyStream.ts +25 -0
  915. package/src/http/internal/requestState.ts +33 -0
  916. package/src/http/internal/webResponse.ts +20 -0
  917. package/src/http-api/HttpApi.ts +1 -1
  918. package/src/http-api/HttpApiBuilder.ts +151 -23
  919. package/src/http-api/HttpApiClient.ts +158 -30
  920. package/src/http-api/HttpApiEndpoint.ts +144 -33
  921. package/src/http-api/HttpApiError.ts +55 -0
  922. package/src/http-api/HttpApiScalar.ts +4 -3
  923. package/src/http-api/HttpApiSchema.ts +275 -13
  924. package/src/http-api/HttpApiSwagger.ts +11 -4
  925. package/src/http-api/HttpApiTest.ts +33 -9
  926. package/src/http-api/OpenApi.ts +84 -42
  927. package/src/http-api/internal/path.ts +40 -12
  928. package/src/index.ts +24 -0
  929. package/src/internal/core.ts +1 -1
  930. package/src/internal/dateTime.ts +20 -7
  931. package/src/internal/effect.ts +120 -84
  932. package/src/internal/hashMap.ts +2 -2
  933. package/src/internal/hydration.ts +15 -0
  934. package/src/internal/inflate.ts +710 -0
  935. package/src/internal/record.ts +6 -0
  936. package/src/internal/request.ts +21 -6
  937. package/src/internal/schedule.ts +20 -39
  938. package/src/internal/schema/fromJsonSchemaDocument.ts +262 -193
  939. package/src/internal/schema/interpreter.ts +58 -45
  940. package/src/internal/schema/standardSchema.ts +32 -30
  941. package/src/internal/schema/toCodeDocument.ts +8 -3
  942. package/src/internal/schema/toCodec.ts +116 -1
  943. package/src/internal/schema/toFormatter.ts +6 -6
  944. package/src/internal/schema/toJsonSchemaDocument.ts +69 -39
  945. package/src/internal/trie.ts +1 -3
  946. package/src/internal/uuid.ts +15 -10
  947. package/src/internal/version.ts +1 -1
  948. package/src/net/NetAddress.ts +2 -9
  949. package/src/observability/OtlpExporter.ts +5 -12
  950. package/src/observability/OtlpMetrics.ts +5 -3
  951. package/src/observability/OtlpResource.ts +16 -6
  952. package/src/observability/OtlpSerialization.ts +17 -3
  953. package/src/observability/internal/protobuf.ts +2 -10
  954. package/src/persistence/PersistedCache.ts +3 -1
  955. package/src/persistence/PersistedQueue.ts +223 -153
  956. package/src/persistence/Persistence.ts +64 -30
  957. package/src/persistence/RateLimiter.ts +18 -21
  958. package/src/persistence/UserDirectories.ts +273 -0
  959. package/src/persistence/index.ts +6 -0
  960. package/src/process/ChildProcess.ts +2 -1
  961. package/src/reactivity/AsyncResult.ts +4 -38
  962. package/src/reactivity/Atom.ts +134 -166
  963. package/src/reactivity/AtomHttpApi.ts +10 -16
  964. package/src/reactivity/AtomRegistry.ts +50 -29
  965. package/src/reactivity/AtomRpc.ts +6 -22
  966. package/src/reactivity/Hydration.ts +53 -12
  967. package/src/reactivity/Reactivity.ts +97 -39
  968. package/src/rpc/Rpc.ts +21 -0
  969. package/src/rpc/RpcClient.ts +279 -103
  970. package/src/rpc/RpcSerialization.ts +21 -5
  971. package/src/rpc/RpcServer.ts +11 -20
  972. package/src/schema/VariantSchema.ts +86 -22
  973. package/src/socket/Socket.ts +45 -20
  974. package/src/sql/Migrator.ts +19 -9
  975. package/src/sql/SqlClient.ts +266 -29
  976. package/src/sql/SqlResolver.ts +9 -0
  977. package/src/sql/Statement.ts +35 -8
  978. package/src/testing/TestClock.ts +4 -1
  979. package/src/testing/TestSchema.ts +9 -3
  980. package/src/workflow/WorkflowEngine.ts +34 -10
  981. package/dist/http/internal/preResponseHandler.d.ts +0 -2
  982. package/dist/http/internal/preResponseHandler.d.ts.map +0 -1
  983. package/dist/http/internal/preResponseHandler.js +0 -14
  984. package/dist/http/internal/preResponseHandler.js.map +0 -1
  985. package/src/http/internal/preResponseHandler.ts +0 -19
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(
@@ -5632,8 +5635,8 @@ export interface compose<To extends Constraint, From extends Constraint> extends
5632
5635
  * **Gotchas**
5633
5636
  *
5634
5637
  * 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.
5638
+ * and is used on the decoding path, while `encode` maps `To["Encoded"]` to
5639
+ * `From["Type"]` and is used on the encoding path.
5637
5640
  *
5638
5641
  * **Example** (Transforming strings to numbers with a schema transformation)
5639
5642
  *
@@ -6316,12 +6319,6 @@ type Flatten<Schemas> = Schemas extends readonly [infer Head, ...infer Tail]
6316
6319
  ? Head extends Union<infer Inner> ? [...Flatten<Inner>, ...Flatten<Tail>]
6317
6320
  : [Head, ...Flatten<Tail>]
6318
6321
  : []
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
6322
  type MatchCasesResult<Cases> = {
6326
6323
  [K in keyof Cases]-?: NonNullable<Cases[K]> extends (...args: Array<any>) => infer R ? R : never
6327
6324
  }[keyof Cases]
@@ -6406,10 +6403,9 @@ export type toTaggedUnion<
6406
6403
  *
6407
6404
  * **Gotchas**
6408
6405
  *
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.
6406
+ * Throws when multiple members use the same discriminant property key,
6407
+ * including members of nested unions. Numeric and string values such as `1`
6408
+ * and `"1"` count as duplicates.
6413
6409
  *
6414
6410
  * **Example** (Adding tagged-union utilities to an existing union)
6415
6411
  *
@@ -6436,7 +6432,7 @@ export type toTaggedUnion<
6436
6432
  */
6437
6433
  export function toTaggedUnion<const Tag extends PropertyKey>(tag: Tag) {
6438
6434
  return <const Members extends ReadonlyArray<Constraint & { readonly Type: { readonly [K in Tag]: PropertyKey } }>>(
6439
- self: Union<Members> & NoInfer<EnsureUniqueDiscriminants<TaggedUnionUtils<Tag, Members>["discriminants"]>>
6435
+ self: Union<Members>
6440
6436
  ): toTaggedUnion<Tag, Members> => {
6441
6437
  const cases: Record<PropertyKey, unknown> = {}
6442
6438
  const discriminants: Array<PropertyKey> = []
@@ -7137,16 +7133,21 @@ export function isULID(annotations?: Annotations.Filter) {
7137
7133
  * @since 4.0.0
7138
7134
  */
7139
7135
  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,
7136
+ const pattern = "^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$"
7137
+ // `pattern` overflows the V8 stack on large inputs
7138
+ const regExp = /^[0-9a-zA-Z+/]*={0,2}$/
7139
+ return makeFilter(
7140
+ (s: string) => s.length % 4 === 0 && regExp.test(s),
7143
7141
  {
7144
7142
  expected: "a base64 encoded string",
7145
7143
  representation: {
7146
7144
  id: "effect/schema/isBase64",
7147
7145
  payload: null
7148
7146
  },
7149
- toJsonSchema: () => ({ pattern: regExp.source }),
7147
+ toJsonSchema: () => ({ pattern }),
7148
+ arbitraryConstraint: {
7149
+ patterns: [{ source: pattern, flags: "" }]
7150
+ },
7150
7151
  toCode: () => ({ runtime: "Schema.isBase64()" }),
7151
7152
  ...annotations
7152
7153
  }
@@ -7173,16 +7174,21 @@ export function isBase64(annotations?: Annotations.Filter) {
7173
7174
  * @since 4.0.0
7174
7175
  */
7175
7176
  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,
7177
+ const pattern = "^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$"
7178
+ // `pattern` overflows the V8 stack on large inputs
7179
+ const regExp = /^[0-9a-zA-Z-_]*={0,2}$/
7180
+ return makeFilter(
7181
+ (s: string) => regExp.test(s) && (s.endsWith("=") ? s.length % 4 === 0 : s.length % 4 !== 1),
7179
7182
  {
7180
7183
  expected: "a base64url encoded string",
7181
7184
  representation: {
7182
7185
  id: "effect/schema/isBase64Url",
7183
7186
  payload: null
7184
7187
  },
7185
- toJsonSchema: () => ({ pattern: regExp.source }),
7188
+ toJsonSchema: () => ({ pattern }),
7189
+ arbitraryConstraint: {
7190
+ patterns: [{ source: pattern, flags: "" }]
7191
+ },
7186
7192
  toCode: () => ({ runtime: "Schema.isBase64Url()" }),
7187
7193
  ...annotations
7188
7194
  }
@@ -9939,7 +9945,9 @@ export interface FormData extends instanceOf<globalThis.FormData> {
9939
9945
  * @category schemas
9940
9946
  * @since 4.0.0
9941
9947
  */
9942
- export const FormData: FormData = instanceOf(globalThis.FormData, {
9948
+ // Read the global inside the guard: resolving globalThis.FormData at module
9949
+ // scope loads undici on Node.
9950
+ export const FormData: FormData = declare((u): u is globalThis.FormData => u instanceof globalThis.FormData, {
9943
9951
  representation: {
9944
9952
  id: "effect/schema/FormData",
9945
9953
  payload: null
@@ -11277,7 +11285,7 @@ export function Cause<E extends Constraint, D extends Constraint>(error: E, defe
11277
11285
  }
11278
11286
  return Effect.mapBothEager(SchemaParser.decodeUnknownEffect(failures)(input.reasons, options), {
11279
11287
  onSuccess: Cause_.fromReasons,
11280
- onFailure: (issue) => SchemaIssue.makeCompositeAtKey(ast, "failures", issue, input, options)
11288
+ onFailure: (issue) => SchemaIssue.makeCompositeAtKey(ast, "reasons", issue, input, options)
11281
11289
  })
11282
11290
  }
11283
11291
  },
@@ -11680,6 +11688,65 @@ export const DateTimeUtcFromString: DateTimeUtcFromString = String.annotate({
11680
11688
  dateTimeUtcFromString
11681
11689
  )
11682
11690
  )
11691
+ const dateTimeUtcFromHttpDate: SchemaTransformation.Transformation<DateTime.Utc, string> = SchemaTransformation
11692
+ .transformEffect<DateTime.Utc, string>({
11693
+ decode: (s, options) =>
11694
+ Result_.match(Headers_.parseHttpDate(s), {
11695
+ onFailure: () =>
11696
+ Effect.fail(
11697
+ new SchemaIssue.InvalidValue(
11698
+ { expected: "an HTTP date (RFC 9110 §5.6.7)" },
11699
+ s,
11700
+ options
11701
+ )
11702
+ ),
11703
+ onSuccess: Effect.succeed
11704
+ }),
11705
+ encode: (utc) => Effect.succeed(Headers_.formatHttpDate(utc))
11706
+ })
11707
+ /**
11708
+ * Type-level representation of {@link DateTimeUtcFromHttpDate}.
11709
+ *
11710
+ * @stability unstable
11711
+ * @category models
11712
+ * @since 4.0.0
11713
+ */
11714
+ export interface DateTimeUtcFromHttpDate extends decodeTo<DateTimeUtc, String> {
11715
+ readonly "Rebuild": DateTimeUtcFromHttpDate
11716
+ }
11717
+ /**
11718
+ * Schema for HTTP date header values, such as `Date`, `Last-Modified` and
11719
+ * `Expires`, decoded as `DateTime.Utc`.
11720
+ *
11721
+ * **When to use**
11722
+ *
11723
+ * Use with HTTP API header schemas that carry dates. Decoding accepts the
11724
+ * three formats of RFC 9110 §5.6.7 and reads them as UTC; encoding emits the
11725
+ * preferred IMF-fixdate form (`Sun, 06 Nov 1994 08:49:37 GMT`).
11726
+ *
11727
+ * **Example** (Decoding an HTTP date)
11728
+ *
11729
+ * ```ts
11730
+ * import { DateTime, Schema } from "effect"
11731
+ *
11732
+ * const date = Schema.decodeSync(Schema.DateTimeUtcFromHttpDate)("Sun, 06 Nov 1994 08:49:37 GMT")
11733
+ * const millis = DateTime.toEpochMillis(date) // => 784111777000
11734
+ * ```
11735
+ *
11736
+ * @see {@link DateTimeUtcFromString} for ISO 8601 strings
11737
+ *
11738
+ * @stability unstable
11739
+ * @category schemas
11740
+ * @since 4.0.0
11741
+ */
11742
+ export const DateTimeUtcFromHttpDate: DateTimeUtcFromHttpDate = String.annotate({
11743
+ expected: "an HTTP date string"
11744
+ }).pipe(
11745
+ decodeTo(
11746
+ DateTimeUtc,
11747
+ dateTimeUtcFromHttpDate
11748
+ )
11749
+ )
11683
11750
  /**
11684
11751
  * Type-level representation of {@link DateTimeUtcFromMillis}.
11685
11752
  *
@@ -15190,6 +15257,110 @@ export const Headers: Headers = declare(
15190
15257
  }
15191
15258
  )
15192
15259
 
15260
+ /**
15261
+ * Type-level representation of {@link RetryAfter}.
15262
+ *
15263
+ * @stability unstable
15264
+ * @category models
15265
+ * @since 4.0.0
15266
+ */
15267
+ export interface RetryAfter extends
15268
+ Union<
15269
+ readonly [
15270
+ Struct<{ readonly _tag: tag<"Duration">; readonly duration: Duration }>,
15271
+ Struct<{ readonly _tag: tag<"DateTime">; readonly dateTime: DateTimeUtc }>
15272
+ ]
15273
+ >
15274
+ {
15275
+ readonly "Rebuild": RetryAfter
15276
+ }
15277
+
15278
+ /**
15279
+ * Schema for parsed `Retry-After` header values.
15280
+ *
15281
+ * **Details**
15282
+ *
15283
+ * Matches `Headers.RetryAfter`: either `{ _tag: "Duration", duration }` or
15284
+ * `{ _tag: "DateTime", dateTime }`. The duration must be finite and
15285
+ * non-negative. Use {@link RetryAfterFromString} for the header string form.
15286
+ *
15287
+ * @stability unstable
15288
+ * @category schemas
15289
+ * @since 4.0.0
15290
+ */
15291
+ export const RetryAfter: RetryAfter = Union([
15292
+ Struct({
15293
+ _tag: tag("Duration"),
15294
+ duration: Duration.check(
15295
+ makeFilter((d) => Duration_.isFinite(d) && !Duration_.isNegative(d), {
15296
+ expected: "a finite, non-negative duration"
15297
+ })
15298
+ )
15299
+ }),
15300
+ Struct({ _tag: tag("DateTime"), dateTime: DateTimeUtc })
15301
+ ])
15302
+
15303
+ const retryAfterFromString: SchemaTransformation.Transformation<Headers_.RetryAfter, string> = SchemaTransformation
15304
+ .transformEffect<Headers_.RetryAfter, string>({
15305
+ decode: (s, options) =>
15306
+ Result_.match(Headers_.parseRetryAfter(s), {
15307
+ onFailure: () =>
15308
+ Effect.fail(
15309
+ new SchemaIssue.InvalidValue(
15310
+ { expected: "whole non-negative seconds or an HTTP date (RFC 9110 §10.2.3)" },
15311
+ s,
15312
+ options
15313
+ )
15314
+ ),
15315
+ onSuccess: Effect.succeed
15316
+ }),
15317
+ encode: (self) => Effect.succeed(Headers_.formatRetryAfter(self))
15318
+ })
15319
+
15320
+ /**
15321
+ * Type-level representation of {@link RetryAfterFromString}.
15322
+ *
15323
+ * @stability unstable
15324
+ * @category models
15325
+ * @since 4.0.0
15326
+ */
15327
+ export interface RetryAfterFromString extends decodeTo<RetryAfter, String> {
15328
+ readonly "Rebuild": RetryAfterFromString
15329
+ }
15330
+
15331
+ /**
15332
+ * Schema for `Retry-After` header values, decoded with
15333
+ * `Headers.parseRetryAfter`.
15334
+ *
15335
+ * **When to use**
15336
+ *
15337
+ * Use with HTTP API header schemas that carry `Retry-After`. Decoding accepts
15338
+ * whole non-negative seconds or an HTTP date and rejects anything else;
15339
+ * encoding emits the delay as whole seconds, rounding a fractional second up,
15340
+ * or the date as an IMF-fixdate.
15341
+ *
15342
+ * **Example** (Decoding a Retry-After header)
15343
+ *
15344
+ * ```ts
15345
+ * import { Schema } from "effect"
15346
+ *
15347
+ * const value = Schema.decodeSync(Schema.RetryAfterFromString)("120")
15348
+ * // => { _tag: "Duration", duration: Duration.seconds(120) }
15349
+ * ```
15350
+ *
15351
+ * @stability unstable
15352
+ * @category schemas
15353
+ * @since 4.0.0
15354
+ */
15355
+ export const RetryAfterFromString: RetryAfterFromString = String.annotate({
15356
+ expected: "a Retry-After header value"
15357
+ }).pipe(
15358
+ decodeTo(
15359
+ RetryAfter,
15360
+ retryAfterFromString
15361
+ )
15362
+ )
15363
+
15193
15364
  /**
15194
15365
  * Type-level representation of {@link UrlParams}.
15195
15366
  *
@@ -15743,6 +15914,198 @@ export function Result<A extends Constraint, E extends Constraint>(
15743
15914
  return make(schema.ast, { success, failure })
15744
15915
  }
15745
15916
 
15917
+ // -----------------------------------------------------------------------------
15918
+ // SemVer schemas
15919
+ // -----------------------------------------------------------------------------
15920
+
15921
+ const semVerStringTransformation = <A>(
15922
+ parse: (input: string) => Result_.Result<A, SemVer_.SemVerError>,
15923
+ format: (value: A) => string
15924
+ ): SchemaTransformation.Transformation<A, string> =>
15925
+ SchemaTransformation.transformEffect({
15926
+ decode: (input, options) =>
15927
+ Effect.mapErrorEager(
15928
+ Effect.fromResult(parse(input)),
15929
+ (error) => new SchemaIssue.InvalidValue({ message: error.message }, input, options)
15930
+ ),
15931
+ encode: (value) => Effect.succeed(format(value))
15932
+ })
15933
+ // Alphanumeric identifiers contain at least one non-digit.
15934
+ const SemVerCoreArbitrary = Struct({
15935
+ major: Natural,
15936
+ minor: Natural,
15937
+ patch: Natural,
15938
+ prerelease: ArraySchema(Union([Natural, String.check(isPattern(/^[0-9]*[A-Za-z-][0-9A-Za-z-]*$/))]))
15939
+ })
15940
+ const semVerFromString = semVerStringTransformation(SemVer_.parse, SemVer_.format)
15941
+ const SemVerString = String.annotate({ expected: "a string that will be decoded as a SemVer" })
15942
+ /**
15943
+ * Type-level representation of {@link SemVer}.
15944
+ *
15945
+ * @stability unstable
15946
+ * @category models
15947
+ * @since 4.0.6
15948
+ */
15949
+ export interface SemVer extends declare<SemVer_.SemVer> {
15950
+ readonly "Rebuild": SemVer
15951
+ }
15952
+ /**
15953
+ * Schema for `SemVer` values.
15954
+ *
15955
+ * **Details**
15956
+ *
15957
+ * The JSON and StringTree codecs encode a version as its canonical string,
15958
+ * including build metadata.
15959
+ *
15960
+ * @see {@link SemVerFromString} for parsing version strings
15961
+ * @stability unstable
15962
+ * @category schemas
15963
+ * @since 4.0.6
15964
+ */
15965
+ export const SemVer: SemVer = declare(
15966
+ SemVer_.isSemVer,
15967
+ {
15968
+ representation: {
15969
+ id: "effect/schema/SemVer",
15970
+ payload: null
15971
+ },
15972
+ toCode: () => ({
15973
+ runtime: `Schema.SemVer`,
15974
+ Type: `SemVer.SemVer`,
15975
+ importDeclarations: [`import * as SemVer from "effect/SemVer"`]
15976
+ }),
15977
+ expected: "SemVer",
15978
+ toCodecArbitrary: () =>
15979
+ linkDecoding<SemVer_.SemVer>()(
15980
+ Struct({
15981
+ ...SemVerCoreArbitrary.fields,
15982
+ build: ArraySchema(String.check(isPattern(/^[0-9A-Za-z-]+$/)))
15983
+ }),
15984
+ SchemaGetter.transform(SemVer_.make)
15985
+ ),
15986
+ toCodecJson: () =>
15987
+ link<SemVer_.SemVer>()(
15988
+ SemVerString,
15989
+ semVerFromString
15990
+ ),
15991
+ toFormatter: () => SemVer_.format
15992
+ }
15993
+ )
15994
+ /**
15995
+ * Type-level representation of {@link SemVerFromString}.
15996
+ *
15997
+ * @stability unstable
15998
+ * @category models
15999
+ * @since 4.0.6
16000
+ */
16001
+ export interface SemVerFromString extends decodeTo<SemVer, String> {
16002
+ readonly "Rebuild": SemVerFromString
16003
+ }
16004
+ /**
16005
+ * Schema that parses a Semantic Versioning 2.0.0 string into a `SemVer`.
16006
+ *
16007
+ * **Details**
16008
+ *
16009
+ * Decodes with `SemVer.parse`, rejecting a `v` prefix, surrounding whitespace,
16010
+ * partial versions, and leading zeros. Encodes with `SemVer.format`, including
16011
+ * build metadata.
16012
+ *
16013
+ * @see {@link SemVer} for validating values that are already SemVer values
16014
+ * @stability unstable
16015
+ * @category schemas
16016
+ * @since 4.0.6
16017
+ */
16018
+ export const SemVerFromString: SemVerFromString = SemVerString.pipe(
16019
+ decodeTo(SemVer, semVerFromString)
16020
+ )
16021
+ const semVerRangeFromString = semVerStringTransformation(SemVerRange_.parse, SemVerRange_.format)
16022
+ const SemVerRangeString = String.annotate({ expected: "a string that will be decoded as a SemVer range" })
16023
+ /**
16024
+ * Type-level representation of {@link SemVerRange}.
16025
+ *
16026
+ * @stability unstable
16027
+ * @category models
16028
+ * @since 4.0.6
16029
+ */
16030
+ export interface SemVerRange extends declare<SemVerRange_.SemVerRange> {
16031
+ readonly "Rebuild": SemVerRange
16032
+ }
16033
+ /**
16034
+ * Schema for `SemVerRange` values.
16035
+ *
16036
+ * **Details**
16037
+ *
16038
+ * The JSON and StringTree codecs encode a range with `SemVerRange.format`.
16039
+ *
16040
+ * @see {@link SemVerRangeFromString} for parsing range strings
16041
+ * @stability unstable
16042
+ * @category schemas
16043
+ * @since 4.0.6
16044
+ */
16045
+ export const SemVerRange: SemVerRange = declare(
16046
+ SemVerRange_.isSemVerRange,
16047
+ {
16048
+ representation: {
16049
+ id: "effect/schema/SemVerRange",
16050
+ payload: null
16051
+ },
16052
+ toCode: () => ({
16053
+ runtime: `Schema.SemVerRange`,
16054
+ Type: `SemVerRange.SemVerRange`,
16055
+ importDeclarations: [`import * as SemVerRange from "effect/SemVerRange"`]
16056
+ }),
16057
+ expected: "SemVerRange",
16058
+ toCodecArbitrary: () =>
16059
+ linkDecoding<SemVerRange_.SemVerRange>()(
16060
+ ArraySchema(
16061
+ ArraySchema(Struct({
16062
+ operator: Literals(["", "=", "<", "<=", ">", ">=", "~", "^"]),
16063
+ version: SemVerCoreArbitrary
16064
+ })).check(isMinLength(1))
16065
+ ),
16066
+ SchemaGetter.transform((sets) =>
16067
+ SemVerRange_.parseUnsafe(
16068
+ sets.map((set) =>
16069
+ set.map(({ operator, version }) => `${operator}${SemVer_.format(SemVer_.make(version))}`).join(" ")
16070
+ ).join(" || ")
16071
+ )
16072
+ )
16073
+ ),
16074
+ toCodecJson: () =>
16075
+ link<SemVerRange_.SemVerRange>()(
16076
+ SemVerRangeString,
16077
+ semVerRangeFromString
16078
+ ),
16079
+ toFormatter: () => SemVerRange_.format
16080
+ }
16081
+ )
16082
+ /**
16083
+ * Type-level representation of {@link SemVerRangeFromString}.
16084
+ *
16085
+ * @stability unstable
16086
+ * @category models
16087
+ * @since 4.0.6
16088
+ */
16089
+ export interface SemVerRangeFromString extends decodeTo<SemVerRange, String> {
16090
+ readonly "Rebuild": SemVerRangeFromString
16091
+ }
16092
+ /**
16093
+ * Schema that parses an npm-style version range string into a `SemVerRange`.
16094
+ *
16095
+ * **Details**
16096
+ *
16097
+ * Decodes with `SemVerRange.parse` and encodes with `SemVerRange.format`,
16098
+ * preserving parsed operators and normalizing wildcard spellings.
16099
+ *
16100
+ * @see {@link SemVerRange} for validating values that are already ranges
16101
+ * @stability unstable
16102
+ * @category schemas
16103
+ * @since 4.0.6
16104
+ */
16105
+ export const SemVerRangeFromString: SemVerRangeFromString = SemVerRangeString.pipe(
16106
+ decodeTo(SemVerRange, semVerRangeFromString)
16107
+ )
16108
+
15746
16109
  /**
15747
16110
  * Type-level representation returned by {@link Class}.
15748
16111
  *
@@ -15958,16 +16321,19 @@ function makeClass<
15958
16321
  return out
15959
16322
  }
15960
16323
 
16324
+ /**
16325
+ * Constructs a class instance from fields that were already validated against
16326
+ * the class struct, without running the constructor's schema pass.
16327
+ *
16328
+ * @internal
16329
+ */
16330
+ export function makeClassTrusted<Self>(self: new(input: any, options?: MakeOptions) => Self, fields: object): Self {
16331
+ return new self(fields, { "~payload": { token: payloadToken, value: fields } })
16332
+ }
16333
+
15961
16334
  function getClassTransformation(self: new(...args: ReadonlyArray<any>) => any) {
15962
16335
  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
- ),
16336
+ SchemaGetter.transform((input) => makeClassTrusted(self, input)),
15971
16337
  SchemaGetter.passthrough()
15972
16338
  )
15973
16339
  }
@@ -16051,7 +16417,9 @@ function isStruct(schema: Struct.Fields | Struct<Struct.Fields>): schema is Stru
16051
16417
  *
16052
16418
  * **Gotchas**
16053
16419
  *
16054
- * Passing `disableChecks` in the options skips constructor validation.
16420
+ * Passing `disableChecks: true` skips filters and checks, not parsing of types
16421
+ * and structure. Wrong types and shapes are still rejected, and constructor
16422
+ * defaults still apply.
16055
16423
  *
16056
16424
  * **Example** (Defining a basic class)
16057
16425
  *
@@ -16122,7 +16490,9 @@ export const Class: {
16122
16490
  *
16123
16491
  * **Gotchas**
16124
16492
  *
16125
- * Passing `disableChecks` in the options skips constructor validation.
16493
+ * Passing `disableChecks: true` skips filters and checks, not parsing of types
16494
+ * and structure. Wrong types and shapes are still rejected, and constructor
16495
+ * defaults still apply.
16126
16496
  *
16127
16497
  * **Example** (Defining a basic class)
16128
16498
  *
@@ -16166,151 +16536,14 @@ export const Class: {
16166
16536
  * @since 3.10.0
16167
16537
  */
16168
16538
  <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
16539
  <const Fields extends Struct.Fields>(
16240
16540
  fields: Fields,
16241
16541
  annotations?: Annotations.Declaration<Self, readonly [Struct<Fields>]>
16242
16542
  ): [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>
16543
+ <S extends Struct<Struct.Fields>>(
16544
+ schema: S,
16545
+ annotations?: Annotations.Declaration<Self, readonly [S]>
16546
+ ): [Self] extends [never] ? MissingSelfGeneric<"Schema.Class"> : Class<Self, S, Brand>
16314
16547
  }
16315
16548
  } = <Self, Brand = {}>(identifier: string) =>
16316
16549
  (
@@ -16394,73 +16627,11 @@ export const TaggedClass: {
16394
16627
  * @since 3.10.0
16395
16628
  */
16396
16629
  <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
16630
  <Tag extends string, const Fields extends Struct.Fields>(
16429
16631
  tag: Tag,
16430
16632
  fields: Fields,
16431
16633
  annotations?: Annotations.Declaration<Self, readonly [TaggedStruct<Tag, Fields>]>
16432
16634
  ): [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
16635
  <Tag extends string, S extends Struct<Struct.Fields>>(
16465
16636
  tag: Tag,
16466
16637
  schema: S,
@@ -16542,64 +16713,15 @@ export const Error: {
16542
16713
  * @since 4.0.0
16543
16714
  */
16544
16715
  <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
16716
  <const Fields extends Struct.Fields>(
16572
16717
  fields: Fields,
16573
16718
  annotations?: Annotations.Declaration<Self, readonly [Struct<Fields>]>
16574
16719
  ): [Self] extends [never] ? MissingSelfGeneric<"Schema.Error">
16575
16720
  : 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>
16721
+ <S extends Struct<Struct.Fields>>(
16722
+ schema: S,
16723
+ annotations?: Annotations.Declaration<Self, readonly [S]>
16724
+ ): [Self] extends [never] ? MissingSelfGeneric<"Schema.Error"> : Class<Self, S, Cause_.YieldableError & Brand>
16603
16725
  }
16604
16726
  } = <Self, Brand = {}>(identifier: string) =>
16605
16727
  (
@@ -16682,72 +16804,12 @@ export const TaggedError: {
16682
16804
  * @since 3.10.0
16683
16805
  */
16684
16806
  <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
16807
  <Tag extends string, const Fields extends Struct.Fields>(
16716
16808
  tag: Tag,
16717
16809
  fields: Fields,
16718
16810
  annotations?: Annotations.Declaration<Self, readonly [TaggedStruct<Tag, Fields>]>
16719
16811
  ): [Self] extends [never] ? MissingSelfGeneric<"Schema.TaggedError">
16720
16812
  : 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
16813
  <Tag extends string, S extends Struct<Struct.Fields>>(
16752
16814
  tag: Tag,
16753
16815
  schema: S,
@@ -17317,6 +17379,179 @@ export const toCodecArrayFromSingle: {
17317
17379
  */
17318
17380
  <S extends Constraint>(schema: S): toCodecArrayFromSingle<S>
17319
17381
  } = InternalToCodec.toCodecArrayFromSingle
17382
+ /**
17383
+ * Type-level representation returned by {@link toCodecGoJson}.
17384
+ *
17385
+ * @stability unstable
17386
+ * @category converting
17387
+ * @since 4.0.6
17388
+ */
17389
+ export interface toCodecGoJson<S extends Constraint> extends
17390
+ BottomLazy<
17391
+ S["ast"],
17392
+ toCodecGoJson<S>,
17393
+ S["~type.parameters"],
17394
+ S["~type.mutability"],
17395
+ S["~type.optionality"],
17396
+ S["~type.constructor.default"],
17397
+ S["~encoded.mutability"],
17398
+ S["~encoded.optionality"]
17399
+ >
17400
+ {
17401
+ readonly "Type": S["Type"]
17402
+ readonly "Encoded": Json
17403
+ readonly "DecodingServices": S["DecodingServices"]
17404
+ readonly "EncodingServices": S["EncodingServices"]
17405
+ readonly "~type.make.in": S["~type.make.in"]
17406
+ readonly "~type.make": S["~type.make"]
17407
+ readonly "Iso": S["Iso"]
17408
+ readonly schema: S
17409
+ }
17410
+ /**
17411
+ * Derives a JSON codec, like {@link toCodecJson}, that also accepts the
17412
+ * `null` values Go's `encoding/json` writes for nil pointers, slices, and maps.
17413
+ *
17414
+ * **When to use**
17415
+ *
17416
+ * Use when decoding JSON produced by a Go service (for example the Docker
17417
+ * Engine or Kubernetes APIs), where any field the API document describes as
17418
+ * optional, or any slice or map, may arrive as `null`.
17419
+ *
17420
+ * **Details**
17421
+ *
17422
+ * Decoding applies these rules at every level of the schema:
17423
+ *
17424
+ * - An optional key that is `null` decodes as a missing key.
17425
+ * - A required array (`Schema.Array`) that is `null` decodes as `[]`.
17426
+ * - A required record (`Schema.Record`) that is `null` decodes as `{}`.
17427
+ *
17428
+ * Array and record rules also apply at the top level and to nested collection
17429
+ * values. Tuples, non-empty arrays, and structs are not treated as collections;
17430
+ * collection checks still apply to the empty value.
17431
+ *
17432
+ * Encoding is unchanged from {@link toCodecJson}: the added rules only decode
17433
+ * `null` and do not emit it. A missing key stays missing.
17434
+ *
17435
+ * These rules also accept `encoding/json/v2` output. By default, v2 writes
17436
+ * nil slices and maps as `[]` and `{}`, but it can be configured to emit
17437
+ * `null` instead.
17438
+ *
17439
+ * **Gotchas**
17440
+ *
17441
+ * - Normalization deliberately discards the distinction between nil and empty
17442
+ * Go slices or maps. They are distinguishable in Go, and unmarshalling a
17443
+ * missing key, `null`, or an empty collection can affect existing values
17444
+ * differently. Use {@link toCodecJson} with explicit nullable schemas when
17445
+ * that distinction matters.
17446
+ * - A key whose schema already accepts `null` (for example
17447
+ * `Schema.NullOr(X)`, `Schema.Unknown`, or `Schema.Json`) keeps `null` as a
17448
+ * value.
17449
+ * - A required field that is not an array or a record (a nil pointer to a Go
17450
+ * struct, for example) still fails on `null`. Make it optional if the API
17451
+ * can omit it.
17452
+ * - A nil `[]byte` is written as `null` by `encoding/json` (and as `""` by
17453
+ * version 2), but its schema is a base64 string, not an array. A required
17454
+ * `[]byte` field that is `null` fails; make it optional if the API can send
17455
+ * `null`.
17456
+ * - Only these `null` rules are covered. Field formats such as durations,
17457
+ * base64 bytes, and numbers encoded as strings belong in the field schemas.
17458
+ *
17459
+ * **Example** (Decoding a Go response with nil fields)
17460
+ *
17461
+ * ```ts import.meta.vitest
17462
+ * import { Schema } from "effect"
17463
+ *
17464
+ * const Container = Schema.Struct({
17465
+ * Id: Schema.String,
17466
+ * Names: Schema.Array(Schema.String),
17467
+ * Labels: Schema.Record(Schema.String, Schema.String),
17468
+ * Status: Schema.optionalKey(Schema.String)
17469
+ * })
17470
+ *
17471
+ * const decode = Schema.decodeUnknownSync(Schema.toCodecGoJson(Container))
17472
+ *
17473
+ * decode({ Id: "a", Names: null, Labels: null, Status: null }) // => { Id: "a", Names: [], Labels: {} }
17474
+ * ```
17475
+ *
17476
+ * @see {@link toCodecJson} for the canonical JSON codec
17477
+ * @stability unstable
17478
+ * @category converting
17479
+ * @since 4.0.6
17480
+ */
17481
+ export const toCodecGoJson: {
17482
+ /**
17483
+ * Derives a JSON codec, like {@link toCodecJson}, that also accepts the
17484
+ * `null` values Go's `encoding/json` writes for nil pointers, slices, and maps.
17485
+ *
17486
+ * **When to use**
17487
+ *
17488
+ * Use when decoding JSON produced by a Go service (for example the Docker
17489
+ * Engine or Kubernetes APIs), where any field the API document describes as
17490
+ * optional, or any slice or map, may arrive as `null`.
17491
+ *
17492
+ * **Details**
17493
+ *
17494
+ * Decoding applies these rules at every level of the schema:
17495
+ *
17496
+ * - An optional key that is `null` decodes as a missing key.
17497
+ * - A required array (`Schema.Array`) that is `null` decodes as `[]`.
17498
+ * - A required record (`Schema.Record`) that is `null` decodes as `{}`.
17499
+ *
17500
+ * Array and record rules also apply at the top level and to nested collection
17501
+ * values. Tuples, non-empty arrays, and structs are not treated as collections;
17502
+ * collection checks still apply to the empty value.
17503
+ *
17504
+ * Encoding is unchanged from {@link toCodecJson}: the added rules only decode
17505
+ * `null` and do not emit it. A missing key stays missing.
17506
+ *
17507
+ * These rules also accept `encoding/json/v2` output. By default, v2 writes
17508
+ * nil slices and maps as `[]` and `{}`, but it can be configured to emit
17509
+ * `null` instead.
17510
+ *
17511
+ * **Gotchas**
17512
+ *
17513
+ * - Normalization deliberately discards the distinction between nil and empty
17514
+ * Go slices or maps. They are distinguishable in Go, and unmarshalling a
17515
+ * missing key, `null`, or an empty collection can affect existing values
17516
+ * differently. Use {@link toCodecJson} with explicit nullable schemas when
17517
+ * that distinction matters.
17518
+ * - A key whose schema already accepts `null` (for example
17519
+ * `Schema.NullOr(X)`, `Schema.Unknown`, or `Schema.Json`) keeps `null` as a
17520
+ * value.
17521
+ * - A required field that is not an array or a record (a nil pointer to a Go
17522
+ * struct, for example) still fails on `null`. Make it optional if the API
17523
+ * can omit it.
17524
+ * - A nil `[]byte` is written as `null` by `encoding/json` (and as `""` by
17525
+ * version 2), but its schema is a base64 string, not an array. A required
17526
+ * `[]byte` field that is `null` fails; make it optional if the API can send
17527
+ * `null`.
17528
+ * - Only these `null` rules are covered. Field formats such as durations,
17529
+ * base64 bytes, and numbers encoded as strings belong in the field schemas.
17530
+ *
17531
+ * **Example** (Decoding a Go response with nil fields)
17532
+ *
17533
+ * ```ts import.meta.vitest
17534
+ * import { Schema } from "effect"
17535
+ *
17536
+ * const Container = Schema.Struct({
17537
+ * Id: Schema.String,
17538
+ * Names: Schema.Array(Schema.String),
17539
+ * Labels: Schema.Record(Schema.String, Schema.String),
17540
+ * Status: Schema.optionalKey(Schema.String)
17541
+ * })
17542
+ *
17543
+ * const decode = Schema.decodeUnknownSync(Schema.toCodecGoJson(Container))
17544
+ *
17545
+ * decode({ Id: "a", Names: null, Labels: null, Status: null }) // => { Id: "a", Names: [], Labels: {} }
17546
+ * ```
17547
+ *
17548
+ * @see {@link toCodecJson} for the canonical JSON codec
17549
+ * @stability unstable
17550
+ * @category converting
17551
+ * @since 4.0.6
17552
+ */
17553
+ <S extends Constraint>(schema: S): toCodecGoJson<S>
17554
+ } = InternalToCodec.toCodecGoJson
17320
17555
  type XmlEncoderOptions = {
17321
17556
  /** Root element name for the returned XML string. Default: "root" */
17322
17557
  readonly rootName?: string | undefined
@@ -17934,7 +18169,7 @@ export declare namespace Annotations {
17934
18169
  readonly "~sentinels"?: ReadonlyArray<SchemaAST.Sentinel> | undefined
17935
18170
  }
17936
18171
  /**
17937
- * Annotations for filter schema nodes (created via `Schema.filter`). Extends
18172
+ * Annotations for filter checks (created via `Schema.makeFilter`). Extends
17938
18173
  * {@link Augment} with an optional error message, identifier, and metadata.
17939
18174
  * Filters are intentionally non-parametric to keep them covariant.
17940
18175
  *