effect 3.10.18 → 3.11.0

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 (448) hide show
  1. package/dist/cjs/Array.js +206 -0
  2. package/dist/cjs/Array.js.map +1 -1
  3. package/dist/cjs/BigDecimal.js +181 -24
  4. package/dist/cjs/BigDecimal.js.map +1 -1
  5. package/dist/cjs/BigInt.js +54 -0
  6. package/dist/cjs/BigInt.js.map +1 -1
  7. package/dist/cjs/Boolean.js +24 -0
  8. package/dist/cjs/Boolean.js.map +1 -1
  9. package/dist/cjs/Brand.js +4 -0
  10. package/dist/cjs/Brand.js.map +1 -1
  11. package/dist/cjs/Channel.js +44 -4
  12. package/dist/cjs/Channel.js.map +1 -1
  13. package/dist/cjs/Chunk.js +8 -0
  14. package/dist/cjs/Chunk.js.map +1 -1
  15. package/dist/cjs/Config.js +10 -1
  16. package/dist/cjs/Config.js.map +1 -1
  17. package/dist/cjs/Context.js +50 -1
  18. package/dist/cjs/Context.js.map +1 -1
  19. package/dist/cjs/Cron.js +81 -67
  20. package/dist/cjs/Cron.js.map +1 -1
  21. package/dist/cjs/Data.js +14 -0
  22. package/dist/cjs/Data.js.map +1 -1
  23. package/dist/cjs/DateTime.js +178 -664
  24. package/dist/cjs/DateTime.js.map +1 -1
  25. package/dist/cjs/Duration.js +2 -0
  26. package/dist/cjs/Duration.js.map +1 -1
  27. package/dist/cjs/Effect.js +296 -4
  28. package/dist/cjs/Effect.js.map +1 -1
  29. package/dist/cjs/Either.js +38 -2
  30. package/dist/cjs/Either.js.map +1 -1
  31. package/dist/cjs/FiberHandle.js +6 -0
  32. package/dist/cjs/FiberHandle.js.map +1 -1
  33. package/dist/cjs/FiberMap.js +6 -0
  34. package/dist/cjs/FiberMap.js.map +1 -1
  35. package/dist/cjs/FiberSet.js +6 -0
  36. package/dist/cjs/FiberSet.js.map +1 -1
  37. package/dist/cjs/Function.js +34 -0
  38. package/dist/cjs/Function.js.map +1 -1
  39. package/dist/cjs/GlobalValue.js +2 -0
  40. package/dist/cjs/GlobalValue.js.map +1 -1
  41. package/dist/cjs/HashMap.js.map +1 -1
  42. package/dist/cjs/Inspectable.js +8 -4
  43. package/dist/cjs/Inspectable.js.map +1 -1
  44. package/dist/cjs/Iterable.js +18 -0
  45. package/dist/cjs/Iterable.js.map +1 -1
  46. package/dist/cjs/JSONSchema.js.map +1 -1
  47. package/dist/cjs/List.js +4 -0
  48. package/dist/cjs/List.js.map +1 -1
  49. package/dist/cjs/Logger.js +26 -0
  50. package/dist/cjs/Logger.js.map +1 -1
  51. package/dist/cjs/Mailbox.js +2 -0
  52. package/dist/cjs/Mailbox.js.map +1 -1
  53. package/dist/cjs/ManagedRuntime.js +2 -0
  54. package/dist/cjs/ManagedRuntime.js.map +1 -1
  55. package/dist/cjs/Metric.js +10 -0
  56. package/dist/cjs/Metric.js.map +1 -1
  57. package/dist/cjs/Micro.js +1104 -1069
  58. package/dist/cjs/Micro.js.map +1 -1
  59. package/dist/cjs/Number.js +44 -0
  60. package/dist/cjs/Number.js.map +1 -1
  61. package/dist/cjs/Option.js +70 -0
  62. package/dist/cjs/Option.js.map +1 -1
  63. package/dist/cjs/Order.js +2 -0
  64. package/dist/cjs/Order.js.map +1 -1
  65. package/dist/cjs/Ordering.js +4 -0
  66. package/dist/cjs/Ordering.js.map +1 -1
  67. package/dist/cjs/Predicate.js +68 -0
  68. package/dist/cjs/Predicate.js.map +1 -1
  69. package/dist/cjs/Random.js +4 -0
  70. package/dist/cjs/Random.js.map +1 -1
  71. package/dist/cjs/RateLimiter.js +4 -0
  72. package/dist/cjs/RateLimiter.js.map +1 -1
  73. package/dist/cjs/RcMap.js +2 -0
  74. package/dist/cjs/RcMap.js.map +1 -1
  75. package/dist/cjs/RcRef.js +2 -0
  76. package/dist/cjs/RcRef.js.map +1 -1
  77. package/dist/cjs/Record.js +56 -0
  78. package/dist/cjs/Record.js.map +1 -1
  79. package/dist/cjs/Redacted.js +8 -0
  80. package/dist/cjs/Redacted.js.map +1 -1
  81. package/dist/cjs/RegExp.js +4 -0
  82. package/dist/cjs/RegExp.js.map +1 -1
  83. package/dist/cjs/Request.js +4 -0
  84. package/dist/cjs/Request.js.map +1 -1
  85. package/dist/cjs/RequestResolver.js +2 -0
  86. package/dist/cjs/RequestResolver.js.map +1 -1
  87. package/dist/cjs/Runtime.js +6 -0
  88. package/dist/cjs/Runtime.js.map +1 -1
  89. package/dist/cjs/STM.js.map +1 -1
  90. package/dist/cjs/Schema.js +91 -8
  91. package/dist/cjs/Schema.js.map +1 -1
  92. package/dist/cjs/Sink.js +9 -1
  93. package/dist/cjs/Sink.js.map +1 -1
  94. package/dist/cjs/Stream.js +179 -7
  95. package/dist/cjs/Stream.js.map +1 -1
  96. package/dist/cjs/String.js +62 -0
  97. package/dist/cjs/String.js.map +1 -1
  98. package/dist/cjs/Struct.js +12 -0
  99. package/dist/cjs/Struct.js.map +1 -1
  100. package/dist/cjs/Symbol.js +2 -0
  101. package/dist/cjs/Symbol.js.map +1 -1
  102. package/dist/cjs/Trie.js +56 -0
  103. package/dist/cjs/Trie.js.map +1 -1
  104. package/dist/cjs/Tuple.js +18 -0
  105. package/dist/cjs/Tuple.js.map +1 -1
  106. package/dist/cjs/Utils.js +7 -1
  107. package/dist/cjs/Utils.js.map +1 -1
  108. package/dist/cjs/internal/channel/channelExecutor.js +5 -9
  109. package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
  110. package/dist/cjs/internal/channel.js +156 -130
  111. package/dist/cjs/internal/channel.js.map +1 -1
  112. package/dist/cjs/internal/config.js +13 -4
  113. package/dist/cjs/internal/config.js.map +1 -1
  114. package/dist/cjs/internal/context.js +46 -3
  115. package/dist/cjs/internal/context.js.map +1 -1
  116. package/dist/cjs/internal/dateTime.js +747 -0
  117. package/dist/cjs/internal/dateTime.js.map +1 -0
  118. package/dist/cjs/internal/fiberRuntime.js +34 -11
  119. package/dist/cjs/internal/fiberRuntime.js.map +1 -1
  120. package/dist/cjs/internal/groupBy.js +9 -3
  121. package/dist/cjs/internal/groupBy.js.map +1 -1
  122. package/dist/cjs/internal/layer.js +1 -1
  123. package/dist/cjs/internal/layer.js.map +1 -1
  124. package/dist/cjs/internal/mailbox.js +1 -1
  125. package/dist/cjs/internal/mailbox.js.map +1 -1
  126. package/dist/cjs/internal/sink.js +25 -21
  127. package/dist/cjs/internal/sink.js.map +1 -1
  128. package/dist/cjs/internal/stream.js +70 -71
  129. package/dist/cjs/internal/stream.js.map +1 -1
  130. package/dist/cjs/internal/version.js +1 -1
  131. package/dist/cjs/internal/version.js.map +1 -1
  132. package/dist/dts/Array.d.ts +534 -0
  133. package/dist/dts/Array.d.ts.map +1 -1
  134. package/dist/dts/BigDecimal.d.ts +172 -1
  135. package/dist/dts/BigDecimal.d.ts.map +1 -1
  136. package/dist/dts/BigInt.d.ts +114 -0
  137. package/dist/dts/BigInt.d.ts.map +1 -1
  138. package/dist/dts/Boolean.d.ts +56 -0
  139. package/dist/dts/Boolean.d.ts.map +1 -1
  140. package/dist/dts/Brand.d.ts +6 -0
  141. package/dist/dts/Brand.d.ts.map +1 -1
  142. package/dist/dts/Channel.d.ts +66 -5
  143. package/dist/dts/Channel.d.ts.map +1 -1
  144. package/dist/dts/Chunk.d.ts +30 -0
  145. package/dist/dts/Chunk.d.ts.map +1 -1
  146. package/dist/dts/Config.d.ts +25 -1
  147. package/dist/dts/Config.d.ts.map +1 -1
  148. package/dist/dts/Context.d.ts +155 -0
  149. package/dist/dts/Context.d.ts.map +1 -1
  150. package/dist/dts/Cron.d.ts +21 -6
  151. package/dist/dts/Cron.d.ts.map +1 -1
  152. package/dist/dts/Data.d.ts +26 -0
  153. package/dist/dts/Data.d.ts.map +1 -1
  154. package/dist/dts/DateTime.d.ts +192 -49
  155. package/dist/dts/DateTime.d.ts.map +1 -1
  156. package/dist/dts/Duration.d.ts +2 -0
  157. package/dist/dts/Duration.d.ts.map +1 -1
  158. package/dist/dts/Effect.d.ts +658 -1
  159. package/dist/dts/Effect.d.ts.map +1 -1
  160. package/dist/dts/Either.d.ts +84 -2
  161. package/dist/dts/Either.d.ts.map +1 -1
  162. package/dist/dts/FiberHandle.d.ts +6 -0
  163. package/dist/dts/FiberHandle.d.ts.map +1 -1
  164. package/dist/dts/FiberMap.d.ts +6 -0
  165. package/dist/dts/FiberMap.d.ts.map +1 -1
  166. package/dist/dts/FiberSet.d.ts +6 -0
  167. package/dist/dts/FiberSet.d.ts.map +1 -1
  168. package/dist/dts/Function.d.ts +50 -0
  169. package/dist/dts/Function.d.ts.map +1 -1
  170. package/dist/dts/GlobalValue.d.ts +2 -0
  171. package/dist/dts/GlobalValue.d.ts.map +1 -1
  172. package/dist/dts/HashMap.d.ts +6 -0
  173. package/dist/dts/HashMap.d.ts.map +1 -1
  174. package/dist/dts/Inspectable.d.ts.map +1 -1
  175. package/dist/dts/Iterable.d.ts +26 -0
  176. package/dist/dts/Iterable.d.ts.map +1 -1
  177. package/dist/dts/JSONSchema.d.ts +1 -0
  178. package/dist/dts/JSONSchema.d.ts.map +1 -1
  179. package/dist/dts/List.d.ts +20 -0
  180. package/dist/dts/List.d.ts.map +1 -1
  181. package/dist/dts/Logger.d.ts +34 -0
  182. package/dist/dts/Logger.d.ts.map +1 -1
  183. package/dist/dts/Mailbox.d.ts +2 -0
  184. package/dist/dts/Mailbox.d.ts.map +1 -1
  185. package/dist/dts/ManagedRuntime.d.ts +2 -0
  186. package/dist/dts/ManagedRuntime.d.ts.map +1 -1
  187. package/dist/dts/Metric.d.ts +18 -0
  188. package/dist/dts/Metric.d.ts.map +1 -1
  189. package/dist/dts/Micro.d.ts +880 -863
  190. package/dist/dts/Micro.d.ts.map +1 -1
  191. package/dist/dts/Number.d.ts +104 -0
  192. package/dist/dts/Number.d.ts.map +1 -1
  193. package/dist/dts/Option.d.ts +142 -0
  194. package/dist/dts/Option.d.ts.map +1 -1
  195. package/dist/dts/Order.d.ts +2 -0
  196. package/dist/dts/Order.d.ts.map +1 -1
  197. package/dist/dts/Ordering.d.ts +8 -0
  198. package/dist/dts/Ordering.d.ts.map +1 -1
  199. package/dist/dts/Predicate.d.ts +104 -0
  200. package/dist/dts/Predicate.d.ts.map +1 -1
  201. package/dist/dts/Random.d.ts +4 -0
  202. package/dist/dts/Random.d.ts.map +1 -1
  203. package/dist/dts/RateLimiter.d.ts +4 -0
  204. package/dist/dts/RateLimiter.d.ts.map +1 -1
  205. package/dist/dts/RcMap.d.ts +6 -0
  206. package/dist/dts/RcMap.d.ts.map +1 -1
  207. package/dist/dts/RcRef.d.ts +2 -0
  208. package/dist/dts/RcRef.d.ts.map +1 -1
  209. package/dist/dts/Record.d.ts +136 -0
  210. package/dist/dts/Record.d.ts.map +1 -1
  211. package/dist/dts/Redacted.d.ts +8 -0
  212. package/dist/dts/Redacted.d.ts.map +1 -1
  213. package/dist/dts/RegExp.d.ts +4 -0
  214. package/dist/dts/RegExp.d.ts.map +1 -1
  215. package/dist/dts/Request.d.ts +4 -0
  216. package/dist/dts/Request.d.ts.map +1 -1
  217. package/dist/dts/RequestResolver.d.ts +6 -0
  218. package/dist/dts/RequestResolver.d.ts.map +1 -1
  219. package/dist/dts/Runtime.d.ts +18 -0
  220. package/dist/dts/Runtime.d.ts.map +1 -1
  221. package/dist/dts/STM.d.ts +2 -0
  222. package/dist/dts/STM.d.ts.map +1 -1
  223. package/dist/dts/Schema.d.ts +90 -0
  224. package/dist/dts/Schema.d.ts.map +1 -1
  225. package/dist/dts/Sink.d.ts +8 -0
  226. package/dist/dts/Sink.d.ts.map +1 -1
  227. package/dist/dts/Stream.d.ts +394 -32
  228. package/dist/dts/Stream.d.ts.map +1 -1
  229. package/dist/dts/String.d.ts +94 -0
  230. package/dist/dts/String.d.ts.map +1 -1
  231. package/dist/dts/Struct.d.ts +24 -0
  232. package/dist/dts/Struct.d.ts.map +1 -1
  233. package/dist/dts/Symbol.d.ts +2 -0
  234. package/dist/dts/Symbol.d.ts.map +1 -1
  235. package/dist/dts/Trie.d.ts +132 -0
  236. package/dist/dts/Trie.d.ts.map +1 -1
  237. package/dist/dts/Tuple.d.ts +42 -0
  238. package/dist/dts/Tuple.d.ts.map +1 -1
  239. package/dist/dts/Types.d.ts +24 -0
  240. package/dist/dts/Types.d.ts.map +1 -1
  241. package/dist/dts/Utils.d.ts +4 -0
  242. package/dist/dts/Utils.d.ts.map +1 -1
  243. package/dist/dts/internal/context.d.ts +1 -1
  244. package/dist/dts/internal/context.d.ts.map +1 -1
  245. package/dist/dts/internal/dateTime.d.ts +2 -0
  246. package/dist/dts/internal/dateTime.d.ts.map +1 -0
  247. package/dist/dts/internal/fiberRuntime.d.ts.map +1 -1
  248. package/dist/dts/internal/stream.d.ts.map +1 -1
  249. package/dist/esm/Array.js +208 -0
  250. package/dist/esm/Array.js.map +1 -1
  251. package/dist/esm/BigDecimal.js +175 -20
  252. package/dist/esm/BigDecimal.js.map +1 -1
  253. package/dist/esm/BigInt.js +54 -0
  254. package/dist/esm/BigInt.js.map +1 -1
  255. package/dist/esm/Boolean.js +24 -0
  256. package/dist/esm/Boolean.js.map +1 -1
  257. package/dist/esm/Brand.js +4 -0
  258. package/dist/esm/Brand.js.map +1 -1
  259. package/dist/esm/Channel.js +42 -2
  260. package/dist/esm/Channel.js.map +1 -1
  261. package/dist/esm/Chunk.js +8 -0
  262. package/dist/esm/Chunk.js.map +1 -1
  263. package/dist/esm/Config.js +9 -0
  264. package/dist/esm/Config.js.map +1 -1
  265. package/dist/esm/Context.js +49 -0
  266. package/dist/esm/Context.js.map +1 -1
  267. package/dist/esm/Cron.js +81 -67
  268. package/dist/esm/Cron.js.map +1 -1
  269. package/dist/esm/Data.js +16 -0
  270. package/dist/esm/Data.js.map +1 -1
  271. package/dist/esm/DateTime.js +176 -627
  272. package/dist/esm/DateTime.js.map +1 -1
  273. package/dist/esm/Duration.js +2 -0
  274. package/dist/esm/Duration.js.map +1 -1
  275. package/dist/esm/Effect.js +297 -0
  276. package/dist/esm/Effect.js.map +1 -1
  277. package/dist/esm/Either.js +40 -2
  278. package/dist/esm/Either.js.map +1 -1
  279. package/dist/esm/FiberHandle.js +6 -0
  280. package/dist/esm/FiberHandle.js.map +1 -1
  281. package/dist/esm/FiberMap.js +6 -0
  282. package/dist/esm/FiberMap.js.map +1 -1
  283. package/dist/esm/FiberSet.js +6 -0
  284. package/dist/esm/FiberSet.js.map +1 -1
  285. package/dist/esm/Function.js +34 -0
  286. package/dist/esm/Function.js.map +1 -1
  287. package/dist/esm/GlobalValue.js +2 -0
  288. package/dist/esm/GlobalValue.js.map +1 -1
  289. package/dist/esm/HashMap.js.map +1 -1
  290. package/dist/esm/Inspectable.js +8 -4
  291. package/dist/esm/Inspectable.js.map +1 -1
  292. package/dist/esm/Iterable.js +18 -0
  293. package/dist/esm/Iterable.js.map +1 -1
  294. package/dist/esm/JSONSchema.js.map +1 -1
  295. package/dist/esm/List.js +4 -0
  296. package/dist/esm/List.js.map +1 -1
  297. package/dist/esm/Logger.js +26 -0
  298. package/dist/esm/Logger.js.map +1 -1
  299. package/dist/esm/Mailbox.js +2 -0
  300. package/dist/esm/Mailbox.js.map +1 -1
  301. package/dist/esm/ManagedRuntime.js +2 -0
  302. package/dist/esm/ManagedRuntime.js.map +1 -1
  303. package/dist/esm/Metric.js +10 -0
  304. package/dist/esm/Metric.js.map +1 -1
  305. package/dist/esm/Micro.js +1077 -1037
  306. package/dist/esm/Micro.js.map +1 -1
  307. package/dist/esm/Number.js +44 -0
  308. package/dist/esm/Number.js.map +1 -1
  309. package/dist/esm/Option.js +72 -0
  310. package/dist/esm/Option.js.map +1 -1
  311. package/dist/esm/Order.js +2 -0
  312. package/dist/esm/Order.js.map +1 -1
  313. package/dist/esm/Ordering.js +4 -0
  314. package/dist/esm/Ordering.js.map +1 -1
  315. package/dist/esm/Predicate.js +68 -0
  316. package/dist/esm/Predicate.js.map +1 -1
  317. package/dist/esm/Random.js +4 -0
  318. package/dist/esm/Random.js.map +1 -1
  319. package/dist/esm/RateLimiter.js +4 -0
  320. package/dist/esm/RateLimiter.js.map +1 -1
  321. package/dist/esm/RcMap.js +2 -0
  322. package/dist/esm/RcMap.js.map +1 -1
  323. package/dist/esm/RcRef.js +2 -0
  324. package/dist/esm/RcRef.js.map +1 -1
  325. package/dist/esm/Record.js +56 -0
  326. package/dist/esm/Record.js.map +1 -1
  327. package/dist/esm/Redacted.js +8 -0
  328. package/dist/esm/Redacted.js.map +1 -1
  329. package/dist/esm/RegExp.js +4 -0
  330. package/dist/esm/RegExp.js.map +1 -1
  331. package/dist/esm/Request.js +4 -0
  332. package/dist/esm/Request.js.map +1 -1
  333. package/dist/esm/RequestResolver.js +2 -0
  334. package/dist/esm/RequestResolver.js.map +1 -1
  335. package/dist/esm/Runtime.js +6 -0
  336. package/dist/esm/Runtime.js.map +1 -1
  337. package/dist/esm/STM.js.map +1 -1
  338. package/dist/esm/Schema.js +88 -0
  339. package/dist/esm/Schema.js.map +1 -1
  340. package/dist/esm/Sink.js +8 -0
  341. package/dist/esm/Sink.js.map +1 -1
  342. package/dist/esm/Stream.js +183 -5
  343. package/dist/esm/Stream.js.map +1 -1
  344. package/dist/esm/String.js +62 -0
  345. package/dist/esm/String.js.map +1 -1
  346. package/dist/esm/Struct.js +12 -0
  347. package/dist/esm/Struct.js.map +1 -1
  348. package/dist/esm/Symbol.js +2 -0
  349. package/dist/esm/Symbol.js.map +1 -1
  350. package/dist/esm/Trie.js +56 -0
  351. package/dist/esm/Trie.js.map +1 -1
  352. package/dist/esm/Tuple.js +22 -0
  353. package/dist/esm/Tuple.js.map +1 -1
  354. package/dist/esm/Utils.js +5 -0
  355. package/dist/esm/Utils.js.map +1 -1
  356. package/dist/esm/internal/channel/channelExecutor.js +5 -7
  357. package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
  358. package/dist/esm/internal/channel.js +152 -129
  359. package/dist/esm/internal/channel.js.map +1 -1
  360. package/dist/esm/internal/config.js +11 -3
  361. package/dist/esm/internal/config.js.map +1 -1
  362. package/dist/esm/internal/context.js +42 -2
  363. package/dist/esm/internal/context.js.map +1 -1
  364. package/dist/esm/internal/dateTime.js +704 -0
  365. package/dist/esm/internal/dateTime.js.map +1 -0
  366. package/dist/esm/internal/fiberRuntime.js +31 -9
  367. package/dist/esm/internal/fiberRuntime.js.map +1 -1
  368. package/dist/esm/internal/groupBy.js +9 -3
  369. package/dist/esm/internal/groupBy.js.map +1 -1
  370. package/dist/esm/internal/layer.js +1 -1
  371. package/dist/esm/internal/layer.js.map +1 -1
  372. package/dist/esm/internal/mailbox.js +1 -1
  373. package/dist/esm/internal/mailbox.js.map +1 -1
  374. package/dist/esm/internal/sink.js +23 -20
  375. package/dist/esm/internal/sink.js.map +1 -1
  376. package/dist/esm/internal/stream.js +66 -69
  377. package/dist/esm/internal/stream.js.map +1 -1
  378. package/dist/esm/internal/version.js +1 -1
  379. package/dist/esm/internal/version.js.map +1 -1
  380. package/package.json +1 -1
  381. package/src/Array.ts +534 -0
  382. package/src/BigDecimal.ts +247 -21
  383. package/src/BigInt.ts +114 -0
  384. package/src/Boolean.ts +56 -0
  385. package/src/Brand.ts +6 -0
  386. package/src/Channel.ts +81 -5
  387. package/src/Chunk.ts +32 -0
  388. package/src/Config.ts +26 -1
  389. package/src/Context.ts +163 -0
  390. package/src/Cron.ts +91 -68
  391. package/src/Data.ts +26 -0
  392. package/src/DateTime.ts +307 -757
  393. package/src/Duration.ts +2 -0
  394. package/src/Effect.ts +910 -1
  395. package/src/Either.ts +84 -2
  396. package/src/FiberHandle.ts +6 -0
  397. package/src/FiberMap.ts +6 -0
  398. package/src/FiberSet.ts +6 -0
  399. package/src/Function.ts +50 -0
  400. package/src/GlobalValue.ts +2 -0
  401. package/src/HashMap.ts +6 -0
  402. package/src/Inspectable.ts +11 -7
  403. package/src/Iterable.ts +26 -0
  404. package/src/JSONSchema.ts +1 -0
  405. package/src/List.ts +24 -0
  406. package/src/Logger.ts +34 -0
  407. package/src/Mailbox.ts +2 -0
  408. package/src/ManagedRuntime.ts +2 -0
  409. package/src/Metric.ts +18 -0
  410. package/src/Micro.ts +2007 -1745
  411. package/src/Number.ts +104 -0
  412. package/src/Option.ts +142 -0
  413. package/src/Order.ts +2 -0
  414. package/src/Ordering.ts +8 -0
  415. package/src/Predicate.ts +104 -0
  416. package/src/Random.ts +4 -0
  417. package/src/RateLimiter.ts +4 -0
  418. package/src/RcMap.ts +6 -0
  419. package/src/RcRef.ts +2 -0
  420. package/src/Record.ts +136 -0
  421. package/src/Redacted.ts +8 -0
  422. package/src/RegExp.ts +4 -0
  423. package/src/Request.ts +4 -0
  424. package/src/RequestResolver.ts +6 -0
  425. package/src/Runtime.ts +18 -0
  426. package/src/STM.ts +2 -0
  427. package/src/Schema.ts +124 -0
  428. package/src/Sink.ts +11 -0
  429. package/src/Stream.ts +399 -44
  430. package/src/String.ts +94 -0
  431. package/src/Struct.ts +24 -0
  432. package/src/Symbol.ts +2 -0
  433. package/src/Trie.ts +132 -0
  434. package/src/Tuple.ts +42 -0
  435. package/src/Types.ts +24 -0
  436. package/src/Utils.ts +8 -0
  437. package/src/internal/channel/channelExecutor.ts +37 -33
  438. package/src/internal/channel.ts +504 -467
  439. package/src/internal/config.ts +18 -6
  440. package/src/internal/context.ts +56 -4
  441. package/src/internal/dateTime.ts +1126 -0
  442. package/src/internal/fiberRuntime.ts +35 -16
  443. package/src/internal/groupBy.ts +13 -22
  444. package/src/internal/layer.ts +5 -8
  445. package/src/internal/mailbox.ts +6 -4
  446. package/src/internal/sink.ts +55 -35
  447. package/src/internal/stream.ts +299 -299
  448. package/src/internal/version.ts +1 -1
