effect 4.0.0-beta.3 → 4.0.0-beta.30

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 (983) hide show
  1. package/dist/Array.d.ts +126 -299
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +102 -62
  4. package/dist/Array.js.map +1 -1
  5. package/dist/Brand.d.ts +1 -1
  6. package/dist/Brand.d.ts.map +1 -1
  7. package/dist/Brand.js +1 -1
  8. package/dist/Brand.js.map +1 -1
  9. package/dist/Cache.d.ts +2 -2
  10. package/dist/Cache.d.ts.map +1 -1
  11. package/dist/Cache.js +6 -5
  12. package/dist/Cache.js.map +1 -1
  13. package/dist/Cause.d.ts +2 -2
  14. package/dist/Cause.d.ts.map +1 -1
  15. package/dist/Channel.d.ts +116 -30
  16. package/dist/Channel.d.ts.map +1 -1
  17. package/dist/Channel.js +82 -37
  18. package/dist/Channel.js.map +1 -1
  19. package/dist/Chunk.d.ts +54 -247
  20. package/dist/Chunk.d.ts.map +1 -1
  21. package/dist/Chunk.js +36 -67
  22. package/dist/Chunk.js.map +1 -1
  23. package/dist/Combiner.d.ts +280 -13
  24. package/dist/Combiner.d.ts.map +1 -1
  25. package/dist/Combiner.js +198 -7
  26. package/dist/Combiner.js.map +1 -1
  27. package/dist/Config.d.ts +165 -9
  28. package/dist/Config.d.ts.map +1 -1
  29. package/dist/Config.js +65 -10
  30. package/dist/Config.js.map +1 -1
  31. package/dist/ConfigProvider.d.ts +1 -1
  32. package/dist/Cron.d.ts +1 -1
  33. package/dist/Data.d.ts +535 -366
  34. package/dist/Data.d.ts.map +1 -1
  35. package/dist/Data.js +132 -79
  36. package/dist/Data.js.map +1 -1
  37. package/dist/DateTime.d.ts +23 -161
  38. package/dist/DateTime.d.ts.map +1 -1
  39. package/dist/DateTime.js +6 -51
  40. package/dist/DateTime.js.map +1 -1
  41. package/dist/Duration.d.ts +11 -11
  42. package/dist/Duration.d.ts.map +1 -1
  43. package/dist/Duration.js +11 -11
  44. package/dist/Duration.js.map +1 -1
  45. package/dist/Effect.d.ts +1206 -924
  46. package/dist/Effect.d.ts.map +1 -1
  47. package/dist/Effect.js +390 -329
  48. package/dist/Effect.js.map +1 -1
  49. package/dist/Encoding.d.ts +194 -0
  50. package/dist/Encoding.d.ts.map +1 -0
  51. package/dist/Encoding.js +352 -0
  52. package/dist/Encoding.js.map +1 -0
  53. package/dist/Equal.d.ts +276 -109
  54. package/dist/Equal.d.ts.map +1 -1
  55. package/dist/Equal.js +124 -48
  56. package/dist/Equal.js.map +1 -1
  57. package/dist/ErrorReporter.d.ts +374 -0
  58. package/dist/ErrorReporter.d.ts.map +1 -0
  59. package/dist/ErrorReporter.js +244 -0
  60. package/dist/ErrorReporter.js.map +1 -0
  61. package/dist/Exit.d.ts +24 -12
  62. package/dist/Exit.d.ts.map +1 -1
  63. package/dist/Exit.js +8 -4
  64. package/dist/Exit.js.map +1 -1
  65. package/dist/Fiber.d.ts +3 -2
  66. package/dist/Fiber.d.ts.map +1 -1
  67. package/dist/Fiber.js.map +1 -1
  68. package/dist/FileSystem.d.ts +1 -1
  69. package/dist/FileSystem.d.ts.map +1 -1
  70. package/dist/FileSystem.js +5 -5
  71. package/dist/FileSystem.js.map +1 -1
  72. package/dist/Filter.d.ts +34 -38
  73. package/dist/Filter.d.ts.map +1 -1
  74. package/dist/Filter.js +15 -13
  75. package/dist/Filter.js.map +1 -1
  76. package/dist/Formatter.d.ts +131 -47
  77. package/dist/Formatter.d.ts.map +1 -1
  78. package/dist/Formatter.js +229 -51
  79. package/dist/Formatter.js.map +1 -1
  80. package/dist/Function.d.ts +1 -9
  81. package/dist/Function.d.ts.map +1 -1
  82. package/dist/Function.js +2 -10
  83. package/dist/Function.js.map +1 -1
  84. package/dist/Graph.d.ts +1 -1
  85. package/dist/Graph.d.ts.map +1 -1
  86. package/dist/Graph.js +5 -8
  87. package/dist/Graph.js.map +1 -1
  88. package/dist/HashMap.d.ts +15 -14
  89. package/dist/HashMap.d.ts.map +1 -1
  90. package/dist/HashMap.js +4 -4
  91. package/dist/HashMap.js.map +1 -1
  92. package/dist/Iterable.d.ts +39 -39
  93. package/dist/Iterable.d.ts.map +1 -1
  94. package/dist/Iterable.js +94 -22
  95. package/dist/Iterable.js.map +1 -1
  96. package/dist/JsonSchema.d.ts +299 -10
  97. package/dist/JsonSchema.d.ts.map +1 -1
  98. package/dist/JsonSchema.js +323 -4
  99. package/dist/JsonSchema.js.map +1 -1
  100. package/dist/Latch.d.ts +109 -0
  101. package/dist/Latch.d.ts.map +1 -0
  102. package/dist/Latch.js +72 -0
  103. package/dist/Latch.js.map +1 -0
  104. package/dist/Layer.d.ts +121 -126
  105. package/dist/Layer.d.ts.map +1 -1
  106. package/dist/Layer.js +43 -44
  107. package/dist/Layer.js.map +1 -1
  108. package/dist/LayerMap.d.ts +8 -8
  109. package/dist/LayerMap.d.ts.map +1 -1
  110. package/dist/LayerMap.js +3 -3
  111. package/dist/LogLevel.d.ts +32 -0
  112. package/dist/LogLevel.d.ts.map +1 -1
  113. package/dist/LogLevel.js +28 -100
  114. package/dist/LogLevel.js.map +1 -1
  115. package/dist/Logger.d.ts +29 -95
  116. package/dist/Logger.d.ts.map +1 -1
  117. package/dist/Logger.js +2 -3
  118. package/dist/Logger.js.map +1 -1
  119. package/dist/ManagedRuntime.d.ts +2 -2
  120. package/dist/ManagedRuntime.js +2 -2
  121. package/dist/Metric.d.ts +4 -6
  122. package/dist/Metric.d.ts.map +1 -1
  123. package/dist/Metric.js +3 -5
  124. package/dist/Metric.js.map +1 -1
  125. package/dist/Newtype.d.ts +291 -0
  126. package/dist/Newtype.d.ts.map +1 -0
  127. package/dist/Newtype.js +161 -0
  128. package/dist/Newtype.js.map +1 -0
  129. package/dist/Optic.d.ts +947 -18
  130. package/dist/Optic.d.ts.map +1 -1
  131. package/dist/Optic.js +454 -5
  132. package/dist/Optic.js.map +1 -1
  133. package/dist/Option.d.ts +23 -16
  134. package/dist/Option.d.ts.map +1 -1
  135. package/dist/Option.js +15 -9
  136. package/dist/Option.js.map +1 -1
  137. package/dist/Pipeable.d.ts +17 -0
  138. package/dist/Pipeable.d.ts.map +1 -1
  139. package/dist/Pipeable.js +19 -1
  140. package/dist/Pipeable.js.map +1 -1
  141. package/dist/PlatformError.d.ts +10 -9
  142. package/dist/PlatformError.d.ts.map +1 -1
  143. package/dist/PlatformError.js +2 -2
  144. package/dist/PlatformError.js.map +1 -1
  145. package/dist/Pool.d.ts +6 -4
  146. package/dist/Pool.d.ts.map +1 -1
  147. package/dist/Pool.js +7 -5
  148. package/dist/Pool.js.map +1 -1
  149. package/dist/PubSub.d.ts +3 -2
  150. package/dist/PubSub.d.ts.map +1 -1
  151. package/dist/PubSub.js +3 -2
  152. package/dist/PubSub.js.map +1 -1
  153. package/dist/Pull.d.ts.map +1 -1
  154. package/dist/Pull.js +1 -1
  155. package/dist/Pull.js.map +1 -1
  156. package/dist/Queue.d.ts.map +1 -1
  157. package/dist/Queue.js +0 -1
  158. package/dist/Queue.js.map +1 -1
  159. package/dist/Random.d.ts +35 -1
  160. package/dist/Random.d.ts.map +1 -1
  161. package/dist/Random.js +46 -12
  162. package/dist/Random.js.map +1 -1
  163. package/dist/RcMap.d.ts +2 -2
  164. package/dist/RcMap.d.ts.map +1 -1
  165. package/dist/RcMap.js +1 -1
  166. package/dist/RcMap.js.map +1 -1
  167. package/dist/RcRef.d.ts +1 -1
  168. package/dist/RcRef.d.ts.map +1 -1
  169. package/dist/Record.d.ts +23 -120
  170. package/dist/Record.d.ts.map +1 -1
  171. package/dist/Record.js +21 -41
  172. package/dist/Record.js.map +1 -1
  173. package/dist/Reducer.d.ts +166 -7
  174. package/dist/Reducer.d.ts.map +1 -1
  175. package/dist/Reducer.js +135 -1
  176. package/dist/Reducer.js.map +1 -1
  177. package/dist/References.d.ts +9 -4
  178. package/dist/References.d.ts.map +1 -1
  179. package/dist/References.js +6 -1
  180. package/dist/References.js.map +1 -1
  181. package/dist/Request.d.ts +1 -1
  182. package/dist/Request.d.ts.map +1 -1
  183. package/dist/Request.js +2 -1
  184. package/dist/Request.js.map +1 -1
  185. package/dist/RequestResolver.d.ts +25 -45
  186. package/dist/RequestResolver.d.ts.map +1 -1
  187. package/dist/RequestResolver.js +10 -30
  188. package/dist/RequestResolver.js.map +1 -1
  189. package/dist/Result.d.ts +1 -1
  190. package/dist/Result.d.ts.map +1 -1
  191. package/dist/Result.js +1 -2
  192. package/dist/Result.js.map +1 -1
  193. package/dist/Runtime.d.ts +66 -0
  194. package/dist/Runtime.d.ts.map +1 -1
  195. package/dist/Runtime.js +79 -6
  196. package/dist/Runtime.js.map +1 -1
  197. package/dist/Schedule.d.ts +191 -102
  198. package/dist/Schedule.d.ts.map +1 -1
  199. package/dist/Schedule.js +152 -66
  200. package/dist/Schedule.js.map +1 -1
  201. package/dist/Scheduler.d.ts +9 -0
  202. package/dist/Scheduler.d.ts.map +1 -1
  203. package/dist/Scheduler.js +11 -0
  204. package/dist/Scheduler.js.map +1 -1
  205. package/dist/Schema.d.ts +309 -88
  206. package/dist/Schema.d.ts.map +1 -1
  207. package/dist/Schema.js +499 -109
  208. package/dist/Schema.js.map +1 -1
  209. package/dist/SchemaAST.d.ts.map +1 -1
  210. package/dist/SchemaAST.js +129 -23
  211. package/dist/SchemaAST.js.map +1 -1
  212. package/dist/SchemaGetter.d.ts +5 -5
  213. package/dist/SchemaGetter.d.ts.map +1 -1
  214. package/dist/SchemaGetter.js +12 -14
  215. package/dist/SchemaGetter.js.map +1 -1
  216. package/dist/SchemaParser.d.ts +5 -0
  217. package/dist/SchemaParser.d.ts.map +1 -1
  218. package/dist/SchemaParser.js +10 -0
  219. package/dist/SchemaParser.js.map +1 -1
  220. package/dist/SchemaRepresentation.d.ts +44 -43
  221. package/dist/SchemaRepresentation.d.ts.map +1 -1
  222. package/dist/SchemaRepresentation.js +49 -24
  223. package/dist/SchemaRepresentation.js.map +1 -1
  224. package/dist/SchemaTransformation.d.ts +107 -3
  225. package/dist/SchemaTransformation.d.ts.map +1 -1
  226. package/dist/SchemaTransformation.js +159 -4
  227. package/dist/SchemaTransformation.js.map +1 -1
  228. package/dist/ScopedCache.d.ts +2 -2
  229. package/dist/ScopedCache.d.ts.map +1 -1
  230. package/dist/ScopedCache.js +1 -1
  231. package/dist/ScopedCache.js.map +1 -1
  232. package/dist/Semaphore.d.ts +211 -0
  233. package/dist/Semaphore.d.ts.map +1 -0
  234. package/dist/{PartitionedSemaphore.js → Semaphore.js} +97 -13
  235. package/dist/Semaphore.js.map +1 -0
  236. package/dist/ServiceMap.d.ts +41 -31
  237. package/dist/ServiceMap.d.ts.map +1 -1
  238. package/dist/ServiceMap.js +3 -3
  239. package/dist/ServiceMap.js.map +1 -1
  240. package/dist/Sink.d.ts +13 -13
  241. package/dist/Sink.d.ts.map +1 -1
  242. package/dist/Sink.js +53 -6
  243. package/dist/Sink.js.map +1 -1
  244. package/dist/Stdio.d.ts +16 -4
  245. package/dist/Stdio.d.ts.map +1 -1
  246. package/dist/Stdio.js +18 -0
  247. package/dist/Stdio.js.map +1 -1
  248. package/dist/Stream.d.ts +250 -428
  249. package/dist/Stream.d.ts.map +1 -1
  250. package/dist/Stream.js +137 -82
  251. package/dist/Stream.js.map +1 -1
  252. package/dist/Struct.d.ts +16 -0
  253. package/dist/Struct.d.ts.map +1 -1
  254. package/dist/Struct.js +22 -0
  255. package/dist/Struct.js.map +1 -1
  256. package/dist/SubscriptionRef.d.ts +2 -1
  257. package/dist/SubscriptionRef.d.ts.map +1 -1
  258. package/dist/SubscriptionRef.js +2 -1
  259. package/dist/SubscriptionRef.js.map +1 -1
  260. package/dist/SynchronizedRef.d.ts +2 -1
  261. package/dist/SynchronizedRef.d.ts.map +1 -1
  262. package/dist/SynchronizedRef.js +2 -1
  263. package/dist/SynchronizedRef.js.map +1 -1
  264. package/dist/Trie.d.ts +18 -17
  265. package/dist/Trie.d.ts.map +1 -1
  266. package/dist/Trie.js +5 -5
  267. package/dist/Trie.js.map +1 -1
  268. package/dist/TxChunk.d.ts +37 -37
  269. package/dist/TxChunk.d.ts.map +1 -1
  270. package/dist/TxChunk.js +3 -3
  271. package/dist/TxChunk.js.map +1 -1
  272. package/dist/TxDeferred.d.ts +328 -0
  273. package/dist/TxDeferred.d.ts.map +1 -0
  274. package/dist/TxDeferred.js +196 -0
  275. package/dist/TxDeferred.js.map +1 -0
  276. package/dist/TxHashMap.d.ts +84 -83
  277. package/dist/TxHashMap.d.ts.map +1 -1
  278. package/dist/TxHashMap.js +24 -24
  279. package/dist/TxHashMap.js.map +1 -1
  280. package/dist/TxHashSet.d.ts +35 -35
  281. package/dist/TxHashSet.d.ts.map +1 -1
  282. package/dist/TxHashSet.js +14 -14
  283. package/dist/TxHashSet.js.map +1 -1
  284. package/dist/TxPriorityQueue.d.ts +609 -0
  285. package/dist/TxPriorityQueue.d.ts.map +1 -0
  286. package/dist/TxPriorityQueue.js +415 -0
  287. package/dist/TxPriorityQueue.js.map +1 -0
  288. package/dist/TxPubSub.d.ts +585 -0
  289. package/dist/TxPubSub.d.ts.map +1 -0
  290. package/dist/TxPubSub.js +521 -0
  291. package/dist/TxPubSub.js.map +1 -0
  292. package/dist/TxQueue.d.ts +32 -32
  293. package/dist/TxQueue.d.ts.map +1 -1
  294. package/dist/TxQueue.js +26 -26
  295. package/dist/TxQueue.js.map +1 -1
  296. package/dist/TxReentrantLock.d.ts +523 -0
  297. package/dist/TxReentrantLock.d.ts.map +1 -0
  298. package/dist/TxReentrantLock.js +504 -0
  299. package/dist/TxReentrantLock.js.map +1 -0
  300. package/dist/TxRef.d.ts +34 -34
  301. package/dist/TxRef.d.ts.map +1 -1
  302. package/dist/TxRef.js +21 -14
  303. package/dist/TxRef.js.map +1 -1
  304. package/dist/TxSemaphore.d.ts +8 -8
  305. package/dist/TxSemaphore.d.ts.map +1 -1
  306. package/dist/TxSemaphore.js +7 -7
  307. package/dist/TxSemaphore.js.map +1 -1
  308. package/dist/TxSubscriptionRef.d.ts +508 -0
  309. package/dist/TxSubscriptionRef.d.ts.map +1 -0
  310. package/dist/TxSubscriptionRef.js +293 -0
  311. package/dist/TxSubscriptionRef.js.map +1 -0
  312. package/dist/Types.d.ts +80 -23
  313. package/dist/Types.d.ts.map +1 -1
  314. package/dist/Utils.d.ts +137 -65
  315. package/dist/Utils.d.ts.map +1 -1
  316. package/dist/Utils.js +38 -66
  317. package/dist/Utils.js.map +1 -1
  318. package/dist/index.d.ts +718 -23
  319. package/dist/index.d.ts.map +1 -1
  320. package/dist/index.js +718 -23
  321. package/dist/index.js.map +1 -1
  322. package/dist/internal/core.js +11 -3
  323. package/dist/internal/core.js.map +1 -1
  324. package/dist/internal/dateTime.js +3 -11
  325. package/dist/internal/dateTime.js.map +1 -1
  326. package/dist/internal/effect.js +264 -126
  327. package/dist/internal/effect.js.map +1 -1
  328. package/dist/internal/hashMap.js +5 -4
  329. package/dist/internal/hashMap.js.map +1 -1
  330. package/dist/internal/random.d.ts +2 -0
  331. package/dist/internal/random.d.ts.map +1 -0
  332. package/dist/internal/random.js +13 -0
  333. package/dist/internal/random.js.map +1 -0
  334. package/dist/internal/rcRef.js +3 -2
  335. package/dist/internal/rcRef.js.map +1 -1
  336. package/dist/internal/request.js +2 -2
  337. package/dist/internal/request.js.map +1 -1
  338. package/dist/internal/schema/annotations.js +2 -0
  339. package/dist/internal/schema/annotations.js.map +1 -1
  340. package/dist/internal/schema/representation.js +47 -106
  341. package/dist/internal/schema/representation.js.map +1 -1
  342. package/dist/internal/schema/schema.js +1 -0
  343. package/dist/internal/schema/schema.js.map +1 -1
  344. package/dist/internal/schema/to-codec.js +7 -10
  345. package/dist/internal/schema/to-codec.js.map +1 -1
  346. package/dist/internal/trie.js +5 -4
  347. package/dist/internal/trie.js.map +1 -1
  348. package/dist/testing/TestClock.d.ts +8 -7
  349. package/dist/testing/TestClock.d.ts.map +1 -1
  350. package/dist/testing/TestClock.js +6 -4
  351. package/dist/testing/TestClock.js.map +1 -1
  352. package/dist/testing/TestSchema.d.ts +266 -32
  353. package/dist/testing/TestSchema.d.ts.map +1 -1
  354. package/dist/testing/TestSchema.js +296 -23
  355. package/dist/testing/TestSchema.js.map +1 -1
  356. package/dist/testing/index.d.ts +64 -1
  357. package/dist/testing/index.d.ts.map +1 -1
  358. package/dist/testing/index.js +64 -1
  359. package/dist/testing/index.js.map +1 -1
  360. package/dist/unstable/ai/AiError.d.ts +134 -51
  361. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  362. package/dist/unstable/ai/AiError.js +19 -16
  363. package/dist/unstable/ai/AiError.js.map +1 -1
  364. package/dist/unstable/ai/Chat.d.ts +5 -5
  365. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  366. package/dist/unstable/ai/Chat.js +38 -44
  367. package/dist/unstable/ai/Chat.js.map +1 -1
  368. package/dist/unstable/ai/LanguageModel.d.ts +16 -30
  369. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  370. package/dist/unstable/ai/LanguageModel.js +97 -37
  371. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  372. package/dist/unstable/ai/McpSchema.d.ts +183 -88
  373. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  374. package/dist/unstable/ai/McpSchema.js +57 -12
  375. package/dist/unstable/ai/McpSchema.js.map +1 -1
  376. package/dist/unstable/ai/McpServer.d.ts +66 -13
  377. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  378. package/dist/unstable/ai/McpServer.js +193 -51
  379. package/dist/unstable/ai/McpServer.js.map +1 -1
  380. package/dist/unstable/ai/Model.d.ts +25 -7
  381. package/dist/unstable/ai/Model.d.ts.map +1 -1
  382. package/dist/unstable/ai/Model.js +22 -6
  383. package/dist/unstable/ai/Model.js.map +1 -1
  384. package/dist/unstable/ai/Prompt.d.ts +20 -20
  385. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  386. package/dist/unstable/ai/Response.d.ts +26 -26
  387. package/dist/unstable/ai/Response.d.ts.map +1 -1
  388. package/dist/unstable/ai/Response.js +1 -1
  389. package/dist/unstable/ai/Response.js.map +1 -1
  390. package/dist/unstable/ai/Tool.d.ts +20 -4
  391. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  392. package/dist/unstable/ai/Tool.js +14 -9
  393. package/dist/unstable/ai/Tool.js.map +1 -1
  394. package/dist/unstable/ai/Toolkit.d.ts +1 -1
  395. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  396. package/dist/unstable/ai/Toolkit.js +4 -11
  397. package/dist/unstable/ai/Toolkit.js.map +1 -1
  398. package/dist/unstable/ai/index.d.ts +1 -1
  399. package/dist/unstable/ai/index.js +1 -1
  400. package/dist/unstable/ai/internal/codec-transformer.js +0 -5
  401. package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
  402. package/dist/unstable/cli/CliError.d.ts +27 -60
  403. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  404. package/dist/unstable/cli/CliError.js +25 -57
  405. package/dist/unstable/cli/CliError.js.map +1 -1
  406. package/dist/unstable/cli/CliOutput.js +59 -6
  407. package/dist/unstable/cli/CliOutput.js.map +1 -1
  408. package/dist/unstable/cli/Command.d.ts +368 -56
  409. package/dist/unstable/cli/Command.d.ts.map +1 -1
  410. package/dist/unstable/cli/Command.js +325 -64
  411. package/dist/unstable/cli/Command.js.map +1 -1
  412. package/dist/unstable/cli/GlobalFlag.d.ts +125 -0
  413. package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -0
  414. package/dist/unstable/cli/GlobalFlag.js +118 -0
  415. package/dist/unstable/cli/GlobalFlag.js.map +1 -0
  416. package/dist/unstable/cli/HelpDoc.d.ts +70 -2
  417. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  418. package/dist/unstable/cli/Primitive.d.ts +1 -1
  419. package/dist/unstable/cli/Primitive.js +1 -1
  420. package/dist/unstable/cli/Prompt.js +35 -8
  421. package/dist/unstable/cli/Prompt.js.map +1 -1
  422. package/dist/unstable/cli/index.d.ts +4 -0
  423. package/dist/unstable/cli/index.d.ts.map +1 -1
  424. package/dist/unstable/cli/index.js +4 -0
  425. package/dist/unstable/cli/index.js.map +1 -1
  426. package/dist/unstable/cli/internal/command.d.ts +40 -14
  427. package/dist/unstable/cli/internal/command.d.ts.map +1 -1
  428. package/dist/unstable/cli/internal/command.js +72 -46
  429. package/dist/unstable/cli/internal/command.js.map +1 -1
  430. package/dist/unstable/cli/internal/completions/CommandDescriptor.js +7 -2
  431. package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +1 -1
  432. package/dist/unstable/cli/internal/config.js +42 -0
  433. package/dist/unstable/cli/internal/config.js.map +1 -1
  434. package/dist/unstable/cli/internal/help.d.ts +33 -0
  435. package/dist/unstable/cli/internal/help.d.ts.map +1 -0
  436. package/dist/unstable/cli/internal/help.js +125 -0
  437. package/dist/unstable/cli/internal/help.js.map +1 -0
  438. package/dist/unstable/cli/internal/parser.js +55 -42
  439. package/dist/unstable/cli/internal/parser.js.map +1 -1
  440. package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
  441. package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
  442. package/dist/unstable/cluster/ClusterCron.js +1 -1
  443. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  444. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  445. package/dist/unstable/cluster/ClusterWorkflowEngine.js +4 -3
  446. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  447. package/dist/unstable/cluster/Entity.d.ts +7 -6
  448. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  449. package/dist/unstable/cluster/Entity.js.map +1 -1
  450. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  451. package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
  452. package/dist/unstable/cluster/Envelope.d.ts +1 -1
  453. package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
  454. package/dist/unstable/cluster/K8sHttpClient.js +4 -4
  455. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  456. package/dist/unstable/cluster/Message.d.ts +10 -10
  457. package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
  458. package/dist/unstable/cluster/MessageStorage.js +2 -1
  459. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  460. package/dist/unstable/cluster/Reply.d.ts +6 -6
  461. package/dist/unstable/cluster/Runner.d.ts +1 -1
  462. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  463. package/dist/unstable/cluster/Runners.js +4 -3
  464. package/dist/unstable/cluster/Runners.js.map +1 -1
  465. package/dist/unstable/cluster/Sharding.d.ts +2 -2
  466. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  467. package/dist/unstable/cluster/Sharding.js +9 -7
  468. package/dist/unstable/cluster/Sharding.js.map +1 -1
  469. package/dist/unstable/cluster/ShardingConfig.d.ts +21 -21
  470. package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
  471. package/dist/unstable/cluster/ShardingConfig.js +20 -20
  472. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  473. package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
  474. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  475. package/dist/unstable/cluster/internal/entityManager.js +5 -4
  476. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  477. package/dist/unstable/cluster/internal/entityReaper.js +2 -1
  478. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  479. package/dist/unstable/cluster/internal/resourceRef.js +2 -1
  480. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  481. package/dist/unstable/devtools/DevToolsSchema.d.ts +36 -36
  482. package/dist/unstable/encoding/Msgpack.d.ts +1 -1
  483. package/dist/unstable/encoding/Ndjson.d.ts +1 -1
  484. package/dist/unstable/encoding/Sse.d.ts +4 -4
  485. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  486. package/dist/unstable/encoding/Sse.js +1 -1
  487. package/dist/unstable/encoding/Sse.js.map +1 -1
  488. package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
  489. package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
  490. package/dist/unstable/eventlog/EventLog.js +2 -1
  491. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  492. package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
  493. package/dist/unstable/http/Cookies.d.ts +47 -3
  494. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  495. package/dist/unstable/http/Cookies.js +24 -2
  496. package/dist/unstable/http/Cookies.js.map +1 -1
  497. package/dist/unstable/http/Headers.d.ts +16 -0
  498. package/dist/unstable/http/Headers.d.ts.map +1 -1
  499. package/dist/unstable/http/Headers.js +38 -10
  500. package/dist/unstable/http/Headers.js.map +1 -1
  501. package/dist/unstable/http/HttpBody.d.ts +3 -3
  502. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  503. package/dist/unstable/http/HttpBody.js +6 -6
  504. package/dist/unstable/http/HttpBody.js.map +1 -1
  505. package/dist/unstable/http/HttpClient.d.ts +117 -15
  506. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  507. package/dist/unstable/http/HttpClient.js +189 -12
  508. package/dist/unstable/http/HttpClient.js.map +1 -1
  509. package/dist/unstable/http/HttpClientError.d.ts +7 -7
  510. package/dist/unstable/http/HttpClientRequest.d.ts +16 -11
  511. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  512. package/dist/unstable/http/HttpClientRequest.js +31 -20
  513. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  514. package/dist/unstable/http/HttpClientResponse.d.ts +2 -1
  515. package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
  516. package/dist/unstable/http/HttpClientResponse.js +4 -0
  517. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  518. package/dist/unstable/http/HttpEffect.d.ts +7 -5
  519. package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
  520. package/dist/unstable/http/HttpEffect.js +46 -54
  521. package/dist/unstable/http/HttpEffect.js.map +1 -1
  522. package/dist/unstable/http/HttpMethod.d.ts +4 -4
  523. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  524. package/dist/unstable/http/HttpMethod.js +3 -3
  525. package/dist/unstable/http/HttpMethod.js.map +1 -1
  526. package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
  527. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  528. package/dist/unstable/http/HttpMiddleware.js +8 -17
  529. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  530. package/dist/unstable/http/HttpServerError.d.ts +20 -33
  531. package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
  532. package/dist/unstable/http/HttpServerError.js +37 -44
  533. package/dist/unstable/http/HttpServerError.js.map +1 -1
  534. package/dist/unstable/http/HttpServerRequest.d.ts +12 -1
  535. package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
  536. package/dist/unstable/http/HttpServerRequest.js +291 -1
  537. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  538. package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
  539. package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
  540. package/dist/unstable/http/HttpServerRespondable.js +5 -5
  541. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  542. package/dist/unstable/http/HttpServerResponse.d.ts +50 -3
  543. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  544. package/dist/unstable/http/HttpServerResponse.js +234 -1
  545. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  546. package/dist/unstable/http/HttpStaticServer.d.ts +69 -0
  547. package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -0
  548. package/dist/unstable/http/HttpStaticServer.js +353 -0
  549. package/dist/unstable/http/HttpStaticServer.js.map +1 -0
  550. package/dist/unstable/http/Multipart.d.ts +3 -3
  551. package/dist/unstable/http/UrlParams.d.ts +14 -6
  552. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  553. package/dist/unstable/http/UrlParams.js +1 -1
  554. package/dist/unstable/http/UrlParams.js.map +1 -1
  555. package/dist/unstable/http/index.d.ts +4 -0
  556. package/dist/unstable/http/index.d.ts.map +1 -1
  557. package/dist/unstable/http/index.js +4 -0
  558. package/dist/unstable/http/index.js.map +1 -1
  559. package/dist/unstable/http/internal/preResponseHandler.d.ts +2 -0
  560. package/dist/unstable/http/internal/preResponseHandler.d.ts.map +1 -0
  561. package/dist/unstable/http/internal/preResponseHandler.js +10 -0
  562. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -0
  563. package/dist/unstable/httpapi/HttpApi.d.ts +4 -4
  564. package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
  565. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  566. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +11 -5
  567. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  568. package/dist/unstable/httpapi/HttpApiBuilder.js +28 -18
  569. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  570. package/dist/unstable/httpapi/HttpApiClient.d.ts +66 -6
  571. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  572. package/dist/unstable/httpapi/HttpApiClient.js +40 -3
  573. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  574. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +41 -54
  575. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
  576. package/dist/unstable/httpapi/HttpApiEndpoint.js +17 -26
  577. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  578. package/dist/unstable/httpapi/HttpApiError.d.ts +16 -14
  579. package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
  580. package/dist/unstable/httpapi/HttpApiError.js +44 -29
  581. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  582. package/dist/unstable/httpapi/HttpApiGroup.d.ts +4 -3
  583. package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
  584. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  585. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +4 -4
  586. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  587. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  588. package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
  589. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  590. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  591. package/dist/unstable/httpapi/HttpApiSecurity.d.ts +2 -2
  592. package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
  593. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  594. package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
  595. package/dist/unstable/httpapi/OpenApi.js +32 -21
  596. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  597. package/dist/unstable/observability/Otlp.d.ts +12 -12
  598. package/dist/unstable/observability/Otlp.d.ts.map +1 -1
  599. package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
  600. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  601. package/dist/unstable/observability/OtlpExporter.js +1 -1
  602. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  603. package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
  604. package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
  605. package/dist/unstable/observability/OtlpLogger.js +7 -4
  606. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  607. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
  608. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  609. package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
  610. package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
  611. package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
  612. package/dist/unstable/persistence/KeyValueStore.js +6 -6
  613. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  614. package/dist/unstable/persistence/Persistable.d.ts +2 -2
  615. package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
  616. package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
  617. package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
  618. package/dist/unstable/persistence/PersistedCache.js +2 -1
  619. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  620. package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
  621. package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
  622. package/dist/unstable/persistence/PersistedQueue.js +12 -11
  623. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  624. package/dist/unstable/persistence/Persistence.d.ts +1 -1
  625. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  626. package/dist/unstable/persistence/Persistence.js +2 -2
  627. package/dist/unstable/persistence/Persistence.js.map +1 -1
  628. package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
  629. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  630. package/dist/unstable/persistence/RateLimiter.js +1 -1
  631. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  632. package/dist/unstable/process/ChildProcess.d.ts +5 -128
  633. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  634. package/dist/unstable/process/ChildProcess.js +1 -65
  635. package/dist/unstable/process/ChildProcess.js.map +1 -1
  636. package/dist/unstable/process/ChildProcessSpawner.d.ts +45 -7
  637. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  638. package/dist/unstable/process/ChildProcessSpawner.js +21 -1
  639. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  640. package/dist/unstable/reactivity/Atom.d.ts +73 -12
  641. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  642. package/dist/unstable/reactivity/Atom.js +107 -20
  643. package/dist/unstable/reactivity/Atom.js.map +1 -1
  644. package/dist/unstable/reactivity/AtomHttpApi.d.ts +10 -12
  645. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  646. package/dist/unstable/reactivity/AtomHttpApi.js +42 -12
  647. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  648. package/dist/unstable/reactivity/AtomRegistry.d.ts +6 -0
  649. package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
  650. package/dist/unstable/reactivity/AtomRegistry.js +50 -9
  651. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  652. package/dist/unstable/reactivity/AtomRpc.d.ts +9 -9
  653. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  654. package/dist/unstable/reactivity/AtomRpc.js +47 -21
  655. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  656. package/dist/unstable/reactivity/Hydration.d.ts +39 -0
  657. package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
  658. package/dist/unstable/reactivity/Hydration.js +76 -0
  659. package/dist/unstable/reactivity/Hydration.js.map +1 -0
  660. package/dist/unstable/reactivity/index.d.ts +4 -0
  661. package/dist/unstable/reactivity/index.d.ts.map +1 -1
  662. package/dist/unstable/reactivity/index.js +4 -0
  663. package/dist/unstable/reactivity/index.js.map +1 -1
  664. package/dist/unstable/rpc/Rpc.d.ts +5 -5
  665. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  666. package/dist/unstable/rpc/Rpc.js.map +1 -1
  667. package/dist/unstable/rpc/RpcClient.d.ts +5 -26
  668. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  669. package/dist/unstable/rpc/RpcClient.js +6 -13
  670. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  671. package/dist/unstable/rpc/RpcGroup.d.ts +2 -2
  672. package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
  673. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  674. package/dist/unstable/rpc/RpcMiddleware.d.ts +8 -8
  675. package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
  676. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  677. package/dist/unstable/rpc/RpcSchema.d.ts +13 -0
  678. package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
  679. package/dist/unstable/rpc/RpcSchema.js +14 -0
  680. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  681. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  682. package/dist/unstable/rpc/RpcSerialization.js +34 -9
  683. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  684. package/dist/unstable/rpc/RpcServer.d.ts +5 -9
  685. package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
  686. package/dist/unstable/rpc/RpcServer.js +17 -17
  687. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  688. package/dist/unstable/rpc/Utils.d.ts.map +1 -1
  689. package/dist/unstable/rpc/Utils.js +3 -2
  690. package/dist/unstable/rpc/Utils.js.map +1 -1
  691. package/dist/unstable/schema/Model.d.ts +22 -1
  692. package/dist/unstable/schema/Model.d.ts.map +1 -1
  693. package/dist/unstable/schema/Model.js +15 -0
  694. package/dist/unstable/schema/Model.js.map +1 -1
  695. package/dist/unstable/schema/VariantSchema.d.ts +5 -5
  696. package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
  697. package/dist/unstable/schema/VariantSchema.js +6 -6
  698. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  699. package/dist/unstable/socket/Socket.d.ts +4 -4
  700. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  701. package/dist/unstable/socket/Socket.js +6 -5
  702. package/dist/unstable/socket/Socket.js.map +1 -1
  703. package/dist/unstable/socket/SocketServer.d.ts +3 -3
  704. package/dist/unstable/sql/Migrator.d.ts +1 -1
  705. package/dist/unstable/sql/SqlClient.d.ts +1 -1
  706. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  707. package/dist/unstable/sql/SqlError.d.ts +14 -14
  708. package/dist/unstable/sql/SqlError.d.ts.map +1 -1
  709. package/dist/unstable/sql/SqlError.js +9 -3
  710. package/dist/unstable/sql/SqlError.js.map +1 -1
  711. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  712. package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
  713. package/dist/unstable/sql/SqlModel.js +3 -3
  714. package/dist/unstable/sql/SqlModel.js.map +1 -1
  715. package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
  716. package/dist/unstable/sql/SqlResolver.js +17 -8
  717. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  718. package/dist/unstable/sql/SqlSchema.d.ts +17 -6
  719. package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
  720. package/dist/unstable/sql/SqlSchema.js +17 -7
  721. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  722. package/dist/unstable/sql/Statement.js +0 -1
  723. package/dist/unstable/sql/Statement.js.map +1 -1
  724. package/dist/unstable/workers/Worker.d.ts.map +1 -1
  725. package/dist/unstable/workers/Worker.js +2 -1
  726. package/dist/unstable/workers/Worker.js.map +1 -1
  727. package/dist/unstable/workflow/DurableClock.d.ts +3 -3
  728. package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
  729. package/dist/unstable/workflow/DurableClock.js +3 -3
  730. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  731. package/dist/unstable/workflow/DurableDeferred.js +2 -2
  732. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  733. package/dist/unstable/workflow/Workflow.d.ts +3 -3
  734. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  735. package/dist/unstable/workflow/Workflow.js +1 -1
  736. package/dist/unstable/workflow/Workflow.js.map +1 -1
  737. package/dist/unstable/workflow/WorkflowEngine.d.ts +12 -1
  738. package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
  739. package/dist/unstable/workflow/WorkflowEngine.js +137 -1
  740. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  741. package/package.json +2 -2
  742. package/src/Array.ts +192 -342
  743. package/src/Brand.ts +1 -1
  744. package/src/Cache.ts +9 -8
  745. package/src/Cause.ts +2 -2
  746. package/src/Channel.ts +554 -138
  747. package/src/Chunk.ts +81 -268
  748. package/src/Combiner.ts +280 -13
  749. package/src/Config.ts +186 -24
  750. package/src/Data.ts +539 -376
  751. package/src/DateTime.ts +24 -164
  752. package/src/Duration.ts +13 -13
  753. package/src/Effect.ts +1477 -1126
  754. package/src/Encoding.ts +879 -0
  755. package/src/Equal.ts +278 -111
  756. package/src/ErrorReporter.ts +457 -0
  757. package/src/Exit.ts +24 -12
  758. package/src/Fiber.ts +10 -2
  759. package/src/FileSystem.ts +7 -8
  760. package/src/Filter.ts +52 -63
  761. package/src/Formatter.ts +253 -51
  762. package/src/Function.ts +2 -10
  763. package/src/Graph.ts +24 -11
  764. package/src/HashMap.ts +15 -14
  765. package/src/Iterable.ts +104 -50
  766. package/src/JsonSchema.ts +383 -10
  767. package/src/Latch.ts +112 -0
  768. package/src/Layer.ts +123 -132
  769. package/src/LayerMap.ts +9 -9
  770. package/src/LogLevel.ts +37 -0
  771. package/src/Logger.ts +33 -100
  772. package/src/ManagedRuntime.ts +2 -2
  773. package/src/Metric.ts +6 -8
  774. package/src/Newtype.ts +308 -0
  775. package/src/Optic.ts +948 -19
  776. package/src/Option.ts +32 -24
  777. package/src/Pipeable.ts +32 -1
  778. package/src/PlatformError.ts +5 -5
  779. package/src/Pool.ts +13 -11
  780. package/src/PubSub.ts +10 -9
  781. package/src/Pull.ts +1 -1
  782. package/src/Queue.ts +0 -1
  783. package/src/Random.ts +51 -14
  784. package/src/RcMap.ts +5 -5
  785. package/src/RcRef.ts +1 -1
  786. package/src/Record.ts +42 -152
  787. package/src/Reducer.ts +166 -7
  788. package/src/References.ts +10 -5
  789. package/src/Request.ts +3 -2
  790. package/src/RequestResolver.ts +29 -49
  791. package/src/Result.ts +2 -4
  792. package/src/Runtime.ts +102 -6
  793. package/src/Schedule.ts +462 -242
  794. package/src/Scheduler.ts +12 -0
  795. package/src/Schema.ts +796 -194
  796. package/src/SchemaAST.ts +164 -31
  797. package/src/SchemaGetter.ts +15 -17
  798. package/src/SchemaParser.ts +11 -0
  799. package/src/SchemaRepresentation.ts +49 -24
  800. package/src/SchemaTransformation.ts +189 -4
  801. package/src/ScopedCache.ts +3 -3
  802. package/src/Semaphore.ts +356 -0
  803. package/src/ServiceMap.ts +50 -40
  804. package/src/Sink.ts +78 -26
  805. package/src/Stdio.ts +27 -4
  806. package/src/Stream.ts +586 -608
  807. package/src/Struct.ts +26 -0
  808. package/src/SubscriptionRef.ts +3 -2
  809. package/src/SynchronizedRef.ts +3 -2
  810. package/src/Trie.ts +18 -17
  811. package/src/TxChunk.ts +72 -53
  812. package/src/TxDeferred.ts +394 -0
  813. package/src/TxHashMap.ts +332 -285
  814. package/src/TxHashSet.ts +111 -116
  815. package/src/TxPriorityQueue.ts +767 -0
  816. package/src/TxPubSub.ts +789 -0
  817. package/src/TxQueue.ts +241 -251
  818. package/src/TxReentrantLock.ts +753 -0
  819. package/src/TxRef.ts +50 -38
  820. package/src/TxSemaphore.ts +29 -32
  821. package/src/TxSubscriptionRef.ts +639 -0
  822. package/src/Types.ts +73 -19
  823. package/src/Utils.ts +137 -111
  824. package/src/index.ts +728 -24
  825. package/src/internal/core.ts +12 -5
  826. package/src/internal/dateTime.ts +9 -30
  827. package/src/internal/effect.ts +774 -301
  828. package/src/internal/hashMap.ts +8 -7
  829. package/src/internal/random.ts +20 -0
  830. package/src/internal/rcRef.ts +4 -3
  831. package/src/internal/request.ts +2 -2
  832. package/src/internal/schema/annotations.ts +2 -0
  833. package/src/internal/schema/representation.ts +45 -94
  834. package/src/internal/schema/schema.ts +1 -0
  835. package/src/internal/schema/to-codec.ts +7 -17
  836. package/src/internal/trie.ts +15 -9
  837. package/src/testing/TestClock.ts +13 -11
  838. package/src/testing/TestSchema.ts +332 -35
  839. package/src/testing/index.ts +64 -1
  840. package/src/unstable/ai/AiError.ts +105 -48
  841. package/src/unstable/ai/Chat.ts +47 -61
  842. package/src/unstable/ai/LanguageModel.ts +153 -68
  843. package/src/unstable/ai/McpSchema.ts +73 -13
  844. package/src/unstable/ai/McpServer.ts +271 -61
  845. package/src/unstable/ai/Model.ts +40 -9
  846. package/src/unstable/ai/Prompt.ts +37 -37
  847. package/src/unstable/ai/Response.ts +25 -25
  848. package/src/unstable/ai/Tool.ts +20 -14
  849. package/src/unstable/ai/Toolkit.ts +5 -14
  850. package/src/unstable/ai/index.ts +1 -1
  851. package/src/unstable/ai/internal/codec-transformer.ts +0 -7
  852. package/src/unstable/cli/CliError.ts +47 -59
  853. package/src/unstable/cli/CliOutput.ts +75 -6
  854. package/src/unstable/cli/Command.ts +796 -187
  855. package/src/unstable/cli/GlobalFlag.ts +243 -0
  856. package/src/unstable/cli/HelpDoc.ts +80 -2
  857. package/src/unstable/cli/Primitive.ts +1 -1
  858. package/src/unstable/cli/Prompt.ts +31 -9
  859. package/src/unstable/cli/index.ts +5 -0
  860. package/src/unstable/cli/internal/command.ts +109 -63
  861. package/src/unstable/cli/internal/completions/CommandDescriptor.ts +7 -2
  862. package/src/unstable/cli/internal/config.ts +49 -0
  863. package/src/unstable/cli/internal/help.ts +171 -0
  864. package/src/unstable/cli/internal/parser.ts +66 -61
  865. package/src/unstable/cluster/ClusterCron.ts +2 -2
  866. package/src/unstable/cluster/ClusterWorkflowEngine.ts +5 -4
  867. package/src/unstable/cluster/Entity.ts +11 -10
  868. package/src/unstable/cluster/EntityResource.ts +4 -4
  869. package/src/unstable/cluster/Envelope.ts +1 -1
  870. package/src/unstable/cluster/K8sHttpClient.ts +5 -5
  871. package/src/unstable/cluster/MessageStorage.ts +3 -5
  872. package/src/unstable/cluster/Runners.ts +6 -5
  873. package/src/unstable/cluster/Sharding.ts +12 -10
  874. package/src/unstable/cluster/ShardingConfig.ts +30 -31
  875. package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
  876. package/src/unstable/cluster/internal/entityManager.ts +9 -8
  877. package/src/unstable/cluster/internal/entityReaper.ts +2 -1
  878. package/src/unstable/cluster/internal/resourceRef.ts +2 -1
  879. package/src/unstable/encoding/Sse.ts +3 -5
  880. package/src/unstable/eventlog/EventLog.ts +2 -1
  881. package/src/unstable/http/Cookies.ts +87 -3
  882. package/src/unstable/http/Headers.ts +62 -13
  883. package/src/unstable/http/HttpBody.ts +6 -6
  884. package/src/unstable/http/HttpClient.ts +374 -33
  885. package/src/unstable/http/HttpClientRequest.ts +38 -30
  886. package/src/unstable/http/HttpClientResponse.ts +7 -2
  887. package/src/unstable/http/HttpEffect.ts +54 -68
  888. package/src/unstable/http/HttpMethod.ts +16 -4
  889. package/src/unstable/http/HttpMiddleware.ts +9 -24
  890. package/src/unstable/http/HttpServerError.ts +42 -45
  891. package/src/unstable/http/HttpServerRequest.ts +389 -2
  892. package/src/unstable/http/HttpServerRespondable.ts +6 -6
  893. package/src/unstable/http/HttpServerResponse.ts +337 -4
  894. package/src/unstable/http/HttpStaticServer.ts +456 -0
  895. package/src/unstable/http/Multipart.ts +2 -2
  896. package/src/unstable/http/UrlParams.ts +20 -5
  897. package/src/unstable/http/index.ts +5 -0
  898. package/src/unstable/http/internal/preResponseHandler.ts +15 -0
  899. package/src/unstable/httpapi/HttpApi.ts +6 -6
  900. package/src/unstable/httpapi/HttpApiBuilder.ts +81 -28
  901. package/src/unstable/httpapi/HttpApiClient.ts +100 -11
  902. package/src/unstable/httpapi/HttpApiEndpoint.ts +71 -87
  903. package/src/unstable/httpapi/HttpApiError.ts +51 -28
  904. package/src/unstable/httpapi/HttpApiGroup.ts +7 -6
  905. package/src/unstable/httpapi/HttpApiMiddleware.ts +4 -4
  906. package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
  907. package/src/unstable/httpapi/HttpApiSecurity.ts +3 -3
  908. package/src/unstable/httpapi/OpenApi.ts +41 -23
  909. package/src/unstable/observability/Otlp.ts +12 -12
  910. package/src/unstable/observability/OtlpExporter.ts +3 -3
  911. package/src/unstable/observability/OtlpLogger.ts +13 -9
  912. package/src/unstable/observability/OtlpMetrics.ts +4 -4
  913. package/src/unstable/observability/OtlpTracer.ts +4 -4
  914. package/src/unstable/persistence/KeyValueStore.ts +6 -6
  915. package/src/unstable/persistence/Persistable.ts +2 -2
  916. package/src/unstable/persistence/PersistedCache.ts +20 -9
  917. package/src/unstable/persistence/PersistedQueue.ts +25 -24
  918. package/src/unstable/persistence/Persistence.ts +3 -3
  919. package/src/unstable/persistence/RateLimiter.ts +4 -4
  920. package/src/unstable/process/ChildProcess.ts +6 -208
  921. package/src/unstable/process/ChildProcessSpawner.ts +75 -14
  922. package/src/unstable/reactivity/Atom.ts +211 -50
  923. package/src/unstable/reactivity/AtomHttpApi.ts +66 -31
  924. package/src/unstable/reactivity/AtomRegistry.ts +61 -9
  925. package/src/unstable/reactivity/AtomRpc.ts +51 -20
  926. package/src/unstable/reactivity/Hydration.ts +112 -0
  927. package/src/unstable/reactivity/index.ts +5 -0
  928. package/src/unstable/rpc/Rpc.ts +7 -9
  929. package/src/unstable/rpc/RpcClient.ts +12 -54
  930. package/src/unstable/rpc/RpcGroup.ts +4 -4
  931. package/src/unstable/rpc/RpcMiddleware.ts +15 -9
  932. package/src/unstable/rpc/RpcSchema.ts +17 -0
  933. package/src/unstable/rpc/RpcSerialization.ts +44 -9
  934. package/src/unstable/rpc/RpcServer.ts +28 -32
  935. package/src/unstable/rpc/Utils.ts +3 -2
  936. package/src/unstable/schema/Model.ts +31 -0
  937. package/src/unstable/schema/VariantSchema.ts +9 -9
  938. package/src/unstable/socket/Socket.ts +16 -17
  939. package/src/unstable/sql/SqlClient.ts +1 -1
  940. package/src/unstable/sql/SqlError.ts +11 -9
  941. package/src/unstable/sql/SqlModel.ts +5 -5
  942. package/src/unstable/sql/SqlResolver.ts +17 -7
  943. package/src/unstable/sql/SqlSchema.ts +42 -26
  944. package/src/unstable/sql/Statement.ts +0 -1
  945. package/src/unstable/workers/Worker.ts +2 -1
  946. package/src/unstable/workflow/DurableClock.ts +8 -8
  947. package/src/unstable/workflow/DurableDeferred.ts +2 -2
  948. package/src/unstable/workflow/Workflow.ts +6 -2
  949. package/src/unstable/workflow/WorkflowEngine.ts +185 -2
  950. package/dist/PartitionedSemaphore.d.ts +0 -52
  951. package/dist/PartitionedSemaphore.d.ts.map +0 -1
  952. package/dist/PartitionedSemaphore.js.map +0 -1
  953. package/dist/encoding/Base64.d.ts +0 -67
  954. package/dist/encoding/Base64.d.ts.map +0 -1
  955. package/dist/encoding/Base64.js +0 -146
  956. package/dist/encoding/Base64.js.map +0 -1
  957. package/dist/encoding/Base64Url.d.ts +0 -60
  958. package/dist/encoding/Base64Url.d.ts.map +0 -1
  959. package/dist/encoding/Base64Url.js +0 -89
  960. package/dist/encoding/Base64Url.js.map +0 -1
  961. package/dist/encoding/EncodingError.d.ts +0 -31
  962. package/dist/encoding/EncodingError.d.ts.map +0 -1
  963. package/dist/encoding/EncodingError.js +0 -22
  964. package/dist/encoding/EncodingError.js.map +0 -1
  965. package/dist/encoding/Hex.d.ts +0 -61
  966. package/dist/encoding/Hex.d.ts.map +0 -1
  967. package/dist/encoding/Hex.js +0 -115
  968. package/dist/encoding/Hex.js.map +0 -1
  969. package/dist/encoding/index.d.ts +0 -26
  970. package/dist/encoding/index.d.ts.map +0 -1
  971. package/dist/encoding/index.js +0 -27
  972. package/dist/encoding/index.js.map +0 -1
  973. package/dist/unstable/cli/internal/builtInFlags.d.ts +0 -7
  974. package/dist/unstable/cli/internal/builtInFlags.d.ts.map +0 -1
  975. package/dist/unstable/cli/internal/builtInFlags.js +0 -44
  976. package/dist/unstable/cli/internal/builtInFlags.js.map +0 -1
  977. package/src/PartitionedSemaphore.ts +0 -182
  978. package/src/encoding/Base64.ts +0 -366
  979. package/src/encoding/Base64Url.ts +0 -104
  980. package/src/encoding/EncodingError.ts +0 -35
  981. package/src/encoding/Hex.ts +0 -390
  982. package/src/encoding/index.ts +0 -31
  983. package/src/unstable/cli/internal/builtInFlags.ts +0 -78
