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/dist/SchemaAST.js CHANGED
@@ -15,12 +15,12 @@ import * as Cause from "./Cause.js";
15
15
  import * as Effect from "./Effect.js";
16
16
  import * as Exit from "./Exit.js";
17
17
  import { format, formatPropertyKey } from "./Formatter.js";
18
- import { memoize } from "./Function.js";
18
+ import { identity, memoize } from "./Function.js";
19
19
  import { effectIsExit, iterateEager } from "./internal/effect.js";
20
20
  import * as InternalRecord from "./internal/record.js";
21
21
  import * as InternalAnnotations from "./internal/schema/annotations.js";
22
22
  import * as InternalSchemaCause from "./internal/schema/cause.js";
23
- import * as Option from "./Option.js";
23
+ import * as InternalParser from "./internal/schema/parser.js";
24
24
  import * as Pipeable from "./Pipeable.js";
25
25
  import * as Predicate from "./Predicate.js";
26
26
  import * as Result from "./Result.js";
@@ -443,10 +443,10 @@ export class Declaration extends Base {
443
443
  }
444
444
  /** @internal */
445
445
  getParser() {
446
- const run = this.run(this.typeParameters);
447
- return (oinput, options) => {
448
- if (Option.isNone(oinput)) return Effect.succeedNone;
449
- return Effect.mapEager(run(oinput.value, this, options), Option.some);
446
+ let run;
447
+ return (input, options) => {
448
+ if (input === InternalParser.missing) return InternalParser.missingExit;
449
+ return (run ??= this.run(this.typeParameters))(input, this, options);
450
450
  };
451
451
  }
452
452
  _rebuild(recur, checks, encodingChecks) {
@@ -571,7 +571,8 @@ export class Void extends Base {
571
571
  _tag = "Void";
572
572
  /** @internal */
573
573
  getParser() {
574
- return fromAnyToConst(undefined);
574
+ const succeed = InternalParser.succeed(undefined);
575
+ return input => input === InternalParser.missing ? InternalParser.missingExit : succeed;
575
576
  }
576
577
  /** @internal */
577
578
  toCodecJson() {
@@ -797,9 +798,9 @@ function isTemplateLiteralPart(ast) {
797
798
  return true;
798
799
  case "Literal":
799
800
  case "TemplateLiteral":
800
- return ast.checks === undefined;
801
+ return !ast.checks;
801
802
  case "Union":
802
- return ast.checks === undefined && ast.types.every(isTemplateLiteralPart);
803
+ return !ast.checks && ast.types.every(isTemplateLiteralPart);
803
804
  default:
804
805
  return false;
805
806
  }
@@ -822,27 +823,47 @@ export class TemplateLiteral extends Base {
822
823
  parts;
823
824
  /** @internal */
824
825
  encodedParts;
826
+ /** @internal */
827
+ literals;
828
+ /** @internal */
829
+ suffixLengths;
825
830
  constructor(parts, annotations, checks, encoding, context) {
826
831
  super(annotations, checks, encoding, context);
827
832
  const encodedParts = [];
833
+ const literals = [];
828
834
  for (const part of parts) {
829
835
  const encoded = toEncoded(part);
830
836
  if (isTemplateLiteralPart(encoded)) {
831
837
  encodedParts.push(encoded);
838
+ literals.push(encoded._tag === "Literal" ? globalThis.String(encoded.literal) : undefined);
832
839
  } else {
833
840
  throw new Error(`Invalid TemplateLiteral part ${encoded._tag}`);
834
841
  }
835
842
  }
843
+ const suffixLengths = new Array(encodedParts.length + 1);
844
+ suffixLengths[encodedParts.length] = 0;
845
+ for (let i = encodedParts.length - 1; i >= 0; i--) {
846
+ suffixLengths[i] = suffixLengths[i + 1] + (literals[i]?.length ?? 0);
847
+ }
836
848
  this.parts = parts;
837
849
  this.encodedParts = encodedParts;
850
+ this.literals = literals;
851
+ this.suffixLengths = suffixLengths;
838
852
  }
839
853
  /** @internal */
840
854
  getParser(recur) {
841
855
  const parser = recur(this.asTemplateLiteralParser());
842
- return (oinput, options) => Effect.mapBothEager(parser(oinput, options), {
843
- onSuccess: () => oinput,
844
- onFailure: issue => new SchemaIssue.Composite(this, oinput, [issue])
845
- });
856
+ return (input, options) => {
857
+ if (input === InternalParser.missing) return InternalParser.missingExit;
858
+ const result = parser(input, options);
859
+ if (result._tag === "Success") {
860
+ return InternalParser.sameExit;
861
+ }
862
+ return Effect.mapBothEager(result, {
863
+ onSuccess: () => input,
864
+ onFailure: issue => new SchemaIssue.Composite(this, [issue])
865
+ });
866
+ };
846
867
  }
847
868
  /** @internal */
848
869
  getExpected() {
@@ -850,16 +871,16 @@ export class TemplateLiteral extends Base {
850
871
  }
851
872
  /** @internal */
852
873
  matchPart(s, options) {
853
- return segmentTemplateLiteralParts(this.encodedParts, s, options) === undefined ? undefined : s;
874
+ return segmentTemplateLiteralParts(this, s, options) === undefined ? undefined : s;
854
875
  }
855
876
  /** @internal */
856
877
  asTemplateLiteralParser() {
857
878
  const tuple = new Arrays(false, this.parts.map(partFromString), []);
858
879
  return decodeTo(string, tuple, new SchemaTransformation.Transformation(SchemaGetter.transformOrFail((s, options) => {
859
- const segments = segmentTemplateLiteralParts(this.encodedParts, s, options);
860
- if (segments !== undefined) return Effect.succeed(segments);
861
- return Effect.fail(new SchemaIssue.InvalidValue(Option.some(s), {
862
- message: `Expected a string matching template literal parts, got ${format(s)}`
880
+ const segments = segmentTemplateLiteralParts(this, s, options);
881
+ if (segments) return Effect.succeed(segments);
882
+ return Effect.fail(new SchemaIssue.InvalidValue({
883
+ message: "Expected a string matching template literal parts"
863
884
  }));
864
885
  }), SchemaGetter.transform(parts => parts.join(""))));
865
886
  }
@@ -908,11 +929,11 @@ export class UniqueSymbol extends Base {
908
929
  *
909
930
  * **Example** (Creating a literal AST)
910
931
  *
911
- * ```ts
932
+ * ```ts import.meta.vitest
912
933
  * import { SchemaAST } from "effect"
913
934
  *
914
935
  * const ast = new SchemaAST.Literal("active")
915
- * console.log(ast.literal) // "active"
936
+ * ast.literal // => "active"
916
937
  * ```
917
938
  *
918
939
  * @see {@link LiteralValue}
@@ -972,7 +993,8 @@ export class String extends Base {
972
993
  }
973
994
  /** @internal */
974
995
  matchPart(s, options) {
975
- return applyTemplateLiteralPartChecks(this, s, options);
996
+ const checks = this.checks;
997
+ return checks && !options.disableChecks && collectIssues(checks, s, undefined, this, options) ? undefined : s;
976
998
  }
977
999
  /** @internal */
978
1000
  getExpected() {
@@ -1027,7 +1049,10 @@ export class Number extends Base {
1027
1049
  return this._match(isStringFiniteRegExp, s, options);
1028
1050
  }
1029
1051
  _match(regexp, s, options) {
1030
- return regexp.test(s) ? applyTemplateLiteralPartChecks(this, globalThis.Number(s), options) : undefined;
1052
+ if (!regexp.test(s)) return undefined;
1053
+ const value = globalThis.Number(s);
1054
+ if (options.disableChecks || !this.checks) return value;
1055
+ return collectIssues(this.checks, value, undefined, this, options) ? undefined : value;
1031
1056
  }
1032
1057
  /** @internal */
1033
1058
  toCodecJson() {
@@ -1052,7 +1077,7 @@ function hasCheck(checks, id) {
1052
1077
  return checks.some(check => check.annotations?.representation?.id === id || check._tag === "FilterGroup" && hasCheck(check.checks, id));
1053
1078
  }
1054
1079
  function numberToJson(checks) {
1055
- const encodedFinite = checks === undefined ? finite : appendChecks(finite, checks);
1080
+ const encodedFinite = !checks ? finite : appendChecks(finite, checks);
1056
1081
  return new Link(new Union([encodedFinite, nonFiniteLiterals], "anyOf"), new SchemaTransformation.Transformation(SchemaGetter.Number(), SchemaGetter.transform(n => globalThis.Number.isFinite(n) ? n : globalThis.String(n))));
1057
1082
  }
1058
1083
  /**
@@ -1131,7 +1156,8 @@ export class Symbol extends Base {
1131
1156
  }
1132
1157
  /** @internal */
1133
1158
  matchKey(s, options) {
1134
- return applyTemplateLiteralPartChecks(this, s, options);
1159
+ if (options.disableChecks || !this.checks) return s;
1160
+ return collectIssues(this.checks, s, undefined, this, options) ? undefined : s;
1135
1161
  }
1136
1162
  /** @internal */
1137
1163
  toCodecStringTree() {
@@ -1182,7 +1208,10 @@ export class BigInt extends Base {
1182
1208
  }
1183
1209
  /** @internal */
1184
1210
  matchPart(s, options) {
1185
- return isStringBigIntRegExp.test(s) ? applyTemplateLiteralPartChecks(this, globalThis.BigInt(s), options) : undefined;
1211
+ if (!isStringBigIntRegExp.test(s)) return undefined;
1212
+ const value = globalThis.BigInt(s);
1213
+ if (options.disableChecks || !this.checks) return value;
1214
+ return collectIssues(this.checks, value, undefined, this, options) ? undefined : value;
1186
1215
  }
1187
1216
  /** @internal */
1188
1217
  toCodecStringTree() {
@@ -1234,15 +1263,14 @@ export const bigInt = /*#__PURE__*/new BigInt();
1234
1263
  *
1235
1264
  * **Example** (Inspecting a tuple AST)
1236
1265
  *
1237
- * ```ts
1266
+ * ```ts import.meta.vitest
1238
1267
  * import { Schema, SchemaAST } from "effect"
1239
1268
  *
1240
1269
  * const schema = Schema.Tuple([Schema.String, Schema.Number])
1241
1270
  * const ast = schema.ast
1242
1271
  *
1243
1272
  * if (SchemaAST.isArrays(ast)) {
1244
- * console.log(ast.elements.length) // 2
1245
- * console.log(ast.rest.length) // 0
1273
+ * [ast.elements.length, ast.rest.length] // => [2, 0]
1246
1274
  * }
1247
1275
  * ```
1248
1276
  *
@@ -1263,55 +1291,65 @@ export class Arrays extends Base {
1263
1291
  this.elements = elements;
1264
1292
  this.rest = rest;
1265
1293
  this.encodingChecks = encodingChecks;
1266
- // A required element cannot follow an optional element. ts(1257)
1267
- const i = elements.findIndex(isOptional);
1268
- if (i !== -1 && (elements.slice(i + 1).some(e => !isOptional(e)) || rest.length > 1)) {
1294
+ let hasOptional = false;
1295
+ for (let i = 0; i < elements.length; i++) {
1296
+ if (isOptional(elements[i])) {
1297
+ hasOptional = true;
1298
+ } else if (hasOptional) {
1299
+ throw new Error("A required element cannot follow an optional element. ts(1257)");
1300
+ }
1301
+ }
1302
+ if (hasOptional && rest.length > 1) {
1269
1303
  throw new Error("A required element cannot follow an optional element. ts(1257)");
1270
1304
  }
1271
1305
  // An optional element cannot follow a rest element.ts(1266)
1272
- if (rest.length > 1 && rest.slice(1).some(isOptional)) {
1273
- throw new Error("An optional element cannot follow a rest element. ts(1266)");
1306
+ for (let i = 1; i < rest.length; i++) {
1307
+ if (isOptional(rest[i])) {
1308
+ throw new Error("An optional element cannot follow a rest element. ts(1266)");
1309
+ }
1274
1310
  }
1275
1311
  }
1276
1312
  /** @internal */
1277
1313
  getParser(recur) {
1278
1314
  // oxlint-disable-next-line @typescript-eslint/no-this-alias
1279
1315
  const ast = this;
1280
- const elements = ast.elements.map(ast => ({
1281
- ast,
1282
- parser: recur(ast)
1283
- }));
1284
- const rest = ast.rest.map(ast => ({
1285
- ast,
1286
- parser: recur(ast)
1287
- }));
1288
- const elementLen = elements.length;
1289
- const [head, ...tail] = rest;
1290
- const tailLen = tail.length;
1316
+ let elements;
1317
+ let rest;
1318
+ const elementLen = ast.elements.length;
1319
+ const tailLen = Math.max(0, ast.rest.length - 1);
1291
1320
  function getParser(tailThreshold, index) {
1292
1321
  if (index < elementLen) {
1293
1322
  return elements[index];
1294
1323
  } else if (index >= tailThreshold) {
1295
- return tail[index - tailThreshold];
1324
+ return rest[index - tailThreshold + 1];
1296
1325
  }
1297
- return head;
1326
+ return rest[0];
1298
1327
  }
1299
- return Effect.fnUntracedEager(function* (oinput, options) {
1300
- if (oinput._tag === "None") {
1301
- return oinput;
1328
+ return Effect.fnUntracedEager(function* (input, options) {
1329
+ if (input === InternalParser.missing) {
1330
+ return InternalParser.missing;
1302
1331
  }
1303
- const input = oinput.value;
1304
1332
  // If the input is not an array, return early with an error
1305
1333
  if (!Array.isArray(input)) {
1306
- return yield* Effect.fail(new SchemaIssue.InvalidType(ast, oinput));
1334
+ return yield* Effect.fail(new SchemaIssue.InvalidType(ast));
1335
+ }
1336
+ if (!elements) {
1337
+ elements = ast.elements.map(ast => ({
1338
+ ast,
1339
+ parser: recur(ast)
1340
+ }));
1341
+ rest = ast.rest.map(ast => ({
1342
+ ast,
1343
+ parser: recur(ast)
1344
+ }));
1307
1345
  }
1308
1346
  const len = input.length;
1309
1347
  const state = {
1310
1348
  ast,
1311
1349
  getParser,
1312
- oinput,
1350
+ input,
1313
1351
  len,
1314
- tailThreshold: resolveTailThreshold(len, elementLen, tailLen),
1352
+ tailThreshold: Math.max(elementLen, len - tailLen),
1315
1353
  output: new globalThis.Array(len),
1316
1354
  issues: undefined,
1317
1355
  options
@@ -1327,18 +1365,18 @@ export class Arrays extends Base {
1327
1365
  // ---------------------------------------------
1328
1366
  if (ast.rest.length === 0 && len > elementLen) {
1329
1367
  for (let i = elementLen; i <= len - 1; i++) {
1330
- const issue = new SchemaIssue.Pointer([i], new SchemaIssue.UnexpectedKey(ast, input[i]));
1368
+ const issue = new SchemaIssue.Pointer([i], new SchemaIssue.UnexpectedKey(ast));
1331
1369
  if (options.errors === "all") {
1332
1370
  if (state.issues) state.issues.push(issue);else state.issues = [issue];
1333
1371
  } else {
1334
- return yield* Effect.fail(new SchemaIssue.Composite(ast, oinput, [issue]));
1372
+ return yield* Effect.fail(new SchemaIssue.Composite(ast, [issue]));
1335
1373
  }
1336
1374
  }
1337
1375
  }
1338
1376
  if (state.issues) {
1339
- return yield* Effect.fail(new SchemaIssue.Composite(ast, oinput, state.issues));
1377
+ return yield* Effect.fail(new SchemaIssue.Composite(ast, state.issues));
1340
1378
  }
1341
- return Option.some(state.output);
1379
+ return state.output;
1342
1380
  });
1343
1381
  }
1344
1382
  _rebuild(recur, checks, encodingChecks) {
@@ -1361,14 +1399,16 @@ export class Arrays extends Base {
1361
1399
  }
1362
1400
  const parseArray = /*#__PURE__*/iterateEager()({
1363
1401
  onItem(s, item, i) {
1364
- const value = i < s.len ? Option.some(item) : Option.none();
1402
+ const value = i < s.len ? item : InternalParser.missing;
1365
1403
  return s.getParser(s.tailThreshold, i).parser(value, s.options);
1366
1404
  },
1367
- step(s, _, exit, i) {
1405
+ step(s, item, exit, i) {
1368
1406
  if (exit._tag === "Failure") {
1369
1407
  return wrapPropertyKeyIssue(s, s.ast, i, exit);
1370
- } else if (exit.value._tag === "Some") {
1371
- s.output[i] = exit.value.value;
1408
+ }
1409
+ const value = exit === InternalParser.sameExit ? item : exit[InternalParser.args];
1410
+ if (value !== InternalParser.missing) {
1411
+ s.output[i] = value;
1372
1412
  } else {
1373
1413
  const p = s.getParser(s.tailThreshold, i);
1374
1414
  if (isOptional(p.ast)) return;
@@ -1376,14 +1416,11 @@ const parseArray = /*#__PURE__*/iterateEager()({
1376
1416
  if (s.options.errors === "all") {
1377
1417
  if (s.issues) s.issues.push(issue);else s.issues = [issue];
1378
1418
  } else {
1379
- return Exit.fail(new SchemaIssue.Composite(s.ast, s.oinput, [issue]));
1419
+ return Exit.fail(new SchemaIssue.Composite(s.ast, [issue]));
1380
1420
  }
1381
1421
  }
1382
1422
  }
1383
1423
  });
1384
- function resolveTailThreshold(inputLen, elementLen, tailLen) {
1385
- return Math.max(elementLen, inputLen - tailLen);
1386
- }
1387
1424
  const resolveConcurrency = value => {
1388
1425
  value = value === "unbounded" ? Infinity : value ?? 1;
1389
1426
  return value > 1 ? {
@@ -1396,13 +1433,13 @@ const wrapPropertyKeyIssue = (s, ast, key, exit) => {
1396
1433
  }
1397
1434
  const issue = InternalSchemaCause.getSchemaIssue(exit.cause);
1398
1435
  if (issue === undefined) {
1399
- return Exit.failCause(Cause.map(exit.cause, issue => new SchemaIssue.Composite(ast, s.oinput, [new SchemaIssue.Pointer([key], issue)])));
1436
+ return Exit.failCause(Cause.map(exit.cause, issue => new SchemaIssue.Composite(ast, [new SchemaIssue.Pointer([key], issue)])));
1400
1437
  }
1401
1438
  const pointer = new SchemaIssue.Pointer([key], issue);
1402
1439
  if (s.options.errors === "all") {
1403
1440
  if (s.issues) s.issues.push(pointer);else s.issues = [pointer];
1404
1441
  } else {
1405
- return Exit.fail(new SchemaIssue.Composite(ast, s.oinput, [pointer]));
1442
+ return Exit.fail(new SchemaIssue.Composite(ast, [pointer]));
1406
1443
  }
1407
1444
  };
1408
1445
  /**
@@ -1455,32 +1492,6 @@ export class PropertySignature {
1455
1492
  this.type = type;
1456
1493
  }
1457
1494
  }
1458
- /**
1459
- * Represents a bidirectional merge strategy for index signature key-value pairs.
1460
- *
1461
- * **Details**
1462
- *
1463
- * Used by {@link IndexSignature} when the same key appears multiple times
1464
- * (e.g. from `Schema.extend` or overlapping records). Provides separate
1465
- * `decode` and `encode` combiners that determine how duplicate entries are
1466
- * merged.
1467
- *
1468
- * @see {@link IndexSignature}
1469
- * @category models
1470
- * @since 4.0.0
1471
- */
1472
- export class KeyValueCombiner {
1473
- decode;
1474
- encode;
1475
- constructor(decode, encode) {
1476
- this.decode = decode;
1477
- this.encode = encode;
1478
- }
1479
- /** @internal */
1480
- flip() {
1481
- return new KeyValueCombiner(this.encode, this.decode);
1482
- }
1483
- }
1484
1495
  function isIndexSignatureParameterSide(ast) {
1485
1496
  switch (ast._tag) {
1486
1497
  case "String":
@@ -1510,7 +1521,6 @@ function isIndexSignatureParameter(ast) {
1510
1521
  * - `parameter` — the key type AST (e.g. {@link String} for `string` keys,
1511
1522
  * {@link TemplateLiteral} for patterned keys).
1512
1523
  * - `type` — the value type SchemaAST.
1513
- * - `merge` — optional {@link KeyValueCombiner} for handling duplicate keys.
1514
1524
  *
1515
1525
  * **Gotchas**
1516
1526
  *
@@ -1525,14 +1535,12 @@ function isIndexSignatureParameter(ast) {
1525
1535
  export class IndexSignature {
1526
1536
  parameter;
1527
1537
  type;
1528
- merge;
1529
- constructor(parameter, type, merge) {
1538
+ constructor(parameter, type) {
1530
1539
  if (!isIndexSignatureParameter(parameter)) {
1531
1540
  throw new Error(`Invalid index signature parameter ${parameter._tag}`);
1532
1541
  }
1533
1542
  this.parameter = parameter;
1534
1543
  this.type = type;
1535
- this.merge = merge;
1536
1544
  if (isOptional(type) && !containsUndefined(type)) {
1537
1545
  throw new Error("Cannot use `Schema.optionalKey` with index signatures, use `Schema.optional` instead.");
1538
1546
  }
@@ -1562,17 +1570,14 @@ export class IndexSignature {
1562
1570
  *
1563
1571
  * **Example** (Inspecting a struct AST)
1564
1572
  *
1565
- * ```ts
1573
+ * ```ts import.meta.vitest
1566
1574
  * import { Schema, SchemaAST } from "effect"
1567
1575
  *
1568
1576
  * const schema = Schema.Struct({ name: Schema.String })
1569
1577
  * const ast = schema.ast
1570
1578
  *
1571
1579
  * if (SchemaAST.isObjects(ast)) {
1572
- * for (const ps of ast.propertySignatures) {
1573
- * console.log(ps.name, ps.type._tag)
1574
- * }
1575
- * // "name" "String"
1580
+ * ast.propertySignatures.map((ps) => [ps.name, ps.type._tag]) // => [["name", "String"]]
1576
1581
  * }
1577
1582
  * ```
1578
1583
  *
@@ -1604,73 +1609,81 @@ export class Objects extends Base {
1604
1609
  // oxlint-disable-next-line @typescript-eslint/no-this-alias
1605
1610
  const ast = this;
1606
1611
  const expectedKeys = [];
1607
- const expectedKeysSet = new Set();
1608
- const properties = [];
1609
1612
  for (const ps of ast.propertySignatures) {
1610
1613
  expectedKeys.push(ps.name);
1611
- expectedKeysSet.add(ps.name);
1612
- properties.push({
1613
- ps,
1614
- parser: recur(ps.type),
1615
- name: ps.name,
1616
- type: ps.type
1617
- });
1618
1614
  }
1615
+ const hasProperties = expectedKeys.length;
1619
1616
  const indexCount = ast.indexSignatures.length;
1617
+ let expectedKeysSet = hasProperties && indexCount ? new Set(expectedKeys) : undefined;
1620
1618
  // ---------------------------------------------
1621
1619
  // handle empty struct
1622
1620
  // ---------------------------------------------
1623
- if (ast.propertySignatures.length === 0 && ast.indexSignatures.length === 0) {
1621
+ if (!hasProperties && !indexCount) {
1624
1622
  return fromRefinement(ast, Predicate.isNotNullish);
1625
1623
  }
1626
- const parseIndexes = indexCount > 0 ? iterateEager()({
1627
- onItem: Effect.fnUntracedEager(function* (s, [key, is]) {
1628
- const parserKey = recur(parameterFromPropertyKey(is.parameter));
1629
- const effKey = parserKey(Option.some(key), s.options);
1630
- const exitKey = effectIsExit(effKey) ? effKey : yield* Effect.exit(effKey);
1631
- if (exitKey._tag === "Failure") {
1632
- const eff = wrapPropertyKeyIssue(s, ast, key, exitKey);
1633
- if (eff) yield* eff;
1634
- return;
1635
- }
1636
- const value = Option.some(s.input[key]);
1637
- const parserValue = recur(is.type);
1638
- const effValue = parserValue(value, s.options);
1639
- const exitValue = effectIsExit(effValue) ? effValue : yield* Effect.exit(effValue);
1640
- if (exitValue._tag === "Failure") {
1641
- const eff = wrapPropertyKeyIssue(s, ast, key, exitValue);
1642
- if (eff) yield* eff;
1643
- return;
1644
- } else if (exitKey.value._tag === "Some" && exitValue.value._tag === "Some") {
1645
- const k2 = exitKey.value.value;
1646
- if (expectedKeysSet.has(key) || expectedKeysSet.has(k2)) {
1647
- return;
1648
- }
1649
- const v2 = exitValue.value.value;
1650
- if (is.merge && is.merge.decode && Object.hasOwn(s.out, k2)) {
1651
- const [k, v] = is.merge.decode.combine([k2, s.out[k2]], [k2, v2]);
1652
- InternalRecord.assignProperty(s.out, k, v);
1653
- } else {
1654
- InternalRecord.assignProperty(s.out, k2, v2);
1655
- }
1624
+ let properties;
1625
+ let indexes;
1626
+ const finishIndex = (s, key, k2, inputValue, exitValue) => {
1627
+ if (exitValue._tag === "Failure") {
1628
+ return wrapPropertyKeyIssue(s, ast, key, exitValue) ?? Exit.void;
1629
+ }
1630
+ const value = exitValue === InternalParser.sameExit ? inputValue : exitValue[InternalParser.args];
1631
+ if (k2 !== InternalParser.missing && value !== InternalParser.missing) {
1632
+ if (hasProperties && (expectedKeysSet.has(key) || expectedKeysSet.has(k2))) return Exit.void;
1633
+ InternalRecord.assignProperty(s.out, k2, value);
1634
+ }
1635
+ return Exit.void;
1636
+ };
1637
+ const parseIndex = (s, key, index, exitKey) => {
1638
+ if (!exitKey) {
1639
+ const eff = index.parserKey(key, s.options);
1640
+ if (!effectIsExit(eff)) {
1641
+ return Effect.flatMap(Effect.exit(eff), exit => parseIndex(s, key, index, exit));
1656
1642
  }
1657
- }),
1643
+ exitKey = eff;
1644
+ }
1645
+ if (exitKey._tag === "Failure") {
1646
+ return wrapPropertyKeyIssue(s, ast, key, exitKey) ?? Exit.void;
1647
+ }
1648
+ const k2 = exitKey === InternalParser.sameExit ? key : exitKey[InternalParser.args];
1649
+ const inputValue = s.input[key];
1650
+ const result = index.parserValue(inputValue, s.options);
1651
+ return effectIsExit(result) ? finishIndex(s, key, k2, inputValue, result) : Effect.flatMap(Effect.exit(result), exit => finishIndex(s, key, k2, inputValue, exit));
1652
+ };
1653
+ const parseStringIndex = (s, key, index) => {
1654
+ const inputValue = s.input[key];
1655
+ const result = index.parserValue(inputValue, s.options);
1656
+ return effectIsExit(result) ? finishIndex(s, key, key, inputValue, result) : Effect.flatMap(Effect.exit(result), exit => finishIndex(s, key, key, inputValue, exit));
1657
+ };
1658
+ const parseIndexes = indexCount ? iterateEager()({
1659
+ onItem: (s, [key, index]) => parseIndex(s, key, index),
1658
1660
  step: (_s, _, exit) => exit._tag === "Failure" ? exit : undefined
1659
1661
  }) : undefined;
1660
- return Effect.fnUntracedEager(function* (oinput, options) {
1661
- if (oinput._tag === "None") {
1662
- return oinput;
1662
+ return Effect.fnUntracedEager(function* (input, options) {
1663
+ if (input === InternalParser.missing) {
1664
+ return InternalParser.missing;
1663
1665
  }
1664
- const input = oinput.value;
1665
1666
  // If the input is not a record, return early with an error
1666
1667
  if (!(typeof input === "object" && input !== null && !Array.isArray(input))) {
1667
- return yield* Effect.fail(new SchemaIssue.InvalidType(ast, oinput));
1668
+ return yield* Effect.fail(new SchemaIssue.InvalidType(ast));
1668
1669
  }
1670
+ if (!properties) {
1671
+ properties = ast.propertySignatures.map(ps => ({
1672
+ parser: recur(ps.type),
1673
+ name: ps.name,
1674
+ type: ps.type
1675
+ }));
1676
+ indexes = indexCount ? ast.indexSignatures.map(is => ({
1677
+ is,
1678
+ parserKey: recur(parameterFromPropertyKey(is.parameter)),
1679
+ parserValue: recur(is.type)
1680
+ })) : undefined;
1681
+ }
1682
+ const record = input;
1669
1683
  const out = {};
1670
1684
  const state = {
1671
1685
  ast,
1672
- oinput,
1673
- input,
1686
+ input: record,
1674
1687
  out,
1675
1688
  issues: undefined,
1676
1689
  options
@@ -1682,14 +1695,15 @@ export class Objects extends Base {
1682
1695
  // handle excess properties
1683
1696
  // ---------------------------------------------
1684
1697
  let inputKeys;
1685
- if (ast.indexSignatures.length === 0 && (onExcessPropertyError || onExcessPropertyPreserve)) {
1686
- inputKeys = Reflect.ownKeys(input);
1698
+ if (!indexCount && (onExcessPropertyError || onExcessPropertyPreserve)) {
1699
+ expectedKeysSet ??= new Set(expectedKeys);
1700
+ inputKeys = Reflect.ownKeys(record);
1687
1701
  for (let i = 0; i < inputKeys.length; i++) {
1688
1702
  const key = inputKeys[i];
1689
1703
  if (!expectedKeysSet.has(key)) {
1690
1704
  // key is unexpected
1691
1705
  if (onExcessPropertyError) {
1692
- const issue = new SchemaIssue.Pointer([key], new SchemaIssue.UnexpectedKey(ast, input[key]));
1706
+ const issue = new SchemaIssue.Pointer([key], new SchemaIssue.UnexpectedKey(ast));
1693
1707
  if (errorsAllOption) {
1694
1708
  if (state.issues) {
1695
1709
  state.issues.push(issue);
@@ -1698,11 +1712,11 @@ export class Objects extends Base {
1698
1712
  }
1699
1713
  continue;
1700
1714
  } else {
1701
- return yield* Effect.fail(new SchemaIssue.Composite(ast, oinput, [issue]));
1715
+ return yield* Effect.fail(new SchemaIssue.Composite(ast, [issue]));
1702
1716
  }
1703
1717
  } else {
1704
1718
  // preserve key
1705
- InternalRecord.assignProperty(out, key, input[key]);
1719
+ InternalRecord.assignProperty(out, key, record[key]);
1706
1720
  }
1707
1721
  }
1708
1722
  }
@@ -1711,42 +1725,53 @@ export class Objects extends Base {
1711
1725
  // ---------------------------------------------
1712
1726
  // handle property signatures
1713
1727
  // ---------------------------------------------
1714
- const eff = parseProperties(state, properties, concurrency);
1715
- if (eff) yield* eff;
1728
+ if (hasProperties) {
1729
+ const eff = parseProperties(state, properties, concurrency);
1730
+ if (eff) yield* eff;
1731
+ }
1716
1732
  // ---------------------------------------------
1717
1733
  // handle index signatures
1718
1734
  // ---------------------------------------------
1719
- if (parseIndexes) {
1735
+ if (indexCount && !concurrency) {
1736
+ for (let i = 0; i < indexCount; i++) {
1737
+ const index = indexes[i];
1738
+ const parse = index.is.parameter === string ? parseStringIndex : parseIndex;
1739
+ const keys = index.is.parameter === string ? Object.keys(record) : getIndexSignatureKeys(record, index.is.parameter, options);
1740
+ for (let j = 0; j < keys.length; j++) {
1741
+ const eff = parse(state, keys[j], index);
1742
+ if (!effectIsExit(eff)) yield* eff;else if (eff._tag === "Failure") return yield* eff;
1743
+ }
1744
+ }
1745
+ } else if (parseIndexes) {
1720
1746
  const keyPairs = Arr.empty();
1721
1747
  for (let i = 0; i < indexCount; i++) {
1722
- const is = ast.indexSignatures[i];
1723
- const keys = getIndexSignatureKeys(input, is.parameter, options);
1748
+ const index = indexes[i];
1749
+ const keys = getIndexSignatureKeys(record, index.is.parameter, options);
1724
1750
  for (let j = 0; j < keys.length; j++) {
1725
- const key = keys[j];
1726
- keyPairs.push([key, is]);
1751
+ keyPairs.push([keys[j], index]);
1727
1752
  }
1728
1753
  }
1729
1754
  const eff = parseIndexes(state, keyPairs, concurrency);
1730
1755
  if (eff) yield* eff;
1731
1756
  }
1732
1757
  if (state.issues) {
1733
- return yield* Effect.fail(new SchemaIssue.Composite(ast, oinput, state.issues));
1758
+ return yield* Effect.fail(new SchemaIssue.Composite(ast, state.issues));
1734
1759
  }
1735
1760
  if (options.propertyOrder === "original") {
1736
1761
  // preserve input keys order
1737
- const keys = (inputKeys ?? Reflect.ownKeys(input)).concat(expectedKeys);
1762
+ const keys = (inputKeys ?? Reflect.ownKeys(record)).concat(expectedKeys);
1738
1763
  const preserved = {};
1739
1764
  for (const key of keys) {
1740
1765
  if (Object.hasOwn(out, key)) {
1741
1766
  InternalRecord.assignProperty(preserved, key, out[key]);
1742
1767
  }
1743
1768
  }
1744
- return Option.some(preserved);
1769
+ return preserved;
1745
1770
  }
1746
- return Option.some(out);
1771
+ return out;
1747
1772
  });
1748
1773
  }
1749
- _rebuild(recur, recurParameter, flipMerge, checks, encodingChecks) {
1774
+ _rebuild(recur, recurParameter, checks, encodingChecks) {
1750
1775
  const props = mapOrSame(this.propertySignatures, ps => {
1751
1776
  const t = recur(ps.type);
1752
1777
  return t === ps.type ? ps : new PropertySignature(ps.name, t);
@@ -1754,18 +1779,17 @@ export class Objects extends Base {
1754
1779
  const indexes = mapOrSame(this.indexSignatures, is => {
1755
1780
  const p = recurParameter(is.parameter);
1756
1781
  const t = recur(is.type);
1757
- const merge = flipMerge ? is.merge?.flip() : is.merge;
1758
- return p === is.parameter && t === is.type && merge === is.merge ? is : new IndexSignature(p, t, merge);
1782
+ return p === is.parameter && t === is.type ? is : new IndexSignature(p, t);
1759
1783
  });
1760
1784
  return props === this.propertySignatures && indexes === this.indexSignatures && checks === this.checks && encodingChecks === this.encodingChecks ? this : new Objects(props, indexes, this.annotations, checks, undefined, this.context, encodingChecks);
1761
1785
  }
1762
1786
  /** @internal */
1763
1787
  flip(recur) {
1764
- return this._rebuild(recur, recur, true, this.encodingChecks, this.checks);
1788
+ return this._rebuild(recur, recur, this.encodingChecks, this.checks);
1765
1789
  }
1766
1790
  /** @internal */
1767
1791
  recur(recur, recurParameter = recur) {
1768
- return this._rebuild(recur, recurParameter, false, this.checks, this.encodingChecks);
1792
+ return this._rebuild(recur, recurParameter, this.checks, this.encodingChecks);
1769
1793
  }
1770
1794
  /** @internal */
1771
1795
  getExpected() {
@@ -1775,21 +1799,31 @@ export class Objects extends Base {
1775
1799
  }
1776
1800
  const parseProperties = /*#__PURE__*/iterateEager()({
1777
1801
  onItem(s, p) {
1778
- const value = Object.hasOwn(s.input, p.name) ? Option.some(s.input[p.name]) : Option.none();
1802
+ if (!Object.hasOwn(s.input, p.name)) {
1803
+ return p.parser(InternalParser.missing, s.options);
1804
+ }
1805
+ const value = s.input[p.name];
1806
+ InternalRecord.assignProperty(s.out, p.name, value);
1779
1807
  return p.parser(value, s.options);
1780
1808
  },
1781
1809
  step(s, p, exit) {
1782
1810
  if (exit._tag === "Failure") {
1783
1811
  return wrapPropertyKeyIssue(s, s.ast, p.name, exit);
1784
- } else if (exit.value._tag === "Some") {
1785
- InternalRecord.assignProperty(s.out, p.name, exit.value.value);
1786
- } else if (!isOptional(p.type)) {
1812
+ }
1813
+ if (exit === InternalParser.sameExit) return;
1814
+ const value = exit[InternalParser.args];
1815
+ if (value !== InternalParser.missing) {
1816
+ InternalRecord.assignProperty(s.out, p.name, value);
1817
+ return;
1818
+ }
1819
+ delete s.out[p.name];
1820
+ if (!isOptional(p.type)) {
1787
1821
  const issue = new SchemaIssue.Pointer([p.name], new SchemaIssue.MissingKey(p.type.context?.annotations));
1788
1822
  if (s.options.errors === "all") {
1789
1823
  if (s.issues) s.issues.push(issue);else s.issues = [issue];
1790
1824
  return;
1791
1825
  } else {
1792
- return Exit.fail(new SchemaIssue.Composite(s.ast, s.oinput, [issue]));
1826
+ return Exit.fail(new SchemaIssue.Composite(s.ast, [issue]));
1793
1827
  }
1794
1828
  }
1795
1829
  }
@@ -1839,6 +1873,18 @@ export function tupleWithRest(ast, rest) {
1839
1873
  }
1840
1874
  return new Arrays(ast.isMutable, ast.elements, rest, undefined, ast.checks);
1841
1875
  }
1876
+ const toCandidate = /*#__PURE__*/memoize(ast => {
1877
+ while (true) {
1878
+ if (isSuspend(ast)) return unknown;
1879
+ const encoding = ast.encoding;
1880
+ if (!encoding) {
1881
+ // Index signature parameters do not participate in union selection.
1882
+ return ast.recur?.(toCandidate, identity) ?? ast;
1883
+ }
1884
+ if (encoding.some(link => link.transformation._tag === "Middleware" && link.transformation.decode !== identity)) return unknown;
1885
+ ast = encoding[encoding.length - 1].to;
1886
+ }
1887
+ });
1842
1888
  function getCandidateTypes(ast) {
1843
1889
  switch (ast._tag) {
1844
1890
  case "Null":
@@ -1904,30 +1950,50 @@ export function collectSentinels(ast) {
1904
1950
  });
1905
1951
  case "Arrays":
1906
1952
  return ast.elements.flatMap((e, i) => {
1907
- return isLiteral(e) && !isOptional(e) ? [{
1908
- key: i,
1909
- literal: e.literal
1910
- }] : [];
1953
+ if (!isOptional(e)) {
1954
+ if (isLiteral(e)) {
1955
+ return [{
1956
+ key: i,
1957
+ literal: e.literal
1958
+ }];
1959
+ }
1960
+ if (isUniqueSymbol(e)) {
1961
+ return [{
1962
+ key: i,
1963
+ literal: e.symbol
1964
+ }];
1965
+ }
1966
+ }
1967
+ return [];
1911
1968
  });
1912
1969
  case "Suspend":
1913
1970
  return collectSentinels(ast.thunk());
1914
1971
  }
1915
1972
  }
1916
1973
  const candidateIndexCache = /*#__PURE__*/new WeakMap();
1974
+ const emptyCandidates = /*#__PURE__*/Object.freeze([]);
1917
1975
  function getIndex(types) {
1918
1976
  let idx = candidateIndexCache.get(types);
1919
1977
  if (idx) return idx;
1920
1978
  idx = {};
1979
+ let literalCandidates;
1921
1980
  for (let i = 0; i < types.length; i++) {
1922
1981
  const a = types[i];
1923
- const encoded = toEncoded(a);
1982
+ const encoded = toCandidate(a);
1924
1983
  if (isNever(encoded)) continue;
1925
- const candidateTypes = getCandidateTypes(encoded);
1984
+ if (literalCandidates !== null) {
1985
+ if (isLiteral(encoded) || isUniqueSymbol(encoded)) {
1986
+ literalCandidates ??= new Map();
1987
+ const literal = isLiteral(encoded) ? encoded.literal : encoded.symbol;
1988
+ let arr = literalCandidates.get(literal);
1989
+ if (!arr) literalCandidates.set(literal, arr = []);
1990
+ arr.push(a);
1991
+ } else {
1992
+ literalCandidates = null;
1993
+ }
1994
+ }
1926
1995
  const sentinels = collectSentinels(encoded);
1927
- // by-type (always filled – cheap primary filter)
1928
- idx.byType ??= {};
1929
- for (const t of candidateTypes) (idx.byType[t] ??= []).push(i);
1930
- if (sentinels.length > 0) {
1996
+ if (sentinels.length) {
1931
1997
  // discriminated variants
1932
1998
  idx.bySentinel ??= new Map();
1933
1999
  for (const {
@@ -1938,20 +2004,33 @@ function getIndex(types) {
1938
2004
  if (!m) idx.bySentinel.set(key, m = new Map());
1939
2005
  let arr = m.get(literal);
1940
2006
  if (!arr) m.set(literal, arr = []);
1941
- arr.push(i);
2007
+ if (arr[arr.length - 1] !== i) arr.push(i);
1942
2008
  }
1943
2009
  } else {
1944
2010
  // non-discriminated
1945
2011
  idx.otherwise ??= {};
2012
+ const candidateTypes = getCandidateTypes(encoded);
1946
2013
  for (const t of candidateTypes) (idx.otherwise[t] ??= []).push(i);
1947
2014
  }
1948
2015
  }
2016
+ if (literalCandidates) {
2017
+ literalCandidates.forEach(Object.freeze);
2018
+ idx = input => literalCandidates.get(input) ?? emptyCandidates;
2019
+ } else if (idx.bySentinel?.size === 1 && !idx.otherwise) {
2020
+ for (const [key, byValue] of idx.bySentinel) {
2021
+ const candidates = byValue;
2022
+ for (const [literal, indexes] of byValue) {
2023
+ candidates.set(literal, Object.freeze(indexes.map(index => types[index])));
2024
+ }
2025
+ idx = input => Predicate.isObjectKeyword(input) && Object.hasOwn(input, key) ? candidates.get(input[key]) ?? emptyCandidates : emptyCandidates;
2026
+ }
2027
+ }
1949
2028
  candidateIndexCache.set(types, idx);
1950
2029
  return idx;
1951
2030
  }
1952
2031
  function filterLiterals(input) {
1953
2032
  return ast => {
1954
- const encoded = toEncoded(ast);
2033
+ const encoded = toCandidate(ast);
1955
2034
  return encoded._tag === "Literal" ? encoded.literal === input : encoded._tag === "UniqueSymbol" ? encoded.symbol === input : true;
1956
2035
  };
1957
2036
  }
@@ -1963,11 +2042,12 @@ function filterLiterals(input) {
1963
2042
  */
1964
2043
  export function getCandidates(input, types) {
1965
2044
  const idx = getIndex(types);
2045
+ if (typeof idx === "function") return idx(input);
1966
2046
  const runtimeType = input === null ? "null" : Array.isArray(input) ? "array" : typeof input;
1967
2047
  // 1. Try sentinel-based dispatch (most selective)
1968
2048
  if (idx.bySentinel) {
1969
- const base = idx.otherwise?.[runtimeType] ?? [];
1970
- if (runtimeType === "object" || runtimeType === "array") {
2049
+ const base = idx.otherwise?.[runtimeType] ?? emptyCandidates;
2050
+ if (Predicate.isObjectKeyword(input)) {
1971
2051
  const selected = new Set(base);
1972
2052
  for (const [k, m] of idx.bySentinel) {
1973
2053
  if (Object.hasOwn(input, k)) {
@@ -1977,12 +2057,12 @@ export function getCandidates(input, types) {
1977
2057
  }
1978
2058
  }
1979
2059
  }
1980
- return Array.from(selected).sort((a, b) => a - b).map(i => types[i]).filter(filterLiterals(input));
2060
+ return Array.from(selected).sort((a, b) => a - b).map(i => types[i]);
1981
2061
  }
1982
2062
  return base.map(i => types[i]);
1983
2063
  }
1984
2064
  // 2. Fallback: runtime-type dispatch only
1985
- return (idx.byType?.[runtimeType] ?? []).map(i => types[i]).filter(filterLiterals(input));
2065
+ return (idx.otherwise?.[runtimeType] ?? emptyCandidates).map(i => types[i]).filter(filterLiterals(input));
1986
2066
  }
1987
2067
  /**
1988
2068
  * AST node representing a union of schemas.
@@ -1999,15 +2079,14 @@ export function getCandidates(input, types) {
1999
2079
  *
2000
2080
  * **Example** (Inspecting a union AST)
2001
2081
  *
2002
- * ```ts
2082
+ * ```ts import.meta.vitest
2003
2083
  * import { Schema, SchemaAST } from "effect"
2004
2084
  *
2005
2085
  * const schema = Schema.Union([Schema.String, Schema.Number])
2006
2086
  * const ast = schema.ast
2007
2087
  *
2008
2088
  * if (SchemaAST.isUnion(ast)) {
2009
- * console.log(ast.types.length) // 2
2010
- * console.log(ast.mode) // "anyOf"
2089
+ * [ast.types.length, ast.mode] // => [2, "anyOf"]
2011
2090
  * }
2012
2091
  * ```
2013
2092
  *
@@ -2030,19 +2109,22 @@ export class Union extends Base {
2030
2109
  getParser(recur) {
2031
2110
  // oxlint-disable-next-line @typescript-eslint/no-this-alias
2032
2111
  const ast = this;
2033
- return (oinput, options) => {
2034
- if (oinput._tag === "None") {
2035
- return Effect.succeed(oinput);
2112
+ return (input, options) => {
2113
+ if (input === InternalParser.missing) {
2114
+ return InternalParser.missingExit;
2036
2115
  }
2037
- const input = oinput.value;
2038
2116
  const candidates = getCandidates(input, ast.types);
2117
+ if (candidates.length === 1) {
2118
+ const result = recur(candidates[0])(input, options);
2119
+ if (result._tag === "Success") return result;
2120
+ return effectIsExit(result) ? failSingleUnionCandidate(ast, result.cause) : Effect.catchCause(result, cause => failSingleUnionCandidate(ast, cause));
2121
+ }
2039
2122
  const state = {
2040
2123
  ast,
2041
2124
  recur,
2042
- oinput,
2043
2125
  input,
2044
2126
  out: undefined,
2045
- successes: [],
2127
+ successes: ast.mode === "oneOf" ? [] : undefined,
2046
2128
  issues: undefined,
2047
2129
  options
2048
2130
  };
@@ -2052,10 +2134,10 @@ export class Union extends Base {
2052
2134
  orderedStep: true
2053
2135
  } : undefined);
2054
2136
  if (!eff) {
2055
- return state.out ? Effect.succeed(state.out) : Effect.fail(new SchemaIssue.AnyOf(ast, input, state.issues ?? []));
2137
+ return state.out ?? Effect.fail(new SchemaIssue.AnyOf(ast, state.issues ?? []));
2056
2138
  }
2057
- return Effect.flatMap(eff, _ => {
2058
- return state.out ? Effect.succeed(state.out) : Effect.fail(new SchemaIssue.AnyOf(ast, input, state.issues ?? []));
2139
+ return Effect.flatMapEager(eff, _ => {
2140
+ return state.out === InternalParser.sameExit ? Effect.succeed(input) : state.out ?? Effect.fail(new SchemaIssue.AnyOf(ast, state.issues ?? []));
2059
2141
  });
2060
2142
  };
2061
2143
  }
@@ -2109,10 +2191,14 @@ export class Union extends Base {
2109
2191
  return Array.from(new Set(types)).join(" | ");
2110
2192
  }
2111
2193
  }
2194
+ function failSingleUnionCandidate(ast, cause) {
2195
+ const issue = InternalSchemaCause.getSchemaIssue(cause);
2196
+ return issue ? Exit.fail(new SchemaIssue.AnyOf(ast, [issue])) : Exit.failCause(cause);
2197
+ }
2112
2198
  const parseUnion = /*#__PURE__*/iterateEager()({
2113
2199
  onItem(s, ast) {
2114
2200
  const parser = s.recur(ast);
2115
- return parser(s.oinput, s.options);
2201
+ return parser(s.input, s.options);
2116
2202
  },
2117
2203
  step(s, candidate, exit) {
2118
2204
  if (exit._tag === "Failure") {
@@ -2122,13 +2208,14 @@ const parseUnion = /*#__PURE__*/iterateEager()({
2122
2208
  }
2123
2209
  if (s.issues) s.issues.push(issue);else s.issues = [issue];
2124
2210
  } else {
2125
- if (s.out && s.ast.mode === "oneOf") {
2211
+ if (s.out && s.successes) {
2126
2212
  s.successes.push(candidate);
2127
- return Exit.fail(new SchemaIssue.OneOf(s.ast, s.input, s.successes));
2213
+ return Exit.fail(new SchemaIssue.OneOf(s.ast, s.successes));
2128
2214
  }
2129
- s.out = exit.value;
2130
- s.successes.push(candidate);
2131
- if (s.ast.mode === "anyOf") {
2215
+ s.out = exit;
2216
+ if (s.successes) {
2217
+ s.successes.push(candidate);
2218
+ } else {
2132
2219
  return Exit.void;
2133
2220
  }
2134
2221
  }
@@ -2165,7 +2252,7 @@ export function memoizeThunk(f) {
2165
2252
  *
2166
2253
  * **Example** (Defining recursive schema ASTs)
2167
2254
  *
2168
- * ```ts
2255
+ * ```ts import.meta.vitest
2169
2256
  * import { Schema, SchemaAST } from "effect"
2170
2257
  *
2171
2258
  * interface Category {
@@ -2178,7 +2265,7 @@ export function memoizeThunk(f) {
2178
2265
  * children: Schema.Array(Schema.suspend((): Schema.Codec<Category> => Category))
2179
2266
  * })
2180
2267
  *
2181
- * // The recursive branch is a Suspend node
2268
+ * SchemaAST.isObjects(Category.ast) // => true
2182
2269
  * ```
2183
2270
  *
2184
2271
  * @see {@link isSuspend}
@@ -2189,7 +2276,7 @@ export class Suspend extends Base {
2189
2276
  _tag = "Suspend";
2190
2277
  thunk;
2191
2278
  constructor(thunk, annotations, checks, encoding, context) {
2192
- if (checks !== undefined) {
2279
+ if (checks) {
2193
2280
  throw new Error("Cannot add checks to Suspend");
2194
2281
  }
2195
2282
  super(annotations, undefined, encoding, context);
@@ -2197,7 +2284,8 @@ export class Suspend extends Base {
2197
2284
  }
2198
2285
  /** @internal */
2199
2286
  getParser(recur) {
2200
- return recur(this.thunk());
2287
+ let parser;
2288
+ return (input, options) => (parser ??= recur(this.thunk()))(input, options);
2201
2289
  }
2202
2290
  /** @internal */
2203
2291
  recur(recur) {
@@ -2298,11 +2386,11 @@ export class FilterGroup extends Pipeable.Class {
2298
2386
  }
2299
2387
  /** @internal */
2300
2388
  export function makeFilter(filter, annotations, aborted = false) {
2301
- return new Filter((input, ast, options) => SchemaIssue.make(input, ast, filter(input, ast, options)), annotations, aborted);
2389
+ return new Filter((input, ast, options) => SchemaIssue.normalizeFilterOutput(ast, filter(input, ast, options)), annotations, aborted);
2302
2390
  }
2303
2391
  /** @internal */
2304
2392
  export function makeFilterByGuard(is, annotations) {
2305
- return new Filter(input => is(input) ? undefined : new SchemaIssue.InvalidValue(Option.some(input)), annotations, true // after a guard, we always want to abort
2393
+ return new Filter(input => is(input) ? undefined : new SchemaIssue.InvalidValue(), annotations, true // after a guard, we always want to abort
2306
2394
  );
2307
2395
  }
2308
2396
  /** @internal */
@@ -2341,21 +2429,25 @@ export const finite = /*#__PURE__*/appendChecks(number, [/*#__PURE__*/isFinite()
2341
2429
  * **Details**
2342
2430
  *
2343
2431
  * The filter can be used with `Schema.filter` or attached directly to a
2344
- * `String` AST node through checks. The regular expression source is stored in
2345
- * annotations for serialization and arbitrary generation.
2432
+ * `String` AST node through checks. The regular expression is cloned and its
2433
+ * `lastIndex` is reset before each test, so global and sticky expressions are
2434
+ * deterministic and the provided regular expression is not mutated. The
2435
+ * regular expression source is stored in annotations for serialization and
2436
+ * arbitrary generation.
2346
2437
  *
2347
2438
  * **Gotchas**
2348
2439
  *
2349
- * Use a non-global, non-sticky regular expression, or reset `lastIndex`
2350
- * yourself, because `RegExp.test` is stateful for expressions with the `g` or
2351
- * `y` flag.
2440
+ * When deriving an arbitrary, only `regExp.source` is used. Regular expression
2441
+ * flags are ignored because fast-check does not support them.
2352
2442
  *
2353
2443
  * **Example** (Validating an email pattern)
2354
2444
  *
2355
- * ```ts
2445
+ * ```ts import.meta.vitest
2356
2446
  * import { SchemaAST } from "effect"
2357
2447
  *
2358
2448
  * const emailFilter = SchemaAST.isPattern(/^[^@]+@[^@]+$/)
2449
+ * emailFilter.run("alice@example.com", SchemaAST.string, {}) // => undefined
2450
+ * emailFilter.run("invalid", SchemaAST.string, {})?._tag // => "InvalidValue"
2359
2451
  * ```
2360
2452
  *
2361
2453
  * @see {@link Filter}
@@ -2364,7 +2456,11 @@ export const finite = /*#__PURE__*/appendChecks(number, [/*#__PURE__*/isFinite()
2364
2456
  */
2365
2457
  export function isPattern(regExp, annotations) {
2366
2458
  const source = regExp.source;
2367
- return makeFilter(s => regExp.test(s), {
2459
+ const pattern = new globalThis.RegExp(source, regExp.flags);
2460
+ return makeFilter(s => {
2461
+ pattern.lastIndex = 0;
2462
+ return pattern.test(s);
2463
+ }, {
2368
2464
  expected: `a string matching the RegExp ${source}`,
2369
2465
  representation: {
2370
2466
  id: "effect/schema/isPattern",
@@ -2426,7 +2522,7 @@ export function annotate(ast, annotations) {
2426
2522
  }
2427
2523
  /** @internal */
2428
2524
  export function replaceChecks(ast, checks) {
2429
- if (ast._tag === "Suspend" && checks !== undefined) {
2525
+ if (ast._tag === "Suspend" && checks) {
2430
2526
  throw new Error("Cannot add checks to Suspend");
2431
2527
  }
2432
2528
  if (ast.checks === checks) {
@@ -2591,12 +2687,12 @@ function parseParameter(ast) {
2591
2687
  };
2592
2688
  }
2593
2689
  /** @internal */
2594
- export function record(key, value, keyValueCombiner) {
2690
+ export function record(key, value) {
2595
2691
  const {
2596
2692
  literals,
2597
2693
  parameters: indexSignatures
2598
2694
  } = parseParameter(key);
2599
- return new Objects(literals.map(literal => new PropertySignature(literal, value)), indexSignatures.map(parameter => new IndexSignature(parameter, value, keyValueCombiner)));
2695
+ return new Objects(literals.map(literal => new PropertySignature(literal, value)), indexSignatures.map(parameter => new IndexSignature(parameter, value)));
2600
2696
  }
2601
2697
  // -------------------------------------------------------------------------------------
2602
2698
  // Public APIs
@@ -2644,12 +2740,12 @@ function extractStructuralChecks(checks) {
2644
2740
  *
2645
2741
  * **Example** (Getting the type AST)
2646
2742
  *
2647
- * ```ts
2743
+ * ```ts import.meta.vitest
2648
2744
  * import { Schema, SchemaAST } from "effect"
2649
2745
  *
2650
2746
  * const schema = Schema.NumberFromString
2651
2747
  * const typeAst = SchemaAST.toType(schema.ast)
2652
- * console.log(typeAst._tag) // "Number"
2748
+ * typeAst._tag // => "Number"
2653
2749
  * ```
2654
2750
  *
2655
2751
  * @see {@link toEncoded}
@@ -2686,12 +2782,12 @@ export const toType = /*#__PURE__*/memoize(ast => {
2686
2782
  *
2687
2783
  * **Example** (Getting the encoded AST)
2688
2784
  *
2689
- * ```ts
2785
+ * ```ts import.meta.vitest
2690
2786
  * import { Schema, SchemaAST } from "effect"
2691
2787
  *
2692
2788
  * const schema = Schema.NumberFromString
2693
2789
  * const encodedAst = SchemaAST.toEncoded(schema.ast)
2694
- * console.log(encodedAst._tag) // "String"
2790
+ * encodedAst._tag // => "String"
2695
2791
  * ```
2696
2792
  *
2697
2793
  * @see {@link toType}
@@ -2753,46 +2849,32 @@ export function containsUndefined(ast) {
2753
2849
  }
2754
2850
  }
2755
2851
  function fromConst(ast, value) {
2756
- const succeed = Effect.succeedSome(value);
2757
- return oinput => {
2758
- if (oinput._tag === "None") {
2759
- return Effect.succeedNone;
2760
- }
2761
- return oinput.value === value ? succeed : Effect.fail(new SchemaIssue.InvalidType(ast, oinput));
2852
+ const succeed = InternalParser.succeed(value);
2853
+ return input => {
2854
+ if (input === InternalParser.missing) return InternalParser.missingExit;
2855
+ return input === value ? succeed : Effect.fail(new SchemaIssue.InvalidType(ast));
2762
2856
  };
2763
2857
  }
2764
- function fromAnyToConst(value) {
2765
- const succeed = Effect.succeedSome(value);
2766
- return oinput => oinput._tag === "None" ? Effect.succeedNone : succeed;
2767
- }
2768
2858
  function fromRefinement(ast, refinement) {
2769
- return oinput => {
2770
- if (oinput._tag === "None") {
2771
- return Effect.succeedNone;
2772
- }
2773
- return refinement(oinput.value) ? Effect.succeed(oinput) : Effect.fail(new SchemaIssue.InvalidType(ast, oinput));
2859
+ return input => {
2860
+ if (input === InternalParser.missing) return InternalParser.missingExit;
2861
+ return refinement(input) ? InternalParser.sameExit : Effect.fail(new SchemaIssue.InvalidType(ast));
2774
2862
  };
2775
2863
  }
2776
- function applyTemplateLiteralPartChecks(ast, value, options) {
2777
- if (options?.disableChecks || ast.checks === undefined) return value;
2778
- const issues = [];
2779
- collectIssues(ast.checks, value, issues, ast, options);
2780
- return issues.length === 0 ? value : undefined;
2781
- }
2782
- function segmentTemplateLiteralParts(parts, input, options) {
2783
- const literals = parts.map(part => part._tag === "Literal" ? globalThis.String(part.literal) : undefined);
2784
- if (literals.some(literal => literal !== undefined && !input.includes(literal))) return undefined;
2785
- const minimumLengths = new Array(parts.length + 1);
2786
- minimumLengths[parts.length] = 0;
2787
- for (let i = parts.length - 1; i >= 0; i--) {
2788
- minimumLengths[i] = minimumLengths[i + 1] + (literals[i]?.length ?? 0);
2789
- }
2790
- if (minimumLengths[0] > input.length) return undefined;
2864
+ function segmentTemplateLiteralParts(ast, input, options) {
2865
+ const parts = ast.encodedParts;
2866
+ const literals = ast.literals;
2867
+ const inputLength = input.length;
2868
+ for (let i = 0; i < literals.length; i++) {
2869
+ const literal = literals[i];
2870
+ if (literal && !input.includes(literal)) return undefined;
2871
+ }
2872
+ if (ast.suffixLengths[0] > inputLength) return undefined;
2791
2873
  const out = new Array(parts.length);
2792
- const failures = parts.map(() => new Set());
2874
+ let failures;
2793
2875
  function go(i, pos) {
2794
- if (i === parts.length) return pos === input.length;
2795
- if (failures[i].has(pos)) return false;
2876
+ if (i === parts.length) return pos === inputLength;
2877
+ if (failures?.has(i * (inputLength + 1) + pos)) return false;
2796
2878
  const part = parts[i];
2797
2879
  if (i === parts.length - 1) {
2798
2880
  const s = input.slice(pos);
@@ -2807,7 +2889,7 @@ function segmentTemplateLiteralParts(parts, input, options) {
2807
2889
  return true;
2808
2890
  }
2809
2891
  } else {
2810
- const maximumEnd = input.length - minimumLengths[i + 1];
2892
+ const maximumEnd = inputLength - ast.suffixLengths[i + 1];
2811
2893
  // Splits preceding a literal only need to consider occurrences of that literal.
2812
2894
  const anchor = literals[i + 1];
2813
2895
  let end = anchor === undefined ? maximumEnd : input.lastIndexOf(anchor, maximumEnd);
@@ -2821,7 +2903,8 @@ function segmentTemplateLiteralParts(parts, input, options) {
2821
2903
  end = anchor === undefined ? end - 1 : input.lastIndexOf(anchor, end - 1);
2822
2904
  }
2823
2905
  }
2824
- failures[i].add(pos);
2906
+ failures ??= new Set();
2907
+ failures.add(i * (inputLength + 1) + pos);
2825
2908
  return false;
2826
2909
  }
2827
2910
  return go(0, 0) ? out : undefined;
@@ -2926,7 +3009,7 @@ const symbolToString = /*#__PURE__*/new Link(symbolString, /*#__PURE__*/new Sche
2926
3009
  if (key !== undefined) {
2927
3010
  return Effect.succeed(globalThis.String(sym));
2928
3011
  }
2929
- return Effect.fail(new SchemaIssue.Forbidden(Option.some(sym), {
3012
+ return Effect.fail(new SchemaIssue.Forbidden({
2930
3013
  message: "cannot serialize to string, Symbol is not registered"
2931
3014
  }));
2932
3015
  })));
@@ -2949,26 +3032,30 @@ export function collectIssues(checks, value, issues, ast, options) {
2949
3032
  for (let i = 0; i < checks.length; i++) {
2950
3033
  const check = checks[i];
2951
3034
  if (check._tag === "FilterGroup") {
2952
- collectIssues(check.checks, value, issues, ast, options);
3035
+ issues = collectIssues(check.checks, value, issues, ast, options);
3036
+ if (issues && (options.errors !== "all" || issues[issues.length - 1].filter.aborted)) {
3037
+ return issues;
3038
+ }
2953
3039
  } else {
2954
3040
  const issue = check.run(value, ast, options);
2955
3041
  if (issue) {
2956
- issues.push(new SchemaIssue.Filter(value, check, issue));
2957
- if (check.aborted || options?.errors !== "all") {
2958
- return;
3042
+ const filter = new SchemaIssue.Filter(check, issue);
3043
+ if (issues) issues.push(filter);else issues = [filter];
3044
+ if (options.errors !== "all" || check.aborted) {
3045
+ return issues;
2959
3046
  }
2960
3047
  }
2961
3048
  }
2962
3049
  }
3050
+ return issues;
2963
3051
  }
2964
3052
  /** @internal */
2965
3053
  export function runChecks(checks, s) {
2966
- const issues = [];
2967
- collectIssues(checks, s, issues, unknown, {
3054
+ const issues = collectIssues(checks, s, undefined, unknown, {
2968
3055
  errors: "all"
2969
3056
  });
2970
- if (Arr.isArrayNonEmpty(issues)) {
2971
- const issue = new SchemaIssue.Composite(unknown, Option.some(s), issues);
3057
+ if (issues) {
3058
+ const issue = new SchemaIssue.Composite(unknown, issues);
2972
3059
  return Result.fail(issue);
2973
3060
  }
2974
3061
  return Result.succeed(s);
@@ -2986,12 +3073,12 @@ export const ClassTypeId = "~effect/Schema/Class";
2986
3073
  *
2987
3074
  * **Example** (Reading annotations)
2988
3075
  *
2989
- * ```ts
3076
+ * ```ts import.meta.vitest
2990
3077
  * import { Schema, SchemaAST } from "effect"
2991
3078
  *
2992
3079
  * const schema = Schema.String.annotate({ title: "Name" })
2993
3080
  * const annotations = SchemaAST.resolve(schema.ast)
2994
- * console.log(annotations?.title) // "Name"
3081
+ * annotations?.title // => "Name"
2995
3082
  * ```
2996
3083
  *
2997
3084
  * @see {@link resolveAt}
@@ -3122,7 +3209,7 @@ export function isJson(u) {
3122
3209
  return isTree(u, isJsonLeaf);
3123
3210
  }
3124
3211
  /** @internal */
3125
- export const Json = /*#__PURE__*/new Declaration([], () => (input, ast) => isJson(input) ? Effect.succeed(input) : Effect.fail(new SchemaIssue.InvalidType(ast, Option.some(input))), {
3212
+ export const Json = /*#__PURE__*/new Declaration([], () => (input, ast) => isJson(input) ? InternalParser.sameExit : Effect.fail(new SchemaIssue.InvalidType(ast)), {
3126
3213
  representation: {
3127
3214
  id: "effect/schema/Json",
3128
3215
  payload: null
@@ -3142,7 +3229,7 @@ export const MutableJson = /*#__PURE__*/annotate(Json, {
3142
3229
  /** @internal */
3143
3230
  export const unknownToJson = /*#__PURE__*/new Link(Json, /*#__PURE__*/SchemaTransformation.passthrough());
3144
3231
  /** @internal */
3145
- export const objectKeywordToJson = /*#__PURE__*/new Link(/*#__PURE__*/new Union([/*#__PURE__*/new Arrays(false, [], [Json]), /*#__PURE__*/new Objects([], [/*#__PURE__*/new IndexSignature(string, Json, undefined)])], "anyOf"), /*#__PURE__*/SchemaTransformation.passthrough());
3232
+ export const objectKeywordToJson = /*#__PURE__*/new Link(/*#__PURE__*/new Union([/*#__PURE__*/new Arrays(false, [], [Json]), /*#__PURE__*/new Objects([], [/*#__PURE__*/new IndexSignature(string, Json)])], "anyOf"), /*#__PURE__*/SchemaTransformation.passthrough());
3146
3233
  /**
3147
3234
  * Returns true if the value is a StringTree value.
3148
3235
  *
@@ -3153,7 +3240,7 @@ export const objectKeywordToJson = /*#__PURE__*/new Link(/*#__PURE__*/new Union(
3153
3240
  export function isStringTree(u) {
3154
3241
  return isTree(u, isStringTreeLeaf);
3155
3242
  }
3156
- const StringTree = /*#__PURE__*/new Declaration([], () => (input, ast) => isStringTree(input) ? Effect.succeed(input) : Effect.fail(new SchemaIssue.InvalidType(ast, Option.some(input))), {
3243
+ const StringTree = /*#__PURE__*/new Declaration([], () => (input, ast) => isStringTree(input) ? InternalParser.sameExit : Effect.fail(new SchemaIssue.InvalidType(ast)), {
3157
3244
  expected: "StringTree",
3158
3245
  toCodecStringTree: () => undefined
3159
3246
  });