effect 4.0.0-beta.74 → 4.0.0-beta.76

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 (857) hide show
  1. package/dist/Array.d.ts +729 -611
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +273 -213
  4. package/dist/Array.js.map +1 -1
  5. package/dist/BigDecimal.d.ts +37 -30
  6. package/dist/BigDecimal.d.ts.map +1 -1
  7. package/dist/BigDecimal.js +19 -16
  8. package/dist/BigDecimal.js.map +1 -1
  9. package/dist/BigInt.d.ts +34 -40
  10. package/dist/BigInt.d.ts.map +1 -1
  11. package/dist/BigInt.js +16 -16
  12. package/dist/BigInt.js.map +1 -1
  13. package/dist/Boolean.d.ts +8 -8
  14. package/dist/Boolean.js +4 -4
  15. package/dist/Brand.d.ts +13 -11
  16. package/dist/Brand.d.ts.map +1 -1
  17. package/dist/Brand.js +10 -8
  18. package/dist/Brand.js.map +1 -1
  19. package/dist/Cause.d.ts +21 -23
  20. package/dist/Cause.d.ts.map +1 -1
  21. package/dist/Cause.js +21 -23
  22. package/dist/Cause.js.map +1 -1
  23. package/dist/Channel.d.ts +219 -9
  24. package/dist/Channel.d.ts.map +1 -1
  25. package/dist/Channel.js +83 -3
  26. package/dist/Channel.js.map +1 -1
  27. package/dist/ChannelSchema.d.ts +11 -11
  28. package/dist/ChannelSchema.js +5 -5
  29. package/dist/Chunk.d.ts +69 -16
  30. package/dist/Chunk.d.ts.map +1 -1
  31. package/dist/Chunk.js +43 -8
  32. package/dist/Chunk.js.map +1 -1
  33. package/dist/Clock.d.ts +3 -3
  34. package/dist/Clock.js +3 -3
  35. package/dist/Combiner.d.ts +9 -13
  36. package/dist/Combiner.d.ts.map +1 -1
  37. package/dist/Combiner.js +9 -13
  38. package/dist/Combiner.js.map +1 -1
  39. package/dist/Config.d.ts +49 -56
  40. package/dist/Config.d.ts.map +1 -1
  41. package/dist/Config.js +40 -43
  42. package/dist/Config.js.map +1 -1
  43. package/dist/ConfigProvider.d.ts +34 -44
  44. package/dist/ConfigProvider.d.ts.map +1 -1
  45. package/dist/ConfigProvider.js +24 -32
  46. package/dist/ConfigProvider.js.map +1 -1
  47. package/dist/Console.d.ts +2 -2
  48. package/dist/Console.js +2 -2
  49. package/dist/Context.d.ts +60 -72
  50. package/dist/Context.d.ts.map +1 -1
  51. package/dist/Context.js +28 -32
  52. package/dist/Context.js.map +1 -1
  53. package/dist/Cron.d.ts +2 -2
  54. package/dist/Cron.js +2 -2
  55. package/dist/Crypto.d.ts +4 -4
  56. package/dist/Crypto.js +4 -4
  57. package/dist/Data.d.ts +21 -15
  58. package/dist/Data.d.ts.map +1 -1
  59. package/dist/Data.js +7 -7
  60. package/dist/Data.js.map +1 -1
  61. package/dist/DateTime.d.ts +35 -16
  62. package/dist/DateTime.d.ts.map +1 -1
  63. package/dist/DateTime.js +35 -8
  64. package/dist/DateTime.js.map +1 -1
  65. package/dist/Deferred.d.ts +24 -15
  66. package/dist/Deferred.d.ts.map +1 -1
  67. package/dist/Deferred.js +8 -5
  68. package/dist/Deferred.js.map +1 -1
  69. package/dist/Duration.d.ts +44 -31
  70. package/dist/Duration.d.ts.map +1 -1
  71. package/dist/Duration.js +22 -11
  72. package/dist/Duration.js.map +1 -1
  73. package/dist/Effect.d.ts +516 -416
  74. package/dist/Effect.d.ts.map +1 -1
  75. package/dist/Effect.js +234 -174
  76. package/dist/Effect.js.map +1 -1
  77. package/dist/Encoding.d.ts +5 -0
  78. package/dist/Encoding.d.ts.map +1 -1
  79. package/dist/Encoding.js +5 -0
  80. package/dist/Encoding.js.map +1 -1
  81. package/dist/Equal.d.ts +26 -39
  82. package/dist/Equal.d.ts.map +1 -1
  83. package/dist/Equal.js +10 -17
  84. package/dist/Equal.js.map +1 -1
  85. package/dist/Equivalence.d.ts +71 -99
  86. package/dist/Equivalence.d.ts.map +1 -1
  87. package/dist/Equivalence.js +53 -73
  88. package/dist/Equivalence.js.map +1 -1
  89. package/dist/ErrorReporter.d.ts +1 -1
  90. package/dist/ErrorReporter.js +1 -1
  91. package/dist/Exit.d.ts +79 -96
  92. package/dist/Exit.d.ts.map +1 -1
  93. package/dist/Exit.js +57 -64
  94. package/dist/Exit.js.map +1 -1
  95. package/dist/Fiber.d.ts +8 -6
  96. package/dist/Fiber.d.ts.map +1 -1
  97. package/dist/Fiber.js +8 -6
  98. package/dist/Fiber.js.map +1 -1
  99. package/dist/FiberHandle.d.ts +25 -0
  100. package/dist/FiberHandle.d.ts.map +1 -1
  101. package/dist/FiberHandle.js +15 -0
  102. package/dist/FiberHandle.js.map +1 -1
  103. package/dist/FiberMap.d.ts +35 -0
  104. package/dist/FiberMap.d.ts.map +1 -1
  105. package/dist/FiberMap.js +15 -0
  106. package/dist/FiberMap.js.map +1 -1
  107. package/dist/FiberSet.d.ts +20 -0
  108. package/dist/FiberSet.d.ts.map +1 -1
  109. package/dist/FiberSet.js +10 -0
  110. package/dist/FiberSet.js.map +1 -1
  111. package/dist/Filter.d.ts +4 -4
  112. package/dist/Filter.js +4 -4
  113. package/dist/Formatter.d.ts +14 -19
  114. package/dist/Formatter.d.ts.map +1 -1
  115. package/dist/Formatter.js +14 -19
  116. package/dist/Formatter.js.map +1 -1
  117. package/dist/Function.d.ts +15 -16
  118. package/dist/Function.d.ts.map +1 -1
  119. package/dist/Function.js +9 -10
  120. package/dist/Function.js.map +1 -1
  121. package/dist/Graph.d.ts +2 -2
  122. package/dist/Graph.js +2 -2
  123. package/dist/HKT.d.ts +2 -2
  124. package/dist/Hash.d.ts +2 -1
  125. package/dist/Hash.d.ts.map +1 -1
  126. package/dist/Hash.js +2 -1
  127. package/dist/Hash.js.map +1 -1
  128. package/dist/HashMap.d.ts +15 -0
  129. package/dist/HashMap.d.ts.map +1 -1
  130. package/dist/HashMap.js +5 -0
  131. package/dist/HashMap.js.map +1 -1
  132. package/dist/HashRing.d.ts +9 -9
  133. package/dist/HashRing.js +3 -3
  134. package/dist/Iterable.d.ts +24 -12
  135. package/dist/Iterable.d.ts.map +1 -1
  136. package/dist/Iterable.js +16 -6
  137. package/dist/Iterable.js.map +1 -1
  138. package/dist/JsonPatch.d.ts +2 -3
  139. package/dist/JsonPatch.d.ts.map +1 -1
  140. package/dist/JsonPatch.js +2 -3
  141. package/dist/JsonPatch.js.map +1 -1
  142. package/dist/JsonPointer.d.ts +2 -6
  143. package/dist/JsonPointer.d.ts.map +1 -1
  144. package/dist/JsonPointer.js +2 -6
  145. package/dist/JsonPointer.js.map +1 -1
  146. package/dist/JsonSchema.d.ts +17 -13
  147. package/dist/JsonSchema.d.ts.map +1 -1
  148. package/dist/JsonSchema.js +17 -13
  149. package/dist/JsonSchema.js.map +1 -1
  150. package/dist/Latch.d.ts +4 -3
  151. package/dist/Latch.d.ts.map +1 -1
  152. package/dist/Latch.js +4 -3
  153. package/dist/Latch.js.map +1 -1
  154. package/dist/Layer.d.ts +92 -114
  155. package/dist/Layer.d.ts.map +1 -1
  156. package/dist/Layer.js +38 -46
  157. package/dist/Layer.js.map +1 -1
  158. package/dist/Logger.d.ts +11 -14
  159. package/dist/Logger.d.ts.map +1 -1
  160. package/dist/Logger.js +11 -14
  161. package/dist/Logger.js.map +1 -1
  162. package/dist/Match.d.ts +2 -2
  163. package/dist/Match.js +2 -2
  164. package/dist/Metric.d.ts +89 -109
  165. package/dist/Metric.d.ts.map +1 -1
  166. package/dist/Metric.js +51 -61
  167. package/dist/Metric.js.map +1 -1
  168. package/dist/MutableHashMap.d.ts +21 -12
  169. package/dist/MutableHashMap.d.ts.map +1 -1
  170. package/dist/MutableHashMap.js +7 -4
  171. package/dist/MutableHashMap.js.map +1 -1
  172. package/dist/MutableList.d.ts +15 -0
  173. package/dist/MutableList.d.ts.map +1 -1
  174. package/dist/MutableList.js +15 -0
  175. package/dist/MutableList.js.map +1 -1
  176. package/dist/MutableRef.d.ts +56 -42
  177. package/dist/MutableRef.d.ts.map +1 -1
  178. package/dist/MutableRef.js +28 -22
  179. package/dist/MutableRef.js.map +1 -1
  180. package/dist/Newtype.d.ts +10 -7
  181. package/dist/Newtype.d.ts.map +1 -1
  182. package/dist/Newtype.js +10 -7
  183. package/dist/Newtype.js.map +1 -1
  184. package/dist/Number.d.ts +23 -11
  185. package/dist/Number.d.ts.map +1 -1
  186. package/dist/Number.js +9 -5
  187. package/dist/Number.js.map +1 -1
  188. package/dist/Optic.d.ts +16 -16
  189. package/dist/Optic.d.ts.map +1 -1
  190. package/dist/Optic.js +10 -9
  191. package/dist/Optic.js.map +1 -1
  192. package/dist/Option.d.ts +196 -168
  193. package/dist/Option.d.ts.map +1 -1
  194. package/dist/Option.js +96 -79
  195. package/dist/Option.js.map +1 -1
  196. package/dist/Order.d.ts +118 -179
  197. package/dist/Order.d.ts.map +1 -1
  198. package/dist/Order.js +92 -144
  199. package/dist/Order.js.map +1 -1
  200. package/dist/PartitionedSemaphore.d.ts +14 -14
  201. package/dist/PartitionedSemaphore.js +6 -6
  202. package/dist/Path.d.ts +2 -2
  203. package/dist/Path.js +2 -2
  204. package/dist/Pipeable.d.ts +2 -2
  205. package/dist/Pipeable.js +2 -2
  206. package/dist/PlatformError.d.ts +4 -4
  207. package/dist/PlatformError.js +4 -4
  208. package/dist/Pool.d.ts +7 -11
  209. package/dist/Pool.d.ts.map +1 -1
  210. package/dist/Pool.js +3 -5
  211. package/dist/Pool.js.map +1 -1
  212. package/dist/Predicate.d.ts +274 -263
  213. package/dist/Predicate.d.ts.map +1 -1
  214. package/dist/Predicate.js +128 -123
  215. package/dist/Predicate.js.map +1 -1
  216. package/dist/PubSub.d.ts +24 -14
  217. package/dist/PubSub.d.ts.map +1 -1
  218. package/dist/PubSub.js +16 -6
  219. package/dist/PubSub.js.map +1 -1
  220. package/dist/Pull.d.ts +4 -4
  221. package/dist/Pull.js +4 -4
  222. package/dist/Queue.d.ts +46 -7
  223. package/dist/Queue.d.ts.map +1 -1
  224. package/dist/Queue.js +46 -7
  225. package/dist/Queue.js.map +1 -1
  226. package/dist/RcRef.d.ts +0 -4
  227. package/dist/RcRef.d.ts.map +1 -1
  228. package/dist/RcRef.js.map +1 -1
  229. package/dist/Redactable.d.ts +2 -2
  230. package/dist/Redactable.js +2 -2
  231. package/dist/Redacted.d.ts +3 -3
  232. package/dist/Redacted.js +3 -3
  233. package/dist/Reducer.d.ts +2 -3
  234. package/dist/Reducer.d.ts.map +1 -1
  235. package/dist/Reducer.js +2 -3
  236. package/dist/Reducer.js.map +1 -1
  237. package/dist/Ref.d.ts +17 -16
  238. package/dist/Ref.d.ts.map +1 -1
  239. package/dist/Ref.js +15 -14
  240. package/dist/Ref.js.map +1 -1
  241. package/dist/References.d.ts +4 -4
  242. package/dist/References.js +4 -4
  243. package/dist/Request.d.ts +18 -18
  244. package/dist/Request.js +6 -6
  245. package/dist/Resource.d.ts +2 -2
  246. package/dist/Resource.js +2 -2
  247. package/dist/Result.d.ts +77 -33
  248. package/dist/Result.d.ts.map +1 -1
  249. package/dist/Result.js +42 -19
  250. package/dist/Result.js.map +1 -1
  251. package/dist/Runtime.d.ts +11 -8
  252. package/dist/Runtime.d.ts.map +1 -1
  253. package/dist/Runtime.js +11 -8
  254. package/dist/Runtime.js.map +1 -1
  255. package/dist/Schedule.d.ts +107 -45
  256. package/dist/Schedule.d.ts.map +1 -1
  257. package/dist/Schedule.js +41 -29
  258. package/dist/Schedule.js.map +1 -1
  259. package/dist/Scheduler.d.ts +6 -4
  260. package/dist/Scheduler.d.ts.map +1 -1
  261. package/dist/Scheduler.js +6 -4
  262. package/dist/Scheduler.js.map +1 -1
  263. package/dist/Schema.d.ts +545 -411
  264. package/dist/Schema.d.ts.map +1 -1
  265. package/dist/Schema.js +662 -500
  266. package/dist/Schema.js.map +1 -1
  267. package/dist/SchemaAST.d.ts +42 -21
  268. package/dist/SchemaAST.d.ts.map +1 -1
  269. package/dist/SchemaAST.js +81 -59
  270. package/dist/SchemaAST.js.map +1 -1
  271. package/dist/SchemaGetter.d.ts +126 -106
  272. package/dist/SchemaGetter.d.ts.map +1 -1
  273. package/dist/SchemaGetter.js +121 -101
  274. package/dist/SchemaGetter.js.map +1 -1
  275. package/dist/SchemaIssue.d.ts +37 -39
  276. package/dist/SchemaIssue.d.ts.map +1 -1
  277. package/dist/SchemaIssue.js +16 -17
  278. package/dist/SchemaIssue.js.map +1 -1
  279. package/dist/SchemaParser.d.ts +72 -153
  280. package/dist/SchemaParser.d.ts.map +1 -1
  281. package/dist/SchemaParser.js +72 -145
  282. package/dist/SchemaParser.js.map +1 -1
  283. package/dist/SchemaRepresentation.d.ts +40 -22
  284. package/dist/SchemaRepresentation.d.ts.map +1 -1
  285. package/dist/SchemaRepresentation.js +38 -27
  286. package/dist/SchemaRepresentation.js.map +1 -1
  287. package/dist/SchemaTransformation.d.ts +169 -145
  288. package/dist/SchemaTransformation.d.ts.map +1 -1
  289. package/dist/SchemaTransformation.js +240 -177
  290. package/dist/SchemaTransformation.js.map +1 -1
  291. package/dist/SchemaUtils.js +2 -2
  292. package/dist/SchemaUtils.js.map +1 -1
  293. package/dist/Scope.d.ts +15 -0
  294. package/dist/Scope.d.ts.map +1 -1
  295. package/dist/Scope.js +15 -0
  296. package/dist/Scope.js.map +1 -1
  297. package/dist/ScopedCache.d.ts +1 -1
  298. package/dist/ScopedCache.js +1 -1
  299. package/dist/ScopedRef.d.ts +14 -18
  300. package/dist/ScopedRef.d.ts.map +1 -1
  301. package/dist/ScopedRef.js +6 -8
  302. package/dist/ScopedRef.js.map +1 -1
  303. package/dist/Semaphore.d.ts +9 -9
  304. package/dist/Semaphore.js +3 -3
  305. package/dist/Sink.d.ts +13 -13
  306. package/dist/Sink.d.ts.map +1 -1
  307. package/dist/Sink.js +9 -9
  308. package/dist/Sink.js.map +1 -1
  309. package/dist/Stdio.d.ts +4 -5
  310. package/dist/Stdio.d.ts.map +1 -1
  311. package/dist/Stdio.js +4 -5
  312. package/dist/Stdio.js.map +1 -1
  313. package/dist/Stream.d.ts +321 -44
  314. package/dist/Stream.d.ts.map +1 -1
  315. package/dist/Stream.js +137 -22
  316. package/dist/Stream.js.map +1 -1
  317. package/dist/String.d.ts +6 -9
  318. package/dist/String.d.ts.map +1 -1
  319. package/dist/String.js +2 -3
  320. package/dist/String.js.map +1 -1
  321. package/dist/Struct.d.ts +15 -13
  322. package/dist/Struct.d.ts.map +1 -1
  323. package/dist/Struct.js +11 -9
  324. package/dist/Struct.js.map +1 -1
  325. package/dist/SubscriptionRef.d.ts +24 -19
  326. package/dist/SubscriptionRef.d.ts.map +1 -1
  327. package/dist/SubscriptionRef.js +12 -7
  328. package/dist/SubscriptionRef.js.map +1 -1
  329. package/dist/SynchronizedRef.d.ts +88 -63
  330. package/dist/SynchronizedRef.d.ts.map +1 -1
  331. package/dist/SynchronizedRef.js +32 -23
  332. package/dist/SynchronizedRef.js.map +1 -1
  333. package/dist/Tracer.d.ts +4 -4
  334. package/dist/Tracer.js +4 -4
  335. package/dist/Trie.d.ts +15 -0
  336. package/dist/Trie.d.ts.map +1 -1
  337. package/dist/Trie.js +5 -0
  338. package/dist/Trie.js.map +1 -1
  339. package/dist/Tuple.d.ts +25 -19
  340. package/dist/Tuple.d.ts.map +1 -1
  341. package/dist/Tuple.js +17 -13
  342. package/dist/Tuple.js.map +1 -1
  343. package/dist/TxReentrantLock.d.ts +6 -3
  344. package/dist/TxReentrantLock.d.ts.map +1 -1
  345. package/dist/TxReentrantLock.js +2 -1
  346. package/dist/TxReentrantLock.js.map +1 -1
  347. package/dist/TxRef.d.ts +16 -16
  348. package/dist/TxRef.js +8 -8
  349. package/dist/TxSubscriptionRef.d.ts +43 -27
  350. package/dist/TxSubscriptionRef.d.ts.map +1 -1
  351. package/dist/TxSubscriptionRef.js +19 -13
  352. package/dist/TxSubscriptionRef.js.map +1 -1
  353. package/dist/Types.d.ts +12 -38
  354. package/dist/Types.d.ts.map +1 -1
  355. package/dist/Types.js +0 -2
  356. package/dist/UndefinedOr.d.ts +15 -14
  357. package/dist/UndefinedOr.d.ts.map +1 -1
  358. package/dist/UndefinedOr.js +11 -10
  359. package/dist/UndefinedOr.js.map +1 -1
  360. package/dist/Unify.d.ts +2 -2
  361. package/dist/internal/schema/annotations.js.map +1 -1
  362. package/dist/internal/schema/arbitrary.js +9 -9
  363. package/dist/internal/schema/arbitrary.js.map +1 -1
  364. package/dist/internal/schema/equivalence.js +9 -9
  365. package/dist/internal/schema/equivalence.js.map +1 -1
  366. package/dist/internal/schema/representation.js +15 -14
  367. package/dist/internal/schema/representation.js.map +1 -1
  368. package/dist/internal/schema/schema.js +11 -11
  369. package/dist/internal/schema/schema.js.map +1 -1
  370. package/dist/testing/TestSchema.d.ts +10 -10
  371. package/dist/testing/TestSchema.d.ts.map +1 -1
  372. package/dist/testing/TestSchema.js +9 -9
  373. package/dist/testing/TestSchema.js.map +1 -1
  374. package/dist/unstable/ai/AiError.d.ts +4 -2
  375. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  376. package/dist/unstable/ai/AiError.js +4 -2
  377. package/dist/unstable/ai/AiError.js.map +1 -1
  378. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +17 -20
  379. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
  380. package/dist/unstable/ai/AnthropicStructuredOutput.js +36 -39
  381. package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
  382. package/dist/unstable/ai/Chat.d.ts +4 -5
  383. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  384. package/dist/unstable/ai/Chat.js +4 -5
  385. package/dist/unstable/ai/Chat.js.map +1 -1
  386. package/dist/unstable/ai/EmbeddingModel.d.ts +4 -4
  387. package/dist/unstable/ai/EmbeddingModel.js +4 -4
  388. package/dist/unstable/ai/IdGenerator.d.ts +2 -3
  389. package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
  390. package/dist/unstable/ai/IdGenerator.js +2 -3
  391. package/dist/unstable/ai/IdGenerator.js.map +1 -1
  392. package/dist/unstable/ai/LanguageModel.d.ts +3 -2
  393. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  394. package/dist/unstable/ai/LanguageModel.js +5 -4
  395. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  396. package/dist/unstable/ai/McpSchema.d.ts +14 -12
  397. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  398. package/dist/unstable/ai/McpSchema.js +20 -18
  399. package/dist/unstable/ai/McpSchema.js.map +1 -1
  400. package/dist/unstable/ai/McpServer.d.ts +11 -4
  401. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  402. package/dist/unstable/ai/McpServer.js +8 -5
  403. package/dist/unstable/ai/McpServer.js.map +1 -1
  404. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +20 -18
  405. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
  406. package/dist/unstable/ai/OpenAiStructuredOutput.js +45 -43
  407. package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
  408. package/dist/unstable/ai/Prompt.d.ts +2 -2
  409. package/dist/unstable/ai/Prompt.js +3 -3
  410. package/dist/unstable/ai/Prompt.js.map +1 -1
  411. package/dist/unstable/ai/ResponseIdTracker.d.ts +3 -2
  412. package/dist/unstable/ai/ResponseIdTracker.d.ts.map +1 -1
  413. package/dist/unstable/ai/ResponseIdTracker.js +3 -2
  414. package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
  415. package/dist/unstable/ai/Telemetry.d.ts +21 -6
  416. package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
  417. package/dist/unstable/ai/Telemetry.js +7 -2
  418. package/dist/unstable/ai/Telemetry.js.map +1 -1
  419. package/dist/unstable/ai/Tool.d.ts +7 -6
  420. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  421. package/dist/unstable/ai/Tool.js +8 -7
  422. package/dist/unstable/ai/Tool.js.map +1 -1
  423. package/dist/unstable/ai/Toolkit.d.ts +2 -2
  424. package/dist/unstable/ai/Toolkit.js +2 -2
  425. package/dist/unstable/cli/CliError.js +1 -1
  426. package/dist/unstable/cli/CliError.js.map +1 -1
  427. package/dist/unstable/cli/Command.d.ts +37 -16
  428. package/dist/unstable/cli/Command.d.ts.map +1 -1
  429. package/dist/unstable/cli/Command.js +15 -8
  430. package/dist/unstable/cli/Command.js.map +1 -1
  431. package/dist/unstable/cli/Completions.d.ts +1 -1
  432. package/dist/unstable/cli/Completions.js +1 -1
  433. package/dist/unstable/cli/Flag.d.ts +7 -6
  434. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  435. package/dist/unstable/cli/Flag.js +7 -6
  436. package/dist/unstable/cli/Flag.js.map +1 -1
  437. package/dist/unstable/cli/GlobalFlag.d.ts +6 -1
  438. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -1
  439. package/dist/unstable/cli/GlobalFlag.js +7 -2
  440. package/dist/unstable/cli/GlobalFlag.js.map +1 -1
  441. package/dist/unstable/cli/Param.d.ts +3 -3
  442. package/dist/unstable/cli/Param.d.ts.map +1 -1
  443. package/dist/unstable/cli/Param.js +13 -10
  444. package/dist/unstable/cli/Param.js.map +1 -1
  445. package/dist/unstable/cli/Primitive.d.ts +3 -2
  446. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  447. package/dist/unstable/cli/Primitive.js +3 -2
  448. package/dist/unstable/cli/Primitive.js.map +1 -1
  449. package/dist/unstable/cluster/ClusterCron.d.ts +1 -2
  450. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  451. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  452. package/dist/unstable/cluster/ClusterError.js +2 -2
  453. package/dist/unstable/cluster/ClusterError.js.map +1 -1
  454. package/dist/unstable/cluster/ClusterMetrics.d.ts +5 -0
  455. package/dist/unstable/cluster/ClusterMetrics.d.ts.map +1 -1
  456. package/dist/unstable/cluster/ClusterMetrics.js +5 -0
  457. package/dist/unstable/cluster/ClusterMetrics.js.map +1 -1
  458. package/dist/unstable/cluster/ClusterSchema.d.ts +3 -3
  459. package/dist/unstable/cluster/ClusterSchema.js +3 -3
  460. package/dist/unstable/cluster/ClusterWorkflowEngine.js +15 -15
  461. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  462. package/dist/unstable/cluster/EntityResource.d.ts +10 -0
  463. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  464. package/dist/unstable/cluster/EntityResource.js +10 -0
  465. package/dist/unstable/cluster/EntityResource.js.map +1 -1
  466. package/dist/unstable/cluster/Envelope.d.ts +2 -2
  467. package/dist/unstable/cluster/Envelope.d.ts.map +1 -1
  468. package/dist/unstable/cluster/Envelope.js +2 -2
  469. package/dist/unstable/cluster/Envelope.js.map +1 -1
  470. package/dist/unstable/cluster/Reply.d.ts +2 -2
  471. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  472. package/dist/unstable/cluster/Reply.js +13 -13
  473. package/dist/unstable/cluster/Reply.js.map +1 -1
  474. package/dist/unstable/cluster/RunnerHealth.d.ts +2 -1
  475. package/dist/unstable/cluster/RunnerHealth.d.ts.map +1 -1
  476. package/dist/unstable/cluster/RunnerHealth.js +2 -1
  477. package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
  478. package/dist/unstable/cluster/RunnerServer.d.ts +2 -2
  479. package/dist/unstable/cluster/RunnerServer.js +2 -2
  480. package/dist/unstable/cluster/Runners.d.ts +3 -3
  481. package/dist/unstable/cluster/Runners.js +3 -3
  482. package/dist/unstable/cluster/ShardId.js +3 -3
  483. package/dist/unstable/cluster/ShardId.js.map +1 -1
  484. package/dist/unstable/cluster/Sharding.d.ts +3 -3
  485. package/dist/unstable/cluster/Sharding.js +3 -3
  486. package/dist/unstable/cluster/ShardingConfig.d.ts +4 -4
  487. package/dist/unstable/cluster/ShardingConfig.js +4 -4
  488. package/dist/unstable/cluster/Snowflake.d.ts +1 -1
  489. package/dist/unstable/cluster/Snowflake.js +3 -3
  490. package/dist/unstable/cluster/Snowflake.js.map +1 -1
  491. package/dist/unstable/cluster/internal/entityManager.js +2 -2
  492. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  493. package/dist/unstable/devtools/DevToolsSchema.js +5 -1
  494. package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
  495. package/dist/unstable/encoding/Msgpack.d.ts +2 -2
  496. package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
  497. package/dist/unstable/encoding/Msgpack.js +5 -5
  498. package/dist/unstable/encoding/Msgpack.js.map +1 -1
  499. package/dist/unstable/encoding/Ndjson.d.ts +5 -0
  500. package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
  501. package/dist/unstable/encoding/Ndjson.js +5 -0
  502. package/dist/unstable/encoding/Ndjson.js.map +1 -1
  503. package/dist/unstable/encoding/Sse.d.ts +2 -2
  504. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  505. package/dist/unstable/encoding/Sse.js +2 -2
  506. package/dist/unstable/encoding/Sse.js.map +1 -1
  507. package/dist/unstable/eventlog/EventGroup.d.ts +2 -1
  508. package/dist/unstable/eventlog/EventGroup.d.ts.map +1 -1
  509. package/dist/unstable/eventlog/EventGroup.js +2 -1
  510. package/dist/unstable/eventlog/EventGroup.js.map +1 -1
  511. package/dist/unstable/eventlog/EventJournal.d.ts +10 -0
  512. package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
  513. package/dist/unstable/eventlog/EventJournal.js +10 -0
  514. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  515. package/dist/unstable/eventlog/EventLog.d.ts +3 -3
  516. package/dist/unstable/eventlog/EventLog.js +3 -3
  517. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +2 -3
  518. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  519. package/dist/unstable/eventlog/EventLogServerEncrypted.js +2 -3
  520. package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
  521. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +5 -7
  522. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  523. package/dist/unstable/eventlog/EventLogServerUnencrypted.js +5 -7
  524. package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
  525. package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +4 -4
  526. package/dist/unstable/eventlog/EventLogSessionAuth.js +4 -4
  527. package/dist/unstable/http/Cookies.js +4 -4
  528. package/dist/unstable/http/Cookies.js.map +1 -1
  529. package/dist/unstable/http/Etag.d.ts +2 -3
  530. package/dist/unstable/http/Etag.d.ts.map +1 -1
  531. package/dist/unstable/http/Etag.js +2 -3
  532. package/dist/unstable/http/Etag.js.map +1 -1
  533. package/dist/unstable/http/Headers.js +2 -2
  534. package/dist/unstable/http/Headers.js.map +1 -1
  535. package/dist/unstable/http/HttpBody.js +2 -2
  536. package/dist/unstable/http/HttpBody.js.map +1 -1
  537. package/dist/unstable/http/HttpClient.d.ts +2 -2
  538. package/dist/unstable/http/HttpClient.js +2 -2
  539. package/dist/unstable/http/HttpClientError.js +1 -1
  540. package/dist/unstable/http/HttpClientError.js.map +1 -1
  541. package/dist/unstable/http/HttpClientRequest.d.ts +30 -3
  542. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  543. package/dist/unstable/http/HttpClientRequest.js +10 -1
  544. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  545. package/dist/unstable/http/HttpRouter.d.ts +1 -1
  546. package/dist/unstable/http/HttpRouter.js +1 -1
  547. package/dist/unstable/http/HttpServerResponse.d.ts +25 -20
  548. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  549. package/dist/unstable/http/HttpServerResponse.js +13 -8
  550. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  551. package/dist/unstable/http/Multipart.js +3 -3
  552. package/dist/unstable/http/Multipart.js.map +1 -1
  553. package/dist/unstable/http/UrlParams.d.ts +30 -0
  554. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  555. package/dist/unstable/http/UrlParams.js +16 -6
  556. package/dist/unstable/http/UrlParams.js.map +1 -1
  557. package/dist/unstable/httpapi/HttpApi.d.ts +3 -2
  558. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  559. package/dist/unstable/httpapi/HttpApi.js +3 -2
  560. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  561. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  562. package/dist/unstable/httpapi/HttpApiBuilder.js +10 -8
  563. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  564. package/dist/unstable/httpapi/HttpApiClient.js +15 -15
  565. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  566. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +3 -3
  567. package/dist/unstable/httpapi/HttpApiMiddleware.js +3 -3
  568. package/dist/unstable/httpapi/HttpApiScalar.d.ts +2 -0
  569. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  570. package/dist/unstable/httpapi/HttpApiScalar.js +12 -6
  571. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  572. package/dist/unstable/httpapi/HttpApiSchema.d.ts +2 -2
  573. package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
  574. package/dist/unstable/httpapi/HttpApiSchema.js +9 -9
  575. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  576. package/dist/unstable/httpapi/OpenApi.js +11 -11
  577. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  578. package/dist/unstable/observability/OtlpResource.d.ts +5 -0
  579. package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
  580. package/dist/unstable/observability/OtlpResource.js +5 -0
  581. package/dist/unstable/observability/OtlpResource.js.map +1 -1
  582. package/dist/unstable/observability/PrometheusMetrics.d.ts +4 -2
  583. package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
  584. package/dist/unstable/observability/PrometheusMetrics.js +4 -2
  585. package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
  586. package/dist/unstable/persistence/Persistable.js +1 -1
  587. package/dist/unstable/persistence/Persistable.js.map +1 -1
  588. package/dist/unstable/persistence/PersistedQueue.js +1 -1
  589. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  590. package/dist/unstable/persistence/Persistence.js +1 -1
  591. package/dist/unstable/persistence/Persistence.js.map +1 -1
  592. package/dist/unstable/persistence/RateLimiter.js +1 -1
  593. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  594. package/dist/unstable/persistence/Redis.js +1 -1
  595. package/dist/unstable/persistence/Redis.js.map +1 -1
  596. package/dist/unstable/reactivity/AsyncResult.js +1 -1
  597. package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
  598. package/dist/unstable/reactivity/Atom.d.ts +3 -3
  599. package/dist/unstable/reactivity/Atom.js +3 -3
  600. package/dist/unstable/rpc/Rpc.d.ts +1 -1
  601. package/dist/unstable/rpc/Rpc.js +2 -2
  602. package/dist/unstable/rpc/Rpc.js.map +1 -1
  603. package/dist/unstable/rpc/RpcClient.js +1 -1
  604. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  605. package/dist/unstable/rpc/RpcClientError.js +1 -1
  606. package/dist/unstable/rpc/RpcClientError.js.map +1 -1
  607. package/dist/unstable/rpc/RpcMessage.d.ts +2 -2
  608. package/dist/unstable/rpc/RpcMessage.js +3 -3
  609. package/dist/unstable/rpc/RpcMessage.js.map +1 -1
  610. package/dist/unstable/rpc/RpcSchema.d.ts +2 -2
  611. package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
  612. package/dist/unstable/rpc/RpcSerialization.d.ts +2 -2
  613. package/dist/unstable/rpc/RpcSerialization.js +2 -2
  614. package/dist/unstable/schema/Model.js +5 -5
  615. package/dist/unstable/schema/Model.js.map +1 -1
  616. package/dist/unstable/schema/VariantSchema.d.ts +2 -2
  617. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  618. package/dist/unstable/socket/Socket.js +3 -3
  619. package/dist/unstable/socket/Socket.js.map +1 -1
  620. package/dist/unstable/sql/SqlError.js +1 -1
  621. package/dist/unstable/sql/SqlError.js.map +1 -1
  622. package/dist/unstable/sql/SqlSchema.d.ts +4 -4
  623. package/dist/unstable/sql/SqlSchema.js +4 -4
  624. package/dist/unstable/workers/Transferable.d.ts +2 -2
  625. package/dist/unstable/workers/Transferable.d.ts.map +1 -1
  626. package/dist/unstable/workers/Transferable.js +5 -5
  627. package/dist/unstable/workers/Transferable.js.map +1 -1
  628. package/dist/unstable/workers/WorkerError.js +4 -4
  629. package/dist/unstable/workers/WorkerError.js.map +1 -1
  630. package/dist/unstable/workflow/Activity.js +1 -1
  631. package/dist/unstable/workflow/Activity.js.map +1 -1
  632. package/dist/unstable/workflow/DurableDeferred.js +8 -8
  633. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  634. package/dist/unstable/workflow/DurableQueue.d.ts +1 -2
  635. package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
  636. package/dist/unstable/workflow/DurableQueue.js +1 -2
  637. package/dist/unstable/workflow/DurableQueue.js.map +1 -1
  638. package/dist/unstable/workflow/Workflow.d.ts +35 -15
  639. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  640. package/dist/unstable/workflow/Workflow.js +96 -74
  641. package/dist/unstable/workflow/Workflow.js.map +1 -1
  642. package/dist/unstable/workflow/WorkflowEngine.d.ts +10 -2
  643. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  644. package/dist/unstable/workflow/WorkflowEngine.js +16 -8
  645. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  646. package/dist/unstable/workflow/WorkflowProxy.d.ts +2 -4
  647. package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
  648. package/dist/unstable/workflow/WorkflowProxy.js +9 -11
  649. package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
  650. package/dist/unstable/workflow/WorkflowProxyServer.js +7 -7
  651. package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
  652. package/package.json +1 -1
  653. package/src/Array.ts +729 -611
  654. package/src/BigDecimal.ts +37 -30
  655. package/src/BigInt.ts +34 -40
  656. package/src/Boolean.ts +8 -8
  657. package/src/Brand.ts +16 -14
  658. package/src/Cause.ts +21 -23
  659. package/src/Channel.ts +249 -9
  660. package/src/ChannelSchema.ts +11 -11
  661. package/src/Chunk.ts +69 -16
  662. package/src/Clock.ts +3 -3
  663. package/src/Combiner.ts +9 -13
  664. package/src/Config.ts +60 -67
  665. package/src/ConfigProvider.ts +34 -44
  666. package/src/Console.ts +2 -2
  667. package/src/Context.ts +60 -72
  668. package/src/Cron.ts +2 -2
  669. package/src/Crypto.ts +4 -4
  670. package/src/Data.ts +21 -15
  671. package/src/DateTime.ts +35 -16
  672. package/src/Deferred.ts +24 -15
  673. package/src/Duration.ts +44 -31
  674. package/src/Effect.ts +516 -416
  675. package/src/Encoding.ts +5 -0
  676. package/src/Equal.ts +26 -39
  677. package/src/Equivalence.ts +71 -99
  678. package/src/ErrorReporter.ts +1 -1
  679. package/src/Exit.ts +79 -96
  680. package/src/Fiber.ts +8 -6
  681. package/src/FiberHandle.ts +25 -0
  682. package/src/FiberMap.ts +35 -0
  683. package/src/FiberSet.ts +20 -0
  684. package/src/Filter.ts +4 -4
  685. package/src/Formatter.ts +14 -19
  686. package/src/Function.ts +15 -16
  687. package/src/Graph.ts +2 -2
  688. package/src/HKT.ts +2 -2
  689. package/src/Hash.ts +2 -1
  690. package/src/HashMap.ts +15 -0
  691. package/src/HashRing.ts +9 -9
  692. package/src/Iterable.ts +24 -12
  693. package/src/JsonPatch.ts +2 -3
  694. package/src/JsonPointer.ts +2 -6
  695. package/src/JsonSchema.ts +17 -13
  696. package/src/Latch.ts +4 -3
  697. package/src/Layer.ts +92 -114
  698. package/src/Logger.ts +15 -18
  699. package/src/Match.ts +2 -2
  700. package/src/Metric.ts +109 -137
  701. package/src/MutableHashMap.ts +35 -20
  702. package/src/MutableList.ts +15 -0
  703. package/src/MutableRef.ts +56 -42
  704. package/src/Newtype.ts +10 -7
  705. package/src/Number.ts +23 -11
  706. package/src/Optic.ts +25 -22
  707. package/src/Option.ts +196 -168
  708. package/src/Order.ts +118 -179
  709. package/src/PartitionedSemaphore.ts +14 -14
  710. package/src/Path.ts +2 -2
  711. package/src/Pipeable.ts +2 -2
  712. package/src/PlatformError.ts +4 -4
  713. package/src/Pool.ts +7 -11
  714. package/src/Predicate.ts +274 -263
  715. package/src/PubSub.ts +24 -14
  716. package/src/Pull.ts +4 -4
  717. package/src/Queue.ts +46 -7
  718. package/src/RcRef.ts +0 -4
  719. package/src/Redactable.ts +2 -2
  720. package/src/Redacted.ts +3 -3
  721. package/src/Reducer.ts +2 -3
  722. package/src/Ref.ts +43 -40
  723. package/src/References.ts +4 -4
  724. package/src/Request.ts +18 -18
  725. package/src/Resource.ts +2 -2
  726. package/src/Result.ts +87 -33
  727. package/src/Runtime.ts +11 -8
  728. package/src/Schedule.ts +112 -45
  729. package/src/Scheduler.ts +6 -4
  730. package/src/Schema.ts +1015 -759
  731. package/src/SchemaAST.ts +150 -117
  732. package/src/SchemaGetter.ts +142 -121
  733. package/src/SchemaIssue.ts +39 -41
  734. package/src/SchemaParser.ts +173 -229
  735. package/src/SchemaRepresentation.ts +50 -32
  736. package/src/SchemaTransformation.ts +308 -232
  737. package/src/SchemaUtils.ts +2 -2
  738. package/src/Scope.ts +15 -0
  739. package/src/ScopedCache.ts +1 -1
  740. package/src/ScopedRef.ts +14 -18
  741. package/src/Semaphore.ts +9 -9
  742. package/src/Sink.ts +13 -13
  743. package/src/Stdio.ts +4 -5
  744. package/src/Stream.ts +354 -57
  745. package/src/String.ts +6 -9
  746. package/src/Struct.ts +15 -13
  747. package/src/SubscriptionRef.ts +24 -19
  748. package/src/SynchronizedRef.ts +88 -63
  749. package/src/Tracer.ts +4 -4
  750. package/src/Trie.ts +15 -0
  751. package/src/Tuple.ts +25 -19
  752. package/src/TxReentrantLock.ts +6 -3
  753. package/src/TxRef.ts +16 -16
  754. package/src/TxSubscriptionRef.ts +43 -27
  755. package/src/Types.ts +12 -39
  756. package/src/UndefinedOr.ts +15 -14
  757. package/src/Unify.ts +2 -2
  758. package/src/internal/schema/annotations.ts +4 -4
  759. package/src/internal/schema/arbitrary.ts +16 -16
  760. package/src/internal/schema/equivalence.ts +11 -11
  761. package/src/internal/schema/representation.ts +24 -23
  762. package/src/internal/schema/schema.ts +17 -17
  763. package/src/testing/TestSchema.ts +20 -20
  764. package/src/unstable/ai/AiError.ts +4 -2
  765. package/src/unstable/ai/AnthropicStructuredOutput.ts +59 -56
  766. package/src/unstable/ai/Chat.ts +4 -5
  767. package/src/unstable/ai/EmbeddingModel.ts +4 -4
  768. package/src/unstable/ai/IdGenerator.ts +2 -3
  769. package/src/unstable/ai/LanguageModel.ts +5 -4
  770. package/src/unstable/ai/McpSchema.ts +20 -18
  771. package/src/unstable/ai/McpServer.ts +14 -7
  772. package/src/unstable/ai/OpenAiStructuredOutput.ts +72 -61
  773. package/src/unstable/ai/Prompt.ts +5 -5
  774. package/src/unstable/ai/ResponseIdTracker.ts +3 -2
  775. package/src/unstable/ai/Telemetry.ts +21 -6
  776. package/src/unstable/ai/Tool.ts +11 -10
  777. package/src/unstable/ai/Toolkit.ts +2 -2
  778. package/src/unstable/cli/CliError.ts +1 -1
  779. package/src/unstable/cli/Command.ts +37 -16
  780. package/src/unstable/cli/Completions.ts +1 -1
  781. package/src/unstable/cli/Flag.ts +7 -6
  782. package/src/unstable/cli/GlobalFlag.ts +7 -1
  783. package/src/unstable/cli/Param.ts +23 -18
  784. package/src/unstable/cli/Primitive.ts +3 -2
  785. package/src/unstable/cluster/ClusterCron.ts +1 -2
  786. package/src/unstable/cluster/ClusterError.ts +2 -2
  787. package/src/unstable/cluster/ClusterMetrics.ts +5 -0
  788. package/src/unstable/cluster/ClusterSchema.ts +3 -3
  789. package/src/unstable/cluster/ClusterWorkflowEngine.ts +15 -15
  790. package/src/unstable/cluster/EntityResource.ts +10 -0
  791. package/src/unstable/cluster/Envelope.ts +3 -3
  792. package/src/unstable/cluster/Reply.ts +15 -13
  793. package/src/unstable/cluster/RunnerHealth.ts +2 -1
  794. package/src/unstable/cluster/RunnerServer.ts +2 -2
  795. package/src/unstable/cluster/Runners.ts +3 -3
  796. package/src/unstable/cluster/ShardId.ts +3 -3
  797. package/src/unstable/cluster/Sharding.ts +3 -3
  798. package/src/unstable/cluster/ShardingConfig.ts +4 -4
  799. package/src/unstable/cluster/Snowflake.ts +3 -3
  800. package/src/unstable/cluster/internal/entityManager.ts +2 -2
  801. package/src/unstable/devtools/DevToolsSchema.ts +1 -1
  802. package/src/unstable/encoding/Msgpack.ts +6 -6
  803. package/src/unstable/encoding/Ndjson.ts +5 -0
  804. package/src/unstable/encoding/Sse.ts +2 -2
  805. package/src/unstable/eventlog/EventGroup.ts +2 -1
  806. package/src/unstable/eventlog/EventJournal.ts +10 -0
  807. package/src/unstable/eventlog/EventLog.ts +3 -3
  808. package/src/unstable/eventlog/EventLogServerEncrypted.ts +2 -3
  809. package/src/unstable/eventlog/EventLogServerUnencrypted.ts +5 -7
  810. package/src/unstable/eventlog/EventLogSessionAuth.ts +4 -4
  811. package/src/unstable/http/Cookies.ts +4 -4
  812. package/src/unstable/http/Etag.ts +2 -3
  813. package/src/unstable/http/Headers.ts +2 -2
  814. package/src/unstable/http/HttpBody.ts +2 -2
  815. package/src/unstable/http/HttpClient.ts +2 -2
  816. package/src/unstable/http/HttpClientError.ts +1 -1
  817. package/src/unstable/http/HttpClientRequest.ts +30 -3
  818. package/src/unstable/http/HttpRouter.ts +1 -1
  819. package/src/unstable/http/HttpServerResponse.ts +25 -20
  820. package/src/unstable/http/Multipart.ts +3 -3
  821. package/src/unstable/http/UrlParams.ts +36 -6
  822. package/src/unstable/httpapi/HttpApi.ts +5 -4
  823. package/src/unstable/httpapi/HttpApiBuilder.ts +14 -13
  824. package/src/unstable/httpapi/HttpApiClient.ts +16 -16
  825. package/src/unstable/httpapi/HttpApiMiddleware.ts +3 -3
  826. package/src/unstable/httpapi/HttpApiScalar.ts +14 -7
  827. package/src/unstable/httpapi/HttpApiSchema.ts +15 -15
  828. package/src/unstable/httpapi/OpenApi.ts +18 -18
  829. package/src/unstable/observability/OtlpResource.ts +5 -0
  830. package/src/unstable/observability/PrometheusMetrics.ts +4 -2
  831. package/src/unstable/persistence/Persistable.ts +1 -1
  832. package/src/unstable/persistence/PersistedQueue.ts +1 -1
  833. package/src/unstable/persistence/Persistence.ts +1 -1
  834. package/src/unstable/persistence/RateLimiter.ts +1 -1
  835. package/src/unstable/persistence/Redis.ts +1 -1
  836. package/src/unstable/reactivity/AsyncResult.ts +1 -1
  837. package/src/unstable/reactivity/Atom.ts +3 -3
  838. package/src/unstable/rpc/Rpc.ts +3 -3
  839. package/src/unstable/rpc/RpcClient.ts +1 -1
  840. package/src/unstable/rpc/RpcClientError.ts +1 -1
  841. package/src/unstable/rpc/RpcMessage.ts +3 -3
  842. package/src/unstable/rpc/RpcSchema.ts +2 -2
  843. package/src/unstable/rpc/RpcSerialization.ts +2 -2
  844. package/src/unstable/schema/Model.ts +5 -5
  845. package/src/unstable/schema/VariantSchema.ts +2 -2
  846. package/src/unstable/socket/Socket.ts +3 -3
  847. package/src/unstable/sql/SqlError.ts +1 -1
  848. package/src/unstable/sql/SqlSchema.ts +4 -4
  849. package/src/unstable/workers/Transferable.ts +6 -6
  850. package/src/unstable/workers/WorkerError.ts +4 -4
  851. package/src/unstable/workflow/Activity.ts +1 -1
  852. package/src/unstable/workflow/DurableDeferred.ts +8 -8
  853. package/src/unstable/workflow/DurableQueue.ts +1 -2
  854. package/src/unstable/workflow/Workflow.ts +161 -116
  855. package/src/unstable/workflow/WorkflowEngine.ts +16 -8
  856. package/src/unstable/workflow/WorkflowProxy.ts +9 -11
  857. package/src/unstable/workflow/WorkflowProxyServer.ts +7 -7