package/dist/Schema.js CHANGED
@@ -2,17 +2,21 @@
2
2
  * @since 4.0.0
3
3
  */
4
4
  import * as Arr from "./Array.js";
5
+ import * as BigDecimal_ from "./BigDecimal.js";
5
6
  import * as Cause_ from "./Cause.js";
7
+ import * as Chunk_ from "./Chunk.js";
6
8
  import * as Data from "./Data.js";
7
9
  import * as DateTime from "./DateTime.js";
8
10
  import * as Duration_ from "./Duration.js";
9
11
  import * as Effect from "./Effect.js";
10
- import * as Base64 from "./encoding/Base64.js";
12
+ import * as Encoding from "./Encoding.js";
11
13
  import * as Equal from "./Equal.js";
12
14
  import * as Equivalence from "./Equivalence.js";
13
15
  import * as Exit_ from "./Exit.js";
14
16
  import { format, formatDate, formatPropertyKey } from "./Formatter.js";
15
17
  import { identity } from "./Function.js";
18
+ import * as HashMap_ from "./HashMap.js";
19
+ import * as HashSet_ from "./HashSet.js";
16
20
  import * as core from "./internal/core.js";
17
21
  import * as InternalAnnotations from "./internal/schema/annotations.js";
18
22
  import * as InternalArbitrary from "./internal/schema/arbitrary.js";