@@ -4,7 +4,7 @@ import * as Effect from "../../Effect.js";
4
4
  import * as ExecutionStrategy from "../../ExecutionStrategy.js";
5
5
  import * as Exit from "../../Exit.js";
6
6
  import * as Fiber from "../../Fiber.js";
7
- import { identity, pipe } from "../../Function.js";
7
+ import { dual, identity, pipe } from "../../Function.js";
8
8
  import * as Option from "../../Option.js";
9
9
  import * as Scope from "../../Scope.js";
10
10
  import * as core from "../core-stream.js";
@@ -648,18 +648,16 @@ export const readUpstream = (r, onSuccess, onFailure) => {
648
648
  return read();
649
649
  };
650
650
  /** @internal */
651
- export const run = self => pipe(runScoped(self), Effect.scoped);
652
- /** @internal */
653
- export const runScoped = self => {
654
- const run = (channelDeferred, scopeDeferred, scope) => Effect.acquireUseRelease(Effect.sync(() => new ChannelExecutor(self, void 0, identity)), exec => Effect.suspend(() => pipe(runScopedInterpret(exec.run(), exec), Effect.intoDeferred(channelDeferred), Effect.zipRight(Deferred.await(channelDeferred)), Effect.zipLeft(Deferred.await(scopeDeferred)))), (exec, exit) => {
651
+ export const runIn = /*#__PURE__*/dual(2, (self, scope) => {
652
+ const run = (channelDeferred, scopeDeferred, scope) => Effect.acquireUseRelease(Effect.sync(() => new ChannelExecutor(self, void 0, identity)), exec => Effect.suspend(() => runScopedInterpret(exec.run(), exec).pipe(Effect.intoDeferred(channelDeferred), Effect.zipRight(Deferred.await(channelDeferred)), Effect.zipLeft(Deferred.await(scopeDeferred)))), (exec, exit) => {
655
653
  const finalize = exec.close(exit);
656
654
  if (finalize === undefined) {
657
655
  return Effect.void;
658
656
  }
659
657
  return Effect.tapErrorCause(finalize, cause => Scope.addFinalizer(scope, Effect.failCause(cause)));
660
658
  });
661
- return Effect.uninterruptibleMask(restore => Effect.flatMap(Effect.scope, parent => pipe(Effect.all([Scope.fork(parent, ExecutionStrategy.sequential), Deferred.make(), Deferred.make()]), Effect.flatMap(([child, channelDeferred, scopeDeferred]) => pipe(Effect.forkScoped(restore(run(channelDeferred, scopeDeferred, child))), Effect.flatMap(fiber => pipe(Scope.addFinalizer(parent, Deferred.succeed(scopeDeferred, void 0).pipe(Effect.zipRight(Effect.yieldNow()))), Effect.zipRight(restore(Deferred.await(channelDeferred))), Effect.zipLeft(Fiber.inheritAll(fiber)))))))));
662
- };
659
+ return Effect.uninterruptibleMask(restore => Effect.all([Scope.fork(scope, ExecutionStrategy.sequential), Deferred.make(), Deferred.make()]).pipe(Effect.flatMap(([child, channelDeferred, scopeDeferred]) => restore(run(channelDeferred, scopeDeferred, child)).pipe(Effect.forkIn(scope), Effect.flatMap(fiber => scope.addFinalizer(() => Deferred.isDone(channelDeferred).pipe(Effect.flatMap(isDone => isDone ? Deferred.succeed(scopeDeferred, void 0).pipe(Effect.zipRight(Fiber.await(fiber)), Effect.zipRight(Fiber.inheritAll(fiber))) : Deferred.succeed(scopeDeferred, void 0).pipe(Effect.zipRight(Fiber.interrupt(fiber)), Effect.zipRight(Fiber.inheritAll(fiber)))))).pipe(Effect.zipRight(restore(Deferred.await(channelDeferred)))))))));
660
+ });
663
661
  /** @internal */
664
662
  const runScopedInterpret = (channelState, exec) => {
665
663
  const op = channelState;
@@ -1 +1 @@
1
- {"version":3,"file":"channelExecutor.js","names":["Cause","Deferred","Effect","ExecutionStrategy","Exit","Fiber","identity","pipe","Option","Scope","core","ChannelOpCodes","ChildExecutorDecisionOpCodes","ChannelStateOpCodes","UpstreamPullStrategyOpCodes","ContinuationOpCodes","ChannelState","Continuation","Subexecutor","upstreamPullRequest","ChannelExecutor","_activeSubexecutor","undefined","_cancelled","_closeLastSubstream","_currentChannel","_done","_doneStack","_emitted","_executeCloseLastSubstream","_input","_inProgressFinalizer","_providedEnv","constructor","initialChannel","providedEnv","executeCloseLastSubstream","run","result","processCancellation","runSubexecutor","Done","isEffect","fromEffect","_tag","OP_BRACKET_OUT","runBracketOut","OP_BRIDGE","bridgeInput","input","channel","inputExecutor","drainer","flatMap","awaitRead","suspend","state","OP_DONE","match","getDone","onFailure","cause","error","onSuccess","value","done","OP_EMIT","emit","getEmit","OP_FROM_EFFECT","matchCauseEffect","effect","OP_READ","readUpstream","forkDaemon","interruptible","fiber","sync","addFinalizer","exit","interrupt","restorePipe","void","OP_CONCAT_ALL","executor","prevLastClose","zipRight","PullFromUpstream","k","x","y","combineInners","combineAll","request","onPull","onEmit","out","Emit","OP_ENSURING","runEnsuring","OP_FAIL","doneHalt","OP_FOLD","push","provide","isFromEffect","doneSucceed","OP_PIPE_TO","previousInput","leftExec","left","right","OP_PROVIDE","previousEnv","context","inner","read","Read","emitted","more","onExit","die","OP_SUCCEED","evaluate","OP_SUCCEED_NOW","terminal","OP_SUSPEND","failCause","cancelWith","clearInProgressFinalizer","storeInProgressFinalizer","finalizer","popAllFinalizers","finalizers","next","pop","length","runFinalizers","popNextFinalizers","builder","cont","OP_CONTINUATION_K","prev","currInput","close","runInProgressFinalizers","ensuring","closeSelf","selfFinalizers","closeSubexecutors","ifNotNull","zip","map","exit1","exit2","exit3","uninterruptible","succeed","head","reverse","finalizerEffect","f","onHalt","bracketOut","acquire","write","ContinuationFinalizerImpl","subexecutor","OP_PULL_FROM_CHILD","pullFromChild","childExecutor","parentSubexecutor","OP_PULL_FROM_UPSTREAM","pullFromUpstream","OP_DRAIN_CHILD_EXECUTORS","drainChildExecutors","replaceSubexecutor","nextSubExec","finishWithExit","finishSubexecutorWithCloseEffect","subexecutorDone","closeFuncs","forEach","closeFunc","closeEffect","discard","applyUpstreamPullStrategy","upstreamFinished","queue","strategy","OP_PULL_AFTER_NEXT","shouldPrepend","some","emitSeparator","OP_PULL_AFTER_ALL_ENQUEUED","shouldEnqueue","onEmitted","childExecutorDecision","OP_CONTINUE","OP_CLOSE","finishWithDoneValue","OP_YIELD","modifiedParent","enqueuePullFromChild","handleSubexecutorFailure","effectOrUndefinedIgnored","doneValue","upstreamExecutor","createChild","lastDone","combineChildResults","activeChildExecutors","combineWithChildResult","DrainChildExecutors","upstreamDone","performPullFromUpstream","activeChild","slice","PullFromChild","closeLastSubstream","updatedChildExecutors","Pulled","isSome","drain","a","lastClose","rest","remainingExecutors","NoUpstream","reduce","n","curr","fin","exits","all","getOrElse","r","readStack","current","upstream","dieMessage","emitEffect","doneEffect","onDone","onEffect","catchAllCause","self","runScoped","scoped","channelDeferred","scopeDeferred","scope","acquireUseRelease","exec","runScopedInterpret","intoDeferred","await","zipLeft","finalize","tapErrorCause","uninterruptibleMask","restore","parent","fork","sequential","make","child","forkScoped","yieldNow","inheritAll","channelState","op"],"sources":["../../../../src/internal/channel/channelExecutor.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"channelExecutor.js","names":["Cause","Deferred","Effect","ExecutionStrategy","Exit","Fiber","dual","identity","pipe","Option","Scope","core","ChannelOpCodes","ChildExecutorDecisionOpCodes","ChannelStateOpCodes","UpstreamPullStrategyOpCodes","ContinuationOpCodes","ChannelState","Continuation","Subexecutor","upstreamPullRequest","ChannelExecutor","_activeSubexecutor","undefined","_cancelled","_closeLastSubstream","_currentChannel","_done","_doneStack","_emitted","_executeCloseLastSubstream","_input","_inProgressFinalizer","_providedEnv","constructor","initialChannel","providedEnv","executeCloseLastSubstream","run","result","processCancellation","runSubexecutor","Done","isEffect","fromEffect","_tag","OP_BRACKET_OUT","runBracketOut","OP_BRIDGE","bridgeInput","input","channel","inputExecutor","drainer","flatMap","awaitRead","suspend","state","OP_DONE","match","getDone","onFailure","cause","error","onSuccess","value","done","OP_EMIT","emit","getEmit","OP_FROM_EFFECT","matchCauseEffect","effect","OP_READ","readUpstream","forkDaemon","interruptible","fiber","sync","addFinalizer","exit","interrupt","restorePipe","void","OP_CONCAT_ALL","executor","prevLastClose","zipRight","PullFromUpstream","k","x","y","combineInners","combineAll","request","onPull","onEmit","out","Emit","OP_ENSURING","runEnsuring","OP_FAIL","doneHalt","OP_FOLD","push","provide","isFromEffect","doneSucceed","OP_PIPE_TO","previousInput","leftExec","left","right","OP_PROVIDE","previousEnv","context","inner","read","Read","emitted","more","onExit","die","OP_SUCCEED","evaluate","OP_SUCCEED_NOW","terminal","OP_SUSPEND","failCause","cancelWith","clearInProgressFinalizer","storeInProgressFinalizer","finalizer","popAllFinalizers","finalizers","next","pop","length","runFinalizers","popNextFinalizers","builder","cont","OP_CONTINUATION_K","prev","currInput","close","runInProgressFinalizers","ensuring","closeSelf","selfFinalizers","closeSubexecutors","ifNotNull","zip","map","exit1","exit2","exit3","uninterruptible","succeed","head","reverse","finalizerEffect","f","onHalt","bracketOut","acquire","write","ContinuationFinalizerImpl","subexecutor","OP_PULL_FROM_CHILD","pullFromChild","childExecutor","parentSubexecutor","OP_PULL_FROM_UPSTREAM","pullFromUpstream","OP_DRAIN_CHILD_EXECUTORS","drainChildExecutors","replaceSubexecutor","nextSubExec","finishWithExit","finishSubexecutorWithCloseEffect","subexecutorDone","closeFuncs","forEach","closeFunc","closeEffect","discard","applyUpstreamPullStrategy","upstreamFinished","queue","strategy","OP_PULL_AFTER_NEXT","shouldPrepend","some","emitSeparator","OP_PULL_AFTER_ALL_ENQUEUED","shouldEnqueue","onEmitted","childExecutorDecision","OP_CONTINUE","OP_CLOSE","finishWithDoneValue","OP_YIELD","modifiedParent","enqueuePullFromChild","handleSubexecutorFailure","effectOrUndefinedIgnored","doneValue","upstreamExecutor","createChild","lastDone","combineChildResults","activeChildExecutors","combineWithChildResult","DrainChildExecutors","upstreamDone","performPullFromUpstream","activeChild","slice","PullFromChild","closeLastSubstream","updatedChildExecutors","Pulled","isSome","drain","a","lastClose","rest","remainingExecutors","NoUpstream","reduce","n","curr","fin","exits","all","getOrElse","r","readStack","current","upstream","dieMessage","emitEffect","doneEffect","onDone","onEffect","catchAllCause","runIn","self","scope","channelDeferred","scopeDeferred","acquireUseRelease","exec","runScopedInterpret","intoDeferred","await","zipLeft","finalize","tapErrorCause","uninterruptibleMask","restore","fork","sequential","make","child","forkIn","isDone","inheritAll","channelState","op"],"sources":["../../../../src/internal/channel/channelExecutor.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,KAAK,MAAM,gBAAgB;AAIvC,OAAO,KAAKC,QAAQ,MAAM,mBAAmB;AAC7C,OAAO,KAAKC,MAAM,MAAM,iBAAiB;AACzC,OAAO,KAAKC,iBAAiB,MAAM,4BAA4B;AAC/D,OAAO,KAAKC,IAAI,MAAM,eAAe;AACrC,OAAO,KAAKC,KAAK,MAAM,gBAAgB;AACvC,SAASC,IAAI,EAAEC,QAAQ,EAAEC,IAAI,QAAQ,mBAAmB;AACxD,OAAO,KAAKC,MAAM,MAAM,iBAAiB;AACzC,OAAO,KAAKC,KAAK,MAAM,gBAAgB;AAEvC,OAAO,KAAKC,IAAI,MAAM,mBAAmB;AACzC,OAAO,KAAKC,cAAc,MAAM,uBAAuB;AACvD,OAAO,KAAKC,4BAA4B,MAAM,4CAA4C;AAC1F,OAAO,KAAKC,mBAAmB,MAAM,4BAA4B;AACjE,OAAO,KAAKC,2BAA2B,MAAM,2CAA2C;AACxF,OAAO,KAAKC,mBAAmB,MAAM,4BAA4B;AACjE,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AACjD,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AACjD,OAAO,KAAKC,WAAW,MAAM,kBAAkB;AAC/C,OAAO,KAAKC,mBAAmB,MAAM,0BAA0B;AAuB/D;AACA,OAAM,MAAOC,eAAe;EASlBC,kBAAkB,GAA6CC,SAAS;EAExEC,UAAU,GAA2CD,SAAS;EAE9DE,mBAAmB,GAAmDF,SAAS;EAE/EG,eAAe;EAEfC,KAAK,GAA4CJ,SAAS;EAE1DK,UAAU,GAAmC,EAAE;EAE/CC,QAAQ,GAAwBN,SAAS;EAEzCO,0BAA0B;EAI1BC,MAAM,GAAoCR,SAAS;EAEnDS,oBAAoB,GAAmDT,SAAS;EAEhFU,YAAY;EAEpBC,YACEC,cAAqF,EACrFC,WAAiD,EACjDC,yBAA6G;IAE7G,IAAI,CAACX,eAAe,GAAGS,cAAgC;IACvD,IAAI,CAACL,0BAA0B,GAAGO,yBAAyB;IAC3D,IAAI,CAACJ,YAAY,GAAGG,WAAW;EACjC;EAEAE,GAAGA,CAAA;IACD,IAAIC,MAAM,GAAwDhB,SAAS;IAC3E,OAAOgB,MAAM,KAAKhB,SAAS,EAAE;MAC3B,IAAI,IAAI,CAACC,UAAU,KAAKD,SAAS,EAAE;QACjCgB,MAAM,GAAG,IAAI,CAACC,mBAAmB,EAAE;MACrC,CAAC,MAAM,IAAI,IAAI,CAAClB,kBAAkB,KAAKC,SAAS,EAAE;QAChDgB,MAAM,GAAG,IAAI,CAACE,cAAc,EAAE;MAChC,CAAC,MAAM;QACL,IAAI;UACF,IAAI,IAAI,CAACf,eAAe,KAAKH,SAAS,EAAE;YACtCgB,MAAM,GAAGtB,YAAY,CAACyB,IAAI,EAAE;UAC9B,CAAC,MAAM;YACL,IAAIxC,MAAM,CAACyC,QAAQ,CAAC,IAAI,CAACjB,eAAe,CAAC,EAAE;cACzC,IAAI,CAACA,eAAe,GAAGf,IAAI,CAACiC,UAAU,CAAC,IAAI,CAAClB,eAAe,CAAmB;YAChF;YACA,QAAQ,IAAI,CAACA,eAAe,CAACmB,IAAI;cAC/B,KAAKjC,cAAc,CAACkC,cAAc;gBAAE;kBAClCP,MAAM,GAAG,IAAI,CAACQ,aAAa,CAAC,IAAI,CAACrB,eAAe,CAAC;kBACjD;gBACF;cAEA,KAAKd,cAAc,CAACoC,SAAS;gBAAE;kBAC7B,MAAMC,WAAW,GAAG,IAAI,CAACvB,eAAe,CAACwB,KAAK;kBAE9C;kBACA;kBACA;kBACA,IAAI,CAACxB,eAAe,GAAG,IAAI,CAACA,eAAe,CAACyB,OAAyB;kBAErE,IAAI,IAAI,CAACpB,MAAM,KAAKR,SAAS,EAAE;oBAC7B,MAAM6B,aAAa,GAAG,IAAI,CAACrB,MAAM;oBACjC,IAAI,CAACA,MAAM,GAAGR,SAAS;oBAEvB,MAAM8B,OAAO,GAAGA,CAAA,KACdnD,MAAM,CAACoD,OAAO,CAACL,WAAW,CAACM,SAAS,EAAE,EAAE,MACtCrD,MAAM,CAACsD,OAAO,CAAC,MAAK;sBAClB,MAAMC,KAAK,GAAGL,aAAa,CAACd,GAAG,EAA4B;sBAC3D,QAAQmB,KAAK,CAACZ,IAAI;wBAChB,KAAK/B,mBAAmB,CAAC4C,OAAO;0BAAE;4BAChC,OAAOtD,IAAI,CAACuD,KAAK,CAACP,aAAa,CAACQ,OAAO,EAAE,EAAE;8BACzCC,SAAS,EAAGC,KAAK,IAAKb,WAAW,CAACc,KAAK,CAACD,KAAK,CAAC;8BAC9CE,SAAS,EAAGC,KAAK,IAAKhB,WAAW,CAACiB,IAAI,CAACD,KAAK;6BAC7C,CAAC;0BACJ;wBACA,KAAKnD,mBAAmB,CAACqD,OAAO;0BAAE;4BAChC,OAAOjE,MAAM,CAACoD,OAAO,CACnBL,WAAW,CAACmB,IAAI,CAAChB,aAAa,CAACiB,OAAO,EAAE,CAAC,EACzC,MAAMhB,OAAO,EAAE,CAChB;0BACH;wBACA,KAAKvC,mBAAmB,CAACwD,cAAc;0BAAE;4BACvC,OAAOpE,MAAM,CAACqE,gBAAgB,CAACd,KAAK,CAACe,MAAM,EAAE;8BAC3CX,SAAS,EAAGC,KAAK,IAAKb,WAAW,CAACc,KAAK,CAACD,KAAK,CAAC;8BAC9CE,SAAS,EAAEA,CAAA,KAAMX,OAAO;6BACzB,CAAC;0BACJ;wBACA,KAAKvC,mBAAmB,CAAC2D,OAAO;0BAAE;4BAChC,OAAOC,YAAY,CACjBjB,KAAK,EACL,MAAMJ,OAAO,EAAE,EACdS,KAAK,IAAKb,WAAW,CAACc,KAAK,CAACD,KAAK,CAAC,CACpC;0BACH;sBACF;oBACF,CAAC,CAAC,CAAuC;oBAE7CvB,MAAM,GAAGtB,YAAY,CAAC2B,UAAU,CAC9B1C,MAAM,CAACoD,OAAO,CACZpD,MAAM,CAACyE,UAAU,CAACzE,MAAM,CAAC0E,aAAa,CAACvB,OAAO,EAAE,CAAC,CAAC,EACjDwB,KAAK,IACJ3E,MAAM,CAAC4E,IAAI,CAAC,MACV,IAAI,CAACC,YAAY,CAAEC,IAAI,IACrB9E,MAAM,CAACoD,OAAO,CAACjD,KAAK,CAAC4E,SAAS,CAACJ,KAAK,CAAC,EAAE,MACrC3E,MAAM,CAACsD,OAAO,CAAC,MAAK;sBAClB,MAAMgB,MAAM,GAAG,IAAI,CAACU,WAAW,CAACF,IAAI,EAAE5B,aAAa,CAAC;sBACpD,OAAOoB,MAAM,KAAKjD,SAAS,GAAGiD,MAAM,GAAGtE,MAAM,CAACiF,IAAI;oBACpD,CAAC,CAAC,CAAC,CACN,CACF,CACJ,CACF;kBACH;kBAEA;gBACF;cAEA,KAAKvE,cAAc,CAACwE,aAAa;gBAAE;kBACjC,MAAMC,QAAQ,GAAwB,IAAIhE,eAAe,CACvD,IAAI,CAACK,eAAe,CAACuC,KAAK,EAQzB,EACD,IAAI,CAAChC,YAAY,EAChBuC,MAAM,IACLtE,MAAM,CAAC4E,IAAI,CAAC,MAAK;oBACf,MAAMQ,aAAa,GAAG,IAAI,CAAC7D,mBAAmB,KAAKF,SAAS,GACxDrB,MAAM,CAACiF,IAAI,GACX,IAAI,CAAC1D,mBAAmB;oBAC5B,IAAI,CAACA,mBAAmB,GAAGjB,IAAI,CAAC8E,aAAa,EAAEpF,MAAM,CAACqF,QAAQ,CAACf,MAAM,CAAC,CAAC;kBACzE,CAAC,CAAC,CACL;kBACDa,QAAQ,CAACtD,MAAM,GAAG,IAAI,CAACA,MAAM;kBAE7B,MAAMoB,OAAO,GAAG,IAAI,CAACzB,eAAe;kBACpC,IAAI,CAACJ,kBAAkB,GAAG,IAAIH,WAAW,CAACqE,gBAAgB,CACxDH,QAAQ,EACPpB,KAAK,IAAKd,OAAO,CAACsC,CAAC,CAACxB,KAAK,CAAC,EAC3B1C,SAAS,EACT,EAAE,EACF,CAACmE,CAAC,EAAEC,CAAC,KAAKxC,OAAO,CAACyC,aAAa,CAACF,CAAC,EAAEC,CAAC,CAAC,EACrC,CAACD,CAAC,EAAEC,CAAC,KAAKxC,OAAO,CAAC0C,UAAU,CAACH,CAAC,EAAEC,CAAC,CAAC,EACjCG,OAAO,IAAK3C,OAAO,CAAC4C,MAAM,CAACD,OAAO,CAAC,EACnC7B,KAAK,IAAKd,OAAO,CAAC6C,MAAM,CAAC/B,KAAK,CAAC,CACjC;kBAED,IAAI,CAACxC,mBAAmB,GAAGF,SAAS;kBACpC,IAAI,CAACG,eAAe,GAAGH,SAAS;kBAEhC;gBACF;cAEA,KAAKX,cAAc,CAACuD,OAAO;gBAAE;kBAC3B,IAAI,CAACtC,QAAQ,GAAG,IAAI,CAACH,eAAe,CAACuE,GAAG;kBACxC,IAAI,CAACvE,eAAe,GAAI,IAAI,CAACJ,kBAAkB,KAAKC,SAAS,GAC3DA,SAAS,GACTZ,IAAI,CAACwE,IAAmC;kBAC1C5C,MAAM,GAAGtB,YAAY,CAACiF,IAAI,EAAE;kBAC5B;gBACF;cAEA,KAAKtF,cAAc,CAACuF,WAAW;gBAAE;kBAC/B,IAAI,CAACC,WAAW,CAAC,IAAI,CAAC1E,eAAe,CAAC;kBACtC;gBACF;cAEA,KAAKd,cAAc,CAACyF,OAAO;gBAAE;kBAC3B9D,MAAM,GAAG,IAAI,CAAC+D,QAAQ,CAAC,IAAI,CAAC5E,eAAe,CAACqC,KAAK,EAAE,CAAC;kBACpD;gBACF;cAEA,KAAKnD,cAAc,CAAC2F,OAAO;gBAAE;kBAC3B,IAAI,CAAC3E,UAAU,CAAC4E,IAAI,CAAC,IAAI,CAAC9E,eAAe,CAAC+D,CAA4B,CAAC;kBACvE,IAAI,CAAC/D,eAAe,GAAG,IAAI,CAACA,eAAe,CAACyB,OAAyB;kBACrE;gBACF;cAEA,KAAKvC,cAAc,CAAC0D,cAAc;gBAAE;kBAClC,MAAME,MAAM,GAAG,IAAI,CAACvC,YAAY,KAAKV,SAAS,GAC5C,IAAI,CAACG,eAAe,CAAC8C,MAAM,EAAE,GAC7BhE,IAAI,CACF,IAAI,CAACkB,eAAe,CAAC8C,MAAM,EAAE,EAC7BtE,MAAM,CAACuG,OAAO,CAAC,IAAI,CAACxE,YAAY,CAAC,CAClC;kBAEHM,MAAM,GAAGtB,YAAY,CAAC2B,UAAU,CAC9B1C,MAAM,CAACqE,gBAAgB,CAACC,MAAM,EAAE;oBAC9BX,SAAS,EAAGC,KAAK,IAAI;sBACnB,MAAML,KAAK,GAAG,IAAI,CAAC6C,QAAQ,CAACxC,KAAK,CAAC;sBAClC,OAAOL,KAAK,KAAKlC,SAAS,IAAIN,YAAY,CAACyF,YAAY,CAACjD,KAAK,CAAC,GAC5DA,KAAK,CAACe,MAAM,GACZtE,MAAM,CAACiF,IAAI;oBACf,CAAC;oBACDnB,SAAS,EAAGC,KAAK,IAAI;sBACnB,MAAMR,KAAK,GAAG,IAAI,CAACkD,WAAW,CAAC1C,KAAK,CAAC;sBACrC,OAAOR,KAAK,KAAKlC,SAAS,IAAIN,YAAY,CAACyF,YAAY,CAACjD,KAAK,CAAC,GAC5DA,KAAK,CAACe,MAAM,GACZtE,MAAM,CAACiF,IAAI;oBACf;mBACD,CAAC,CACoD;kBAExD;gBACF;cAEA,KAAKvE,cAAc,CAACgG,UAAU;gBAAE;kBAC9B,MAAMC,aAAa,GAAG,IAAI,CAAC9E,MAAM;kBAEjC,MAAM+E,QAAQ,GAAwB,IAAIzF,eAAe,CACvD,IAAI,CAACK,eAAe,CAACqF,IAAI,EAA0E,EACnG,IAAI,CAAC9E,YAAY,EAChBuC,MAAM,IAAK,IAAI,CAAC1C,0BAA0B,CAAC0C,MAAM,CAAC,CACpD;kBACDsC,QAAQ,CAAC/E,MAAM,GAAG8E,aAAa;kBAC/B,IAAI,CAAC9E,MAAM,GAAG+E,QAAQ;kBAEtB,IAAI,CAAC/B,YAAY,CAAEC,IAAI,IAAI;oBACzB,MAAMR,MAAM,GAAG,IAAI,CAACU,WAAW,CAACF,IAAI,EAAE6B,aAAa,CAAC;oBACpD,OAAOrC,MAAM,KAAKjD,SAAS,GAAGiD,MAAM,GAAGtE,MAAM,CAACiF,IAAI;kBACpD,CAAC,CAAC;kBAEF,IAAI,CAACzD,eAAe,GAAG,IAAI,CAACA,eAAe,CAACsF,KAAK,EAAoB;kBAErE;gBACF;cAEA,KAAKpG,cAAc,CAACqG,UAAU;gBAAE;kBAC9B,MAAMC,WAAW,GAAG,IAAI,CAACjF,YAAY;kBACrC,IAAI,CAACA,YAAY,GAAG,IAAI,CAACP,eAAe,CAACyF,OAAO,EAAE;kBAClD,IAAI,CAACzF,eAAe,GAAG,IAAI,CAACA,eAAe,CAAC0F,KAAuB;kBACnE,IAAI,CAACrC,YAAY,CAAC,MAChB7E,MAAM,CAAC4E,IAAI,CAAC,MAAK;oBACf,IAAI,CAAC7C,YAAY,GAAGiF,WAAW;kBACjC,CAAC,CAAC,CACH;kBACD;gBACF;cAEA,KAAKtG,cAAc,CAAC6D,OAAO;gBAAE;kBAC3B,MAAM4C,IAAI,GAAG,IAAI,CAAC3F,eAAe;kBACjCa,MAAM,GAAGtB,YAAY,CAACqG,IAAI,CACxB,IAAI,CAACvF,MAAO,EACZxB,QAAQ,EACPgH,OAAO,IAAI;oBACV,IAAI;sBACF,IAAI,CAAC7F,eAAe,GAAG2F,IAAI,CAACG,IAAI,CAACD,OAAO,CAAmB;oBAC7D,CAAC,CAAC,OAAOxD,KAAK,EAAE;sBACd,IAAI,CAACrC,eAAe,GAAG2F,IAAI,CAACnD,IAAI,CAACuD,MAAM,CAACrH,IAAI,CAACsH,GAAG,CAAC3D,KAAK,CAAC,CAAmB;oBAC5E;oBACA,OAAOxC,SAAS;kBAClB,CAAC,EACAyD,IAAI,IAAI;oBACP,MAAMyC,MAAM,GAAIzC,IAAiC,IAAoB;sBACnE,OAAOqC,IAAI,CAACnD,IAAI,CAACuD,MAAM,CAACzC,IAAI,CAAmB;oBACjD,CAAC;oBACD,IAAI,CAACtD,eAAe,GAAG+F,MAAM,CAACzC,IAAI,CAAC;oBACnC,OAAOzD,SAAS;kBAClB,CAAC,CACF;kBACD;gBACF;cAEA,KAAKX,cAAc,CAAC+G,UAAU;gBAAE;kBAC9BpF,MAAM,GAAG,IAAI,CAACoE,WAAW,CAAC,IAAI,CAACjF,eAAe,CAACkG,QAAQ,EAAE,CAAC;kBAC1D;gBACF;cAEA,KAAKhH,cAAc,CAACiH,cAAc;gBAAE;kBAClCtF,MAAM,GAAG,IAAI,CAACoE,WAAW,CAAC,IAAI,CAACjF,eAAe,CAACoG,QAAQ,CAAC;kBACxD;gBACF;cAEA,KAAKlH,cAAc,CAACmH,UAAU;gBAAE;kBAC9B,IAAI,CAACrG,eAAe,GAAG,IAAI,CAACA,eAAe,CAACyB,OAAO,EAAoB;kBACvE;gBACF;cAEA;gBAAS;kBACP;kBACA,IAAI,CAACzB,eAAe,CAACmB,IAAI;gBAC3B;YACF;UACF;QACF,CAAC,CAAC,OAAOkB,KAAK,EAAE;UACd,IAAI,CAACrC,eAAe,GAAGf,IAAI,CAACqH,SAAS,CAAChI,KAAK,CAAC0H,GAAG,CAAC3D,KAAK,CAAC,CAAmB;QAC3E;MACF;IACF;IACA,OAAOxB,MAAM;EACf;EAEAqB,OAAOA,CAAA;IACL,OAAO,IAAI,CAACjC,KAAmC;EACjD;EAEA0C,OAAOA,CAAA;IACL,OAAO,IAAI,CAACxC,QAAmB;EACjC;EAEAoG,UAAUA,CAACjD,IAAgC;IACzC,IAAI,CAACxD,UAAU,GAAGwD,IAAI;EACxB;EAEAkD,wBAAwBA,CAAA;IACtB,IAAI,CAAClG,oBAAoB,GAAGT,SAAS;EACvC;EAEA4G,wBAAwBA,CAACC,SAAyD;IAChF,IAAI,CAACpG,oBAAoB,GAAGoG,SAAS;EACvC;EAEAC,gBAAgBA,CAACrD,IAAiC;IAChD,MAAMsD,UAAU,GAAgC,EAAE;IAClD,IAAIC,IAAI,GAAG,IAAI,CAAC3G,UAAU,CAAC4G,GAAG,EAAwC;IACtE,OAAOD,IAAI,EAAE;MACX,IAAIA,IAAI,CAAC1F,IAAI,KAAK,uBAAuB,EAAE;QACzCyF,UAAU,CAAC9B,IAAI,CAAC+B,IAAI,CAACH,SAAiC,CAAC;MACzD;MACAG,IAAI,GAAG,IAAI,CAAC3G,UAAU,CAAC4G,GAAG,EAAwC;IACpE;IACA,MAAMhE,MAAM,GAAI8D,UAAU,CAACG,MAAM,KAAK,CAAC,GAAGvI,MAAM,CAACiF,IAAI,GAAGuD,aAAa,CAACJ,UAAU,EAAEtD,IAAI,CAIrF;IACD,IAAI,CAACmD,wBAAwB,CAAC3D,MAAM,CAAC;IACrC,OAAOA,MAAM;EACf;EAEAmE,iBAAiBA,CAAA;IACf,MAAMC,OAAO,GAAqE,EAAE;IACpF,OAAO,IAAI,CAAChH,UAAU,CAAC6G,MAAM,KAAK,CAAC,EAAE;MACnC,MAAMI,IAAI,GAAG,IAAI,CAACjH,UAAU,CAAC,IAAI,CAACA,UAAU,CAAC6G,MAAM,GAAG,CAAC,CAA2B;MAClF,IAAII,IAAI,CAAChG,IAAI,KAAK7B,mBAAmB,CAAC8H,iBAAiB,EAAE;QACvD,OAAOF,OAAO;MAChB;MACAA,OAAO,CAACpC,IAAI,CAACqC,IAAiE,CAAC;MAC/E,IAAI,CAACjH,UAAU,CAAC4G,GAAG,EAAE;IACvB;IACA,OAAOI,OAAO;EAChB;EAEA1D,WAAWA,CACTF,IAAiC,EACjC+D,IAAqC;IAErC,MAAMC,SAAS,GAAG,IAAI,CAACjH,MAAM;IAC7B,IAAI,CAACA,MAAM,GAAGgH,IAAI;IAClB,IAAIC,SAAS,KAAKzH,SAAS,EAAE;MAC3B,MAAMiD,MAAM,GAAGwE,SAAS,CAACC,KAAK,CAACjE,IAAI,CAAC;MACpC,OAAOR,MAAM;IACf;IACA,OAAOtE,MAAM,CAACiF,IAAI;EACpB;EAEA8D,KAAKA,CAACjE,IAAiC;IACrC,IAAIkE,uBAAuB,GAAmD3H,SAAS;IACvF,MAAM6G,SAAS,GAAG,IAAI,CAACpG,oBAAoB;IAC3C,IAAIoG,SAAS,KAAK7G,SAAS,EAAE;MAC3B2H,uBAAuB,GAAG1I,IAAI,CAC5B4H,SAAS,EACTlI,MAAM,CAACiJ,QAAQ,CAACjJ,MAAM,CAAC4E,IAAI,CAAC,MAAM,IAAI,CAACoD,wBAAwB,EAAE,CAAC,CAAC,CACpE;IACH;IAEA,IAAIkB,SAAS,GAAmD7H,SAAS;IACzE,MAAM8H,cAAc,GAAG,IAAI,CAAChB,gBAAgB,CAACrD,IAAI,CAAC;IAClD,IAAIqE,cAAc,KAAK9H,SAAS,EAAE;MAChC6H,SAAS,GAAG5I,IAAI,CACd6I,cAAc,EACdnJ,MAAM,CAACiJ,QAAQ,CAACjJ,MAAM,CAAC4E,IAAI,CAAC,MAAM,IAAI,CAACoD,wBAAwB,EAAE,CAAC,CAAC,CACpE;IACH;IAEA,MAAMoB,iBAAiB,GAAG,IAAI,CAAChI,kBAAkB,KAAKC,SAAS,GAC7DA,SAAS,GACT,IAAI,CAACD,kBAAkB,CAAC2H,KAAK,CAACjE,IAAI,CAAC;IAErC,IACEsE,iBAAiB,KAAK/H,SAAS,IAC/B2H,uBAAuB,KAAK3H,SAAS,IACrC6H,SAAS,KAAK7H,SAAS,EACvB;MACA,OAAOA,SAAS;IAClB;IAEA,OAAOf,IAAI,CACTN,MAAM,CAAC8E,IAAI,CAACuE,SAAS,CAACD,iBAAiB,CAAC,CAAC,EACzCpJ,MAAM,CAACsJ,GAAG,CAACtJ,MAAM,CAAC8E,IAAI,CAACuE,SAAS,CAACL,uBAAuB,CAAC,CAAC,CAAC,EAC3DhJ,MAAM,CAACsJ,GAAG,CAACtJ,MAAM,CAAC8E,IAAI,CAACuE,SAAS,CAACH,SAAS,CAAC,CAAC,CAAC,EAC7ClJ,MAAM,CAACuJ,GAAG,CAAC,CAAC,CAAC,CAACC,KAAK,EAAEC,KAAK,CAAC,EAAEC,KAAK,CAAC,KAAKpJ,IAAI,CAACkJ,KAAK,EAAEtJ,IAAI,CAACmF,QAAQ,CAACoE,KAAK,CAAC,EAAEvJ,IAAI,CAACmF,QAAQ,CAACqE,KAAK,CAAC,CAAC,CAAC,EAChG1J,MAAM,CAAC2J,eAAe;IACtB;IACA3J,MAAM,CAACoD,OAAO,CAAE0B,IAAI,IAAK9E,MAAM,CAACsD,OAAO,CAAC,MAAMwB,IAAI,CAAC,CAAC,CACrD;EACH;EAEA2B,WAAWA,CAAC1C,KAAc;IACxB,IAAI,IAAI,CAACrC,UAAU,CAAC6G,MAAM,KAAK,CAAC,EAAE;MAChC,IAAI,CAAC9G,KAAK,GAAGvB,IAAI,CAAC0J,OAAO,CAAC7F,KAAK,CAAC;MAChC,IAAI,CAACvC,eAAe,GAAGH,SAAS;MAChC,OAAON,YAAY,CAACyB,IAAI,EAAE;IAC5B;IAEA,MAAMqH,IAAI,GAAG,IAAI,CAACnI,UAAU,CAAC,IAAI,CAACA,UAAU,CAAC6G,MAAM,GAAG,CAAC,CAA2B;IAClF,IAAIsB,IAAI,CAAClH,IAAI,KAAK7B,mBAAmB,CAAC8H,iBAAiB,EAAE;MACvD,IAAI,CAAClH,UAAU,CAAC4G,GAAG,EAAE;MACrB,IAAI,CAAC9G,eAAe,GAAGqI,IAAI,CAAC/F,SAAS,CAACC,KAAK,CAAmB;MAC9D,OAAO1C,SAAS;IAClB;IAEA,MAAM+G,UAAU,GAAG,IAAI,CAACK,iBAAiB,EAAE;IAC3C,IAAI,IAAI,CAAC/G,UAAU,CAAC6G,MAAM,KAAK,CAAC,EAAE;MAChC,IAAI,CAAC7G,UAAU,GAAG0G,UAAU,CAAC0B,OAAO,EAAE;MACtC,IAAI,CAACrI,KAAK,GAAGvB,IAAI,CAAC0J,OAAO,CAAC7F,KAAK,CAAC;MAChC,IAAI,CAACvC,eAAe,GAAGH,SAAS;MAChC,OAAON,YAAY,CAACyB,IAAI,EAAE;IAC5B;IAEA,MAAMuH,eAAe,GAAGvB,aAAa,CAACJ,UAAU,CAACmB,GAAG,CAAES,CAAC,IAAKA,CAAC,CAAC9B,SAAS,CAAC,EAAEhI,IAAI,CAAC0J,OAAO,CAAC7F,KAAK,CAAC,CAAE;IAC/F,IAAI,CAACkE,wBAAwB,CAAC8B,eAAe,CAAC;IAE9C,MAAMzF,MAAM,GAAGhE,IAAI,CACjByJ,eAAe,EACf/J,MAAM,CAACiJ,QAAQ,CAACjJ,MAAM,CAAC4E,IAAI,CAAC,MAAM,IAAI,CAACoD,wBAAwB,EAAE,CAAC,CAAC,EACnEhI,MAAM,CAAC2J,eAAe,EACtB3J,MAAM,CAACoD,OAAO,CAAC,MAAMpD,MAAM,CAAC4E,IAAI,CAAC,MAAM,IAAI,CAAC6B,WAAW,CAAC1C,KAAK,CAAC,CAAC,CAAC,CACjE;IAED,OAAOhD,YAAY,CAAC2B,UAAU,CAAC4B,MAAM,CAAC;EACxC;EAEA8B,QAAQA,CAACxC,KAA2B;IAClC,IAAI,IAAI,CAAClC,UAAU,CAAC6G,MAAM,KAAK,CAAC,EAAE;MAChC,IAAI,CAAC9G,KAAK,GAAGvB,IAAI,CAAC4H,SAAS,CAAClE,KAAK,CAAC;MAClC,IAAI,CAACpC,eAAe,GAAGH,SAAS;MAChC,OAAON,YAAY,CAACyB,IAAI,EAAE;IAC5B;IAEA,MAAMqH,IAAI,GAAG,IAAI,CAACnI,UAAU,CAAC,IAAI,CAACA,UAAU,CAAC6G,MAAM,GAAG,CAAC,CAA2B;IAClF,IAAIsB,IAAI,CAAClH,IAAI,KAAK7B,mBAAmB,CAAC8H,iBAAiB,EAAE;MACvD,IAAI,CAAClH,UAAU,CAAC4G,GAAG,EAAE;MACrB,IAAI,CAAC9G,eAAe,GAAGqI,IAAI,CAACI,MAAM,CAACrG,KAAK,CAAmB;MAC3D,OAAOvC,SAAS;IAClB;IAEA,MAAM+G,UAAU,GAAG,IAAI,CAACK,iBAAiB,EAAE;IAC3C,IAAI,IAAI,CAAC/G,UAAU,CAAC6G,MAAM,KAAK,CAAC,EAAE;MAChC,IAAI,CAAC7G,UAAU,GAAG0G,UAAU,CAAC0B,OAAO,EAAE;MACtC,IAAI,CAACrI,KAAK,GAAGvB,IAAI,CAAC4H,SAAS,CAAClE,KAAK,CAAC;MAClC,IAAI,CAACpC,eAAe,GAAGH,SAAS;MAChC,OAAON,YAAY,CAACyB,IAAI,EAAE;IAC5B;IAEA,MAAMuH,eAAe,GAAGvB,aAAa,CAACJ,UAAU,CAACmB,GAAG,CAAES,CAAC,IAAKA,CAAC,CAAC9B,SAAS,CAAC,EAAEhI,IAAI,CAAC4H,SAAS,CAAClE,KAAK,CAAC,CAAE;IACjG,IAAI,CAACqE,wBAAwB,CAAC8B,eAAe,CAAC;IAE9C,MAAMzF,MAAM,GAAGhE,IAAI,CACjByJ,eAAe,EACf/J,MAAM,CAACiJ,QAAQ,CAACjJ,MAAM,CAAC4E,IAAI,CAAC,MAAM,IAAI,CAACoD,wBAAwB,EAAE,CAAC,CAAC,EACnEhI,MAAM,CAAC2J,eAAe,EACtB3J,MAAM,CAACoD,OAAO,CAAC,MAAMpD,MAAM,CAAC4E,IAAI,CAAC,MAAM,IAAI,CAACwB,QAAQ,CAACxC,KAAK,CAAC,CAAC,CAAC,CAC9D;IAED,OAAO7C,YAAY,CAAC2B,UAAU,CAAC4B,MAAM,CAAC;EACxC;EAEAhC,mBAAmBA,CAAA;IACjB,IAAI,CAACd,eAAe,GAAGH,SAAS;IAChC,IAAI,CAACI,KAAK,GAAG,IAAI,CAACH,UAAU;IAC5B,IAAI,CAACA,UAAU,GAAGD,SAAS;IAC3B,OAAON,YAAY,CAACyB,IAAI,EAAE;EAC5B;EAEAK,aAAaA,CAACqH,UAA2B;IACvC,MAAM5F,MAAM,GAAGtE,MAAM,CAAC2J,eAAe,CACnC3J,MAAM,CAACqE,gBAAgB,CAAC,IAAI,CAACkC,OAAO,CAAC2D,UAAU,CAACC,OAAO,EAAyC,CAAC,EAAE;MACjGxG,SAAS,EAAGC,KAAK,IACf5D,MAAM,CAAC4E,IAAI,CAAC,MAAK;QACf,IAAI,CAACpD,eAAe,GAAGf,IAAI,CAACqH,SAAS,CAAClE,KAAK,CAAmB;MAChE,CAAC,CAAC;MACJE,SAAS,EAAGiC,GAAG,IACb/F,MAAM,CAAC4E,IAAI,CAAC,MAAK;QACf,IAAI,CAACC,YAAY,CAAEC,IAAI,IACrB,IAAI,CAACyB,OAAO,CAAC2D,UAAU,CAAChC,SAAS,CAACnC,GAAG,EAAEjB,IAAI,CAAC,CAAuC,CACpF;QACD,IAAI,CAACtD,eAAe,GAAGf,IAAI,CAAC2J,KAAK,CAACrE,GAAG,CAAmB;MAC1D,CAAC;KACJ,CAAC,CACH;IACD,OAAOhF,YAAY,CAAC2B,UAAU,CAAC4B,MAAM,CAA4C;EACnF;EAEAiC,OAAOA,CAACjC,MAAgD;IACtD,IAAI,IAAI,CAACvC,YAAY,KAAKV,SAAS,EAAE;MACnC,OAAOiD,MAAM;IACf;IACA,OAAOhE,IAAI,CAACgE,MAAM,EAAEtE,MAAM,CAACuG,OAAO,CAAC,IAAI,CAACxE,YAAY,CAAC,CAAC;EACxD;EAEAmE,WAAWA,CAAC+C,QAAuB;IACjC,IAAI,CAACpE,YAAY,CAACoE,QAAQ,CAACf,SAAiC,CAAC;IAC7D,IAAI,CAAC1G,eAAe,GAAGyH,QAAQ,CAAChG,OAAyB;EAC3D;EAEA4B,YAAYA,CAACmF,CAAuB;IAClC,IAAI,CAACtI,UAAU,CAAC4E,IAAI,CAAC,IAAItF,YAAY,CAACqJ,yBAAyB,CAACL,CAAC,CAAC,CAAC;EACrE;EAEAzH,cAAcA,CAAA;IACZ,MAAM+H,WAAW,GAAG,IAAI,CAAClJ,kBAAgD;IACzE,QAAQkJ,WAAW,CAAC3H,IAAI;MACtB,KAAK1B,WAAW,CAACsJ,kBAAkB;QAAE;UACnC,OAAO,IAAI,CAACC,aAAa,CACvBF,WAAW,CAACG,aAAa,EACzBH,WAAW,CAACI,iBAAiB,EAC7BJ,WAAW,CAACxE,MAAM,EAClBwE,WAAW,CACZ;QACH;MACA,KAAKrJ,WAAW,CAAC0J,qBAAqB;QAAE;UACtC,OAAO,IAAI,CAACC,gBAAgB,CAACN,WAAW,CAAC;QAC3C;MACA,KAAKrJ,WAAW,CAAC4J,wBAAwB;QAAE;UACzC,OAAO,IAAI,CAACC,mBAAmB,CAACR,WAAW,CAAC;QAC9C;MACA,KAAKrJ,WAAW,CAACgD,OAAO;QAAE;UACxB,IAAI,CAACtC,QAAQ,GAAG2I,WAAW,CAACvG,KAAK;UACjC,IAAI,CAAC3C,kBAAkB,GAAGkJ,WAAW,CAACjC,IAAI;UAC1C,OAAOtH,YAAY,CAACiF,IAAI,EAAE;QAC5B;IACF;EACF;EAEA+E,kBAAkBA,CAACC,WAAyC;IAC1D,IAAI,CAACxJ,eAAe,GAAGH,SAAS;IAChC,IAAI,CAACD,kBAAkB,GAAG4J,WAAW;EACvC;EAEAC,cAAcA,CAACnG,IAAiC;IAC9C,MAAMvB,KAAK,GAAGrD,IAAI,CAACuD,KAAK,CAACqB,IAAI,EAAE;MAC7BnB,SAAS,EAAGC,KAAK,IAAK,IAAI,CAACwC,QAAQ,CAACxC,KAAK,CAAC;MAC1CE,SAAS,EAAGC,KAAK,IAAK,IAAI,CAAC0C,WAAW,CAAC1C,KAAK;KAC7C,CAAC;IACF,IAAI,CAAC3C,kBAAkB,GAAGC,SAAS;IACnC,OAAOkC,KAAK,KAAKlC,SAAS,GACxBrB,MAAM,CAACiF,IAAI,GACXlE,YAAY,CAACuD,MAAM,CAACf,KAAK,CAAC;EAC9B;EAEA2H,gCAAgCA,CAC9BC,eAA4C,EAC5C,GAAGC,UAAwG;IAE3G,IAAI,CAACvG,YAAY,CAAC,MAChBvE,IAAI,CACF8K,UAAU,EACVpL,MAAM,CAACqL,OAAO,CAAEC,SAAS,IACvBhL,IAAI,CACFN,MAAM,CAAC4E,IAAI,CAAC,MAAM0G,SAAS,CAACH,eAAe,CAAC,CAAC,EAC7CnL,MAAM,CAACoD,OAAO,CAAEmI,WAAW,IAAKA,WAAW,KAAKlK,SAAS,GAAGkK,WAAW,GAAGvL,MAAM,CAACiF,IAAI,CAAC,CACvF,EAAE;MAAEuG,OAAO,EAAE;IAAI,CAAE,CAAC,CACxB,CACF;IACD,MAAMjI,KAAK,GAAGjD,IAAI,CAChB6K,eAAe,EACfjL,IAAI,CAACuD,KAAK,CAAC;MACTE,SAAS,EAAGC,KAAK,IAAK,IAAI,CAACwC,QAAQ,CAACxC,KAAK,CAAC;MAC1CE,SAAS,EAAGC,KAAK,IAAK,IAAI,CAAC0C,WAAW,CAAC1C,KAAK;KAC7C,CAAC,CACH;IACD,IAAI,CAAC3C,kBAAkB,GAAGC,SAAS;IACnC,OAAOkC,KAAK;EACd;EAEAkI,yBAAyBA,CACvBC,gBAAyB,EACzBC,KAAgE,EAChEC,QAA4D;IAE5D,QAAQA,QAAQ,CAACjJ,IAAI;MACnB,KAAK9B,2BAA2B,CAACgL,kBAAkB;QAAE;UACnD,MAAMC,aAAa,GAAG,CAACJ,gBAAgB,IAAIC,KAAK,CAACI,IAAI,CAAEzB,WAAW,IAAKA,WAAW,KAAKjJ,SAAS,CAAC;UACjG,OAAO,CAACuK,QAAQ,CAACI,aAAa,EAAEF,aAAa,GAAG,CAACzK,SAAS,EAAE,GAAGsK,KAAK,CAAC,GAAGA,KAAK,CAAC;QAChF;MACA,KAAK9K,2BAA2B,CAACoL,0BAA0B;QAAE;UAC3D,MAAMC,aAAa,GAAG,CAACR,gBAAgB,IAAIC,KAAK,CAACI,IAAI,CAAEzB,WAAW,IAAKA,WAAW,KAAKjJ,SAAS,CAAC;UACjG,OAAO,CAACuK,QAAQ,CAACI,aAAa,EAAEE,aAAa,GAAG,CAAC,GAAGP,KAAK,EAAEtK,SAAS,CAAC,GAAGsK,KAAK,CAAC;QAChF;IACF;EACF;EAEAnB,aAAaA,CACXC,aAAkC,EAClCC,iBAA+C,EAC/CyB,SAA4E,EAC5E7B,WAA2C;IAE3C,OAAOvJ,YAAY,CAACqG,IAAI,CACtBqD,aAAa,EACbpK,QAAQ,EACPgH,OAAO,IAAI;MACV,MAAM+E,qBAAqB,GAAGD,SAAS,CAAC9E,OAAO,CAAC;MAChD,QAAQ+E,qBAAqB,CAACzJ,IAAI;QAChC,KAAKhC,4BAA4B,CAAC0L,WAAW;UAAE;YAC7C;UACF;QACA,KAAK1L,4BAA4B,CAAC2L,QAAQ;UAAE;YAC1C,IAAI,CAACC,mBAAmB,CAAC9B,aAAa,EAAEC,iBAAiB,EAAE0B,qBAAqB,CAACrI,KAAK,CAAC;YACvF;UACF;QACA,KAAKpD,4BAA4B,CAAC6L,QAAQ;UAAE;YAC1C,MAAMC,cAAc,GAAG/B,iBAAiB,CAACgC,oBAAoB,CAACpC,WAAW,CAAC;YAC1E,IAAI,CAACS,kBAAkB,CAAC0B,cAAc,CAAC;YACvC;UACF;MACF;MACA,IAAI,CAACrL,kBAAkB,GAAG,IAAIH,WAAW,CAAC+E,IAAI,CAACqB,OAAO,EAAE,IAAI,CAACjG,kBAAmB,CAAC;MACjF,OAAOC,SAAS;IAClB,CAAC,EACDnB,IAAI,CAACuD,KAAK,CAAC;MACTE,SAAS,EAAGC,KAAK,IAAI;QACnB,MAAML,KAAK,GAAG,IAAI,CAACoJ,wBAAwB,CAAClC,aAAa,EAAEC,iBAAiB,EAAE9G,KAAK,CAAC;QACpF,OAAOL,KAAK,KAAKlC,SAAS,GACxBA,SAAS,GACTN,YAAY,CAAC6L,wBAAwB,CAACrJ,KAAK,CAAoC;MACnF,CAAC;MACDO,SAAS,EAAG+I,SAAS,IAAI;QACvB,IAAI,CAACN,mBAAmB,CAAC9B,aAAa,EAAEC,iBAAiB,EAAEmC,SAAS,CAAC;QACrE,OAAOxL,SAAS;MAClB;KACD,CAAC,CACH;EACH;EAEAkL,mBAAmBA,CACjB9B,aAAkC,EAClCC,iBAA+C,EAC/CmC,SAAkB;IAElB,MAAMvC,WAAW,GAAGI,iBAA+C;IACnE,QAAQJ,WAAW,CAAC3H,IAAI;MACtB,KAAK1B,WAAW,CAAC0J,qBAAqB;QAAE;UACtC,MAAM8B,cAAc,GAAG,IAAIxL,WAAW,CAACqE,gBAAgB,CACrDgF,WAAW,CAACwC,gBAAgB,EAC5BxC,WAAW,CAACyC,WAAW,EACvBzC,WAAW,CAAC0C,QAAQ,KAAK3L,SAAS,GAC9BiJ,WAAW,CAAC2C,mBAAmB,CAC/B3C,WAAW,CAAC0C,QAAQ,EACpBH,SAAS,CACV,GACCA,SAAS,EACbvC,WAAW,CAAC4C,oBAAoB,EAChC5C,WAAW,CAAC2C,mBAAmB,EAC/B3C,WAAW,CAAC6C,sBAAsB,EAClC7C,WAAW,CAACzE,MAAM,EAClByE,WAAW,CAACxE,MAAM,CACnB;UACD,IAAI,CAACvE,mBAAmB,GAAGkJ,aAAa,CAAC1B,KAAK,CAAC7I,IAAI,CAAC0J,OAAO,CAACiD,SAAS,CAAC,CAAC;UACvE,IAAI,CAAC9B,kBAAkB,CAAC0B,cAAc,CAAC;UACvC;QACF;MACA,KAAKxL,WAAW,CAAC4J,wBAAwB;QAAE;UACzC,MAAM4B,cAAc,GAAG,IAAIxL,WAAW,CAACmM,mBAAmB,CACxD9C,WAAW,CAACwC,gBAAgB,EAC5BxC,WAAW,CAAC0C,QAAQ,KAAK3L,SAAS,GAC9BiJ,WAAW,CAAC2C,mBAAmB,CAC/B3C,WAAW,CAAC0C,QAAQ,EACpBH,SAAS,CACV,GACCA,SAAS,EACbvC,WAAW,CAAC4C,oBAAoB,EAChC5C,WAAW,CAAC+C,YAAY,EACxB/C,WAAW,CAAC2C,mBAAmB,EAC/B3C,WAAW,CAAC6C,sBAAsB,EAClC7C,WAAW,CAACzE,MAAM,CACnB;UACD,IAAI,CAACtE,mBAAmB,GAAGkJ,aAAa,CAAC1B,KAAK,CAAC7I,IAAI,CAAC0J,OAAO,CAACiD,SAAS,CAAC,CAAC;UACvE,IAAI,CAAC9B,kBAAkB,CAAC0B,cAAc,CAAC;UACvC;QACF;MACA;QAAS;UACP;QACF;IACF;EACF;EAEAE,wBAAwBA,CACtBlC,aAAkC,EAClCC,iBAA+C,EAC/C9G,KAA2B;IAE3B,OAAO,IAAI,CAACsH,gCAAgC,CAC1ChL,IAAI,CAAC4H,SAAS,CAAClE,KAAK,CAAC,EACpBkB,IAAI,IAAK4F,iBAAiB,CAAC3B,KAAK,CAACjE,IAAI,CAAC,EACtCA,IAAI,IAAK2F,aAAa,CAAC1B,KAAK,CAACjE,IAAI,CAAC,CACpC;EACH;EAEA8F,gBAAgBA,CACdN,WAA8C;IAE9C,IAAIA,WAAW,CAAC4C,oBAAoB,CAAC3E,MAAM,KAAK,CAAC,EAAE;MACjD,OAAO,IAAI,CAAC+E,uBAAuB,CAAChD,WAAW,CAAC;IAClD;IAEA,MAAMiD,WAAW,GAAGjD,WAAW,CAAC4C,oBAAoB,CAAC,CAAC,CAAC;IAEvD,MAAMxC,iBAAiB,GAAG,IAAIzJ,WAAW,CAACqE,gBAAgB,CACxDgF,WAAW,CAACwC,gBAAgB,EAC5BxC,WAAW,CAACyC,WAAW,EACvBzC,WAAW,CAAC0C,QAAQ,EACpB1C,WAAW,CAAC4C,oBAAoB,CAACM,KAAK,CAAC,CAAC,CAAC,EACzClD,WAAW,CAAC2C,mBAAmB,EAC/B3C,WAAW,CAAC6C,sBAAsB,EAClC7C,WAAW,CAACzE,MAAM,EAClByE,WAAW,CAACxE,MAAM,CACnB;IAED,IAAIyH,WAAW,KAAKlM,SAAS,EAAE;MAC7B,OAAO,IAAI,CAACiM,uBAAuB,CAAC5C,iBAAiB,CAAC;IACxD;IAEA,IAAI,CAACK,kBAAkB,CACrB,IAAI9J,WAAW,CAACwM,aAAa,CAC3BF,WAAW,CAAC9C,aAAa,EACzBC,iBAAiB,EACjB6C,WAAW,CAACzH,MAAM,CACnB,CACF;IAED,OAAOzE,SAAS;EAClB;EAEAiM,uBAAuBA,CACrBhD,WAA8C;IAE9C,OAAOvJ,YAAY,CAACqG,IAAI,CACtBkD,WAAW,CAACwC,gBAAgB,EAC3BxI,MAAM,IAAI;MACT,MAAMoJ,kBAAkB,GAAG,IAAI,CAACnM,mBAAmB,KAAKF,SAAS,GAAGrB,MAAM,CAACiF,IAAI,GAAG,IAAI,CAAC1D,mBAAmB;MAC1G,IAAI,CAACA,mBAAmB,GAAGF,SAAS;MACpC,OAAOf,IAAI,CACT,IAAI,CAACsB,0BAA0B,CAAC8L,kBAAkB,CAAC,EACnD1N,MAAM,CAACqF,QAAQ,CAACf,MAAM,CAAC,CACxB;IACH,CAAC,EACA+C,OAAO,IAAI;MACV,IAAI,IAAI,CAAC9F,mBAAmB,KAAKF,SAAS,EAAE;QAC1C,MAAMqM,kBAAkB,GAAG,IAAI,CAACnM,mBAAmB;QACnD,IAAI,CAACA,mBAAmB,GAAGF,SAAS;QACpC,OAAOf,IAAI,CACT,IAAI,CAACsB,0BAA0B,CAAC8L,kBAAkB,CAAC,EACnD1N,MAAM,CAACuJ,GAAG,CAAC,MAAK;UACd,MAAMkB,aAAa,GAAwB,IAAItJ,eAAe,CAC5DmJ,WAAW,CAACyC,WAAW,CAAC1F,OAAO,CAAC,EAChC,IAAI,CAACtF,YAAY,EACjB,IAAI,CAACH,0BAA0B,CAChC;UAED6I,aAAa,CAAC5I,MAAM,GAAG,IAAI,CAACA,MAAM;UAElC,MAAM,CAACmK,aAAa,EAAE2B,qBAAqB,CAAC,GAAG,IAAI,CAAClC,yBAAyB,CAC3E,KAAK,EACLnB,WAAW,CAAC4C,oBAAoB,EAChC5C,WAAW,CAACzE,MAAM,CAAC3E,mBAAmB,CAAC0M,MAAM,CAACvG,OAAO,CAAC,CAAC,CACxD;UAED,IAAI,CAACjG,kBAAkB,GAAG,IAAIH,WAAW,CAACwM,aAAa,CACrDhD,aAAa,EACb,IAAIxJ,WAAW,CAACqE,gBAAgB,CAC9BgF,WAAW,CAACwC,gBAAgB,EAC5BxC,WAAW,CAACyC,WAAW,EACvBzC,WAAW,CAAC0C,QAAQ,EACpBW,qBAAqB,EACrBrD,WAAW,CAAC2C,mBAAmB,EAC/B3C,WAAW,CAAC6C,sBAAsB,EAClC7C,WAAW,CAACzE,MAAM,EAClByE,WAAW,CAACxE,MAAM,CACnB,EACDwE,WAAW,CAACxE,MAAM,CACnB;UAED,IAAIvF,MAAM,CAACsN,MAAM,CAAC7B,aAAa,CAAC,EAAE;YAChC,IAAI,CAAC5K,kBAAkB,GAAG,IAAIH,WAAW,CAAC+E,IAAI,CAACgG,aAAa,CAACjI,KAAK,EAAE,IAAI,CAAC3C,kBAAkB,CAAC;UAC9F;UAEA,OAAOC,SAAS;QAClB,CAAC,CAAC,CACH;MACH;MAEA,MAAMoJ,aAAa,GAAwB,IAAItJ,eAAe,CAC5DmJ,WAAW,CAACyC,WAAW,CAAC1F,OAAO,CAAC,EAChC,IAAI,CAACtF,YAAY,EACjB,IAAI,CAACH,0BAA0B,CAChC;MAED6I,aAAa,CAAC5I,MAAM,GAAG,IAAI,CAACA,MAAM;MAElC,MAAM,CAACmK,aAAa,EAAE2B,qBAAqB,CAAC,GAAG,IAAI,CAAClC,yBAAyB,CAC3E,KAAK,EACLnB,WAAW,CAAC4C,oBAAoB,EAChC5C,WAAW,CAACzE,MAAM,CAAC3E,mBAAmB,CAAC0M,MAAM,CAACvG,OAAO,CAAC,CAAC,CACxD;MAED,IAAI,CAACjG,kBAAkB,GAAG,IAAIH,WAAW,CAACwM,aAAa,CACrDhD,aAAa,EACb,IAAIxJ,WAAW,CAACqE,gBAAgB,CAC9BgF,WAAW,CAACwC,gBAAgB,EAC5BxC,WAAW,CAACyC,WAAW,EACvBzC,WAAW,CAAC0C,QAAQ,EACpBW,qBAAqB,EACrBrD,WAAW,CAAC2C,mBAAmB,EAC/B3C,WAAW,CAAC6C,sBAAsB,EAClC7C,WAAW,CAACzE,MAAM,EAClByE,WAAW,CAACxE,MAAM,CACnB,EACDwE,WAAW,CAACxE,MAAM,CACnB;MAED,IAAIvF,MAAM,CAACsN,MAAM,CAAC7B,aAAa,CAAC,EAAE;QAChC,IAAI,CAAC5K,kBAAkB,GAAG,IAAIH,WAAW,CAAC+E,IAAI,CAACgG,aAAa,CAACjI,KAAK,EAAE,IAAI,CAAC3C,kBAAkB,CAAC;MAC9F;MAEA,OAAOC,SAAS;IAClB,CAAC,EACAyD,IAAI,IAAI;MACP,IAAIwF,WAAW,CAAC4C,oBAAoB,CAACnB,IAAI,CAAEzB,WAAW,IAAKA,WAAW,KAAKjJ,SAAS,CAAC,EAAE;QACrF,MAAMyM,KAAK,GAAG,IAAI7M,WAAW,CAACmM,mBAAmB,CAC/C9C,WAAW,CAACwC,gBAAgB,EAC5BxC,WAAW,CAAC0C,QAAQ,EACpB,CAAC3L,SAAS,EAAE,GAAGiJ,WAAW,CAAC4C,oBAAoB,CAAC,EAChD5C,WAAW,CAACwC,gBAAgB,CAACpJ,OAAO,EAAE,EACtC4G,WAAW,CAAC2C,mBAAmB,EAC/B3C,WAAW,CAAC6C,sBAAsB,EAClC7C,WAAW,CAACzE,MAAM,CACnB;QAED,IAAI,IAAI,CAACtE,mBAAmB,KAAKF,SAAS,EAAE;UAC1C,MAAMqM,kBAAkB,GAAG,IAAI,CAACnM,mBAAmB;UACnD,IAAI,CAACA,mBAAmB,GAAGF,SAAS;UACpC,OAAOf,IAAI,CACT,IAAI,CAACsB,0BAA0B,CAAC8L,kBAAkB,CAAC,EACnD1N,MAAM,CAACuJ,GAAG,CAAC,MAAM,IAAI,CAACwB,kBAAkB,CAAC+C,KAAK,CAAC,CAAC,CACjD;QACH;QAEA,IAAI,CAAC/C,kBAAkB,CAAC+C,KAAK,CAAC;QAE9B,OAAOzM,SAAS;MAClB;MAEA,MAAMqM,kBAAkB,GAAG,IAAI,CAACnM,mBAAmB;MACnD,MAAMgC,KAAK,GAAG,IAAI,CAAC2H,gCAAgC,CACjD5K,IAAI,CAACwE,IAAI,EAAE5E,IAAI,CAACqJ,GAAG,CAAEwE,CAAC,IAAKzD,WAAW,CAAC6C,sBAAsB,CAAC7C,WAAW,CAAC0C,QAAQ,EAAEe,CAAC,CAAC,CAAC,CAAC,EACxF,MAAML,kBAAkB,EACvB5I,IAAI,IAAKwF,WAAW,CAACwC,gBAAgB,CAAC/D,KAAK,CAACjE,IAAI,CAAC,CACnD;MACD,OAAOvB,KAAK,KAAKlC,SAAS,GACxBA,SAAS;MACT;MACAN,YAAY,CAAC6L,wBAAwB,CAACrJ,KAA8C,CAAC;IACzF,CAAC,CACF;EACH;EAEAuH,mBAAmBA,CACjBR,WAAiD;IAEjD,IAAIA,WAAW,CAAC4C,oBAAoB,CAAC3E,MAAM,KAAK,CAAC,EAAE;MACjD,MAAMyF,SAAS,GAAG,IAAI,CAACzM,mBAAmB;MAC1C,IAAIyM,SAAS,KAAK3M,SAAS,EAAE;QAC3B,IAAI,CAACwD,YAAY,CAAC,MAAM7E,MAAM,CAAC4J,OAAO,CAACoE,SAAS,CAAC,CAAC;MACpD;MACA,OAAO,IAAI,CAAC9C,gCAAgC,CAC1CZ,WAAW,CAAC+C,YAAY,EACxB,MAAMW,SAAS,EACdlJ,IAAI,IAAKwF,WAAW,CAACwC,gBAAgB,CAAC/D,KAAK,CAACjE,IAAI,CAAC,CACnD;IACH;IAEA,MAAMyI,WAAW,GAAGjD,WAAW,CAAC4C,oBAAoB,CAAC,CAAC,CAAC;IACvD,MAAMe,IAAI,GAAG3D,WAAW,CAAC4C,oBAAoB,CAACM,KAAK,CAAC,CAAC,CAAC;IAEtD,IAAID,WAAW,KAAKlM,SAAS,EAAE;MAC7B,MAAM,CAAC2K,aAAa,EAAEkC,kBAAkB,CAAC,GAAG,IAAI,CAACzC,yBAAyB,CACxE,IAAI,EACJwC,IAAI,EACJ3D,WAAW,CAACzE,MAAM,CAChB3E,mBAAmB,CAACiN,UAAU,CAACF,IAAI,CAACG,MAAM,CAAC,CAACC,CAAC,EAAEC,IAAI,KAAKA,IAAI,KAAKjN,SAAS,GAAGgN,CAAC,GAAG,CAAC,GAAGA,CAAC,EAAE,CAAC,CAAC,CAAC,CAC5F,CACF;MAED,IAAI,CAACtD,kBAAkB,CACrB,IAAI9J,WAAW,CAACmM,mBAAmB,CACjC9C,WAAW,CAACwC,gBAAgB,EAC5BxC,WAAW,CAAC0C,QAAQ,EACpBkB,kBAAkB,EAClB5D,WAAW,CAAC+C,YAAY,EACxB/C,WAAW,CAAC2C,mBAAmB,EAC/B3C,WAAW,CAAC6C,sBAAsB,EAClC7C,WAAW,CAACzE,MAAM,CACnB,CACF;MAED,IAAItF,MAAM,CAACsN,MAAM,CAAC7B,aAAa,CAAC,EAAE;QAChC,IAAI,CAACrK,QAAQ,GAAGqK,aAAa,CAACjI,KAAK;QACnC,OAAOhD,YAAY,CAACiF,IAAI,EAAE;MAC5B;MAEA,OAAO3E,SAAS;IAClB;IAEA,MAAMqJ,iBAAiB,GAAG,IAAIzJ,WAAW,CAACmM,mBAAmB,CAC3D9C,WAAW,CAACwC,gBAAgB,EAC5BxC,WAAW,CAAC0C,QAAQ,EACpBiB,IAAI,EACJ3D,WAAW,CAAC+C,YAAY,EACxB/C,WAAW,CAAC2C,mBAAmB,EAC/B3C,WAAW,CAAC6C,sBAAsB,EAClC7C,WAAW,CAACzE,MAAM,CACnB;IAED,IAAI,CAACkF,kBAAkB,CACrB,IAAI9J,WAAW,CAACwM,aAAa,CAC3BF,WAAW,CAAC9C,aAAa,EACzBC,iBAAiB,EACjB6C,WAAW,CAACzH,MAAM,CACnB,CACF;IAED,OAAOzE,SAAS;EAClB;;AAGF,MAAMgI,SAAS,GAAS/E,MAAsD,IAC5EA,MAAM,KAAKjD,SAAS,GAAGiD,MAAM,GAAGtE,MAAM,CAACiF,IAAI;AAE7C,MAAMuD,aAAa,GAAGA,CACpBJ,UAAuC,EACvCtD,IAAiC,KACK;EACtC,OAAOxE,IAAI,CACTN,MAAM,CAACqL,OAAO,CAACjD,UAAU,EAAGmG,GAAG,IAAKvO,MAAM,CAAC8E,IAAI,CAACyJ,GAAG,CAACzJ,IAAI,CAAC,CAAC,CAAC,EAC3D9E,MAAM,CAACuJ,GAAG,CAAEiF,KAAK,IAAKlO,IAAI,CAACJ,IAAI,CAACuO,GAAG,CAACD,KAAK,CAAC,EAAEjO,MAAM,CAACmO,SAAS,CAAC,MAAMxO,IAAI,CAAC+E,IAAI,CAAC,CAAC,CAAC,EAC/EjF,MAAM,CAACoD,OAAO,CAAE0B,IAAI,IAAK9E,MAAM,CAACsD,OAAO,CAAC,MAAMwB,IAA0B,CAAC,CAAC,CAC3E;AACH,CAAC;AAED;;;AAGA,OAAO,MAAMN,YAAY,GAAGA,CAC1BmK,CAAoB,EACpB7K,SAAwC,EACxCH,SAA6D,KAClC;EAC3B,MAAMiL,SAAS,GAAG,CAACD,CAAsB,CAAC;EAC1C,MAAMxH,IAAI,GAAGA,CAAA,KAA8B;IACzC,MAAM0H,OAAO,GAAGD,SAAS,CAACtG,GAAG,EAAE;IAC/B,IAAIuG,OAAO,KAAKxN,SAAS,IAAIwN,OAAO,CAACC,QAAQ,KAAKzN,SAAS,EAAE;MAC3D,OAAOrB,MAAM,CAAC+O,UAAU,CAAC,+CAA+C,CAAC;IAC3E;IACA,MAAMxL,KAAK,GAAGsL,OAAO,CAACC,QAAQ,CAAC1M,GAAG,EAA4B;IAC9D,QAAQmB,KAAK,CAACZ,IAAI;MAChB,KAAK/B,mBAAmB,CAACqD,OAAO;QAAE;UAChC,MAAM+K,UAAU,GAAGH,OAAO,CAAC/I,MAAM,CAAC+I,OAAO,CAACC,QAAQ,CAAC3K,OAAO,EAAE,CAAC;UAC7D,IAAIyK,SAAS,CAACrG,MAAM,KAAK,CAAC,EAAE;YAC1B,IAAIyG,UAAU,KAAK3N,SAAS,EAAE;cAC5B,OAAOrB,MAAM,CAACsD,OAAO,CAACQ,SAAS,CAAC;YAClC;YACA,OAAOxD,IAAI,CACT0O,UAAiC,EACjChP,MAAM,CAACqE,gBAAgB,CAAC;cAAEV,SAAS;cAAEG;YAAS,CAAE,CAAC,CAClD;UACH;UACA,IAAIkL,UAAU,KAAK3N,SAAS,EAAE;YAC5B,OAAOrB,MAAM,CAACsD,OAAO,CAAC,MAAM6D,IAAI,EAAE,CAAC;UACrC;UACA,OAAO7G,IAAI,CACT0O,UAAiC,EACjChP,MAAM,CAACqE,gBAAgB,CAAC;YAAEV,SAAS;YAAEG,SAAS,EAAEA,CAAA,KAAMqD,IAAI;UAAE,CAAE,CAAC,CAChE;QACH;MAEA,KAAKvG,mBAAmB,CAAC4C,OAAO;QAAE;UAChC,MAAMyL,UAAU,GAAGJ,OAAO,CAACK,MAAM,CAACL,OAAO,CAACC,QAAQ,CAACpL,OAAO,EAAE,CAAC;UAC7D,IAAIkL,SAAS,CAACrG,MAAM,KAAK,CAAC,EAAE;YAC1B,IAAI0G,UAAU,KAAK5N,SAAS,EAAE;cAC5B,OAAOrB,MAAM,CAACsD,OAAO,CAACQ,SAAS,CAAC;YAClC;YACA,OAAOxD,IAAI,CACT2O,UAAiC,EACjCjP,MAAM,CAACqE,gBAAgB,CAAC;cAAEV,SAAS;cAAEG;YAAS,CAAE,CAAC,CAClD;UACH;UACA,IAAImL,UAAU,KAAK5N,SAAS,EAAE;YAC5B,OAAOrB,MAAM,CAACsD,OAAO,CAAC,MAAM6D,IAAI,EAAE,CAAC;UACrC;UACA,OAAO7G,IAAI,CACT2O,UAAiC,EACjCjP,MAAM,CAACqE,gBAAgB,CAAC;YAAEV,SAAS;YAAEG,SAAS,EAAEA,CAAA,KAAMqD,IAAI;UAAE,CAAE,CAAC,CAChE;QACH;MAEA,KAAKvG,mBAAmB,CAACwD,cAAc;QAAE;UACvCwK,SAAS,CAACtI,IAAI,CAACuI,OAAO,CAAC;UACvB,OAAOvO,IAAI,CACTuO,OAAO,CAACM,QAAQ,CAAC5L,KAAK,CAACe,MAA6B,CAAwB,EAC5EtE,MAAM,CAACoP,aAAa,CAAExL,KAAK,IACzB5D,MAAM,CAACsD,OAAO,CAAC,MAAK;YAClB,MAAM2L,UAAU,GAAGJ,OAAO,CAACK,MAAM,CAAChP,IAAI,CAAC4H,SAAS,CAAClE,KAAK,CAAC,CAAwB;YAC/E,OAAOqL,UAAU,KAAK5N,SAAS,GAAGrB,MAAM,CAACiF,IAAI,GAAGgK,UAAU;UAC5D,CAAC,CAAC,CACH,EACDjP,MAAM,CAACqE,gBAAgB,CAAC;YAAEV,SAAS;YAAEG,SAAS,EAAEA,CAAA,KAAMqD,IAAI;UAAE,CAAE,CAAC,CAChE;QACH;MAEA,KAAKvG,mBAAmB,CAAC2D,OAAO;QAAE;UAChCqK,SAAS,CAACtI,IAAI,CAACuI,OAAO,CAAC;UACvBD,SAAS,CAACtI,IAAI,CAAC/C,KAAK,CAAC;UACrB,OAAOvD,MAAM,CAACsD,OAAO,CAAC,MAAM6D,IAAI,EAAE,CAAC;QACrC;IACF;EACF,CAAC;EACD,OAAOA,IAAI,EAAE;AACf,CAAC;AAED;AACA,OAAO,MAAMkI,KAAK,gBAAGjP,IAAI,CAQvB,CAAC,EAAE,CACHkP,IAA0E,EAC1EC,KAAkB,KAChB;EACF,MAAMnN,GAAG,GAAGA,CACVoN,eAAmD,EACnDC,aAAsC,EACtCF,KAAkB,KAElBvP,MAAM,CAAC0P,iBAAiB,CACtB1P,MAAM,CAAC4E,IAAI,CAAC,MAAM,IAAIzD,eAAe,CAACmO,IAAI,EAAE,KAAK,CAAC,EAAEjP,QAAQ,CAAC,CAAC,EAC7DsP,IAAI,IACH3P,MAAM,CAACsD,OAAO,CAAC,MACbsM,kBAAkB,CAACD,IAAI,CAACvN,GAAG,EAA4C,EAAEuN,IAAI,CAAC,CAACrP,IAAI,CACjFN,MAAM,CAAC6P,YAAY,CAACL,eAAe,CAAC,EACpCxP,MAAM,CAACqF,QAAQ,CAACtF,QAAQ,CAAC+P,KAAK,CAACN,eAAe,CAAC,CAAC,EAChDxP,MAAM,CAAC+P,OAAO,CAAChQ,QAAQ,CAAC+P,KAAK,CAACL,aAAa,CAAC,CAAC,CAC9C,CACF,EACH,CAACE,IAAI,EAAE7K,IAAI,KAAI;IACb,MAAMkL,QAAQ,GAAGL,IAAI,CAAC5G,KAAK,CAACjE,IAAI,CAAC;IACjC,IAAIkL,QAAQ,KAAK3O,SAAS,EAAE;MAC1B,OAAOrB,MAAM,CAACiF,IAAI;IACpB;IACA,OAAOjF,MAAM,CAACiQ,aAAa,CACzBD,QAAQ,EACPpM,KAAK,IAAKpD,KAAK,CAACqE,YAAY,CAAC0K,KAAK,EAAEvP,MAAM,CAAC8H,SAAS,CAAClE,KAAK,CAAC,CAAC,CAC9D;EACH,CAAC,CACF;EACH,OAAO5D,MAAM,CAACkQ,mBAAmB,CAAEC,OAAO,IACxCnQ,MAAM,CAACyO,GAAG,CAAC,CACTjO,KAAK,CAAC4P,IAAI,CAACb,KAAK,EAAEtP,iBAAiB,CAACoQ,UAAU,CAAC,EAC/CtQ,QAAQ,CAACuQ,IAAI,EAAmB,EAChCvQ,QAAQ,CAACuQ,IAAI,EAAQ,CACtB,CAAC,CAAChQ,IAAI,CAACN,MAAM,CAACoD,OAAO,CAAC,CAAC,CAACmN,KAAK,EAAEf,eAAe,EAAEC,aAAa,CAAC,KAC7DU,OAAO,CAAC/N,GAAG,CAACoN,eAAe,EAAEC,aAAa,EAAEc,KAAK,CAAC,CAAC,CAACjQ,IAAI,CACtDN,MAAM,CAACwQ,MAAM,CAACjB,KAAK,CAAC,EACpBvP,MAAM,CAACoD,OAAO,CAAEuB,KAAK,IACnB4K,KAAK,CAAC1K,YAAY,CAAC,MACjB9E,QAAQ,CAAC0Q,MAAM,CAACjB,eAAe,CAAC,CAAClP,IAAI,CACnCN,MAAM,CAACoD,OAAO,CAAEqN,MAAM,IACpBA,MAAM,GACF1Q,QAAQ,CAAC6J,OAAO,CAAC6F,aAAa,EAAE,KAAK,CAAC,CAAC,CAACnP,IAAI,CAC5CN,MAAM,CAACqF,QAAQ,CAAClF,KAAK,CAAC2P,KAAK,CAACnL,KAAK,CAAC,CAAC,EACnC3E,MAAM,CAACqF,QAAQ,CAAClF,KAAK,CAACuQ,UAAU,CAAC/L,KAAK,CAAC,CAAC,CACzC,GACC5E,QAAQ,CAAC6J,OAAO,CAAC6F,aAAa,EAAE,KAAK,CAAC,CAAC,CAACnP,IAAI,CAC5CN,MAAM,CAACqF,QAAQ,CAAClF,KAAK,CAAC4E,SAAS,CAACJ,KAAK,CAAC,CAAC,EACvC3E,MAAM,CAACqF,QAAQ,CAAClF,KAAK,CAACuQ,UAAU,CAAC/L,KAAK,CAAC,CAAC,CACzC,CACJ,CACF,CACF,CAACrE,IAAI,CAACN,MAAM,CAACqF,QAAQ,CAAC8K,OAAO,CAACpQ,QAAQ,CAAC+P,KAAK,CAACN,eAAe,CAAC,CAAC,CAAC,CAAC,CAClE,CACF,CACF,CAAC,CACH;AACH,CAAC,CAAC;AAEF;AACA,MAAMI,kBAAkB,GAAGA,CACzBe,YAAoD,EACpDhB,IAA0E,KACnC;EACvC,MAAMiB,EAAE,GAAGD,YAAsC;EACjD,QAAQC,EAAE,CAACjO,IAAI;IACb,KAAK/B,mBAAmB,CAACwD,cAAc;MAAE;QACvC,OAAO9D,IAAI,CACTsQ,EAAE,CAACtM,MAA6C,EAChDtE,MAAM,CAACoD,OAAO,CAAC,MAAMwM,kBAAkB,CAACD,IAAI,CAACvN,GAAG,EAA4C,EAAEuN,IAAI,CAAC,CAAC,CACrG;MACH;IACA,KAAK/O,mBAAmB,CAACqD,OAAO;MAAE;QAChC;QACA,OAAO2L,kBAAkB,CACvBD,IAAI,CAACvN,GAAG,EAA4C,EACpDuN,IAAI,CACL;MACH;IACA,KAAK/O,mBAAmB,CAAC4C,OAAO;MAAE;QAChC,OAAOxD,MAAM,CAACsD,OAAO,CAAC,MAAMqM,IAAI,CAACjM,OAAO,EAAE,CAAC;MAC7C;IACA,KAAK9C,mBAAmB,CAAC2D,OAAO;MAAE;QAChC,OAAOC,YAAY,CACjBoM,EAAE,EACF,MAAMhB,kBAAkB,CAACD,IAAI,CAACvN,GAAG,EAA4C,EAAEuN,IAAI,CAAC,EACpF3P,MAAM,CAAC8H,SAAS,CACsB;MAC1C;EACF;AACF,CAAC","ignoreList":[]}
@@ -245,31 +245,27 @@ export const mapOutEffect = /*#__PURE__*/dual(2, (self, f) => {
245
245
  return core.pipeTo(self, reader);
246
246
  });
247
247
  /** @internal */
248
- export const mapOutEffectPar = /*#__PURE__*/dual(3, (self, f, n) => pipe(Effect.gen(function* ($) {
249
- const queue = yield* $(Effect.acquireRelease(Queue.bounded(n), queue => Queue.shutdown(queue)));
250
- const errorSignal = yield* $(Deferred.make());
251
- const withPermits = n === Number.POSITIVE_INFINITY ? _ => identity : (yield* $(Effect.makeSemaphore(n))).withPermits;
252
- const pull = yield* $(toPull(self));
253
- yield* $(Effect.matchCauseEffect(pull, {
248
+ export const mapOutEffectPar = /*#__PURE__*/dual(3, (self, f, n) => unwrapScopedWith(scope => Effect.gen(function* () {
249
+ const input = yield* singleProducerAsyncInput.make();
250
+ const queueReader = fromInput(input);
251
+ const queue = yield* Queue.bounded(n);
252
+ yield* Scope.addFinalizer(scope, Queue.shutdown(queue));
253
+ const errorSignal = yield* Deferred.make();
254
+ const withPermits = n === Number.POSITIVE_INFINITY ? _ => identity : (yield* Effect.makeSemaphore(n)).withPermits;
255
+ const pull = yield* queueReader.pipe(core.pipeTo(self), toPullIn(scope));
256
+ yield* pull.pipe(Effect.matchCauseEffect({
254
257
  onFailure: cause => Queue.offer(queue, Effect.failCause(cause)),
255
- onSuccess: either => Either.match(either, {
256
- onLeft: outDone => {
257
- const lock = withPermits(n);
258
- return Effect.zipRight(Effect.interruptible(lock(Effect.void)), Effect.asVoid(Queue.offer(queue, Effect.succeed(Either.left(outDone)))));
259
- },
260
- onRight: outElem => Effect.gen(function* ($) {
261
- const deferred = yield* $(Deferred.make());
262
- const latch = yield* $(Deferred.make());
263
- yield* $(Effect.asVoid(Queue.offer(queue, Effect.map(Deferred.await(deferred), Either.right))));
264
- yield* $(Deferred.succeed(latch, void 0), Effect.zipRight(pipe(Effect.uninterruptibleMask(restore => pipe(Effect.exit(restore(Deferred.await(errorSignal))), Effect.raceFirst(Effect.exit(restore(f(outElem)))),
265
- // TODO: remove
266
- Effect.flatMap(exit => Effect.suspend(() => exit)))), Effect.tapErrorCause(cause => Deferred.failCause(errorSignal, cause)), Effect.intoDeferred(deferred))), withPermits(1), Effect.forkScoped);
267
- yield* $(Deferred.await(latch));
258
+ onSuccess: Either.match({
259
+ onLeft: outDone => Effect.zipRight(Effect.interruptible(withPermits(n)(Effect.void)), Effect.asVoid(Queue.offer(queue, Effect.succeed(Either.left(outDone))))),
260
+ onRight: outElem => Effect.gen(function* () {
261
+ const deferred = yield* Deferred.make();
262
+ const latch = yield* Deferred.make();
263
+ yield* Queue.offer(queue, Effect.map(Deferred.await(deferred), Either.right));
264
+ yield* Deferred.succeed(latch, void 0).pipe(Effect.zipRight(Effect.uninterruptibleMask(restore => Effect.exit(restore(Deferred.await(errorSignal))).pipe(Effect.raceFirst(Effect.exit(restore(f(outElem)))), Effect.flatMap(identity))).pipe(Effect.tapErrorCause(cause => Deferred.failCause(errorSignal, cause)), Effect.intoDeferred(deferred))), withPermits(1), Effect.forkIn(scope));
265
+ yield* Deferred.await(latch);
268
266
  })
269
267
  })
270
- }), Effect.forever, Effect.interruptible, Effect.forkScoped);
271
- return queue;
272
- }), Effect.map(queue => {
268
+ }), Effect.forever, Effect.interruptible, Effect.forkIn(scope));
273
269
  const consumer = unwrap(Effect.matchCause(Effect.flatten(Queue.take(queue)), {
274
270
  onFailure: core.failCause,
275
271
  onSuccess: Either.match({
@@ -277,8 +273,8 @@ export const mapOutEffectPar = /*#__PURE__*/dual(3, (self, f, n) => pipe(Effect.
277
273
  onRight: outElem => core.flatMap(core.write(outElem), () => consumer)
278
274
  })
279
275
  }));
280
- return consumer;
281
- }), unwrapScoped));
276
+ return core.embedInput(consumer, input);
277
+ })));
282
278
  /** @internal */
283
279
  export const mergeAll = options => {
284
280
  return channels => mergeAllWith(options)(channels, constVoid);
@@ -296,63 +292,65 @@ export const mergeAllWith = ({
296
292
  bufferSize = 16,
297
293
  concurrency,
298
294
  mergeStrategy = _mergeStrategy.BackPressure()
299
- }) => (channels, f) => pipe(Effect.gen(function* ($) {
295
+ }) => (channels, f) => unwrapScopedWith(scope => Effect.gen(function* () {
300
296
  const concurrencyN = concurrency === "unbounded" ? Number.MAX_SAFE_INTEGER : concurrency;
301
- const input = yield* $(singleProducerAsyncInput.make());
297
+ const input = yield* singleProducerAsyncInput.make();
302
298
  const queueReader = fromInput(input);
303
- const queue = yield* $(Effect.acquireRelease(Queue.bounded(bufferSize), queue => Queue.shutdown(queue)));
304
- const cancelers = yield* $(Effect.acquireRelease(Queue.unbounded(), queue => Queue.shutdown(queue)));
305
- const lastDone = yield* $(Ref.make(Option.none()));
306
- const errorSignal = yield* $(Deferred.make());
307
- const withPermits = (yield* $(Effect.makeSemaphore(concurrencyN))).withPermits;
308
- const pull = yield* $(toPull(channels));
309
- const evaluatePull = pull => pipe(Effect.flatMap(pull, Either.match({
310
- onLeft: done => Effect.succeed(Option.some(done)),
311
- onRight: outElem => Effect.as(Queue.offer(queue, Effect.succeed(Either.right(outElem))), Option.none())
312
- })), Effect.repeat({
313
- until: _ => Option.isSome(_)
314
- }), Effect.flatMap(outDone => Ref.update(lastDone, Option.match({
315
- onNone: () => Option.some(outDone.value),
316
- onSome: lastDone => Option.some(f(lastDone, outDone.value))
317
- }))), Effect.catchAllCause(cause => Cause.isInterrupted(cause) ? Effect.failCause(cause) : pipe(Queue.offer(queue, Effect.failCause(cause)), Effect.zipRight(Deferred.succeed(errorSignal, void 0)), Effect.asVoid)));
318
- yield* $(Effect.matchCauseEffect(pull, {
319
- onFailure: cause => pipe(Queue.offer(queue, Effect.failCause(cause)), Effect.zipRight(Effect.succeed(false))),
299
+ const queue = yield* Queue.bounded(bufferSize);
300
+ yield* Scope.addFinalizer(scope, Queue.shutdown(queue));
301
+ const cancelers = yield* Queue.unbounded();
302
+ yield* Scope.addFinalizer(scope, Queue.shutdown(cancelers));
303
+ const lastDone = yield* Ref.make(Option.none());
304
+ const errorSignal = yield* Deferred.make();
305
+ const withPermits = (yield* Effect.makeSemaphore(concurrencyN)).withPermits;
306
+ const pull = yield* toPullIn(core.pipeTo(queueReader, channels), scope);
307
+ function evaluatePull(pull) {
308
+ return pull.pipe(Effect.flatMap(Either.match({
309
+ onLeft: done => Effect.succeed(Option.some(done)),
310
+ onRight: outElem => Effect.as(Queue.offer(queue, Effect.succeed(Either.right(outElem))), Option.none())
311
+ })), Effect.repeat({
312
+ until: _ => Option.isSome(_)
313
+ }), Effect.flatMap(outDone => Ref.update(lastDone, Option.match({
314
+ onNone: () => Option.some(outDone.value),
315
+ onSome: lastDone => Option.some(f(lastDone, outDone.value))
316
+ }))), Effect.catchAllCause(cause => Cause.isInterrupted(cause) ? Effect.failCause(cause) : Queue.offer(queue, Effect.failCause(cause)).pipe(Effect.zipRight(Deferred.succeed(errorSignal, void 0)), Effect.asVoid)));
317
+ }
318
+ yield* pull.pipe(Effect.matchCauseEffect({
319
+ onFailure: cause => Queue.offer(queue, Effect.failCause(cause)).pipe(Effect.zipRight(Effect.succeed(false))),
320
320
  onSuccess: Either.match({
321
321
  onLeft: outDone => Effect.raceWith(Effect.interruptible(Deferred.await(errorSignal)), Effect.interruptible(withPermits(concurrencyN)(Effect.void)), {
322
322
  onSelfDone: (_, permitAcquisition) => Effect.as(Fiber.interrupt(permitAcquisition), false),
323
- onOtherDone: (_, failureAwait) => Effect.zipRight(Fiber.interrupt(failureAwait), pipe(Ref.get(lastDone), Effect.flatMap(Option.match({
323
+ onOtherDone: (_, failureAwait) => Effect.zipRight(Fiber.interrupt(failureAwait), Ref.get(lastDone).pipe(Effect.flatMap(Option.match({
324
324
  onNone: () => Queue.offer(queue, Effect.succeed(Either.left(outDone))),
325
325
  onSome: lastDone => Queue.offer(queue, Effect.succeed(Either.left(f(lastDone, outDone))))
326
326
  })), Effect.as(false)))
327
327
  }),
328
328
  onRight: channel => _mergeStrategy.match(mergeStrategy, {
329
- onBackPressure: () => Effect.gen(function* ($) {
330
- const latch = yield* $(Deferred.make());
331
- const raceEffects = pipe(queueReader, core.pipeTo(channel), toPull, Effect.flatMap(pull => Effect.race(evaluatePull(pull), Effect.interruptible(Deferred.await(errorSignal)))), Effect.scoped);
332
- yield* $(Deferred.succeed(latch, void 0), Effect.zipRight(raceEffects), withPermits(1), Effect.forkScoped);
333
- yield* $(Deferred.await(latch));
334
- const errored = yield* $(Deferred.isDone(errorSignal));
329
+ onBackPressure: () => Effect.gen(function* () {
330
+ const latch = yield* Deferred.make();
331
+ const raceEffects = Effect.scopedWith(scope => toPullIn(core.pipeTo(queueReader, channel), scope).pipe(Effect.flatMap(pull => Effect.race(Effect.exit(evaluatePull(pull)), Effect.exit(Effect.interruptible(Deferred.await(errorSignal))))), Effect.flatMap(identity)));
332
+ yield* Deferred.succeed(latch, void 0).pipe(Effect.zipRight(raceEffects), withPermits(1), Effect.forkIn(scope));
333
+ yield* Deferred.await(latch);
334
+ const errored = yield* Deferred.isDone(errorSignal);
335
335
  return !errored;
336
336
  }),
337
- onBufferSliding: () => Effect.gen(function* ($) {
338
- const canceler = yield* $(Deferred.make());
339
- const latch = yield* $(Deferred.make());
340
- const size = yield* $(Queue.size(cancelers));
341
- yield* $(Queue.take(cancelers), Effect.flatMap(_ => Deferred.succeed(_, void 0)), Effect.when(() => size >= concurrencyN));
342
- yield* $(Queue.offer(cancelers, canceler));
343
- const raceEffects = pipe(queueReader, core.pipeTo(channel), toPull, Effect.flatMap(pull => pipe(evaluatePull(pull), Effect.race(Effect.interruptible(Deferred.await(errorSignal))), Effect.race(Effect.interruptible(Deferred.await(canceler))))), Effect.scoped);
344
- yield* $(Deferred.succeed(latch, void 0), Effect.zipRight(raceEffects), withPermits(1), Effect.forkScoped);
345
- yield* $(Deferred.await(latch));
346
- const errored = yield* $(Deferred.isDone(errorSignal));
337
+ onBufferSliding: () => Effect.gen(function* () {
338
+ const canceler = yield* Deferred.make();
339
+ const latch = yield* Deferred.make();
340
+ const size = yield* Queue.size(cancelers);
341
+ yield* Queue.take(cancelers).pipe(Effect.flatMap(canceler => Deferred.succeed(canceler, void 0)), Effect.when(() => size >= concurrencyN));
342
+ yield* Queue.offer(cancelers, canceler);
343
+ const raceEffects = Effect.scopedWith(scope => toPullIn(core.pipeTo(queueReader, channel), scope).pipe(Effect.flatMap(pull => Effect.exit(evaluatePull(pull)).pipe(Effect.race(Effect.exit(Effect.interruptible(Deferred.await(errorSignal)))), Effect.race(Effect.exit(Effect.interruptible(Deferred.await(canceler)))))), Effect.flatMap(identity)));
344
+ yield* Deferred.succeed(latch, void 0).pipe(Effect.zipRight(raceEffects), withPermits(1), Effect.forkIn(scope));
345
+ yield* Deferred.await(latch);
346
+ const errored = yield* Deferred.isDone(errorSignal);
347
347
  return !errored;
348
348
  })
349
349
  })
350
350
  })
351
351
  }), Effect.repeat({
352
352
  while: _ => _
353
- }), Effect.forkScoped);
354
- return [queue, input];
355
- }), Effect.map(([queue, input]) => {
353
+ }), Effect.forkIn(scope));
356
354
  const consumer = pipe(Queue.take(queue), Effect.flatten, Effect.matchCause({
357
355
  onFailure: core.failCause,
358
356
  onSuccess: Either.match({
@@ -361,7 +359,7 @@ export const mergeAllWith = ({
361
359
  })
362
360
  }), unwrap);
363
361
  return core.embedInput(consumer, input);
364
- }), unwrapScoped);
362
+ }));
365
363
  /** @internal */
366
364
  export const mergeMap = /*#__PURE__*/dual(3, (self, f, options) => mergeAll(options)(mapOut(self, f)));
367
365
  /** @internal */
@@ -373,67 +371,84 @@ export const mergeOutWith = /*#__PURE__*/dual(3, (self, n, f) => mergeAllWith({
373
371
  concurrency: n
374
372
  })(mapOut(self, identity), f));
375
373
  /** @internal */
376
- export const mergeWith = /*#__PURE__*/dual(2, (self, options) => unwrapScoped(Effect.flatMap(singleProducerAsyncInput.make(), input => {
377
- const queueReader = fromInput(input);
378
- return Effect.map(Effect.all([toPull(core.pipeTo(queueReader, self)), toPull(core.pipeTo(queueReader, options.other)), Effect.scope]), ([pullL, pullR, scope]) => {
379
- const handleSide = (exit, fiber, pull) => (done, both, single) => {
380
- const onDecision = decision => {
381
- const op = decision;
382
- if (op._tag === MergeDecisionOpCodes.OP_DONE) {
383
- return Effect.succeed(core.fromEffect(Effect.zipRight(Fiber.interrupt(fiber), op.effect)));
384
- }
385
- return Effect.map(Fiber.await(fiber), Exit.match({
386
- onFailure: cause => core.fromEffect(op.f(Exit.failCause(cause))),
387
- onSuccess: Either.match({
388
- onLeft: done => core.fromEffect(op.f(Exit.succeed(done))),
389
- onRight: elem => zipRight(core.write(elem), go(single(op.f)))
390
- })
391
- }));
392
- };
393
- return Exit.match(exit, {
394
- onFailure: cause => onDecision(done(Exit.failCause(cause))),
395
- onSuccess: Either.match({
396
- onLeft: z => onDecision(done(Exit.succeed(z))),
397
- onRight: elem => Effect.succeed(core.flatMap(core.write(elem), () => core.flatMap(core.fromEffect(Effect.forkIn(Effect.interruptible(pull), scope)), leftFiber => go(both(leftFiber, fiber)))))
398
- })
399
- });
400
- };
401
- const go = state => {
402
- switch (state._tag) {
403
- case MergeStateOpCodes.OP_BOTH_RUNNING:
404
- {
405
- const leftJoin = Effect.interruptible(Fiber.join(state.left));
406
- const rightJoin = Effect.interruptible(Fiber.join(state.right));
407
- return unwrap(Effect.raceWith(leftJoin, rightJoin, {
408
- onSelfDone: (leftExit, rf) => Effect.zipRight(Fiber.interrupt(rf), handleSide(leftExit, state.right, pullL)(options.onSelfDone, mergeState.BothRunning, f => mergeState.LeftDone(f))),
409
- onOtherDone: (rightExit, lf) => Effect.zipRight(Fiber.interrupt(lf), handleSide(rightExit, state.left, pullR)(options.onOtherDone, (left, right) => mergeState.BothRunning(right, left), f => mergeState.RightDone(f)))
410
- }));
411
- }
412
- case MergeStateOpCodes.OP_LEFT_DONE:
413
- {
414
- return unwrap(Effect.map(Effect.exit(pullR), Exit.match({
415
- onFailure: cause => core.fromEffect(state.f(Exit.failCause(cause))),
416
- onSuccess: Either.match({
417
- onLeft: done => core.fromEffect(state.f(Exit.succeed(done))),
418
- onRight: elem => core.flatMap(core.write(elem), () => go(mergeState.LeftDone(state.f)))
419
- })
420
- })));
421
- }
422
- case MergeStateOpCodes.OP_RIGHT_DONE:
423
- {
424
- return unwrap(Effect.map(Effect.exit(pullL), Exit.match({
425
- onFailure: cause => core.fromEffect(state.f(Exit.failCause(cause))),
374
+ export const mergeWith = /*#__PURE__*/dual(2, (self, options) => {
375
+ function merge(scope) {
376
+ return Effect.gen(function* () {
377
+ const input = yield* singleProducerAsyncInput.make();
378
+ const queueReader = fromInput(input);
379
+ const pullL = yield* toPullIn(core.pipeTo(queueReader, self), scope);
380
+ const pullR = yield* toPullIn(core.pipeTo(queueReader, options.other), scope);
381
+ function handleSide(exit, fiber, pull) {
382
+ return (done, both, single) => {
383
+ function onDecision(decision) {
384
+ const op = decision;
385
+ if (op._tag === MergeDecisionOpCodes.OP_DONE) {
386
+ return Effect.succeed(core.fromEffect(Effect.zipRight(Fiber.interrupt(fiber), op.effect)));
387
+ }
388
+ return Effect.map(Fiber.await(fiber), Exit.match({
389
+ onFailure: cause => core.fromEffect(op.f(Exit.failCause(cause))),
426
390
  onSuccess: Either.match({
427
- onLeft: done => core.fromEffect(state.f(Exit.succeed(done))),
428
- onRight: elem => core.flatMap(core.write(elem), () => go(mergeState.RightDone(state.f)))
391
+ onLeft: done => core.fromEffect(op.f(Exit.succeed(done))),
392
+ onRight: elem => zipRight(core.write(elem), go(single(op.f)))
429
393
  })
430
- })));
394
+ }));
431
395
  }
396
+ return Exit.match(exit, {
397
+ onFailure: cause => onDecision(done(Exit.failCause(cause))),
398
+ onSuccess: Either.match({
399
+ onLeft: z => onDecision(done(Exit.succeed(z))),
400
+ onRight: elem => Effect.succeed(core.flatMap(core.write(elem), () => core.flatMap(core.fromEffect(Effect.forkIn(Effect.interruptible(pull), scope)), leftFiber => go(both(leftFiber, fiber)))))
401
+ })
402
+ });
403
+ };
432
404
  }
433
- };
434
- return pipe(core.fromEffect(Effect.zipWith(Effect.forkIn(Effect.interruptible(pullL), scope), Effect.forkIn(Effect.interruptible(pullR), scope), (left, right) => mergeState.BothRunning(left, right))), core.flatMap(go), core.embedInput(input));
435
- });
436
- })));
405
+ function go(state) {
406
+ switch (state._tag) {
407
+ case MergeStateOpCodes.OP_BOTH_RUNNING:
408
+ {
409
+ const leftJoin = Effect.interruptible(Fiber.join(state.left));
410
+ const rightJoin = Effect.interruptible(Fiber.join(state.right));
411
+ return unwrap(Effect.raceWith(leftJoin, rightJoin, {
412
+ onSelfDone: (leftExit, rf) => Effect.zipRight(Fiber.interrupt(rf), handleSide(leftExit, state.right, pullL)(options.onSelfDone, mergeState.BothRunning, f => mergeState.LeftDone(f))),
413
+ onOtherDone: (rightExit, lf) => Effect.zipRight(Fiber.interrupt(lf), handleSide(rightExit, state.left, pullR)(options.onOtherDone, (left, right) => mergeState.BothRunning(right, left), f => mergeState.RightDone(f)))
414
+ }));
415
+ }
416
+ case MergeStateOpCodes.OP_LEFT_DONE:
417
+ {
418
+ return unwrap(Effect.map(Effect.exit(pullR), Exit.match({
419
+ onFailure: cause => core.fromEffect(state.f(Exit.failCause(cause))),
420
+ onSuccess: Either.match({
421
+ onLeft: done => core.fromEffect(state.f(Exit.succeed(done))),
422
+ onRight: elem => core.flatMap(core.write(elem), () => go(mergeState.LeftDone(state.f)))
423
+ })
424
+ })));
425
+ }
426
+ case MergeStateOpCodes.OP_RIGHT_DONE:
427
+ {
428
+ return unwrap(Effect.map(Effect.exit(pullL), Exit.match({
429
+ onFailure: cause => core.fromEffect(state.f(Exit.failCause(cause))),
430
+ onSuccess: Either.match({
431
+ onLeft: done => core.fromEffect(state.f(Exit.succeed(done))),
432
+ onRight: elem => core.flatMap(core.write(elem), () => go(mergeState.RightDone(state.f)))
433
+ })
434
+ })));
435
+ }
436
+ }
437
+ }
438
+ return core.fromEffect(Effect.withFiberRuntime(parent => {
439
+ const inherit = Effect.withFiberRuntime(state => {
440
+ ;
441
+ state.transferChildren(parent.scope());
442
+ return Effect.void;
443
+ });
444
+ const leftFiber = Effect.interruptible(pullL).pipe(Effect.ensuring(inherit), Effect.forkIn(scope));
445
+ const rightFiber = Effect.interruptible(pullR).pipe(Effect.ensuring(inherit), Effect.forkIn(scope));
446
+ return Effect.zipWith(leftFiber, rightFiber, (left, right) => mergeState.BothRunning(left, right));
447
+ })).pipe(core.flatMap(go), core.embedInput(input));
448
+ });
449
+ }
450
+ return unwrapScopedWith(merge);
451
+ });
437
452
  /** @internal */
438
453
  export const never = /*#__PURE__*/core.fromEffect(Effect.never);
439
454
  /** @internal */
@@ -467,7 +482,7 @@ export const provideService = /*#__PURE__*/dual(3, (self, tag, service) => {
467
482
  return core.flatMap(context(), context => core.provideContext(self, Context.add(context, tag, service)));
468
483
  });
469
484
  /** @internal */
470
- export const provideLayer = /*#__PURE__*/dual(2, (self, layer) => unwrapScoped(Effect.map(Layer.build(layer), env => core.provideContext(self, env))));
485
+ export const provideLayer = /*#__PURE__*/dual(2, (self, layer) => unwrapScopedWith(scope => Effect.map(Layer.buildWithScope(layer, scope), context => core.provideContext(self, context))));
471
486
  /** @internal */
472
487
  export const mapInputContext = /*#__PURE__*/dual(2, (self, f) => contextWithChannel(context => core.provideContext(self, f(context))));
473
488
  /** @internal */
@@ -479,14 +494,18 @@ export const read = () => core.readOrFail(Option.none());
479
494
  /** @internal */
480
495
  export const repeated = self => core.flatMap(self, () => repeated(self));
481
496
  /** @internal */
482
- export const run = self => Effect.scoped(executor.runScoped(self));
497
+ export const run = self => Effect.scopedWith(scope => executor.runIn(self, scope));
498
+ /** @internal */
499
+ export const runCollect = self => run(core.collectElements(self));
483
500
  /** @internal */
484
- export const runCollect = self => executor.run(core.collectElements(self));
501
+ export const runDrain = self => run(drain(self));
485
502
  /** @internal */
486
- export const runDrain = self => executor.run(drain(self));
503
+ export const runScoped = self => Effect.scopeWith(scope => executor.runIn(self, scope));
487
504
  /** @internal */
488
505
  export const scoped = effect => unwrap(Effect.uninterruptibleMask(restore => Effect.map(Scope.make(), scope => core.acquireReleaseOut(Effect.tapErrorCause(restore(Scope.extend(effect, scope)), cause => Scope.close(scope, Exit.failCause(cause))), (_, exit) => Scope.close(scope, exit)))));
489
506
  /** @internal */
507
+ export const scopedWith = f => unwrapScoped(Effect.map(Effect.scope, scope => core.flatMap(core.fromEffect(f(scope)), core.write)));
508
+ /** @internal */
490
509
  export const service = tag => core.fromEffect(tag);
491
510
  /** @internal */
492
511
  export const serviceWith = tag => f => map(service(tag), f);
@@ -570,10 +589,12 @@ export const splitLines = () => core.suspend(() => {
570
589
  /** @internal */
571
590
  export const toPubSub = pubsub => toQueue(pubsub);
572
591
  /** @internal */
573
- export const toPull = self => Effect.map(Effect.acquireRelease(Effect.sync(() => new executor.ChannelExecutor(self, void 0, identity)), (exec, exit) => {
574
- const finalize = exec.close(exit);
575
- return finalize === undefined ? Effect.void : finalize;
576
- }), exec => Effect.suspend(() => interpretToPull(exec.run(), exec)));
592
+ export const toPull = self => Effect.flatMap(Effect.scope, scope => toPullIn(self, scope));
593
+ /** @internal */
594
+ export const toPullIn = /*#__PURE__*/dual(2, (self, scope) => Effect.zip(Effect.sync(() => new executor.ChannelExecutor(self, void 0, identity)), Effect.runtime()).pipe(Effect.tap(([executor, runtime]) => Scope.addFinalizerExit(scope, exit => {
595
+ const finalizer = executor.close(exit);
596
+ return finalizer !== undefined ? Effect.provide(finalizer, runtime) : Effect.void;
597
+ })), Effect.uninterruptible, Effect.map(([executor]) => Effect.suspend(() => interpretToPull(executor.run(), executor)))));
577
598
  /** @internal */
578
599
  const interpretToPull = (channelState, exec) => {
579
600
  const state = channelState;
@@ -614,6 +635,8 @@ export const unwrap = channel => flatten(core.fromEffect(channel));
614
635
  /** @internal */
615
636
  export const unwrapScoped = self => core.concatAllWith(scoped(self), (d, _) => d, (d, _) => d);
616
637
  /** @internal */
638
+ export const unwrapScopedWith = f => core.concatAllWith(scopedWith(f), (d, _) => d, (d, _) => d);
639
+ /** @internal */
617
640
  export const updateService = /*#__PURE__*/dual(3, (self, tag, f) => mapInputContext(self, context => Context.merge(context, Context.make(tag, f(Context.unsafeGet(context, tag))))));
618
641
  /** @internal */
619
642
  export const withSpan = function () {