@@ -89,12 +89,13 @@ import * as BigDecimal from "./BigDecimal.ts"
89
89
  import * as DateTime from "./DateTime.ts"
90
90
  import * as Duration from "./Duration.ts"
91
91
  import * as Effect from "./Effect.ts"
92
- import { formatDate } from "./Formatter.ts"
92
+ import { format, formatDate, formatJson } from "./Formatter.ts"
93
93
  import * as Option from "./Option.ts"
94
94
  import * as Predicate from "./Predicate.ts"
95
- import type * as AST from "./SchemaAST.ts"
96
- import * as Getter from "./SchemaGetter.ts"
97
- import * as Issue from "./SchemaIssue.ts"
95
+ import type { ErrorOptions, Json } from "./Schema.ts"
96
+ import type * as SchemaAST from "./SchemaAST.ts"
97
+ import * as SchemaGetter from "./SchemaGetter.ts"
98
+ import * as SchemaIssue from "./SchemaIssue.ts"
98
99
 
99
100
  /**
100
101
  * Middleware that wraps the entire parsing `Effect` pipeline for both
@@ -102,9 +103,9 @@ import * as Issue from "./SchemaIssue.ts"
102
103
  *
103
104
  * **When to use**
104
105
  *
105
- * Use when you need to catch or recover from parsing errors (e.g. `Schema.catchDecoding`).
106
- * - You need to run side effects around the parsing pipeline.
107
- * - You need access to the full `Effect` rather than a single decoded value.
106
+ * Use when you need a schema middleware to catch or recover from parsing
107
+ * errors (e.g. `Schema.catchDecoding`), run side effects around the parsing
108
+ * pipeline, or access the full `Effect` rather than a single decoded value.
108
109
  *
109
110
  * **Details**
110
111
  *
@@ -141,23 +142,23 @@ import * as Issue from "./SchemaIssue.ts"
141
142
  export class Middleware<in out T, in out E, RDE, RDT, RET, REE> {
142
143
  readonly _tag = "Middleware"
143
144
  readonly decode: (
144
- effect: Effect.Effect<Option.Option<E>, Issue.Issue, RDE>,
145
- options: AST.ParseOptions
146
- ) => Effect.Effect<Option.Option<T>, Issue.Issue, RDT>
145
+ effect: Effect.Effect<Option.Option<E>, SchemaIssue.Issue, RDE>,
146
+ options: SchemaAST.ParseOptions
147
+ ) => Effect.Effect<Option.Option<T>, SchemaIssue.Issue, RDT>
147
148
  readonly encode: (
148
- effect: Effect.Effect<Option.Option<T>, Issue.Issue, RET>,
149
- options: AST.ParseOptions
150
- ) => Effect.Effect<Option.Option<E>, Issue.Issue, REE>
149
+ effect: Effect.Effect<Option.Option<T>, SchemaIssue.Issue, RET>,
150
+ options: SchemaAST.ParseOptions
151
+ ) => Effect.Effect<Option.Option<E>, SchemaIssue.Issue, REE>
151
152
 
152
153
  constructor(
153
154
  decode: (
154
- effect: Effect.Effect<Option.Option<E>, Issue.Issue, RDE>,
155
- options: AST.ParseOptions
156
- ) => Effect.Effect<Option.Option<T>, Issue.Issue, RDT>,
155
+ effect: Effect.Effect<Option.Option<E>, SchemaIssue.Issue, RDE>,
156
+ options: SchemaAST.ParseOptions
157
+ ) => Effect.Effect<Option.Option<T>, SchemaIssue.Issue, RDT>,
157
158
  encode: (
158
- effect: Effect.Effect<Option.Option<T>, Issue.Issue, RET>,
159
- options: AST.ParseOptions
160
- ) => Effect.Effect<Option.Option<E>, Issue.Issue, REE>
159
+ effect: Effect.Effect<Option.Option<T>, SchemaIssue.Issue, RET>,
160
+ options: SchemaAST.ParseOptions
161
+ ) => Effect.Effect<Option.Option<E>, SchemaIssue.Issue, REE>
161
162
  ) {
162
163
  this.decode = decode
163
164
  this.encode = encode
@@ -175,7 +176,8 @@ const TypeId = "~effect/SchemaTransformation/Transformation"
175
176
  *
176
177
  * **When to use**
177
178
  *
178
- * Use when you need to define how a schema converts between two representations.
179
+ * Use when you need a schema transformation that defines how a schema converts
180
+ * between two representations.
179
181
  * - You want to compose multiple transformations into a pipeline.
180
182
  * - You want to flip a transformation to swap decode/encode.
181
183
  *
@@ -213,12 +215,12 @@ const TypeId = "~effect/SchemaTransformation/Transformation"
213
215
  export class Transformation<in out T, in out E, RD = never, RE = never> {
214
216
  readonly [TypeId] = TypeId
215
217
  readonly _tag = "Transformation"
216
- readonly decode: Getter.Getter<T, E, RD>
217
- readonly encode: Getter.Getter<E, T, RE>
218
+ readonly decode: SchemaGetter.Getter<T, E, RD>
219
+ readonly encode: SchemaGetter.Getter<E, T, RE>
218
220
 
219
221
  constructor(
220
- decode: Getter.Getter<T, E, RD>,
221
- encode: Getter.Getter<E, T, RE>
222
+ decode: SchemaGetter.Getter<T, E, RD>,
223
+ encode: SchemaGetter.Getter<E, T, RE>
222
224
  ) {
223
225
  this.decode = decode
224
226
  this.encode = encode
@@ -239,7 +241,8 @@ export class Transformation<in out T, in out E, RD = never, RE = never> {
239
241
  *
240
242
  * **When to use**
241
243
  *
242
- * Use to check whether a value is already a Transformation before wrapping it.
244
+ * Use to check whether a value is already a schema transformation before
245
+ * wrapping it.
243
246
  *
244
247
  * **Details**
245
248
  *
@@ -274,7 +277,8 @@ export function isTransformation(u: unknown): u is Transformation<any, any, unkn
274
277
  *
275
278
  * **When to use**
276
279
  *
277
- * Use when you already have `Getter` instances and want to pair them.
280
+ * Use when you already have schema getter instances and want to pair them into
281
+ * a schema transformation.
278
282
  * - You want idempotent wrapping (won't double-wrap).
279
283
  *
280
284
  * **Details**
@@ -300,8 +304,8 @@ export function isTransformation(u: unknown): u is Transformation<any, any, unkn
300
304
  * @since 3.10.0
301
305
  */
