effect 4.0.0-beta.102 → 4.0.0-beta.103

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 (1451) hide show
  1. package/dist/Array.d.ts +971 -1037
  2. package/dist/Array.d.ts.map +1 -1
  3. package/dist/Array.js +381 -407
  4. package/dist/Array.js.map +1 -1
  5. package/dist/BigDecimal.d.ts +433 -756
  6. package/dist/BigDecimal.d.ts.map +1 -1
  7. package/dist/BigDecimal.js +200 -325
  8. package/dist/BigDecimal.js.map +1 -1
  9. package/dist/BigInt.d.ts +207 -267
  10. package/dist/BigInt.d.ts.map +1 -1
  11. package/dist/BigInt.js +107 -135
  12. package/dist/BigInt.js.map +1 -1
  13. package/dist/Boolean.d.ts +146 -188
  14. package/dist/Boolean.d.ts.map +1 -1
  15. package/dist/Boolean.js +64 -84
  16. package/dist/Boolean.js.map +1 -1
  17. package/dist/Brand.js.map +1 -1
  18. package/dist/Cache.d.ts +405 -254
  19. package/dist/Cache.d.ts.map +1 -1
  20. package/dist/Cache.js +166 -101
  21. package/dist/Cache.js.map +1 -1
  22. package/dist/Cause.d.ts +167 -277
  23. package/dist/Cause.d.ts.map +1 -1
  24. package/dist/Cause.js +122 -176
  25. package/dist/Cause.js.map +1 -1
  26. package/dist/Channel.d.ts +729 -768
  27. package/dist/Channel.d.ts.map +1 -1
  28. package/dist/Channel.js +514 -440
  29. package/dist/Channel.js.map +1 -1
  30. package/dist/ChannelSchema.d.ts +1 -1
  31. package/dist/ChannelSchema.d.ts.map +1 -1
  32. package/dist/ChannelSchema.js.map +1 -1
  33. package/dist/Chunk.d.ts +834 -1173
  34. package/dist/Chunk.d.ts.map +1 -1
  35. package/dist/Chunk.js +326 -439
  36. package/dist/Chunk.js.map +1 -1
  37. package/dist/Clock.d.ts +180 -49
  38. package/dist/Clock.d.ts.map +1 -1
  39. package/dist/Clock.js +96 -31
  40. package/dist/Clock.js.map +1 -1
  41. package/dist/Combiner.d.ts +20 -33
  42. package/dist/Combiner.d.ts.map +1 -1
  43. package/dist/Combiner.js +18 -30
  44. package/dist/Combiner.js.map +1 -1
  45. package/dist/Config.d.ts +225 -173
  46. package/dist/Config.d.ts.map +1 -1
  47. package/dist/Config.js +336 -265
  48. package/dist/Config.js.map +1 -1
  49. package/dist/ConfigProvider.d.ts +194 -68
  50. package/dist/ConfigProvider.d.ts.map +1 -1
  51. package/dist/ConfigProvider.js +115 -80
  52. package/dist/ConfigProvider.js.map +1 -1
  53. package/dist/Console.d.ts +233 -33
  54. package/dist/Console.d.ts.map +1 -1
  55. package/dist/Console.js +232 -32
  56. package/dist/Console.js.map +1 -1
  57. package/dist/Context.d.ts +151 -274
  58. package/dist/Context.d.ts.map +1 -1
  59. package/dist/Context.js +171 -214
  60. package/dist/Context.js.map +1 -1
  61. package/dist/Cron.d.ts +68 -77
  62. package/dist/Cron.d.ts.map +1 -1
  63. package/dist/Cron.js +57 -66
  64. package/dist/Cron.js.map +1 -1
  65. package/dist/Crypto.d.ts +13 -15
  66. package/dist/Crypto.d.ts.map +1 -1
  67. package/dist/Crypto.js +9 -10
  68. package/dist/Crypto.js.map +1 -1
  69. package/dist/Data.d.ts +60 -80
  70. package/dist/Data.d.ts.map +1 -1
  71. package/dist/Data.js +16 -23
  72. package/dist/Data.js.map +1 -1
  73. package/dist/DateTime.d.ts +562 -660
  74. package/dist/DateTime.d.ts.map +1 -1
  75. package/dist/DateTime.js +307 -362
  76. package/dist/DateTime.js.map +1 -1
  77. package/dist/Deferred.d.ts +253 -256
  78. package/dist/Deferred.d.ts.map +1 -1
  79. package/dist/Deferred.js +104 -96
  80. package/dist/Deferred.js.map +1 -1
  81. package/dist/Duration.d.ts +216 -308
  82. package/dist/Duration.d.ts.map +1 -1
  83. package/dist/Duration.js +132 -186
  84. package/dist/Duration.js.map +1 -1
  85. package/dist/Effect.d.ts +2841 -3247
  86. package/dist/Effect.d.ts.map +1 -1
  87. package/dist/Effect.js +1322 -1546
  88. package/dist/Effect.js.map +1 -1
  89. package/dist/Effectable.js.map +1 -1
  90. package/dist/Encoding.d.ts +22 -40
  91. package/dist/Encoding.d.ts.map +1 -1
  92. package/dist/Encoding.js +22 -40
  93. package/dist/Encoding.js.map +1 -1
  94. package/dist/Equal.d.ts +33 -37
  95. package/dist/Equal.d.ts.map +1 -1
  96. package/dist/Equal.js +29 -21
  97. package/dist/Equal.js.map +1 -1
  98. package/dist/Equivalence.d.ts +103 -105
  99. package/dist/Equivalence.d.ts.map +1 -1
  100. package/dist/Equivalence.js +77 -79
  101. package/dist/Equivalence.js.map +1 -1
  102. package/dist/ErrorReporter.d.ts +51 -27
  103. package/dist/ErrorReporter.d.ts.map +1 -1
  104. package/dist/ErrorReporter.js +50 -26
  105. package/dist/ErrorReporter.js.map +1 -1
  106. package/dist/ExecutionPlan.d.ts +13 -55
  107. package/dist/ExecutionPlan.d.ts.map +1 -1
  108. package/dist/ExecutionPlan.js +7 -28
  109. package/dist/ExecutionPlan.js.map +1 -1
  110. package/dist/Exit.d.ts +116 -192
  111. package/dist/Exit.d.ts.map +1 -1
  112. package/dist/Exit.js +82 -130
  113. package/dist/Exit.js.map +1 -1
  114. package/dist/Fiber.d.ts +82 -146
  115. package/dist/Fiber.d.ts.map +1 -1
  116. package/dist/Fiber.js +48 -87
  117. package/dist/Fiber.js.map +1 -1
  118. package/dist/FiberHandle.d.ts +152 -105
  119. package/dist/FiberHandle.d.ts.map +1 -1
  120. package/dist/FiberHandle.js +106 -73
  121. package/dist/FiberHandle.js.map +1 -1
  122. package/dist/FiberMap.d.ts +213 -168
  123. package/dist/FiberMap.d.ts.map +1 -1
  124. package/dist/FiberMap.js +114 -89
  125. package/dist/FiberMap.js.map +1 -1
  126. package/dist/FiberSet.d.ts +123 -81
  127. package/dist/FiberSet.d.ts.map +1 -1
  128. package/dist/FiberSet.js +85 -59
  129. package/dist/FiberSet.js.map +1 -1
  130. package/dist/FileSystem.d.ts +153 -264
  131. package/dist/FileSystem.d.ts.map +1 -1
  132. package/dist/FileSystem.js +42 -147
  133. package/dist/FileSystem.js.map +1 -1
  134. package/dist/Filter.d.ts +61 -33
  135. package/dist/Filter.d.ts.map +1 -1
  136. package/dist/Filter.js +26 -15
  137. package/dist/Filter.js.map +1 -1
  138. package/dist/Formatter.d.ts +25 -33
  139. package/dist/Formatter.d.ts.map +1 -1
  140. package/dist/Formatter.js +48 -49
  141. package/dist/Formatter.js.map +1 -1
  142. package/dist/Function.d.ts +76 -145
  143. package/dist/Function.d.ts.map +1 -1
  144. package/dist/Function.js +40 -57
  145. package/dist/Function.js.map +1 -1
  146. package/dist/Graph.d.ts +360 -714
  147. package/dist/Graph.d.ts.map +1 -1
  148. package/dist/Graph.js +168 -297
  149. package/dist/Graph.js.map +1 -1
  150. package/dist/HKT.d.ts +12 -6
  151. package/dist/HKT.d.ts.map +1 -1
  152. package/dist/Hash.d.ts +47 -83
  153. package/dist/Hash.d.ts.map +1 -1
  154. package/dist/Hash.js +46 -68
  155. package/dist/Hash.js.map +1 -1
  156. package/dist/HashMap.d.ts +319 -411
  157. package/dist/HashMap.d.ts.map +1 -1
  158. package/dist/HashMap.js +122 -166
  159. package/dist/HashMap.js.map +1 -1
  160. package/dist/HashRing.d.ts.map +1 -1
  161. package/dist/HashRing.js +1 -0
  162. package/dist/HashRing.js.map +1 -1
  163. package/dist/HashSet.d.ts +177 -284
  164. package/dist/HashSet.d.ts.map +1 -1
  165. package/dist/HashSet.js +68 -109
  166. package/dist/HashSet.js.map +1 -1
  167. package/dist/Inspectable.d.ts +12 -12
  168. package/dist/Inspectable.js +8 -8
  169. package/dist/Inspectable.js.map +1 -1
  170. package/dist/Iterable.d.ts +620 -786
  171. package/dist/Iterable.d.ts.map +1 -1
  172. package/dist/Iterable.js +228 -306
  173. package/dist/Iterable.js.map +1 -1
  174. package/dist/JsonPatch.d.ts +11 -13
  175. package/dist/JsonPatch.d.ts.map +1 -1
  176. package/dist/JsonPatch.js +44 -102
  177. package/dist/JsonPatch.js.map +1 -1
  178. package/dist/JsonPointer.d.ts +8 -8
  179. package/dist/JsonPointer.js +8 -8
  180. package/dist/JsonPointer.js.map +1 -1
  181. package/dist/JsonSchema.d.ts +98 -44
  182. package/dist/JsonSchema.d.ts.map +1 -1
  183. package/dist/JsonSchema.js +297 -234
  184. package/dist/JsonSchema.js.map +1 -1
  185. package/dist/Latch.d.ts +23 -35
  186. package/dist/Latch.d.ts.map +1 -1
  187. package/dist/Latch.js +16 -28
  188. package/dist/Latch.js.map +1 -1
  189. package/dist/Layer.d.ts +359 -260
  190. package/dist/Layer.d.ts.map +1 -1
  191. package/dist/Layer.js +195 -175
  192. package/dist/Layer.js.map +1 -1
  193. package/dist/LayerMap.d.ts +42 -29
  194. package/dist/LayerMap.d.ts.map +1 -1
  195. package/dist/LayerMap.js +31 -21
  196. package/dist/LayerMap.js.map +1 -1
  197. package/dist/LayerRef.d.ts +6 -2
  198. package/dist/LayerRef.d.ts.map +1 -1
  199. package/dist/LayerRef.js +6 -2
  200. package/dist/LayerRef.js.map +1 -1
  201. package/dist/LogLevel.d.ts +114 -214
  202. package/dist/LogLevel.d.ts.map +1 -1
  203. package/dist/LogLevel.js +41 -76
  204. package/dist/LogLevel.js.map +1 -1
  205. package/dist/Logger.d.ts +218 -467
  206. package/dist/Logger.d.ts.map +1 -1
  207. package/dist/Logger.js +204 -450
  208. package/dist/Logger.js.map +1 -1
  209. package/dist/ManagedRuntime.d.ts +7 -5
  210. package/dist/ManagedRuntime.d.ts.map +1 -1
  211. package/dist/ManagedRuntime.js +7 -5
  212. package/dist/ManagedRuntime.js.map +1 -1
  213. package/dist/Match.d.ts +217 -252
  214. package/dist/Match.d.ts.map +1 -1
  215. package/dist/Match.js +150 -183
  216. package/dist/Match.js.map +1 -1
  217. package/dist/Metric.d.ts +442 -993
  218. package/dist/Metric.d.ts.map +1 -1
  219. package/dist/Metric.js +198 -642
  220. package/dist/Metric.js.map +1 -1
  221. package/dist/MutableHashMap.d.ts +144 -173
  222. package/dist/MutableHashMap.d.ts.map +1 -1
  223. package/dist/MutableHashMap.js +68 -79
  224. package/dist/MutableHashMap.js.map +1 -1
  225. package/dist/MutableHashSet.d.ts +84 -89
  226. package/dist/MutableHashSet.d.ts.map +1 -1
  227. package/dist/MutableHashSet.js +44 -47
  228. package/dist/MutableHashSet.js.map +1 -1
  229. package/dist/MutableList.d.ts +71 -370
  230. package/dist/MutableList.d.ts.map +1 -1
  231. package/dist/MutableList.js +59 -284
  232. package/dist/MutableList.js.map +1 -1
  233. package/dist/MutableRef.d.ts +420 -243
  234. package/dist/MutableRef.d.ts.map +1 -1
  235. package/dist/MutableRef.js +209 -120
  236. package/dist/MutableRef.js.map +1 -1
  237. package/dist/Newtype.d.ts +21 -14
  238. package/dist/Newtype.d.ts.map +1 -1
  239. package/dist/Newtype.js +15 -13
  240. package/dist/Newtype.js.map +1 -1
  241. package/dist/NonEmptyIterable.d.ts +7 -137
  242. package/dist/NonEmptyIterable.d.ts.map +1 -1
  243. package/dist/NonEmptyIterable.js +5 -93
  244. package/dist/NonEmptyIterable.js.map +1 -1
  245. package/dist/Number.d.ts +196 -233
  246. package/dist/Number.d.ts.map +1 -1
  247. package/dist/Number.js +90 -109
  248. package/dist/Number.js.map +1 -1
  249. package/dist/Optic.d.ts +97 -189
  250. package/dist/Optic.d.ts.map +1 -1
  251. package/dist/Optic.js +187 -290
  252. package/dist/Optic.js.map +1 -1
  253. package/dist/Option.d.ts +447 -812
  254. package/dist/Option.d.ts.map +1 -1
  255. package/dist/Option.js +211 -392
  256. package/dist/Option.js.map +1 -1
  257. package/dist/Order.d.ts +109 -109
  258. package/dist/Order.js +91 -91
  259. package/dist/Order.js.map +1 -1
  260. package/dist/Ordering.d.ts +20 -23
  261. package/dist/Ordering.d.ts.map +1 -1
  262. package/dist/Ordering.js +8 -9
  263. package/dist/Ordering.js.map +1 -1
  264. package/dist/PartitionedSemaphore.js.map +1 -1
  265. package/dist/Path.d.ts +38 -41
  266. package/dist/Path.d.ts.map +1 -1
  267. package/dist/Path.js +3 -4
  268. package/dist/Path.js.map +1 -1
  269. package/dist/Pipeable.d.ts +6 -5
  270. package/dist/Pipeable.d.ts.map +1 -1
  271. package/dist/Pipeable.js +2 -2
  272. package/dist/Pipeable.js.map +1 -1
  273. package/dist/PlatformError.d.ts +4 -4
  274. package/dist/PlatformError.js +3 -3
  275. package/dist/PlatformError.js.map +1 -1
  276. package/dist/Pool.d.ts +4 -2
  277. package/dist/Pool.d.ts.map +1 -1
  278. package/dist/Pool.js +4 -2
  279. package/dist/Pool.js.map +1 -1
  280. package/dist/Predicate.d.ts +200 -181
  281. package/dist/Predicate.d.ts.map +1 -1
  282. package/dist/Predicate.js +100 -108
  283. package/dist/Predicate.js.map +1 -1
  284. package/dist/PrimaryKey.d.ts +7 -7
  285. package/dist/PrimaryKey.js +5 -5
  286. package/dist/PrimaryKey.js.map +1 -1
  287. package/dist/PubSub.d.ts +425 -494
  288. package/dist/PubSub.d.ts.map +1 -1
  289. package/dist/PubSub.js +373 -362
  290. package/dist/PubSub.js.map +1 -1
  291. package/dist/Pull.d.ts +24 -18
  292. package/dist/Pull.d.ts.map +1 -1
  293. package/dist/Pull.js +11 -9
  294. package/dist/Pull.js.map +1 -1
  295. package/dist/Queue.d.ts +200 -159
  296. package/dist/Queue.d.ts.map +1 -1
  297. package/dist/Queue.js +162 -132
  298. package/dist/Queue.js.map +1 -1
  299. package/dist/Random.d.ts +49 -74
  300. package/dist/Random.d.ts.map +1 -1
  301. package/dist/Random.js +35 -54
  302. package/dist/Random.js.map +1 -1
  303. package/dist/RcMap.d.ts +121 -63
  304. package/dist/RcMap.d.ts.map +1 -1
  305. package/dist/RcMap.js +42 -21
  306. package/dist/RcMap.js.map +1 -1
  307. package/dist/RcRef.d.ts +24 -13
  308. package/dist/RcRef.d.ts.map +1 -1
  309. package/dist/RcRef.js +15 -9
  310. package/dist/RcRef.js.map +1 -1
  311. package/dist/Record.d.ts +291 -488
  312. package/dist/Record.d.ts.map +1 -1
  313. package/dist/Record.js +111 -202
  314. package/dist/Record.js.map +1 -1
  315. package/dist/Redactable.d.ts +6 -2
  316. package/dist/Redactable.d.ts.map +1 -1
  317. package/dist/Redactable.js +7 -2
  318. package/dist/Redactable.js.map +1 -1
  319. package/dist/Redacted.d.ts +25 -25
  320. package/dist/Redacted.d.ts.map +1 -1
  321. package/dist/Redacted.js +19 -20
  322. package/dist/Redacted.js.map +1 -1
  323. package/dist/Reducer.d.ts +8 -15
  324. package/dist/Reducer.d.ts.map +1 -1
  325. package/dist/Reducer.js +6 -12
  326. package/dist/Reducer.js.map +1 -1
  327. package/dist/Ref.d.ts +95 -165
  328. package/dist/Ref.d.ts.map +1 -1
  329. package/dist/Ref.js +75 -122
  330. package/dist/Ref.js.map +1 -1
  331. package/dist/References.d.ts +102 -168
  332. package/dist/References.d.ts.map +1 -1
  333. package/dist/References.js +102 -168
  334. package/dist/References.js.map +1 -1
  335. package/dist/RegExp.d.ts +10 -14
  336. package/dist/RegExp.d.ts.map +1 -1
  337. package/dist/RegExp.js +10 -14
  338. package/dist/RegExp.js.map +1 -1
  339. package/dist/Request.d.ts +31 -21
  340. package/dist/Request.d.ts.map +1 -1
  341. package/dist/Request.js +16 -13
  342. package/dist/Request.js.map +1 -1
  343. package/dist/RequestResolver.d.ts +201 -90
  344. package/dist/RequestResolver.d.ts.map +1 -1
  345. package/dist/RequestResolver.js +87 -41
  346. package/dist/RequestResolver.js.map +1 -1
  347. package/dist/Resource.js.map +1 -1
  348. package/dist/Result.d.ts +302 -470
  349. package/dist/Result.d.ts.map +1 -1
  350. package/dist/Result.js +133 -217
  351. package/dist/Result.js.map +1 -1
  352. package/dist/Runtime.d.ts +50 -75
  353. package/dist/Runtime.d.ts.map +1 -1
  354. package/dist/Runtime.js +39 -60
  355. package/dist/Runtime.js.map +1 -1
  356. package/dist/Schedule.d.ts +290 -1636
  357. package/dist/Schedule.d.ts.map +1 -1
  358. package/dist/Schedule.js +162 -803
  359. package/dist/Schedule.js.map +1 -1
  360. package/dist/Scheduler.d.ts +5 -5
  361. package/dist/Scheduler.d.ts.map +1 -1
  362. package/dist/Scheduler.js +18 -6
  363. package/dist/Scheduler.js.map +1 -1
  364. package/dist/Schema.d.ts +644 -642
  365. package/dist/Schema.d.ts.map +1 -1
  366. package/dist/Schema.js +491 -527
  367. package/dist/Schema.js.map +1 -1
  368. package/dist/SchemaAST.d.ts +27 -50
  369. package/dist/SchemaAST.d.ts.map +1 -1
  370. package/dist/SchemaAST.js +366 -279
  371. package/dist/SchemaAST.js.map +1 -1
  372. package/dist/SchemaError.d.ts +7 -6
  373. package/dist/SchemaError.d.ts.map +1 -1
  374. package/dist/SchemaError.js +7 -6
  375. package/dist/SchemaError.js.map +1 -1
  376. package/dist/SchemaGetter.d.ts +217 -174
  377. package/dist/SchemaGetter.d.ts.map +1 -1
  378. package/dist/SchemaGetter.js +218 -185
  379. package/dist/SchemaGetter.js.map +1 -1
  380. package/dist/SchemaIssue.d.ts +62 -190
  381. package/dist/SchemaIssue.d.ts.map +1 -1
  382. package/dist/SchemaIssue.js +73 -265
  383. package/dist/SchemaIssue.js.map +1 -1
  384. package/dist/SchemaParser.d.ts +2 -2
  385. package/dist/SchemaParser.d.ts.map +1 -1
  386. package/dist/SchemaParser.js +123 -75
  387. package/dist/SchemaParser.js.map +1 -1
  388. package/dist/SchemaRepresentation.d.ts +22 -36
  389. package/dist/SchemaRepresentation.d.ts.map +1 -1
  390. package/dist/SchemaRepresentation.js +20 -26
  391. package/dist/SchemaRepresentation.js.map +1 -1
  392. package/dist/SchemaTransformation.d.ts +114 -74
  393. package/dist/SchemaTransformation.d.ts.map +1 -1
  394. package/dist/SchemaTransformation.js +120 -85
  395. package/dist/SchemaTransformation.js.map +1 -1
  396. package/dist/Scope.d.ts +123 -151
  397. package/dist/Scope.d.ts.map +1 -1
  398. package/dist/Scope.js +72 -92
  399. package/dist/Scope.js.map +1 -1
  400. package/dist/ScopedCache.js.map +1 -1
  401. package/dist/ScopedRef.d.ts +3 -3
  402. package/dist/ScopedRef.js +2 -2
  403. package/dist/ScopedRef.js.map +1 -1
  404. package/dist/Semaphore.d.ts +96 -10
  405. package/dist/Semaphore.d.ts.map +1 -1
  406. package/dist/Semaphore.js +78 -39
  407. package/dist/Semaphore.js.map +1 -1
  408. package/dist/Sink.d.ts +117 -107
  409. package/dist/Sink.d.ts.map +1 -1
  410. package/dist/Sink.js +107 -100
  411. package/dist/Sink.js.map +1 -1
  412. package/dist/Stdio.d.ts +1 -1
  413. package/dist/Stdio.js.map +1 -1
  414. package/dist/Stream.d.ts +2415 -2949
  415. package/dist/Stream.d.ts.map +1 -1
  416. package/dist/Stream.js +1078 -1381
  417. package/dist/Stream.js.map +1 -1
  418. package/dist/String.d.ts +262 -308
  419. package/dist/String.d.ts.map +1 -1
  420. package/dist/String.js +184 -215
  421. package/dist/String.js.map +1 -1
  422. package/dist/Struct.d.ts +109 -114
  423. package/dist/Struct.d.ts.map +1 -1
  424. package/dist/Struct.js +41 -50
  425. package/dist/Struct.js.map +1 -1
  426. package/dist/SubscriptionRef.d.ts +282 -250
  427. package/dist/SubscriptionRef.d.ts.map +1 -1
  428. package/dist/SubscriptionRef.js +104 -92
  429. package/dist/SubscriptionRef.js.map +1 -1
  430. package/dist/Symbol.d.ts +3 -3
  431. package/dist/Symbol.js +3 -3
  432. package/dist/Symbol.js.map +1 -1
  433. package/dist/SynchronizedRef.js.map +1 -1
  434. package/dist/Take.js.map +1 -1
  435. package/dist/Terminal.d.ts +2 -2
  436. package/dist/Terminal.js +1 -1
  437. package/dist/Terminal.js.map +1 -1
  438. package/dist/Tracer.d.ts +100 -54
  439. package/dist/Tracer.d.ts.map +1 -1
  440. package/dist/Tracer.js +41 -24
  441. package/dist/Tracer.js.map +1 -1
  442. package/dist/Trie.d.ts +287 -679
  443. package/dist/Trie.d.ts.map +1 -1
  444. package/dist/Trie.js +109 -251
  445. package/dist/Trie.js.map +1 -1
  446. package/dist/Tuple.d.ts +92 -127
  447. package/dist/Tuple.d.ts.map +1 -1
  448. package/dist/Tuple.js +42 -57
  449. package/dist/Tuple.js.map +1 -1
  450. package/dist/TxChunk.d.ts +201 -121
  451. package/dist/TxChunk.d.ts.map +1 -1
  452. package/dist/TxChunk.js +85 -56
  453. package/dist/TxChunk.js.map +1 -1
  454. package/dist/TxDeferred.d.ts +62 -46
  455. package/dist/TxDeferred.d.ts.map +1 -1
  456. package/dist/TxDeferred.js +30 -22
  457. package/dist/TxDeferred.js.map +1 -1
  458. package/dist/TxHashMap.d.ts +631 -779
  459. package/dist/TxHashMap.d.ts.map +1 -1
  460. package/dist/TxHashMap.js +268 -330
  461. package/dist/TxHashMap.js.map +1 -1
  462. package/dist/TxHashSet.d.ts +297 -236
  463. package/dist/TxHashSet.d.ts.map +1 -1
  464. package/dist/TxHashSet.js +130 -100
  465. package/dist/TxHashSet.js.map +1 -1
  466. package/dist/TxPriorityQueue.d.ts +126 -95
  467. package/dist/TxPriorityQueue.d.ts.map +1 -1
  468. package/dist/TxPriorityQueue.js +74 -56
  469. package/dist/TxPriorityQueue.js.map +1 -1
  470. package/dist/TxPubSub.d.ts +101 -88
  471. package/dist/TxPubSub.d.ts.map +1 -1
  472. package/dist/TxPubSub.js +87 -66
  473. package/dist/TxPubSub.js.map +1 -1
  474. package/dist/TxQueue.d.ts +200 -180
  475. package/dist/TxQueue.d.ts.map +1 -1
  476. package/dist/TxQueue.js +160 -136
  477. package/dist/TxQueue.js.map +1 -1
  478. package/dist/TxReentrantLock.d.ts +97 -66
  479. package/dist/TxReentrantLock.d.ts.map +1 -1
  480. package/dist/TxReentrantLock.js +67 -45
  481. package/dist/TxReentrantLock.js.map +1 -1
  482. package/dist/TxRef.d.ts +51 -32
  483. package/dist/TxRef.d.ts.map +1 -1
  484. package/dist/TxRef.js +23 -15
  485. package/dist/TxRef.js.map +1 -1
  486. package/dist/TxSemaphore.d.ts +129 -95
  487. package/dist/TxSemaphore.d.ts.map +1 -1
  488. package/dist/TxSemaphore.js +85 -70
  489. package/dist/TxSemaphore.js.map +1 -1
  490. package/dist/TxSubscriptionRef.d.ts +97 -70
  491. package/dist/TxSubscriptionRef.d.ts.map +1 -1
  492. package/dist/TxSubscriptionRef.js +44 -34
  493. package/dist/TxSubscriptionRef.js.map +1 -1
  494. package/dist/Types.d.ts +126 -67
  495. package/dist/Types.d.ts.map +1 -1
  496. package/dist/UndefinedOr.js.map +1 -1
  497. package/dist/Unify.d.ts +45 -65
  498. package/dist/Unify.d.ts.map +1 -1
  499. package/dist/Unify.js +6 -9
  500. package/dist/Unify.js.map +1 -1
  501. package/dist/Utils.d.ts +23 -16
  502. package/dist/Utils.d.ts.map +1 -1
  503. package/dist/Utils.js +3 -7
  504. package/dist/Utils.js.map +1 -1
  505. package/dist/index.js.map +1 -1
  506. package/dist/internal/array.js.map +1 -1
  507. package/dist/internal/core.js +1 -1
  508. package/dist/internal/core.js.map +1 -1
  509. package/dist/internal/dateTime.js +4 -0
  510. package/dist/internal/dateTime.js.map +1 -1
  511. package/dist/internal/doNotation.js.map +1 -1
  512. package/dist/internal/effect.js +77 -40
  513. package/dist/internal/effect.js.map +1 -1
  514. package/dist/internal/equal.js.map +1 -1
  515. package/dist/internal/errors.js.map +1 -1
  516. package/dist/internal/executionPlan.js.map +1 -1
  517. package/dist/internal/hashMap.js.map +1 -1
  518. package/dist/internal/hashSet.js.map +1 -1
  519. package/dist/internal/layer.js.map +1 -1
  520. package/dist/internal/matcher.js.map +1 -1
  521. package/dist/internal/metric.js.map +1 -1
  522. package/dist/internal/option.js.map +1 -1
  523. package/dist/internal/persistence.d.ts +2 -0
  524. package/dist/internal/persistence.d.ts.map +1 -0
  525. package/dist/internal/persistence.js +3 -0
  526. package/dist/internal/persistence.js.map +1 -0
  527. package/dist/internal/random.js.map +1 -1
  528. package/dist/internal/rcRef.js.map +1 -1
  529. package/dist/internal/record.js.map +1 -1
  530. package/dist/internal/redacted.js.map +1 -1
  531. package/dist/internal/references.js +3 -0
  532. package/dist/internal/references.js.map +1 -1
  533. package/dist/internal/request.js.map +1 -1
  534. package/dist/internal/result.js.map +1 -1
  535. package/dist/internal/schedule.js.map +1 -1
  536. package/dist/internal/schema/annotations.js.map +1 -1
  537. package/dist/internal/schema/cause.js.map +1 -1
  538. package/dist/internal/schema/fromJsonSchemaDocument.js +13 -11
  539. package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
  540. package/dist/internal/schema/fromRepresentation.js +8 -15
  541. package/dist/internal/schema/fromRepresentation.js.map +1 -1
  542. package/dist/internal/schema/parser.d.ts +14 -0
  543. package/dist/internal/schema/parser.d.ts.map +1 -0
  544. package/dist/internal/schema/parser.js +13 -0
  545. package/dist/internal/schema/parser.js.map +1 -0
  546. package/dist/internal/schema/schema.js.map +1 -1
  547. package/dist/internal/schema/toArbitrary.js.map +1 -1
  548. package/dist/internal/schema/toCodeDocument.js.map +1 -1
  549. package/dist/internal/schema/toEquivalence.js.map +1 -1
  550. package/dist/internal/schema/toJsonSchemaDocument.js +48 -6
  551. package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
  552. package/dist/internal/schema/toRepresentation.js +87 -107
  553. package/dist/internal/schema/toRepresentation.js.map +1 -1
  554. package/dist/internal/stackTraceLimit.js.map +1 -1
  555. package/dist/internal/stream.js.map +1 -1
  556. package/dist/internal/tracer.js.map +1 -1
  557. package/dist/internal/trie.js +13 -9
  558. package/dist/internal/trie.js.map +1 -1
  559. package/dist/testing/FastCheck.d.ts +8 -7
  560. package/dist/testing/FastCheck.d.ts.map +1 -1
  561. package/dist/testing/FastCheck.js +8 -7
  562. package/dist/testing/FastCheck.js.map +1 -1
  563. package/dist/testing/TestClock.d.ts +57 -28
  564. package/dist/testing/TestClock.d.ts.map +1 -1
  565. package/dist/testing/TestClock.js +50 -18
  566. package/dist/testing/TestClock.js.map +1 -1
  567. package/dist/testing/TestConsole.d.ts +32 -31
  568. package/dist/testing/TestConsole.d.ts.map +1 -1
  569. package/dist/testing/TestConsole.js +24 -22
  570. package/dist/testing/TestConsole.js.map +1 -1
  571. package/dist/testing/TestSchema.d.ts +29 -29
  572. package/dist/testing/TestSchema.js +25 -25
  573. package/dist/testing/TestSchema.js.map +1 -1
  574. package/dist/testing/index.js.map +1 -1
  575. package/dist/unstable/ai/AiError.d.ts +95 -118
  576. package/dist/unstable/ai/AiError.d.ts.map +1 -1
  577. package/dist/unstable/ai/AiError.js +94 -117
  578. package/dist/unstable/ai/AiError.js.map +1 -1
  579. package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +1 -1
  580. package/dist/unstable/ai/AnthropicStructuredOutput.js +1 -1
  581. package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
  582. package/dist/unstable/ai/Chat.d.ts +132 -97
  583. package/dist/unstable/ai/Chat.d.ts.map +1 -1
  584. package/dist/unstable/ai/Chat.js +55 -51
  585. package/dist/unstable/ai/Chat.js.map +1 -1
  586. package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
  587. package/dist/unstable/ai/IdGenerator.d.ts +32 -28
  588. package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
  589. package/dist/unstable/ai/IdGenerator.js +26 -21
  590. package/dist/unstable/ai/IdGenerator.js.map +1 -1
  591. package/dist/unstable/ai/LanguageModel.d.ts +107 -67
  592. package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
  593. package/dist/unstable/ai/LanguageModel.js +104 -64
  594. package/dist/unstable/ai/LanguageModel.js.map +1 -1
  595. package/dist/unstable/ai/McpProtocol.d.ts +30 -0
  596. package/dist/unstable/ai/McpProtocol.d.ts.map +1 -0
  597. package/dist/unstable/ai/McpProtocol.js +20 -0
  598. package/dist/unstable/ai/McpProtocol.js.map +1 -0
  599. package/dist/unstable/ai/McpSchema.d.ts +141 -75
  600. package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
  601. package/dist/unstable/ai/McpSchema.js +58 -50
  602. package/dist/unstable/ai/McpSchema.js.map +1 -1
  603. package/dist/unstable/ai/McpServer.d.ts +68 -59
  604. package/dist/unstable/ai/McpServer.d.ts.map +1 -1
  605. package/dist/unstable/ai/McpServer.js +694 -241
  606. package/dist/unstable/ai/McpServer.js.map +1 -1
  607. package/dist/unstable/ai/Model.d.ts +8 -19
  608. package/dist/unstable/ai/Model.d.ts.map +1 -1
  609. package/dist/unstable/ai/Model.js +9 -20
  610. package/dist/unstable/ai/Model.js.map +1 -1
  611. package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +1 -1
  612. package/dist/unstable/ai/OpenAiStructuredOutput.js +1 -1
  613. package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
  614. package/dist/unstable/ai/Prompt.d.ts +112 -38
  615. package/dist/unstable/ai/Prompt.d.ts.map +1 -1
  616. package/dist/unstable/ai/Prompt.js +53 -17
  617. package/dist/unstable/ai/Prompt.js.map +1 -1
  618. package/dist/unstable/ai/Response.d.ts +28 -14
  619. package/dist/unstable/ai/Response.d.ts.map +1 -1
  620. package/dist/unstable/ai/Response.js +9 -4
  621. package/dist/unstable/ai/Response.js.map +1 -1
  622. package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
  623. package/dist/unstable/ai/Telemetry.d.ts +46 -13
  624. package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
  625. package/dist/unstable/ai/Telemetry.js +18 -7
  626. package/dist/unstable/ai/Telemetry.js.map +1 -1
  627. package/dist/unstable/ai/Tokenizer.d.ts +14 -3
  628. package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
  629. package/dist/unstable/ai/Tokenizer.js +10 -2
  630. package/dist/unstable/ai/Tokenizer.js.map +1 -1
  631. package/dist/unstable/ai/Tool.d.ts +59 -44
  632. package/dist/unstable/ai/Tool.d.ts.map +1 -1
  633. package/dist/unstable/ai/Tool.js +48 -39
  634. package/dist/unstable/ai/Tool.js.map +1 -1
  635. package/dist/unstable/ai/Toolkit.d.ts +26 -8
  636. package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
  637. package/dist/unstable/ai/Toolkit.js +18 -4
  638. package/dist/unstable/ai/Toolkit.js.map +1 -1
  639. package/dist/unstable/ai/index.d.ts +4 -0
  640. package/dist/unstable/ai/index.d.ts.map +1 -1
  641. package/dist/unstable/ai/index.js +4 -0
  642. package/dist/unstable/ai/index.js.map +1 -1
  643. package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
  644. package/dist/unstable/ai/internal/mcpProtocol.d.ts +21 -0
  645. package/dist/unstable/ai/internal/mcpProtocol.d.ts.map +1 -0
  646. package/dist/unstable/ai/internal/mcpProtocol.js +22 -0
  647. package/dist/unstable/ai/internal/mcpProtocol.js.map +1 -0
  648. package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts +2 -0
  649. package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts.map +1 -0
  650. package/dist/unstable/ai/internal/mcpProtocolRegistry.js +32 -0
  651. package/dist/unstable/ai/internal/mcpProtocolRegistry.js.map +1 -0
  652. package/dist/unstable/ai/internal/structured-output.js +14 -15
  653. package/dist/unstable/ai/internal/structured-output.js.map +1 -1
  654. package/dist/unstable/cli/Argument.d.ts +273 -69
  655. package/dist/unstable/cli/Argument.d.ts.map +1 -1
  656. package/dist/unstable/cli/Argument.js +111 -33
  657. package/dist/unstable/cli/Argument.js.map +1 -1
  658. package/dist/unstable/cli/CliConfig.js.map +1 -1
  659. package/dist/unstable/cli/CliError.d.ts +69 -76
  660. package/dist/unstable/cli/CliError.d.ts.map +1 -1
  661. package/dist/unstable/cli/CliError.js +57 -61
  662. package/dist/unstable/cli/CliError.js.map +1 -1
  663. package/dist/unstable/cli/CliOutput.d.ts +35 -54
  664. package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
  665. package/dist/unstable/cli/CliOutput.js +26 -42
  666. package/dist/unstable/cli/CliOutput.js.map +1 -1
  667. package/dist/unstable/cli/Command.d.ts +705 -107
  668. package/dist/unstable/cli/Command.d.ts.map +1 -1
  669. package/dist/unstable/cli/Command.js +238 -42
  670. package/dist/unstable/cli/Command.js.map +1 -1
  671. package/dist/unstable/cli/Completions.js.map +1 -1
  672. package/dist/unstable/cli/Flag.d.ts +418 -138
  673. package/dist/unstable/cli/Flag.d.ts.map +1 -1
  674. package/dist/unstable/cli/Flag.js +197 -71
  675. package/dist/unstable/cli/Flag.js.map +1 -1
  676. package/dist/unstable/cli/GlobalFlag.d.ts +1 -1
  677. package/dist/unstable/cli/GlobalFlag.js.map +1 -1
  678. package/dist/unstable/cli/HelpDoc.d.ts +12 -4
  679. package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
  680. package/dist/unstable/cli/Param.d.ts +292 -78
  681. package/dist/unstable/cli/Param.d.ts.map +1 -1
  682. package/dist/unstable/cli/Param.js +128 -46
  683. package/dist/unstable/cli/Param.js.map +1 -1
  684. package/dist/unstable/cli/Primitive.d.ts +370 -149
  685. package/dist/unstable/cli/Primitive.d.ts.map +1 -1
  686. package/dist/unstable/cli/Primitive.js +344 -136
  687. package/dist/unstable/cli/Primitive.js.map +1 -1
  688. package/dist/unstable/cli/Prompt.d.ts +23 -14
  689. package/dist/unstable/cli/Prompt.d.ts.map +1 -1
  690. package/dist/unstable/cli/Prompt.js +23 -14
  691. package/dist/unstable/cli/Prompt.js.map +1 -1
  692. package/dist/unstable/cli/index.js.map +1 -1
  693. package/dist/unstable/cli/internal/ansi.js.map +1 -1
  694. package/dist/unstable/cli/internal/auto-suggest.js.map +1 -1
  695. package/dist/unstable/cli/internal/command.js.map +1 -1
  696. package/dist/unstable/cli/internal/completions/bash.js.map +1 -1
  697. package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
  698. package/dist/unstable/cli/internal/completions/fish.js.map +1 -1
  699. package/dist/unstable/cli/internal/completions/zsh.js.map +1 -1
  700. package/dist/unstable/cli/internal/config.js.map +1 -1
  701. package/dist/unstable/cli/internal/help.js.map +1 -1
  702. package/dist/unstable/cli/internal/lexer.js +17 -7
  703. package/dist/unstable/cli/internal/lexer.js.map +1 -1
  704. package/dist/unstable/cli/internal/parser.js +2 -2
  705. package/dist/unstable/cli/internal/parser.js.map +1 -1
  706. package/dist/unstable/cli/internal/wizard.js.map +1 -1
  707. package/dist/unstable/cluster/ClusterCron.js.map +1 -1
  708. package/dist/unstable/cluster/ClusterError.js.map +1 -1
  709. package/dist/unstable/cluster/ClusterMetrics.js.map +1 -1
  710. package/dist/unstable/cluster/ClusterSchema.d.ts +8 -8
  711. package/dist/unstable/cluster/ClusterSchema.js +8 -8
  712. package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
  713. package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
  714. package/dist/unstable/cluster/ClusterWorkflowEngine.js +5 -1
  715. package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
  716. package/dist/unstable/cluster/DeliverAt.js.map +1 -1
  717. package/dist/unstable/cluster/Entity.d.ts +10 -10
  718. package/dist/unstable/cluster/Entity.d.ts.map +1 -1
  719. package/dist/unstable/cluster/Entity.js +8 -8
  720. package/dist/unstable/cluster/Entity.js.map +1 -1
  721. package/dist/unstable/cluster/EntityAddress.js.map +1 -1
  722. package/dist/unstable/cluster/EntityId.js.map +1 -1
  723. package/dist/unstable/cluster/EntityProxy.d.ts +4 -2
  724. package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
  725. package/dist/unstable/cluster/EntityProxy.js +4 -2
  726. package/dist/unstable/cluster/EntityProxy.js.map +1 -1
  727. package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
  728. package/dist/unstable/cluster/EntityResource.d.ts +2 -2
  729. package/dist/unstable/cluster/EntityResource.js +2 -2
  730. package/dist/unstable/cluster/EntityResource.js.map +1 -1
  731. package/dist/unstable/cluster/EntityType.js.map +1 -1
  732. package/dist/unstable/cluster/Envelope.d.ts +3 -3
  733. package/dist/unstable/cluster/Envelope.js +3 -3
  734. package/dist/unstable/cluster/Envelope.js.map +1 -1
  735. package/dist/unstable/cluster/HttpRunner.d.ts +2 -2
  736. package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
  737. package/dist/unstable/cluster/HttpRunner.js +6 -4
  738. package/dist/unstable/cluster/HttpRunner.js.map +1 -1
  739. package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
  740. package/dist/unstable/cluster/MachineId.js.map +1 -1
  741. package/dist/unstable/cluster/Message.d.ts +9 -9
  742. package/dist/unstable/cluster/Message.js +6 -6
  743. package/dist/unstable/cluster/Message.js.map +1 -1
  744. package/dist/unstable/cluster/MessageStorage.d.ts +15 -15
  745. package/dist/unstable/cluster/MessageStorage.js +5 -5
  746. package/dist/unstable/cluster/MessageStorage.js.map +1 -1
  747. package/dist/unstable/cluster/Reply.d.ts.map +1 -1
  748. package/dist/unstable/cluster/Reply.js +4 -4
  749. package/dist/unstable/cluster/Reply.js.map +1 -1
  750. package/dist/unstable/cluster/Runner.js.map +1 -1
  751. package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
  752. package/dist/unstable/cluster/RunnerHealth.d.ts +1 -1
  753. package/dist/unstable/cluster/RunnerHealth.js +1 -1
  754. package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
  755. package/dist/unstable/cluster/RunnerServer.d.ts +2 -1
  756. package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
  757. package/dist/unstable/cluster/RunnerServer.js +16 -16
  758. package/dist/unstable/cluster/RunnerServer.js.map +1 -1
  759. package/dist/unstable/cluster/RunnerStorage.d.ts +2 -2
  760. package/dist/unstable/cluster/RunnerStorage.js +1 -1
  761. package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
  762. package/dist/unstable/cluster/Runners.d.ts +6 -6
  763. package/dist/unstable/cluster/Runners.d.ts.map +1 -1
  764. package/dist/unstable/cluster/Runners.js +19 -10
  765. package/dist/unstable/cluster/Runners.js.map +1 -1
  766. package/dist/unstable/cluster/ShardId.js.map +1 -1
  767. package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
  768. package/dist/unstable/cluster/Sharding.js +3 -2
  769. package/dist/unstable/cluster/Sharding.js.map +1 -1
  770. package/dist/unstable/cluster/ShardingConfig.d.ts +3 -3
  771. package/dist/unstable/cluster/ShardingConfig.js +3 -3
  772. package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
  773. package/dist/unstable/cluster/ShardingRegistrationEvent.js.map +1 -1
  774. package/dist/unstable/cluster/SingleRunner.js.map +1 -1
  775. package/dist/unstable/cluster/Singleton.js.map +1 -1
  776. package/dist/unstable/cluster/SingletonAddress.d.ts +1 -1
  777. package/dist/unstable/cluster/SingletonAddress.js +1 -1
  778. package/dist/unstable/cluster/SingletonAddress.js.map +1 -1
  779. package/dist/unstable/cluster/Snowflake.d.ts +8 -8
  780. package/dist/unstable/cluster/Snowflake.js +8 -8
  781. package/dist/unstable/cluster/Snowflake.js.map +1 -1
  782. package/dist/unstable/cluster/SocketRunner.js.map +1 -1
  783. package/dist/unstable/cluster/SqlMessageStorage.js +1 -1
  784. package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
  785. package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
  786. package/dist/unstable/cluster/SqlRunnerStorage.js +20 -5
  787. package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
  788. package/dist/unstable/cluster/TestRunner.js.map +1 -1
  789. package/dist/unstable/cluster/index.js.map +1 -1
  790. package/dist/unstable/cluster/internal/entityManager.js +5 -5
  791. package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
  792. package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
  793. package/dist/unstable/cluster/internal/hash.js.map +1 -1
  794. package/dist/unstable/cluster/internal/interruptors.js.map +1 -1
  795. package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
  796. package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
  797. package/dist/unstable/cluster/internal/shardLock.js.map +1 -1
  798. package/dist/unstable/devtools/DevTools.js.map +1 -1
  799. package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
  800. package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
  801. package/dist/unstable/devtools/DevToolsServer.js.map +1 -1
  802. package/dist/unstable/devtools/index.js.map +1 -1
  803. package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
  804. package/dist/unstable/encoding/Msgpack.js +6 -8
  805. package/dist/unstable/encoding/Msgpack.js.map +1 -1
  806. package/dist/unstable/encoding/Ndjson.js.map +1 -1
  807. package/dist/unstable/encoding/Sse.d.ts +72 -8
  808. package/dist/unstable/encoding/Sse.d.ts.map +1 -1
  809. package/dist/unstable/encoding/Sse.js +58 -8
  810. package/dist/unstable/encoding/Sse.js.map +1 -1
  811. package/dist/unstable/encoding/index.js.map +1 -1
  812. package/dist/unstable/eventlog/Event.d.ts +20 -20
  813. package/dist/unstable/eventlog/Event.js.map +1 -1
  814. package/dist/unstable/eventlog/EventGroup.d.ts +4 -4
  815. package/dist/unstable/eventlog/EventGroup.js.map +1 -1
  816. package/dist/unstable/eventlog/EventJournal.d.ts +15 -15
  817. package/dist/unstable/eventlog/EventJournal.js +13 -13
  818. package/dist/unstable/eventlog/EventJournal.js.map +1 -1
  819. package/dist/unstable/eventlog/EventLog.d.ts +3 -3
  820. package/dist/unstable/eventlog/EventLog.js +3 -3
  821. package/dist/unstable/eventlog/EventLog.js.map +1 -1
  822. package/dist/unstable/eventlog/EventLogEncryption.d.ts +1 -1
  823. package/dist/unstable/eventlog/EventLogEncryption.js +1 -1
  824. package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
  825. package/dist/unstable/eventlog/EventLogMessage.d.ts +2 -2
  826. package/dist/unstable/eventlog/EventLogMessage.js +1 -1
  827. package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
  828. package/dist/unstable/eventlog/EventLogRemote.d.ts +15 -15
  829. package/dist/unstable/eventlog/EventLogRemote.js +1 -1
  830. package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
  831. package/dist/unstable/eventlog/EventLogServer.d.ts +11 -2
  832. package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
  833. package/dist/unstable/eventlog/EventLogServer.js +45 -21
  834. package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
  835. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +4 -4
  836. package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
  837. package/dist/unstable/eventlog/EventLogServerEncrypted.js +13 -5
  838. package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
  839. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +5 -5
  840. package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
  841. package/dist/unstable/eventlog/EventLogServerUnencrypted.js +14 -6
  842. package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
  843. package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +1 -1
  844. package/dist/unstable/eventlog/EventLogSessionAuth.js +1 -1
  845. package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -1
  846. package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
  847. package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
  848. package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
  849. package/dist/unstable/eventlog/index.js.map +1 -1
  850. package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
  851. package/dist/unstable/http/Cookies.d.ts +2 -2
  852. package/dist/unstable/http/Cookies.d.ts.map +1 -1
  853. package/dist/unstable/http/Cookies.js +30 -18
  854. package/dist/unstable/http/Cookies.js.map +1 -1
  855. package/dist/unstable/http/Etag.d.ts +1 -1
  856. package/dist/unstable/http/Etag.js +1 -1
  857. package/dist/unstable/http/Etag.js.map +1 -1
  858. package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
  859. package/dist/unstable/http/FetchHttpClient.js.map +1 -1
  860. package/dist/unstable/http/Headers.d.ts +2 -2
  861. package/dist/unstable/http/Headers.js +2 -2
  862. package/dist/unstable/http/Headers.js.map +1 -1
  863. package/dist/unstable/http/HttpBody.d.ts +5 -3
  864. package/dist/unstable/http/HttpBody.d.ts.map +1 -1
  865. package/dist/unstable/http/HttpBody.js +11 -5
  866. package/dist/unstable/http/HttpBody.js.map +1 -1
  867. package/dist/unstable/http/HttpClient.d.ts +51 -44
  868. package/dist/unstable/http/HttpClient.d.ts.map +1 -1
  869. package/dist/unstable/http/HttpClient.js +46 -17
  870. package/dist/unstable/http/HttpClient.js.map +1 -1
  871. package/dist/unstable/http/HttpClientError.js.map +1 -1
  872. package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
  873. package/dist/unstable/http/HttpClientRequest.js +2 -0
  874. package/dist/unstable/http/HttpClientRequest.js.map +1 -1
  875. package/dist/unstable/http/HttpClientResponse.d.ts +4 -4
  876. package/dist/unstable/http/HttpClientResponse.js +2 -2
  877. package/dist/unstable/http/HttpClientResponse.js.map +1 -1
  878. package/dist/unstable/http/HttpEffect.d.ts +6 -6
  879. package/dist/unstable/http/HttpEffect.js +3 -3
  880. package/dist/unstable/http/HttpEffect.js.map +1 -1
  881. package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
  882. package/dist/unstable/http/HttpMethod.d.ts +6 -9
  883. package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
  884. package/dist/unstable/http/HttpMethod.js +6 -9
  885. package/dist/unstable/http/HttpMethod.js.map +1 -1
  886. package/dist/unstable/http/HttpMiddleware.d.ts +75 -9
  887. package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
  888. package/dist/unstable/http/HttpMiddleware.js +164 -39
  889. package/dist/unstable/http/HttpMiddleware.js.map +1 -1
  890. package/dist/unstable/http/HttpPlatform.d.ts +76 -0
  891. package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
  892. package/dist/unstable/http/HttpPlatform.js +32 -0
  893. package/dist/unstable/http/HttpPlatform.js.map +1 -1
  894. package/dist/unstable/http/HttpRouter.d.ts +88 -89
  895. package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
  896. package/dist/unstable/http/HttpRouter.js +78 -79
  897. package/dist/unstable/http/HttpRouter.js.map +1 -1
  898. package/dist/unstable/http/HttpServer.d.ts +13 -13
  899. package/dist/unstable/http/HttpServer.js +6 -6
  900. package/dist/unstable/http/HttpServer.js.map +1 -1
  901. package/dist/unstable/http/HttpServerError.d.ts +2 -2
  902. package/dist/unstable/http/HttpServerError.js +2 -2
  903. package/dist/unstable/http/HttpServerError.js.map +1 -1
  904. package/dist/unstable/http/HttpServerRequest.d.ts +4 -4
  905. package/dist/unstable/http/HttpServerRequest.js +4 -4
  906. package/dist/unstable/http/HttpServerRequest.js.map +1 -1
  907. package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
  908. package/dist/unstable/http/HttpServerResponse.d.ts +22 -0
  909. package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
  910. package/dist/unstable/http/HttpServerResponse.js +10 -0
  911. package/dist/unstable/http/HttpServerResponse.js.map +1 -1
  912. package/dist/unstable/http/HttpStaticServer.d.ts +35 -7
  913. package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
  914. package/dist/unstable/http/HttpStaticServer.js +35 -7
  915. package/dist/unstable/http/HttpStaticServer.js.map +1 -1
  916. package/dist/unstable/http/HttpTraceContext.js.map +1 -1
  917. package/dist/unstable/http/Multipart.d.ts +6 -6
  918. package/dist/unstable/http/Multipart.js +5 -5
  919. package/dist/unstable/http/Multipart.js.map +1 -1
  920. package/dist/unstable/http/Template.js.map +1 -1
  921. package/dist/unstable/http/Url.d.ts +33 -63
  922. package/dist/unstable/http/Url.d.ts.map +1 -1
  923. package/dist/unstable/http/Url.js +14 -28
  924. package/dist/unstable/http/Url.js.map +1 -1
  925. package/dist/unstable/http/UrlParams.d.ts +10 -18
  926. package/dist/unstable/http/UrlParams.d.ts.map +1 -1
  927. package/dist/unstable/http/UrlParams.js +9 -17
  928. package/dist/unstable/http/UrlParams.js.map +1 -1
  929. package/dist/unstable/http/index.js.map +1 -1
  930. package/dist/unstable/http/internal/compression.d.ts +2 -0
  931. package/dist/unstable/http/internal/compression.d.ts.map +1 -0
  932. package/dist/unstable/http/internal/compression.js +155 -0
  933. package/dist/unstable/http/internal/compression.js.map +1 -0
  934. package/dist/unstable/http/internal/preResponseHandler.js.map +1 -1
  935. package/dist/unstable/httpapi/HttpApi.js.map +1 -1
  936. package/dist/unstable/httpapi/HttpApiBuilder.d.ts +1 -1
  937. package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
  938. package/dist/unstable/httpapi/HttpApiBuilder.js +10 -11
  939. package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
  940. package/dist/unstable/httpapi/HttpApiClient.d.ts +4 -5
  941. package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
  942. package/dist/unstable/httpapi/HttpApiClient.js +11 -13
  943. package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
  944. package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +42 -42
  945. package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
  946. package/dist/unstable/httpapi/HttpApiError.d.ts +13 -13
  947. package/dist/unstable/httpapi/HttpApiError.js +13 -13
  948. package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
  949. package/dist/unstable/httpapi/HttpApiGroup.d.ts +15 -15
  950. package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
  951. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +71 -24
  952. package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
  953. package/dist/unstable/httpapi/HttpApiMiddleware.js +57 -10
  954. package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
  955. package/dist/unstable/httpapi/HttpApiScalar.d.ts +0 -12
  956. package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
  957. package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
  958. package/dist/unstable/httpapi/HttpApiSchema.d.ts +6 -6
  959. package/dist/unstable/httpapi/HttpApiSchema.js +4 -4
  960. package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
  961. package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
  962. package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
  963. package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
  964. package/dist/unstable/httpapi/OpenApi.d.ts +13 -13
  965. package/dist/unstable/httpapi/OpenApi.js +13 -13
  966. package/dist/unstable/httpapi/OpenApi.js.map +1 -1
  967. package/dist/unstable/httpapi/index.js.map +1 -1
  968. package/dist/unstable/httpapi/internal/html.js.map +1 -1
  969. package/dist/unstable/httpapi/internal/httpApiScalar.js.map +1 -1
  970. package/dist/unstable/httpapi/internal/httpApiSwagger.js.map +1 -1
  971. package/dist/unstable/httpapi/internal/mediaType.js.map +1 -1
  972. package/dist/unstable/observability/Otlp.js.map +1 -1
  973. package/dist/unstable/observability/OtlpExporter.d.ts +12 -14
  974. package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
  975. package/dist/unstable/observability/OtlpExporter.js +17 -4
  976. package/dist/unstable/observability/OtlpExporter.js.map +1 -1
  977. package/dist/unstable/observability/OtlpLogger.js.map +1 -1
  978. package/dist/unstable/observability/OtlpMetrics.d.ts +4 -1
  979. package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
  980. package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
  981. package/dist/unstable/observability/OtlpResource.d.ts +16 -7
  982. package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
  983. package/dist/unstable/observability/OtlpResource.js +21 -12
  984. package/dist/unstable/observability/OtlpResource.js.map +1 -1
  985. package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
  986. package/dist/unstable/observability/OtlpTracer.js.map +1 -1
  987. package/dist/unstable/observability/PrometheusMetrics.d.ts +13 -4
  988. package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
  989. package/dist/unstable/observability/PrometheusMetrics.js +10 -3
  990. package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
  991. package/dist/unstable/observability/index.js.map +1 -1
  992. package/dist/unstable/observability/internal/otlpEnv.js +1 -1
  993. package/dist/unstable/observability/internal/otlpEnv.js.map +1 -1
  994. package/dist/unstable/observability/internal/otlpProtobuf.js.map +1 -1
  995. package/dist/unstable/observability/internal/protobuf.js +3 -0
  996. package/dist/unstable/observability/internal/protobuf.js.map +1 -1
  997. package/dist/unstable/persistence/KeyValueStore.d.ts +8 -3
  998. package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
  999. package/dist/unstable/persistence/KeyValueStore.js +22 -13
  1000. package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
  1001. package/dist/unstable/persistence/Persistable.d.ts +8 -8
  1002. package/dist/unstable/persistence/Persistable.js.map +1 -1
  1003. package/dist/unstable/persistence/PersistedCache.js.map +1 -1
  1004. package/dist/unstable/persistence/PersistedQueue.d.ts +6 -6
  1005. package/dist/unstable/persistence/PersistedQueue.js +6 -6
  1006. package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
  1007. package/dist/unstable/persistence/Persistence.d.ts +3 -3
  1008. package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
  1009. package/dist/unstable/persistence/Persistence.js +91 -15
  1010. package/dist/unstable/persistence/Persistence.js.map +1 -1
  1011. package/dist/unstable/persistence/RateLimiter.d.ts +26 -15
  1012. package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
  1013. package/dist/unstable/persistence/RateLimiter.js +24 -13
  1014. package/dist/unstable/persistence/RateLimiter.js.map +1 -1
  1015. package/dist/unstable/persistence/Redis.d.ts +2 -2
  1016. package/dist/unstable/persistence/Redis.js +1 -1
  1017. package/dist/unstable/persistence/Redis.js.map +1 -1
  1018. package/dist/unstable/persistence/index.js.map +1 -1
  1019. package/dist/unstable/process/ChildProcess.d.ts +64 -21
  1020. package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
  1021. package/dist/unstable/process/ChildProcess.js +14 -5
  1022. package/dist/unstable/process/ChildProcess.js.map +1 -1
  1023. package/dist/unstable/process/ChildProcessSpawner.d.ts +21 -10
  1024. package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
  1025. package/dist/unstable/process/ChildProcessSpawner.js +1 -1
  1026. package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
  1027. package/dist/unstable/process/index.js.map +1 -1
  1028. package/dist/unstable/reactivity/AsyncResult.d.ts +8 -8
  1029. package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
  1030. package/dist/unstable/reactivity/AsyncResult.js +10 -10
  1031. package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
  1032. package/dist/unstable/reactivity/Atom.d.ts +25 -22
  1033. package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
  1034. package/dist/unstable/reactivity/Atom.js +14 -13
  1035. package/dist/unstable/reactivity/Atom.js.map +1 -1
  1036. package/dist/unstable/reactivity/AtomHttpApi.d.ts +1 -1
  1037. package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
  1038. package/dist/unstable/reactivity/AtomHttpApi.js +4 -1
  1039. package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
  1040. package/dist/unstable/reactivity/AtomRef.js.map +1 -1
  1041. package/dist/unstable/reactivity/AtomRegistry.js +24 -3
  1042. package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
  1043. package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
  1044. package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
  1045. package/dist/unstable/reactivity/AtomRpc.js +4 -1
  1046. package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
  1047. package/dist/unstable/reactivity/Hydration.d.ts +1 -1
  1048. package/dist/unstable/reactivity/Hydration.js +1 -1
  1049. package/dist/unstable/reactivity/Hydration.js.map +1 -1
  1050. package/dist/unstable/reactivity/Reactivity.js.map +1 -1
  1051. package/dist/unstable/reactivity/index.js.map +1 -1
  1052. package/dist/unstable/rpc/Rpc.d.ts +35 -33
  1053. package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
  1054. package/dist/unstable/rpc/Rpc.js +4 -2
  1055. package/dist/unstable/rpc/Rpc.js.map +1 -1
  1056. package/dist/unstable/rpc/RpcClient.d.ts +12 -12
  1057. package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
  1058. package/dist/unstable/rpc/RpcClient.js +12 -11
  1059. package/dist/unstable/rpc/RpcClient.js.map +1 -1
  1060. package/dist/unstable/rpc/RpcClientError.js.map +1 -1
  1061. package/dist/unstable/rpc/RpcGroup.d.ts +8 -8
  1062. package/dist/unstable/rpc/RpcGroup.js +1 -1
  1063. package/dist/unstable/rpc/RpcGroup.js.map +1 -1
  1064. package/dist/unstable/rpc/RpcMessage.d.ts +31 -30
  1065. package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
  1066. package/dist/unstable/rpc/RpcMessage.js +6 -6
  1067. package/dist/unstable/rpc/RpcMessage.js.map +1 -1
  1068. package/dist/unstable/rpc/RpcMiddleware.d.ts +10 -10
  1069. package/dist/unstable/rpc/RpcMiddleware.js +1 -1
  1070. package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
  1071. package/dist/unstable/rpc/RpcSchema.d.ts +4 -4
  1072. package/dist/unstable/rpc/RpcSchema.js +3 -3
  1073. package/dist/unstable/rpc/RpcSchema.js.map +1 -1
  1074. package/dist/unstable/rpc/RpcSerialization.d.ts +58 -7
  1075. package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
  1076. package/dist/unstable/rpc/RpcSerialization.js +175 -96
  1077. package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
  1078. package/dist/unstable/rpc/RpcServer.d.ts +13 -13
  1079. package/dist/unstable/rpc/RpcServer.js +17 -13
  1080. package/dist/unstable/rpc/RpcServer.js.map +1 -1
  1081. package/dist/unstable/rpc/RpcTest.js.map +1 -1
  1082. package/dist/unstable/rpc/RpcWorker.d.ts +5 -5
  1083. package/dist/unstable/rpc/RpcWorker.js +4 -4
  1084. package/dist/unstable/rpc/RpcWorker.js.map +1 -1
  1085. package/dist/unstable/rpc/Utils.js.map +1 -1
  1086. package/dist/unstable/rpc/index.js.map +1 -1
  1087. package/dist/unstable/schema/Model.d.ts +52 -50
  1088. package/dist/unstable/schema/Model.d.ts.map +1 -1
  1089. package/dist/unstable/schema/Model.js +35 -33
  1090. package/dist/unstable/schema/Model.js.map +1 -1
  1091. package/dist/unstable/schema/VariantSchema.d.ts +5 -5
  1092. package/dist/unstable/schema/VariantSchema.js +2 -2
  1093. package/dist/unstable/schema/VariantSchema.js.map +1 -1
  1094. package/dist/unstable/schema/index.js.map +1 -1
  1095. package/dist/unstable/socket/Socket.d.ts +11 -3
  1096. package/dist/unstable/socket/Socket.d.ts.map +1 -1
  1097. package/dist/unstable/socket/Socket.js +9 -4
  1098. package/dist/unstable/socket/Socket.js.map +1 -1
  1099. package/dist/unstable/socket/SocketServer.js.map +1 -1
  1100. package/dist/unstable/socket/index.js.map +1 -1
  1101. package/dist/unstable/sql/Migrator.js.map +1 -1
  1102. package/dist/unstable/sql/SqlClient.d.ts +1 -1
  1103. package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
  1104. package/dist/unstable/sql/SqlClient.js +2 -2
  1105. package/dist/unstable/sql/SqlClient.js.map +1 -1
  1106. package/dist/unstable/sql/SqlConnection.js.map +1 -1
  1107. package/dist/unstable/sql/SqlError.js.map +1 -1
  1108. package/dist/unstable/sql/SqlModel.d.ts +2 -2
  1109. package/dist/unstable/sql/SqlModel.js +2 -2
  1110. package/dist/unstable/sql/SqlModel.js.map +1 -1
  1111. package/dist/unstable/sql/SqlResolver.d.ts +5 -5
  1112. package/dist/unstable/sql/SqlResolver.js +2 -2
  1113. package/dist/unstable/sql/SqlResolver.js.map +1 -1
  1114. package/dist/unstable/sql/SqlSchema.js.map +1 -1
  1115. package/dist/unstable/sql/SqlStream.js.map +1 -1
  1116. package/dist/unstable/sql/Statement.d.ts +6 -6
  1117. package/dist/unstable/sql/Statement.js +15 -15
  1118. package/dist/unstable/sql/Statement.js.map +1 -1
  1119. package/dist/unstable/sql/index.js.map +1 -1
  1120. package/dist/unstable/workers/Transferable.d.ts +1 -1
  1121. package/dist/unstable/workers/Transferable.js +1 -1
  1122. package/dist/unstable/workers/Transferable.js.map +1 -1
  1123. package/dist/unstable/workers/Worker.d.ts +2 -2
  1124. package/dist/unstable/workers/Worker.js +2 -2
  1125. package/dist/unstable/workers/Worker.js.map +1 -1
  1126. package/dist/unstable/workers/WorkerError.d.ts +7 -7
  1127. package/dist/unstable/workers/WorkerError.js +6 -6
  1128. package/dist/unstable/workers/WorkerError.js.map +1 -1
  1129. package/dist/unstable/workers/WorkerRunner.d.ts +1 -1
  1130. package/dist/unstable/workers/WorkerRunner.js +1 -1
  1131. package/dist/unstable/workers/WorkerRunner.js.map +1 -1
  1132. package/dist/unstable/workers/index.js.map +1 -1
  1133. package/dist/unstable/workflow/Activity.d.ts +2 -2
  1134. package/dist/unstable/workflow/Activity.js +2 -2
  1135. package/dist/unstable/workflow/Activity.js.map +1 -1
  1136. package/dist/unstable/workflow/DurableClock.d.ts +1 -1
  1137. package/dist/unstable/workflow/DurableClock.js +1 -1
  1138. package/dist/unstable/workflow/DurableClock.js.map +1 -1
  1139. package/dist/unstable/workflow/DurableDeferred.d.ts +10 -10
  1140. package/dist/unstable/workflow/DurableDeferred.js +5 -5
  1141. package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
  1142. package/dist/unstable/workflow/DurableQueue.d.ts +22 -20
  1143. package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
  1144. package/dist/unstable/workflow/DurableQueue.js +22 -20
  1145. package/dist/unstable/workflow/DurableQueue.js.map +1 -1
  1146. package/dist/unstable/workflow/Workflow.d.ts +21 -21
  1147. package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
  1148. package/dist/unstable/workflow/Workflow.js +13 -14
  1149. package/dist/unstable/workflow/Workflow.js.map +1 -1
  1150. package/dist/unstable/workflow/WorkflowEngine.d.ts +1 -1
  1151. package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
  1152. package/dist/unstable/workflow/WorkflowProxy.d.ts +4 -2
  1153. package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
  1154. package/dist/unstable/workflow/WorkflowProxy.js +4 -2
  1155. package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
  1156. package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
  1157. package/dist/unstable/workflow/index.js.map +1 -1
  1158. package/dist/unstable/workflow/internal/crypto.js.map +1 -1
  1159. package/package.json +5 -6
  1160. package/src/Array.ts +982 -1045
  1161. package/src/BigDecimal.ts +433 -756
  1162. package/src/BigInt.ts +213 -269
  1163. package/src/Boolean.ts +146 -188
  1164. package/src/Cache.ts +409 -255
  1165. package/src/Cause.ts +167 -277
  1166. package/src/Channel.ts +891 -816
  1167. package/src/ChannelSchema.ts +1 -1
  1168. package/src/Chunk.ts +841 -1181
  1169. package/src/Clock.ts +181 -49
  1170. package/src/Combiner.ts +20 -33
  1171. package/src/Config.ts +615 -332
  1172. package/src/ConfigProvider.ts +214 -120
  1173. package/src/Console.ts +289 -39
  1174. package/src/Context.ts +319 -378
  1175. package/src/Cron.ts +68 -77
  1176. package/src/Crypto.ts +13 -15
  1177. package/src/Data.ts +60 -80
  1178. package/src/DateTime.ts +564 -660
  1179. package/src/Deferred.ts +253 -256
  1180. package/src/Duration.ts +216 -308
  1181. package/src/Effect.ts +2893 -3279
  1182. package/src/Encoding.ts +22 -40
  1183. package/src/Equal.ts +49 -39
  1184. package/src/Equivalence.ts +103 -105
  1185. package/src/ErrorReporter.ts +51 -27
  1186. package/src/ExecutionPlan.ts +13 -55
  1187. package/src/Exit.ts +116 -192
  1188. package/src/Fiber.ts +81 -148
  1189. package/src/FiberHandle.ts +152 -105
  1190. package/src/FiberMap.ts +225 -174
  1191. package/src/FiberSet.ts +124 -82
  1192. package/src/FileSystem.ts +155 -263
  1193. package/src/Filter.ts +61 -33
  1194. package/src/Formatter.ts +54 -56
  1195. package/src/Function.ts +76 -145
  1196. package/src/Graph.ts +416 -770
  1197. package/src/HKT.ts +12 -6
  1198. package/src/Hash.ts +52 -83
  1199. package/src/HashMap.ts +319 -411
  1200. package/src/HashRing.ts +1 -0
  1201. package/src/HashSet.ts +177 -284
  1202. package/src/Inspectable.ts +12 -12
  1203. package/src/Iterable.ts +620 -786
  1204. package/src/JsonPatch.ts +58 -112
  1205. package/src/JsonPointer.ts +8 -8
  1206. package/src/JsonSchema.ts +402 -244
  1207. package/src/Latch.ts +23 -35
  1208. package/src/Layer.ts +359 -260
  1209. package/src/LayerMap.ts +49 -29
  1210. package/src/LayerRef.ts +6 -2
  1211. package/src/LogLevel.ts +114 -214
  1212. package/src/Logger.ts +344 -697
  1213. package/src/ManagedRuntime.ts +7 -5
  1214. package/src/Match.ts +217 -252
  1215. package/src/Metric.ts +516 -1089
  1216. package/src/MutableHashMap.ts +218 -255
  1217. package/src/MutableHashSet.ts +84 -89
  1218. package/src/MutableList.ts +73 -370
  1219. package/src/MutableRef.ts +420 -243
  1220. package/src/Newtype.ts +21 -14
  1221. package/src/NonEmptyIterable.ts +7 -137
  1222. package/src/Number.ts +196 -233
  1223. package/src/Optic.ts +243 -383
  1224. package/src/Option.ts +447 -812
  1225. package/src/Order.ts +109 -109
  1226. package/src/Ordering.ts +20 -23
  1227. package/src/Path.ts +38 -41
  1228. package/src/Pipeable.ts +6 -5
  1229. package/src/PlatformError.ts +4 -4
  1230. package/src/Pool.ts +4 -2
  1231. package/src/Predicate.ts +200 -181
  1232. package/src/PrimaryKey.ts +7 -7
  1233. package/src/PubSub.ts +526 -552
  1234. package/src/Pull.ts +24 -18
  1235. package/src/Queue.ts +200 -159
  1236. package/src/Random.ts +49 -74
  1237. package/src/RcMap.ts +121 -63
  1238. package/src/RcRef.ts +24 -13
  1239. package/src/Record.ts +291 -488
  1240. package/src/Redactable.ts +10 -3
  1241. package/src/Redacted.ts +25 -25
  1242. package/src/Reducer.ts +8 -15
  1243. package/src/Ref.ts +221 -361
  1244. package/src/References.ts +102 -168
  1245. package/src/RegExp.ts +10 -14
  1246. package/src/Request.ts +31 -21
  1247. package/src/RequestResolver.ts +202 -91
  1248. package/src/Result.ts +312 -484
  1249. package/src/Runtime.ts +50 -75
  1250. package/src/Schedule.ts +308 -1734
  1251. package/src/Scheduler.ts +20 -7
  1252. package/src/Schema.ts +716 -745
  1253. package/src/SchemaAST.ts +466 -358
  1254. package/src/SchemaError.ts +7 -6
  1255. package/src/SchemaGetter.ts +242 -190
  1256. package/src/SchemaIssue.ts +89 -275
  1257. package/src/SchemaParser.ts +180 -93
  1258. package/src/SchemaRepresentation.ts +22 -40
  1259. package/src/SchemaTransformation.ts +129 -88
  1260. package/src/Scope.ts +123 -151
  1261. package/src/ScopedRef.ts +4 -4
  1262. package/src/Semaphore.ts +152 -51
  1263. package/src/Sink.ts +128 -113
  1264. package/src/Stdio.ts +1 -1
  1265. package/src/Stream.ts +2602 -3123
  1266. package/src/String.ts +275 -312
  1267. package/src/Struct.ts +109 -114
  1268. package/src/SubscriptionRef.ts +284 -252
  1269. package/src/Symbol.ts +3 -3
  1270. package/src/Terminal.ts +2 -2
  1271. package/src/Tracer.ts +102 -55
  1272. package/src/Trie.ts +287 -679
  1273. package/src/Tuple.ts +92 -127
  1274. package/src/TxChunk.ts +201 -121
  1275. package/src/TxDeferred.ts +62 -46
  1276. package/src/TxHashMap.ts +645 -799
  1277. package/src/TxHashSet.ts +443 -356
  1278. package/src/TxPriorityQueue.ts +130 -98
  1279. package/src/TxPubSub.ts +107 -80
  1280. package/src/TxQueue.ts +214 -183
  1281. package/src/TxReentrantLock.ts +97 -66
  1282. package/src/TxRef.ts +51 -32
  1283. package/src/TxSemaphore.ts +129 -95
  1284. package/src/TxSubscriptionRef.ts +97 -70
  1285. package/src/Types.ts +126 -67
  1286. package/src/Unify.ts +45 -65
  1287. package/src/Utils.ts +23 -16
  1288. package/src/internal/core.ts +2 -2
  1289. package/src/internal/dateTime.ts +6 -0
  1290. package/src/internal/effect.ts +93 -48
  1291. package/src/internal/persistence.ts +2 -0
  1292. package/src/internal/references.ts +3 -2
  1293. package/src/internal/schema/fromJsonSchemaDocument.ts +15 -13
  1294. package/src/internal/schema/fromRepresentation.ts +10 -16
  1295. package/src/internal/schema/parser.ts +22 -0
  1296. package/src/internal/schema/toJsonSchemaDocument.ts +60 -6
  1297. package/src/internal/schema/toRepresentation.ts +104 -119
  1298. package/src/internal/trie.ts +10 -11
  1299. package/src/testing/FastCheck.ts +8 -7
  1300. package/src/testing/TestClock.ts +72 -30
  1301. package/src/testing/TestConsole.ts +32 -31
  1302. package/src/testing/TestSchema.ts +29 -29
  1303. package/src/unstable/ai/AiError.ts +95 -118
  1304. package/src/unstable/ai/AnthropicStructuredOutput.ts +1 -1
  1305. package/src/unstable/ai/Chat.ts +132 -97
  1306. package/src/unstable/ai/IdGenerator.ts +32 -28
  1307. package/src/unstable/ai/LanguageModel.ts +107 -67
  1308. package/src/unstable/ai/McpProtocol.ts +48 -0
  1309. package/src/unstable/ai/McpSchema.ts +60 -50
  1310. package/src/unstable/ai/McpServer.ts +930 -304
  1311. package/src/unstable/ai/Model.ts +9 -20
  1312. package/src/unstable/ai/OpenAiStructuredOutput.ts +1 -1
  1313. package/src/unstable/ai/Prompt.ts +145 -43
  1314. package/src/unstable/ai/Response.ts +28 -14
  1315. package/src/unstable/ai/Telemetry.ts +46 -13
  1316. package/src/unstable/ai/Tokenizer.ts +14 -3
  1317. package/src/unstable/ai/Tool.ts +59 -44
  1318. package/src/unstable/ai/Toolkit.ts +26 -8
  1319. package/src/unstable/ai/index.ts +5 -0
  1320. package/src/unstable/ai/internal/mcpProtocol.ts +85 -0
  1321. package/src/unstable/ai/internal/mcpProtocolRegistry.ts +70 -0
  1322. package/src/unstable/ai/internal/structured-output.ts +13 -18
  1323. package/src/unstable/cli/Argument.ts +273 -69
  1324. package/src/unstable/cli/CliError.ts +69 -76
  1325. package/src/unstable/cli/CliOutput.ts +44 -58
  1326. package/src/unstable/cli/Command.ts +705 -107
  1327. package/src/unstable/cli/Flag.ts +418 -138
  1328. package/src/unstable/cli/GlobalFlag.ts +1 -1
  1329. package/src/unstable/cli/HelpDoc.ts +12 -4
  1330. package/src/unstable/cli/Param.ts +292 -78
  1331. package/src/unstable/cli/Primitive.ts +370 -149
  1332. package/src/unstable/cli/Prompt.ts +28 -14
  1333. package/src/unstable/cli/internal/lexer.ts +8 -2
  1334. package/src/unstable/cli/internal/parser.ts +2 -2
  1335. package/src/unstable/cluster/ClusterSchema.ts +8 -8
  1336. package/src/unstable/cluster/ClusterWorkflowEngine.ts +5 -1
  1337. package/src/unstable/cluster/Entity.ts +15 -16
  1338. package/src/unstable/cluster/EntityProxy.ts +4 -2
  1339. package/src/unstable/cluster/EntityResource.ts +2 -2
  1340. package/src/unstable/cluster/Envelope.ts +3 -3
  1341. package/src/unstable/cluster/HttpRunner.ts +6 -4
  1342. package/src/unstable/cluster/Message.ts +9 -9
  1343. package/src/unstable/cluster/MessageStorage.ts +15 -15
  1344. package/src/unstable/cluster/Reply.ts +4 -6
  1345. package/src/unstable/cluster/RunnerHealth.ts +1 -1
  1346. package/src/unstable/cluster/RunnerServer.ts +41 -8
  1347. package/src/unstable/cluster/RunnerStorage.ts +2 -2
  1348. package/src/unstable/cluster/Runners.ts +23 -12
  1349. package/src/unstable/cluster/Sharding.ts +7 -8
  1350. package/src/unstable/cluster/ShardingConfig.ts +3 -3
  1351. package/src/unstable/cluster/SingletonAddress.ts +1 -1
  1352. package/src/unstable/cluster/Snowflake.ts +8 -8
  1353. package/src/unstable/cluster/SqlMessageStorage.ts +1 -1
  1354. package/src/unstable/cluster/SqlRunnerStorage.ts +21 -5
  1355. package/src/unstable/cluster/internal/entityManager.ts +11 -15
  1356. package/src/unstable/encoding/Msgpack.ts +6 -8
  1357. package/src/unstable/encoding/Sse.ts +98 -16
  1358. package/src/unstable/eventlog/Event.ts +20 -20
  1359. package/src/unstable/eventlog/EventGroup.ts +4 -4
  1360. package/src/unstable/eventlog/EventJournal.ts +15 -15
  1361. package/src/unstable/eventlog/EventLog.ts +3 -3
  1362. package/src/unstable/eventlog/EventLogEncryption.ts +1 -1
  1363. package/src/unstable/eventlog/EventLogMessage.ts +2 -2
  1364. package/src/unstable/eventlog/EventLogRemote.ts +1 -1
  1365. package/src/unstable/eventlog/EventLogServer.ts +41 -7
  1366. package/src/unstable/eventlog/EventLogServerEncrypted.ts +13 -5
  1367. package/src/unstable/eventlog/EventLogServerUnencrypted.ts +14 -6
  1368. package/src/unstable/eventlog/EventLogSessionAuth.ts +1 -1
  1369. package/src/unstable/http/Cookies.ts +35 -21
  1370. package/src/unstable/http/Etag.ts +1 -1
  1371. package/src/unstable/http/FetchHttpClient.ts +3 -1
  1372. package/src/unstable/http/Headers.ts +2 -2
  1373. package/src/unstable/http/HttpBody.ts +20 -5
  1374. package/src/unstable/http/HttpClient.ts +83 -55
  1375. package/src/unstable/http/HttpClientRequest.ts +2 -0
  1376. package/src/unstable/http/HttpClientResponse.ts +4 -4
  1377. package/src/unstable/http/HttpEffect.ts +8 -8
  1378. package/src/unstable/http/HttpMethod.ts +6 -9
  1379. package/src/unstable/http/HttpMiddleware.ts +202 -39
  1380. package/src/unstable/http/HttpPlatform.ts +95 -0
  1381. package/src/unstable/http/HttpRouter.ts +102 -98
  1382. package/src/unstable/http/HttpServer.ts +13 -13
  1383. package/src/unstable/http/HttpServerError.ts +2 -2
  1384. package/src/unstable/http/HttpServerRequest.ts +4 -4
  1385. package/src/unstable/http/HttpServerResponse.ts +30 -0
  1386. package/src/unstable/http/HttpStaticServer.ts +35 -7
  1387. package/src/unstable/http/Multipart.ts +6 -6
  1388. package/src/unstable/http/Url.ts +33 -63
  1389. package/src/unstable/http/UrlParams.ts +10 -18
  1390. package/src/unstable/http/internal/compression.ts +196 -0
  1391. package/src/unstable/httpapi/HttpApiBuilder.ts +10 -9
  1392. package/src/unstable/httpapi/HttpApiClient.ts +14 -14
  1393. package/src/unstable/httpapi/HttpApiEndpoint.ts +42 -42
  1394. package/src/unstable/httpapi/HttpApiError.ts +13 -13
  1395. package/src/unstable/httpapi/HttpApiGroup.ts +15 -15
  1396. package/src/unstable/httpapi/HttpApiMiddleware.ts +71 -24
  1397. package/src/unstable/httpapi/HttpApiScalar.ts +0 -12
  1398. package/src/unstable/httpapi/HttpApiSchema.ts +6 -6
  1399. package/src/unstable/httpapi/OpenApi.ts +13 -13
  1400. package/src/unstable/observability/OtlpExporter.ts +31 -19
  1401. package/src/unstable/observability/OtlpMetrics.ts +4 -1
  1402. package/src/unstable/observability/OtlpResource.ts +26 -17
  1403. package/src/unstable/observability/PrometheusMetrics.ts +13 -4
  1404. package/src/unstable/observability/internal/otlpEnv.ts +1 -1
  1405. package/src/unstable/observability/internal/protobuf.ts +3 -0
  1406. package/src/unstable/persistence/KeyValueStore.ts +72 -49
  1407. package/src/unstable/persistence/Persistable.ts +8 -8
  1408. package/src/unstable/persistence/PersistedQueue.ts +6 -6
  1409. package/src/unstable/persistence/Persistence.ts +126 -19
  1410. package/src/unstable/persistence/RateLimiter.ts +26 -15
  1411. package/src/unstable/persistence/Redis.ts +2 -2
  1412. package/src/unstable/process/ChildProcess.ts +64 -21
  1413. package/src/unstable/process/ChildProcessSpawner.ts +21 -10
  1414. package/src/unstable/reactivity/AsyncResult.ts +12 -13
  1415. package/src/unstable/reactivity/Atom.ts +28 -25
  1416. package/src/unstable/reactivity/AtomHttpApi.ts +5 -4
  1417. package/src/unstable/reactivity/AtomRegistry.ts +24 -3
  1418. package/src/unstable/reactivity/AtomRpc.ts +5 -4
  1419. package/src/unstable/reactivity/Hydration.ts +1 -1
  1420. package/src/unstable/rpc/Rpc.ts +35 -33
  1421. package/src/unstable/rpc/RpcClient.ts +16 -15
  1422. package/src/unstable/rpc/RpcGroup.ts +8 -8
  1423. package/src/unstable/rpc/RpcMessage.ts +31 -30
  1424. package/src/unstable/rpc/RpcMiddleware.ts +10 -10
  1425. package/src/unstable/rpc/RpcSchema.ts +4 -4
  1426. package/src/unstable/rpc/RpcSerialization.ts +167 -68
  1427. package/src/unstable/rpc/RpcServer.ts +18 -15
  1428. package/src/unstable/rpc/RpcWorker.ts +5 -5
  1429. package/src/unstable/schema/Model.ts +52 -50
  1430. package/src/unstable/schema/VariantSchema.ts +5 -5
  1431. package/src/unstable/socket/Socket.ts +17 -4
  1432. package/src/unstable/sql/SqlClient.ts +5 -6
  1433. package/src/unstable/sql/SqlModel.ts +2 -2
  1434. package/src/unstable/sql/SqlResolver.ts +5 -5
  1435. package/src/unstable/sql/Statement.ts +24 -23
  1436. package/src/unstable/workers/Transferable.ts +1 -1
  1437. package/src/unstable/workers/Worker.ts +2 -2
  1438. package/src/unstable/workers/WorkerError.ts +7 -7
  1439. package/src/unstable/workers/WorkerRunner.ts +1 -1
  1440. package/src/unstable/workflow/Activity.ts +2 -2
  1441. package/src/unstable/workflow/DurableClock.ts +1 -1
  1442. package/src/unstable/workflow/DurableDeferred.ts +10 -10
  1443. package/src/unstable/workflow/DurableQueue.ts +22 -20
  1444. package/src/unstable/workflow/Workflow.ts +23 -23
  1445. package/src/unstable/workflow/WorkflowEngine.ts +1 -1
  1446. package/src/unstable/workflow/WorkflowProxy.ts +4 -2
  1447. package/dist/internal/version.d.ts +0 -3
  1448. package/dist/internal/version.d.ts.map +0 -1
  1449. package/dist/internal/version.js +0 -2
  1450. package/dist/internal/version.js.map +0 -1
  1451. package/src/internal/version.ts +0 -2