@@ -782,11 +786,12 @@ export function encodeKeys(mapping) {
782
786
  const fields = {};
783
787
  const reverseMapping = {};
784
788
  for (const k in self.fields) {
789
+ const encoded = toEncoded(self.fields[k]);
785
790
  if (Object.hasOwn(mapping, k)) {
786
- fields[mapping[k]] = toEncoded(self.fields[k]);
791
+ fields[mapping[k]] = encoded;
787
792
  reverseMapping[mapping[k]] = k;
788
793
  } else {
789
- fields[k] = self.fields[k];
794
+ fields[k] = encoded;
790
795
  }
791
796
  }
792
797
  return Struct(fields).pipe(decodeTo(self, Transformation.transform({
@@ -1244,17 +1249,6 @@ export function TaggedStruct(value, fields) {
1244
1249
  ...fields
1245
1250
  });
1246
1251
  }
1247
- /** @internal */
1248
- export function _getTagValueIfPropertyKey(tag, ast) {
1249
- const ps = ast.propertySignatures.find(p => p.name === tag);
1250
- if (ps) {
1251
- if (AST.isLiteral(ps.type) && Predicate.isPropertyKey(ps.type.literal)) {
1252
- return ps.type.literal;
1253
- } else if (AST.isUniqueSymbol(ps.type)) {
1254
- return ps.type.symbol;
1255
- }
1256
- }
1257
- }
1258
1252
  /**
1259
1253
  * @since 4.0.0
1260
1254
  * @experimental
@@ -1276,15 +1270,16 @@ export function toTaggedUnion(tag) {
1276
1270
  if (AST.isUnion(ast) && "members" in schema && globalThis.Array.isArray(schema.members) && schema.members.every(isSchema)) {
1277
1271
  return schema.members.forEach(walk);
1278
1272
  }
1279
- if (AST.isObjects(ast)) {
1280
- const key = _getTagValueIfPropertyKey(tag, ast);
1281
- if (key !== undefined) {
1282
- cases[key] = schema;
1283
- guards[key] = is(toType(schema));
1273
+ const sentinels = AST.collectSentinels(ast);
1274
+ if (sentinels.length > 0) {
1275
+ const literal = sentinels.find(s => s.key === tag)?.literal;
1276
+ if (Predicate.isPropertyKey(literal)) {
1277
+ cases[literal] = schema;
1278
+ guards[literal] = is(toType(schema));
1284
1279
  return;
1285
1280
  }
1286
1281
  }
1287
- throw new globalThis.Error("No literal found");
1282
+ throw new globalThis.Error("No literal or unique symbol found");
1288
1283
  }
1289
1284
  function match() {
1290
1285
  if (arguments.length === 1) {
@@ -2528,6 +2523,58 @@ export const isBetweenBigInt = /*#__PURE__*/makeIsBetween({
2528
2523
  }
2529
2524
  })
2530
2525
  });