302
306
  export const make = <T, E, RD = never, RE = never>(options: {
303
- readonly decode: Getter.Getter<T, E, RD>
304
- readonly encode: Getter.Getter<E, T, RE>
307
+ readonly decode: SchemaGetter.Getter<T, E, RD>
308
+ readonly encode: SchemaGetter.Getter<E, T, RE>
305
309
  }): Transformation<T, E, RD, RE> => {
306
310
  if (isTransformation(options)) {
307
311
  return options as any
@@ -315,8 +319,8 @@ export const make = <T, E, RD = never, RE = never>(options: {
315
319
  *
316
320
  * **When to use**
317
321
  *
318
- * Use when the transformation can fail (e.g. parsing, validation).
319
- * - The transformation requires Effect services.
322
+ * Use when you need a schema transformation that may fail or require Effect
323
+ * services.
320
324
  *
321
325
  * **Details**
322
326
  *
@@ -353,12 +357,12 @@ export const make = <T, E, RD = never, RE = never>(options: {
353
357
  * @since 3.10.0
354
358
  */
355
359
  export function transformOrFail<T, E, RD = never, RE = never>(options: {
356
- readonly decode: (e: E, options: AST.ParseOptions) => Effect.Effect<T, Issue.Issue, RD>
357
- readonly encode: (t: T, options: AST.ParseOptions) => Effect.Effect<E, Issue.Issue, RE>
360
+ readonly decode: (e: E, options: SchemaAST.ParseOptions) => Effect.Effect<T, SchemaIssue.Issue, RD>
361
+ readonly encode: (t: T, options: SchemaAST.ParseOptions) => Effect.Effect<E, SchemaIssue.Issue, RE>
358
362
  }): Transformation<T, E, RD, RE> {
359
363
  return new Transformation(
360
- Getter.transformOrFail(options.decode),
361
- Getter.transformOrFail(options.encode)
364
+ SchemaGetter.transformOrFail(options.decode),
365
+ SchemaGetter.transformOrFail(options.encode)
362
366
  )
363
367
  }
364
368
 
@@ -368,8 +372,8 @@ export function transformOrFail<T, E, RD = never, RE = never>(options: {
368
372
  *
369
373
  * **When to use**
370
374
  *
371
- * Use when the conversion cannot fail.
372
- * - No Effect services are needed.
375
+ * Use when you need an infallible schema transformation that does not require
376
+ * Effect services.
373
377
  *
374
378
  * **Details**
375
379
  *
@@ -405,8 +409,8 @@ export function transform<T, E>(options: {
405
409
  readonly encode: (input: T) => E
406
410
  }): Transformation<T, E> {
407
411
  return new Transformation(
408
- Getter.transform(options.decode),
409
- Getter.transform(options.encode)
412
+ SchemaGetter.transform(options.decode),
413
+ SchemaGetter.transform(options.encode)
410
414
  )
411
415
  }
412
416
 
@@ -416,7 +420,8 @@ export function transform<T, E>(options: {
416
420
  *
417
421
  * **When to use**
418
422
  *
419
- * Use when you need to produce or consume `Option.None` to represent absent keys.
423
+ * Use when you need a schema transformation to produce or consume `Option.None`
424
+ * for absent keys.
420
425
  * - You are working with optional struct fields.
421
426
  *
422
427
  * **Details**
@@ -456,8 +461,8 @@ export function transformOptional<T, E>(options: {
456
461
  readonly encode: (input: Option.Option<T>) => Option.Option<E>
457
462
  }): Transformation<T, E> {
458
463
  return new Transformation(
459
- Getter.transformOptional(options.decode),
460
- Getter.transformOptional(options.encode)
464
+ SchemaGetter.transformOptional(options.decode),
465
+ SchemaGetter.transformOptional(options.encode)
461
466
  )
462
467
  }
463
468
 
@@ -467,13 +472,14 @@ export function transformOptional<T, E>(options: {
467
472
  *
468
473
  * **When to use**
469
474
  *
470
- * Use to normalize user input by stripping leading/trailing whitespace.
475
+ * Use when you need a schema transformation to normalize user input by
476
+ * stripping leading/trailing whitespace.
471
477
  *
472
478
  * **Details**
473
479
  *
474
- * - Decode: applies `String.prototype.trim()`.
475
- * - Encode: passthrough (returns the string unchanged).
476
- * - Not round-trippable if the original had whitespace.
480
+ * Decoding applies `String.prototype.trim()`. Encoding is passthrough and
481
+ * returns the string unchanged. This is not round-trippable if the original had
482
+ * whitespace.
477
483
  *
478
484
  * **Example** (Trimming on decode)
479
485
  *
@@ -494,8 +500,8 @@ export function transformOptional<T, E>(options: {
494
500
  */
495
501
  export function trim(): Transformation<string, string> {
496
502
  return new Transformation(
497
- Getter.trim(),
498
- Getter.passthrough()
503
+ SchemaGetter.trim(),
504
+ SchemaGetter.passthrough()
499
505
  )
500
506
  }
501
507
 
@@ -505,13 +511,14 @@ export function trim(): Transformation<string, string> {
505
511
  *
506
512
  * **When to use**
507
513
  *
508
- * Use to convert API field names between snake_case and camelCase conventions.
514
+ * Use when you need a schema transformation to convert API field names between
515
+ * snake_case and camelCase conventions.
509
516
  *
510
517
  * **Details**
511
518
  *
512
- * - Decode: `"my_field_name"` `"myFieldName"`.
513
- * - Encode: `"myFieldName"` `"my_field_name"`.
514
- * - Round-trippable for standard snake_case/camelCase.
519
+ * Decoding converts values such as `"my_field_name"` to `"myFieldName"`.
520
+ * Encoding converts values such as `"myFieldName"` back to `"my_field_name"`.
521
+ * The transformation is round-trippable for standard snake_case and camelCase.
515
522
  *
516
523
  * **Example** (Snake to camel conversion)
517
524
  *
@@ -531,8 +538,8 @@ export function trim(): Transformation<string, string> {
531
538
  */
532
539
  export function snakeToCamel(): Transformation<string, string> {
533
540
  return new Transformation(
534
- Getter.snakeToCamel(),
535
- Getter.camelToSnake()
541
+ SchemaGetter.snakeToCamel(),
542
+ SchemaGetter.camelToSnake()
536
543
  )
537
544
  }
538
545
 
@@ -542,13 +549,13 @@ export function snakeToCamel(): Transformation<string, string> {
542
549
  *
543
550
  * **When to use**
544
551
  *
545
- * Use to normalize strings to lowercase (e.g. email addresses).
552
+ * Use when you need a schema transformation to normalize strings to lowercase
553
+ * (e.g. email addresses).
546
554
  *
547
555
  * **Details**
548
556
  *
549
- * - Decode: applies `String.prototype.toLowerCase()`.
550
- * - Encode: passthrough.
551
- * - Not round-trippable if the original had uppercase characters.
557
+ * Decoding applies `String.prototype.toLowerCase()`. Encoding is passthrough.
558
+ * This is not round-trippable if the original had uppercase characters.
552
559
  *
553
560
  * **Example** (Lowercasing on decode)
554
561
  *
@@ -568,8 +575,8 @@ export function snakeToCamel(): Transformation<string, string> {
568
575
  */
569
576
  export function toLowerCase(): Transformation<string, string> {
570
577
  return new Transformation(
571
- Getter.toLowerCase(),
572
- Getter.passthrough()
578
+ SchemaGetter.toLowerCase(),
579
+ SchemaGetter.passthrough()
573
580
  )
574
581
  }
575
582
 
@@ -579,13 +586,13 @@ export function toLowerCase(): Transformation<string, string> {
579
586
  *
580
587
  * **When to use**
581
588
  *
582
- * Use to normalize strings to uppercase (e.g. country codes).
589
+ * Use when you need a schema transformation to normalize strings to uppercase
590
+ * (e.g. country codes).
583
591
  *
584
592
  * **Details**
585
593
  *
586
- * - Decode: applies `String.prototype.toUpperCase()`.
587
- * - Encode: passthrough.
588
- * - Not round-trippable if the original had lowercase characters.
594
+ * Decoding applies `String.prototype.toUpperCase()`. Encoding is passthrough.
595
+ * This is not round-trippable if the original had lowercase characters.
589
596
  *
590
597
  * **Example** (Uppercasing on decode)
591
598
  *
@@ -605,8 +612,8 @@ export function toLowerCase(): Transformation<string, string> {
605
612
  */
606
613
  export function toUpperCase(): Transformation<string, string> {
607
614
  return new Transformation(
608
- Getter.toUpperCase(),
609
- Getter.passthrough()
615
+ SchemaGetter.toUpperCase(),
616
+ SchemaGetter.passthrough()
610
617
  )
611
618
  }
612
619
 
@@ -616,12 +623,13 @@ export function toUpperCase(): Transformation<string, string> {
616
623
  *
617
624
  * **When to use**
618
625
  *
619
- * Use to normalize display names or titles.
626
+ * Use when you need a schema transformation to normalize display names or
627
+ * titles.
620
628
  *
621
629
  * **Details**
622
630
  *
623
- * - Decode: uppercases the first character, leaves the rest unchanged.
624
- * - Encode: passthrough.
631
+ * Decoding uppercases the first character and leaves the rest unchanged.
632
+ * Encoding is passthrough.
625
633
  *
626
634
  * **Example** (Capitalizing on decode)
627
635
  *
@@ -641,8 +649,8 @@ export function toUpperCase(): Transformation<string, string> {
641
649
  */
642
650
  export function capitalize(): Transformation<string, string> {
643
651
  return new Transformation(
644
- Getter.capitalize(),
645
- Getter.passthrough()
652
+ SchemaGetter.capitalize(),
653
+ SchemaGetter.passthrough()
646
654
  )
647
655
  }
648
656
 
@@ -652,12 +660,13 @@ export function capitalize(): Transformation<string, string> {
652
660
  *
653
661
  * **When to use**
654
662
  *
655
- * Use to normalize identifiers or field names.
663
+ * Use when you need a schema transformation to normalize identifiers or field
664
+ * names.
656
665
  *
657
666
  * **Details**
658
667
  *
659
- * - Decode: lowercases the first character, leaves the rest unchanged.
660
- * - Encode: passthrough.
668
+ * Decoding lowercases the first character and leaves the rest unchanged.
669
+ * Encoding is passthrough.
661
670
  *
662
671
  * **Example** (Uncapitalizing on decode)
663
672
  *
@@ -677,8 +686,8 @@ export function capitalize(): Transformation<string, string> {
677
686
  */
678
687
  export function uncapitalize(): Transformation<string, string> {
679
688
  return new Transformation(
680
- Getter.uncapitalize(),
681
- Getter.passthrough()
689
+ SchemaGetter.uncapitalize(),
690
+ SchemaGetter.passthrough()
682
691
  )
683
692
  }
684
693
 
@@ -688,14 +697,15 @@ export function uncapitalize(): Transformation<string, string> {
688
697
  *
689
698
  * **When to use**
690
699
  *
691
- * Use to parse query-string-like or config-file-like strings into records.
700
+ * Use when you need a schema transformation to parse query-string-like or
701
+ * config-file-like strings into records.
692
702
  *
693
703
  * **Details**
694
704
  *
695
- * - Decode: splits the string by `separator` (default `","`) into pairs,
696
- * then splits each pair by `keyValueSeparator` (default `"="`).
697
- * - Encode: joins the record back into a string using the same separators.
698
- * - Round-trippable when keys and values don't contain the separators.
705
+ * Decoding splits the string by `separator` (default `","`) into pairs, then
706
+ * splits each pair by `keyValueSeparator` (default `"="`). Encoding joins the
707
+ * record back into a string using the same separators. The transformation is
708
+ * round-trippable when keys and values do not contain the separators.
699
709
  *
700
710
  * **Example** (Parsing key-value pairs)
701
711
  *
@@ -722,14 +732,14 @@ export function splitKeyValue(options?: {
722
732
  readonly keyValueSeparator?: string | undefined
723
733
  }): Transformation<Record<string, string>, string> {
724
734
  return new Transformation(
725
- Getter.splitKeyValue(options),
726
- Getter.joinKeyValue(options)
735
+ SchemaGetter.splitKeyValue(options),
736
+ SchemaGetter.joinKeyValue(options)
727
737
  )
728
738
  }
729
739
 
730
740
  const passthrough_ = new Transformation(
731
- Getter.passthrough<any>(),
732
- Getter.passthrough<any>()
741
+ SchemaGetter.passthrough<any>(),
742
+ SchemaGetter.passthrough<any>()
733
743
  )
734
744
 
735
745
  /**
@@ -738,9 +748,8 @@ const passthrough_ = new Transformation(
738
748
  *
739
749
  * **When to use**
740
750
  *
741
- * Use when connecting two schemas that share the same type with no conversion.
742
- * - As a placeholder when `Schema.decodeTo` requires a transformation but
743
- * no actual conversion is needed.
751
+ * Use when you need a schema transformation to connect two schemas that share
752
+ * the same type with no actual conversion.
744
753
  *
745
754
  * **Details**
746
755
  *
@@ -778,7 +787,7 @@ export function passthrough<T>(): Transformation<T, T> {
778
787
  *
779
788
  * **When to use**
780
789
  *
781
- * Use when the runtime value is unchanged but the decoded side should be
790
+ * Use when you need a no-op schema transformation whose decoded side is
782
791
  * narrower than the encoded side.
783
792
  *
784
793
  * **Details**
@@ -811,7 +820,8 @@ export function passthroughSupertype<T>(): Transformation<T, T> {
811
820
  *
812
821
  * **When to use**
813
822
  *
814
- * Use when narrowing: the encoded side is more specific than the decoded side.
823
+ * Use when you need a no-op schema transformation whose encoded side is more
824
+ * specific than its decoded side.
815
825
  *
816
826
  * **Details**
817
827
  *
@@ -843,14 +853,15 @@ export function passthroughSubtype<T>(): Transformation<T, T> {
843
853
  *
844
854
  * **When to use**
845
855
  *
846
- * Use to parse numeric strings from APIs, form data, or URL parameters.
856
+ * Use when you need a schema transformation to parse numeric strings from APIs,
857
+ * form data, or URL parameters.
847
858
  *
848
859
  * **Details**
849
860
  *
850
- * - Decode: coerces the string to a number (like `Number(s)`).
851
- * - Encode: coerces the number to a string (like `String(n)`).
852
- * - Does not validate that the result is finite — combine with
853
- * `Schema.Finite` or `Schema.Int` for stricter checks.
861
+ * Decoding coerces the string to a number like `Number(s)`. Encoding coerces
862
+ * the number to a string like `String(n)`. This does not validate that the
863
+ * result is finite; combine with `Schema.Finite` or `Schema.Int` for stricter
864
+ * checks.
854
865
  *
855
866
  * **Example** (Number from string)
856
867
  *
@@ -869,8 +880,8 @@ export function passthroughSubtype<T>(): Transformation<T, T> {
869
880
  * @since 4.0.0
870
881
  */
871
882
  export const numberFromString = new Transformation(
872
- Getter.Number(),
873
- Getter.String()
883
+ SchemaGetter.Number(),
884
+ SchemaGetter.String()
874
885
  )
875
886
 
876
887
  /**
@@ -879,13 +890,14 @@ export const numberFromString = new Transformation(
879
890
  *
880
891
  * **When to use**
881
892
  *
882
- * Use to parse large integer strings (e.g. database IDs, blockchain values).
893
+ * Use when you need a schema transformation to parse large integer strings
894
+ * (e.g. database IDs, blockchain values).
883
895
  *
884
896
  * **Details**
885
897
  *
886
- * - Decode: coerces the string to a bigint (like `BigInt(s)`).
887
- * - Encode: coerces the bigint to a string (like `String(n)`).
888
- * - Fails on decode if the string is not a valid bigint representation.
898
+ * Decoding coerces the string to a bigint like `BigInt(s)`. Encoding coerces
899
+ * the bigint to a string like `String(n)`. Decoding fails if the string is not
900
+ * a valid bigint representation.
889
901
  *
890
902
  * **Example** (BigInt from string)
891
903
  *
@@ -904,8 +916,8 @@ export const numberFromString = new Transformation(
904
916
  * @since 4.0.0
905
917
  */
906
918
  export const bigintFromString = new Transformation(
907
- Getter.BigInt(),
908
- Getter.String()
919
+ SchemaGetter.BigInt(),
920
+ SchemaGetter.String()
909
921
  )
910
922
 
911
923
  /**
@@ -913,13 +925,14 @@ export const bigintFromString = new Transformation(
913
925
  *
914
926
  * **When to use**
915
927
  *
916
- * Use to parse ISO 8601 date strings from APIs or user input.
928
+ * Use when you need a schema transformation to parse ISO 8601 date strings from
929
+ * APIs or user input.
917
930
  *
918
931
  * **Details**
919
932
  *
920
- * - Decode: creates a `Date` from the string (like `new Date(s)`).
921
- * - Encode: converts the `Date` to an ISO string (like `date.toISOString()`),
922
- * returning `"Invalid Date"` for invalid dates.
933
+ * Decoding creates a `Date` from the string like `new Date(s)`. Encoding
934
+ * converts the `Date` to an ISO string like `date.toISOString()`, returning
935
+ * `"Invalid Date"` for invalid dates.
923
936
  *
924
937
  * **Example** (Date from string)
925
938
  *
@@ -938,8 +951,8 @@ export const bigintFromString = new Transformation(
938
951
  * @since 4.0.0
939
952
  */
940
953
  export const dateFromString: Transformation<globalThis.Date, string> = new Transformation(
941
- Getter.Date(),
942
- Getter.transform(formatDate)
954
+ SchemaGetter.Date(),
955
+ SchemaGetter.transform(formatDate)
943
956
  )
944
957
 
945
958
  /**
@@ -948,14 +961,15 @@ export const dateFromString: Transformation<globalThis.Date, string> = new Trans
948
961
  *
949
962
  * **When to use**
950
963
  *
951
- * Use to parse human-readable duration strings from APIs, config, or user input.
964
+ * Use when you need a schema transformation to parse human-readable duration
965
+ * strings from APIs, config, or user input.
952
966
  *
953
967
  * **Details**
954
968
  *
955
- * - Decode: accepts any string that `Duration.fromInput` can parse, including
956
- * `"Infinity"` and `"-Infinity"`.
957
- * - Encode: returns `String(duration)`, producing strings like `"2000 millis"`
958
- * or `"10 nanos"` that round-trip through the parser.
969
+ * Decoding accepts any string that `Duration.fromInput` can parse, including
970
+ * `"Infinity"` and `"-Infinity"`. Encoding returns `String(duration)`,
971
+ * producing strings such as `"2000 millis"` or `"10 nanos"` that round-trip
972
+ * through the parser.
959
973
  *
960
974
  * **Example** (Duration from string)
961
975
  *
@@ -979,7 +993,8 @@ export const durationFromString: Transformation<Duration.Duration, string> = tra
979
993
  >({
980
994
  decode: (s) =>
981
995
  Option.match(Duration.fromInput(s as Duration.Input), {
982
- onNone: () => Effect.fail(new Issue.InvalidValue(Option.some(s), { message: `Invalid Duration string: ${s}` })),
996
+ onNone: () =>
997
+ Effect.fail(new SchemaIssue.InvalidValue(Option.some(s), { message: `Invalid Duration string: ${s}` })),
983
998
  onSome: Effect.succeed
984
999
  }),
985
1000
  encode: (duration) => Effect.succeed(globalThis.String(duration))
@@ -991,13 +1006,14 @@ export const durationFromString: Transformation<Duration.Duration, string> = tra
991
1006
  *
992
1007
  * **When to use**
993
1008
  *
994
- * Use when working with nanosecond-precision timestamps or intervals.
1009
+ * Use when you need a schema transformation for nanosecond-precision timestamps
1010
+ * or intervals.
995
1011
  *
996
1012
  * **Details**
997
1013
  *
998
- * - Decode: always succeeds, creating a Duration from nanoseconds.
999
- * - Encode: fails with `InvalidValue` if the Duration cannot be represented
1000
- * as a `bigint` (e.g. `Duration.infinity`).
1014
+ * Decoding always succeeds and creates a `Duration` from nanoseconds. Encoding
1015
+ * fails with `InvalidValue` if the `Duration` cannot be represented as a
1016
+ * `bigint`, such as `Duration.infinity`.
1001
1017
  *
1002
1018
  * **Example** (Duration from nanoseconds)
1003
1019
  *
@@ -1020,7 +1036,7 @@ export const durationFromNanos: Transformation<Duration.Duration, bigint> = tran
1020
1036
  Option.match(Duration.toNanos(a), {
1021
1037
  onNone: () =>
1022
1038
  Effect.fail(
1023
- new Issue.InvalidValue(Option.some(a), { message: `Unable to encode ${a} into a bigint` })
1039
+ new SchemaIssue.InvalidValue(Option.some(a), { message: `Unable to encode ${a} into a bigint` })
1024
1040
  ),
1025
1041
  onSome: (nanos) => Effect.succeed(nanos)
1026
1042
  })
@@ -1032,8 +1048,8 @@ export const durationFromNanos: Transformation<Duration.Duration, bigint> = tran
1032
1048
  *
1033
1049
  * **When to use**
1034
1050
  *
1035
- * Use when you use this for timeouts, delays, elapsed intervals, or other duration values
1036
- * stored as millisecond counts.
1051
+ * Use when you need a schema transformation to decode timeouts, delays, elapsed
1052
+ * intervals, or other duration values stored as millisecond counts.
1037
1053
  *
1038
1054
  * **Details**
1039
1055
  *
@@ -1060,35 +1076,84 @@ export const durationFromMillis: Transformation<Duration.Duration, number> = tra
1060
1076
  encode: (a) => Duration.toMillis(a)
1061
1077
  })
1062
1078
 
1063
- /** @internal */
1064
- export const errorFromErrorJsonEncoded = (options?: {
1065
- readonly includeStack?: boolean | undefined
1066
- }): Transformation<Error, {
1079
+ type JsonError = {
1067
1080
  message: string
1068
1081
  name?: string
1069
1082
  stack?: string
1070
- }> =>
1071
- transform({
1072
- decode: (i) => {
1073
- const err = new Error(i.message)
1074
- if (typeof i.name === "string" && i.name !== "Error") err.name = i.name
1075
- if (typeof i.stack === "string") err.stack = i.stack
1076
- return err
1077
- },
1078
- encode: (a) => {
1079
- const e: {
1080
- message: string
1081
- name?: string
1082
- stack?: string
1083
- } = {
1084
- name: a.name,
1085
- message: a.message
1086
- }
1087
- if (options?.includeStack && typeof a.stack === "string") {
1088
- e.stack = a.stack
1083
+ cause?: Json
1084
+ }
1085
+
1086
+ const isJsonError = (input: unknown): input is JsonError =>
1087
+ Predicate.isObject(input) && typeof input["message"] === "string"
1088
+
1089
+ const decodeJsonError = (input: JsonError): Error => {
1090
+ const hasCause = Object.hasOwn(input, "cause")
1091
+ const err = hasCause
1092
+ ? new Error(input.message, { cause: decodeDefect(input.cause as Json) })
1093
+ : new Error(input.message)
1094
+ if (typeof input.name === "string" && input.name !== "Error") err.name = input.name
1095
+ if (typeof input.stack === "string") err.stack = input.stack
1096
+ return err
1097
+ }
1098
+
1099
+ const encodeUnknownAsJson = (input: unknown): Json => {
1100
+ try {
1101
+ const json = formatJson(input)
1102
+ return json === undefined ? format(input) : JSON.parse(json)
1103
+ } catch {
1104
+ return format(input)
1105
+ }
1106
+ }
1107
+
1108
+ const encodeJsonError = (
1109
+ input: Error,
1110
+ options: ErrorOptions | undefined,
1111
+ encodeDefect: (input: unknown) => Json
1112
+ ): JsonError => {
1113
+ const encoded: JsonError = {
1114
+ name: input.name,
1115
+ message: input.message
1116
+ }
1117
+ if (options?.includeStack && typeof input.stack === "string") {
1118
+ encoded.stack = input.stack
1119
+ }
1120
+ if (!options?.excludeCause && input.cause !== undefined) {
1121
+ encoded.cause = encodeDefect(input.cause)
1122
+ }
1123
+ return encoded
1124
+ }
1125
+
1126
+ const makeEncodeDefect = (options?: ErrorOptions): (input: unknown) => Json => {
1127
+ const seen = new WeakSet<object>()
1128
+ const encode = (input: unknown): Json => {
1129
+ if (Predicate.isError(input)) {
1130
+ if (seen.has(input)) {
1131
+ return "[Circular]"
1089
1132
  }
1090
- return e
1133
+ seen.add(input)
1134
+ const encoded = encodeJsonError(input, options, encode)
1135
+ seen.delete(input)
1136
+ return encoded
1091
1137
  }
1138
+ return encodeUnknownAsJson(input)
1139
+ }
1140
+ return encode
1141
+ }
1142
+
1143
+ const decodeDefect = (input: Json): unknown => isJsonError(input) ? decodeJsonError(input) : input
1144
+
1145
+ /** @internal */
1146
+ export const errorFromJsonError = (options?: ErrorOptions): Transformation<Error, JsonError> =>
1147
+ transform({
1148
+ decode: decodeJsonError,
1149
+ encode: (input) => makeEncodeDefect(options)(input) as JsonError
1150
+ })
1151
+
1152
+ /** @internal */
1153
+ export const defectFromJson = (options?: ErrorOptions) =>
1154
+ transform({
1155
+ decode: decodeDefect,
1156
+ encode: makeEncodeDefect(options)
1092
1157
  })
1093
1158
 
1094
1159
  /**
@@ -1097,13 +1162,14 @@ export const errorFromErrorJsonEncoded = (options?: {
1097
1162
  *
1098
1163
  * **When to use**
1099
1164
  *
1100
- * Use to convert nullable API fields to `Option`.
1165
+ * Use when you need a schema transformation to convert nullable API fields to
1166
+ * `Option`.
1101
1167
  *
1102
1168
  * **Details**
1103
1169
  *
1104
- * - Decode: `null` `Option.none()`, non-null `Option.some(value)`.
1105
- * - Encode: `Option.none()` `null`, `Option.some(value)` `value`.
1106
- * - Pure and synchronous.
1170
+ * Decoding maps `null` to `Option.none()` and non-null values to
1171
+ * `Option.some(value)`. Encoding maps `Option.none()` to `null` and
1172
+ * `Option.some(value)` to `value`. The transformation is pure and synchronous.
1107
1173
  *
1108
1174
  * **Example** (Option from nullable)
1109
1175
  *
@@ -1136,13 +1202,14 @@ export function optionFromNullOr<T>(): Transformation<Option.Option<T>, T | null
1136
1202
  *
1137
1203
  * **When to use**
1138
1204
  *
1139
- * Use to convert undefined-or API fields to `Option`.
1205
+ * Use when you need a schema transformation to convert API fields that use
1206
+ * `undefined` for absence to `Option`.
1140
1207
  *
1141
1208
  * **Details**
1142
1209
  *
1143
- * - Decode: `undefined` `Option.none()`, non-undefined `Option.some(value)`.
1144
- * - Encode: `Option.none()` `undefined`, `Option.some(value)` `value`.
1145
- * - Pure and synchronous.
1210
+ * Decoding maps `undefined` to `Option.none()` and non-undefined values to
1211
+ * `Option.some(value)`. Encoding maps `Option.none()` to `undefined` and
1212
+ * `Option.some(value)` to `value`. The transformation is pure and synchronous.
1146
1213
  *
1147
1214
  * **Example** (Option from undefined-or)
1148
1215
  *
@@ -1177,15 +1244,15 @@ export function optionFromUndefinedOr<T>(): Transformation<Option.Option<T>, T |
1177
1244
  *
1178
1245
  * **When to use**
1179
1246
  *
1180
- * Use to convert nullish API fields to `Option` when both `null` and
1181
- * `undefined` represent absence.
1247
+ * Use when you need a schema transformation to convert nullish API fields to
1248
+ * `Option` when both `null` and `undefined` represent absence.
1182
1249
  *
1183
1250
  * **Details**
1184
1251
  *
1185
- * - Decode: `null` or `undefined` `Option.none()`, otherwise `Option.some(value)`.
1186
- * - Encode: `Option.none()` `null` or `undefined` (per `options.onNoneEncoding`),
1187
- * `Option.some(value)` `value`.
1188
- * - Pure and synchronous.
1252
+ * Decoding maps `null` and `undefined` to `Option.none()` and all other values
1253
+ * to `Option.some(value)`. Encoding maps `Option.none()` to `null` or
1254
+ * `undefined` according to `options.onNoneEncoding`, and maps
1255
+ * `Option.some(value)` to `value`. The transformation is pure and synchronous.
1189
1256
  *
1190
1257
  * **Example** (Option from nullish, encoding None as null)
1191
1258
  *
@@ -1223,14 +1290,15 @@ export function optionFromNullishOr<T>(
1223
1290
  *
1224
1291
  * **When to use**
1225
1292
  *
1226
- * Use to convert optional struct keys (declared with `Schema.optionalKey`) to
1227
- * `Option` values.
1293
+ * Use when you need a schema transformation to convert optional struct keys
1294
+ * (declared with `Schema.optionalKey`) to `Option` values.
1228
1295
  *
1229
1296
  * **Details**
1230
1297
  *
1231
- * - Decode: absent key (`None`) `Some(None)`, present key (`Some(v)`) → `Some(Some(v))`.
1232
- * - Encode: `Some(None)` `None` (omit key), `Some(Some(v))` `Some(v)`.
1233
- * - Uses `transformOptional` under the hood.
1298
+ * Decoding maps an absent key (`None`) to `Some(None)` and a present key
1299
+ * (`Some(v)`) to `Some(Some(v))`. Encoding maps `Some(None)` to `None` to omit
1300
+ * the key, and maps `Some(Some(v))` to `Some(v)`. This uses
1301
+ * `transformOptional` under the hood.
1234
1302
  *
1235
1303
  * **Example** (Optional key to Option)
1236
1304
  *
@@ -1267,13 +1335,15 @@ export function optionFromOptionalKey<T>(): Transformation<Option.Option<T>, T>
1267
1335
  *
1268
1336
  * **When to use**
1269
1337
  *
1270
- * Use to convert optional (possibly `undefined`) values to `Option`.
1338
+ * Use when you need a schema transformation to convert optional (possibly
1339
+ * `undefined`) values to `Option`.
1271
1340
  *
1272
1341
  * **Details**
1273
1342
  *
1274
- * - Decode: absent or `undefined` `Some(None)`, present `Some(Some(v))`.
1275
- * - Encode: `Some(None)` `None` (omit), `Some(Some(v))` `Some(v)`.
1276
- * - Uses `transformOptional` under the hood; filters out `undefined` on decode.
1343
+ * Decoding maps an absent or `undefined` value to `Some(None)` and a present
1344
+ * value to `Some(Some(v))`. Encoding maps `Some(None)` to `None` to omit the
1345
+ * value, and maps `Some(Some(v))` to `Some(v)`. This uses
1346
+ * `transformOptional` under the hood and filters out `undefined` on decode.
1277
1347
  *
1278
1348
  * **Example** (Optional value to Option)
1279
1349
  *
@@ -1310,13 +1380,13 @@ export function optionFromOptional<T>(): Transformation<Option.Option<T>, T | un
1310
1380
  *
1311
1381
  * **When to use**
1312
1382
  *
1313
- * Use to parse URL strings from user input or API responses.
1383
+ * Use when you need a schema transformation to parse URL strings from user
1384
+ * input or API responses.
1314
1385
  *
1315
1386
  * **Details**
1316
1387
  *
1317
- * - Decode: calls `new URL(s)`. Fails with `InvalidValue` if the string
1318
- * is not a valid URL.
1319
- * - Encode: returns `url.href`.
1388
+ * Decoding calls `new URL(s)` and fails with `InvalidValue` if the string is
1389
+ * not a valid URL. Encoding returns `url.href`.
1320
1390
  *
1321
1391
  * **Example** (URL from string)
1322
1392
  *
@@ -1338,7 +1408,7 @@ export const urlFromString: Transformation<URL, string> = transformOrFail<URL, s
1338
1408
  decode: (s) =>
1339
1409
  Effect.try({
1340
1410
  try: () => new URL(s),
1341
- catch: () => new Issue.InvalidValue(Option.some(s), { message: `Invalid URL string: ${s}` })
1411
+ catch: () => new SchemaIssue.InvalidValue(Option.some(s), { message: `Invalid URL string: ${s}` })
1342
1412
  }),
1343
1413
  encode: (url) => Effect.succeed(url.href)
1344
1414
  })
@@ -1349,13 +1419,14 @@ export const urlFromString: Transformation<URL, string> = transformOrFail<URL, s
1349
1419
  *
1350
1420
  * **When to use**
1351
1421
  *
1352
- * Use to parse decimal number strings from APIs or user input.
1422
+ * Use when you need a schema transformation to parse decimal number strings
1423
+ * from APIs or user input.
1353
1424
  *
1354
1425
  * **Details**
1355
1426
  *
1356
- * - Decode: calls `BigDecimal.fromString(s)`. Fails with `InvalidValue` if the
1357
- * string is not a valid BigDecimal representation.
1358
- * - Encode: returns `BigDecimal.format(bd)`.
1427
+ * Decoding calls `BigDecimal.fromString(s)` and fails with `InvalidValue` if
1428
+ * the string is not a valid `BigDecimal` representation. Encoding returns
1429
+ * `BigDecimal.format(bd)`.
1359
1430
  *
1360
1431
  * @category transforming
1361
1432
  * @since 4.0.0
@@ -1367,7 +1438,7 @@ export const bigDecimalFromString: Transformation<BigDecimal.BigDecimal, string>
1367
1438
  decode: (s) => {
1368
1439
  const result = BigDecimal.fromString(s)
1369
1440
  return Option.isNone(result)
1370
- ? Effect.fail(new Issue.InvalidValue(Option.some(s), { message: `Invalid BigDecimal string: ${s}` }))
1441
+ ? Effect.fail(new SchemaIssue.InvalidValue(Option.some(s), { message: `Invalid BigDecimal string: ${s}` }))
1371
1442
  : Effect.succeed(result.value)
1372
1443
  },
1373
1444
  encode: (bd) => Effect.succeed(BigDecimal.format(bd))
@@ -1379,13 +1450,13 @@ export const bigDecimalFromString: Transformation<BigDecimal.BigDecimal, string>
1379
1450
  *
1380
1451
  * **When to use**
1381
1452
  *
1382
- * Use when handling binary data transmitted as Base64 strings (e.g. file uploads,
1383
- * API payloads).
1453
+ * Use when you need a schema transformation for binary data transmitted as
1454
+ * Base64 strings (e.g. file uploads, API payloads).
1384
1455
  *
1385
1456
  * **Details**
1386
1457
  *
1387
- * - Decode: parses the Base64 string into bytes.
1388
- * - Encode: encodes the byte array as a Base64 string.
1458
+ * Decoding parses the Base64 string into bytes. Encoding writes the byte array
1459
+ * as a Base64 string.
1389
1460
  *
1390
1461
  * **Example** (Uint8Array from Base64)
1391
1462
  *
@@ -1404,8 +1475,8 @@ export const bigDecimalFromString: Transformation<BigDecimal.BigDecimal, string>
1404
1475
  * @since 4.0.0
1405
1476
  */
1406
1477
  export const uint8ArrayFromBase64String: Transformation<Uint8Array<ArrayBufferLike>, string> = new Transformation(
1407
- Getter.decodeBase64(),
1408
- Getter.encodeBase64()
1478
+ SchemaGetter.decodeBase64(),
1479
+ SchemaGetter.encodeBase64()
1409
1480
  )
1410
1481
 
1411
1482
  /**
@@ -1414,12 +1485,13 @@ export const uint8ArrayFromBase64String: Transformation<Uint8Array<ArrayBufferLi
1414
1485
  *
1415
1486
  * **When to use**
1416
1487
  *
1417
- * Use when handling text data transmitted as Base64 strings.
1488
+ * Use when you need a schema transformation for text data transmitted as Base64
1489
+ * strings.
1418
1490
  *
1419
1491
  * **Details**
1420
1492
  *
1421
- * - Decode: parses the Base64 string into a UTF-8 string.
1422
- * - Encode: encodes the string as a Base64 string.
1493
+ * Decoding parses the Base64 string into a UTF-8 string. Encoding writes the
1494
+ * string as a Base64 string.
1423
1495
  *
1424
1496
  * **Example** (String from Base64)
1425
1497
  *
@@ -1438,8 +1510,8 @@ export const uint8ArrayFromBase64String: Transformation<Uint8Array<ArrayBufferLi
1438
1510
  * @since 4.0.0
1439
1511
  */
1440
1512
  export const stringFromBase64String: Transformation<string, string> = new Transformation(
1441
- Getter.decodeBase64String(),
1442
- Getter.encodeBase64()
1513
+ SchemaGetter.decodeBase64String(),
1514
+ SchemaGetter.encodeBase64()
1443
1515
  )
1444
1516
 
1445
1517
  /**
@@ -1447,12 +1519,13 @@ export const stringFromBase64String: Transformation<string, string> = new Transf
1447
1519
  *
1448
1520
  * **When to use**
1449
1521
  *
1450
- * Use when handling text data transmitted as Base64 URL-safe strings.
1522
+ * Use when you need a schema transformation for text data transmitted as Base64
1523
+ * URL-safe strings.
1451
1524
  *
1452
1525
  * **Details**
1453
1526
  *
1454
- * - Decode: parses the Base64 URL string into a UTF-8 string.
1455
- * - Encode: encodes the string as a Base64 URL string.
1527
+ * Decoding parses the Base64 URL string into a UTF-8 string. Encoding writes
1528
+ * the string as a Base64 URL string.
1456
1529
  *
1457
1530
  * **Example** (String from Base64Url)
1458
1531
  *
@@ -1471,8 +1544,8 @@ export const stringFromBase64String: Transformation<string, string> = new Transf
1471
1544
  * @since 4.0.0
1472
1545
  */
1473
1546
  export const stringFromBase64UrlString: Transformation<string, string> = new Transformation(
1474
- Getter.decodeBase64UrlString(),
1475
- Getter.encodeBase64Url()
1547
+ SchemaGetter.decodeBase64UrlString(),
1548
+ SchemaGetter.encodeBase64Url()
1476
1549
  )
1477
1550
 
1478
1551
  /**
@@ -1480,12 +1553,13 @@ export const stringFromBase64UrlString: Transformation<string, string> = new Tra
1480
1553
  *
1481
1554
  * **When to use**
1482
1555
  *
1483
- * Use when handling text data transmitted as hexadecimal strings.
1556
+ * Use when you need a schema transformation for text data transmitted as
1557
+ * hexadecimal strings.
1484
1558
  *
1485
1559
  * **Details**
1486
1560
  *
1487
- * - Decode: parses the hex string into a UTF-8 string.
1488
- * - Encode: encodes the string as a hex string.
1561
+ * Decoding parses the hex string into a UTF-8 string. Encoding writes the
1562
+ * string as a hex string.
1489
1563
  *
1490
1564
  * **Example** (String from Hex)
1491
1565
  *
@@ -1504,8 +1578,8 @@ export const stringFromBase64UrlString: Transformation<string, string> = new Tra
1504
1578
  * @since 4.0.0
1505
1579
  */
1506
1580
  export const stringFromHexString: Transformation<string, string> = new Transformation(
1507
- Getter.decodeHexString(),
1508
- Getter.encodeHex()
1581
+ SchemaGetter.decodeHexString(),
1582
+ SchemaGetter.encodeHex()
1509
1583
  )
1510
1584
 
1511
1585
  /**
@@ -1514,14 +1588,14 @@ export const stringFromHexString: Transformation<string, string> = new Transform
1514
1588
  *
1515
1589
  * **When to use**
1516
1590
  *
1517
- * Use when storing structured data in URL query parameters or fragments.
1518
- * - Composing with `Schema.parseJson` to round-trip JSON through a URL.
1591
+ * Use when you need a schema transformation to store structured data in URL
1592
+ * query parameters or fragments, such as composing with `Schema.parseJson` to
1593
+ * round-trip JSON through a URL.
1519
1594
  *
1520
1595
  * **Details**
1521
1596
  *
1522
- * - Decode: calls `decodeURIComponent`. Fails if the input contains malformed
1523
- * percent-encoding sequences.
1524
- * - Encode: calls `encodeURIComponent`.
1597
+ * Decoding calls `decodeURIComponent` and fails if the input contains malformed
1598
+ * percent-encoding sequences. Encoding calls `encodeURIComponent`.
1525
1599
  *
1526
1600
  * **Example** (URI component schema)
1527
1601
  *
@@ -1540,8 +1614,8 @@ export const stringFromHexString: Transformation<string, string> = new Transform
1540
1614
  * @since 4.0.0
1541
1615
  */
1542
1616
  export const stringFromUriComponent: Transformation<string, string> = new Transformation(
1543
- Getter.decodeUriComponent(),
1544
- Getter.encodeUriComponent()
1617
+ SchemaGetter.decodeUriComponent(),
1618
+ SchemaGetter.encodeUriComponent()
1545
1619
  )
1546
1620
 
1547
1621
  /**
@@ -1550,8 +1624,9 @@ export const stringFromUriComponent: Transformation<string, string> = new Transf
1550
1624
  *
1551
1625
  * **When to use**
1552
1626
  *
1553
- * Use when you use this for JSON stored or transmitted as a string, usually before composing
1554
- * with another schema that validates the parsed structure.
1627
+ * Use when you need a schema transformation to decode JSON stored or
1628
+ * transmitted as a string, usually before composing with another schema that
1629
+ * validates the parsed structure.
1555
1630
  *
1556
1631
  * **Details**
1557
1632
  *
@@ -1575,8 +1650,8 @@ export const stringFromUriComponent: Transformation<string, string> = new Transf
1575
1650
  * @since 4.0.0
1576
1651
  */
1577
1652
  export const fromJsonString = new Transformation<unknown, string>(
1578
- Getter.parseJson(),
1579
- Getter.stringifyJson()
1653
+ SchemaGetter.parseJson(),
1654
+ SchemaGetter.stringifyJson()
1580
1655
  )
1581
1656
 
1582
1657
  /**
@@ -1585,8 +1660,8 @@ export const fromJsonString = new Transformation<unknown, string>(
1585
1660
  *
1586
1661
  * **When to use**
1587
1662
  *
1588
- * Use when you use this for form or multipart payloads where keys such as `user[name]` or
1589
- * `items[0]` should become nested data.
1663
+ * Use when you need a schema transformation for form or multipart payloads
1664
+ * whose keys, such as `user[name]` or `items[0]`, should become nested data.
1590
1665
  *
1591
1666
  * **Details**
1592
1667
  *
@@ -1611,8 +1686,8 @@ export const fromJsonString = new Transformation<unknown, string>(
1611
1686
  * @since 4.0.0
1612
1687
  */
1613
1688
  export const fromFormData = new Transformation<unknown, FormData>(
1614
- Getter.decodeFormData(),
1615
- Getter.encodeFormData()
1689
+ SchemaGetter.decodeFormData(),
1690
+ SchemaGetter.encodeFormData()
1616
1691
  )
1617
1692
 
1618
1693
  /**
@@ -1621,8 +1696,8 @@ export const fromFormData = new Transformation<unknown, FormData>(
1621
1696
  *
1622
1697
  * **When to use**
1623
1698
  *
1624
- * Use when you use this for query strings where keys such as `filter[name]` or `items[0]`
1625
- * should become nested data.
1699
+ * Use when you need a schema transformation for query strings whose keys, such
1700
+ * as `filter[name]` or `items[0]`, should become nested data.
1626
1701
  *
1627
1702
  * **Details**
1628
1703
  *
@@ -1647,8 +1722,8 @@ export const fromFormData = new Transformation<unknown, FormData>(
1647
1722
  * @since 4.0.0
1648
1723
  */
1649
1724
  export const fromURLSearchParams = new Transformation<unknown, URLSearchParams>(
1650
- Getter.decodeURLSearchParams(),
1651
- Getter.encodeURLSearchParams()
1725
+ SchemaGetter.decodeURLSearchParams(),
1726
+ SchemaGetter.encodeURLSearchParams()
1652
1727
  )
1653
1728
 
1654
1729
  /**
@@ -1657,8 +1732,8 @@ export const fromURLSearchParams = new Transformation<unknown, URLSearchParams>(
1657
1732
  *
1658
1733
  * **When to use**
1659
1734
  *
1660
- * Use to represent fixed-offset time zones with numeric millisecond offsets in
1661
- * schema transformations or JSON codecs.
1735
+ * Use when you need a schema transformation to represent fixed-offset time
1736
+ * zones with numeric millisecond offsets.
1662
1737
  *
1663
1738
  * **Details**
1664
1739
  *
@@ -1685,8 +1760,8 @@ export const timeZoneOffsetFromNumber: Transformation<DateTime.TimeZone.Offset,
1685
1760
  *
1686
1761
  * **When to use**
1687
1762
  *
1688
- * Use when a schema transformation should accept only IANA time-zone identifier
1689
- * strings and produce `DateTime.TimeZone.Named` values.
1763
+ * Use when you need a schema transformation to accept only IANA time-zone
1764
+ * identifier strings and produce `DateTime.TimeZone.Named` values.
1690
1765
  *
1691
1766
  * **Details**
1692
1767
  *
@@ -1704,7 +1779,8 @@ export const timeZoneNamedFromString: Transformation<DateTime.TimeZone.Named, st
1704
1779
  >({
1705
1780
  decode: (s) => {
1706
1781
  return Option.match(DateTime.zoneMakeNamed(s), {
1707
- onNone: () => Effect.fail(new Issue.InvalidValue(Option.some(s), { message: `Invalid IANA time zone: ${s}` })),
1782
+ onNone: () =>
1783
+ Effect.fail(new SchemaIssue.InvalidValue(Option.some(s), { message: `Invalid IANA time zone: ${s}` })),
1708
1784
  onSome: Effect.succeed
1709
1785
  })
1710
1786
  },
@@ -1717,8 +1793,8 @@ export const timeZoneNamedFromString: Transformation<DateTime.TimeZone.Named, st
1717
1793
  *
1718
1794
  * **When to use**
1719
1795
  *
1720
- * Use when schema decoding should accept either an IANA time-zone identifier or
1721
- * an offset string and produce a general `DateTime.TimeZone`.
1796
+ * Use when you need a schema transformation to accept either an IANA time-zone
1797
+ * identifier or an offset string and produce a general `DateTime.TimeZone`.
1722
1798
  *
1723
1799
  * **Details**
1724
1800
  *
@@ -1738,7 +1814,7 @@ export const timeZoneFromString: Transformation<DateTime.TimeZone, string> = tra
1738
1814
  >({
1739
1815
  decode: (s) => {
1740
1816
  return Option.match(DateTime.zoneFromString(s), {
1741
- onNone: () => Effect.fail(new Issue.InvalidValue(Option.some(s), { message: `Invalid time zone: ${s}` })),
1817
+ onNone: () => Effect.fail(new SchemaIssue.InvalidValue(Option.some(s), { message: `Invalid time zone: ${s}` })),
1742
1818
  onSome: Effect.succeed
1743
1819
  })
1744
1820
  },
@@ -1751,8 +1827,8 @@ export const timeZoneFromString: Transformation<DateTime.TimeZone, string> = tra
1751
1827
  *
1752
1828
  * **When to use**
1753
1829
  *
1754
- * Use to decode date-time strings when the schema value should be a normalized
1755
- * `DateTime.Utc` and encode back as a UTC ISO string.
1830
+ * Use when you need a schema transformation to decode date-time strings to a
1831
+ * normalized `DateTime.Utc` and encode back as a UTC ISO string.
1756
1832
  *
1757
1833
  * **Details**
1758
1834
  *
@@ -1773,7 +1849,7 @@ export const dateTimeUtcFromString: Transformation<DateTime.Utc, string> = trans
1773
1849
  decode: (s) => {
1774
1850
  return Option.match(DateTime.make(s), {
1775
1851
  onNone: () =>
1776
- Effect.fail(new Issue.InvalidValue(Option.some(s), { message: `Invalid UTC DateTime string: ${s}` })),
1852
+ Effect.fail(new SchemaIssue.InvalidValue(Option.some(s), { message: `Invalid UTC DateTime string: ${s}` })),
1777
1853
  onSome: (result) => Effect.succeed(DateTime.toUtc(result))
1778
1854
  })
1779
1855
  },
@@ -1786,8 +1862,8 @@ export const dateTimeUtcFromString: Transformation<DateTime.Utc, string> = trans
1786
1862
  *
1787
1863
  * **When to use**
1788
1864
  *
1789
- * Use to define a schema transformation for ISO zoned date-time strings that
1790
- * decode to `DateTime.Zoned` and encode with `DateTime.formatIsoZoned`.
1865
+ * Use when you need a schema transformation for ISO zoned date-time strings
1866
+ * that decode to `DateTime.Zoned` and encode with `DateTime.formatIsoZoned`.
1791
1867
  *
1792
1868
  * **Details**
1793
1869
  *
@@ -1807,7 +1883,7 @@ export const dateTimeZonedFromString: Transformation<DateTime.Zoned, string> = t
1807
1883
  decode: (s) => {
1808
1884
  return Option.match(DateTime.makeZonedFromString(s), {
1809
1885
  onNone: () =>
1810
- Effect.fail(new Issue.InvalidValue(Option.some(s), { message: `Invalid Zoned DateTime string: ${s}` })),
1886
+ Effect.fail(new SchemaIssue.InvalidValue(Option.some(s), { message: `Invalid Zoned DateTime string: ${s}` })),
1811
1887
  onSome: Effect.succeed
1812
1888
  })
1813
1889
  },