effect 4.0.0 → 4.0.2
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/ai-docs/package.json +2 -2
- package/ai-docs/tsconfig.json +2 -1
- package/dist/Array.d.ts +339 -0
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +143 -3
- package/dist/Array.js.map +1 -1
- package/dist/BigDecimal.d.ts +88 -0
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +44 -0
- package/dist/BigDecimal.js.map +1 -1
- package/dist/BigInt.d.ts +68 -0
- package/dist/BigInt.d.ts.map +1 -1
- package/dist/BigInt.js +36 -0
- package/dist/BigInt.js.map +1 -1
- package/dist/Boolean.d.ts +34 -0
- package/dist/Boolean.d.ts.map +1 -1
- package/dist/Boolean.js +18 -0
- package/dist/Boolean.js.map +1 -1
- package/dist/Brand.d.ts +9 -0
- package/dist/Brand.d.ts.map +1 -1
- package/dist/Brand.js +6 -0
- package/dist/Brand.js.map +1 -1
- package/dist/ByteSize.d.ts +86 -0
- package/dist/ByteSize.d.ts.map +1 -1
- package/dist/ByteSize.js +51 -0
- package/dist/ByteSize.js.map +1 -1
- package/dist/Cache.d.ts +38 -1
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +47 -23
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +82 -0
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Cause.js +61 -1
- package/dist/Cause.js.map +1 -1
- package/dist/Channel.d.ts +327 -4
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +168 -8
- package/dist/Channel.js.map +1 -1
- package/dist/ChannelSchema.d.ts +11 -0
- package/dist/ChannelSchema.d.ts.map +1 -1
- package/dist/ChannelSchema.js +6 -0
- package/dist/ChannelSchema.js.map +1 -1
- package/dist/Chunk.d.ts +192 -0
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +78 -0
- package/dist/Chunk.js.map +1 -1
- package/dist/Clock.d.ts +7 -0
- package/dist/Clock.d.ts.map +1 -1
- package/dist/Clock.js +5 -0
- package/dist/Clock.js.map +1 -1
- package/dist/Combiner.d.ts +10 -0
- package/dist/Combiner.d.ts.map +1 -1
- package/dist/Combiner.js +8 -0
- package/dist/Combiner.js.map +1 -1
- package/dist/Config.d.ts +52 -12
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +55 -5
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +28 -0
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +19 -0
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Console.d.ts +22 -0
- package/dist/Console.d.ts.map +1 -1
- package/dist/Console.js +20 -0
- package/dist/Console.js.map +1 -1
- package/dist/Context.d.ts +50 -0
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +21 -0
- package/dist/Context.js.map +1 -1
- package/dist/Cron.d.ts +16 -0
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +26 -1
- package/dist/Cron.js.map +1 -1
- package/dist/Crypto.d.ts +5 -0
- package/dist/Crypto.d.ts.map +1 -1
- package/dist/Crypto.js +3 -0
- package/dist/Crypto.js.map +1 -1
- package/dist/Data.d.ts +13 -0
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +5 -0
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +171 -0
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +89 -0
- package/dist/DateTime.js.map +1 -1
- package/dist/Deferred.d.ts +51 -0
- package/dist/Deferred.d.ts.map +1 -1
- package/dist/Deferred.js +22 -0
- package/dist/Deferred.js.map +1 -1
- package/dist/Differ.d.ts +2 -0
- package/dist/Differ.d.ts.map +1 -1
- package/dist/Differ.js +1 -0
- package/dist/Duration.d.ts +90 -0
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +53 -0
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +677 -22
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +251 -10
- package/dist/Effect.js.map +1 -1
- package/dist/Effectable.d.ts +4 -0
- package/dist/Effectable.d.ts.map +1 -1
- package/dist/Effectable.js +3 -0
- package/dist/Effectable.js.map +1 -1
- package/dist/Equal.d.ts +8 -0
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +9 -1
- package/dist/Equal.js.map +1 -1
- package/dist/Equivalence.d.ts +21 -0
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +16 -0
- package/dist/Equivalence.js.map +1 -1
- package/dist/ErrorReporter.d.ts +36 -0
- package/dist/ErrorReporter.d.ts.map +1 -1
- package/dist/ErrorReporter.js +11 -0
- package/dist/ErrorReporter.js.map +1 -1
- package/dist/ExecutionPlan.d.ts +49 -8
- package/dist/ExecutionPlan.d.ts.map +1 -1
- package/dist/ExecutionPlan.js +7 -0
- package/dist/ExecutionPlan.js.map +1 -1
- package/dist/Exit.d.ts +40 -0
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js +27 -0
- package/dist/Exit.js.map +1 -1
- package/dist/Fiber.d.ts +20 -0
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js +11 -0
- package/dist/Fiber.js.map +1 -1
- package/dist/FiberHandle.d.ts +21 -0
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +21 -4
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +35 -0
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +19 -0
- package/dist/FiberMap.js.map +1 -1
- package/dist/FiberSet.d.ts +20 -0
- package/dist/FiberSet.d.ts.map +1 -1
- package/dist/FiberSet.js +14 -0
- package/dist/FiberSet.js.map +1 -1
- package/dist/FileSystem.d.ts +15 -0
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +8 -0
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts +55 -0
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +28 -0
- package/dist/Filter.js.map +1 -1
- package/dist/Formatter.d.ts +3 -0
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +39 -1
- package/dist/Formatter.js.map +1 -1
- package/dist/Function.d.ts +30 -0
- package/dist/Function.d.ts.map +1 -1
- package/dist/Function.js +20 -0
- package/dist/Function.js.map +1 -1
- package/dist/Graph.d.ts +247 -12
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +149 -28
- package/dist/Graph.js.map +1 -1
- package/dist/HKT.d.ts +5 -0
- package/dist/HKT.d.ts.map +1 -1
- package/dist/Hash.d.ts +14 -0
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +12 -0
- package/dist/Hash.js.map +1 -1
- package/dist/HashMap.d.ts +91 -0
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +39 -0
- package/dist/HashMap.js.map +1 -1
- package/dist/HashRing.d.ts +17 -0
- package/dist/HashRing.d.ts.map +1 -1
- package/dist/HashRing.js +22 -5
- package/dist/HashRing.js.map +1 -1
- package/dist/HashSet.d.ts +49 -0
- package/dist/HashSet.d.ts.map +1 -1
- package/dist/HashSet.js +19 -0
- package/dist/HashSet.js.map +1 -1
- package/dist/Inspectable.d.ts +7 -0
- package/dist/Inspectable.d.ts.map +1 -1
- package/dist/Inspectable.js +6 -0
- package/dist/Inspectable.js.map +1 -1
- package/dist/Iterable.d.ts +127 -0
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +51 -0
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonPatch.d.ts +4 -0
- package/dist/JsonPatch.d.ts.map +1 -1
- package/dist/JsonPatch.js +3 -0
- package/dist/JsonPatch.js.map +1 -1
- package/dist/JsonPointer.d.ts +5 -0
- package/dist/JsonPointer.d.ts.map +1 -1
- package/dist/JsonPointer.js +5 -0
- package/dist/JsonPointer.js.map +1 -1
- package/dist/JsonSchema.d.ts +16 -0
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +11 -0
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Latch.d.ts +14 -0
- package/dist/Latch.d.ts.map +1 -1
- package/dist/Latch.js +10 -0
- package/dist/Latch.js.map +1 -1
- package/dist/Layer.d.ts +100 -0
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +45 -1
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts +7 -0
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LayerMap.js +4 -0
- package/dist/LayerMap.js.map +1 -1
- package/dist/LayerRef.d.ts +5 -0
- package/dist/LayerRef.d.ts.map +1 -1
- package/dist/LayerRef.js +3 -0
- package/dist/LayerRef.js.map +1 -1
- package/dist/LogLevel.d.ts +20 -0
- package/dist/LogLevel.d.ts.map +1 -1
- package/dist/LogLevel.js +9 -0
- package/dist/LogLevel.js.map +1 -1
- package/dist/Logger.d.ts +25 -0
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +30 -4
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +5 -0
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +9 -1
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Match.d.ts +51 -0
- package/dist/Match.d.ts.map +1 -1
- package/dist/Match.js +39 -0
- package/dist/Match.js.map +1 -1
- package/dist/Metric.d.ts +59 -0
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +31 -0
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts +32 -0
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js +16 -0
- package/dist/MutableHashMap.js.map +1 -1
- package/dist/MutableHashSet.d.ts +16 -0
- package/dist/MutableHashSet.d.ts.map +1 -1
- package/dist/MutableHashSet.js +10 -0
- package/dist/MutableHashSet.js.map +1 -1
- package/dist/MutableList.d.ts +20 -0
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +18 -0
- package/dist/MutableList.js.map +1 -1
- package/dist/MutableRef.d.ts +31 -0
- package/dist/MutableRef.d.ts.map +1 -1
- package/dist/MutableRef.js +17 -0
- package/dist/MutableRef.js.map +1 -1
- package/dist/Newtype.d.ts +9 -0
- package/dist/Newtype.d.ts.map +1 -1
- package/dist/Newtype.js +6 -0
- package/dist/Newtype.js.map +1 -1
- package/dist/NonEmptyIterable.d.ts +4 -0
- package/dist/NonEmptyIterable.d.ts.map +1 -1
- package/dist/NonEmptyIterable.js +2 -0
- package/dist/NonEmptyIterable.js.map +1 -1
- package/dist/Number.d.ts +61 -0
- package/dist/Number.d.ts.map +1 -1
- package/dist/Number.js +31 -0
- package/dist/Number.js.map +1 -1
- package/dist/Optic.d.ts +41 -0
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +20 -0
- package/dist/Optic.js.map +1 -1
- package/dist/Option.d.ts +134 -0
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +61 -0
- package/dist/Option.js.map +1 -1
- package/dist/Order.d.ts +29 -0
- package/dist/Order.d.ts.map +1 -1
- package/dist/Order.js +24 -0
- package/dist/Order.js.map +1 -1
- package/dist/Ordering.d.ts +7 -0
- package/dist/Ordering.d.ts.map +1 -1
- package/dist/Ordering.js +3 -0
- package/dist/Ordering.js.map +1 -1
- package/dist/PartitionedSemaphore.d.ts +24 -0
- package/dist/PartitionedSemaphore.d.ts.map +1 -1
- package/dist/PartitionedSemaphore.js +47 -21
- package/dist/PartitionedSemaphore.js.map +1 -1
- package/dist/Path.d.ts +6 -0
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +4 -0
- package/dist/Path.js.map +1 -1
- package/dist/Pipeable.d.ts +7 -0
- package/dist/Pipeable.d.ts.map +1 -1
- package/dist/Pipeable.js +5 -0
- package/dist/Pipeable.js.map +1 -1
- package/dist/PlatformError.d.ts +8 -0
- package/dist/PlatformError.d.ts.map +1 -1
- package/dist/PlatformError.js +7 -0
- package/dist/PlatformError.js.map +1 -1
- package/dist/Pool.d.ts +28 -5
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +42 -42
- package/dist/Pool.js.map +1 -1
- package/dist/Predicate.d.ts +84 -0
- package/dist/Predicate.d.ts.map +1 -1
- package/dist/Predicate.js +48 -0
- package/dist/Predicate.js.map +1 -1
- package/dist/PrimaryKey.d.ts +5 -0
- package/dist/PrimaryKey.d.ts.map +1 -1
- package/dist/PrimaryKey.js +4 -0
- package/dist/PrimaryKey.js.map +1 -1
- package/dist/PubSub.d.ts +67 -5
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +60 -8
- package/dist/PubSub.js.map +1 -1
- package/dist/Pull.d.ts +20 -0
- package/dist/Pull.d.ts.map +1 -1
- package/dist/Pull.js +10 -0
- package/dist/Pull.js.map +1 -1
- package/dist/Queue.d.ts +60 -0
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +58 -8
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts +13 -0
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +9 -0
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +23 -0
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +24 -1
- package/dist/RcMap.js.map +1 -1
- package/dist/RcRef.d.ts +6 -0
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/RcRef.js +3 -0
- package/dist/RcRef.js.map +1 -1
- package/dist/Record.d.ts +100 -0
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +43 -0
- package/dist/Record.js.map +1 -1
- package/dist/Redactable.d.ts +6 -0
- package/dist/Redactable.d.ts.map +1 -1
- package/dist/Redactable.js +4 -0
- package/dist/Redactable.js.map +1 -1
- package/dist/Redacted.d.ts +8 -0
- package/dist/Redacted.d.ts.map +1 -1
- package/dist/Redacted.js +6 -0
- package/dist/Redacted.js.map +1 -1
- package/dist/Reducer.d.ts +4 -0
- package/dist/Reducer.d.ts.map +1 -1
- package/dist/Reducer.js +3 -0
- package/dist/Reducer.js.map +1 -1
- package/dist/Ref.d.ts +20 -0
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +16 -0
- package/dist/Ref.js.map +1 -1
- package/dist/References.d.ts +21 -0
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +19 -0
- package/dist/References.js.map +1 -1
- package/dist/RegExp.d.ts +3 -0
- package/dist/RegExp.d.ts.map +1 -1
- package/dist/RegExp.js +4 -0
- package/dist/RegExp.js.map +1 -1
- package/dist/Request.d.ts +32 -0
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js +12 -0
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +42 -0
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +27 -6
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Resource.d.ts +6 -0
- package/dist/Resource.d.ts.map +1 -1
- package/dist/Resource.js +6 -0
- package/dist/Resource.js.map +1 -1
- package/dist/Result.d.ts +91 -0
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +41 -0
- package/dist/Result.js.map +1 -1
- package/dist/Runtime.d.ts +9 -0
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +7 -0
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts +57 -0
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +32 -0
- package/dist/Schedule.js.map +1 -1
- package/dist/Scheduler.d.ts +7 -0
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +5 -0
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +496 -1
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +280 -1
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +107 -0
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +81 -1
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +69 -2
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +63 -4
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts +33 -0
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +18 -0
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts +25 -0
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +26 -0
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +147 -0
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +99 -0
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +53 -0
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +46 -0
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/Scope.d.ts +19 -0
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +12 -0
- package/dist/Scope.js.map +1 -1
- package/dist/ScopedCache.d.ts +34 -0
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +50 -19
- package/dist/ScopedCache.js.map +1 -1
- package/dist/ScopedRef.d.ts +9 -0
- package/dist/ScopedRef.d.ts.map +1 -1
- package/dist/ScopedRef.js +6 -0
- package/dist/ScopedRef.js.map +1 -1
- package/dist/Semaphore.d.ts +26 -0
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +10 -0
- package/dist/Semaphore.js.map +1 -1
- package/dist/Sink.d.ts +125 -1
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +75 -1
- package/dist/Sink.js.map +1 -1
- package/dist/StandardSchema.d.ts +1 -0
- package/dist/StandardSchema.d.ts.map +1 -1
- package/dist/StandardSchema.js +1 -0
- package/dist/Stdio.d.ts +7 -0
- package/dist/Stdio.d.ts.map +1 -1
- package/dist/Stdio.js +5 -0
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +603 -6
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +316 -57
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +87 -0
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +61 -0
- package/dist/String.js.map +1 -1
- package/dist/Struct.d.ts +46 -0
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +19 -0
- package/dist/Struct.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +65 -0
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +25 -0
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/Symbol.d.ts +2 -0
- package/dist/Symbol.d.ts.map +1 -1
- package/dist/Symbol.js +2 -0
- package/dist/Symbol.js.map +1 -1
- package/dist/SynchronizedRef.d.ts +63 -0
- package/dist/SynchronizedRef.d.ts.map +1 -1
- package/dist/SynchronizedRef.js +24 -0
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Take.d.ts +3 -0
- package/dist/Take.d.ts.map +1 -1
- package/dist/Take.js +1 -0
- package/dist/Take.js.map +1 -1
- package/dist/Terminal.d.ts +8 -0
- package/dist/Terminal.d.ts.map +1 -1
- package/dist/Terminal.js +4 -0
- package/dist/Terminal.js.map +1 -1
- package/dist/Tracer.d.ts +23 -0
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +12 -0
- package/dist/Tracer.js.map +1 -1
- package/dist/Trie.d.ts +68 -0
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +28 -0
- package/dist/Trie.js.map +1 -1
- package/dist/Tuple.d.ts +38 -0
- package/dist/Tuple.d.ts.map +1 -1
- package/dist/Tuple.js +18 -0
- package/dist/Tuple.js.map +1 -1
- package/dist/TxChunk.d.ts +52 -0
- package/dist/TxChunk.d.ts.map +1 -1
- package/dist/TxChunk.js +23 -0
- package/dist/TxChunk.js.map +1 -1
- package/dist/TxDeferred.d.ts +15 -0
- package/dist/TxDeferred.d.ts.map +1 -1
- package/dist/TxDeferred.js +8 -0
- package/dist/TxDeferred.js.map +1 -1
- package/dist/TxHashMap.d.ts +83 -0
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js +52 -7
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts +51 -0
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js +29 -4
- package/dist/TxHashSet.js.map +1 -1
- package/dist/TxPriorityQueue.d.ts +30 -0
- package/dist/TxPriorityQueue.d.ts.map +1 -1
- package/dist/TxPriorityQueue.js +22 -1
- package/dist/TxPriorityQueue.js.map +1 -1
- package/dist/TxPubSub.d.ts +25 -0
- package/dist/TxPubSub.d.ts.map +1 -1
- package/dist/TxPubSub.js +19 -0
- package/dist/TxPubSub.js.map +1 -1
- package/dist/TxQueue.d.ts +51 -0
- package/dist/TxQueue.d.ts.map +1 -1
- package/dist/TxQueue.js +30 -0
- package/dist/TxQueue.js.map +1 -1
- package/dist/TxReentrantLock.d.ts +24 -0
- package/dist/TxReentrantLock.d.ts.map +1 -1
- package/dist/TxReentrantLock.js +32 -18
- package/dist/TxReentrantLock.js.map +1 -1
- package/dist/TxRef.d.ts +14 -0
- package/dist/TxRef.d.ts.map +1 -1
- package/dist/TxRef.js +7 -0
- package/dist/TxRef.js.map +1 -1
- package/dist/TxSemaphore.d.ts +25 -0
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +29 -13
- package/dist/TxSemaphore.js.map +1 -1
- package/dist/TxSubscriptionRef.d.ts +25 -0
- package/dist/TxSubscriptionRef.d.ts.map +1 -1
- package/dist/TxSubscriptionRef.js +12 -0
- package/dist/TxSubscriptionRef.js.map +1 -1
- package/dist/Types.d.ts +36 -0
- package/dist/Types.d.ts.map +1 -1
- package/dist/Types.js +1 -0
- package/dist/UndefinedOr.d.ts +15 -0
- package/dist/UndefinedOr.d.ts.map +1 -1
- package/dist/UndefinedOr.js +9 -0
- package/dist/UndefinedOr.js.map +1 -1
- package/dist/Unify.d.ts +15 -0
- package/dist/Unify.d.ts.map +1 -1
- package/dist/Unify.js +2 -0
- package/dist/Unify.js.map +1 -1
- package/dist/Utils.d.ts +4 -0
- package/dist/Utils.d.ts.map +1 -1
- package/dist/Utils.js +1 -0
- package/dist/Utils.js.map +1 -1
- package/dist/Version.d.ts +26 -0
- package/dist/Version.d.ts.map +1 -0
- package/dist/Version.js +36 -0
- package/dist/Version.js.map +1 -0
- package/dist/ai/Chat.js +1 -1
- package/dist/ai/Chat.js.map +1 -1
- package/dist/ai/DecisionModel.d.ts +22 -0
- package/dist/ai/DecisionModel.d.ts.map +1 -1
- package/dist/ai/DecisionModel.js +22 -4
- package/dist/ai/DecisionModel.js.map +1 -1
- package/dist/ai/LanguageModel.d.ts +8 -0
- package/dist/ai/LanguageModel.d.ts.map +1 -1
- package/dist/ai/LanguageModel.js +27 -15
- package/dist/ai/LanguageModel.js.map +1 -1
- package/dist/ai/McpSchema.d.ts +508 -508
- package/dist/ai/McpSchema.d.ts.map +1 -1
- package/dist/ai/McpSchema.js +1 -1
- package/dist/ai/McpSchema.js.map +1 -1
- package/dist/ai/McpServer.d.ts +32 -11
- package/dist/ai/McpServer.d.ts.map +1 -1
- package/dist/ai/McpServer.js +224 -172
- package/dist/ai/McpServer.js.map +1 -1
- package/dist/ai/Response.d.ts.map +1 -1
- package/dist/ai/Response.js +22 -12
- package/dist/ai/Response.js.map +1 -1
- package/dist/ai/Telemetry.d.ts +49 -41
- package/dist/ai/Telemetry.d.ts.map +1 -1
- package/dist/ai/Telemetry.js +6 -8
- package/dist/ai/Telemetry.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2024_11_05.js +1 -0
- package/dist/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_03_26.js +1 -0
- package/dist/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_06_18.js +1 -0
- package/dist/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -1
- package/dist/ai/internal/mcpProtocol/v2025_11_25.js +1 -0
- package/dist/ai/internal/mcpProtocol/v2025_11_25.js.map +1 -1
- package/dist/ai/internal/mcpRuntime.js +79 -46
- package/dist/ai/internal/mcpRuntime.js.map +1 -1
- package/dist/ai/internal/mcpSchema/v2024_11_05.js +3 -1
- package/dist/ai/internal/mcpSchema/v2024_11_05.js.map +1 -1
- package/dist/ai/internal/mcpStatefulRuntime.js +1 -0
- package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.js +11 -2
- package/dist/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/cluster/K8sHttpClient.d.ts.map +1 -1
- package/dist/cluster/K8sHttpClient.js +5 -2
- package/dist/cluster/K8sHttpClient.js.map +1 -1
- package/dist/cluster/Sharding.d.ts.map +1 -1
- package/dist/cluster/Sharding.js +14 -7
- package/dist/cluster/Sharding.js.map +1 -1
- package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/cluster/SqlMessageStorage.js +21 -12
- package/dist/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/cluster/SqlRunnerStorage.js +30 -44
- package/dist/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/cluster/internal/entityManager.js +63 -62
- package/dist/cluster/internal/entityManager.js.map +1 -1
- package/dist/cluster/internal/interruptors.js +8 -0
- package/dist/cluster/internal/interruptors.js.map +1 -1
- package/dist/cluster/internal/resourceMap.js +39 -14
- package/dist/cluster/internal/resourceMap.js.map +1 -1
- package/dist/cluster/internal/resourceRef.js +168 -87
- package/dist/cluster/internal/resourceRef.js.map +1 -1
- package/dist/encoding/Base64.d.ts +4 -0
- package/dist/encoding/Base64.d.ts.map +1 -1
- package/dist/encoding/Base64.js +4 -0
- package/dist/encoding/Base64.js.map +1 -1
- package/dist/encoding/Base64Url.d.ts +4 -0
- package/dist/encoding/Base64Url.d.ts.map +1 -1
- package/dist/encoding/Base64Url.js +4 -0
- package/dist/encoding/Base64Url.js.map +1 -1
- package/dist/encoding/EncodingError.d.ts +4 -0
- package/dist/encoding/EncodingError.d.ts.map +1 -1
- package/dist/encoding/EncodingError.js +4 -0
- package/dist/encoding/EncodingError.js.map +1 -1
- package/dist/encoding/Hex.d.ts +5 -0
- package/dist/encoding/Hex.d.ts.map +1 -1
- package/dist/encoding/Hex.js +5 -0
- package/dist/encoding/Hex.js.map +1 -1
- package/dist/encoding/Toml.js +2 -2
- package/dist/encoding/Toml.js.map +1 -1
- package/dist/encoding/Yaml.d.ts.map +1 -1
- package/dist/encoding/Yaml.js +6 -4
- package/dist/encoding/Yaml.js.map +1 -1
- package/dist/encoding/index.d.ts +4 -0
- package/dist/encoding/index.d.ts.map +1 -1
- package/dist/encoding/index.js +4 -0
- package/dist/encoding/index.js.map +1 -1
- package/dist/eventlog/SqlEventJournal.js +8 -4
- package/dist/eventlog/SqlEventJournal.js.map +1 -1
- package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts +27 -10
- package/dist/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/eventlog/SqlEventLogServerUnencrypted.js +49 -7
- package/dist/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
- package/dist/http/Headers.d.ts +3 -1
- package/dist/http/Headers.d.ts.map +1 -1
- package/dist/http/Headers.js +4 -2
- package/dist/http/Headers.js.map +1 -1
- package/dist/http/HttpClient.d.ts +9 -0
- package/dist/http/HttpClient.d.ts.map +1 -1
- package/dist/http/HttpClient.js +40 -21
- package/dist/http/HttpClient.js.map +1 -1
- package/dist/http/HttpClientResponse.js +3 -1
- package/dist/http/HttpClientResponse.js.map +1 -1
- package/dist/http/HttpEffect.d.ts +3 -0
- package/dist/http/HttpEffect.d.ts.map +1 -1
- package/dist/http/HttpEffect.js +5 -2
- package/dist/http/HttpEffect.js.map +1 -1
- package/dist/http/HttpMiddleware.d.ts +17 -0
- package/dist/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/http/HttpMiddleware.js +58 -40
- package/dist/http/HttpMiddleware.js.map +1 -1
- package/dist/http/HttpServer.d.ts +1 -1
- package/dist/http/HttpServer.d.ts.map +1 -1
- package/dist/http/HttpStaticServer.d.ts.map +1 -1
- package/dist/http/HttpStaticServer.js +14 -0
- package/dist/http/HttpStaticServer.js.map +1 -1
- package/dist/http/HttpTraceContext.d.ts +1 -1
- package/dist/http/HttpTraceContext.d.ts.map +1 -1
- package/dist/http/HttpTraceContext.js +4 -4
- package/dist/http/HttpTraceContext.js.map +1 -1
- package/dist/http/internal/tracing.d.ts +2 -0
- package/dist/http/internal/tracing.d.ts.map +1 -0
- package/dist/http/internal/tracing.js +37 -0
- package/dist/http/internal/tracing.js.map +1 -0
- package/dist/http-api/HttpApiBuilder.js +2 -1
- package/dist/http-api/HttpApiBuilder.js.map +1 -1
- package/dist/http-api/HttpApiClient.d.ts +12 -3
- package/dist/http-api/HttpApiClient.d.ts.map +1 -1
- package/dist/http-api/HttpApiClient.js.map +1 -1
- package/dist/http-api/HttpApiError.d.ts +4 -2
- package/dist/http-api/HttpApiError.d.ts.map +1 -1
- package/dist/http-api/HttpApiError.js +7 -3
- package/dist/http-api/HttpApiError.js.map +1 -1
- package/dist/http-api/HttpApiSecurity.d.ts +8 -8
- package/dist/http-api/HttpApiSecurity.js +8 -8
- package/dist/index.d.ts +155 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +155 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/arbitrary/array.js +3 -3
- package/dist/internal/arbitrary/array.js.map +1 -1
- package/dist/internal/arbitrary/model.js +26 -11
- package/dist/internal/arbitrary/model.js.map +1 -1
- package/dist/internal/arbitrary/runner.js +8 -8
- package/dist/internal/arbitrary/runner.js.map +1 -1
- package/dist/internal/arbitrary/schema.js +4 -5
- package/dist/internal/arbitrary/schema.js.map +1 -1
- package/dist/internal/core.js +43 -2
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/dateTime.js +1 -1
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/effect.js +104 -120
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/rcRef.js +59 -23
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/internal/schedule.js +7 -5
- package/dist/internal/schedule.js.map +1 -1
- package/dist/internal/schema/fromJsonSchemaDocument.js +11 -8
- package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/standardSchema.js +2 -2
- package/dist/internal/schema/standardSchema.js.map +1 -1
- package/dist/internal/version.d.ts +2 -0
- package/dist/internal/version.d.ts.map +1 -0
- package/dist/internal/version.js +3 -0
- package/dist/internal/version.js.map +1 -0
- package/dist/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/observability/OtlpExporter.js +5 -6
- package/dist/observability/OtlpExporter.js.map +1 -1
- package/dist/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/observability/OtlpLogger.js +23 -27
- package/dist/observability/OtlpLogger.js.map +1 -1
- package/dist/observability/OtlpMetrics.d.ts +5 -3
- package/dist/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/observability/OtlpMetrics.js +21 -94
- package/dist/observability/OtlpMetrics.js.map +1 -1
- package/dist/observability/OtlpResource.d.ts +4 -3
- package/dist/observability/OtlpResource.d.ts.map +1 -1
- package/dist/observability/OtlpResource.js +20 -23
- package/dist/observability/OtlpResource.js.map +1 -1
- package/dist/observability/OtlpTracer.d.ts +1 -0
- package/dist/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/observability/OtlpTracer.js +32 -36
- package/dist/observability/OtlpTracer.js.map +1 -1
- package/dist/observability/internal/otlpProtobuf.js +32 -1
- package/dist/observability/internal/otlpProtobuf.js.map +1 -1
- package/dist/reactivity/AsyncResult.d.ts +1 -1
- package/dist/reactivity/Atom.d.ts +5 -5
- package/dist/reactivity/Atom.d.ts.map +1 -1
- package/dist/reactivity/Atom.js +9 -5
- package/dist/reactivity/Atom.js.map +1 -1
- package/dist/reactivity/AtomHttpApi.d.ts +2 -2
- package/dist/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/reactivity/AtomRegistry.d.ts +8 -0
- package/dist/reactivity/AtomRegistry.d.ts.map +1 -1
- package/dist/reactivity/AtomRegistry.js.map +1 -1
- package/dist/rpc/RpcClient.d.ts +21 -3
- package/dist/rpc/RpcClient.d.ts.map +1 -1
- package/dist/rpc/RpcClient.js +58 -34
- package/dist/rpc/RpcClient.js.map +1 -1
- package/dist/rpc/RpcServer.d.ts.map +1 -1
- package/dist/rpc/RpcServer.js +20 -23
- package/dist/rpc/RpcServer.js.map +1 -1
- package/dist/rpc/Utils.d.ts +2 -3
- package/dist/rpc/Utils.d.ts.map +1 -1
- package/dist/rpc/Utils.js +3 -4
- package/dist/rpc/Utils.js.map +1 -1
- package/dist/rpc/internal/tracing.d.ts +2 -0
- package/dist/rpc/internal/tracing.d.ts.map +1 -0
- package/dist/rpc/internal/tracing.js +18 -0
- package/dist/rpc/internal/tracing.js.map +1 -0
- package/dist/schema/SchemaCompiler/runtime.js +9 -1
- package/dist/schema/SchemaCompiler/runtime.js.map +1 -1
- package/dist/sql/SqlClient.js +4 -4
- package/dist/sql/SqlClient.js.map +1 -1
- package/dist/sql/Statement.d.ts +21 -1
- package/dist/sql/Statement.d.ts.map +1 -1
- package/dist/sql/Statement.js +55 -7
- package/dist/sql/Statement.js.map +1 -1
- package/dist/testing/TestClock.d.ts +8 -0
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +7 -0
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestConsole.d.ts +7 -0
- package/dist/testing/TestConsole.d.ts.map +1 -1
- package/dist/testing/TestConsole.js +6 -0
- package/dist/testing/TestConsole.js.map +1 -1
- package/dist/testing/index.d.ts +3 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +3 -0
- package/dist/testing/index.js.map +1 -1
- package/dist/workflow/WorkflowEngine.d.ts +2 -0
- package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/workflow/WorkflowEngine.js +1 -0
- package/dist/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +3 -3
- package/src/Array.ts +351 -3
- package/src/BigDecimal.ts +88 -0
- package/src/BigInt.ts +68 -0
- package/src/Boolean.ts +34 -0
- package/src/Brand.ts +10 -0
- package/src/ByteSize.ts +87 -0
- package/src/Cache.ts +72 -24
- package/src/Cause.ts +83 -1
- package/src/Channel.ts +368 -18
- package/src/ChannelSchema.ts +13 -0
- package/src/Chunk.ts +193 -0
- package/src/Clock.ts +7 -0
- package/src/Combiner.ts +10 -0
- package/src/Config.ts +82 -8
- package/src/ConfigProvider.ts +28 -0
- package/src/Console.ts +26 -0
- package/src/Context.ts +50 -0
- package/src/Cron.ts +32 -1
- package/src/Crypto.ts +5 -0
- package/src/Data.ts +13 -0
- package/src/DateTime.ts +171 -0
- package/src/Deferred.ts +51 -0
- package/src/Differ.ts +2 -0
- package/src/Duration.ts +90 -0
- package/src/Effect.ts +692 -27
- package/src/Effectable.ts +4 -0
- package/src/Equal.ts +12 -1
- package/src/Equivalence.ts +22 -0
- package/src/ErrorReporter.ts +36 -0
- package/src/ExecutionPlan.ts +58 -14
- package/src/Exit.ts +40 -0
- package/src/Fiber.ts +20 -0
- package/src/FiberHandle.ts +29 -4
- package/src/FiberMap.ts +38 -0
- package/src/FiberSet.ts +21 -0
- package/src/FileSystem.ts +16 -0
- package/src/Filter.ts +55 -0
- package/src/Formatter.ts +42 -1
- package/src/Function.ts +30 -0
- package/src/Graph.ts +317 -36
- package/src/HKT.ts +5 -0
- package/src/Hash.ts +15 -0
- package/src/HashMap.ts +91 -0
- package/src/HashRing.ts +32 -5
- package/src/HashSet.ts +53 -0
- package/src/Inspectable.ts +8 -0
- package/src/Iterable.ts +127 -0
- package/src/JsonPatch.ts +5 -0
- package/src/JsonPointer.ts +5 -0
- package/src/JsonSchema.ts +17 -0
- package/src/Latch.ts +14 -0
- package/src/Layer.ts +101 -1
- package/src/LayerMap.ts +7 -0
- package/src/LayerRef.ts +5 -0
- package/src/LogLevel.ts +20 -0
- package/src/Logger.ts +41 -5
- package/src/ManagedRuntime.ts +12 -1
- package/src/Match.ts +52 -0
- package/src/Metric.ts +69 -0
- package/src/MutableHashMap.ts +44 -0
- package/src/MutableHashSet.ts +17 -0
- package/src/MutableList.ts +21 -0
- package/src/MutableRef.ts +32 -0
- package/src/Newtype.ts +9 -0
- package/src/NonEmptyIterable.ts +4 -0
- package/src/Number.ts +61 -0
- package/src/Optic.ts +57 -0
- package/src/Option.ts +134 -0
- package/src/Order.ts +30 -0
- package/src/Ordering.ts +7 -0
- package/src/PartitionedSemaphore.ts +61 -22
- package/src/Path.ts +6 -0
- package/src/Pipeable.ts +7 -0
- package/src/PlatformError.ts +8 -0
- package/src/Pool.ts +48 -37
- package/src/Predicate.ts +85 -0
- package/src/PrimaryKey.ts +5 -0
- package/src/PubSub.ts +90 -9
- package/src/Pull.ts +20 -0
- package/src/Queue.ts +80 -10
- package/src/Random.ts +13 -0
- package/src/RcMap.ts +49 -2
- package/src/RcRef.ts +6 -0
- package/src/Record.ts +100 -0
- package/src/Redactable.ts +6 -0
- package/src/Redacted.ts +8 -0
- package/src/Reducer.ts +4 -0
- package/src/Ref.ts +42 -0
- package/src/References.ts +21 -0
- package/src/RegExp.ts +4 -0
- package/src/Request.ts +32 -0
- package/src/RequestResolver.ts +59 -10
- package/src/Resource.ts +7 -0
- package/src/Result.ts +93 -0
- package/src/Runtime.ts +10 -0
- package/src/Schedule.ts +61 -0
- package/src/Scheduler.ts +7 -0
- package/src/Schema.ts +499 -4
- package/src/SchemaAST.ts +115 -1
- package/src/SchemaGetter.ts +80 -4
- package/src/SchemaIssue.ts +34 -0
- package/src/SchemaParser.ts +26 -0
- package/src/SchemaRepresentation.ts +148 -0
- package/src/SchemaTransformation.ts +53 -0
- package/src/Scope.ts +19 -0
- package/src/ScopedCache.ts +82 -19
- package/src/ScopedRef.ts +9 -0
- package/src/Semaphore.ts +26 -0
- package/src/Sink.ts +126 -2
- package/src/StandardSchema.ts +1 -0
- package/src/Stdio.ts +7 -0
- package/src/Stream.ts +780 -103
- package/src/String.ts +87 -0
- package/src/Struct.ts +46 -0
- package/src/SubscriptionRef.ts +65 -0
- package/src/Symbol.ts +2 -0
- package/src/SynchronizedRef.ts +63 -0
- package/src/Take.ts +3 -0
- package/src/Terminal.ts +8 -0
- package/src/Tracer.ts +23 -0
- package/src/Trie.ts +68 -0
- package/src/Tuple.ts +38 -0
- package/src/TxChunk.ts +52 -0
- package/src/TxDeferred.ts +15 -0
- package/src/TxHashMap.ts +97 -6
- package/src/TxHashSet.ts +83 -3
- package/src/TxPriorityQueue.ts +34 -2
- package/src/TxPubSub.ts +26 -0
- package/src/TxQueue.ts +51 -0
- package/src/TxReentrantLock.ts +53 -36
- package/src/TxRef.ts +14 -0
- package/src/TxSemaphore.ts +47 -31
- package/src/TxSubscriptionRef.ts +25 -0
- package/src/Types.ts +36 -0
- package/src/UndefinedOr.ts +15 -0
- package/src/Unify.ts +15 -0
- package/src/Utils.ts +4 -0
- package/src/Version.ts +38 -0
- package/src/ai/Chat.ts +1 -1
- package/src/ai/DecisionModel.ts +42 -1
- package/src/ai/LanguageModel.ts +43 -21
- package/src/ai/McpSchema.ts +3 -3
- package/src/ai/McpServer.ts +119 -39
- package/src/ai/Response.ts +27 -12
- package/src/ai/Telemetry.ts +62 -58
- package/src/ai/internal/mcpProtocol/v2024_11_05.ts +1 -0
- package/src/ai/internal/mcpProtocol/v2025_03_26.ts +1 -0
- package/src/ai/internal/mcpProtocol/v2025_06_18.ts +1 -0
- package/src/ai/internal/mcpProtocol/v2025_11_25.ts +1 -0
- package/src/ai/internal/mcpRuntime.ts +84 -43
- package/src/ai/internal/mcpSchema/v2024_11_05.ts +4 -2
- package/src/ai/internal/mcpStatefulRuntime.ts +2 -0
- package/src/cluster/ClusterWorkflowEngine.ts +18 -4
- package/src/cluster/K8sHttpClient.ts +12 -2
- package/src/cluster/Sharding.ts +24 -24
- package/src/cluster/SqlMessageStorage.ts +26 -13
- package/src/cluster/SqlRunnerStorage.ts +85 -113
- package/src/cluster/internal/entityManager.ts +68 -80
- package/src/cluster/internal/interruptors.ts +13 -0
- package/src/cluster/internal/resourceMap.ts +55 -17
- package/src/cluster/internal/resourceRef.ts +189 -96
- package/src/encoding/Base64.ts +4 -0
- package/src/encoding/Base64Url.ts +4 -0
- package/src/encoding/EncodingError.ts +5 -0
- package/src/encoding/Hex.ts +5 -0
- package/src/encoding/Toml.ts +2 -2
- package/src/encoding/Yaml.ts +8 -4
- package/src/encoding/index.ts +4 -0
- package/src/eventlog/SqlEventJournal.ts +18 -4
- package/src/eventlog/SqlEventLogServerUnencrypted.ts +282 -235
- package/src/http/Headers.ts +8 -2
- package/src/http/HttpClient.ts +44 -27
- package/src/http/HttpClientResponse.ts +3 -1
- package/src/http/HttpEffect.ts +11 -2
- package/src/http/HttpMiddleware.ts +67 -46
- package/src/http/HttpServer.ts +1 -1
- package/src/http/HttpStaticServer.ts +16 -0
- package/src/http/HttpTraceContext.ts +8 -4
- package/src/http/internal/tracing.ts +52 -0
- package/src/http-api/HttpApiBuilder.ts +5 -1
- package/src/http-api/HttpApiClient.ts +13 -4
- package/src/http-api/HttpApiError.ts +8 -3
- package/src/http-api/HttpApiSecurity.ts +8 -8
- package/src/index.ts +156 -0
- package/src/internal/arbitrary/array.ts +3 -3
- package/src/internal/arbitrary/model.ts +37 -14
- package/src/internal/arbitrary/runner.ts +7 -7
- package/src/internal/arbitrary/schema.ts +4 -3
- package/src/internal/core.ts +56 -2
- package/src/internal/dateTime.ts +3 -1
- package/src/internal/effect.ts +156 -156
- package/src/internal/rcRef.ts +83 -33
- package/src/internal/schedule.ts +23 -17
- package/src/internal/schema/fromJsonSchemaDocument.ts +5 -3
- package/src/internal/schema/standardSchema.ts +2 -2
- package/src/internal/version.ts +2 -0
- package/src/observability/OtlpExporter.ts +9 -6
- package/src/observability/OtlpLogger.ts +20 -21
- package/src/observability/OtlpMetrics.ts +34 -93
- package/src/observability/OtlpResource.ts +18 -27
- package/src/observability/OtlpTracer.ts +34 -40
- package/src/observability/internal/otlpProtobuf.ts +60 -0
- package/src/reactivity/AsyncResult.ts +1 -1
- package/src/reactivity/Atom.ts +10 -6
- package/src/reactivity/AtomHttpApi.ts +2 -4
- package/src/reactivity/AtomRegistry.ts +7 -0
- package/src/rpc/RpcClient.ts +74 -46
- package/src/rpc/RpcServer.ts +28 -25
- package/src/rpc/Utils.ts +4 -10
- package/src/rpc/internal/tracing.ts +22 -0
- package/src/schema/SchemaCompiler/runtime.ts +4 -1
- package/src/sql/SqlClient.ts +4 -4
- package/src/sql/Statement.ts +59 -7
- package/src/testing/TestClock.ts +9 -0
- package/src/testing/TestConsole.ts +8 -0
- package/src/testing/index.ts +3 -0
- package/src/workflow/WorkflowEngine.ts +4 -0
package/src/internal/effect.ts
CHANGED
|
@@ -50,7 +50,7 @@ import type { Primitive } from "./core.ts"
|
|
|
50
50
|
import {
|
|
51
51
|
args,
|
|
52
52
|
causeAnnotate,
|
|
53
|
-
|
|
53
|
+
causeCombine,
|
|
54
54
|
causeEmpty,
|
|
55
55
|
causeFromReasons,
|
|
56
56
|
CauseImpl,
|
|
@@ -238,48 +238,6 @@ export const causeAnnotations = <E>(
|
|
|
238
238
|
return Context.makeUnsafe(map)
|
|
239
239
|
}
|
|
240
240
|
|
|
241
|
-
const dedupeReasons = <E>(
|
|
242
|
-
self: ReadonlyArray<Cause.Reason<E>>,
|
|
243
|
-
that: ReadonlyArray<Cause.Reason<E>>
|
|
244
|
-
): Array<Cause.Reason<E>> => {
|
|
245
|
-
// Keep deduplication local so causeCombine does not retain Array.ts in the core bundle.
|
|
246
|
-
// Snapshot both arrays before invoking user-defined hash or equality methods.
|
|
247
|
-
const buckets = new Map<number, Array<Cause.Reason<E>>>()
|
|
248
|
-
const out: Array<Cause.Reason<E>> = []
|
|
249
|
-
for (const reason of self.concat(that)) {
|
|
250
|
-
const hash = Hash.hash(reason)
|
|
251
|
-
const bucket = buckets.get(hash)
|
|
252
|
-
if (bucket === undefined) {
|
|
253
|
-
buckets.set(hash, [reason])
|
|
254
|
-
} else if (bucket.some((previous) => Equal.equals(previous, reason))) {
|
|
255
|
-
continue
|
|
256
|
-
} else {
|
|
257
|
-
bucket.push(reason)
|
|
258
|
-
}
|
|
259
|
-
out.push(reason)
|
|
260
|
-
}
|
|
261
|
-
return out
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
/** @internal */
|
|
265
|
-
export const causeCombine: {
|
|
266
|
-
<E2>(that: Cause.Cause<E2>): <E>(self: Cause.Cause<E>) => Cause.Cause<E | E2>
|
|
267
|
-
<E, E2>(self: Cause.Cause<E>, that: Cause.Cause<E2>): Cause.Cause<E | E2>
|
|
268
|
-
} = dual(
|
|
269
|
-
2,
|
|
270
|
-
<E, E2>(self: Cause.Cause<E>, that: Cause.Cause<E2>): Cause.Cause<E | E2> => {
|
|
271
|
-
if (self.reasons.length === 0) {
|
|
272
|
-
return that as Cause.Cause<E | E2>
|
|
273
|
-
} else if (that.reasons.length === 0) {
|
|
274
|
-
return self as Cause.Cause<E | E2>
|
|
275
|
-
}
|
|
276
|
-
const newCause = new CauseImpl<E | E2>(
|
|
277
|
-
dedupeReasons<E | E2>(self.reasons, that.reasons)
|
|
278
|
-
)
|
|
279
|
-
return Equal.equals(self, newCause) ? self : newCause
|
|
280
|
-
}
|
|
281
|
-
)
|
|
282
|
-
|
|
283
241
|
/** @internal */
|
|
284
242
|
export const causeMap: {
|
|
285
243
|
<E, E2>(f: (error: NoInfer<E>) => E2): (self: Cause.Cause<E>) => Cause.Cause<E2>
|
|
@@ -387,6 +345,8 @@ export const causePrettyError = (
|
|
|
387
345
|
error = new globalThis.Error(
|
|
388
346
|
!original ? `Unknown error: ${original}` : kind === "string" ? original as any : formatJson(original)
|
|
389
347
|
)
|
|
348
|
+
const stack = `${error.name}: ${error.message}`
|
|
349
|
+
error.stack = annotations ? addStackAnnotations(stack, annotations) : stack
|
|
390
350
|
}
|
|
391
351
|
return error
|
|
392
352
|
}
|
|
@@ -504,6 +464,21 @@ const fiberVariance = {
|
|
|
504
464
|
|
|
505
465
|
const fiberIdStore = { id: 0 }
|
|
506
466
|
|
|
467
|
+
interface AsyncContext {
|
|
468
|
+
runInAsyncScope<This, Arg, R>(fn: (this: This, arg: Arg) => R, thisArg: This, arg: Arg): R
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
const AsyncResource: (new(type: string) => AsyncContext) | undefined = (() => {
|
|
472
|
+
try {
|
|
473
|
+
return (globalThis as any).process?.getBuiltinModule?.("node:async_hooks")?.AsyncResource
|
|
474
|
+
} catch {
|
|
475
|
+
return undefined
|
|
476
|
+
}
|
|
477
|
+
})()
|
|
478
|
+
|
|
479
|
+
const captureAsyncContext = (): AsyncContext | undefined =>
|
|
480
|
+
AsyncResource === undefined ? undefined : new AsyncResource("effect/Fiber")
|
|
481
|
+
|
|
507
482
|
/** @internal */
|
|
508
483
|
export const getCurrentFiber = (): Fiber.Fiber<any, any> | undefined => (globalThis as any)[currentFiberTypeId]
|
|
509
484
|
|
|
@@ -526,6 +501,7 @@ export class FiberImpl<A = any, E = any> implements Fiber.Fiber<A, E> {
|
|
|
526
501
|
this._running = false
|
|
527
502
|
this._deferredInterrupt = false
|
|
528
503
|
this._parent = undefined
|
|
504
|
+
this._asyncContext = undefined
|
|
529
505
|
this.cache.runtimeMetrics?.recordFiberStart(this.context)
|
|
530
506
|
}
|
|
531
507
|
|
|
@@ -545,6 +521,7 @@ export class FiberImpl<A = any, E = any> implements Fiber.Fiber<A, E> {
|
|
|
545
521
|
declare _running: boolean
|
|
546
522
|
declare _deferredInterrupt: boolean
|
|
547
523
|
declare _parent: FiberImpl<any, any> | undefined
|
|
524
|
+
declare _asyncContext: AsyncContext | undefined
|
|
548
525
|
|
|
549
526
|
// set in setContext
|
|
550
527
|
declare context: Context.Context<never>
|
|
@@ -605,6 +582,10 @@ export class FiberImpl<A = any, E = any> implements Fiber.Fiber<A, E> {
|
|
|
605
582
|
evaluate(effect: Primitive): void {
|
|
606
583
|
if (this._exit) {
|
|
607
584
|
return
|
|
585
|
+
} else if (this._asyncContext !== undefined) {
|
|
586
|
+
const asyncContext = this._asyncContext
|
|
587
|
+
this._asyncContext = undefined
|
|
588
|
+
return asyncContext.runInAsyncScope(this.evaluate, this, effect)
|
|
608
589
|
} else if (this._yielded !== undefined) {
|
|
609
590
|
const yielded = this._yielded as () => void
|
|
610
591
|
this._yielded = undefined
|
|
@@ -612,6 +593,7 @@ export class FiberImpl<A = any, E = any> implements Fiber.Fiber<A, E> {
|
|
|
612
593
|
}
|
|
613
594
|
const exit = this.runLoop(effect)
|
|
614
595
|
if (exit === Yield) {
|
|
596
|
+
this._asyncContext = captureAsyncContext()
|
|
615
597
|
return
|
|
616
598
|
}
|
|
617
599
|
// the interruptChildren middleware is added in Effect.forkChild, so it can be
|
|
@@ -649,44 +631,46 @@ export class FiberImpl<A = any, E = any> implements Fiber.Fiber<A, E> {
|
|
|
649
631
|
this.currentOpCount = 0
|
|
650
632
|
try {
|
|
651
633
|
while (true) {
|
|
652
|
-
|
|
653
|
-
this._deferredInterrupt
|
|
654
|
-
current = failCause(this._interruptedCause!) as any
|
|
655
|
-
}
|
|
656
|
-
this.currentOpCount++
|
|
657
|
-
// Refresh the cache because a primitive can replace the fiber context.
|
|
658
|
-
const cache = this.cache
|
|
659
|
-
if (
|
|
660
|
-
!yielding &&
|
|
661
|
-
!cache.preventYield &&
|
|
662
|
-
cache.scheduler.shouldYield(this as any)
|
|
663
|
-
) {
|
|
664
|
-
yielding = true
|
|
665
|
-
const prev = current
|
|
666
|
-
current = flatMap(yieldNow, () => prev as any) as any
|
|
667
|
-
}
|
|
668
|
-
current = cache.tracerContext
|
|
669
|
-
? cache.tracerContext(current as any, this)
|
|
670
|
-
: (current as any)[evaluate](this)
|
|
671
|
-
if (current === Yield) {
|
|
672
|
-
const yielded = this._yielded!
|
|
673
|
-
if (ExitTypeId in yielded) {
|
|
634
|
+
try {
|
|
635
|
+
if (this._deferredInterrupt) {
|
|
674
636
|
this._deferredInterrupt = false
|
|
675
|
-
this.
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
637
|
+
current = failCause(this._interruptedCause!) as any
|
|
638
|
+
}
|
|
639
|
+
this.currentOpCount++
|
|
640
|
+
// Refresh the cache because a primitive can replace the fiber context.
|
|
641
|
+
const cache = this.cache
|
|
642
|
+
if (
|
|
643
|
+
!yielding &&
|
|
644
|
+
!cache.preventYield &&
|
|
645
|
+
cache.scheduler.shouldYield(this as any)
|
|
646
|
+
) {
|
|
647
|
+
yielding = true
|
|
648
|
+
const prev = current
|
|
649
|
+
current = flatMap(yieldNow, () => prev as any) as any
|
|
650
|
+
}
|
|
651
|
+
current = cache.tracerContext
|
|
652
|
+
? cache.tracerContext(current as any, this)
|
|
653
|
+
: (current as any)[evaluate](this)
|
|
654
|
+
if (current === Yield) {
|
|
655
|
+
const yielded = this._yielded!
|
|
656
|
+
if (ExitTypeId in yielded) {
|
|
657
|
+
this._deferredInterrupt = false
|
|
658
|
+
this._yielded = undefined
|
|
659
|
+
return yielded
|
|
660
|
+
} else if (this._deferredInterrupt) {
|
|
661
|
+
this._yielded = undefined
|
|
662
|
+
yielded()
|
|
663
|
+
continue
|
|
664
|
+
}
|
|
665
|
+
return Yield
|
|
666
|
+
}
|
|
667
|
+
} catch (error) {
|
|
668
|
+
if (!hasProperty(current, evaluate)) {
|
|
669
|
+
return exitDie(`Fiber.runLoop: Not a valid effect: ${String(current)}`)
|
|
681
670
|
}
|
|
682
|
-
|
|
671
|
+
current = exitDie(error) as any
|
|
683
672
|
}
|
|
684
673
|
}
|
|
685
|
-
} catch (error) {
|
|
686
|
-
if (!hasProperty(current, evaluate)) {
|
|
687
|
-
return exitDie(`Fiber.runLoop: Not a valid effect: ${String(current)}`)
|
|
688
|
-
}
|
|
689
|
-
return this.runLoop(exitDie(error) as any)
|
|
690
674
|
} finally {
|
|
691
675
|
this._running = prevRunning
|
|
692
676
|
;(globalThis as any)[currentFiberTypeId] = prevFiber
|
|
@@ -1122,20 +1106,22 @@ export const tryPromise = <A, E = Cause.UnknownError>(
|
|
|
1122
1106
|
? ((cause: unknown) => new UnknownError(cause, "An error occurred in Effect.tryPromise"))
|
|
1123
1107
|
: options.catch
|
|
1124
1108
|
return callbackOptions<A, E>(function(resume, signal) {
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1109
|
+
// Defer the catcher until the fiber restores its async context.
|
|
1110
|
+
const failWithCatch = (cause: unknown) =>
|
|
1111
|
+
suspend(() => {
|
|
1112
|
+
try {
|
|
1113
|
+
return fail(internalCall(() => catcher(cause)) as E)
|
|
1114
|
+
} catch (err) {
|
|
1115
|
+
return die(err)
|
|
1116
|
+
}
|
|
1117
|
+
})
|
|
1132
1118
|
try {
|
|
1133
1119
|
f(signal!).then(
|
|
1134
1120
|
(a) => resume(succeed(a)),
|
|
1135
|
-
failWithCatch
|
|
1121
|
+
(e) => resume(failWithCatch(e))
|
|
1136
1122
|
)
|
|
1137
1123
|
} catch (err) {
|
|
1138
|
-
failWithCatch(err)
|
|
1124
|
+
resume(failWithCatch(err))
|
|
1139
1125
|
}
|
|
1140
1126
|
}, f.length !== 0)
|
|
1141
1127
|
}
|
|
@@ -3946,10 +3932,8 @@ export const scopeTag: Context.Service<Scope.Scope, Scope.Scope> = Context.Servi
|
|
|
3946
3932
|
/** @internal */
|
|
3947
3933
|
export const scopeClose = <A, E>(self: Scope.Scope, exit_: Exit.Exit<A, E>) =>
|
|
3948
3934
|
withFiber((fiber) => {
|
|
3949
|
-
const close = scopeCloseUnsafe(self, exit_)
|
|
3950
|
-
if (close === undefined) return void_
|
|
3951
3935
|
fiberEnterUninterruptibleUnsafe(fiber)
|
|
3952
|
-
return
|
|
3936
|
+
return scopeCloseUnsafe(self, exit_) ?? void_
|
|
3953
3937
|
})
|
|
3954
3938
|
|
|
3955
3939
|
/** @internal */
|
|
@@ -4457,48 +4441,78 @@ export const cachedInvalidateWithTTL: {
|
|
|
4457
4441
|
self: Effect.Effect<A, E, R>,
|
|
4458
4442
|
ttl: Duration.Input | ((exit: Exit.Exit<A, E>) => Duration.Input)
|
|
4459
4443
|
): Effect.Effect<[Effect.Effect<A, E, R>, Effect.Effect<void>]> =>
|
|
4460
|
-
sync(() =>
|
|
4461
|
-
|
|
4462
|
-
|
|
4463
|
-
|
|
4464
|
-
|
|
4465
|
-
|
|
4466
|
-
|
|
4467
|
-
|
|
4468
|
-
|
|
4469
|
-
|
|
4470
|
-
|
|
4471
|
-
|
|
4472
|
-
|
|
4473
|
-
|
|
4474
|
-
|
|
4475
|
-
|
|
4476
|
-
|
|
4477
|
-
|
|
4478
|
-
|
|
4479
|
-
|
|
4480
|
-
|
|
4481
|
-
|
|
4482
|
-
|
|
4483
|
-
|
|
4484
|
-
|
|
4485
|
-
|
|
4486
|
-
|
|
4487
|
-
|
|
4488
|
-
|
|
4489
|
-
|
|
4490
|
-
|
|
4491
|
-
|
|
4492
|
-
|
|
4493
|
-
|
|
4494
|
-
|
|
4495
|
-
|
|
4496
|
-
|
|
4497
|
-
|
|
4498
|
-
|
|
4499
|
-
|
|
4500
|
-
|
|
4501
|
-
|
|
4444
|
+
sync(() =>
|
|
4445
|
+
makeCachedUnsafe(
|
|
4446
|
+
self,
|
|
4447
|
+
typeof ttl === "function"
|
|
4448
|
+
? (exit: Exit.Exit<A, E>) => Duration.toMillis(Duration.fromInputUnsafe(ttl(exit)))
|
|
4449
|
+
: constant(Duration.toMillis(Duration.fromInputUnsafe(ttl)))
|
|
4450
|
+
)
|
|
4451
|
+
))
|
|
4452
|
+
|
|
4453
|
+
const infiniteTTL = constant(Infinity)
|
|
4454
|
+
|
|
4455
|
+
interface CachedRun<A, E> {
|
|
4456
|
+
fiber: FiberImpl<A, E> | undefined
|
|
4457
|
+
awaiters: number
|
|
4458
|
+
}
|
|
4459
|
+
|
|
4460
|
+
const makeCachedUnsafe = <A, E, R>(
|
|
4461
|
+
self: Effect.Effect<A, E, R>,
|
|
4462
|
+
ttlMillis: (exit: Exit.Exit<A, E>) => number
|
|
4463
|
+
): [Effect.Effect<A, E, R>, Effect.Effect<void>] => {
|
|
4464
|
+
let expiresAt = 0
|
|
4465
|
+
let exit: Exit.Exit<A, E> | undefined
|
|
4466
|
+
let current: CachedRun<A, E> | undefined
|
|
4467
|
+
|
|
4468
|
+
const join = (fiber: Fiber.Fiber<unknown, unknown>, run: CachedRun<A, E>): Effect.Effect<A, E> => {
|
|
4469
|
+
run.awaiters++
|
|
4470
|
+
onExitUnsafe(fiber, () => {
|
|
4471
|
+
// Abandon the run once every caller has left, unless it already finished.
|
|
4472
|
+
if (--run.awaiters > 0 || current !== run) return
|
|
4473
|
+
// Detach it first so new callers start a fresh run instead of joining
|
|
4474
|
+
// one that is being interrupted.
|
|
4475
|
+
current = undefined
|
|
4476
|
+
return fiberInterrupt(run.fiber!)
|
|
4477
|
+
})
|
|
4478
|
+
return fiberJoin(run.fiber!)
|
|
4479
|
+
}
|
|
4480
|
+
|
|
4481
|
+
return [
|
|
4482
|
+
withFiber((fiber) => {
|
|
4483
|
+
if (current !== undefined) return join(fiber, current)
|
|
4484
|
+
if (
|
|
4485
|
+
exit !== undefined &&
|
|
4486
|
+
(expiresAt === Infinity || fiber.getRef(ClockRef).currentTimeMillisUnsafe() < expiresAt)
|
|
4487
|
+
) {
|
|
4488
|
+
return exit
|
|
4489
|
+
}
|
|
4490
|
+
exit = undefined
|
|
4491
|
+
const clock = fiber.getRef(ClockRef)
|
|
4492
|
+
const run: CachedRun<A, E> = { fiber: undefined, awaiters: 0 }
|
|
4493
|
+
current = run
|
|
4494
|
+
run.fiber = forkUnsafe(
|
|
4495
|
+
fiber,
|
|
4496
|
+
onExitPrimitive(self, (exit_) => {
|
|
4497
|
+
// An abandoned run must not overwrite or clear a replacement run.
|
|
4498
|
+
if (current !== run) return
|
|
4499
|
+
current = undefined
|
|
4500
|
+
// Interruption is abandonment, so it is never cached.
|
|
4501
|
+
if (exitHasInterrupts(exit_)) return
|
|
4502
|
+
const duration = ttlMillis(exit_)
|
|
4503
|
+
expiresAt = duration === Infinity ? Infinity : clock.currentTimeMillisUnsafe() + duration
|
|
4504
|
+
exit = exit_
|
|
4505
|
+
}),
|
|
4506
|
+
true,
|
|
4507
|
+
true
|
|
4508
|
+
)
|
|
4509
|
+
return run.fiber._exit ?? join(fiber, run)
|
|
4510
|
+
}),
|
|
4511
|
+
sync(() => {
|
|
4512
|
+
exit = undefined
|
|
4513
|
+
})
|
|
4514
|
+
]
|
|
4515
|
+
}
|
|
4502
4516
|
|
|
4503
4517
|
/** @internal */
|
|
4504
4518
|
export const cachedWithTTL: {
|
|
@@ -4525,23 +4539,7 @@ export const cachedWithTTL: {
|
|
|
4525
4539
|
|
|
4526
4540
|
/** @internal */
|
|
4527
4541
|
export const cached = <A, E, R>(self: Effect.Effect<A, E, R>): Effect.Effect<Effect.Effect<A, E, R>> =>
|
|
4528
|
-
sync(() =>
|
|
4529
|
-
const latch = makeLatchUnsafe(false)
|
|
4530
|
-
let started = false
|
|
4531
|
-
let exit: Exit.Exit<A, E> | undefined
|
|
4532
|
-
const wait = flatMap(latch.await, () => exit!)
|
|
4533
|
-
return withFiber((fiber) => {
|
|
4534
|
-
if (exit !== undefined) return exit
|
|
4535
|
-
if (started) return wait
|
|
4536
|
-
started = true
|
|
4537
|
-
onExitUnsafe<A, E>(fiber, (result) =>
|
|
4538
|
-
sync(() => {
|
|
4539
|
-
exit = result
|
|
4540
|
-
latch.openUnsafe()
|
|
4541
|
-
}))
|
|
4542
|
-
return self
|
|
4543
|
-
})
|
|
4544
|
-
})
|
|
4542
|
+
sync(() => makeCachedUnsafe(self, infiniteTTL)[0])
|
|
4545
4543
|
|
|
4546
4544
|
// ----------------------------------------------------------------------------
|
|
4547
4545
|
// interruption
|
|
@@ -5528,15 +5526,17 @@ export const forkUnsafe = <FA, FE, A, E, R>(
|
|
|
5528
5526
|
const parentRuntime = parent as FiberImpl<FA, FE>
|
|
5529
5527
|
const interruptible = uninterruptible === "inherit" ? parentRuntime.interruptible : !uninterruptible
|
|
5530
5528
|
const child = new FiberImpl<A, E>(parentRuntime.context, interruptible)
|
|
5529
|
+
if (!daemon) {
|
|
5530
|
+
parentRuntime.children().add(child)
|
|
5531
|
+
child._parent = parentRuntime
|
|
5532
|
+
}
|
|
5531
5533
|
if (immediate) {
|
|
5532
5534
|
child.evaluate(effect as any)
|
|
5533
5535
|
} else {
|
|
5536
|
+
// Preserve the fork context rather than the dispatcher's context.
|
|
5537
|
+
child._asyncContext = captureAsyncContext()
|
|
5534
5538
|
parentRuntime.currentDispatcher.scheduleTask(() => child.evaluate(effect as any), 0)
|
|
5535
5539
|
}
|
|
5536
|
-
if (!daemon && !child._exit) {
|
|
5537
|
-
parentRuntime.children().add(child)
|
|
5538
|
-
child._parent = parentRuntime
|
|
5539
|
-
}
|
|
5540
5540
|
return child
|
|
5541
5541
|
}
|
|
5542
5542
|
|
|
@@ -5713,9 +5713,9 @@ export const fiberRunIn: {
|
|
|
5713
5713
|
self.interruptUnsafe(self.id)
|
|
5714
5714
|
return self
|
|
5715
5715
|
}
|
|
5716
|
-
|
|
5717
|
-
scopeAddFinalizerUnsafe(scope,
|
|
5718
|
-
self.addObserver(() => scopeRemoveFinalizerUnsafe(scope,
|
|
5716
|
+
scopeRemoveFinalizerUnsafe(scope, self)
|
|
5717
|
+
scopeAddFinalizerUnsafe(scope, self, () => fiberInterrupt(self))
|
|
5718
|
+
self.addObserver(() => scopeRemoveFinalizerUnsafe(scope, self))
|
|
5719
5719
|
return self
|
|
5720
5720
|
})
|
|
5721
5721
|
|
|
@@ -6028,7 +6028,7 @@ export const makeSpanUnsafe = <XA, XE>(
|
|
|
6028
6028
|
links,
|
|
6029
6029
|
startTime: timingEnabled ? clock.currentTimeNanosUnsafe() : bigint0,
|
|
6030
6030
|
kind: options?.kind ?? "internal",
|
|
6031
|
-
root: options?.root ??
|
|
6031
|
+
root: options?.root ?? false,
|
|
6032
6032
|
sampled: options?.sampled ??
|
|
6033
6033
|
(Option.isSome(parent) && parent.value.sampled === false
|
|
6034
6034
|
? false
|
package/src/internal/rcRef.ts
CHANGED
|
@@ -7,17 +7,26 @@ import { identity } from "../Function.ts"
|
|
|
7
7
|
import { pipeArguments } from "../Pipeable.ts"
|
|
8
8
|
import type * as RcRef from "../RcRef.ts"
|
|
9
9
|
import * as Scope from "../Scope.ts"
|
|
10
|
-
import * as Semaphore from "../Semaphore.ts"
|
|
11
10
|
|
|
12
11
|
const TypeId = "~effect/RcRef"
|
|
13
12
|
|
|
14
|
-
type State<A> = State.Empty | State.Acquired<A> | State.Closed
|
|
13
|
+
type State<A> = State.Empty | State.Acquiring<A> | State.Acquired<A> | State.Closed
|
|
15
14
|
|
|
16
15
|
declare namespace State {
|
|
17
16
|
interface Empty {
|
|
18
17
|
readonly _tag: "Empty"
|
|
19
18
|
}
|
|
20
19
|
|
|
20
|
+
interface Acquiring<A> {
|
|
21
|
+
readonly _tag: "Acquiring"
|
|
22
|
+
// Assigned as soon as the acquisition is forked.
|
|
23
|
+
fiber: Fiber.Fiber<Acquired<A>, unknown>
|
|
24
|
+
awaiters: number
|
|
25
|
+
// Set once references are allocated to the waiters, which can happen
|
|
26
|
+
// before the acquisition fiber exits.
|
|
27
|
+
acquired: Acquired<A> | undefined
|
|
28
|
+
}
|
|
29
|
+
|
|
21
30
|
interface Acquired<A> {
|
|
22
31
|
readonly _tag: "Acquired"
|
|
23
32
|
readonly value: A
|
|
@@ -48,7 +57,6 @@ class RcRefImpl<A, E> implements RcRef.RcRef<A, E> {
|
|
|
48
57
|
}
|
|
49
58
|
|
|
50
59
|
state: State<A> = stateEmpty
|
|
51
|
-
readonly semaphore = Semaphore.makeUnsafe(1)
|
|
52
60
|
readonly acquire: Effect.Effect<A, E>
|
|
53
61
|
readonly context: Context.Context<never>
|
|
54
62
|
readonly scope: Scope.Scope
|
|
@@ -85,11 +93,11 @@ export const make = <A, E, R>(options: {
|
|
|
85
93
|
)
|
|
86
94
|
return Effect.as(
|
|
87
95
|
Scope.addFinalizerExit(scope, () => {
|
|
88
|
-
const
|
|
89
|
-
? Scope.close(ref.state.scope, Exit.void)
|
|
90
|
-
: Effect.void
|
|
96
|
+
const state = ref.state
|
|
91
97
|
ref.state = stateClosed
|
|
92
|
-
return close
|
|
98
|
+
if (state._tag === "Acquired") return Scope.close(state.scope, Exit.void)
|
|
99
|
+
if (state._tag === "Acquiring") return Fiber.interrupt(state.fiber)
|
|
100
|
+
return Effect.void
|
|
93
101
|
}),
|
|
94
102
|
ref
|
|
95
103
|
)
|
|
@@ -110,40 +118,82 @@ const getState = <A, E>(
|
|
|
110
118
|
? Effect.as(Fiber.interrupt(state.fiber), state)
|
|
111
119
|
: Effect.succeed(state)
|
|
112
120
|
}
|
|
121
|
+
case "Acquiring": {
|
|
122
|
+
const state = self.state
|
|
123
|
+
state.awaiters++
|
|
124
|
+
return awaitAcquiring(self, state, restore)
|
|
125
|
+
}
|
|
113
126
|
case "Empty": {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
127
|
+
// The caller that starts the acquisition counts as its first awaiter.
|
|
128
|
+
const acquiring: State.Acquiring<A> = {
|
|
129
|
+
_tag: "Acquiring",
|
|
130
|
+
fiber: undefined as any,
|
|
131
|
+
awaiters: 1,
|
|
132
|
+
acquired: undefined
|
|
133
|
+
}
|
|
134
|
+
self.state = acquiring
|
|
135
|
+
const scope = Scope.makeUnsafe()
|
|
136
|
+
// Acquire on a detached fiber so the acquisition is shared by every
|
|
137
|
+
// caller and only interrupted once all of them have been interrupted.
|
|
138
|
+
const acquire = Effect.provideContext(
|
|
139
|
+
self.acquire as Effect.Effect<A, E>,
|
|
140
|
+
Context.add(self.context, Scope.Scope, scope)
|
|
141
|
+
).pipe(
|
|
142
|
+
Effect.flatMap((value) => {
|
|
143
|
+
// The ref was closed, or the acquisition was abandoned.
|
|
144
|
+
if (self.state !== acquiring) {
|
|
145
|
+
return Effect.interrupt
|
|
146
|
+
}
|
|
147
|
+
const state: State.Acquired<A> = {
|
|
148
|
+
_tag: "Acquired",
|
|
149
|
+
value,
|
|
150
|
+
scope,
|
|
151
|
+
fiber: undefined,
|
|
152
|
+
// Every caller still waiting holds a reference.
|
|
153
|
+
refCount: acquiring.awaiters,
|
|
154
|
+
invalidated: false
|
|
118
155
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
}
|
|
128
|
-
const state: State.Acquired<A> = {
|
|
129
|
-
_tag: "Acquired",
|
|
130
|
-
value,
|
|
131
|
-
scope,
|
|
132
|
-
fiber: undefined,
|
|
133
|
-
refCount: 1,
|
|
134
|
-
invalidated: false
|
|
135
|
-
}
|
|
136
|
-
self.state = state
|
|
137
|
-
return Effect.succeed(state)
|
|
138
|
-
}),
|
|
139
|
-
Effect.onExit((exit) => Exit.isFailure(exit) ? Scope.close(scope, exit) : Effect.void)
|
|
140
|
-
)
|
|
156
|
+
self.state = state
|
|
157
|
+
acquiring.acquired = state
|
|
158
|
+
return Effect.succeed(state)
|
|
159
|
+
}),
|
|
160
|
+
Effect.onExit((exit) => {
|
|
161
|
+
if (Exit.isSuccess(exit)) return Effect.void
|
|
162
|
+
if (self.state === acquiring) self.state = stateEmpty
|
|
163
|
+
return Scope.close(scope, exit)
|
|
141
164
|
})
|
|
142
165
|
)
|
|
166
|
+
acquiring.fiber = Effect.runForkWith(Fiber.getCurrent()!.context)(acquire)
|
|
167
|
+
return awaitAcquiring(self, acquiring, restore)
|
|
143
168
|
}
|
|
144
169
|
}
|
|
145
170
|
}
|
|
146
171
|
|
|
172
|
+
const awaitAcquiring = <A, E>(
|
|
173
|
+
self: RcRefImpl<A, E>,
|
|
174
|
+
acquiring: State.Acquiring<A>,
|
|
175
|
+
restore: <AX, EX, RX>(effect: Effect.Effect<AX, EX, RX>) => Effect.Effect<AX, EX, RX>
|
|
176
|
+
): Effect.Effect<State.Acquired<A>, E> =>
|
|
177
|
+
Effect.onExit(
|
|
178
|
+
restore(Fiber.join(acquiring.fiber)) as Effect.Effect<State.Acquired<A>, E>,
|
|
179
|
+
(exit) => {
|
|
180
|
+
const acquired = acquiring.acquired
|
|
181
|
+
if (acquired !== undefined) {
|
|
182
|
+
// The acquisition counted this caller as a reference, possibly before
|
|
183
|
+
// its fiber exited. Release it if the caller was interrupted before it
|
|
184
|
+
// could register its finalizer.
|
|
185
|
+
return Exit.isFailure(exit) ? release(self, acquired) : Effect.void
|
|
186
|
+
}
|
|
187
|
+
// Abandon the acquisition once every caller has left, unless it already
|
|
188
|
+
// failed (a failed acquisition allocated no references).
|
|
189
|
+
if (--acquiring.awaiters > 0 || self.state !== acquiring) return Effect.void
|
|
190
|
+
// Detach it first so new callers start a fresh acquisition instead of
|
|
191
|
+
// joining one that is being interrupted.
|
|
192
|
+
self.state = stateEmpty
|
|
193
|
+
return Fiber.interrupt(acquiring.fiber)
|
|
194
|
+
}
|
|
195
|
+
)
|
|
196
|
+
|
|
147
197
|
/** @internal */
|
|
148
198
|
export const get = <A, E>(self_: RcRef.RcRef<A, E>): Effect.Effect<A, E, Scope.Scope> => {
|
|
149
199
|
const self = self_ as RcRefImpl<A, E>
|
package/src/internal/schedule.ts
CHANGED
|
@@ -3,12 +3,16 @@ import type { Effect, Repeat, Retry } from "../Effect.ts"
|
|
|
3
3
|
import { constant, constTrue, dual, identity } from "../Function.ts"
|
|
4
4
|
import * as Option from "../Option.ts"
|
|
5
5
|
import * as Pull from "../Pull.ts"
|
|
6
|
+
import * as Result from "../Result.ts"
|
|
6
7
|
import * as Schedule from "../Schedule.ts"
|
|
7
8
|
import type { NoInfer } from "../Types.ts"
|
|
8
9
|
import { internalCall } from "../Utils.ts"
|
|
9
10
|
import * as core from "./core.ts"
|
|
10
11
|
import * as effect from "./effect.ts"
|
|
11
12
|
|
|
13
|
+
const findErrorOnly = <E>(cause: Cause.Cause<E>): Result.Result<E, Cause.Cause<never>> =>
|
|
14
|
+
cause.reasons.every(core.isFailReason) ? effect.findError(cause) : Result.fail(cause as Cause.Cause<never>)
|
|
15
|
+
|
|
12
16
|
/** @internal */
|
|
13
17
|
export const repeatOrElse: {
|
|
14
18
|
<R2, A, B, E, E2, E3, R3>(
|
|
@@ -29,21 +33,22 @@ export const repeatOrElse: {
|
|
|
29
33
|
): Effect<B, E3, R | R2 | R3> =>
|
|
30
34
|
effect.flatMap(Schedule.toStepWithMetadata(schedule), (step) => {
|
|
31
35
|
let meta = Schedule.CurrentMetadata.defaultValue()
|
|
32
|
-
return effect.
|
|
33
|
-
|
|
34
|
-
effect.
|
|
35
|
-
effect.
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
return effect.catchCauseFilter(
|
|
37
|
+
Pull.catchDone(
|
|
38
|
+
effect.forever(
|
|
39
|
+
effect.tap(
|
|
40
|
+
effect.flatMap(effect.suspend(() => effect.provideService(self, Schedule.CurrentMetadata, meta)), step),
|
|
41
|
+
(meta_) =>
|
|
42
|
+
effect.sync(() => {
|
|
43
|
+
meta = meta_
|
|
44
|
+
})
|
|
45
|
+
),
|
|
46
|
+
{ disableYield: true }
|
|
40
47
|
),
|
|
41
|
-
|
|
48
|
+
(out) => effect.succeed(out as B)
|
|
42
49
|
),
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
? effect.succeed(error.value as B)
|
|
46
|
-
: orElse(error as E | E2, meta.attempt === 0 ? Option.none() : Option.some(meta as any))
|
|
50
|
+
findErrorOnly,
|
|
51
|
+
(error) => orElse(error, meta.attempt === 0 ? Option.none() : Option.some(meta as any))
|
|
47
52
|
)
|
|
48
53
|
}))
|
|
49
54
|
|
|
@@ -66,8 +71,9 @@ export const retryOrElse: {
|
|
|
66
71
|
effect.flatMap(Schedule.toStepWithMetadata(policy), (step) => {
|
|
67
72
|
let meta = Schedule.CurrentMetadata.defaultValue()
|
|
68
73
|
let lastError!: E
|
|
69
|
-
const loop: Effect<A, E1 | Cause.Done<A1>, R | R1> = effect.
|
|
74
|
+
const loop: Effect<A, E1 | Cause.Done<A1>, R | R1> = effect.catchCauseFilter(
|
|
70
75
|
effect.suspend(() => effect.provideService(self, Schedule.CurrentMetadata, meta)),
|
|
76
|
+
findErrorOnly,
|
|
71
77
|
(error) => {
|
|
72
78
|
lastError = error
|
|
73
79
|
return effect.flatMap(step(error), (meta_) => {
|
|
@@ -198,7 +204,7 @@ export const scheduleFrom = dual<
|
|
|
198
204
|
effect.flatMap(Schedule.toStepWithMetadata(schedule), (step) => {
|
|
199
205
|
let meta = Schedule.CurrentMetadata.defaultValue()
|
|
200
206
|
const selfWithMeta = effect.suspend(() => effect.provideService(self, Schedule.CurrentMetadata, meta))
|
|
201
|
-
return
|
|
207
|
+
return Pull.catchDone(
|
|
202
208
|
effect.flatMap(
|
|
203
209
|
step(initial),
|
|
204
210
|
(meta_) => {
|
|
@@ -210,10 +216,10 @@ export const scheduleFrom = dual<
|
|
|
210
216
|
step(meta_) {
|
|
211
217
|
meta = meta_
|
|
212
218
|
}
|
|
213
|
-
}) as Effect<never, E
|
|
219
|
+
}) as Effect<never, E | Error | Cause.Done<Output>, R | Env>
|
|
214
220
|
}
|
|
215
221
|
),
|
|
216
|
-
(
|
|
222
|
+
(out) => effect.succeed(out as Output)
|
|
217
223
|
)
|
|
218
224
|
}))
|
|
219
225
|
|