effect 4.0.1 → 4.0.3
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 +27 -7
- 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 +60 -0
- 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 +24 -3
- 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 +38 -5
- package/dist/Crypto.d.ts.map +1 -1
- package/dist/Crypto.js +11 -2
- 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 +180 -6
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +98 -6
- 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 +96 -6
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +80 -8
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +527 -0
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +240 -5
- 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 +59 -2
- 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 +9 -0
- 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 +19 -0
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +8 -1
- 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 +8 -0
- 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 +969 -2
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +635 -5
- 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 +26 -3
- 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 +14 -1
- package/dist/Stdio.d.ts.map +1 -1
- package/dist/Stdio.js +6 -0
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +569 -11
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +266 -18
- 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.map +1 -1
- package/dist/ai/LanguageModel.js +14 -13
- package/dist/ai/LanguageModel.js.map +1 -1
- package/dist/ai/McpServer.d.ts +38 -11
- package/dist/ai/McpServer.d.ts.map +1 -1
- package/dist/ai/McpServer.js +276 -190
- package/dist/ai/McpServer.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/v2026_07_28.js +5 -0
- package/dist/ai/internal/mcpProtocol/v2026_07_28.js.map +1 -1
- package/dist/ai/internal/mcpProtocol.js.map +1 -1
- package/dist/ai/internal/mcpRuntime.js +80 -46
- package/dist/ai/internal/mcpRuntime.js.map +1 -1
- package/dist/ai/internal/mcpStatefulRuntime.js +1 -0
- package/dist/ai/internal/mcpStatefulRuntime.js.map +1 -1
- package/dist/cli/CliOutput.d.ts +27 -0
- package/dist/cli/CliOutput.d.ts.map +1 -1
- package/dist/cli/CliOutput.js +33 -10
- package/dist/cli/CliOutput.js.map +1 -1
- package/dist/cli/Command.d.ts.map +1 -1
- package/dist/cli/Command.js +6 -3
- package/dist/cli/Command.js.map +1 -1
- package/dist/cli/Completions.d.ts +3 -3
- package/dist/cli/Completions.d.ts.map +1 -1
- package/dist/cli/Completions.js +8 -5
- package/dist/cli/Completions.js.map +1 -1
- package/dist/cli/GlobalFlag.d.ts +5 -4
- package/dist/cli/GlobalFlag.d.ts.map +1 -1
- package/dist/cli/GlobalFlag.js +3 -3
- package/dist/cli/GlobalFlag.js.map +1 -1
- package/dist/cli/Prompt.d.ts +17 -1
- package/dist/cli/Prompt.d.ts.map +1 -1
- package/dist/cli/Prompt.js +119 -114
- package/dist/cli/Prompt.js.map +1 -1
- package/dist/cli/internal/ansi.d.ts +0 -1
- package/dist/cli/internal/ansi.d.ts.map +1 -1
- package/dist/cli/internal/ansi.js +20 -3
- package/dist/cli/internal/ansi.js.map +1 -1
- package/dist/cli/internal/completions/powershell.d.ts +2 -0
- package/dist/cli/internal/completions/powershell.d.ts.map +1 -0
- package/dist/cli/internal/completions/powershell.js +273 -0
- package/dist/cli/internal/completions/powershell.js.map +1 -0
- package/dist/cli/internal/completions/zsh.js +3 -2
- package/dist/cli/internal/completions/zsh.js.map +1 -1
- package/dist/cli/internal/wizard.d.ts +3 -3
- package/dist/cli/internal/wizard.d.ts.map +1 -1
- package/dist/cli/internal/wizard.js +21 -18
- package/dist/cli/internal/wizard.js.map +1 -1
- package/dist/cluster/ClusterSchema.d.ts +28 -0
- package/dist/cluster/ClusterSchema.d.ts.map +1 -1
- package/dist/cluster/ClusterSchema.js +30 -0
- package/dist/cluster/ClusterSchema.js.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/cluster/ClusterWorkflowEngine.js +10 -18
- 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/MessageStorage.d.ts +18 -3
- package/dist/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/cluster/MessageStorage.js +31 -11
- package/dist/cluster/MessageStorage.js.map +1 -1
- package/dist/cluster/Runners.d.ts.map +1 -1
- package/dist/cluster/Runners.js +8 -2
- package/dist/cluster/Runners.js.map +1 -1
- package/dist/cluster/Sharding.d.ts.map +1 -1
- package/dist/cluster/Sharding.js +181 -62
- package/dist/cluster/Sharding.js.map +1 -1
- package/dist/cluster/SqlMessageStorage.d.ts +59 -19
- package/dist/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/cluster/SqlMessageStorage.js +84 -55
- package/dist/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/cluster/SqlRunnerStorage.d.ts +68 -19
- package/dist/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/cluster/SqlRunnerStorage.js +191 -113
- package/dist/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/cluster/internal/entityManager.js +104 -37
- package/dist/cluster/internal/entityManager.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/FindMyWay/internal/router.js +3 -6
- package/dist/http/FindMyWay/internal/router.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 +15 -0
- package/dist/http/HttpClient.d.ts.map +1 -1
- package/dist/http/HttpClient.js +79 -23
- 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 +56 -39
- 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/HttpTraceContext.d.ts.map +1 -1
- package/dist/http/HttpTraceContext.js +4 -2
- 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 -3
- package/dist/http-api/HttpApiError.d.ts.map +1 -1
- package/dist/http-api/HttpApiError.js +7 -4
- 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/effect.js +53 -46
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/schedule.js +7 -5
- package/dist/internal/schedule.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/net/AddressResolver.d.ts +145 -0
- package/dist/net/AddressResolver.d.ts.map +1 -0
- package/dist/net/AddressResolver.js +114 -0
- package/dist/net/AddressResolver.js.map +1 -0
- package/dist/net/Dns.d.ts +596 -0
- package/dist/net/Dns.d.ts.map +1 -0
- package/dist/net/Dns.js +549 -0
- package/dist/net/Dns.js.map +1 -0
- package/dist/net/Host.d.ts +320 -0
- package/dist/net/Host.d.ts.map +1 -0
- package/dist/net/Host.js +342 -0
- package/dist/net/Host.js.map +1 -0
- package/dist/net/IpInterface.d.ts +76 -3
- package/dist/net/IpInterface.d.ts.map +1 -1
- package/dist/net/IpInterface.js +53 -4
- package/dist/net/IpInterface.js.map +1 -1
- package/dist/net/IpNetwork.d.ts +82 -8
- package/dist/net/IpNetwork.d.ts.map +1 -1
- package/dist/net/IpNetwork.js +60 -4
- package/dist/net/IpNetwork.js.map +1 -1
- package/dist/net/NetAddress.d.ts +388 -35
- package/dist/net/NetAddress.d.ts.map +1 -1
- package/dist/net/NetAddress.js +350 -34
- package/dist/net/NetAddress.js.map +1 -1
- package/dist/net/index.d.ts +15 -0
- package/dist/net/index.d.ts.map +1 -1
- package/dist/net/index.js +15 -0
- package/dist/net/index.js.map +1 -1
- 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 +36 -115
- 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/PrometheusMetrics.js +1 -0
- package/dist/observability/PrometheusMetrics.js.map +1 -1
- package/dist/observability/internal/otlpProtobuf.js +32 -1
- package/dist/observability/internal/otlpProtobuf.js.map +1 -1
- package/dist/persistence/PersistedQueue.d.ts +32 -3
- package/dist/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/persistence/PersistedQueue.js +75 -16
- package/dist/persistence/PersistedQueue.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 +41 -7
- package/dist/rpc/RpcClient.d.ts.map +1 -1
- package/dist/rpc/RpcClient.js +50 -25
- package/dist/rpc/RpcClient.js.map +1 -1
- package/dist/rpc/RpcServer.d.ts +6 -0
- package/dist/rpc/RpcServer.d.ts.map +1 -1
- package/dist/rpc/RpcServer.js +59 -40
- package/dist/rpc/RpcServer.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/socket/DatagramSocket.d.ts +456 -0
- package/dist/socket/DatagramSocket.d.ts.map +1 -0
- package/dist/socket/DatagramSocket.js +535 -0
- package/dist/socket/DatagramSocket.js.map +1 -0
- package/dist/socket/Socket.d.ts +14 -1
- package/dist/socket/Socket.d.ts.map +1 -1
- package/dist/socket/Socket.js +9 -1
- package/dist/socket/Socket.js.map +1 -1
- package/dist/socket/index.d.ts +5 -0
- package/dist/socket/index.d.ts.map +1 -1
- package/dist/socket/index.js +5 -0
- package/dist/socket/index.js.map +1 -1
- package/dist/sql/Migrator.d.ts.map +1 -1
- package/dist/sql/Migrator.js +7 -2
- package/dist/sql/Migrator.js.map +1 -1
- package/dist/sql/SqlClient.d.ts +7 -1
- package/dist/sql/SqlClient.d.ts.map +1 -1
- package/dist/sql/SqlClient.js +35 -10
- 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/TestCrypto.d.ts +73 -0
- package/dist/testing/TestCrypto.d.ts.map +1 -0
- package/dist/testing/TestCrypto.js +87 -0
- package/dist/testing/TestCrypto.js.map +1 -0
- package/dist/testing/index.d.ts +8 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +8 -0
- package/dist/testing/index.js.map +1 -1
- package/dist/workflow/DurableDeferred.d.ts +54 -0
- package/dist/workflow/DurableDeferred.d.ts.map +1 -1
- package/dist/workflow/DurableDeferred.js +78 -49
- package/dist/workflow/DurableDeferred.js.map +1 -1
- package/dist/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/workflow/WorkflowEngine.js +2 -1
- 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 +50 -8
- package/src/Cause.ts +82 -0
- 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 +53 -3
- package/src/Cron.ts +32 -1
- package/src/Crypto.ts +48 -9
- package/src/Data.ts +13 -0
- package/src/DateTime.ts +180 -6
- package/src/Deferred.ts +51 -0
- package/src/Differ.ts +2 -0
- package/src/Duration.ts +126 -16
- package/src/Effect.ts +539 -5
- 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 +64 -2
- 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 +18 -0
- 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 +20 -1
- 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 +23 -0
- 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 +1168 -9
- 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 +55 -3
- 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 +16 -2
- package/src/Stream.ts +633 -26
- 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 +16 -19
- package/src/ai/McpServer.ts +169 -58
- package/src/ai/Telemetry.ts +62 -58
- package/src/ai/internal/mcpProtocol/v2026_07_28.ts +5 -0
- package/src/ai/internal/mcpProtocol.ts +3 -0
- package/src/ai/internal/mcpRuntime.ts +86 -43
- package/src/ai/internal/mcpStatefulRuntime.ts +2 -0
- package/src/cli/CliOutput.ts +33 -16
- package/src/cli/Command.ts +4 -3
- package/src/cli/Completions.ts +9 -6
- package/src/cli/GlobalFlag.ts +19 -11
- package/src/cli/Prompt.ts +159 -149
- package/src/cli/internal/ansi.ts +26 -3
- package/src/cli/internal/completions/powershell.ts +322 -0
- package/src/cli/internal/completions/zsh.ts +4 -2
- package/src/cli/internal/wizard.ts +34 -26
- package/src/cluster/ClusterSchema.ts +32 -0
- package/src/cluster/ClusterWorkflowEngine.ts +13 -24
- package/src/cluster/K8sHttpClient.ts +12 -2
- package/src/cluster/MessageStorage.ts +45 -14
- package/src/cluster/Runners.ts +8 -2
- package/src/cluster/Sharding.ts +207 -49
- package/src/cluster/SqlMessageStorage.ts +118 -84
- package/src/cluster/SqlRunnerStorage.ts +224 -128
- package/src/cluster/internal/entityManager.ts +151 -55
- 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/FindMyWay/internal/router.ts +4 -7
- package/src/http/Headers.ts +8 -2
- package/src/http/HttpClient.ts +100 -29
- package/src/http/HttpClientResponse.ts +3 -1
- package/src/http/HttpEffect.ts +11 -2
- package/src/http/HttpMiddleware.ts +60 -45
- package/src/http/HttpServer.ts +1 -1
- package/src/http/HttpTraceContext.ts +8 -2
- 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 -4
- 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/effect.ts +62 -58
- package/src/internal/schedule.ts +23 -17
- package/src/internal/schema/standardSchema.ts +2 -2
- package/src/internal/version.ts +2 -0
- package/src/net/AddressResolver.ts +222 -0
- package/src/net/Dns.ts +1035 -0
- package/src/net/Host.ts +472 -0
- package/src/net/IpInterface.ts +117 -7
- package/src/net/IpNetwork.ts +116 -17
- package/src/net/NetAddress.ts +611 -76
- package/src/net/index.ts +18 -0
- package/src/observability/OtlpExporter.ts +9 -6
- package/src/observability/OtlpLogger.ts +20 -21
- package/src/observability/OtlpMetrics.ts +46 -116
- package/src/observability/OtlpResource.ts +18 -27
- package/src/observability/OtlpTracer.ts +34 -40
- package/src/observability/PrometheusMetrics.ts +1 -0
- package/src/observability/internal/otlpProtobuf.ts +60 -0
- package/src/persistence/PersistedQueue.ts +146 -53
- 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 +87 -41
- package/src/rpc/RpcServer.ts +85 -48
- package/src/rpc/internal/tracing.ts +22 -0
- package/src/schema/SchemaCompiler/runtime.ts +4 -1
- package/src/socket/DatagramSocket.ts +919 -0
- package/src/socket/Socket.ts +22 -2
- package/src/socket/index.ts +6 -0
- package/src/sql/Migrator.ts +21 -5
- package/src/sql/SqlClient.ts +43 -19
- package/src/sql/Statement.ts +59 -7
- package/src/testing/TestClock.ts +9 -0
- package/src/testing/TestConsole.ts +8 -0
- package/src/testing/TestCrypto.ts +94 -0
- package/src/testing/index.ts +9 -0
- package/src/workflow/DurableDeferred.ts +123 -48
- package/src/workflow/WorkflowEngine.ts +2 -1
package/src/rpc/RpcClient.ts
CHANGED
|
@@ -13,8 +13,9 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import type { NonEmptyReadonlyArray } from "../Array.ts"
|
|
15
15
|
import * as Cause from "../Cause.ts"
|
|
16
|
+
import * as Clock from "../Clock.ts"
|
|
16
17
|
import * as Context from "../Context.ts"
|
|
17
|
-
import
|
|
18
|
+
import * as Duration from "../Duration.ts"
|
|
18
19
|
import * as Effect from "../Effect.ts"
|
|
19
20
|
import * as Exit from "../Exit.ts"
|
|
20
21
|
import * as Fiber from "../Fiber.ts"
|
|
@@ -42,6 +43,7 @@ import type { Span } from "../Tracer.ts"
|
|
|
42
43
|
import * as Transferable from "../workers/Transferable.ts"
|
|
43
44
|
import * as Worker from "../workers/Worker.ts"
|
|
44
45
|
import type { WorkerError } from "../workers/WorkerError.ts"
|
|
46
|
+
import * as RpcTracing from "./internal/tracing.ts"
|
|
45
47
|
import * as Rpc from "./Rpc.ts"
|
|
46
48
|
import { RpcClientDefect, RpcClientError } from "./RpcClientError.ts"
|
|
47
49
|
import type * as RpcGroup from "./RpcGroup.ts"
|
|
@@ -267,7 +269,7 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any, E, const Flatten extend
|
|
|
267
269
|
readonly flatten?: Flatten | undefined
|
|
268
270
|
}
|
|
269
271
|
) {
|
|
270
|
-
const spanPrefix = options
|
|
272
|
+
const spanPrefix = options.spanPrefix
|
|
271
273
|
const supportsAck = options?.supportsAck ?? true
|
|
272
274
|
const disableTracing = options?.disableTracing ?? false
|
|
273
275
|
const generateRequestId = options?.generateRequestId ?? (() => requestIdCounter++ as RequestId)
|
|
@@ -335,8 +337,8 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any, E, const Flatten extend
|
|
|
335
337
|
opts?.discard ?? false
|
|
336
338
|
)
|
|
337
339
|
return disableTracing ? onRequest(undefined) : Effect.useSpan(
|
|
338
|
-
|
|
339
|
-
{ attributes: options.spanAttributes },
|
|
340
|
+
RpcTracing.spanName(spanPrefix, rpc._tag),
|
|
341
|
+
{ kind: "client", attributes: RpcTracing.spanAttributes(rpc._tag, options.spanAttributes) },
|
|
340
342
|
onRequest
|
|
341
343
|
)
|
|
342
344
|
}
|
|
@@ -447,9 +449,10 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any, E, const Flatten extend
|
|
|
447
449
|
return yield* Effect.interrupt
|
|
448
450
|
}
|
|
449
451
|
|
|
450
|
-
const span = disableTracing ? undefined : yield* Effect.makeSpanScoped(
|
|
451
|
-
|
|
452
|
-
|
|
452
|
+
const span = disableTracing ? undefined : yield* Effect.makeSpanScoped(
|
|
453
|
+
RpcTracing.spanName(spanPrefix, rpc._tag),
|
|
454
|
+
{ kind: "client", attributes: RpcTracing.spanAttributes(rpc._tag, options.spanAttributes) }
|
|
455
|
+
)
|
|
453
456
|
const fiber = Fiber.getCurrent()!
|
|
454
457
|
const id = generateRequestId()
|
|
455
458
|
|
|
@@ -1046,20 +1049,36 @@ export const layerProtocolHttp = (options: {
|
|
|
1046
1049
|
* `RpcSerialization`, connection hooks, ping timeouts, and the configured retry
|
|
1047
1050
|
* policy.
|
|
1048
1051
|
*
|
|
1052
|
+
* **Details**
|
|
1053
|
+
*
|
|
1054
|
+
* `pingInterval` defaults to 5 seconds. `pingTimeout` defaults to the interval
|
|
1055
|
+
* and measures time since the last decoded server frame, not the last pong.
|
|
1056
|
+
* The timeout is checked on each ping tick; any decoded frame counts as liveness.
|
|
1057
|
+
*
|
|
1049
1058
|
* @stability unstable
|
|
1050
1059
|
* @category protocols
|
|
1051
1060
|
* @since 4.0.0
|
|
1052
1061
|
*/
|
|
1053
1062
|
export const makeProtocolSocket = (options?: {
|
|
1063
|
+
readonly pingInterval?: Duration.Input | undefined
|
|
1064
|
+
readonly pingTimeout?: Duration.Input | undefined
|
|
1054
1065
|
readonly retryTransientErrors?: boolean | undefined
|
|
1055
1066
|
readonly retryPolicy?: Schedule.Schedule<any, Socket.SocketError> | undefined
|
|
1056
1067
|
/**
|
|
1057
1068
|
* Runs for each retried `SocketOpenError` when `retryTransientErrors` is enabled.
|
|
1058
|
-
* A
|
|
1059
|
-
* The returned `Effect<void>` cannot fail with a typed error or
|
|
1060
|
-
* services; defects are logged and ignored so retries can continue.
|
|
1069
|
+
* A ping timeout fails in-flight calls and is reported through `onPingTimeout`
|
|
1070
|
+
* instead. The returned `Effect<void>` cannot fail with a typed error or
|
|
1071
|
+
* require services; defects are logged and ignored so retries can continue.
|
|
1061
1072
|
*/
|
|
1062
1073
|
readonly onTransientError?: ((error: RpcClientError) => Effect.Effect<void>) | undefined
|
|
1074
|
+
/**
|
|
1075
|
+
* Runs when an open connection is dropped because no server frame arrived
|
|
1076
|
+
* within `pingTimeout`, before `ConnectionHooks.onDisconnect` and before
|
|
1077
|
+
* in-flight calls fail with a `SocketReadError`. Defects are logged and ignored.
|
|
1078
|
+
*
|
|
1079
|
+
* @since 4.0.3
|
|
1080
|
+
*/
|
|
1081
|
+
readonly onPingTimeout?: Effect.Effect<void> | undefined
|
|
1063
1082
|
}): Effect.Effect<
|
|
1064
1083
|
Protocol["Service"],
|
|
1065
1084
|
never,
|
|
@@ -1075,10 +1094,12 @@ export const makeProtocolSocket = (options?: {
|
|
|
1075
1094
|
|
|
1076
1095
|
let parser = serialization.makeUnsafe()
|
|
1077
1096
|
|
|
1078
|
-
//
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1097
|
+
// Encode each ping with the current connection's parser.
|
|
1098
|
+
const pinger = yield* makePinger(Effect.suspend(() => writer.write(parser.encode(constPing)!)), options)
|
|
1099
|
+
const onPingTimeout = Effect.ignoreCause(options?.onPingTimeout ?? Effect.void, {
|
|
1100
|
+
log: true,
|
|
1101
|
+
message: "RpcClient onPingTimeout hook failed"
|
|
1102
|
+
})
|
|
1082
1103
|
let currentError: RpcClientError | undefined
|
|
1083
1104
|
|
|
1084
1105
|
const broadcast = (response: FromServerEncoded) =>
|
|
@@ -1095,15 +1116,13 @@ export const makeProtocolSocket = (options?: {
|
|
|
1095
1116
|
try {
|
|
1096
1117
|
const responses = parser.decode(data) as Array<FromServerEncoded>
|
|
1097
1118
|
if (responses.length === 0) return Effect.void
|
|
1119
|
+
pinger.onFrame()
|
|
1098
1120
|
let i = 0
|
|
1099
1121
|
return Effect.whileLoop({
|
|
1100
1122
|
while: () => i < responses.length,
|
|
1101
1123
|
body: () => {
|
|
1102
1124
|
const response = responses[i++]
|
|
1103
|
-
if (response._tag === "Pong")
|
|
1104
|
-
pinger.onPong()
|
|
1105
|
-
return Effect.void
|
|
1106
|
-
}
|
|
1125
|
+
if (response._tag === "Pong") return Effect.void
|
|
1107
1126
|
if (Object.hasOwn(response, "requestId")) {
|
|
1108
1127
|
const requestId = (response as FromServerEncoded & { readonly requestId: string | number }).requestId
|
|
1109
1128
|
const clientId = requestClientMap.get(requestId)
|
|
@@ -1134,9 +1153,11 @@ export const makeProtocolSocket = (options?: {
|
|
|
1134
1153
|
yield* Effect.suspend(() => {
|
|
1135
1154
|
parser = serialization.makeUnsafe()
|
|
1136
1155
|
pinger.reset()
|
|
1156
|
+
let connected = false
|
|
1137
1157
|
return Effect.gen(function*() {
|
|
1138
1158
|
const { pull } = yield* socket.reader
|
|
1139
1159
|
currentError = undefined
|
|
1160
|
+
connected = true
|
|
1140
1161
|
if (Option.isSome(hooks)) {
|
|
1141
1162
|
yield* hooks.value.onConnect
|
|
1142
1163
|
}
|
|
@@ -1148,17 +1169,19 @@ export const makeProtocolSocket = (options?: {
|
|
|
1148
1169
|
}
|
|
1149
1170
|
}).pipe(
|
|
1150
1171
|
Effect.scoped,
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1172
|
+
// The read loop never succeeds, so the race only succeeds on a ping
|
|
1173
|
+
// timeout, after the socket has been cleaned up.
|
|
1174
|
+
Effect.raceFirst(pinger.timeout),
|
|
1175
|
+
Effect.andThen(() => connected ? onPingTimeout : Effect.void),
|
|
1176
|
+
Effect.andThen(() =>
|
|
1177
|
+
Effect.fail(
|
|
1178
|
+
new Socket.SocketError({
|
|
1179
|
+
reason: new Socket.SocketReadError({
|
|
1180
|
+
cause: new Error("ping timeout")
|
|
1159
1181
|
})
|
|
1160
|
-
)
|
|
1161
|
-
|
|
1182
|
+
})
|
|
1183
|
+
)
|
|
1184
|
+
)
|
|
1162
1185
|
)
|
|
1163
1186
|
}).pipe(
|
|
1164
1187
|
Option.isSome(hooks) ? Effect.ensuring(hooks.value.onDisconnect) : identity,
|
|
@@ -1218,47 +1241,70 @@ const defaultRetryPolicy = Schedule.min([
|
|
|
1218
1241
|
Schedule.spaced(5000)
|
|
1219
1242
|
])
|
|
1220
1243
|
|
|
1221
|
-
const makePinger = Effect.fnUntraced(function*<A, E, R>(writePing: Effect.Effect<A, E, R
|
|
1222
|
-
|
|
1244
|
+
const makePinger = Effect.fnUntraced(function*<A, E, R>(writePing: Effect.Effect<A, E, R>, options?: {
|
|
1245
|
+
readonly pingInterval?: Duration.Input | undefined
|
|
1246
|
+
readonly pingTimeout?: Duration.Input | undefined
|
|
1247
|
+
}) {
|
|
1248
|
+
const clock = yield* Clock.Clock
|
|
1249
|
+
const interval = options?.pingInterval ?? "5 seconds"
|
|
1250
|
+
const timeoutMillis = Duration.toMillis(options?.pingTimeout ?? interval)
|
|
1251
|
+
let lastSeen = clock.currentTimeMillisUnsafe()
|
|
1223
1252
|
const latch = Latch.makeUnsafe()
|
|
1253
|
+
const onFrame = () => {
|
|
1254
|
+
lastSeen = clock.currentTimeMillisUnsafe()
|
|
1255
|
+
}
|
|
1224
1256
|
const reset = () => {
|
|
1225
|
-
|
|
1257
|
+
onFrame()
|
|
1226
1258
|
latch.closeUnsafe()
|
|
1227
1259
|
}
|
|
1228
|
-
const onPong = () => {
|
|
1229
|
-
recievedPong = true
|
|
1230
|
-
}
|
|
1231
1260
|
yield* Effect.suspend((): Effect.Effect<void, E, R> => {
|
|
1232
|
-
if (
|
|
1233
|
-
recievedPong = false
|
|
1261
|
+
if (clock.currentTimeMillisUnsafe() - lastSeen > timeoutMillis) return latch.open
|
|
1234
1262
|
return writePing
|
|
1235
1263
|
}).pipe(
|
|
1236
|
-
Effect.delay(
|
|
1264
|
+
Effect.delay(interval),
|
|
1237
1265
|
Effect.ignore,
|
|
1238
1266
|
Effect.forever,
|
|
1239
1267
|
Effect.interruptible,
|
|
1240
1268
|
Effect.forkScoped
|
|
1241
1269
|
)
|
|
1242
|
-
return { timeout: latch.await, reset,
|
|
1270
|
+
return { timeout: latch.await, reset, onFrame } as const
|
|
1243
1271
|
})
|
|
1244
1272
|
|
|
1245
1273
|
/**
|
|
1246
1274
|
* Provides a client `Protocol` backed by the current `Socket` and
|
|
1247
1275
|
* `RpcSerialization` services.
|
|
1248
1276
|
*
|
|
1277
|
+
* **Details**
|
|
1278
|
+
*
|
|
1279
|
+
* `pingInterval` defaults to 5 seconds. `pingTimeout` defaults to the interval
|
|
1280
|
+
* and measures time since the last decoded server frame, not the last pong.
|
|
1281
|
+
* The timeout is checked on each ping tick; any decoded frame counts as liveness.
|
|
1282
|
+
* `retryPolicy` configures retries after socket errors.
|
|
1283
|
+
*
|
|
1249
1284
|
* @stability unstable
|
|
1250
1285
|
* @category layers
|
|
1251
1286
|
* @since 4.0.0
|
|
1252
1287
|
*/
|
|
1253
1288
|
export const layerProtocolSocket = (options?: {
|
|
1289
|
+
readonly pingInterval?: Duration.Input | undefined
|
|
1290
|
+
readonly pingTimeout?: Duration.Input | undefined
|
|
1254
1291
|
readonly retryTransientErrors?: boolean | undefined
|
|
1292
|
+
readonly retryPolicy?: Schedule.Schedule<any, Socket.SocketError> | undefined
|
|
1255
1293
|
/**
|
|
1256
1294
|
* Runs for each retried `SocketOpenError` when `retryTransientErrors` is enabled.
|
|
1257
|
-
* A
|
|
1258
|
-
* The returned `Effect<void>` cannot fail with a typed error or
|
|
1259
|
-
* services; defects are logged and ignored so retries can continue.
|
|
1295
|
+
* A ping timeout fails in-flight calls and is reported through `onPingTimeout`
|
|
1296
|
+
* instead. The returned `Effect<void>` cannot fail with a typed error or
|
|
1297
|
+
* require services; defects are logged and ignored so retries can continue.
|
|
1260
1298
|
*/
|
|
1261
1299
|
readonly onTransientError?: ((error: RpcClientError) => Effect.Effect<void>) | undefined
|
|
1300
|
+
/**
|
|
1301
|
+
* Runs when an open connection is dropped because no server frame arrived
|
|
1302
|
+
* within `pingTimeout`, before `ConnectionHooks.onDisconnect` and before
|
|
1303
|
+
* in-flight calls fail with a `SocketReadError`. Defects are logged and ignored.
|
|
1304
|
+
*
|
|
1305
|
+
* @since 4.0.3
|
|
1306
|
+
*/
|
|
1307
|
+
readonly onPingTimeout?: Effect.Effect<void> | undefined
|
|
1262
1308
|
}): Layer.Layer<
|
|
1263
1309
|
Protocol,
|
|
1264
1310
|
never,
|
package/src/rpc/RpcServer.ts
CHANGED
|
@@ -44,6 +44,7 @@ import type * as Types from "../Types.ts"
|
|
|
44
44
|
import * as Transferable from "../workers/Transferable.ts"
|
|
45
45
|
import type { WorkerError } from "../workers/WorkerError.ts"
|
|
46
46
|
import * as WorkerRunner from "../workers/WorkerRunner.ts"
|
|
47
|
+
import * as RpcTracing from "./internal/tracing.ts"
|
|
47
48
|
import * as Rpc from "./Rpc.ts"
|
|
48
49
|
import type * as RpcGroup from "./RpcGroup.ts"
|
|
49
50
|
import type {
|
|
@@ -81,6 +82,12 @@ export interface RpcServer<A extends Rpc.Any> {
|
|
|
81
82
|
* handlers for a group and sending decoded server responses through
|
|
82
83
|
* `onFromServer`.
|
|
83
84
|
*
|
|
85
|
+
* **Details**
|
|
86
|
+
*
|
|
87
|
+
* If writing a stream `Chunk` fails with anything other than an interruption,
|
|
88
|
+
* the request fails with that cause. `onFromServer` is assumed to have already
|
|
89
|
+
* answered the client and reported it, so nothing else is sent or reported.
|
|
90
|
+
*
|
|
84
91
|
* @stability unstable
|
|
85
92
|
* @category constructors
|
|
86
93
|
* @since 4.0.0
|
|
@@ -117,7 +124,7 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any>(
|
|
|
117
124
|
const enableTracing = options.disableTracing !== true
|
|
118
125
|
const enableSpanPropagation = options.disableSpanPropagation !== true
|
|
119
126
|
const supportsAck = options.disableClientAcks !== true
|
|
120
|
-
const spanPrefix = options.spanPrefix
|
|
127
|
+
const spanPrefix = options.spanPrefix
|
|
121
128
|
const concurrency = options.concurrency ?? "unbounded"
|
|
122
129
|
const disableFatalDefects = options.disableFatalDefects ?? false
|
|
123
130
|
const services = yield* Effect.context<Rpc.ToHandler<Rpcs> | Scope.Scope>()
|
|
@@ -187,7 +194,7 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any>(
|
|
|
187
194
|
clients.set(clientId, client)
|
|
188
195
|
} else if (
|
|
189
196
|
client.ended &&
|
|
190
|
-
(message._tag !== "Interrupt" || !client.fibers.has(message.requestId))
|
|
197
|
+
((message._tag !== "Interrupt" && message._tag !== "Ack") || !client.fibers.has(message.requestId))
|
|
191
198
|
) {
|
|
192
199
|
return Effect.interrupt
|
|
193
200
|
}
|
|
@@ -198,7 +205,7 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any>(
|
|
|
198
205
|
}
|
|
199
206
|
case "Ack": {
|
|
200
207
|
const latch = client.latches?.get(message.requestId)
|
|
201
|
-
return latch ? latch.open : Effect.void
|
|
208
|
+
return latch ? Effect.asVoid(latch.open) : Effect.void
|
|
202
209
|
}
|
|
203
210
|
case "Interrupt": {
|
|
204
211
|
const fiber = client.fibers.get(message.requestId)
|
|
@@ -278,13 +285,23 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any>(
|
|
|
278
285
|
const isUninterruptible = isWrapper && result.uninterruptible
|
|
279
286
|
// unwrap the fork data type
|
|
280
287
|
const streamOrEffect = isWrapper ? result.value : result
|
|
288
|
+
// set when a chunk could not be written; the writer has already responded
|
|
289
|
+
let writeFailure: Cause.Cause<never> | undefined
|
|
281
290
|
const handler = isStream
|
|
282
|
-
? (streamEffect(client, request, streamOrEffect)
|
|
291
|
+
? (streamEffect(client, request, streamOrEffect, (cause) => {
|
|
292
|
+
writeFailure = cause
|
|
293
|
+
}) as Effect.Effect<{} | Deferred.Deferred<any, any>>)
|
|
283
294
|
: (streamOrEffect as Effect.Effect<{} | Deferred.Deferred<any, any>>)
|
|
284
295
|
|
|
285
|
-
const withMiddleware = rpc.middlewares.size
|
|
286
|
-
?
|
|
287
|
-
:
|
|
296
|
+
const withMiddleware = rpc.middlewares.size === 0
|
|
297
|
+
? handler
|
|
298
|
+
: isStream
|
|
299
|
+
// middleware may rewrite or swallow a chunk write failure, so restore it
|
|
300
|
+
? Effect.flatMap(
|
|
301
|
+
Effect.exit(applyMiddleware(services, handler, metadata)),
|
|
302
|
+
(exit) => writeFailure ? Effect.failCause(writeFailure) : exit
|
|
303
|
+
)
|
|
304
|
+
: applyMiddleware(services, handler, metadata)
|
|
288
305
|
let responded = false
|
|
289
306
|
const scope = Scope.makeUnsafe()
|
|
290
307
|
let deferred: Deferred.Deferred<unknown, unknown> | undefined = undefined
|
|
@@ -303,6 +320,9 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any>(
|
|
|
303
320
|
exit: exit as any
|
|
304
321
|
})
|
|
305
322
|
}
|
|
323
|
+
} else if (writeFailure) {
|
|
324
|
+
// onFromServer has already answered the client and reported the failure
|
|
325
|
+
return Scope.closeUnsafe(scope, exit) ?? Effect.void
|
|
306
326
|
} else if (
|
|
307
327
|
!disableFatalDefects &&
|
|
308
328
|
Cause.hasDies(exit.cause) &&
|
|
@@ -331,9 +351,10 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any>(
|
|
|
331
351
|
requestFiber.context,
|
|
332
352
|
Tracer.ParentSpan
|
|
333
353
|
)
|
|
334
|
-
effect = Effect.withSpan(effect,
|
|
354
|
+
effect = Effect.withSpan(effect, RpcTracing.spanName(spanPrefix, request.tag), {
|
|
335
355
|
captureStackTrace: false,
|
|
336
|
-
|
|
356
|
+
kind: "server",
|
|
357
|
+
attributes: RpcTracing.spanAttributes(request.tag, options.spanAttributes),
|
|
337
358
|
parent: enableSpanPropagation && request.spanId
|
|
338
359
|
? Tracer.externalSpan({
|
|
339
360
|
traceId: request.traceId!,
|
|
@@ -359,11 +380,14 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any>(
|
|
|
359
380
|
)
|
|
360
381
|
const fiber = trackFiber(
|
|
361
382
|
runFork(
|
|
362
|
-
|
|
383
|
+
// Register before the handler runs to catch synchronous cancellation.
|
|
384
|
+
Effect.withFiber((fiber) => {
|
|
385
|
+
client.fibers.set(request.id, fiber)
|
|
386
|
+
return effect
|
|
387
|
+
}),
|
|
363
388
|
isUninterruptible ? { uninterruptible: true } : undefined
|
|
364
389
|
)
|
|
365
390
|
)
|
|
366
|
-
client.fibers.set(request.id, fiber)
|
|
367
391
|
fiber.addObserver(function onExit(exit: Exit.Exit<any, any>): void {
|
|
368
392
|
if (deferred) {
|
|
369
393
|
const fiber = trackFiber(runFork(Effect.onExit(Deferred.await(deferred), (exit) =>
|
|
@@ -404,8 +428,17 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any>(
|
|
|
404
428
|
request: Request<Rpcs>,
|
|
405
429
|
stream:
|
|
406
430
|
| Stream.Stream<any, any>
|
|
407
|
-
| Effect.Effect<Queue.Dequeue<any, any>, any, Scope.Scope
|
|
431
|
+
| Effect.Effect<Queue.Dequeue<any, any>, any, Scope.Scope>,
|
|
432
|
+
onWriteFailure: (cause: Cause.Cause<never>) => void
|
|
408
433
|
) => {
|
|
434
|
+
const writeChunk = (values: NonEmptyReadonlyArray<any>) =>
|
|
435
|
+
Effect.onError(
|
|
436
|
+
options.onFromServer({ _tag: "Chunk", clientId: client.id, requestId: request.id, values }),
|
|
437
|
+
(cause) => {
|
|
438
|
+
if (!Cause.hasInterruptsOnly(cause)) onWriteFailure(cause)
|
|
439
|
+
return Effect.void
|
|
440
|
+
}
|
|
441
|
+
)
|
|
409
442
|
let latch: Latch.Latch | undefined
|
|
410
443
|
if (supportsAck) {
|
|
411
444
|
client.latches ??= new Map()
|
|
@@ -422,12 +455,7 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any>(
|
|
|
422
455
|
while: constTrue,
|
|
423
456
|
body: constant(
|
|
424
457
|
Effect.flatMap(Queue.takeAll(queue), (values) => {
|
|
425
|
-
const write =
|
|
426
|
-
_tag: "Chunk",
|
|
427
|
-
clientId: client.id,
|
|
428
|
-
requestId: request.id,
|
|
429
|
-
values
|
|
430
|
-
})
|
|
458
|
+
const write = writeChunk(values)
|
|
431
459
|
if (!latch) return write
|
|
432
460
|
latch.closeUnsafe()
|
|
433
461
|
return Effect.flatMap(write, () => latch.await)
|
|
@@ -441,12 +469,7 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any>(
|
|
|
441
469
|
)
|
|
442
470
|
}
|
|
443
471
|
return Stream.runForEachArray(stream, (values) => {
|
|
444
|
-
const write =
|
|
445
|
-
_tag: "Chunk",
|
|
446
|
-
clientId: client.id,
|
|
447
|
-
requestId: request.id,
|
|
448
|
-
values
|
|
449
|
-
})
|
|
472
|
+
const write = writeChunk(values)
|
|
450
473
|
if (!latch) return write
|
|
451
474
|
latch.closeUnsafe()
|
|
452
475
|
return Effect.andThen(write, latch.await)
|
|
@@ -564,6 +587,10 @@ export const make: <Rpcs extends Rpc.Any>(
|
|
|
564
587
|
supportsTransferables
|
|
565
588
|
} = yield* Protocol
|
|
566
589
|
const encodeDefectUnsafe = Schema.encodeSync(codecFor(Schema.Defect()))
|
|
590
|
+
// Unknown tags have no RPC schema, so use a defect-only exit schema.
|
|
591
|
+
const encodeUnknownRequestExit: Schemas["encodeExit"] = Schema.encodeUnknownEffect(
|
|
592
|
+
codecFor(Schema.Exit(Schema.Never, Schema.Never, Schema.Defect()))
|
|
593
|
+
) as any
|
|
567
594
|
const services = yield* Effect.context<Rpc.ToHandler<Rpcs> | Rpc.Middleware<Rpcs>>()
|
|
568
595
|
const scope = yield* Scope.make()
|
|
569
596
|
|
|
@@ -624,12 +651,12 @@ export const make: <Rpcs extends Rpc.Any>(
|
|
|
624
651
|
)
|
|
625
652
|
|
|
626
653
|
type Schemas = {
|
|
654
|
+
readonly tag: string
|
|
627
655
|
readonly decode: (u: unknown) => Effect.Effect<Rpc.Payload<Rpcs>, Schema.SchemaError>
|
|
628
656
|
readonly encodeChunk: (
|
|
629
657
|
u: NonEmptyReadonlyArray<unknown>
|
|
630
658
|
) => Effect.Effect<NonEmptyReadonlyArray<unknown>, Schema.SchemaError>
|
|
631
659
|
readonly encodeExit: (u: unknown) => Effect.Effect<ResponseExitEncoded["exit"], Schema.SchemaError>
|
|
632
|
-
readonly encodeDefect: (u: unknown) => Effect.Effect<unknown, Schema.SchemaError>
|
|
633
660
|
readonly context: Context.Context<never>
|
|
634
661
|
readonly collector?: Transferable.Collector["Service"] | undefined
|
|
635
662
|
}
|
|
@@ -641,6 +668,7 @@ export const make: <Rpcs extends Rpc.Any>(
|
|
|
641
668
|
const entry = Context.getOrUndefinedUnsafe(services, rpc.key) as Rpc.Handler<Rpcs["_tag"]>
|
|
642
669
|
const streamSchemas = RpcSchema.getStreamSchemas(rpc.successSchema)
|
|
643
670
|
schemas = {
|
|
671
|
+
tag: rpc._tag,
|
|
644
672
|
decode: Schema.decodeUnknownEffect(codecFor(rpc.payloadSchema)) as any,
|
|
645
673
|
encodeChunk: Schema.encodeUnknownEffect(
|
|
646
674
|
codecFor(
|
|
@@ -648,7 +676,6 @@ export const make: <Rpcs extends Rpc.Any>(
|
|
|
648
676
|
)
|
|
649
677
|
) as any,
|
|
650
678
|
encodeExit: Schema.encodeUnknownEffect(codecFor(Rpc.exitSchema(rpc as any))) as any,
|
|
651
|
-
encodeDefect: Schema.encodeUnknownEffect(codecFor(rpc.defectSchema)) as any,
|
|
652
679
|
context: entry.context
|
|
653
680
|
}
|
|
654
681
|
schemasCache.set(rpc, schemas)
|
|
@@ -679,23 +706,38 @@ export const make: <Rpcs extends Rpc.Any>(
|
|
|
679
706
|
tag: "Chunk" | "Exit"
|
|
680
707
|
) => {
|
|
681
708
|
const collector = schemas.collector
|
|
709
|
+
let encodeFailed = false
|
|
682
710
|
// The schema encoders evaluate eagerly, so an encode that needs no
|
|
683
711
|
// services is already a resolved success and can skip the effect wrappers.
|
|
684
712
|
const write = Exit.isExit(effect) && Exit.isSuccess(effect)
|
|
685
713
|
? send(client.id, responseEnvelope(requestId, tag, effect.value), collector && collector.clearUnsafe())
|
|
686
714
|
: Effect.flatMap(
|
|
687
|
-
Effect.
|
|
688
|
-
|
|
689
|
-
|
|
715
|
+
Effect.catch(
|
|
716
|
+
Effect.provideContext(
|
|
717
|
+
collector ? Effect.provideService(effect, Transferable.Collector, collector) : effect,
|
|
718
|
+
schemas.context
|
|
719
|
+
),
|
|
720
|
+
(error) =>
|
|
721
|
+
Effect.withFiber((fiber) => {
|
|
722
|
+
const defect = Cause.die(
|
|
723
|
+
`Failed to encode response for RPC "${schemas.tag}": ${SchemaIssue.defaultFormatter(error.issue)}`
|
|
724
|
+
)
|
|
725
|
+
reportCauseUnsafe(fiber, defect)
|
|
726
|
+
encodeFailed = true
|
|
727
|
+
return Effect.failCause(defect)
|
|
728
|
+
})
|
|
690
729
|
),
|
|
691
730
|
(value) => send(client.id, responseEnvelope(requestId, tag, value), collector && collector.clearUnsafe())
|
|
692
731
|
)
|
|
693
732
|
return Effect.catchCause(write, (cause) => {
|
|
694
733
|
client.schemas.delete(requestId)
|
|
695
|
-
|
|
734
|
+
// An encode failure ends the request with the defect, so the request
|
|
735
|
+
// span records it. Other failures stop the request as a cancellation.
|
|
696
736
|
return Effect.andThen(
|
|
697
|
-
sendRequestDefect(client, requestId, schemas.
|
|
698
|
-
|
|
737
|
+
sendRequestDefect(client, requestId, schemas.encodeExit, Cause.squash(cause)),
|
|
738
|
+
encodeFailed
|
|
739
|
+
? Effect.failCause(cause)
|
|
740
|
+
: server.write(client.id, { _tag: "Interrupt", requestId, interruptors: [] })
|
|
699
741
|
)
|
|
700
742
|
})
|
|
701
743
|
}
|
|
@@ -703,22 +745,14 @@ export const make: <Rpcs extends Rpc.Any>(
|
|
|
703
745
|
const sendRequestDefect = (
|
|
704
746
|
client: Client,
|
|
705
747
|
requestId: RequestId,
|
|
706
|
-
|
|
748
|
+
encodeExit: Schemas["encodeExit"],
|
|
707
749
|
defect: unknown
|
|
708
750
|
) =>
|
|
709
751
|
Effect.catchCause(
|
|
710
|
-
Effect.flatMap(
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
exit: {
|
|
715
|
-
_tag: "Failure",
|
|
716
|
-
cause: [{
|
|
717
|
-
_tag: "Die",
|
|
718
|
-
defect: encodedDefect
|
|
719
|
-
}]
|
|
720
|
-
}
|
|
721
|
-
})),
|
|
752
|
+
Effect.flatMap(
|
|
753
|
+
encodeExit(Exit.die(defect)),
|
|
754
|
+
(exit) => send(client.id, responseEnvelope(requestId, "Exit", exit))
|
|
755
|
+
),
|
|
722
756
|
(cause) => sendDefect(client, Cause.squash(cause))
|
|
723
757
|
)
|
|
724
758
|
|
|
@@ -784,7 +818,7 @@ export const make: <Rpcs extends Rpc.Any>(
|
|
|
784
818
|
}
|
|
785
819
|
const rpc = group.requests.get(tag)
|
|
786
820
|
if (!rpc) {
|
|
787
|
-
return sendRequestDefect(client, requestId,
|
|
821
|
+
return sendRequestDefect(client, requestId, encodeUnknownRequestExit, `Unknown request tag: ${tag}`)
|
|
788
822
|
}
|
|
789
823
|
const schemas = getSchemas(rpc as any)
|
|
790
824
|
const decoded = schemas.decode(request.payload)
|
|
@@ -798,7 +832,7 @@ export const make: <Rpcs extends Rpc.Any>(
|
|
|
798
832
|
Effect.provideContext(decoded, schemas.context),
|
|
799
833
|
{
|
|
800
834
|
onFailure: (error) =>
|
|
801
|
-
sendRequestDefect(client, requestId, schemas.
|
|
835
|
+
sendRequestDefect(client, requestId, schemas.encodeExit, SchemaIssue.defaultFormatter(error.issue)),
|
|
802
836
|
onSuccess: (payload) => writeDecodedRequest(client, requestId, schemas, request, payload)
|
|
803
837
|
}
|
|
804
838
|
)
|
|
@@ -1181,7 +1215,10 @@ export const makeProtocolWithHttpEffect: (
|
|
|
1181
1215
|
})
|
|
1182
1216
|
}
|
|
1183
1217
|
|
|
1184
|
-
const initialChunk = yield*
|
|
1218
|
+
const initialChunk = yield* Pull.catchDone(
|
|
1219
|
+
Queue.takeAll(queue as Queue.Dequeue<Uint8Array, Cause.Done>),
|
|
1220
|
+
() => Effect.succeed([])
|
|
1221
|
+
)
|
|
1185
1222
|
if (queue.state._tag === "Done") {
|
|
1186
1223
|
return HttpServerResponse.uint8Array(mergeUint8Arrays(initialChunk), {
|
|
1187
1224
|
contentType: serialization.contentType
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Names the span after the RPC method, or `${spanPrefix}.${tag}` when a prefix
|
|
3
|
+
* is configured.
|
|
4
|
+
*
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
export const spanName = (spanPrefix: string | undefined, tag: string): string =>
|
|
8
|
+
spanPrefix === undefined ? tag : `${spanPrefix}.${tag}`
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Default RPC span attributes, overridden by user `spanAttributes`.
|
|
12
|
+
*
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
export const spanAttributes = (
|
|
16
|
+
tag: string,
|
|
17
|
+
attributes: Record<string, unknown> | undefined
|
|
18
|
+
): Record<string, unknown> => ({
|
|
19
|
+
"rpc.system.name": "effect_rpc",
|
|
20
|
+
"rpc.method": tag,
|
|
21
|
+
...attributes
|
|
22
|
+
})
|
|
@@ -65,12 +65,15 @@ const makeObjectBase = (
|
|
|
65
65
|
const runFallback: SchemaIssueParser = (input, options) =>
|
|
66
66
|
(fallback ??= ast.getParser(compile, compileField))(input, options)
|
|
67
67
|
const resume = (
|
|
68
|
-
|
|
68
|
+
snapshot: ObjectParserState,
|
|
69
69
|
index: number,
|
|
70
70
|
pending: Effect.Effect<unknown, SchemaIssue.Issue, any>
|
|
71
71
|
): Effect.Effect<unknown, SchemaIssue.Issue, any> => {
|
|
72
72
|
const property = properties![index]
|
|
73
73
|
return Effect.flatMap(Effect.exit(pending), (exit) => {
|
|
74
|
+
// Each execution gets its own output; `issues` is still undefined here
|
|
75
|
+
// because `errors: "all"` is routed to the fallback before suspending.
|
|
76
|
+
const state: ObjectParserState = { ...snapshot, out: { ...snapshot.out } }
|
|
74
77
|
const terminal = SchemaAST.stepProperty(state, property, exit)
|
|
75
78
|
if (terminal) return terminal
|
|
76
79
|
const done = () => InternalParser.succeed(state.out)
|