2526
+ /**
2527
+ * Validates that a BigDecimal is greater than the specified value (exclusive).
2528
+ *
2529
+ * @category BigDecimal checks
2530
+ * @since 4.0.0
2531
+ */
2532
+ export const isGreaterThanBigDecimal = /*#__PURE__*/makeIsGreaterThan({
2533
+ order: BigDecimal_.Order,
2534
+ formatter: bd => BigDecimal_.format(bd)
2535
+ });
2536
+ /**
2537
+ * Validates that a BigDecimal is greater than or equal to the specified value
2538
+ * (inclusive).
2539
+ *
2540
+ * @category BigDecimal checks
2541
+ * @since 4.0.0
2542
+ */
2543
+ export const isGreaterThanOrEqualToBigDecimal = /*#__PURE__*/makeIsGreaterThanOrEqualTo({
2544
+ order: BigDecimal_.Order,
2545
+ formatter: bd => BigDecimal_.format(bd)
2546
+ });
2547
+ /**
2548
+ * Validates that a BigDecimal is less than the specified value (exclusive).
2549
+ *
2550
+ * @category BigDecimal checks
2551
+ * @since 4.0.0
2552
+ */
2553
+ export const isLessThanBigDecimal = /*#__PURE__*/makeIsLessThan({
2554
+ order: BigDecimal_.Order,
2555
+ formatter: bd => BigDecimal_.format(bd)
2556
+ });
2557
+ /**
2558
+ * Validates that a BigDecimal is less than or equal to the specified value
2559
+ * (inclusive).
2560
+ *
2561
+ * @category BigDecimal checks
2562
+ * @since 4.0.0
2563
+ */
2564
+ export const isLessThanOrEqualToBigDecimal = /*#__PURE__*/makeIsLessThanOrEqualTo({
2565
+ order: BigDecimal_.Order,
2566
+ formatter: bd => BigDecimal_.format(bd)
2567
+ });
2568
+ /**
2569
+ * Validates that a BigDecimal is within a specified range.
2570
+ *
2571
+ * @category BigDecimal checks
2572
+ * @since 4.0.0
2573
+ */
2574
+ export const isBetweenBigDecimal = /*#__PURE__*/makeIsBetween({
2575
+ order: BigDecimal_.Order,
2576
+ formatter: bd => BigDecimal_.format(bd)
2577
+ });
2531
2578
  /**
2532
2579
  * Validates that a value has at least the specified length. Works with strings
2533
2580
  * and arrays.
@@ -3041,6 +3088,40 @@ export function Option(value) {
3041
3088
  export function OptionFromNullOr(schema) {
3042
3089
  return NullOr(schema).pipe(decodeTo(Option(toType(schema)), Transformation.optionFromNullOr()));
3043
3090
  }
3091
+ /**
3092
+ * Decodes an undefined-or value `T` to a required `Option<T>` value.
3093
+ *
3094
+ * Decoding:
3095
+ * - `undefined` is decoded as `None`
3096
+ * - other values are decoded as `Some`
3097
+ *
3098
+ * Encoding:
3099
+ * - `None` is encoded as `undefined`
3100
+ * - `Some` is encoded as the value
3101
+ *
3102
+ * @category Option
3103
+ * @since 4.0.0
3104
+ */
3105
+ export function OptionFromUndefinedOr(schema) {
3106
+ return UndefinedOr(schema).pipe(decodeTo(Option(toType(schema)), Transformation.optionFromUndefinedOr()));
3107
+ }
3108
+ /**
3109
+ * Decodes a nullish value `T` to a required `Option<T>` value.
3110
+ *
3111
+ * Decoding:
3112
+ * - `null` and `undefined` are decoded as `None`
3113
+ * - other values are decoded as `Some`
3114
+ *
3115
+ * Encoding:
3116
+ * - `None` is encoded as `null` or `undefined` depending on the provided `options.onNoneEncoding` (defaults to `undefined`)
3117
+ * - `Some` is encoded as the value
3118
+ *
3119
+ * @category Option
3120
+ * @since 4.0.0
3121
+ */
3122
+ export function OptionFromNullishOr(schema, options) {
3123
+ return NullishOr(schema).pipe(decodeTo(Option(toType(schema)), Transformation.optionFromNullishOr(options)));
3124
+ }
3044
3125
  /**
3045
3126
  * Decodes an optional value `A` to a required `Option<A>` value.
3046
3127
  *
@@ -3225,10 +3306,10 @@ export function RedactedFromValue(value, options) {
3225
3306
  }));
3226
3307
  }
3227
3308
  /**
3228
- * @category CauseFailure
3309
+ * @category CauseReason
3229
3310
  * @since 4.0.0
3230
3311
  */
