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.
- package/dist/cjs/Array.js +206 -0
- package/dist/cjs/Array.js.map +1 -1
- package/dist/cjs/BigDecimal.js +181 -24
- package/dist/cjs/BigDecimal.js.map +1 -1
- package/dist/cjs/BigInt.js +54 -0
- package/dist/cjs/BigInt.js.map +1 -1
- package/dist/cjs/Boolean.js +24 -0
- package/dist/cjs/Boolean.js.map +1 -1
- package/dist/cjs/Brand.js +4 -0
- package/dist/cjs/Brand.js.map +1 -1
- package/dist/cjs/Channel.js +44 -4
- package/dist/cjs/Channel.js.map +1 -1
- package/dist/cjs/Chunk.js +8 -0
- package/dist/cjs/Chunk.js.map +1 -1
- package/dist/cjs/Config.js +10 -1
- package/dist/cjs/Config.js.map +1 -1
- package/dist/cjs/Context.js +50 -1
- package/dist/cjs/Context.js.map +1 -1
- package/dist/cjs/Cron.js +81 -67
- package/dist/cjs/Cron.js.map +1 -1
- package/dist/cjs/Data.js +14 -0
- package/dist/cjs/Data.js.map +1 -1
- package/dist/cjs/DateTime.js +178 -664
- package/dist/cjs/DateTime.js.map +1 -1
- package/dist/cjs/Duration.js +2 -0
- package/dist/cjs/Duration.js.map +1 -1
- package/dist/cjs/Effect.js +296 -4
- package/dist/cjs/Effect.js.map +1 -1
- package/dist/cjs/Either.js +38 -2
- package/dist/cjs/Either.js.map +1 -1
- package/dist/cjs/FiberHandle.js +6 -0
- package/dist/cjs/FiberHandle.js.map +1 -1
- package/dist/cjs/FiberMap.js +6 -0
- package/dist/cjs/FiberMap.js.map +1 -1
- package/dist/cjs/FiberSet.js +6 -0
- package/dist/cjs/FiberSet.js.map +1 -1
- package/dist/cjs/Function.js +34 -0
- package/dist/cjs/Function.js.map +1 -1
- package/dist/cjs/GlobalValue.js +2 -0
- package/dist/cjs/GlobalValue.js.map +1 -1
- package/dist/cjs/HashMap.js.map +1 -1
- package/dist/cjs/Inspectable.js +8 -4
- package/dist/cjs/Inspectable.js.map +1 -1
- package/dist/cjs/Iterable.js +18 -0
- package/dist/cjs/Iterable.js.map +1 -1
- package/dist/cjs/JSONSchema.js.map +1 -1
- package/dist/cjs/List.js +4 -0
- package/dist/cjs/List.js.map +1 -1
- package/dist/cjs/Logger.js +26 -0
- package/dist/cjs/Logger.js.map +1 -1
- package/dist/cjs/Mailbox.js +2 -0
- package/dist/cjs/Mailbox.js.map +1 -1
- package/dist/cjs/ManagedRuntime.js +2 -0
- package/dist/cjs/ManagedRuntime.js.map +1 -1
- package/dist/cjs/Metric.js +10 -0
- package/dist/cjs/Metric.js.map +1 -1
- package/dist/cjs/Micro.js +1104 -1069
- package/dist/cjs/Micro.js.map +1 -1
- package/dist/cjs/Number.js +44 -0
- package/dist/cjs/Number.js.map +1 -1
- package/dist/cjs/Option.js +70 -0
- package/dist/cjs/Option.js.map +1 -1
- package/dist/cjs/Order.js +2 -0
- package/dist/cjs/Order.js.map +1 -1
- package/dist/cjs/Ordering.js +4 -0
- package/dist/cjs/Ordering.js.map +1 -1
- package/dist/cjs/Predicate.js +68 -0
- package/dist/cjs/Predicate.js.map +1 -1
- package/dist/cjs/Random.js +4 -0
- package/dist/cjs/Random.js.map +1 -1
- package/dist/cjs/RateLimiter.js +4 -0
- package/dist/cjs/RateLimiter.js.map +1 -1
- package/dist/cjs/RcMap.js +2 -0
- package/dist/cjs/RcMap.js.map +1 -1
- package/dist/cjs/RcRef.js +2 -0
- package/dist/cjs/RcRef.js.map +1 -1
- package/dist/cjs/Record.js +56 -0
- package/dist/cjs/Record.js.map +1 -1
- package/dist/cjs/Redacted.js +8 -0
- package/dist/cjs/Redacted.js.map +1 -1
- package/dist/cjs/RegExp.js +4 -0
- package/dist/cjs/RegExp.js.map +1 -1
- package/dist/cjs/Request.js +4 -0
- package/dist/cjs/Request.js.map +1 -1
- package/dist/cjs/RequestResolver.js +2 -0
- package/dist/cjs/RequestResolver.js.map +1 -1
- package/dist/cjs/Runtime.js +6 -0
- package/dist/cjs/Runtime.js.map +1 -1
- package/dist/cjs/STM.js.map +1 -1
- package/dist/cjs/Schema.js +91 -8
- package/dist/cjs/Schema.js.map +1 -1
- package/dist/cjs/Sink.js +9 -1
- package/dist/cjs/Sink.js.map +1 -1
- package/dist/cjs/Stream.js +179 -7
- package/dist/cjs/Stream.js.map +1 -1
- package/dist/cjs/String.js +62 -0
- package/dist/cjs/String.js.map +1 -1
- package/dist/cjs/Struct.js +12 -0
- package/dist/cjs/Struct.js.map +1 -1
- package/dist/cjs/Symbol.js +2 -0
- package/dist/cjs/Symbol.js.map +1 -1
- package/dist/cjs/Trie.js +56 -0
- package/dist/cjs/Trie.js.map +1 -1
- package/dist/cjs/Tuple.js +18 -0
- package/dist/cjs/Tuple.js.map +1 -1
- package/dist/cjs/Utils.js +7 -1
- package/dist/cjs/Utils.js.map +1 -1
- package/dist/cjs/internal/channel/channelExecutor.js +5 -9
- package/dist/cjs/internal/channel/channelExecutor.js.map +1 -1
- package/dist/cjs/internal/channel.js +156 -130
- package/dist/cjs/internal/channel.js.map +1 -1
- package/dist/cjs/internal/config.js +13 -4
- package/dist/cjs/internal/config.js.map +1 -1
- package/dist/cjs/internal/context.js +46 -3
- package/dist/cjs/internal/context.js.map +1 -1
- package/dist/cjs/internal/dateTime.js +747 -0
- package/dist/cjs/internal/dateTime.js.map +1 -0
- package/dist/cjs/internal/fiberRuntime.js +34 -11
- package/dist/cjs/internal/fiberRuntime.js.map +1 -1
- package/dist/cjs/internal/groupBy.js +9 -3
- package/dist/cjs/internal/groupBy.js.map +1 -1
- package/dist/cjs/internal/layer.js +1 -1
- package/dist/cjs/internal/layer.js.map +1 -1
- package/dist/cjs/internal/mailbox.js +1 -1
- package/dist/cjs/internal/mailbox.js.map +1 -1
- package/dist/cjs/internal/sink.js +25 -21
- package/dist/cjs/internal/sink.js.map +1 -1
- package/dist/cjs/internal/stream.js +70 -71
- package/dist/cjs/internal/stream.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/cjs/internal/version.js.map +1 -1
- package/dist/dts/Array.d.ts +534 -0
- package/dist/dts/Array.d.ts.map +1 -1
- package/dist/dts/BigDecimal.d.ts +172 -1
- package/dist/dts/BigDecimal.d.ts.map +1 -1
- package/dist/dts/BigInt.d.ts +114 -0
- package/dist/dts/BigInt.d.ts.map +1 -1
- package/dist/dts/Boolean.d.ts +56 -0
- package/dist/dts/Boolean.d.ts.map +1 -1
- package/dist/dts/Brand.d.ts +6 -0
- package/dist/dts/Brand.d.ts.map +1 -1
- package/dist/dts/Channel.d.ts +66 -5
- package/dist/dts/Channel.d.ts.map +1 -1
- package/dist/dts/Chunk.d.ts +30 -0
- package/dist/dts/Chunk.d.ts.map +1 -1
- package/dist/dts/Config.d.ts +25 -1
- package/dist/dts/Config.d.ts.map +1 -1
- package/dist/dts/Context.d.ts +155 -0
- package/dist/dts/Context.d.ts.map +1 -1
- package/dist/dts/Cron.d.ts +21 -6
- package/dist/dts/Cron.d.ts.map +1 -1
- package/dist/dts/Data.d.ts +26 -0
- package/dist/dts/Data.d.ts.map +1 -1
- package/dist/dts/DateTime.d.ts +192 -49
- package/dist/dts/DateTime.d.ts.map +1 -1
- package/dist/dts/Duration.d.ts +2 -0
- package/dist/dts/Duration.d.ts.map +1 -1
- package/dist/dts/Effect.d.ts +658 -1
- package/dist/dts/Effect.d.ts.map +1 -1
- package/dist/dts/Either.d.ts +84 -2
- package/dist/dts/Either.d.ts.map +1 -1
- package/dist/dts/FiberHandle.d.ts +6 -0
- package/dist/dts/FiberHandle.d.ts.map +1 -1
- package/dist/dts/FiberMap.d.ts +6 -0
- package/dist/dts/FiberMap.d.ts.map +1 -1
- package/dist/dts/FiberSet.d.ts +6 -0
- package/dist/dts/FiberSet.d.ts.map +1 -1
- package/dist/dts/Function.d.ts +50 -0
- package/dist/dts/Function.d.ts.map +1 -1
- package/dist/dts/GlobalValue.d.ts +2 -0
- package/dist/dts/GlobalValue.d.ts.map +1 -1
- package/dist/dts/HashMap.d.ts +6 -0
- package/dist/dts/HashMap.d.ts.map +1 -1
- package/dist/dts/Inspectable.d.ts.map +1 -1
- package/dist/dts/Iterable.d.ts +26 -0
- package/dist/dts/Iterable.d.ts.map +1 -1
- package/dist/dts/JSONSchema.d.ts +1 -0
- package/dist/dts/JSONSchema.d.ts.map +1 -1
- package/dist/dts/List.d.ts +20 -0
- package/dist/dts/List.d.ts.map +1 -1
- package/dist/dts/Logger.d.ts +34 -0
- package/dist/dts/Logger.d.ts.map +1 -1
- package/dist/dts/Mailbox.d.ts +2 -0
- package/dist/dts/Mailbox.d.ts.map +1 -1
- package/dist/dts/ManagedRuntime.d.ts +2 -0
- package/dist/dts/ManagedRuntime.d.ts.map +1 -1
- package/dist/dts/Metric.d.ts +18 -0
- package/dist/dts/Metric.d.ts.map +1 -1
- package/dist/dts/Micro.d.ts +880 -863
- package/dist/dts/Micro.d.ts.map +1 -1
- package/dist/dts/Number.d.ts +104 -0
- package/dist/dts/Number.d.ts.map +1 -1
- package/dist/dts/Option.d.ts +142 -0
- package/dist/dts/Option.d.ts.map +1 -1
- package/dist/dts/Order.d.ts +2 -0
- package/dist/dts/Order.d.ts.map +1 -1
- package/dist/dts/Ordering.d.ts +8 -0
- package/dist/dts/Ordering.d.ts.map +1 -1
- package/dist/dts/Predicate.d.ts +104 -0
- package/dist/dts/Predicate.d.ts.map +1 -1
- package/dist/dts/Random.d.ts +4 -0
- package/dist/dts/Random.d.ts.map +1 -1
- package/dist/dts/RateLimiter.d.ts +4 -0
- package/dist/dts/RateLimiter.d.ts.map +1 -1
- package/dist/dts/RcMap.d.ts +6 -0
- package/dist/dts/RcMap.d.ts.map +1 -1
- package/dist/dts/RcRef.d.ts +2 -0
- package/dist/dts/RcRef.d.ts.map +1 -1
- package/dist/dts/Record.d.ts +136 -0
- package/dist/dts/Record.d.ts.map +1 -1
- package/dist/dts/Redacted.d.ts +8 -0
- package/dist/dts/Redacted.d.ts.map +1 -1
- package/dist/dts/RegExp.d.ts +4 -0
- package/dist/dts/RegExp.d.ts.map +1 -1
- package/dist/dts/Request.d.ts +4 -0
- package/dist/dts/Request.d.ts.map +1 -1
- package/dist/dts/RequestResolver.d.ts +6 -0
- package/dist/dts/RequestResolver.d.ts.map +1 -1
- package/dist/dts/Runtime.d.ts +18 -0
- package/dist/dts/Runtime.d.ts.map +1 -1
- package/dist/dts/STM.d.ts +2 -0
- package/dist/dts/STM.d.ts.map +1 -1
- package/dist/dts/Schema.d.ts +90 -0
- package/dist/dts/Schema.d.ts.map +1 -1
- package/dist/dts/Sink.d.ts +8 -0
- package/dist/dts/Sink.d.ts.map +1 -1
- package/dist/dts/Stream.d.ts +394 -32
- package/dist/dts/Stream.d.ts.map +1 -1
- package/dist/dts/String.d.ts +94 -0
- package/dist/dts/String.d.ts.map +1 -1
- package/dist/dts/Struct.d.ts +24 -0
- package/dist/dts/Struct.d.ts.map +1 -1
- package/dist/dts/Symbol.d.ts +2 -0
- package/dist/dts/Symbol.d.ts.map +1 -1
- package/dist/dts/Trie.d.ts +132 -0
- package/dist/dts/Trie.d.ts.map +1 -1
- package/dist/dts/Tuple.d.ts +42 -0
- package/dist/dts/Tuple.d.ts.map +1 -1
- package/dist/dts/Types.d.ts +24 -0
- package/dist/dts/Types.d.ts.map +1 -1
- package/dist/dts/Utils.d.ts +4 -0
- package/dist/dts/Utils.d.ts.map +1 -1
- package/dist/dts/internal/context.d.ts +1 -1
- package/dist/dts/internal/context.d.ts.map +1 -1
- package/dist/dts/internal/dateTime.d.ts +2 -0
- package/dist/dts/internal/dateTime.d.ts.map +1 -0
- package/dist/dts/internal/fiberRuntime.d.ts.map +1 -1
- package/dist/dts/internal/stream.d.ts.map +1 -1
- package/dist/esm/Array.js +208 -0
- package/dist/esm/Array.js.map +1 -1
- package/dist/esm/BigDecimal.js +175 -20
- package/dist/esm/BigDecimal.js.map +1 -1
- package/dist/esm/BigInt.js +54 -0
- package/dist/esm/BigInt.js.map +1 -1
- package/dist/esm/Boolean.js +24 -0
- package/dist/esm/Boolean.js.map +1 -1
- package/dist/esm/Brand.js +4 -0
- package/dist/esm/Brand.js.map +1 -1
- package/dist/esm/Channel.js +42 -2
- package/dist/esm/Channel.js.map +1 -1
- package/dist/esm/Chunk.js +8 -0
- package/dist/esm/Chunk.js.map +1 -1
- package/dist/esm/Config.js +9 -0
- package/dist/esm/Config.js.map +1 -1
- package/dist/esm/Context.js +49 -0
- package/dist/esm/Context.js.map +1 -1
- package/dist/esm/Cron.js +81 -67
- package/dist/esm/Cron.js.map +1 -1
- package/dist/esm/Data.js +16 -0
- package/dist/esm/Data.js.map +1 -1
- package/dist/esm/DateTime.js +176 -627
- package/dist/esm/DateTime.js.map +1 -1
- package/dist/esm/Duration.js +2 -0
- package/dist/esm/Duration.js.map +1 -1
- package/dist/esm/Effect.js +297 -0
- package/dist/esm/Effect.js.map +1 -1
- package/dist/esm/Either.js +40 -2
- package/dist/esm/Either.js.map +1 -1
- package/dist/esm/FiberHandle.js +6 -0
- package/dist/esm/FiberHandle.js.map +1 -1
- package/dist/esm/FiberMap.js +6 -0
- package/dist/esm/FiberMap.js.map +1 -1
- package/dist/esm/FiberSet.js +6 -0
- package/dist/esm/FiberSet.js.map +1 -1
- package/dist/esm/Function.js +34 -0
- package/dist/esm/Function.js.map +1 -1
- package/dist/esm/GlobalValue.js +2 -0
- package/dist/esm/GlobalValue.js.map +1 -1
- package/dist/esm/HashMap.js.map +1 -1
- package/dist/esm/Inspectable.js +8 -4
- package/dist/esm/Inspectable.js.map +1 -1
- package/dist/esm/Iterable.js +18 -0
- package/dist/esm/Iterable.js.map +1 -1
- package/dist/esm/JSONSchema.js.map +1 -1
- package/dist/esm/List.js +4 -0
- package/dist/esm/List.js.map +1 -1
- package/dist/esm/Logger.js +26 -0
- package/dist/esm/Logger.js.map +1 -1
- package/dist/esm/Mailbox.js +2 -0
- package/dist/esm/Mailbox.js.map +1 -1
- package/dist/esm/ManagedRuntime.js +2 -0
- package/dist/esm/ManagedRuntime.js.map +1 -1
- package/dist/esm/Metric.js +10 -0
- package/dist/esm/Metric.js.map +1 -1
- package/dist/esm/Micro.js +1077 -1037
- package/dist/esm/Micro.js.map +1 -1
- package/dist/esm/Number.js +44 -0
- package/dist/esm/Number.js.map +1 -1
- package/dist/esm/Option.js +72 -0
- package/dist/esm/Option.js.map +1 -1
- package/dist/esm/Order.js +2 -0
- package/dist/esm/Order.js.map +1 -1
- package/dist/esm/Ordering.js +4 -0
- package/dist/esm/Ordering.js.map +1 -1
- package/dist/esm/Predicate.js +68 -0
- package/dist/esm/Predicate.js.map +1 -1
- package/dist/esm/Random.js +4 -0
- package/dist/esm/Random.js.map +1 -1
- package/dist/esm/RateLimiter.js +4 -0
- package/dist/esm/RateLimiter.js.map +1 -1
- package/dist/esm/RcMap.js +2 -0
- package/dist/esm/RcMap.js.map +1 -1
- package/dist/esm/RcRef.js +2 -0
- package/dist/esm/RcRef.js.map +1 -1
- package/dist/esm/Record.js +56 -0
- package/dist/esm/Record.js.map +1 -1
- package/dist/esm/Redacted.js +8 -0
- package/dist/esm/Redacted.js.map +1 -1
- package/dist/esm/RegExp.js +4 -0
- package/dist/esm/RegExp.js.map +1 -1
- package/dist/esm/Request.js +4 -0
- package/dist/esm/Request.js.map +1 -1
- package/dist/esm/RequestResolver.js +2 -0
- package/dist/esm/RequestResolver.js.map +1 -1
- package/dist/esm/Runtime.js +6 -0
- package/dist/esm/Runtime.js.map +1 -1
- package/dist/esm/STM.js.map +1 -1
- package/dist/esm/Schema.js +88 -0
- package/dist/esm/Schema.js.map +1 -1
- package/dist/esm/Sink.js +8 -0
- package/dist/esm/Sink.js.map +1 -1
- package/dist/esm/Stream.js +183 -5
- package/dist/esm/Stream.js.map +1 -1
- package/dist/esm/String.js +62 -0
- package/dist/esm/String.js.map +1 -1
- package/dist/esm/Struct.js +12 -0
- package/dist/esm/Struct.js.map +1 -1
- package/dist/esm/Symbol.js +2 -0
- package/dist/esm/Symbol.js.map +1 -1
- package/dist/esm/Trie.js +56 -0
- package/dist/esm/Trie.js.map +1 -1
- package/dist/esm/Tuple.js +22 -0
- package/dist/esm/Tuple.js.map +1 -1
- package/dist/esm/Utils.js +5 -0
- package/dist/esm/Utils.js.map +1 -1
- package/dist/esm/internal/channel/channelExecutor.js +5 -7
- package/dist/esm/internal/channel/channelExecutor.js.map +1 -1
- package/dist/esm/internal/channel.js +152 -129
- package/dist/esm/internal/channel.js.map +1 -1
- package/dist/esm/internal/config.js +11 -3
- package/dist/esm/internal/config.js.map +1 -1
- package/dist/esm/internal/context.js +42 -2
- package/dist/esm/internal/context.js.map +1 -1
- package/dist/esm/internal/dateTime.js +704 -0
- package/dist/esm/internal/dateTime.js.map +1 -0
- package/dist/esm/internal/fiberRuntime.js +31 -9
- package/dist/esm/internal/fiberRuntime.js.map +1 -1
- package/dist/esm/internal/groupBy.js +9 -3
- package/dist/esm/internal/groupBy.js.map +1 -1
- package/dist/esm/internal/layer.js +1 -1
- package/dist/esm/internal/layer.js.map +1 -1
- package/dist/esm/internal/mailbox.js +1 -1
- package/dist/esm/internal/mailbox.js.map +1 -1
- package/dist/esm/internal/sink.js +23 -20
- package/dist/esm/internal/sink.js.map +1 -1
- package/dist/esm/internal/stream.js +66 -69
- package/dist/esm/internal/stream.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/dist/esm/internal/version.js.map +1 -1
- package/package.json +1 -1
- package/src/Array.ts +534 -0
- package/src/BigDecimal.ts +247 -21
- package/src/BigInt.ts +114 -0
- package/src/Boolean.ts +56 -0
- package/src/Brand.ts +6 -0
- package/src/Channel.ts +81 -5
- package/src/Chunk.ts +32 -0
- package/src/Config.ts +26 -1
- package/src/Context.ts +163 -0
- package/src/Cron.ts +91 -68
- package/src/Data.ts +26 -0
- package/src/DateTime.ts +307 -757
- package/src/Duration.ts +2 -0
- package/src/Effect.ts +910 -1
- package/src/Either.ts +84 -2
- package/src/FiberHandle.ts +6 -0
- package/src/FiberMap.ts +6 -0
- package/src/FiberSet.ts +6 -0
- package/src/Function.ts +50 -0
- package/src/GlobalValue.ts +2 -0
- package/src/HashMap.ts +6 -0
- package/src/Inspectable.ts +11 -7
- package/src/Iterable.ts +26 -0
- package/src/JSONSchema.ts +1 -0
- package/src/List.ts +24 -0
- package/src/Logger.ts +34 -0
- package/src/Mailbox.ts +2 -0
- package/src/ManagedRuntime.ts +2 -0
- package/src/Metric.ts +18 -0
- package/src/Micro.ts +2007 -1745
- package/src/Number.ts +104 -0
- package/src/Option.ts +142 -0
- package/src/Order.ts +2 -0
- package/src/Ordering.ts +8 -0
- package/src/Predicate.ts +104 -0
- package/src/Random.ts +4 -0
- package/src/RateLimiter.ts +4 -0
- package/src/RcMap.ts +6 -0
- package/src/RcRef.ts +2 -0
- package/src/Record.ts +136 -0
- package/src/Redacted.ts +8 -0
- package/src/RegExp.ts +4 -0
- package/src/Request.ts +4 -0
- package/src/RequestResolver.ts +6 -0
- package/src/Runtime.ts +18 -0
- package/src/STM.ts +2 -0
- package/src/Schema.ts +124 -0
- package/src/Sink.ts +11 -0
- package/src/Stream.ts +399 -44
- package/src/String.ts +94 -0
- package/src/Struct.ts +24 -0
- package/src/Symbol.ts +2 -0
- package/src/Trie.ts +132 -0
- package/src/Tuple.ts +42 -0
- package/src/Types.ts +24 -0
- package/src/Utils.ts +8 -0
- package/src/internal/channel/channelExecutor.ts +37 -33
- package/src/internal/channel.ts +504 -467
- package/src/internal/config.ts +18 -6
- package/src/internal/context.ts +56 -4
- package/src/internal/dateTime.ts +1126 -0
- package/src/internal/fiberRuntime.ts +35 -16
- package/src/internal/groupBy.ts +13 -22
- package/src/internal/layer.ts +5 -8
- package/src/internal/mailbox.ts +6 -4
- package/src/internal/sink.ts +55 -35
- package/src/internal/stream.ts +299 -299
- 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
|
|
652
|
-
|
|
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.
|
|
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) =>
|
|
249
|
-
const
|
|
250
|
-
const
|
|
251
|
-
const
|
|
252
|
-
|
|
253
|
-
yield*
|
|
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:
|
|
256
|
-
onLeft: outDone =>
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
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.
|
|
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
|
-
})
|
|
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) =>
|
|
295
|
+
}) => (channels, f) => unwrapScopedWith(scope => Effect.gen(function* () {
|
|
300
296
|
const concurrencyN = concurrency === "unbounded" ? Number.MAX_SAFE_INTEGER : concurrency;
|
|
301
|
-
const input = yield*
|
|
297
|
+
const input = yield* singleProducerAsyncInput.make();
|
|
302
298
|
const queueReader = fromInput(input);
|
|
303
|
-
const queue = yield*
|
|
304
|
-
|
|
305
|
-
const
|
|
306
|
-
|
|
307
|
-
const
|
|
308
|
-
const
|
|
309
|
-
const
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
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),
|
|
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*
|
|
331
|
-
const raceEffects =
|
|
332
|
-
yield*
|
|
333
|
-
yield*
|
|
334
|
-
const errored = yield*
|
|
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*
|
|
339
|
-
const latch = yield*
|
|
340
|
-
const size = yield*
|
|
341
|
-
yield*
|
|
342
|
-
yield*
|
|
343
|
-
const raceEffects =
|
|
344
|
-
yield*
|
|
345
|
-
yield*
|
|
346
|
-
const errored = yield*
|
|
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.
|
|
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
|
-
})
|
|
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) =>
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
const
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
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(
|
|
428
|
-
onRight: elem =>
|
|
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
|
-
|
|
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) =>
|
|
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.
|
|
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
|
|
501
|
+
export const runDrain = self => run(drain(self));
|
|
485
502
|
/** @internal */
|
|
486
|
-
export const
|
|
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.
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
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 () {
|