effect 4.0.1 → 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 +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 +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 +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 +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 +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 +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 +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 +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 +558 -0
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +261 -13
- 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 +32 -11
- package/dist/ai/McpServer.d.ts.map +1 -1
- package/dist/ai/McpServer.js +213 -169
- 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/mcpRuntime.js +79 -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/cluster/K8sHttpClient.d.ts.map +1 -1
- package/dist/cluster/K8sHttpClient.js +5 -2
- package/dist/cluster/K8sHttpClient.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 +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/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 +41 -39
- 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/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 +38 -20
- package/dist/rpc/RpcClient.js.map +1 -1
- package/dist/rpc/RpcServer.d.ts.map +1 -1
- package/dist/rpc/RpcServer.js +18 -21
- 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/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/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 +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 +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 +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 +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 +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 +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 +7 -0
- package/src/Stream.ts +622 -15
- 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 +107 -36
- package/src/ai/Telemetry.ts +62 -58
- package/src/ai/internal/mcpRuntime.ts +84 -43
- package/src/ai/internal/mcpStatefulRuntime.ts +2 -0
- package/src/cluster/K8sHttpClient.ts +12 -2
- 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 +60 -45
- package/src/http/HttpServer.ts +1 -1
- 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 +47 -45
- package/src/internal/schedule.ts +23 -17
- 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 +48 -24
- package/src/rpc/RpcServer.ts +26 -24
- 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/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,16 +1049,24 @@ 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
|
|
1069
|
+
* A ping timeout fails in-flight calls and is not reported through this hook.
|
|
1059
1070
|
* The returned `Effect<void>` cannot fail with a typed error or require
|
|
1060
1071
|
* services; defects are logged and ignored so retries can continue.
|
|
1061
1072
|
*/
|
|
@@ -1078,7 +1089,7 @@ export const makeProtocolSocket = (options?: {
|
|
|
1078
1089
|
// `parser` is replaced on every connect, and a stateful serialization
|
|
1079
1090
|
// encodes against the connection it is writing to, so the ping is encoded
|
|
1080
1091
|
// when it is sent rather than once up front.
|
|
1081
|
-
const pinger = yield* makePinger(Effect.suspend(() => writer.write(parser.encode(constPing)!)))
|
|
1092
|
+
const pinger = yield* makePinger(Effect.suspend(() => writer.write(parser.encode(constPing)!)), options)
|
|
1082
1093
|
let currentError: RpcClientError | undefined
|
|
1083
1094
|
|
|
1084
1095
|
const broadcast = (response: FromServerEncoded) =>
|
|
@@ -1095,15 +1106,13 @@ export const makeProtocolSocket = (options?: {
|
|
|
1095
1106
|
try {
|
|
1096
1107
|
const responses = parser.decode(data) as Array<FromServerEncoded>
|
|
1097
1108
|
if (responses.length === 0) return Effect.void
|
|
1109
|
+
pinger.onFrame()
|
|
1098
1110
|
let i = 0
|
|
1099
1111
|
return Effect.whileLoop({
|
|
1100
1112
|
while: () => i < responses.length,
|
|
1101
1113
|
body: () => {
|
|
1102
1114
|
const response = responses[i++]
|
|
1103
|
-
if (response._tag === "Pong")
|
|
1104
|
-
pinger.onPong()
|
|
1105
|
-
return Effect.void
|
|
1106
|
-
}
|
|
1115
|
+
if (response._tag === "Pong") return Effect.void
|
|
1107
1116
|
if (Object.hasOwn(response, "requestId")) {
|
|
1108
1117
|
const requestId = (response as FromServerEncoded & { readonly requestId: string | number }).requestId
|
|
1109
1118
|
const clientId = requestClientMap.get(requestId)
|
|
@@ -1218,43 +1227,58 @@ const defaultRetryPolicy = Schedule.min([
|
|
|
1218
1227
|
Schedule.spaced(5000)
|
|
1219
1228
|
])
|
|
1220
1229
|
|
|
1221
|
-
const makePinger = Effect.fnUntraced(function*<A, E, R>(writePing: Effect.Effect<A, E, R
|
|
1222
|
-
|
|
1230
|
+
const makePinger = Effect.fnUntraced(function*<A, E, R>(writePing: Effect.Effect<A, E, R>, options?: {
|
|
1231
|
+
readonly pingInterval?: Duration.Input | undefined
|
|
1232
|
+
readonly pingTimeout?: Duration.Input | undefined
|
|
1233
|
+
}) {
|
|
1234
|
+
const clock = yield* Clock.Clock
|
|
1235
|
+
const interval = options?.pingInterval ?? "5 seconds"
|
|
1236
|
+
const timeoutMillis = Duration.toMillis(options?.pingTimeout ?? interval)
|
|
1237
|
+
let lastSeen = clock.currentTimeMillisUnsafe()
|
|
1223
1238
|
const latch = Latch.makeUnsafe()
|
|
1239
|
+
const onFrame = () => {
|
|
1240
|
+
lastSeen = clock.currentTimeMillisUnsafe()
|
|
1241
|
+
}
|
|
1224
1242
|
const reset = () => {
|
|
1225
|
-
|
|
1243
|
+
onFrame()
|
|
1226
1244
|
latch.closeUnsafe()
|
|
1227
1245
|
}
|
|
1228
|
-
const onPong = () => {
|
|
1229
|
-
recievedPong = true
|
|
1230
|
-
}
|
|
1231
1246
|
yield* Effect.suspend((): Effect.Effect<void, E, R> => {
|
|
1232
|
-
if (
|
|
1233
|
-
recievedPong = false
|
|
1247
|
+
if (clock.currentTimeMillisUnsafe() - lastSeen > timeoutMillis) return latch.open
|
|
1234
1248
|
return writePing
|
|
1235
1249
|
}).pipe(
|
|
1236
|
-
Effect.delay(
|
|
1250
|
+
Effect.delay(interval),
|
|
1237
1251
|
Effect.ignore,
|
|
1238
1252
|
Effect.forever,
|
|
1239
1253
|
Effect.interruptible,
|
|
1240
1254
|
Effect.forkScoped
|
|
1241
1255
|
)
|
|
1242
|
-
return { timeout: latch.await, reset,
|
|
1256
|
+
return { timeout: latch.await, reset, onFrame } as const
|
|
1243
1257
|
})
|
|
1244
1258
|
|
|
1245
1259
|
/**
|
|
1246
1260
|
* Provides a client `Protocol` backed by the current `Socket` and
|
|
1247
1261
|
* `RpcSerialization` services.
|
|
1248
1262
|
*
|
|
1263
|
+
* **Details**
|
|
1264
|
+
*
|
|
1265
|
+
* `pingInterval` defaults to 5 seconds. `pingTimeout` defaults to the interval
|
|
1266
|
+
* and measures time since the last decoded server frame, not the last pong.
|
|
1267
|
+
* The timeout is checked on each ping tick; any decoded frame counts as liveness.
|
|
1268
|
+
* `retryPolicy` configures retries after socket errors.
|
|
1269
|
+
*
|
|
1249
1270
|
* @stability unstable
|
|
1250
1271
|
* @category layers
|
|
1251
1272
|
* @since 4.0.0
|
|
1252
1273
|
*/
|
|
1253
1274
|
export const layerProtocolSocket = (options?: {
|
|
1275
|
+
readonly pingInterval?: Duration.Input | undefined
|
|
1276
|
+
readonly pingTimeout?: Duration.Input | undefined
|
|
1254
1277
|
readonly retryTransientErrors?: boolean | undefined
|
|
1278
|
+
readonly retryPolicy?: Schedule.Schedule<any, Socket.SocketError> | undefined
|
|
1255
1279
|
/**
|
|
1256
1280
|
* Runs for each retried `SocketOpenError` when `retryTransientErrors` is enabled.
|
|
1257
|
-
* A
|
|
1281
|
+
* A ping timeout fails in-flight calls and is not reported through this hook.
|
|
1258
1282
|
* The returned `Effect<void>` cannot fail with a typed error or require
|
|
1259
1283
|
* services; defects are logged and ignored so retries can continue.
|
|
1260
1284
|
*/
|
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 {
|
|
@@ -117,7 +118,7 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any>(
|
|
|
117
118
|
const enableTracing = options.disableTracing !== true
|
|
118
119
|
const enableSpanPropagation = options.disableSpanPropagation !== true
|
|
119
120
|
const supportsAck = options.disableClientAcks !== true
|
|
120
|
-
const spanPrefix = options.spanPrefix
|
|
121
|
+
const spanPrefix = options.spanPrefix
|
|
121
122
|
const concurrency = options.concurrency ?? "unbounded"
|
|
122
123
|
const disableFatalDefects = options.disableFatalDefects ?? false
|
|
123
124
|
const services = yield* Effect.context<Rpc.ToHandler<Rpcs> | Scope.Scope>()
|
|
@@ -331,9 +332,10 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any>(
|
|
|
331
332
|
requestFiber.context,
|
|
332
333
|
Tracer.ParentSpan
|
|
333
334
|
)
|
|
334
|
-
effect = Effect.withSpan(effect,
|
|
335
|
+
effect = Effect.withSpan(effect, RpcTracing.spanName(spanPrefix, request.tag), {
|
|
335
336
|
captureStackTrace: false,
|
|
336
|
-
|
|
337
|
+
kind: "server",
|
|
338
|
+
attributes: RpcTracing.spanAttributes(request.tag, options.spanAttributes),
|
|
337
339
|
parent: enableSpanPropagation && request.spanId
|
|
338
340
|
? Tracer.externalSpan({
|
|
339
341
|
traceId: request.traceId!,
|
|
@@ -359,11 +361,14 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any>(
|
|
|
359
361
|
)
|
|
360
362
|
const fiber = trackFiber(
|
|
361
363
|
runFork(
|
|
362
|
-
|
|
364
|
+
// Register before the handler runs to catch synchronous cancellation.
|
|
365
|
+
Effect.withFiber((fiber) => {
|
|
366
|
+
client.fibers.set(request.id, fiber)
|
|
367
|
+
return effect
|
|
368
|
+
}),
|
|
363
369
|
isUninterruptible ? { uninterruptible: true } : undefined
|
|
364
370
|
)
|
|
365
371
|
)
|
|
366
|
-
client.fibers.set(request.id, fiber)
|
|
367
372
|
fiber.addObserver(function onExit(exit: Exit.Exit<any, any>): void {
|
|
368
373
|
if (deferred) {
|
|
369
374
|
const fiber = trackFiber(runFork(Effect.onExit(Deferred.await(deferred), (exit) =>
|
|
@@ -564,6 +569,10 @@ export const make: <Rpcs extends Rpc.Any>(
|
|
|
564
569
|
supportsTransferables
|
|
565
570
|
} = yield* Protocol
|
|
566
571
|
const encodeDefectUnsafe = Schema.encodeSync(codecFor(Schema.Defect()))
|
|
572
|
+
// Unknown tags have no RPC schema, so use a defect-only exit schema.
|
|
573
|
+
const encodeUnknownRequestExit: Schemas["encodeExit"] = Schema.encodeUnknownEffect(
|
|
574
|
+
codecFor(Schema.Exit(Schema.Never, Schema.Never, Schema.Defect()))
|
|
575
|
+
) as any
|
|
567
576
|
const services = yield* Effect.context<Rpc.ToHandler<Rpcs> | Rpc.Middleware<Rpcs>>()
|
|
568
577
|
const scope = yield* Scope.make()
|
|
569
578
|
|
|
@@ -629,7 +638,6 @@ export const make: <Rpcs extends Rpc.Any>(
|
|
|
629
638
|
u: NonEmptyReadonlyArray<unknown>
|
|
630
639
|
) => Effect.Effect<NonEmptyReadonlyArray<unknown>, Schema.SchemaError>
|
|
631
640
|
readonly encodeExit: (u: unknown) => Effect.Effect<ResponseExitEncoded["exit"], Schema.SchemaError>
|
|
632
|
-
readonly encodeDefect: (u: unknown) => Effect.Effect<unknown, Schema.SchemaError>
|
|
633
641
|
readonly context: Context.Context<never>
|
|
634
642
|
readonly collector?: Transferable.Collector["Service"] | undefined
|
|
635
643
|
}
|
|
@@ -648,7 +656,6 @@ export const make: <Rpcs extends Rpc.Any>(
|
|
|
648
656
|
)
|
|
649
657
|
) as any,
|
|
650
658
|
encodeExit: Schema.encodeUnknownEffect(codecFor(Rpc.exitSchema(rpc as any))) as any,
|
|
651
|
-
encodeDefect: Schema.encodeUnknownEffect(codecFor(rpc.defectSchema)) as any,
|
|
652
659
|
context: entry.context
|
|
653
660
|
}
|
|
654
661
|
schemasCache.set(rpc, schemas)
|
|
@@ -694,7 +701,7 @@ export const make: <Rpcs extends Rpc.Any>(
|
|
|
694
701
|
client.schemas.delete(requestId)
|
|
695
702
|
const defect = Cause.squash(Cause.map(cause, (e) => SchemaIssue.defaultFormatter(e.issue)))
|
|
696
703
|
return Effect.andThen(
|
|
697
|
-
sendRequestDefect(client, requestId, schemas.
|
|
704
|
+
sendRequestDefect(client, requestId, schemas.encodeExit, defect),
|
|
698
705
|
server.write(client.id, { _tag: "Interrupt", requestId, interruptors: [] })
|
|
699
706
|
)
|
|
700
707
|
})
|
|
@@ -703,22 +710,14 @@ export const make: <Rpcs extends Rpc.Any>(
|
|
|
703
710
|
const sendRequestDefect = (
|
|
704
711
|
client: Client,
|
|
705
712
|
requestId: RequestId,
|
|
706
|
-
|
|
713
|
+
encodeExit: Schemas["encodeExit"],
|
|
707
714
|
defect: unknown
|
|
708
715
|
) =>
|
|
709
716
|
Effect.catchCause(
|
|
710
|
-
Effect.flatMap(
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
exit: {
|
|
715
|
-
_tag: "Failure",
|
|
716
|
-
cause: [{
|
|
717
|
-
_tag: "Die",
|
|
718
|
-
defect: encodedDefect
|
|
719
|
-
}]
|
|
720
|
-
}
|
|
721
|
-
})),
|
|
717
|
+
Effect.flatMap(
|
|
718
|
+
encodeExit(Exit.die(defect)),
|
|
719
|
+
(exit) => send(client.id, responseEnvelope(requestId, "Exit", exit))
|
|
720
|
+
),
|
|
722
721
|
(cause) => sendDefect(client, Cause.squash(cause))
|
|
723
722
|
)
|
|
724
723
|
|
|
@@ -784,7 +783,7 @@ export const make: <Rpcs extends Rpc.Any>(
|
|
|
784
783
|
}
|
|
785
784
|
const rpc = group.requests.get(tag)
|
|
786
785
|
if (!rpc) {
|
|
787
|
-
return sendRequestDefect(client, requestId,
|
|
786
|
+
return sendRequestDefect(client, requestId, encodeUnknownRequestExit, `Unknown request tag: ${tag}`)
|
|
788
787
|
}
|
|
789
788
|
const schemas = getSchemas(rpc as any)
|
|
790
789
|
const decoded = schemas.decode(request.payload)
|
|
@@ -798,7 +797,7 @@ export const make: <Rpcs extends Rpc.Any>(
|
|
|
798
797
|
Effect.provideContext(decoded, schemas.context),
|
|
799
798
|
{
|
|
800
799
|
onFailure: (error) =>
|
|
801
|
-
sendRequestDefect(client, requestId, schemas.
|
|
800
|
+
sendRequestDefect(client, requestId, schemas.encodeExit, SchemaIssue.defaultFormatter(error.issue)),
|
|
802
801
|
onSuccess: (payload) => writeDecodedRequest(client, requestId, schemas, request, payload)
|
|
803
802
|
}
|
|
804
803
|
)
|
|
@@ -1181,7 +1180,10 @@ export const makeProtocolWithHttpEffect: (
|
|
|
1181
1180
|
})
|
|
1182
1181
|
}
|
|
1183
1182
|
|
|
1184
|
-
const initialChunk = yield*
|
|
1183
|
+
const initialChunk = yield* Pull.catchDone(
|
|
1184
|
+
Queue.takeAll(queue as Queue.Dequeue<Uint8Array, Cause.Done>),
|
|
1185
|
+
() => Effect.succeed([])
|
|
1186
|
+
)
|
|
1185
1187
|
if (queue.state._tag === "Done") {
|
|
1186
1188
|
return HttpServerResponse.uint8Array(mergeUint8Arrays(initialChunk), {
|
|
1187
1189
|
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)
|
package/src/sql/SqlClient.ts
CHANGED
|
@@ -394,7 +394,7 @@ export const makeWithTransaction = <I, S>(options: {
|
|
|
394
394
|
Effect.uninterruptibleMask((restore) =>
|
|
395
395
|
Effect.useSpan(
|
|
396
396
|
"sql.transaction",
|
|
397
|
-
{ kind: "
|
|
397
|
+
{ kind: "internal" },
|
|
398
398
|
(span) =>
|
|
399
399
|
Effect.withFiber<A, E | SqlError, R>((fiber) => {
|
|
400
400
|
for (const [key, value] of options.spanAttributes) {
|
|
@@ -427,18 +427,18 @@ export const makeWithTransaction = <I, S>(options: {
|
|
|
427
427
|
let effect: Effect.Effect<void>
|
|
428
428
|
if (Exit.isSuccess(exit)) {
|
|
429
429
|
if (id === 0) {
|
|
430
|
-
span.event("
|
|
430
|
+
span.event("effect.sql.transaction.commit", clock.currentTimeNanosUnsafe())
|
|
431
431
|
const onCommitFailure = options.onCommitFailure
|
|
432
432
|
effect = Effect.orDie(options.commit(conn))
|
|
433
433
|
if (onCommitFailure) {
|
|
434
434
|
effect = Effect.onError(effect, () => Effect.orDie(onCommitFailure(conn)))
|
|
435
435
|
}
|
|
436
436
|
} else {
|
|
437
|
-
span.event("
|
|
437
|
+
span.event("effect.sql.transaction.savepoint", clock.currentTimeNanosUnsafe())
|
|
438
438
|
effect = Effect.void
|
|
439
439
|
}
|
|
440
440
|
} else {
|
|
441
|
-
span.event("
|
|
441
|
+
span.event("effect.sql.transaction.rollback", clock.currentTimeNanosUnsafe())
|
|
442
442
|
effect = Effect.orDie(
|
|
443
443
|
id > 0
|
|
444
444
|
? options.rollbackSavepoint(conn, id)
|
package/src/sql/Statement.ts
CHANGED
|
@@ -114,7 +114,7 @@ export const CurrentTransformer = Context.Reference<Transformer | undefined>("ef
|
|
|
114
114
|
})
|
|
115
115
|
|
|
116
116
|
/**
|
|
117
|
-
* Parents driver spans under
|
|
117
|
+
* Parents driver spans under the statement span for every client in the current scope,
|
|
118
118
|
* including acquisition and stream pulls. Defaults to `false`; ignored when tracing is disabled.
|
|
119
119
|
*
|
|
120
120
|
* @stability unstable
|
|
@@ -1285,10 +1285,62 @@ export const defaultTransforms = (
|
|
|
1285
1285
|
} as const
|
|
1286
1286
|
}
|
|
1287
1287
|
|
|
1288
|
+
/**
|
|
1289
|
+
* Returns the OpenTelemetry database span target for a client with the given
|
|
1290
|
+
* span attributes: `db.namespace`, then `server.address[:server.port]`, or
|
|
1291
|
+
* `undefined` when neither is set.
|
|
1292
|
+
*
|
|
1293
|
+
* @stability unstable
|
|
1294
|
+
* @category tracing
|
|
1295
|
+
* @since 4.0.1
|
|
1296
|
+
*/
|
|
1297
|
+
export const spanTarget = (spanAttributes: ReadonlyArray<readonly [string, unknown]>): string | undefined => {
|
|
1298
|
+
const namespace = spanAttribute(spanAttributes, "db.namespace")
|
|
1299
|
+
if (isNonEmptyString(namespace)) {
|
|
1300
|
+
return namespace
|
|
1301
|
+
}
|
|
1302
|
+
const address = spanAttribute(spanAttributes, "server.address")
|
|
1303
|
+
if (isNonEmptyString(address)) {
|
|
1304
|
+
const port = spanAttribute(spanAttributes, "server.port")
|
|
1305
|
+
return port === undefined ? address : `${address}:${port}`
|
|
1306
|
+
}
|
|
1307
|
+
return undefined
|
|
1308
|
+
}
|
|
1309
|
+
|
|
1310
|
+
/**
|
|
1311
|
+
* Returns the span name for statements run by a client with the given span
|
|
1312
|
+
* attributes, following the OpenTelemetry database span conventions: the
|
|
1313
|
+
* {@link spanTarget}, then `db.system.name`, falling back to `sql.execute`.
|
|
1314
|
+
*
|
|
1315
|
+
* @stability unstable
|
|
1316
|
+
* @category tracing
|
|
1317
|
+
* @since 4.0.1
|
|
1318
|
+
*/
|
|
1319
|
+
export const spanName = (spanAttributes: ReadonlyArray<readonly [string, unknown]>): string => {
|
|
1320
|
+
const target = spanTarget(spanAttributes)
|
|
1321
|
+
if (target !== undefined) {
|
|
1322
|
+
return target
|
|
1323
|
+
}
|
|
1324
|
+
const system = spanAttribute(spanAttributes, "db.system.name")
|
|
1325
|
+
return isNonEmptyString(system) ? system : "sql.execute"
|
|
1326
|
+
}
|
|
1327
|
+
|
|
1288
1328
|
// internal
|
|
1289
1329
|
|
|
1290
|
-
const ATTR_DB_OPERATION_NAME = "db.operation.name"
|
|
1291
1330
|
const ATTR_DB_QUERY_TEXT = "db.query.text"
|
|
1331
|
+
const ATTR_SQL_METHOD = "effect.sql.method"
|
|
1332
|
+
|
|
1333
|
+
// the last value wins, matching the order the attributes are applied to spans
|
|
1334
|
+
const spanAttribute = (spanAttributes: ReadonlyArray<readonly [string, unknown]>, key: string): unknown => {
|
|
1335
|
+
for (let i = spanAttributes.length - 1; i >= 0; i--) {
|
|
1336
|
+
if (spanAttributes[i][0] === key) {
|
|
1337
|
+
return spanAttributes[i][1]
|
|
1338
|
+
}
|
|
1339
|
+
}
|
|
1340
|
+
return undefined
|
|
1341
|
+
}
|
|
1342
|
+
|
|
1343
|
+
const isNonEmptyString = (u: unknown): u is string => typeof u === "string" && u.length > 0
|
|
1292
1344
|
|
|
1293
1345
|
interface StatementImpl<A> extends Statement<A> {
|
|
1294
1346
|
readonly segments: ReadonlyArray<Segment>
|
|
@@ -1354,7 +1406,7 @@ const StatementProto: Omit<
|
|
|
1354
1406
|
withoutTransform = false
|
|
1355
1407
|
): Effect.Effect<XA, E | SqlError> {
|
|
1356
1408
|
return Effect.useSpan(
|
|
1357
|
-
|
|
1409
|
+
spanName(this.spanAttributes),
|
|
1358
1410
|
{ kind: "client" },
|
|
1359
1411
|
(span) =>
|
|
1360
1412
|
this.withConnectionSpan(
|
|
@@ -1381,7 +1433,7 @@ const StatementProto: Omit<
|
|
|
1381
1433
|
for (const [key, value] of this.spanAttributes) {
|
|
1382
1434
|
span.attribute(key, value)
|
|
1383
1435
|
}
|
|
1384
|
-
span.attribute(
|
|
1436
|
+
span.attribute(ATTR_SQL_METHOD, operation)
|
|
1385
1437
|
span.attribute(ATTR_DB_QUERY_TEXT, sql)
|
|
1386
1438
|
const execute = this.borrower === undefined
|
|
1387
1439
|
? Effect.scoped(Effect.flatMap(this.acquirer, (_) => f(_, sql, params)))
|
|
@@ -1411,14 +1463,14 @@ const StatementProto: Omit<
|
|
|
1411
1463
|
get stream(): Stream.Stream<any, SqlError> {
|
|
1412
1464
|
const self = this as StatementImpl<any>
|
|
1413
1465
|
return Stream.unwrap(Effect.flatMap(
|
|
1414
|
-
Effect.makeSpanScoped(
|
|
1466
|
+
Effect.makeSpanScoped(spanName(self.spanAttributes), { kind: "client" }),
|
|
1415
1467
|
(span) =>
|
|
1416
1468
|
withStatement(self, span, (statement, fiber) => {
|
|
1417
1469
|
const [sql, params] = statement.compile()
|
|
1418
1470
|
for (const [key, value] of self.spanAttributes) {
|
|
1419
1471
|
span.attribute(key, value)
|
|
1420
1472
|
}
|
|
1421
|
-
span.attribute(
|
|
1473
|
+
span.attribute(ATTR_SQL_METHOD, "executeStream")
|
|
1422
1474
|
span.attribute(ATTR_DB_QUERY_TEXT, sql)
|
|
1423
1475
|
const acquire = Effect.map(self.acquirer, (_) => _.executeStream(sql, params, self.transformRows))
|
|
1424
1476
|
return fiber.cache.tracerEnabled && fiber.getRef(SpanPropagationEnabled)
|
|
@@ -1456,7 +1508,7 @@ const StatementProto: Omit<
|
|
|
1456
1508
|
...Effectable.Prototype<StatementImpl<any>>({
|
|
1457
1509
|
label: "Statement",
|
|
1458
1510
|
evaluate(fiber) {
|
|
1459
|
-
const span = internalEffect.makeSpanUnsafe(fiber,
|
|
1511
|
+
const span = internalEffect.makeSpanUnsafe(fiber, spanName(this.spanAttributes), { kind: "client" })
|
|
1460
1512
|
const clock = fiber.getRef(Clock)
|
|
1461
1513
|
const timingEnabled = fiber.getRef(TracerTimingEnabled)
|
|
1462
1514
|
return Effect.onExit(
|
package/src/testing/TestClock.ts
CHANGED
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* live clock, and warning when a test appears to be waiting on time without
|
|
9
9
|
* advancing it.
|
|
10
10
|
*
|
|
11
|
+
* @stability stable
|
|
11
12
|
* @since 2.0.0
|
|
12
13
|
*/
|
|
13
14
|
import * as Arr from "../Array.ts"
|
|
@@ -88,6 +89,7 @@ import * as Semaphore from "../Semaphore.ts"
|
|
|
88
89
|
* await Effect.runPromise(Effect.provide(program, TestClock.layer()))
|
|
89
90
|
* ```
|
|
90
91
|
*
|
|
92
|
+
* @stability stable
|
|
91
93
|
* @category models
|
|
92
94
|
* @since 2.0.0
|
|
93
95
|
*/
|
|
@@ -133,6 +135,7 @@ export interface TestClock extends Clock.Clock {
|
|
|
133
135
|
* await Effect.runPromise(Effect.scoped(program))
|
|
134
136
|
* ```
|
|
135
137
|
*
|
|
138
|
+
* @stability stable
|
|
136
139
|
* @since 2.0.0
|
|
137
140
|
*/
|
|
138
141
|
export declare namespace TestClock {
|
|
@@ -238,6 +241,7 @@ const millisToNanos = (millis: number): bigint => {
|
|
|
238
241
|
* await Effect.runPromise(Effect.scoped(program))
|
|
239
242
|
* ```
|
|
240
243
|
*
|
|
244
|
+
* @stability stable
|
|
241
245
|
* @category constructors
|
|
242
246
|
* @since 4.0.0
|
|
243
247
|
*/
|
|
@@ -430,6 +434,7 @@ export const make = Effect.fnUntraced(function*(
|
|
|
430
434
|
* await Effect.runPromise(Effect.provide(program, customTestClockLayer)) // => 3_600_000
|
|
431
435
|
* ```
|
|
432
436
|
*
|
|
437
|
+
* @stability stable
|
|
433
438
|
* @category layers
|
|
434
439
|
* @since 4.0.0
|
|
435
440
|
*/
|
|
@@ -463,6 +468,7 @@ export const layer: (options?: TestClock.Options) => Layer.Layer<TestClock> = fl
|
|
|
463
468
|
* await Effect.runPromise(Effect.provide(program, TestClock.layer()))
|
|
464
469
|
* ```
|
|
465
470
|
*
|
|
471
|
+
* @stability stable
|
|
466
472
|
* @category testing
|
|
467
473
|
* @since 2.0.0
|
|
468
474
|
*/
|
|
@@ -501,6 +507,7 @@ export const testClockWith = <A, E, R>(
|
|
|
501
507
|
* await Effect.runPromise(Effect.provide(program, TestClock.layer()))
|
|
502
508
|
* ```
|
|
503
509
|
*
|
|
510
|
+
* @stability stable
|
|
504
511
|
* @category testing
|
|
505
512
|
* @since 2.0.0
|
|
506
513
|
*/
|
|
@@ -538,6 +545,7 @@ export const adjust = (duration: Duration.Input): Effect.Effect<void> =>
|
|
|
538
545
|
* await Effect.runPromise(Effect.provide(program, TestClock.layer()))
|
|
539
546
|
* ```
|
|
540
547
|
*
|
|
548
|
+
* @stability stable
|
|
541
549
|
* @category testing
|
|
542
550
|
* @since 2.0.0
|
|
543
551
|
*/
|
|
@@ -574,6 +582,7 @@ export const setTime = (timestamp: number): Effect.Effect<void> =>
|
|
|
574
582
|
* await Effect.runPromise(Effect.provide(program, TestClock.layer()))
|
|
575
583
|
* ```
|
|
576
584
|
*
|
|
585
|
+
* @stability stable
|
|
577
586
|
* @category testing
|
|
578
587
|
* @since 4.0.0
|
|
579
588
|
*/
|
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
* console layer, helpers for reading captured `Console.log` and `Console.error`
|
|
8
8
|
* arguments, and access to the provided test console service.
|
|
9
9
|
*
|
|
10
|
+
* @stability unstable
|
|
10
11
|
* @since 4.0.0
|
|
11
12
|
*/
|
|
12
13
|
import * as Array from "../Array.ts"
|
|
@@ -53,6 +54,7 @@ import * as Layer from "../Layer.ts"
|
|
|
53
54
|
* @see {@link logLines} for reading captured `Console.log` calls
|
|
54
55
|
* @see {@link errorLines} for reading captured `Console.error` calls
|
|
55
56
|
*
|
|
57
|
+
* @stability unstable
|
|
56
58
|
* @category models
|
|
57
59
|
* @since 4.0.0
|
|
58
60
|
*/
|
|
@@ -87,6 +89,7 @@ export interface TestConsole extends Console.Console {
|
|
|
87
89
|
*
|
|
88
90
|
* Use when referring to types nested under the `TestConsole` namespace.
|
|
89
91
|
*
|
|
92
|
+
* @stability unstable
|
|
90
93
|
* @since 4.0.0
|
|
91
94
|
*/
|
|
92
95
|
export declare namespace TestConsole {
|
|
@@ -173,6 +176,7 @@ export declare namespace TestConsole {
|
|
|
173
176
|
*
|
|
174
177
|
* @see {@link layer} for providing a `TestConsole` as a `Layer`
|
|
175
178
|
*
|
|
179
|
+
* @stability unstable
|
|
176
180
|
* @category constructors
|
|
177
181
|
* @since 4.0.0
|
|
178
182
|
*/
|
|
@@ -250,6 +254,7 @@ export const make = Effect.gen(function*() {
|
|
|
250
254
|
* @see {@link logLines} for reading captured `Console.log` calls directly
|
|
251
255
|
* @see {@link errorLines} for reading captured `Console.error` calls directly
|
|
252
256
|
*
|
|
257
|
+
* @stability unstable
|
|
253
258
|
* @category testing
|
|
254
259
|
* @since 4.0.0
|
|
255
260
|
*/
|
|
@@ -288,6 +293,7 @@ export const testConsoleWith = <A, E, R>(f: (console: TestConsole) => Effect.Eff
|
|
|
288
293
|
* @see {@link make} for constructing the service value directly
|
|
289
294
|
* @see {@link testConsoleWith} for accessing the provided test console service
|
|
290
295
|
*
|
|
296
|
+
* @stability unstable
|
|
291
297
|
* @category layers
|
|
292
298
|
* @since 4.0.0
|
|
293
299
|
*/
|
|
@@ -324,6 +330,7 @@ export const layer: Layer.Layer<TestConsole> = Layer.effect(Console.Console)(mak
|
|
|
324
330
|
* @see {@link errorLines} for reading captured `Console.error` output
|
|
325
331
|
* @see {@link layer} for capturing console calls during a test
|
|
326
332
|
*
|
|
333
|
+
* @stability unstable
|
|
327
334
|
* @category testing
|
|
328
335
|
* @since 4.0.0
|
|
329
336
|
*/
|
|
@@ -362,6 +369,7 @@ export const logLines: Effect.Effect<ReadonlyArray<unknown>, never, never> = tes
|
|
|
362
369
|
* @see {@link logLines} for reading captured `Console.log` output
|
|
363
370
|
* @see {@link layer} for capturing console calls during a test
|
|
364
371
|
*
|
|
372
|
+
* @stability unstable
|
|
365
373
|
* @category testing
|
|
366
374
|
* @since 4.0.0
|
|
367
375
|
*/
|
package/src/testing/index.ts
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
/**
|
|
2
|
+
* @stability unstable
|
|
2
3
|
* @since 4.0.0
|
|
3
4
|
*/
|
|
4
5
|
|
|
5
6
|
// @barrel: Auto-generated exports. Do not edit manually.
|
|
6
7
|
|
|
7
8
|
/**
|
|
9
|
+
* @stability stable
|
|
8
10
|
* @since 2.0.0
|
|
9
11
|
*/
|
|
10
12
|
export * as TestClock from "./TestClock.ts"
|
|
11
13
|
|
|
12
14
|
/**
|
|
15
|
+
* @stability unstable
|
|
13
16
|
* @since 4.0.0
|
|
14
17
|
*/
|
|
15
18
|
export * as TestConsole from "./TestConsole.ts"
|