3231
- export function CauseFailure(error, defect) {
3312
+ export function CauseReason(error, defect) {
3232
3313
  const schema = declareConstructor()([error, defect], ([error, defect]) => (input, ast, options) => {
3233
3314
  if (!Cause_.isReason(input)) {
3234
3315
  return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)));
@@ -3252,7 +3333,7 @@ export function CauseFailure(error, defect) {
3252
3333
  _tag: "effect/Cause/Failure"
3253
3334
  },
3254
3335
  generation: {
3255
- runtime: `Schema.CauseFailure(?, ?)`,
3336
+ runtime: `Schema.CauseReason(?, ?)`,
3256
3337
  Type: `Cause.Failure<?, ?>`,
3257
3338
  importDeclaration: `import * as Cause from "effect/Cause"`
3258
3339
  },
@@ -3279,16 +3360,16 @@ export function CauseFailure(error, defect) {
3279
3360
  },
3280
3361
  encode: identity
3281
3362
  })),
3282
- toArbitrary: ([error, defect]) => causeFailureToArbitrary(error, defect),
3283
- toEquivalence: ([error, defect]) => causeFailureToEquivalence(error, defect),
3284
- toFormatter: ([error, defect]) => causeFailureToFormatter(error, defect)
3363
+ toArbitrary: ([error, defect]) => causeReasonToArbitrary(error, defect),
3364
+ toEquivalence: ([error, defect]) => causeReasonToEquivalence(error, defect),
3365
+ toFormatter: ([error, defect]) => causeReasonToFormatter(error, defect)
3285
3366
  });