package/src/SchemaAST.ts CHANGED
@@ -13,16 +13,15 @@
13
13
 
14
14
  import * as Arr from "./Array.ts"
15
15
  import * as Cause from "./Cause.ts"
16
- import type * as Combiner from "./Combiner.ts"
17
16
  import * as Effect from "./Effect.ts"
18
17
  import * as Exit from "./Exit.ts"
19
18
  import { format, formatPropertyKey } from "./Formatter.ts"
20
- import { memoize } from "./Function.ts"
19
+ import { identity, memoize } from "./Function.ts"
21
20
  import { effectIsExit, iterateEager } from "./internal/effect.ts"
22
21
  import * as InternalRecord from "./internal/record.ts"
23
22
  import * as InternalAnnotations from "./internal/schema/annotations.ts"
24
23
  import * as InternalSchemaCause from "./internal/schema/cause.ts"
25
- import * as Option from "./Option.ts"
24
+ import * as InternalParser from "./internal/schema/parser.ts"
26
25
  import * as Pipeable from "./Pipeable.ts"
27
26
  import * as Predicate from "./Predicate.ts"
28
27
  import * as Result from "./Result.ts"
@@ -672,10 +671,10 @@ export class Declaration extends Base {
672
671
  }
673
672
  /** @internal */
674
673
  getParser(): SchemaParser.Parser {
675
- const run = this.run(this.typeParameters)
676
- return (oinput, options) => {
677
- if (Option.isNone(oinput)) return Effect.succeedNone
678
- return Effect.mapEager(run(oinput.value, this, options), Option.some)
674
+ let run: ReturnType<typeof this.run>
675
+ return (input, options) => {
676
+ if (input === InternalParser.missing) return InternalParser.missingExit
677
+ return (run ??= this.run(this.typeParameters))(input, this, options)
679
678
  }
680
679
  }
681
680
  private _rebuild(recur: (ast: AST) => AST, checks: Checks | undefined, encodingChecks: Checks | undefined) {
@@ -816,7 +815,8 @@ export class Void extends Base {
816
815
  readonly _tag = "Void"
817
816
  /** @internal */
818
817
  getParser() {
819
- return fromAnyToConst(undefined)
818
+ const succeed = InternalParser.succeed(undefined)
819
+ return (input: unknown) => input === InternalParser.missing ? InternalParser.missingExit : succeed
820
820
  }
821
821
  /** @internal */
822
822
  toCodecJson(): AST {
@@ -1080,9 +1080,9 @@ function isTemplateLiteralPart(ast: AST): ast is TemplateLiteralPart {
1080
1080
  return true
1081
1081
  case "Literal":
1082
1082
  case "TemplateLiteral":
1083
- return ast.checks === undefined
1083
+ return !ast.checks
1084
1084
  case "Union":
1085
- return ast.checks === undefined && ast.types.every(isTemplateLiteralPart)
1085
+ return !ast.checks && ast.types.every(isTemplateLiteralPart)
1086
1086
  default:
1087
1087
  return false
1088
1088
  }
@@ -1106,6 +1106,10 @@ export class TemplateLiteral extends Base {
1106
1106
  readonly parts: ReadonlyArray<AST>
1107
1107
  /** @internal */
1108
1108
  readonly encodedParts: ReadonlyArray<TemplateLiteralPart>
1109
+ /** @internal */
1110
+ readonly literals: ReadonlyArray<string | undefined>
1111
+ /** @internal */
1112
+ readonly suffixLengths: ReadonlyArray<number>
1109
1113
 
1110
1114
  constructor(
1111
1115
  parts: ReadonlyArray<AST>,
@@ -1116,25 +1120,40 @@ export class TemplateLiteral extends Base {
1116
1120
  ) {
1117
1121
  super(annotations, checks, encoding, context)
1118
1122
  const encodedParts: Array<TemplateLiteralPart> = []
1123
+ const literals: Array<string | undefined> = []
1119
1124
  for (const part of parts) {
1120
1125
  const encoded = toEncoded(part)
1121
1126
  if (isTemplateLiteralPart(encoded)) {
1122
1127
  encodedParts.push(encoded)
1128
+ literals.push(encoded._tag === "Literal" ? globalThis.String(encoded.literal) : undefined)
1123
1129
  } else {
1124
1130
  throw new Error(`Invalid TemplateLiteral part ${encoded._tag}`)
1125
1131
  }
1126
1132
  }
1133
+ const suffixLengths = new Array<number>(encodedParts.length + 1)
1134
+ suffixLengths[encodedParts.length] = 0
1135
+ for (let i = encodedParts.length - 1; i >= 0; i--) {
1136
+ suffixLengths[i] = suffixLengths[i + 1] + (literals[i]?.length ?? 0)
1137
+ }
1127
1138
  this.parts = parts
1128
1139
  this.encodedParts = encodedParts
1140
+ this.literals = literals
1141
+ this.suffixLengths = suffixLengths
1129
1142
  }
1130
1143
  /** @internal */
1131
1144
  getParser(recur: (ast: AST) => SchemaParser.Parser): SchemaParser.Parser {
1132
1145
  const parser = recur(this.asTemplateLiteralParser())
1133
- return (oinput: Option.Option<unknown>, options: ParseOptions) =>
1134
- Effect.mapBothEager(parser(oinput, options), {
1135
- onSuccess: () => oinput,
1136
- onFailure: (issue) => new SchemaIssue.Composite(this, oinput, [issue])
1146
+ return (input, options) => {
1147
+ if (input === InternalParser.missing) return InternalParser.missingExit
1148
+ const result = parser(input, options)
1149
+ if ((result as Exit.Exit<unknown, unknown>)._tag === "Success") {
1150
+ return InternalParser.sameExit
1151
+ }
1152
+ return Effect.mapBothEager(result, {
1153
+ onSuccess: () => input,
1154
+ onFailure: (issue) => new SchemaIssue.Composite(this, [issue])
1137
1155
  })
1156
+ }
1138
1157
  }
1139
1158
  /** @internal */
1140
1159
  getExpected(): string {
@@ -1142,7 +1161,7 @@ export class TemplateLiteral extends Base {
1142
1161
  }
1143
1162
  /** @internal */
1144
1163
  matchPart(s: string, options: ParseOptions): string | undefined {
1145
- return segmentTemplateLiteralParts(this.encodedParts, s, options) === undefined ? undefined : s
1164
+ return segmentTemplateLiteralParts(this, s, options) === undefined ? undefined : s
1146
1165
  }
1147
1166
  /** @internal */
1148
1167
  asTemplateLiteralParser(): Arrays {
@@ -1152,11 +1171,11 @@ export class TemplateLiteral extends Base {
1152
1171
  tuple,
1153
1172
  new SchemaTransformation.Transformation(
1154
1173
  SchemaGetter.transformOrFail((s: string, options) => {
1155
- const segments = segmentTemplateLiteralParts(this.encodedParts, s, options)
1156
- if (segments !== undefined) return Effect.succeed(segments)
1174
+ const segments = segmentTemplateLiteralParts(this, s, options)
1175
+ if (segments) return Effect.succeed(segments)
1157
1176
  return Effect.fail(
1158
- new SchemaIssue.InvalidValue(Option.some(s), {
1159
- message: `Expected a string matching template literal parts, got ${format(s)}`
1177
+ new SchemaIssue.InvalidValue({
1178
+ message: "Expected a string matching template literal parts"
1160
1179
  })
1161
1180
  )
1162
1181
  }),
@@ -1228,11 +1247,11 @@ export type LiteralValue = string | number | boolean | bigint
1228
1247
  *
1229
1248
  * **Example** (Creating a literal AST)
1230
1249
  *
1231
- * ```ts
1250
+ * ```ts import.meta.vitest
1232
1251
  * import { SchemaAST } from "effect"
1233
1252
  *
1234
1253
  * const ast = new SchemaAST.Literal("active")
1235
- * console.log(ast.literal) // "active"
1254
+ * ast.literal // => "active"
1236
1255
  * ```
1237
1256
  *
1238
1257
  * @see {@link LiteralValue}
@@ -1309,7 +1328,8 @@ export class String extends Base {
1309
1328
  }
1310
1329
  /** @internal */
1311
1330
  matchPart(s: string, options: ParseOptions): string | undefined {
1312
- return applyTemplateLiteralPartChecks(this, s, options)
1331
+ const checks = this.checks
1332
+ return checks && !options.disableChecks && collectIssues(checks, s, undefined, this, options) ? undefined : s
1313
1333
  }
1314
1334
  /** @internal */
1315
1335
  getExpected(): string {
@@ -1366,9 +1386,10 @@ export class Number extends Base {
1366
1386
  return this._match(isStringFiniteRegExp, s, options)
1367
1387
  }
1368
1388
  private _match(regexp: RegExp, s: string, options: ParseOptions): number | undefined {
1369
- return regexp.test(s)
1370
- ? applyTemplateLiteralPartChecks(this, globalThis.Number(s), options)
1371
- : undefined
1389
+ if (!regexp.test(s)) return undefined
1390
+ const value = globalThis.Number(s)
1391
+ if (options.disableChecks || !this.checks) return value
1392
+ return collectIssues(this.checks, value, undefined, this, options) ? undefined : value
1372
1393
  }
1373
1394
  /** @internal */
1374
1395
  toCodecJson(): AST {
@@ -1401,7 +1422,7 @@ function hasCheck(checks: ReadonlyArray<Check<unknown>>, id: string): boolean {
1401
1422
  }
1402
1423
 
1403
1424
  function numberToJson(checks: Checks | undefined): Link {
1404
- const encodedFinite = checks === undefined
1425
+ const encodedFinite = !checks
1405
1426
  ? finite
1406
1427
  : appendChecks(finite, checks)
1407
1428
 
@@ -1493,7 +1514,8 @@ export class Symbol extends Base {
1493
1514
  }
1494
1515
  /** @internal */
1495
1516
  matchKey(s: symbol, options: ParseOptions): symbol | undefined {
1496
- return applyTemplateLiteralPartChecks(this, s, options)
1517
+ if (options.disableChecks || !this.checks) return s
1518
+ return collectIssues(this.checks, s, undefined, this, options) ? undefined : s
1497
1519
  }
1498
1520
  /** @internal */
1499
1521
  toCodecStringTree(): AST {
@@ -1546,9 +1568,10 @@ export class BigInt extends Base {
1546
1568
  }
1547
1569
  /** @internal */
1548
1570
  matchPart(s: string, options: ParseOptions): bigint | undefined {
1549
- return isStringBigIntRegExp.test(s)
1550
- ? applyTemplateLiteralPartChecks(this, globalThis.BigInt(s), options)
1551
- : undefined
1571
+ if (!isStringBigIntRegExp.test(s)) return undefined
1572
+ const value = globalThis.BigInt(s)
1573
+ if (options.disableChecks || !this.checks) return value
1574
+ return collectIssues(this.checks, value, undefined, this, options) ? undefined : value
1552
1575
  }
1553
1576
  /** @internal */
1554
1577
  toCodecStringTree(): AST {
@@ -1602,15 +1625,14 @@ export const bigInt = new BigInt()
1602
1625
  *
1603
1626
  * **Example** (Inspecting a tuple AST)
1604
1627
  *
1605
- * ```ts
1628
+ * ```ts import.meta.vitest
1606
1629
  * import { Schema, SchemaAST } from "effect"
1607
1630
  *
1608
1631
  * const schema = Schema.Tuple([Schema.String, Schema.Number])
1609
1632
  * const ast = schema.ast
1610
1633
  *
1611
1634
  * if (SchemaAST.isArrays(ast)) {
1612
- * console.log(ast.elements.length) // 2
1613
- * console.log(ast.rest.length) // 0
1635
+ * [ast.elements.length, ast.rest.length] // => [2, 0]
1614
1636
  * }
1615
1637
  * ```
1616
1638
  *
@@ -1642,58 +1664,68 @@ export class Arrays extends Base {
1642
1664
  this.rest = rest
1643
1665
  this.encodingChecks = encodingChecks
1644
1666
 
1645
- // A required element cannot follow an optional element. ts(1257)
1646
- const i = elements.findIndex(isOptional)
1647
- if (i !== -1 && (elements.slice(i + 1).some((e) => !isOptional(e)) || rest.length > 1)) {
1667
+ let hasOptional = false
1668
+ for (let i = 0; i < elements.length; i++) {
1669
+ if (isOptional(elements[i])) {
1670
+ hasOptional = true
1671
+ } else if (hasOptional) {
1672
+ throw new Error("A required element cannot follow an optional element. ts(1257)")
1673
+ }
1674
+ }
1675
+ if (hasOptional && rest.length > 1) {
1648
1676
  throw new Error("A required element cannot follow an optional element. ts(1257)")
1649
1677
  }
1650
1678
 
1651
1679
  // An optional element cannot follow a rest element.ts(1266)
1652
- if (rest.length > 1 && rest.slice(1).some(isOptional)) {
1653
- throw new Error("An optional element cannot follow a rest element. ts(1266)")
1680
+ for (let i = 1; i < rest.length; i++) {
1681
+ if (isOptional(rest[i])) {
1682
+ throw new Error("An optional element cannot follow a rest element. ts(1266)")
1683
+ }
1654
1684
  }
1655
1685
  }
1656
1686
  /** @internal */
1657
1687
  getParser(recur: (ast: AST) => SchemaParser.Parser): SchemaParser.Parser {
1658
1688
  // oxlint-disable-next-line @typescript-eslint/no-this-alias
1659
1689
  const ast = this
1660
- const elements = ast.elements.map((ast) => ({ ast, parser: recur(ast) }))
1661
- const rest = ast.rest.map((ast) => ({ ast, parser: recur(ast) }))
1662
- const elementLen = elements.length
1663
-
1664
- const [head, ...tail] = rest
1665
- const tailLen = tail.length
1690
+ type ElementParser = { readonly ast: AST; readonly parser: SchemaParser.Parser }
1691
+ let elements: Array<ElementParser> | undefined
1692
+ let rest: Array<ElementParser> | undefined
1693
+ const elementLen = ast.elements.length
1694
+ const tailLen = Math.max(0, ast.rest.length - 1)
1666
1695
 
1667
1696
  function getParser(
1668
1697
  tailThreshold: number,
1669
1698
  index: number
1670
1699
  ): { readonly ast: AST; readonly parser: SchemaParser.Parser } {
1671
1700
  if (index < elementLen) {
1672
- return elements[index]
1701
+ return elements![index]
1673
1702
  } else if (index >= tailThreshold) {
1674
- return tail[index - tailThreshold]
1703
+ return rest![index - tailThreshold + 1]
1675
1704
  }
1676
- return head
1705
+ return rest![0]
1677
1706
  }
1678
1707
 
1679
- return Effect.fnUntracedEager(function*(oinput, options) {
1680
- if (oinput._tag === "None") {
1681
- return oinput
1708
+ return Effect.fnUntracedEager(function*(input, options) {
1709
+ if (input === InternalParser.missing) {
1710
+ return InternalParser.missing
1682
1711
  }
1683
- const input = oinput.value
1684
1712
 
1685
1713
  // If the input is not an array, return early with an error
1686
1714
  if (!Array.isArray(input)) {
1687
- return yield* Effect.fail(new SchemaIssue.InvalidType(ast, oinput))
1715
+ return yield* Effect.fail(new SchemaIssue.InvalidType(ast))
1716
+ }
1717
+ if (!elements) {
1718
+ elements = ast.elements.map((ast) => ({ ast, parser: recur(ast) }))
1719
+ rest = ast.rest.map((ast) => ({ ast, parser: recur(ast) }))
1688
1720
  }
1689
1721
 
1690
1722
  const len = input.length
1691
1723
  const state = {
1692
1724
  ast,
1693
1725
  getParser,
1694
- oinput,
1726
+ input,
1695
1727
  len,
1696
- tailThreshold: resolveTailThreshold(len, elementLen, tailLen),
1728
+ tailThreshold: Math.max(elementLen, len - tailLen),
1697
1729
  output: new globalThis.Array(len),
1698
1730
  issues: undefined as Arr.NonEmptyArray<SchemaIssue.Issue> | undefined,
1699
1731
  options
@@ -1710,19 +1742,23 @@ export class Arrays extends Base {
1710
1742
  // ---------------------------------------------
1711
1743
  if (ast.rest.length === 0 && len > elementLen) {
1712
1744
  for (let i = elementLen; i <= len - 1; i++) {
1713
- const issue = new SchemaIssue.Pointer([i], new SchemaIssue.UnexpectedKey(ast, input[i]))
1745
+ const issue = new SchemaIssue.Pointer([i], new SchemaIssue.UnexpectedKey(ast))
1714
1746
  if (options.errors === "all") {
1715
1747
  if (state.issues) state.issues.push(issue)
1716
1748
  else state.issues = [issue]
1717
1749
  } else {
1718
- return yield* Effect.fail(new SchemaIssue.Composite(ast, oinput, [issue]))
1750
+ return yield* Effect.fail(
1751
+ new SchemaIssue.Composite(ast, [issue])
1752
+ )
1719
1753
  }
1720
1754
  }
1721
1755
  }
1722
1756
  if (state.issues) {
1723
- return yield* Effect.fail(new SchemaIssue.Composite(ast, oinput, state.issues))
1757
+ return yield* Effect.fail(
1758
+ new SchemaIssue.Composite(ast, state.issues)
1759
+ )
1724
1760
  }
1725
- return Option.some(state.output)
1761
+ return state.output
1726
1762
  })
1727
1763
  }
1728
1764
  private _rebuild(recur: (ast: AST) => AST, checks: Checks | undefined, encodingChecks: Checks | undefined) {
@@ -1757,7 +1793,7 @@ export class Arrays extends Base {
1757
1793
  }
1758
1794
  const parseArray = iterateEager<{
1759
1795
  readonly ast: AST
1760
- readonly oinput: Option.Option<unknown>
1796
+ readonly input: unknown
1761
1797
  readonly len: number
1762
1798
  readonly getParser: (
1763
1799
  tailThreshold: number,
@@ -1769,14 +1805,18 @@ const parseArray = iterateEager<{
1769
1805
  issues: Array<SchemaIssue.Issue> | undefined
1770
1806
  }, unknown>()({
1771
1807
  onItem(s, item, i) {
1772
- const value = i < s.len ? Option.some(item) : Option.none()
1808
+ const value = i < s.len ? item : InternalParser.missing
1773
1809
  return s.getParser(s.tailThreshold, i).parser(value, s.options)
1774
1810
  },
1775
- step(s, _, exit, i) {
1811
+ step(s, item, exit, i) {
1776
1812
  if (exit._tag === "Failure") {
1777
1813
  return wrapPropertyKeyIssue(s, s.ast, i, exit)
1778
- } else if (exit.value._tag === "Some") {
1779
- s.output[i] = exit.value.value
1814
+ }
1815
+ const value = exit === InternalParser.sameExit
1816
+ ? item
1817
+ : (exit as InternalParser.Success<unknown, SchemaIssue.Issue>)[InternalParser.args]
1818
+ if (value !== InternalParser.missing) {
1819
+ s.output[i] = value
1780
1820
  } else {
1781
1821
  const p = s.getParser(s.tailThreshold, i)
1782
1822
  if (isOptional(p.ast)) return
@@ -1785,20 +1825,14 @@ const parseArray = iterateEager<{
1785
1825
  if (s.issues) s.issues.push(issue)
1786
1826
  else s.issues = [issue]
1787
1827
  } else {
1788
- return Exit.fail(new SchemaIssue.Composite(s.ast, s.oinput, [issue]))
1828
+ return Exit.fail(
1829
+ new SchemaIssue.Composite(s.ast, [issue])
1830
+ )
1789
1831
  }
1790
1832
  }
1791
1833
  }
1792
1834
  })
1793
1835
 
1794
- function resolveTailThreshold(
1795
- inputLen: number,
1796
- elementLen: number,
1797
- tailLen: number
1798
- ) {
1799
- return Math.max(elementLen, inputLen - tailLen)
1800
- }
1801
-
1802
1836
  const resolveConcurrency = (value: number | "unbounded" | undefined) => {
1803
1837
  value = value === "unbounded" ? Infinity : value ?? 1
1804
1838
  return value > 1 ? { concurrency: value } : undefined
@@ -1806,7 +1840,7 @@ const resolveConcurrency = (value: number | "unbounded" | undefined) => {
1806
1840
 
1807
1841
  const wrapPropertyKeyIssue = (
1808
1842
  s: {
1809
- readonly oinput: Option.Option<unknown>
1843
+ readonly input: unknown
1810
1844
  readonly options: ParseOptions
1811
1845
  issues: Array<SchemaIssue.Issue> | undefined
1812
1846
  },
@@ -1822,7 +1856,11 @@ const wrapPropertyKeyIssue = (
1822
1856
  return Exit.failCause(
1823
1857
  Cause.map(
1824
1858
  exit.cause,
1825
- (issue) => new SchemaIssue.Composite(ast, s.oinput, [new SchemaIssue.Pointer([key], issue)])
1859
+ (issue) =>
1860
+ new SchemaIssue.Composite(
1861
+ ast,
1862
+ [new SchemaIssue.Pointer([key], issue)]
1863
+ )
1826
1864
  )
1827
1865
  )
1828
1866
  }
@@ -1831,7 +1869,9 @@ const wrapPropertyKeyIssue = (
1831
1869
  if (s.issues) s.issues.push(pointer)
1832
1870
  else s.issues = [pointer]
1833
1871
  } else {
1834
- return Exit.fail(new SchemaIssue.Composite(ast, s.oinput, [pointer]))
1872
+ return Exit.fail(
1873
+ new SchemaIssue.Composite(ast, [pointer])
1874
+ )
1835
1875
  }
1836
1876
  }
1837
1877
 
@@ -1899,37 +1939,6 @@ export class PropertySignature {
1899
1939
  }
1900
1940
  }
1901
1941
 
1902
- /**
1903
- * Represents a bidirectional merge strategy for index signature key-value pairs.
1904
- *
1905
- * **Details**
1906
- *
1907
- * Used by {@link IndexSignature} when the same key appears multiple times
1908
- * (e.g. from `Schema.extend` or overlapping records). Provides separate
1909
- * `decode` and `encode` combiners that determine how duplicate entries are
1910
- * merged.
1911
- *
1912
- * @see {@link IndexSignature}
1913
- * @category models
1914
- * @since 4.0.0
1915
- */
1916
- export class KeyValueCombiner {
1917
- readonly decode: Combiner.Combiner<readonly [key: PropertyKey, value: any]> | undefined
1918
- readonly encode: Combiner.Combiner<readonly [key: PropertyKey, value: any]> | undefined
1919
-
1920
- constructor(
1921
- decode: Combiner.Combiner<readonly [key: PropertyKey, value: any]> | undefined,
1922
- encode: Combiner.Combiner<readonly [key: PropertyKey, value: any]> | undefined
1923
- ) {
1924
- this.decode = decode
1925
- this.encode = encode
1926
- }
1927
- /** @internal */
1928
- flip(): KeyValueCombiner {
1929
- return new KeyValueCombiner(this.encode, this.decode)
1930
- }
1931
- }
1932
-
1933
1942
  type IndexSignatureParameter =
1934
1943
  | String
1935
1944
  | Number
@@ -1968,7 +1977,6 @@ function isIndexSignatureParameter(ast: AST): ast is IndexSignatureParameter {
1968
1977
  * - `parameter` — the key type AST (e.g. {@link String} for `string` keys,
1969
1978
  * {@link TemplateLiteral} for patterned keys).
1970
1979
  * - `type` — the value type SchemaAST.
1971
- * - `merge` — optional {@link KeyValueCombiner} for handling duplicate keys.
1972
1980
  *
1973
1981
  * **Gotchas**
1974
1982
  *
@@ -1983,19 +1991,16 @@ function isIndexSignatureParameter(ast: AST): ast is IndexSignatureParameter {
1983
1991
  export class IndexSignature {
1984
1992
  readonly parameter: IndexSignatureParameter
1985
1993
  readonly type: AST
1986
- readonly merge: KeyValueCombiner | undefined
1987
1994
 
1988
1995
  constructor(
1989
1996
  parameter: AST,
1990
- type: AST,
1991
- merge: KeyValueCombiner | undefined
1997
+ type: AST
1992
1998
  ) {
1993
1999
  if (!isIndexSignatureParameter(parameter)) {
1994
2000
  throw new Error(`Invalid index signature parameter ${parameter._tag}`)
1995
2001
  }
1996
2002
  this.parameter = parameter
1997
2003
  this.type = type
1998
- this.merge = merge
1999
2004
  if (isOptional(type) && !containsUndefined(type)) {
2000
2005
  throw new Error("Cannot use `Schema.optionalKey` with index signatures, use `Schema.optional` instead.")
2001
2006
  }
@@ -2026,17 +2031,14 @@ export class IndexSignature {
2026
2031
  *
2027
2032
  * **Example** (Inspecting a struct AST)
2028
2033
  *
2029
- * ```ts
2034
+ * ```ts import.meta.vitest
2030
2035
  * import { Schema, SchemaAST } from "effect"
2031
2036
  *
2032
2037
  * const schema = Schema.Struct({ name: Schema.String })
2033
2038
  * const ast = schema.ast
2034
2039
  *
2035
2040
  * if (SchemaAST.isObjects(ast)) {
2036
- * for (const ps of ast.propertySignatures) {
2037
- * console.log(ps.name, ps.type._tag)
2038
- * }
2039
- * // "name" "String"
2041
+ * ast.propertySignatures.map((ps) => [ps.name, ps.type._tag]) // => [["name", "String"]]
2040
2042
  * }
2041
2043
  * ```
2042
2044
  *
@@ -2078,97 +2080,119 @@ export class Objects extends Base {
2078
2080
  // oxlint-disable-next-line @typescript-eslint/no-this-alias
2079
2081
  const ast = this
2080
2082
  const expectedKeys: Array<PropertyKey> = []
2081
- const expectedKeysSet = new Set<PropertyKey>()
2082
- const properties: Array<{
2083
- readonly ps: PropertySignature | IndexSignature
2084
- readonly parser: SchemaParser.Parser
2085
- readonly name: PropertyKey
2086
- readonly type: AST
2087
- }> = []
2088
2083
  for (const ps of ast.propertySignatures) {
2089
2084
  expectedKeys.push(ps.name)
2090
- expectedKeysSet.add(ps.name)
2091
- properties.push({
2092
- ps,
2093
- parser: recur(ps.type),
2094
- name: ps.name,
2095
- type: ps.type
2096
- })
2097
2085
  }
2086
+ const hasProperties = expectedKeys.length
2098
2087
  const indexCount = ast.indexSignatures.length
2088
+ let expectedKeysSet = hasProperties && indexCount ? new Set(expectedKeys) : undefined
2099
2089
  // ---------------------------------------------
2100
2090
  // handle empty struct
2101
2091
  // ---------------------------------------------
2102
- if (ast.propertySignatures.length === 0 && ast.indexSignatures.length === 0) {
2092
+ if (!hasProperties && !indexCount) {
2103
2093
  return fromRefinement(ast, Predicate.isNotNullish)
2104
2094
  }
2105
2095
 
2106
- const parseIndexes = indexCount > 0 ?
2107
- iterateEager<{
2108
- readonly oinput: Option.Option<unknown>
2109
- readonly input: Record<PropertyKey, unknown>
2110
- readonly options: ParseOptions
2111
- readonly out: Record<PropertyKey, unknown>
2112
- issues: Array<SchemaIssue.Issue> | undefined
2113
- }, [key: PropertyKey, is: IndexSignature]>()({
2114
- onItem: Effect.fnUntracedEager(function*(
2115
- s,
2116
- [key, is]
2117
- ) {
2118
- const parserKey = recur(parameterFromPropertyKey(is.parameter))
2119
- const effKey = parserKey(Option.some(key), s.options)
2120
- const exitKey = (effectIsExit(effKey) ? effKey : yield* Effect.exit(effKey)) as Exit.Exit<
2121
- Option.Option<PropertyKey>,
2122
- SchemaIssue.Issue
2123
- >
2124
- if (exitKey._tag === "Failure") {
2125
- const eff = wrapPropertyKeyIssue(s, ast, key, exitKey)
2126
- if (eff) yield* eff
2127
- return
2128
- }
2129
-
2130
- const value: Option.Option<unknown> = Option.some(s.input[key])
2131
- const parserValue = recur(is.type)
2132
- const effValue = parserValue(value, s.options)
2133
- const exitValue = effectIsExit(effValue) ? effValue : yield* Effect.exit(effValue)
2134
- if (exitValue._tag === "Failure") {
2135
- const eff = wrapPropertyKeyIssue(s, ast, key, exitValue)
2136
- if (eff) yield* eff
2137
- return
2138
- } else if (exitKey.value._tag === "Some" && exitValue.value._tag === "Some") {
2139
- const k2 = exitKey.value.value
2140
- if (expectedKeysSet.has(key) || expectedKeysSet.has(k2)) {
2141
- return
2142
- }
2143
- const v2 = exitValue.value.value
2144
- if (is.merge && is.merge.decode && Object.hasOwn(s.out, k2)) {
2145
- const [k, v] = is.merge.decode.combine([k2, s.out[k2]], [k2, v2])
2146
- InternalRecord.assignProperty(s.out, k, v)
2147
- } else {
2148
- InternalRecord.assignProperty(s.out, k2, v2)
2149
- }
2150
- }
2151
- }),
2096
+ let properties: Array<ParsedProperty> | undefined
2097
+ let indexes:
2098
+ | Array<{
2099
+ readonly is: IndexSignature
2100
+ readonly parserKey: SchemaParser.Parser
2101
+ readonly parserValue: SchemaParser.Parser
2102
+ }>
2103
+ | undefined
2104
+ type Index = NonNullable<typeof indexes>[number]
2105
+ const finishIndex = (
2106
+ s: ObjectParserState,
2107
+ key: PropertyKey,
2108
+ k2: PropertyKey | typeof InternalParser.missing,
2109
+ inputValue: unknown,
2110
+ exitValue: Exit.Exit<unknown, SchemaIssue.Issue>
2111
+ ): Effect.Effect<void, SchemaIssue.Issue, any> => {
2112
+ if (exitValue._tag === "Failure") {
2113
+ return wrapPropertyKeyIssue(s, ast, key, exitValue) ?? Exit.void
2114
+ }
2115
+ const value = exitValue === InternalParser.sameExit
2116
+ ? inputValue
2117
+ : (exitValue as InternalParser.Success<unknown, SchemaIssue.Issue>)[InternalParser.args]
2118
+ if (k2 !== InternalParser.missing && value !== InternalParser.missing) {
2119
+ if (hasProperties && (expectedKeysSet!.has(key) || expectedKeysSet!.has(k2))) return Exit.void
2120
+ InternalRecord.assignProperty(s.out, k2, value)
2121
+ }
2122
+ return Exit.void
2123
+ }
2124
+ const parseIndex = (
2125
+ s: ObjectParserState,
2126
+ key: PropertyKey,
2127
+ index: Index,
2128
+ exitKey?: Exit.Exit<unknown, SchemaIssue.Issue>
2129
+ ): Effect.Effect<void, SchemaIssue.Issue, any> => {
2130
+ if (!exitKey) {
2131
+ const eff = index.parserKey(key, s.options)
2132
+ if (!effectIsExit(eff)) {
2133
+ return Effect.flatMap(Effect.exit(eff), (exit) => parseIndex(s, key, index, exit))
2134
+ }
2135
+ exitKey = eff
2136
+ }
2137
+ if (exitKey._tag === "Failure") {
2138
+ return wrapPropertyKeyIssue(s, ast, key, exitKey) ?? Exit.void
2139
+ }
2140
+ const k2 = exitKey === InternalParser.sameExit
2141
+ ? key
2142
+ : (exitKey as InternalParser.Success<PropertyKey, SchemaIssue.Issue>)[InternalParser.args]
2143
+ const inputValue = s.input[key]
2144
+ const result = index.parserValue(inputValue, s.options)
2145
+ return effectIsExit(result)
2146
+ ? finishIndex(s, key, k2, inputValue, result)
2147
+ : Effect.flatMap(Effect.exit(result), (exit) => finishIndex(s, key, k2, inputValue, exit))
2148
+ }
2149
+ const parseStringIndex = (
2150
+ s: ObjectParserState,
2151
+ key: PropertyKey,
2152
+ index: Index
2153
+ ): Effect.Effect<void, SchemaIssue.Issue, any> => {
2154
+ const inputValue = s.input[key]
2155
+ const result = index.parserValue(inputValue, s.options)
2156
+ return effectIsExit(result)
2157
+ ? finishIndex(s, key, key, inputValue, result)
2158
+ : Effect.flatMap(Effect.exit(result), (exit) => finishIndex(s, key, key, inputValue, exit))
2159
+ }
2160
+ const parseIndexes = indexCount ?
2161
+ iterateEager<ObjectParserState, [key: PropertyKey, index: Index]>()({
2162
+ onItem: (s, [key, index]) => parseIndex(s, key, index),
2152
2163
  step: (_s, _, exit: Exit.Exit<void, SchemaIssue.Issue>) => exit._tag === "Failure" ? exit : undefined
2153
2164
  }) :
2154
2165
  undefined
2155
2166
 
2156
- return Effect.fnUntracedEager(function*(oinput, options) {
2157
- if (oinput._tag === "None") {
2158
- return oinput
2167
+ return Effect.fnUntracedEager(function*(input, options) {
2168
+ if (input === InternalParser.missing) {
2169
+ return InternalParser.missing
2159
2170
  }
2160
- const input = oinput.value as Record<PropertyKey, unknown>
2161
2171
 
2162
2172
  // If the input is not a record, return early with an error
2163
2173
  if (!(typeof input === "object" && input !== null && !Array.isArray(input))) {
2164
- return yield* Effect.fail(new SchemaIssue.InvalidType(ast, oinput))
2174
+ return yield* Effect.fail(new SchemaIssue.InvalidType(ast))
2175
+ }
2176
+ if (!properties) {
2177
+ properties = ast.propertySignatures.map((ps) => ({
2178
+ parser: recur(ps.type),
2179
+ name: ps.name,
2180
+ type: ps.type
2181
+ }))
2182
+ indexes = indexCount
2183
+ ? ast.indexSignatures.map((is) => ({
2184
+ is,
2185
+ parserKey: recur(parameterFromPropertyKey(is.parameter)),
2186
+ parserValue: recur(is.type)
2187
+ }))
2188
+ : undefined
2165
2189
  }
2166
2190
 
2191
+ const record = input as Record<PropertyKey, unknown>
2167
2192
  const out: Record<PropertyKey, unknown> = {}
2168
2193
  const state = {
2169
2194
  ast,
2170
- oinput,
2171
- input,
2195
+ input: record,
2172
2196
  out,
2173
2197
  issues: undefined as Arr.NonEmptyArray<SchemaIssue.Issue> | undefined,
2174
2198
  options
@@ -2181,14 +2205,15 @@ export class Objects extends Base {
2181
2205
  // handle excess properties
2182
2206
  // ---------------------------------------------
2183
2207
  let inputKeys: Array<PropertyKey> | undefined
2184
- if (ast.indexSignatures.length === 0 && (onExcessPropertyError || onExcessPropertyPreserve)) {
2185
- inputKeys = Reflect.ownKeys(input)
2208
+ if (!indexCount && (onExcessPropertyError || onExcessPropertyPreserve)) {
2209
+ expectedKeysSet ??= new Set(expectedKeys)
2210
+ inputKeys = Reflect.ownKeys(record)
2186
2211
  for (let i = 0; i < inputKeys.length; i++) {
2187
2212
  const key = inputKeys[i]
2188
2213
  if (!expectedKeysSet.has(key)) {
2189
2214
  // key is unexpected
2190
2215
  if (onExcessPropertyError) {
2191
- const issue = new SchemaIssue.Pointer([key], new SchemaIssue.UnexpectedKey(ast, input[key]))
2216
+ const issue = new SchemaIssue.Pointer([key], new SchemaIssue.UnexpectedKey(ast))
2192
2217
  if (errorsAllOption) {
2193
2218
  if (state.issues) {
2194
2219
  state.issues.push(issue)
@@ -2197,11 +2222,13 @@ export class Objects extends Base {
2197
2222
  }
2198
2223
  continue
2199
2224
  } else {
2200
- return yield* Effect.fail(new SchemaIssue.Composite(ast, oinput, [issue]))
2225
+ return yield* Effect.fail(
2226
+ new SchemaIssue.Composite(ast, [issue])
2227
+ )
2201
2228
  }
2202
2229
  } else {
2203
2230
  // preserve key
2204
- InternalRecord.assignProperty(out, key, input[key])
2231
+ InternalRecord.assignProperty(out, key, record[key])
2205
2232
  }
2206
2233
  }
2207
2234
  }
@@ -2212,20 +2239,34 @@ export class Objects extends Base {
2212
2239
  // ---------------------------------------------
2213
2240
  // handle property signatures
2214
2241
  // ---------------------------------------------
2215
- const eff = parseProperties(state, properties, concurrency)
2216
- if (eff) yield* eff
2242
+ if (hasProperties) {
2243
+ const eff = parseProperties(state, properties!, concurrency)
2244
+ if (eff) yield* eff
2245
+ }
2217
2246
 
2218
2247
  // ---------------------------------------------
2219
2248
  // handle index signatures
2220
2249
  // ---------------------------------------------
2221
- if (parseIndexes) {
2222
- const keyPairs = Arr.empty<[PropertyKey, IndexSignature]>()
2250
+ if (indexCount && !concurrency) {
2223
2251
  for (let i = 0; i < indexCount; i++) {
2224
- const is = ast.indexSignatures[i]
2225
- const keys = getIndexSignatureKeys(input, is.parameter, options)
2252
+ const index = indexes![i]
2253
+ const parse = index.is.parameter === string ? parseStringIndex : parseIndex
2254
+ const keys = index.is.parameter === string
2255
+ ? Object.keys(record)
2256
+ : getIndexSignatureKeys(record, index.is.parameter, options)
2226
2257
  for (let j = 0; j < keys.length; j++) {
2227
- const key = keys[j]
2228
- keyPairs.push([key, is])
2258
+ const eff = parse(state, keys[j], index)
2259
+ if (!effectIsExit(eff)) yield* eff
2260
+ else if (eff._tag === "Failure") return yield* eff as Exit.Exit<never, SchemaIssue.Issue>
2261
+ }
2262
+ }
2263
+ } else if (parseIndexes) {
2264
+ const keyPairs = Arr.empty<[PropertyKey, Index]>()
2265
+ for (let i = 0; i < indexCount; i++) {
2266
+ const index = indexes![i]
2267
+ const keys = getIndexSignatureKeys(record, index.is.parameter, options)
2268
+ for (let j = 0; j < keys.length; j++) {
2269
+ keyPairs.push([keys[j], index])
2229
2270
  }
2230
2271
  }
2231
2272
  const eff = parseIndexes(state, keyPairs, concurrency)
@@ -2233,26 +2274,27 @@ export class Objects extends Base {
2233
2274
  }
2234
2275
 
2235
2276
  if (state.issues) {
2236
- return yield* Effect.fail(new SchemaIssue.Composite(ast, oinput, state.issues))
2277
+ return yield* Effect.fail(
2278
+ new SchemaIssue.Composite(ast, state.issues)
2279
+ )
2237
2280
  }
2238
2281
  if (options.propertyOrder === "original") {
2239
2282
  // preserve input keys order
2240
- const keys = (inputKeys ?? Reflect.ownKeys(input)).concat(expectedKeys)
2283
+ const keys = (inputKeys ?? Reflect.ownKeys(record)).concat(expectedKeys)
2241
2284
  const preserved: Record<PropertyKey, unknown> = {}
2242
2285
  for (const key of keys) {
2243
2286
  if (Object.hasOwn(out, key)) {
2244
2287
  InternalRecord.assignProperty(preserved, key, out[key])
2245
2288
  }
2246
2289
  }
2247
- return Option.some(preserved)
2290
+ return preserved
2248
2291
  }
2249
- return Option.some(out)
2292
+ return out
2250
2293
  })
2251
2294
  }
2252
2295
  private _rebuild(
2253
2296
  recur: (ast: AST) => AST,
2254
2297
  recurParameter: (ast: AST) => AST,
2255
- flipMerge: boolean,
2256
2298
  checks: Checks | undefined,
2257
2299
  encodingChecks: Checks | undefined
2258
2300
  ): Objects {
@@ -2264,10 +2306,9 @@ export class Objects extends Base {
2264
2306
  const indexes = mapOrSame(this.indexSignatures, (is) => {
2265
2307
  const p = recurParameter(is.parameter)
2266
2308
  const t = recur(is.type)
2267
- const merge = flipMerge ? is.merge?.flip() : is.merge
2268
- return p === is.parameter && t === is.type && merge === is.merge
2309
+ return p === is.parameter && t === is.type
2269
2310
  ? is
2270
- : new IndexSignature(p, t, merge)
2311
+ : new IndexSignature(p, t)
2271
2312
  })
2272
2313
 
2273
2314
  return props === this.propertySignatures && indexes === this.indexSignatures && checks === this.checks &&
@@ -2285,11 +2326,11 @@ export class Objects extends Base {
2285
2326
  }
2286
2327
  /** @internal */
2287
2328
  flip(recur: (ast: AST) => AST): AST {
2288
- return this._rebuild(recur, recur, true, this.encodingChecks, this.checks)
2329
+ return this._rebuild(recur, recur, this.encodingChecks, this.checks)
2289
2330
  }
2290
2331
  /** @internal */
2291
2332
  recur(recur: (ast: AST) => AST, recurParameter: (ast: AST) => AST = recur): AST {
2292
- return this._rebuild(recur, recurParameter, false, this.checks, this.encodingChecks)
2333
+ return this._rebuild(recur, recurParameter, this.checks, this.encodingChecks)
2293
2334
  }
2294
2335
  /** @internal */
2295
2336
  getExpected(): string {
@@ -2298,42 +2339,41 @@ export class Objects extends Base {
2298
2339
  }
2299
2340
  }
2300
2341
 
2342
+ type ObjectParserState = {
2343
+ readonly ast: Objects
2344
+ readonly input: Record<PropertyKey, unknown>
2345
+ readonly options: ParseOptions
2346
+ readonly out: Record<PropertyKey, unknown>
2347
+ issues: Array<SchemaIssue.Issue> | undefined
2348
+ }
2349
+
2301
2350
  type ParsedProperty = {
2302
- readonly ps: PropertySignature | IndexSignature
2303
2351
  readonly parser: SchemaParser.Parser
2304
2352
  readonly name: PropertyKey
2305
2353
  readonly type: AST
2306
2354
  }
2307
2355
 
2308
- const parseProperties = iterateEager<{
2309
- readonly ast: AST
2310
- readonly oinput: Option.Option<unknown>
2311
- readonly input: Record<PropertyKey, unknown>
2312
- readonly options: ParseOptions
2313
- readonly out: Record<PropertyKey, unknown>
2314
- issues: Array<SchemaIssue.Issue> | undefined
2315
- }, ParsedProperty>()({
2316
- onItem(
2317
- s: {
2318
- readonly oinput: Option.Option<unknown>
2319
- readonly input: Record<PropertyKey, unknown>
2320
- readonly options: ParseOptions
2321
- readonly out: Record<PropertyKey, unknown>
2322
- issues: Array<SchemaIssue.Issue> | undefined
2323
- },
2324
- p
2325
- ) {
2326
- const value: Option.Option<unknown> = Object.hasOwn(s.input, p.name)
2327
- ? Option.some(s.input[p.name])
2328
- : Option.none()
2356
+ const parseProperties = iterateEager<ObjectParserState, ParsedProperty>()({
2357
+ onItem(s, p) {
2358
+ if (!Object.hasOwn(s.input, p.name)) {
2359
+ return p.parser(InternalParser.missing, s.options)
2360
+ }
2361
+ const value = s.input[p.name]
2362
+ InternalRecord.assignProperty(s.out, p.name, value)
2329
2363
  return p.parser(value, s.options)
2330
2364
  },
2331
2365
  step(s, p, exit) {
2332
2366
  if (exit._tag === "Failure") {
2333
2367
  return wrapPropertyKeyIssue(s, s.ast, p.name, exit)
2334
- } else if (exit.value._tag === "Some") {
2335
- InternalRecord.assignProperty(s.out, p.name, exit.value.value)
2336
- } else if (!isOptional(p.type)) {
2368
+ }
2369
+ if (exit === InternalParser.sameExit) return
2370
+ const value = (exit as InternalParser.Success<unknown, SchemaIssue.Issue>)[InternalParser.args]
2371
+ if (value !== InternalParser.missing) {
2372
+ InternalRecord.assignProperty(s.out, p.name, value)
2373
+ return
2374
+ }
2375
+ delete s.out[p.name]
2376
+ if (!isOptional(p.type)) {
2337
2377
  const issue = new SchemaIssue.Pointer([p.name], new SchemaIssue.MissingKey(p.type.context?.annotations))
2338
2378
  if (s.options.errors === "all") {
2339
2379
  if (s.issues) s.issues.push(issue)
@@ -2341,7 +2381,7 @@ const parseProperties = iterateEager<{
2341
2381
  return
2342
2382
  } else {
2343
2383
  return Exit.fail(
2344
- new SchemaIssue.Composite(s.ast, s.oinput, [issue])
2384
+ new SchemaIssue.Composite(s.ast, [issue])
2345
2385
  )
2346
2386
  }
2347
2387
  }
@@ -2434,6 +2474,21 @@ export type Sentinel = {
2434
2474
  readonly literal: LiteralValue | symbol
2435
2475
  }
2436
2476
 
2477
+ const toCandidate = memoize((ast: AST): AST => {
2478
+ while (true) {
2479
+ if (isSuspend(ast)) return unknown
2480
+ const encoding = ast.encoding
2481
+ if (!encoding) {
2482
+ // Index signature parameters do not participate in union selection.
2483
+ return (ast as any).recur?.(toCandidate, identity) ?? ast
2484
+ }
2485
+ if (
2486
+ encoding.some((link) => link.transformation._tag === "Middleware" && link.transformation.decode !== identity)
2487
+ ) return unknown
2488
+ ast = encoding[encoding.length - 1].to
2489
+ }
2490
+ })
2491
+
2437
2492
  function getCandidateTypes(ast: AST): ReadonlyArray<Type> {
2438
2493
  switch (ast._tag) {
2439
2494
  case "Null":
@@ -2505,63 +2560,96 @@ export function collectSentinels(ast: AST): Array<Sentinel> {
2505
2560
  return []
2506
2561
  })
2507
2562
  case "Arrays":
2508
- return ast.elements.flatMap((e, i) => {
2509
- return isLiteral(e) && !isOptional(e)
2510
- ? [{ key: i, literal: e.literal }]
2511
- : []
2563
+ return ast.elements.flatMap((e, i): Array<Sentinel> => {
2564
+ if (!isOptional(e)) {
2565
+ if (isLiteral(e)) {
2566
+ return [{ key: i, literal: e.literal }]
2567
+ }
2568
+ if (isUniqueSymbol(e)) {
2569
+ return [{ key: i, literal: e.symbol }]
2570
+ }
2571
+ }
2572
+ return []
2512
2573
  })
2513
2574
  case "Suspend":
2514
2575
  return collectSentinels(ast.thunk())
2515
2576
  }
2516
2577
  }
2517
2578
 
2518
- type CandidateIndex = {
2519
- byType?: { [K in Type]?: Array<number> }
2520
- bySentinel?: Map<PropertyKey, Map<LiteralValue | symbol, Array<number>>>
2521
- otherwise?: { [K in Type]?: Array<number> }
2522
- }
2579
+ type CandidateIndex =
2580
+ | ((input: any) => ReadonlyArray<AST>)
2581
+ | {
2582
+ bySentinel?: Map<PropertyKey, Map<LiteralValue | symbol, Array<number>>>
2583
+ otherwise?: { [K in Type]?: Array<number> }
2584
+ }
2523
2585
 
2524
2586
  const candidateIndexCache = new WeakMap<ReadonlyArray<AST>, CandidateIndex>()
2587
+ const emptyCandidates: ReadonlyArray<never> = Object.freeze([])
2525
2588
 
2526
2589
  function getIndex(types: ReadonlyArray<AST>): CandidateIndex {
2527
2590
  let idx = candidateIndexCache.get(types)
2528
2591
  if (idx) return idx
2529
2592
 
2530
2593
  idx = {}
2594
+ let literalCandidates: Map<LiteralValue | symbol, Array<AST>> | null | undefined
2531
2595
  for (let i = 0; i < types.length; i++) {
2532
2596
  const a = types[i]
2533
- const encoded = toEncoded(a)
2597
+ const encoded = toCandidate(a)
2534
2598
  if (isNever(encoded)) continue
2535
2599
 
2536
- const candidateTypes = getCandidateTypes(encoded)
2537
- const sentinels = collectSentinels(encoded)
2600
+ if (literalCandidates !== null) {
2601
+ if (isLiteral(encoded) || isUniqueSymbol(encoded)) {
2602
+ literalCandidates ??= new Map()
2603
+ const literal = isLiteral(encoded) ? encoded.literal : encoded.symbol
2604
+ let arr = literalCandidates.get(literal)
2605
+ if (!arr) literalCandidates.set(literal, arr = [])
2606
+ arr.push(a)
2607
+ } else {
2608
+ literalCandidates = null
2609
+ }
2610
+ }
2538
2611
 
2539
- // by-type (always filled – cheap primary filter)
2540
- idx.byType ??= {}
2541
- for (const t of candidateTypes) (idx.byType[t] ??= []).push(i)
2612
+ const sentinels = collectSentinels(encoded)
2542
2613
 
2543
- if (sentinels.length > 0) { // discriminated variants
2614
+ if (sentinels.length) { // discriminated variants
2544
2615
  idx.bySentinel ??= new Map()
2545
2616
  for (const { key, literal } of sentinels) {
2546
2617
  let m = idx.bySentinel.get(key)
2547
2618
  if (!m) idx.bySentinel.set(key, m = new Map())
2548
2619
  let arr = m.get(literal)
2549
2620
  if (!arr) m.set(literal, arr = [])
2550
- arr.push(i)
2621
+ if (arr[arr.length - 1] !== i) arr.push(i)
2551
2622
  }
2552
2623
  } else { // non-discriminated
2553
2624
  idx.otherwise ??= {}
2625
+ const candidateTypes = getCandidateTypes(encoded)
2554
2626
  for (const t of candidateTypes) (idx.otherwise[t] ??= []).push(i)
2555
2627
  }
2556
2628
  }
2557
2629
 
2630
+ if (literalCandidates) {
2631
+ literalCandidates.forEach(Object.freeze)
2632
+ idx = (input) => literalCandidates.get(input) ?? emptyCandidates
2633
+ } else if (idx.bySentinel?.size === 1 && !idx.otherwise) {
2634
+ for (const [key, byValue] of idx.bySentinel) {
2635
+ const candidates = byValue as unknown as Map<LiteralValue | symbol, ReadonlyArray<AST>>
2636
+ for (const [literal, indexes] of byValue) {
2637
+ candidates.set(literal, Object.freeze(indexes.map((index) => types[index])))
2638
+ }
2639
+ idx = (input) =>
2640
+ Predicate.isObjectKeyword(input) && Object.hasOwn(input, key)
2641
+ ? candidates.get((input as any)[key]) ?? emptyCandidates
2642
+ : emptyCandidates
2643
+ }
2644
+ }
2645
+
2558
2646
  candidateIndexCache.set(types, idx)
2559
2647
  return idx
2560
2648
  }
2561
2649
 
2562
2650
  function filterLiterals(input: any) {
2563
2651
  return (ast: AST) => {
2564
- const encoded = toEncoded(ast)
2652
+ const encoded = toCandidate(ast)
2565
2653
  return encoded._tag === "Literal" ?
2566
2654
  encoded.literal === input
2567
2655
  : encoded._tag === "UniqueSymbol" ?
@@ -2578,12 +2666,14 @@ function filterLiterals(input: any) {
2578
2666
  */
2579
2667
  export function getCandidates(input: any, types: ReadonlyArray<AST>): ReadonlyArray<AST> {
2580
2668
  const idx = getIndex(types)
2669
+ if (typeof idx === "function") return idx(input)
2670
+
2581
2671
  const runtimeType: Type = input === null ? "null" : Array.isArray(input) ? "array" : typeof input
2582
2672
 
2583
2673
  // 1. Try sentinel-based dispatch (most selective)
2584
2674
  if (idx.bySentinel) {
2585
- const base = idx.otherwise?.[runtimeType] ?? []
2586
- if (runtimeType === "object" || runtimeType === "array") {
2675
+ const base = idx.otherwise?.[runtimeType] ?? emptyCandidates
2676
+ if (Predicate.isObjectKeyword(input)) {
2587
2677
  const selected = new Set(base)
2588
2678
  for (const [k, m] of idx.bySentinel) {
2589
2679
  if (Object.hasOwn(input, k)) {
@@ -2593,13 +2683,13 @@ export function getCandidates(input: any, types: ReadonlyArray<AST>): ReadonlyAr
2593
2683
  }
2594
2684
  }
2595
2685
  }
2596
- return Array.from(selected).sort((a, b) => a - b).map((i) => types[i]).filter(filterLiterals(input))
2686
+ return Array.from(selected).sort((a, b) => a - b).map((i) => types[i])
2597
2687
  }
2598
2688
  return base.map((i) => types[i])
2599
2689
  }
2600
2690
 
2601
2691
  // 2. Fallback: runtime-type dispatch only
2602
- return (idx.byType?.[runtimeType] ?? []).map((i) => types[i]).filter(filterLiterals(input))
2692
+ return (idx.otherwise?.[runtimeType] ?? emptyCandidates).map((i) => types[i]).filter(filterLiterals(input))
2603
2693
  }
2604
2694
 
2605
2695
  /**
@@ -2617,15 +2707,14 @@ export function getCandidates(input: any, types: ReadonlyArray<AST>): ReadonlyAr
2617
2707
  *
2618
2708
  * **Example** (Inspecting a union AST)
2619
2709
  *
2620
- * ```ts
2710
+ * ```ts import.meta.vitest
2621
2711
  * import { Schema, SchemaAST } from "effect"
2622
2712
  *
2623
2713
  * const schema = Schema.Union([Schema.String, Schema.Number])
2624
2714
  * const ast = schema.ast
2625
2715
  *
2626
2716
  * if (SchemaAST.isUnion(ast)) {
2627
- * console.log(ast.types.length) // 2
2628
- * console.log(ast.mode) // "anyOf"
2717
+ * [ast.types.length, ast.mode] // => [2, "anyOf"]
2629
2718
  * }
2630
2719
  * ```
2631
2720
  *
@@ -2658,34 +2747,38 @@ export class Union<A extends AST = AST> extends Base {
2658
2747
  // oxlint-disable-next-line @typescript-eslint/no-this-alias
2659
2748
  const ast = this
2660
2749
 
2661
- return (oinput, options) => {
2662
- if (oinput._tag === "None") {
2663
- return Effect.succeed(oinput)
2750
+ return (input, options) => {
2751
+ if (input === InternalParser.missing) {
2752
+ return InternalParser.missingExit
2664
2753
  }
2665
- const input = oinput.value
2666
2754
  const candidates = getCandidates(input, ast.types)
2667
2755
 
2756
+ if (candidates.length === 1) {
2757
+ const result = recur(candidates[0])(input, options)
2758
+ if ((result as Exit.Exit<unknown, SchemaIssue.Issue>)._tag === "Success") return result
2759
+ return effectIsExit(result)
2760
+ ? failSingleUnionCandidate(ast, (result as Exit.Failure<unknown, SchemaIssue.Issue>).cause)
2761
+ : Effect.catchCause(result, (cause) => failSingleUnionCandidate(ast, cause))
2762
+ }
2763
+
2668
2764
  const state = {
2669
2765
  ast,
2670
2766
  recur,
2671
- oinput,
2672
2767
  input,
2673
2768
  out: undefined,
2674
- successes: [],
2769
+ successes: ast.mode === "oneOf" ? [] : undefined,
2675
2770
  issues: undefined as Arr.NonEmptyArray<SchemaIssue.Issue> | undefined,
2676
2771
  options
2677
2772
  }
2678
2773
  const concurrency = resolveConcurrency(options?.concurrency)
2679
2774
  const eff = parseUnion(state, candidates, concurrency ? { ...concurrency, orderedStep: true } : undefined)
2680
2775
  if (!eff) {
2681
- return state.out
2682
- ? Effect.succeed(state.out)
2683
- : Effect.fail(new SchemaIssue.AnyOf(ast, input, state.issues ?? []))
2776
+ return state.out ?? Effect.fail(new SchemaIssue.AnyOf(ast, state.issues ?? []))
2684
2777
  }
2685
- return Effect.flatMap(eff, (_) => {
2686
- return state.out
2687
- ? Effect.succeed(state.out)
2688
- : Effect.fail(new SchemaIssue.AnyOf(ast, input, state.issues ?? []))
2778
+ return Effect.flatMapEager(eff, (_) => {
2779
+ return state.out === InternalParser.sameExit
2780
+ ? Effect.succeed(input)
2781
+ : state.out ?? Effect.fail(new SchemaIssue.AnyOf(ast, state.issues ?? []))
2689
2782
  })
2690
2783
  }
2691
2784
  }
@@ -2750,19 +2843,28 @@ export class Union<A extends AST = AST> extends Base {
2750
2843
  }
2751
2844
  }
2752
2845
 
2846
+ function failSingleUnionCandidate(
2847
+ ast: Union,
2848
+ cause: Cause.Cause<SchemaIssue.Issue>
2849
+ ) {
2850
+ const issue = InternalSchemaCause.getSchemaIssue(cause)
2851
+ return issue
2852
+ ? Exit.fail(new SchemaIssue.AnyOf(ast, [issue]))
2853
+ : Exit.failCause(cause)
2854
+ }
2855
+
2753
2856
  const parseUnion = iterateEager<{
2754
2857
  readonly recur: (ast: AST) => SchemaParser.Parser
2755
2858
  readonly ast: Union
2756
- readonly oinput: Option.Option<unknown>
2757
2859
  readonly input: unknown
2758
2860
  readonly options: ParseOptions
2759
- out: Option.Option<unknown> | undefined
2760
- successes: Array<AST>
2861
+ out: Exit.Success<unknown, SchemaIssue.Issue> | undefined
2862
+ readonly successes: Array<AST> | undefined
2761
2863
  issues: Array<SchemaIssue.Issue> | undefined
2762
2864
  }, AST>()({
2763
2865
  onItem(s, ast) {
2764
2866
  const parser = s.recur(ast)
2765
- return parser(s.oinput, s.options)
2867
+ return parser(s.input, s.options)
2766
2868
  },
2767
2869
  step(s, candidate, exit) {
2768
2870
  if (exit._tag === "Failure") {
@@ -2773,13 +2875,14 @@ const parseUnion = iterateEager<{
2773
2875
  if (s.issues) s.issues.push(issue)
2774
2876
  else s.issues = [issue]
2775
2877
  } else {
2776
- if (s.out && s.ast.mode === "oneOf") {
2878
+ if (s.out && s.successes) {
2777
2879
  s.successes.push(candidate)
2778
- return Exit.fail(new SchemaIssue.OneOf(s.ast, s.input, s.successes))
2880
+ return Exit.fail(new SchemaIssue.OneOf(s.ast, s.successes))
2779
2881
  }
2780
- s.out = exit.value
2781
- s.successes.push(candidate)
2782
- if (s.ast.mode === "anyOf") {
2882
+ s.out = exit
2883
+ if (s.successes) {
2884
+ s.successes.push(candidate)
2885
+ } else {
2783
2886
  return Exit.void
2784
2887
  }
2785
2888
  }
@@ -2825,7 +2928,7 @@ export function memoizeThunk<A>(f: () => A): () => A {
2825
2928
  *
2826
2929
  * **Example** (Defining recursive schema ASTs)
2827
2930
  *
2828
- * ```ts
2931
+ * ```ts import.meta.vitest
2829
2932
  * import { Schema, SchemaAST } from "effect"
2830
2933
  *
2831
2934
  * interface Category {
@@ -2838,7 +2941,7 @@ export function memoizeThunk<A>(f: () => A): () => A {
2838
2941
  * children: Schema.Array(Schema.suspend((): Schema.Codec<Category> => Category))
2839
2942
  * })
2840
2943
  *
2841
- * // The recursive branch is a Suspend node
2944
+ * SchemaAST.isObjects(Category.ast) // => true
2842
2945
  * ```
2843
2946
  *
2844
2947
  * @see {@link isSuspend}
@@ -2856,7 +2959,7 @@ export class Suspend extends Base {
2856
2959
  encoding?: Encoding,
2857
2960
  context?: Context
2858
2961
  ) {
2859
- if (checks !== undefined) {
2962
+ if (checks) {
2860
2963
  throw new Error("Cannot add checks to Suspend")
2861
2964
  }
2862
2965
  super(annotations, undefined, encoding, context)
@@ -2864,7 +2967,8 @@ export class Suspend extends Base {
2864
2967
  }
2865
2968
  /** @internal */
2866
2969
  getParser(recur: (ast: AST) => SchemaParser.Parser): SchemaParser.Parser {
2867
- return recur(this.thunk())
2970
+ let parser: SchemaParser.Parser
2971
+ return (input, options) => (parser ??= recur(this.thunk()))(input, options)
2868
2972
  }
2869
2973
  /** @internal */
2870
2974
  recur(recur: (ast: AST) => AST) {
@@ -2999,7 +3103,7 @@ export function makeFilter<T>(
2999
3103
  aborted: boolean = false
3000
3104
  ): Filter<T> {
3001
3105
  return new Filter(
3002
- (input, ast, options) => SchemaIssue.make(input, ast, filter(input, ast, options)),
3106
+ (input, ast, options) => SchemaIssue.normalizeFilterOutput(ast, filter(input, ast, options)),
3003
3107
  annotations,
3004
3108
  aborted
3005
3109
  )
@@ -3011,7 +3115,7 @@ export function makeFilterByGuard<T extends E, E>(
3011
3115
  annotations?: Schema.Annotations.Filter
3012
3116
  ): Filter<any> {
3013
3117
  return new Filter(
3014
- (input: E) => is(input) ? undefined : new SchemaIssue.InvalidValue(Option.some(input)),
3118
+ (input: E) => is(input) ? undefined : new SchemaIssue.InvalidValue(),
3015
3119
  annotations,
3016
3120
  true // after a guard, we always want to abort
3017
3121
  )
@@ -3054,21 +3158,25 @@ export const finite = appendChecks(number, [isFinite()])
3054
3158
  * **Details**
3055
3159
  *
3056
3160
  * The filter can be used with `Schema.filter` or attached directly to a
3057
- * `String` AST node through checks. The regular expression source is stored in
3058
- * annotations for serialization and arbitrary generation.
3161
+ * `String` AST node through checks. The regular expression is cloned and its
3162
+ * `lastIndex` is reset before each test, so global and sticky expressions are
3163
+ * deterministic and the provided regular expression is not mutated. The
3164
+ * regular expression source is stored in annotations for serialization and
3165
+ * arbitrary generation.
3059
3166
  *
3060
3167
  * **Gotchas**
3061
3168
  *
3062
- * Use a non-global, non-sticky regular expression, or reset `lastIndex`
3063
- * yourself, because `RegExp.test` is stateful for expressions with the `g` or
3064
- * `y` flag.
3169
+ * When deriving an arbitrary, only `regExp.source` is used. Regular expression
3170
+ * flags are ignored because fast-check does not support them.
3065
3171
  *
3066
3172
  * **Example** (Validating an email pattern)
3067
3173
  *
3068
- * ```ts
3174
+ * ```ts import.meta.vitest
3069
3175
  * import { SchemaAST } from "effect"
3070
3176
  *
3071
3177
  * const emailFilter = SchemaAST.isPattern(/^[^@]+@[^@]+$/)
3178
+ * emailFilter.run("alice@example.com", SchemaAST.string, {}) // => undefined
3179
+ * emailFilter.run("invalid", SchemaAST.string, {})?._tag // => "InvalidValue"
3072
3180
  * ```
3073
3181
  *
3074
3182
  * @see {@link Filter}
@@ -3077,8 +3185,12 @@ export const finite = appendChecks(number, [isFinite()])
3077
3185
  */
3078
3186
  export function isPattern(regExp: globalThis.RegExp, annotations?: Schema.Annotations.Filter) {
3079
3187
  const source = regExp.source
3188
+ const pattern = new globalThis.RegExp(source, regExp.flags)
3080
3189
  return makeFilter(
3081
- (s: string) => regExp.test(s),
3190
+ (s: string) => {
3191
+ pattern.lastIndex = 0
3192
+ return pattern.test(s)
3193
+ },
3082
3194
  {
3083
3195
  expected: `a string matching the RegExp ${source}`,
3084
3196
  representation: {
@@ -3145,7 +3257,7 @@ export function annotate<A extends AST>(ast: A, annotations: Schema.Annotations.
3145
3257
 
3146
3258
  /** @internal */
3147
3259
  export function replaceChecks<A extends AST>(ast: A, checks: Checks | undefined): A {
3148
- if (ast._tag === "Suspend" && checks !== undefined) {
3260
+ if (ast._tag === "Suspend" && checks) {
3149
3261
  throw new Error("Cannot add checks to Suspend")
3150
3262
  }
3151
3263
  if (ast.checks === checks) {
@@ -3370,11 +3482,11 @@ function parseParameter(ast: AST): {
3370
3482
  }
3371
3483
 
3372
3484
  /** @internal */
3373
- export function record(key: AST, value: AST, keyValueCombiner: KeyValueCombiner | undefined): Objects {
3485
+ export function record(key: AST, value: AST): Objects {
3374
3486
  const { literals, parameters: indexSignatures } = parseParameter(key)
3375
3487
  return new Objects(
3376
3488
  literals.map((literal) => new PropertySignature(literal, value)),
3377
- indexSignatures.map((parameter) => new IndexSignature(parameter, value, keyValueCombiner))
3489
+ indexSignatures.map((parameter) => new IndexSignature(parameter, value))
3378
3490
  )
3379
3491
  }
3380
3492
 
@@ -3430,12 +3542,12 @@ function extractStructuralChecks(checks: Checks): Checks | undefined {
3430
3542
  *
3431
3543
  * **Example** (Getting the type AST)
3432
3544
  *
3433
- * ```ts
3545
+ * ```ts import.meta.vitest
3434
3546
  * import { Schema, SchemaAST } from "effect"
3435
3547
  *
3436
3548
  * const schema = Schema.NumberFromString
3437
3549
  * const typeAst = SchemaAST.toType(schema.ast)
3438
- * console.log(typeAst._tag) // "Number"
3550
+ * typeAst._tag // => "Number"
3439
3551
  * ```
3440
3552
  *
3441
3553
  * @see {@link toEncoded}
@@ -3477,12 +3589,12 @@ export const toType = memoize(<A extends AST>(ast: A): A => {
3477
3589
  *
3478
3590
  * **Example** (Getting the encoded AST)
3479
3591
  *
3480
- * ```ts
3592
+ * ```ts import.meta.vitest
3481
3593
  * import { Schema, SchemaAST } from "effect"
3482
3594
  *
3483
3595
  * const schema = Schema.NumberFromString
3484
3596
  * const encodedAst = SchemaAST.toEncoded(schema.ast)
3485
- * console.log(encodedAst._tag) // "String"
3597
+ * encodedAst._tag // => "String"
3486
3598
  * ```
3487
3599
  *
3488
3600
  * @see {@link toType}
@@ -3553,63 +3665,50 @@ function fromConst<const T>(
3553
3665
  ast: AST,
3554
3666
  value: T
3555
3667
  ): SchemaParser.Parser {
3556
- const succeed = Effect.succeedSome(value)
3557
- return (oinput) => {
3558
- if (oinput._tag === "None") {
3559
- return Effect.succeedNone
3560
- }
3561
- return oinput.value === value
3668
+ const succeed = InternalParser.succeed(value)
3669
+ return (input) => {
3670
+ if (input === InternalParser.missing) return InternalParser.missingExit
3671
+ return input === value
3562
3672
  ? succeed
3563
- : Effect.fail(new SchemaIssue.InvalidType(ast, oinput))
3673
+ : Effect.fail(
3674
+ new SchemaIssue.InvalidType(ast)
3675
+ )
3564
3676
  }
3565
3677
  }
3566
3678
 
3567
- function fromAnyToConst<const T>(value: T): SchemaParser.Parser {
3568
- const succeed = Effect.succeedSome(value)
3569
- return (oinput) => oinput._tag === "None" ? Effect.succeedNone : succeed
3570
- }
3571
-
3572
3679
  function fromRefinement<T>(
3573
3680
  ast: AST,
3574
3681
  refinement: (input: unknown) => input is T
3575
3682
  ): SchemaParser.Parser {
3576
- return (oinput) => {
3577
- if (oinput._tag === "None") {
3578
- return Effect.succeedNone
3579
- }
3580
- return refinement(oinput.value)
3581
- ? Effect.succeed(oinput)
3582
- : Effect.fail(new SchemaIssue.InvalidType(ast, oinput))
3683
+ return (input) => {
3684
+ if (input === InternalParser.missing) return InternalParser.missingExit
3685
+ return refinement(input)
3686
+ ? InternalParser.sameExit
3687
+ : Effect.fail(
3688
+ new SchemaIssue.InvalidType(ast)
3689
+ )
3583
3690
  }
3584
3691
  }
3585
3692
 
3586
- function applyTemplateLiteralPartChecks<A>(ast: AST, value: A, options: ParseOptions): A | undefined {
3587
- if (options?.disableChecks || ast.checks === undefined) return value
3588
- const issues: Array<SchemaIssue.Issue> = []
3589
- collectIssues(ast.checks, value, issues, ast, options)
3590
- return issues.length === 0 ? value : undefined
3591
- }
3592
-
3593
3693
  function segmentTemplateLiteralParts(
3594
- parts: ReadonlyArray<TemplateLiteralPart>,
3694
+ ast: TemplateLiteral,
3595
3695
  input: string,
3596
3696
  options: ParseOptions
3597
3697
  ): Array<string> | undefined {
3598
- const literals = parts.map((part) => part._tag === "Literal" ? globalThis.String(part.literal) : undefined)
3599
- if (literals.some((literal) => literal !== undefined && !input.includes(literal))) return undefined
3600
-
3601
- const minimumLengths = new Array<number>(parts.length + 1)
3602
- minimumLengths[parts.length] = 0
3603
- for (let i = parts.length - 1; i >= 0; i--) {
3604
- minimumLengths[i] = minimumLengths[i + 1] + (literals[i]?.length ?? 0)
3698
+ const parts = ast.encodedParts
3699
+ const literals = ast.literals
3700
+ const inputLength = input.length
3701
+ for (let i = 0; i < literals.length; i++) {
3702
+ const literal = literals[i]
3703
+ if (literal && !input.includes(literal)) return undefined
3605
3704
  }
3606
- if (minimumLengths[0] > input.length) return undefined
3705
+ if (ast.suffixLengths[0] > inputLength) return undefined
3607
3706
 
3608
3707
  const out = new Array<string>(parts.length)
3609
- const failures = parts.map(() => new Set<number>())
3708
+ let failures: Set<number> | undefined
3610
3709
  function go(i: number, pos: number): boolean {
3611
- if (i === parts.length) return pos === input.length
3612
- if (failures[i].has(pos)) return false
3710
+ if (i === parts.length) return pos === inputLength
3711
+ if (failures?.has(i * (inputLength + 1) + pos)) return false
3613
3712
  const part = parts[i]
3614
3713
  if (i === parts.length - 1) {
3615
3714
  const s = input.slice(pos)
@@ -3624,7 +3723,7 @@ function segmentTemplateLiteralParts(
3624
3723
  return true
3625
3724
  }
3626
3725
  } else {
3627
- const maximumEnd = input.length - minimumLengths[i + 1]
3726
+ const maximumEnd = inputLength - ast.suffixLengths[i + 1]
3628
3727
  // Splits preceding a literal only need to consider occurrences of that literal.
3629
3728
  const anchor = literals[i + 1]
3630
3729
  let end = anchor === undefined ? maximumEnd : input.lastIndexOf(anchor, maximumEnd)
@@ -3638,7 +3737,8 @@ function segmentTemplateLiteralParts(
3638
3737
  end = anchor === undefined ? end - 1 : input.lastIndexOf(anchor, end - 1)
3639
3738
  }
3640
3739
  }
3641
- failures[i].add(pos)
3740
+ failures ??= new Set()
3741
+ failures.add(i * (inputLength + 1) + pos)
3642
3742
  return false
3643
3743
  }
3644
3744
  return go(0, 0) ? out : undefined
@@ -3780,7 +3880,7 @@ const symbolToString = new Link(
3780
3880
  return Effect.succeed(globalThis.String(sym))
3781
3881
  }
3782
3882
  return Effect.fail(
3783
- new SchemaIssue.Forbidden(Option.some(sym), { message: "cannot serialize to string, Symbol is not registered" })
3883
+ new SchemaIssue.Forbidden({ message: "cannot serialize to string, Symbol is not registered" })
3784
3884
  )
3785
3885
  })
3786
3886
  )
@@ -3806,24 +3906,33 @@ export function isStringSymbol(annotations?: Schema.Annotations.Filter) {
3806
3906
  export function collectIssues<T>(
3807
3907
  checks: ReadonlyArray<Check<T>>,
3808
3908
  value: T,
3809
- issues: Array<SchemaIssue.Issue>,
3909
+ issues: Arr.NonEmptyArray<SchemaIssue.Issue> | undefined,
3810
3910
  ast: AST,
3811
3911
  options: ParseOptions
3812
- ) {
3912
+ ): Arr.NonEmptyArray<SchemaIssue.Issue> | undefined {
3813
3913
  for (let i = 0; i < checks.length; i++) {
3814
3914
  const check = checks[i]
3815
3915
  if (check._tag === "FilterGroup") {
3816
- collectIssues(check.checks, value, issues, ast, options)
3916
+ issues = collectIssues(check.checks, value, issues, ast, options)
3917
+ if (
3918
+ issues &&
3919
+ (options.errors !== "all" || (issues[issues.length - 1] as SchemaIssue.Filter).filter.aborted)
3920
+ ) {
3921
+ return issues
3922
+ }
3817
3923
  } else {
3818
3924
  const issue = check.run(value, ast, options)
3819
3925
  if (issue) {
3820
- issues.push(new SchemaIssue.Filter(value, check, issue))
3821
- if (check.aborted || options?.errors !== "all") {
3822
- return
3926
+ const filter = new SchemaIssue.Filter(check, issue)
3927
+ if (issues) issues.push(filter)
3928
+ else issues = [filter]
3929
+ if (options.errors !== "all" || check.aborted) {
3930
+ return issues
3823
3931
  }
3824
3932
  }
3825
3933
  }
3826
3934
  }
3935
+ return issues
3827
3936
  }
3828
3937
 
3829
3938
  /** @internal */
@@ -3831,10 +3940,9 @@ export function runChecks<T>(
3831
3940
  checks: readonly [Check<T>, ...Array<Check<T>>],
3832
3941
  s: T
3833
3942
  ): Result.Result<T, SchemaIssue.Issue> {
3834
- const issues: Array<SchemaIssue.Issue> = []
3835
- collectIssues(checks, s, issues, unknown, { errors: "all" })
3836
- if (Arr.isArrayNonEmpty(issues)) {
3837
- const issue = new SchemaIssue.Composite(unknown, Option.some(s), issues)
3943
+ const issues = collectIssues(checks, s, undefined, unknown, { errors: "all" })
3944
+ if (issues) {
3945
+ const issue = new SchemaIssue.Composite(unknown, issues)
3838
3946
  return Result.fail(issue)
3839
3947
  }
3840
3948
  return Result.succeed(s)
@@ -3854,12 +3962,12 @@ export const ClassTypeId = "~effect/Schema/Class"
3854
3962
  *
3855
3963
  * **Example** (Reading annotations)
3856
3964
  *
3857
- * ```ts
3965
+ * ```ts import.meta.vitest
3858
3966
  * import { Schema, SchemaAST } from "effect"
3859
3967
  *
3860
3968
  * const schema = Schema.String.annotate({ title: "Name" })
3861
3969
  * const annotations = SchemaAST.resolve(schema.ast)
3862
- * console.log(annotations?.title) // "Name"
3970
+ * annotations?.title // => "Name"
3863
3971
  * ```
3864
3972
  *
3865
3973
  * @see {@link resolveAt}
@@ -4016,8 +4124,8 @@ export const Json = new Declaration(
4016
4124
  [],
4017
4125
  () => (input, ast) =>
4018
4126
  isJson(input) ?
4019
- Effect.succeed(input) :
4020
- Effect.fail(new SchemaIssue.InvalidType(ast, Option.some(input))),
4127
+ InternalParser.sameExit :
4128
+ Effect.fail(new SchemaIssue.InvalidType(ast)),
4021
4129
  {
4022
4130
  representation: {
4023
4131
  id: "effect/schema/Json",
@@ -4048,7 +4156,7 @@ export const unknownToJson = new Link(
4048
4156
  export const objectKeywordToJson = new Link(
4049
4157
  new Union([
4050
4158
  new Arrays(false, [], [Json]),
4051
- new Objects([], [new IndexSignature(string, Json, undefined)])
4159
+ new Objects([], [new IndexSignature(string, Json)])
4052
4160
  ], "anyOf"),
4053
4161
  SchemaTransformation.passthrough()
4054
4162
  )
@@ -4068,8 +4176,8 @@ const StringTree = new Declaration(
4068
4176
  [],
4069
4177
  () => (input, ast) =>
4070
4178
  isStringTree(input) ?
4071
- Effect.succeed(input) :
4072
- Effect.fail(new SchemaIssue.InvalidType(ast, Option.some(input))),
4179
+ InternalParser.sameExit :
4180
+ Effect.fail(new SchemaIssue.InvalidType(ast)),
4073
4181
  { expected: "StringTree", toCodecStringTree: () => undefined }
4074
4182
  )
4075
4183