3286
3367
  return make(schema.ast, {
3287
3368
  error,
3288
3369
  defect
3289
3370
  });
3290
3371
  }
3291
- function causeFailureToArbitrary(error, defect) {
3372
+ function causeReasonToArbitrary(error, defect) {
3292
3373
  return (fc, ctx) => {
3293
3374
  return fc.oneof(ctx?.isSuspend ? {
3294
3375
  maxDepth: 2,
@@ -3298,7 +3379,7 @@ function causeFailureToArbitrary(error, defect) {
3298
3379
  }).map(Cause_.makeInterruptReason), error.map(e => Cause_.makeFailReason(e)), defect.map(d => Cause_.makeDieReason(d)));
3299
3380
  };
3300
3381
  }
3301
- function causeFailureToEquivalence(error, defect) {
3382
+ function causeReasonToEquivalence(error, defect) {
3302
3383
  return (a, b) => {
3303
3384
  if (a._tag !== b._tag) return false;
3304
3385
  switch (a._tag) {
@@ -3311,7 +3392,7 @@ function causeFailureToEquivalence(error, defect) {
3311
3392
  }
3312
3393
  };
3313
3394
  }
3314
- function causeFailureToFormatter(error, defect) {
3395
+ function causeReasonToFormatter(error, defect) {
3315
3396
  return t => {
3316
3397
  switch (t._tag) {
3317
3398
  case "Fail":
@@ -3328,15 +3409,17 @@ function causeFailureToFormatter(error, defect) {
3328
3409
  * @since 4.0.0
3329
3410
  */
3330
3411
  export function Cause(error, defect) {
3331
- const schema = declareConstructor()([error, defect], ([error, defect]) => (input, ast, options) => {
3332
- if (!Cause_.isCause(input)) {
3333
- return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)));
3334
- }
3335
- const failures = Array(CauseFailure(error, defect));
3336
- return Effect.mapBothEager(Parser.decodeUnknownEffect(failures)(input.reasons, options), {
3337
- onSuccess: Cause_.fromReasons,
3338
- onFailure: issue => new Issue.Composite(ast, Option_.some(input), [new Issue.Pointer(["failures"], issue)])
3339
- });
3412
+ const schema = declareConstructor()([error, defect], ([error, defect]) => {
3413
+ const failures = Array(CauseReason(error, defect));
3414
+ return (input, ast, options) => {
3415
+ if (!Cause_.isCause(input)) {
3416
+ return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)));
3417
+ }
3418
+ return Effect.mapBothEager(Parser.decodeUnknownEffect(failures)(input.reasons, options), {
3419
+ onSuccess: Cause_.fromReasons,
3420
+ onFailure: issue => new Issue.Composite(ast, Option_.some(input), [new Issue.Pointer(["failures"], issue)])
3421
+ });
3422
+ };
3340
3423
  }, {
3341
3424
  typeConstructor: {
3342
3425
  _tag: "effect/Cause"
@@ -3347,7 +3430,7 @@ export function Cause(error, defect) {
3347
3430
  importDeclaration: `import * as Cause from "effect/Cause"`
3348
3431
  },
3349
3432
  expected: "Cause",
3350
- toCodec: ([error, defect]) => link()(Array(CauseFailure(error, defect)), Transformation.transform({
3433
+ toCodec: ([error, defect]) => link()(Array(CauseReason(error, defect)), Transformation.transform({
3351
3434
  decode: Cause_.fromReasons,
3352
3435
  encode: ({
3353
3436
  reasons: failures
@@ -3364,16 +3447,16 @@ export function Cause(error, defect) {
3364
3447
  }
3365
3448
  function causeToArbitrary(error, defect) {
3366
3449
  return (fc, ctx) => {
3367
- return fc.array(causeFailureToArbitrary(error, defect)(fc, ctx)).map(Cause_.fromReasons);
3450
+ return fc.array(causeReasonToArbitrary(error, defect)(fc, ctx)).map(Cause_.fromReasons);
3368
3451
  };
3369
3452
  }
3370
3453
  function causeToEquivalence(error, defect) {
3371
- const failures = Equivalence.Array(causeFailureToEquivalence(error, defect));
3454
+ const failures = Equivalence.Array(causeReasonToEquivalence(error, defect));
3372
3455
  return (a, b) => failures(a.reasons, b.reasons);
3373
3456
  }
3374
3457
  function causeToFormatter(error, defect) {
3375
- const causeFailure = causeFailureToFormatter(error, defect);
3376
- return t => `Cause([${t.reasons.map(causeFailure).join(", ")}])`;
3458
+ const causeReason = causeReasonToFormatter(error, defect);
3459
+ return t => `Cause([${t.reasons.map(causeReason).join(", ")}])`;
3377
3460
  }
3378
3461
  const ErrorJsonEncoded = /*#__PURE__*/Struct({
3379
3462
  message: String,
@@ -3459,23 +3542,25 @@ export const DefectWithStack = /*#__PURE__*/Union([/*#__PURE__*/ErrorJsonEncoded
3459
3542
  * @since 4.0.0
3460
3543
  */
3461
3544
  export function Exit(value, error, defect) {
3462
- const schema = declareConstructor()([value, error, defect], ([value, error, defect]) => (input, ast, options) => {
3463
- if (!Exit_.isExit(input)) {
3464
- return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)));
3465
- }
3545
+ const schema = declareConstructor()([value, error, defect], ([value, error, defect]) => {
3466
3546
  const cause = Cause(error, defect);
3467
- switch (input._tag) {
3468
- case "Success":
3469
- return Effect.mapBothEager(Parser.decodeUnknownEffect(value)(input.value, options), {
3470
- onSuccess: Exit_.succeed,
3471
- onFailure: issue => new Issue.Composite(ast, Option_.some(input), [new Issue.Pointer(["value"], issue)])
3472
- });
3473
- case "Failure":
3474
- return Effect.mapBothEager(Parser.decodeUnknownEffect(cause)(input.cause, options), {
3475
- onSuccess: Exit_.failCause,
3476
- onFailure: issue => new Issue.Composite(ast, Option_.some(input), [new Issue.Pointer(["cause"], issue)])
3477
- });
3478
- }
3547
+ return (input, ast, options) => {
3548
+ if (!Exit_.isExit(input)) {
3549
+ return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)));
3550
+ }
3551
+ switch (input._tag) {
3552
+ case "Success":
3553
+ return Effect.mapBothEager(Parser.decodeUnknownEffect(value)(input.value, options), {
3554
+ onSuccess: Exit_.succeed,
3555
+ onFailure: issue => new Issue.Composite(ast, Option_.some(input), [new Issue.Pointer(["value"], issue)])
3556
+ });
3557
+ case "Failure":
3558
+ return Effect.mapBothEager(Parser.decodeUnknownEffect(cause)(input.cause, options), {
3559
+ onSuccess: Exit_.failCause,
3560
+ onFailure: issue => new Issue.Composite(ast, Option_.some(input), [new Issue.Pointer(["cause"], issue)])
3561
+ });
3562
+ }
3563
+ };
3479
3564
  }, {
3480
3565
  typeConstructor: {
3481
3566
  _tag: "effect/Exit"
@@ -3544,15 +3629,17 @@ export function Exit(value, error, defect) {
3544
3629
  * @since 4.0.0
3545
3630
  */
3546
3631
  export function ReadonlyMap(key, value) {
3547
- const schema = declareConstructor()([key, value], ([key, value]) => (input, ast, options) => {
3548
- if (input instanceof globalThis.Map) {
3549
- const array = Array(Tuple([key, value]));
3550
- return Effect.mapBothEager(Parser.decodeUnknownEffect(array)([...input], options), {
3551
- onSuccess: array => new globalThis.Map(array),
3552
- onFailure: issue => new Issue.Composite(ast, Option_.some(input), [new Issue.Pointer(["entries"], issue)])
3553
- });
3554
- }
3555
- return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)));
3632
+ const schema = declareConstructor()([key, value], ([key, value]) => {
3633
+ const array = Array(Tuple([key, value]));
3634
+ return (input, ast, options) => {
3635
+ if (input instanceof globalThis.Map) {
3636
+ return Effect.mapBothEager(Parser.decodeUnknownEffect(array)([...input], options), {
3637
+ onSuccess: array => new globalThis.Map(array),
3638
+ onFailure: issue => new Issue.Composite(ast, Option_.some(input), [new Issue.Pointer(["entries"], issue)])
3639
+ });
3640
+ }
3641
+ return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)));
3642
+ };
3556
3643
  }, {
3557
3644
  typeConstructor: {
3558
3645
  _tag: "ReadonlyMap"
@@ -3587,20 +3674,76 @@ export function ReadonlyMap(key, value) {
3587
3674
  value
3588
3675
  });
3589
3676
  }
3677
+ /**
3678
+ * Creates a schema that validates a `HashMap` where keys and values must
3679
+ * conform to the provided schemas.
3680
+ *
3681
+ * @category HashMap
3682
+ * @since 4.0.0
3683
+ */
3684
+ export function HashMap(key, value) {
3685
+ const schema = declareConstructor()([key, value], ([key, value]) => {
3686
+ const entries = Array(Tuple([key, value]));
3687
+ return (input, ast, options) => {
3688
+ if (HashMap_.isHashMap(input)) {
3689
+ return Effect.mapBothEager(Parser.decodeUnknownEffect(entries)(HashMap_.toEntries(input), options), {
3690
+ onSuccess: HashMap_.fromIterable,
3691
+ onFailure: issue => new Issue.Composite(ast, Option_.some(input), [new Issue.Pointer(["entries"], issue)])
3692
+ });
3693
+ }
3694
+ return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)));
3695
+ };
3696
+ }, {
3697
+ typeConstructor: {
3698
+ _tag: "effect/HashMap"
3699
+ },
3700
+ generation: {
3701
+ runtime: `Schema.HashMap(?, ?)`,
3702
+ Type: `HashMap.HashMap<?, ?>`,
3703
+ importDeclaration: `import * as HashMap from "effect/HashMap"`
3704
+ },
3705
+ expected: "HashMap",
3706
+ toCodec: ([key, value]) => link()(Array(Tuple([key, value])), Transformation.transform({
3707
+ decode: HashMap_.fromIterable,
3708
+ encode: HashMap_.toEntries
3709
+ })),
3710
+ toArbitrary: ([key, value]) => (fc, ctx) => {
3711
+ return fc.oneof(ctx?.isSuspend ? {
3712
+ maxDepth: 2,
3713
+ depthIdentifier: "HashMap"
3714
+ } : {}, fc.constant([]), fc.array(fc.tuple(key, value), ctx?.constraints?.array)).map(HashMap_.fromIterable);
3715
+ },
3716
+ toEquivalence: ([key, value]) => Equal.makeCompareMap(key, value),
3717
+ toFormatter: ([key, value]) => t => {
3718
+ const size = HashMap_.size(t);
3719
+ if (size === 0) {
3720
+ return "HashMap(0) {}";
3721
+ }
3722
+ const entries = HashMap_.toEntries(t).sort().map(([k, v]) => `${key(k)} => ${value(v)}`);
3723
+ return `HashMap(${size}) { ${entries.join(", ")} }`;
3724
+ }
3725
+ });
3726
+ return make(schema.ast, {
3727
+ key,
3728
+ value
3729
+ });
3730
+ }
3590
3731
  /**
3591
3732
  * @category ReadonlySet
3592
3733
  * @since 4.0.0
3593
3734
  */
3594
3735
  export function ReadonlySet(value) {
3595
- const schema = declareConstructor()([value], ([value]) => (input, ast, options) => {
3596
- if (input instanceof globalThis.Set) {
3597
- const array = Array(value);
3598
- return Effect.mapBothEager(Parser.decodeUnknownEffect(array)([...input], options), {
3599
- onSuccess: array => new globalThis.Set(array),
3600
- onFailure: issue => new Issue.Composite(ast, Option_.some(input), [new Issue.Pointer(["values"], issue)])
3601
- });
3602
- }
3603
- return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)));
3736
+ const schema = declareConstructor()([value], ([value]) => {
3737
+ const array = Array(value);
3738
+ return (input, ast, options) => {
3739
+ if (input instanceof globalThis.Set) {
3740
+ return Effect.mapBothEager(Parser.decodeUnknownEffect(array)([...input], options), {
3741
+ onSuccess: array => new globalThis.Set(array),
3742
+ onFailure: issue => new Issue.Composite(ast, Option_.some(input), [new Issue.Pointer(["values"], issue)])
3743
+ });
3744
+ }
3745
+ return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)));
3746
+ };
3604
3747
  }, {
3605
3748
  typeConstructor: {
3606
3749
  _tag: "ReadonlySet"
@@ -3634,6 +3777,110 @@ export function ReadonlySet(value) {
3634
3777
  value
3635
3778
  });
3636
3779
  }
3780
+ /**
3781
+ * Creates a schema that validates a `HashSet` where values must conform to the
3782
+ * provided schema.
3783
+ *
3784
+ * @category HashSet
3785
+ * @since 4.0.0
3786
+ */
3787
+ export function HashSet(value) {
3788
+ const schema = declareConstructor()([value], ([value]) => {
3789
+ const values = Array(value);
3790
+ return (input, ast, options) => {
3791
+ if (HashSet_.isHashSet(input)) {
3792
+ return Effect.mapBothEager(Parser.decodeUnknownEffect(values)(Arr.fromIterable(input), options), {
3793
+ onSuccess: HashSet_.fromIterable,
3794
+ onFailure: issue => new Issue.Composite(ast, Option_.some(input), [new Issue.Pointer(["values"], issue)])
3795
+ });
3796
+ }
3797
+ return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)));
3798
+ };
3799
+ }, {
3800
+ typeConstructor: {
3801
+ _tag: "effect/HashSet"
3802
+ },
3803
+ generation: {
3804
+ runtime: `Schema.HashSet(?)`,
3805
+ Type: `HashSet.HashSet<?>`
3806
+ },
3807
+ expected: "HashSet",
3808
+ toCodec: ([value]) => link()(Array(value), Transformation.transform({
3809
+ decode: HashSet_.fromIterable,
3810
+ encode: Arr.fromIterable
3811
+ })),
3812
+ toArbitrary: ([value]) => (fc, ctx) => {
3813
+ return fc.oneof(ctx?.isSuspend ? {
3814
+ maxDepth: 2,
3815
+ depthIdentifier: "HashSet"
3816
+ } : {}, fc.constant([]), fc.array(value, ctx?.constraints?.array)).map(HashSet_.fromIterable);
3817
+ },
3818
+ toEquivalence: ([value]) => Equal.makeCompareSet(value),
3819
+ toFormatter: ([value]) => t => {
3820
+ const size = HashSet_.size(t);
3821
+ if (size === 0) {
3822
+ return "HashSet(0) {}";
3823
+ }
3824
+ const values = globalThis.Array.from(t).sort().map(v => `${value(v)}`);
3825
+ return `HashSet(${size}) { ${values.join(", ")} }`;
3826
+ }
3827
+ });
3828
+ return make(schema.ast, {
3829
+ value
3830
+ });
3831
+ }
3832
+ /**
3833
+ * Creates a schema that validates a `Chunk` where values must conform to the
3834
+ * provided schema.
3835
+ *
3836
+ * @category Chunk
3837
+ * @since 4.0.0
3838
+ */
3839
+ export function Chunk(value) {
3840
+ const schema = declareConstructor()([value], ([value]) => {
3841
+ const values = Array(value);
3842
+ return (input, ast, options) => {
3843
+ if (Chunk_.isChunk(input)) {
3844
+ return Effect.mapBothEager(Parser.decodeUnknownEffect(values)(Arr.fromIterable(input), options), {
3845
+ onSuccess: Chunk_.fromIterable,
3846
+ onFailure: issue => new Issue.Composite(ast, Option_.some(input), [new Issue.Pointer(["values"], issue)])
3847
+ });
3848
+ }
3849
+ return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)));
3850
+ };
3851
+ }, {
3852
+ typeConstructor: {
3853
+ _tag: "effect/Chunk"
3854
+ },
3855
+ generation: {
3856
+ runtime: `Schema.Chunk(?)`,
3857
+ Type: `Chunk.Chunk<?>`
3858
+ },
3859
+ expected: "Chunk",
3860
+ toCodec: ([value]) => link()(Array(value), Transformation.transform({
3861
+ decode: Chunk_.fromIterable,
3862
+ encode: Arr.fromIterable
3863
+ })),
3864
+ toArbitrary: ([value]) => (fc, ctx) => {
3865
+ return fc.oneof(ctx?.isSuspend ? {
3866
+ maxDepth: 2,
3867
+ depthIdentifier: "Chunk"
3868
+ } : {}, fc.constant([]), fc.array(value, ctx?.constraints?.array)).map(Chunk_.fromIterable);
3869
+ },
3870
+ toEquivalence: ([value]) => Chunk_.makeEquivalence(value),
3871
+ toFormatter: ([value]) => t => {
3872
+ const size = Chunk_.size(t);
3873
+ if (size === 0) {
3874
+ return "Chunk(0) {}";
3875
+ }
3876
+ const values = globalThis.Array.from(t).sort().map(v => `${value(v)}`);
3877
+ return `Chunk(${size}) { ${values.join(", ")} }`;
3878
+ }
3879
+ });
3880
+ return make(schema.ast, {
3881
+ value
3882
+ });
3883
+ }
3637
3884
  /**
3638
3885
  * @since 4.0.0
3639
3886
  */
@@ -3842,6 +4089,35 @@ export const DurationFromNanos = /*#__PURE__*/BigInt.check(isGreaterThanOrEqualT
3842
4089
  * @since 4.0.0
3843
4090
  */
3844
4091
  export const DurationFromMillis = /*#__PURE__*/Number.check(isGreaterThanOrEqualTo(0)).pipe(/*#__PURE__*/decodeTo(Duration, Transformation.durationFromMillis));
4092
+ /**
4093
+ * A schema for `BigDecimal` values.
4094
+ *
4095
+ * **Default JSON serializer**
4096
+ *
4097
+ * - encodes `BigDecimal` as a `string`
4098
+ *
4099
+ * @since 4.0.0
4100
+ */
4101
+ export const BigDecimal = /*#__PURE__*/declare(BigDecimal_.isBigDecimal, {
4102
+ typeConstructor: {
4103
+ _tag: "effect/BigDecimal"
4104
+ },
4105
+ generation: {
4106
+ runtime: `Schema.BigDecimal`,
4107
+ Type: `BigDecimal.BigDecimal`,
4108
+ importDeclaration: `import * as BigDecimal from "effect/BigDecimal"`
4109
+ },
4110
+ expected: "BigDecimal",
4111
+ toCodecJson: () => link()(String.annotate({
4112
+ expected: "a string that will be decoded as a BigDecimal"
4113
+ }), Transformation.bigDecimalFromString),
4114
+ toArbitrary: () => fc => fc.tuple(fc.bigInt(), fc.integer({
4115
+ min: 0,
4116
+ max: 20
4117
+ })).map(([value, scale]) => BigDecimal_.make(value, scale)),
4118
+ toFormatter: () => bd => BigDecimal_.format(bd),
4119
+ toEquivalence: () => BigDecimal_.Equivalence
4120
+ });
3845
4121
  /**
3846
4122
  * A transformation schema that decodes a JSON-encoded string into an `unknown` value.
3847
4123
  *
@@ -3953,7 +4229,7 @@ export const File = /*#__PURE__*/instanceOf(globalThis.File, {
3953
4229
  name: String,
3954
4230
  lastModified: Number
3955
4231
  }), Transformation.transformOrFail({
3956
- decode: e => Result_.match(Base64.decode(e.data), {
4232
+ decode: e => Result_.match(Encoding.decodeBase64(e.data), {
3957
4233
  onFailure: error => Effect.fail(new Issue.InvalidValue(Option_.some(e.data), {
3958
4234
  message: error.message
3959
4235
  })),
@@ -3969,7 +4245,7 @@ export const File = /*#__PURE__*/instanceOf(globalThis.File, {
3969
4245
  try: async () => {
3970
4246
  const bytes = new globalThis.Uint8Array(await file.arrayBuffer());
3971
4247
  return {
3972
- data: Base64.encode(bytes),
4248
+ data: Encoding.encodeBase64(bytes),
3973
4249
  type: file.type,
3974
4250
  name: file.name,
3975
4251
  lastModified: file.lastModified
@@ -4383,7 +4659,7 @@ export const Uint8ArrayFromHex = /*#__PURE__*/String.annotate({
4383
4659
  */
4384
4660
  export const DateTimeUtc = /*#__PURE__*/declare(u => DateTime.isDateTime(u) && DateTime.isUtc(u), {
4385
4661
  typeConstructor: {
4386
- _tag: "DateTime.Utc"
4662
+ _tag: "effect/DateTime.Utc"
4387
4663
  },
4388
4664
  generation: {
4389
4665
  runtime: `Schema.DateTimeUtc`,
@@ -4391,10 +4667,7 @@ export const DateTimeUtc = /*#__PURE__*/declare(u => DateTime.isDateTime(u) && D
4391
4667
  importDeclaration: `import * as DateTime from "effect/DateTime"`
4392
4668
  },
4393
4669
  expected: "DateTime.Utc",
4394
- toCodecJson: () => link()(String, {
4395
- decode: Getter.dateTimeUtcFromInput(),
4396
- encode: Getter.transform(DateTime.formatIso)
4397
- }),
4670
+ toCodecJson: () => link()(String, Transformation.dateTimeUtcFromString),
4398
4671
  toArbitrary: () => (fc, ctx) => fc.date({
4399
4672
  noInvalidDate: true,
4400
4673
  ...ctx?.constraints?.date
@@ -4434,10 +4707,7 @@ export const DateTimeUtcFromDate = /*#__PURE__*/DateValid.pipe(/*#__PURE__*/deco
4434
4707
  */
4435
4708
  export const DateTimeUtcFromString = /*#__PURE__*/String.annotate({
4436
4709
  expected: "a string that will be decoded as a DateTime.Utc"
4437
- }).pipe(/*#__PURE__*/decodeTo(DateTimeUtc, /*#__PURE__*/Transformation.transform({
4438
- decode: DateTime.makeUnsafe,
4439
- encode: DateTime.formatIso
4440
- })));
4710
+ }).pipe(/*#__PURE__*/decodeTo(DateTimeUtc, Transformation.dateTimeUtcFromString));
4441
4711
  /**
4442
4712
  * A transformation schema that decodes a number into a `DateTime.Utc`.
4443
4713
  *
@@ -4454,18 +4724,140 @@ export const DateTimeUtcFromMillis = /*#__PURE__*/Number.pipe(/*#__PURE__*/decod
4454
4724
  decode: /*#__PURE__*/Getter.dateTimeUtcFromInput(),
4455
4725
  encode: /*#__PURE__*/Getter.transform(DateTime.toEpochMillis)
4456
4726
  }));
4727
+ /**
4728
+ * A schema for `DateTime.TimeZone.Offset` values.
4729
+ *
4730
+ * **Default JSON serializer**
4731
+ *
4732
+ * - encodes `DateTime.TimeZone.Offset` as a number (offset in milliseconds)
4733
+ *
4734
+ * @category DateTime
4735
+ * @since 4.0.0
4736
+ */
4737
+ export const TimeZoneOffset = /*#__PURE__*/declare(DateTime.isTimeZoneOffset, {
4738
+ typeConstructor: {
4739
+ _tag: "effect/DateTime.TimeZone.Offset"
4740
+ },
4741
+ generation: {
4742
+ runtime: `Schema.TimeZoneOffset`,
4743
+ Type: `DateTime.TimeZone.Offset`,
4744
+ importDeclaration: `import * as DateTime from "effect/DateTime"`
4745
+ },
4746
+ expected: "DateTime.TimeZone.Offset",
4747
+ toCodecJson: () => link()(Number, Transformation.timeZoneOffsetFromNumber),
4748
+ toArbitrary: () => fc => fc.integer({
4749
+ min: -12 * 60 * 60 * 1000,
4750
+ max: 14 * 60 * 60 * 1000
4751
+ }).map(n => DateTime.zoneMakeOffset(n)),
4752
+ toFormatter: () => tz => DateTime.zoneToString(tz),
4753
+ toEquivalence: () => (a, b) => a.offset === b.offset
4754
+ });
4755
+ /**
4756
+ * A schema for `DateTime.TimeZone.Named` values.
4757
+ *
4758
+ * **Default JSON serializer**
4759
+ *
4760
+ * - encodes `DateTime.TimeZone.Named` as a string (IANA time zone identifier)
4761
+ *
4762
+ * @category DateTime
4763
+ * @since 4.0.0
4764
+ */
4765
+ export const TimeZoneNamed = /*#__PURE__*/declare(DateTime.isTimeZoneNamed, {
4766
+ typeConstructor: {
4767
+ _tag: "effect/DateTime.TimeZone.Named"
4768
+ },
4769
+ generation: {
4770
+ runtime: `Schema.TimeZoneNamed`,
4771
+ Type: `DateTime.TimeZone.Named`,
4772
+ importDeclaration: `import * as DateTime from "effect/DateTime"`
4773
+ },
4774
+ expected: "DateTime.TimeZone.Named",
4775
+ toCodecJson: () => link()(String.annotate({
4776
+ expected: "an IANA time zone identifier"
4777
+ }), Transformation.timeZoneNamedFromString),
4778
+ toArbitrary: () => fc => fc.constantFrom(...["UTC", "Europe/London", "America/New_York", "Asia/Tokyo", "Australia/Sydney"].map(DateTime.zoneMakeNamedUnsafe)),
4779
+ toFormatter: () => tz => DateTime.zoneToString(tz),
4780
+ toEquivalence: () => (a, b) => a.id === b.id
4781
+ });
4782
+ /**
4783
+ * A schema for `DateTime.TimeZone` values.
4784
+ *
4785
+ * **Default JSON serializer**
4786
+ *
4787
+ * - encodes `DateTime.TimeZone` as a string (IANA identifier or offset like
4788
+ * `+03:00`)
4789
+ *
4790
+ * @category DateTime
4791
+ * @since 4.0.0
4792
+ */
4793
+ export const TimeZone = /*#__PURE__*/declare(DateTime.isTimeZone, {
4794
+ typeConstructor: {
4795
+ _tag: "effect/DateTime.TimeZone"
4796
+ },
4797
+ generation: {
4798
+ runtime: `Schema.TimeZone`,
4799
+ Type: `DateTime.TimeZone`,
4800
+ importDeclaration: `import * as DateTime from "effect/DateTime"`
4801
+ },
4802
+ expected: "DateTime.TimeZone",
4803
+ toCodecJson: () => link()(String.annotate({
4804
+ expected: "a time zone string (IANA identifier or offset like +03:00)"
4805
+ }), Transformation.timeZoneFromString),
4806
+ toArbitrary: () => fc => fc.oneof(fc.integer({
4807
+ min: -12 * 60 * 60 * 1000,
4808
+ max: 14 * 60 * 60 * 1000
4809
+ }).map(n => DateTime.zoneMakeOffset(n)), fc.constantFrom(...["UTC", "Europe/London", "America/New_York", "Asia/Tokyo", "Australia/Sydney"].map(DateTime.zoneMakeNamedUnsafe))),
4810
+ toFormatter: () => tz => DateTime.zoneToString(tz),
4811
+ toEquivalence: () => (a, b) => DateTime.zoneToString(a) === DateTime.zoneToString(b)
4812
+ });
4813
+ /**
4814
+ * A schema for `DateTime.Zoned` values.
4815
+ *
4816
+ * **Default JSON serializer**
4817
+ *
4818
+ * - encodes `DateTime.Zoned` as a string in the format
4819
+ * `YYYY-MM-DDTHH:mm:ss.sss+HH:MM[Time/Zone]`
4820
+ *
4821
+ * @category DateTime
4822
+ * @since 4.0.0
4823
+ */
4824
+ export const DateTimeZoned = /*#__PURE__*/declare(u => DateTime.isDateTime(u) && DateTime.isZoned(u), {
4825
+ typeConstructor: {
4826
+ _tag: "effect/DateTime.Zoned"
4827
+ },
4828
+ generation: {
4829
+ runtime: `Schema.DateTimeZoned`,
4830
+ Type: `DateTime.Zoned`,
4831
+ importDeclaration: `import * as DateTime from "effect/DateTime"`
4832
+ },
4833
+ expected: "DateTime.Zoned",
4834
+ toCodecJson: () => link()(String.annotate({
4835
+ expected: "a zoned DateTime string (e.g. 2024-01-01T00:00:00.000+00:00[Europe/London])"
4836
+ }), Transformation.dateTimeZonedFromString),
4837
+ toArbitrary: () => (fc, ctx) => fc.tuple(fc.date({
4838
+ noInvalidDate: true,
4839
+ min: new globalThis.Date(-8640000000000000 + 14 * 60 * 60 * 1000),
4840
+ max: new globalThis.Date(8640000000000000 - 14 * 60 * 60 * 1000),
4841
+ ...ctx?.constraints?.date
4842
+ }), fc.constantFrom("UTC", "Europe/London", "America/New_York", "Asia/Tokyo", "Australia/Sydney")).map(([date, zone]) => DateTime.makeZonedUnsafe(date, {
4843
+ timeZone: zone
4844
+ })),
4845
+ toFormatter: () => zoned => DateTime.formatIsoZoned(zoned),
4846
+ toEquivalence: () => DateTime.Equivalence
4847
+ });
4457
4848
  const immerable = /*#__PURE__*/globalThis.Symbol.for("immer-draftable");
4458
4849
  function makeClass(Inherited, identifier, struct, annotations) {
4459
4850
  const getClassSchema = getClassSchemaFactory(struct, identifier, annotations);
4460
4851
  const ClassTypeId = getClassTypeId(identifier); // HMR support
4461
4852
  return class extends Inherited {
4462
4853
  constructor(...[input, options]) {
4854
+ const props = input ?? {};
4463
4855
  if (options?.disableValidation) {
4464
- super(input, options);
4856
+ super(props, options);
4465
4857
  } else {
4466
- const validated = struct.makeUnsafe(input, options);
4858
+ const validated = struct.makeUnsafe(props, options);
4467
4859
  super({
4468
- ...input,
4860
+ ...props,
4469
4861
  ...validated
4470
4862
  }, {
4471
4863
  ...options,
@@ -4497,6 +4889,9 @@ function makeClass(Inherited, identifier, struct, annotations) {
4497
4889
  static makeUnsafe(input, options) {
4498
4890
  return new this(input, options);
4499
4891
  }
4892
+ static makeOption(input, options) {
4893
+ return Parser.makeOption(getClassSchema(this))(input, options);
4894
+ }
4500
4895
  static annotate(annotations) {
4501
4896
  return this.rebuild(AST.annotate(this.ast, annotations));
4502
4897
  }
@@ -4541,6 +4936,7 @@ function getClassSchemaFactory(from, identifier, annotations) {
4541
4936
  toCodec: ([from]) => new AST.Link(from.ast, transformation),
4542
4937
  toArbitrary: ([from]) => () => from.map(args => new self(args)),
4543
4938
  toFormatter: ([from]) => t => `${self.identifier}(${from(t)})`,
4939
+ "~sentinels": AST.collectSentinels(from.ast),
4544
4940
  ...annotations
4545
4941
  }));
4546
4942
  memo = from.pipe(decodeTo(to, transformation));
@@ -4579,7 +4975,9 @@ export const TaggedClass = identifier => {
4579
4975
  */
4580
4976
  export const ErrorClass = identifier => (schema, annotations) => {
4581
4977
  const struct = isStruct(schema) ? schema : Struct(schema);
4582
- return makeClass(core.Error, identifier, struct, annotations);
4978
+ const self = makeClass(core.Error, identifier, struct, annotations);
4979
+ self.prototype.name = identifier;
4980
+ return self;
4583
4981
  };
4584
4982
  /**
4585
4983
  * @category Constructors
@@ -4816,17 +5214,17 @@ export function toJsonSchemaDocument(schema, options) {
4816
5214
  };
4817
5215
  }
4818
5216
  // -----------------------------------------------------------------------------
4819
- // Serializer
5217
+ // Canonical Codecs
4820
5218
  // -----------------------------------------------------------------------------
4821
5219
  /**
4822
- * @category Serializer
5220
+ * @category Canonical Codecs
4823
5221
  * @since 4.0.0
4824
5222
  */
4825
5223
  export function toCodecJson(schema) {
4826
5224
  return make(InternalToCodec.toCodecJson(schema.ast));
4827
5225
  }
4828
5226
  /**
4829
- * @category Serializer
5227
+ * @category Canonical Codecs
4830
5228
  * @since 4.0.0
4831
5229
  */
4832
5230
  export function toCodecIso(schema) {
@@ -4840,7 +5238,7 @@ export function toCodecStringTree(schema, options) {
4840
5238
  }
4841
5239
  }
4842
5240
  /**
4843
- * @category Serializer
5241
+ * @category Canonical Codecs
4844
5242
  * @since 4.0.0
4845
5243
  */
4846
5244
  export function toEncoderXml(codec, options) {
@@ -4956,8 +5354,6 @@ function getStringTreePriority(ast) {
4956
5354
  const treeReorder = /*#__PURE__*/InternalToCodec.makeReorder(getStringTreePriority);
4957
5355
  function serializerTree(ast, recur, onMissingAnnotation) {
4958
5356
  switch (ast._tag) {
4959
- case "Unknown":
4960
- case "ObjectKeyword":
4961
5357
  case "Declaration":
4962
5358
  {
4963
5359
  const getLink = ast.annotations?.toCodecJson ?? ast.annotations?.toCodec;
@@ -4973,6 +5369,9 @@ function serializerTree(ast, recur, onMissingAnnotation) {
4973
5369
  return AST.replaceEncoding(ast, [nullToString]);
4974
5370
  case "Boolean":
4975
5371
  return AST.replaceEncoding(ast, [booleanToString]);
5372
+ case "Unknown":
5373
+ case "ObjectKeyword":
5374
+ return AST.replaceEncoding(ast, [AST.unknownToStringTree]);
4976
5375
  case "Enum":
4977
5376
  case "Number":
4978
5377
  case "Literal":
@@ -5121,25 +5520,16 @@ export function Tree(node) {
5121
5520
  const Tree = Union([node, Array(Tree$ref), Record(String, Tree$ref)]);
5122
5521
  return Tree;
5123
5522
  }
5124
- /**
5125
- * @category Tree
5126
- * @since 4.0.0
5127
- */
5128
- export function MutableTree(node) {
5129
- const MutableTree$ref = suspend(() => MutableTree);
5130
- const MutableTree = Union([node, mutable(Array(MutableTree$ref)), Record(String, mutableKey(MutableTree$ref))]);
5131
- return MutableTree;
5132
- }
5133
5523
  /**
5134
5524
  * @category JSON
5135
5525
  * @since 4.0.0
5136
5526
  */
5137
- export const Json = /*#__PURE__*/Tree(/*#__PURE__*/Union([Null, Number, Boolean, String]));
5527
+ export const Json = /*#__PURE__*/make(AST.Json);
5138
5528
  /**
5139
5529
  * @category JSON
5140
5530
  * @since 4.0.0
5141
5531
  */
5142
- export const MutableJson = /*#__PURE__*/MutableTree(/*#__PURE__*/Union([Null, Number, Boolean, String]));
5532
+ export const MutableJson = /*#__PURE__*/make(AST.MutableJson);
5143
5533
  // -----------------------------------------------------------------------------
5144
5534
  // Annotations
5145
5535
  // -----------------------------------------------------------------------------