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/socket/Socket.ts
CHANGED
|
@@ -799,13 +799,18 @@ export interface WebSocketLike {
|
|
|
799
799
|
}
|
|
800
800
|
|
|
801
801
|
/**
|
|
802
|
-
*
|
|
802
|
+
* Client options for Node and Bun WebSocket implementations, allowing
|
|
803
|
+
* handshake headers and subprotocols to be supplied together.
|
|
803
804
|
*
|
|
804
805
|
* @stability unstable
|
|
805
806
|
* @category models
|
|
806
807
|
* @since 4.0.0
|
|
807
808
|
*/
|
|
808
809
|
export interface WebSocketClientOptions {
|
|
810
|
+
/**
|
|
811
|
+
* Subprotocols to offer in the opening handshake.
|
|
812
|
+
*/
|
|
813
|
+
readonly protocols?: string | Array<string> | undefined
|
|
809
814
|
/**
|
|
810
815
|
* Headers to include in the opening handshake.
|
|
811
816
|
*
|
|
@@ -857,6 +862,7 @@ export class WebSocketConstructor extends Context.Service<
|
|
|
857
862
|
|
|
858
863
|
/**
|
|
859
864
|
* Layer that provides `WebSocketConstructor` using `globalThis.WebSocket`.
|
|
865
|
+
* Rejects client options objects, including those with handshake headers.
|
|
860
866
|
*
|
|
861
867
|
* @stability unstable
|
|
862
868
|
* @category layers
|
|
@@ -874,6 +880,8 @@ export const layerWebSocketConstructorGlobal: Layer.Layer<WebSocketConstructor>
|
|
|
874
880
|
/**
|
|
875
881
|
* Creates a `Socket` backed by a `WebSocketConstructor`, dialing the
|
|
876
882
|
* WebSocket for each reader acquisition.
|
|
883
|
+
* Optional handshake headers require a Node or Bun constructor; without
|
|
884
|
+
* headers, protocols are passed directly for browser compatibility.
|
|
877
885
|
*
|
|
878
886
|
* @stability unstable
|
|
879
887
|
* @category constructors
|
|
@@ -882,13 +890,21 @@ export const layerWebSocketConstructorGlobal: Layer.Layer<WebSocketConstructor>
|
|
|
882
890
|
export const makeWebSocket = (url: string | Effect.Effect<string>, options?: {
|
|
883
891
|
readonly openTimeout?: Duration.Input | undefined
|
|
884
892
|
readonly protocols?: string | Array<string> | undefined
|
|
893
|
+
readonly headers?: Readonly<Record<string, string>> | undefined
|
|
885
894
|
readonly highWaterMark?: number | undefined
|
|
886
895
|
}): Effect.Effect<Socket, never, WebSocketConstructor> =>
|
|
887
896
|
WebSocketConstructor.use((makeWs) =>
|
|
888
897
|
fromWebSocket(
|
|
889
898
|
Effect.acquireRelease(
|
|
890
899
|
(typeof url === "string" ? Effect.succeed(url) : url).pipe(
|
|
891
|
-
Effect.map((url) =>
|
|
900
|
+
Effect.map((url) =>
|
|
901
|
+
makeWs(
|
|
902
|
+
url,
|
|
903
|
+
options?.headers === undefined
|
|
904
|
+
? options?.protocols
|
|
905
|
+
: { protocols: options.protocols, headers: options.headers }
|
|
906
|
+
)
|
|
907
|
+
)
|
|
892
908
|
),
|
|
893
909
|
(ws) => Effect.sync(() => ws.close(1000))
|
|
894
910
|
),
|
|
@@ -1165,6 +1181,7 @@ const defaultHighWaterMark = 64 * 1024
|
|
|
1165
1181
|
/**
|
|
1166
1182
|
* Creates a binary `Channel` backed by a WebSocket URL, requiring a
|
|
1167
1183
|
* `WebSocketConstructor` service.
|
|
1184
|
+
* Supports subprotocols and, with a Node or Bun constructor, handshake headers.
|
|
1168
1185
|
*
|
|
1169
1186
|
* @stability unstable
|
|
1170
1187
|
* @category constructors
|
|
@@ -1175,6 +1192,7 @@ export const makeWebSocketChannel = <IE = never>(
|
|
|
1175
1192
|
options?: {
|
|
1176
1193
|
readonly openTimeout?: Duration.Input | undefined
|
|
1177
1194
|
readonly protocols?: string | Array<string> | undefined
|
|
1195
|
+
readonly headers?: Readonly<Record<string, string>> | undefined
|
|
1178
1196
|
readonly highWaterMark?: number | undefined
|
|
1179
1197
|
}
|
|
1180
1198
|
): Channel.Channel<
|
|
@@ -1193,6 +1211,7 @@ export const makeWebSocketChannel = <IE = never>(
|
|
|
1193
1211
|
/**
|
|
1194
1212
|
* Layer that provides a `Socket` service backed by a WebSocket URL or URL
|
|
1195
1213
|
* effect.
|
|
1214
|
+
* Supports subprotocols and, with a Node or Bun constructor, handshake headers.
|
|
1196
1215
|
*
|
|
1197
1216
|
* @stability unstable
|
|
1198
1217
|
* @category layers
|
|
@@ -1203,6 +1222,7 @@ export const layerWebSocket: (
|
|
|
1203
1222
|
options?: {
|
|
1204
1223
|
readonly openTimeout?: Duration.Input | undefined
|
|
1205
1224
|
readonly protocols?: string | Array<string> | undefined
|
|
1225
|
+
readonly headers?: Readonly<Record<string, string>> | undefined
|
|
1206
1226
|
readonly highWaterMark?: number | undefined
|
|
1207
1227
|
} | undefined
|
|
1208
1228
|
) => Layer.Layer<Socket, never, WebSocketConstructor> = flow(makeWebSocket, Layer.effect(Socket))
|
package/src/socket/index.ts
CHANGED
package/src/sql/Migrator.ts
CHANGED
|
@@ -140,14 +140,21 @@ export const make = <RD = never>({
|
|
|
140
140
|
PRIMARY KEY (migration_id)
|
|
141
141
|
)`,
|
|
142
142
|
pg: () =>
|
|
143
|
-
Effect.
|
|
144
|
-
sql
|
|
145
|
-
() =>
|
|
146
|
-
sql`CREATE TABLE ${sql(table)} (
|
|
143
|
+
Effect.flatMap(
|
|
144
|
+
migrationsTableExists(sql, table),
|
|
145
|
+
(exists) =>
|
|
146
|
+
exists ? Effect.void : Effect.asVoid(sql`CREATE TABLE ${sql(table)} (
|
|
147
147
|
migration_id integer primary key,
|
|
148
148
|
created_at timestamp with time zone not null default now(),
|
|
149
149
|
name text not null
|
|
150
|
-
)`
|
|
150
|
+
)`).pipe(
|
|
151
|
+
Effect.catch((error) =>
|
|
152
|
+
Effect.flatMap(
|
|
153
|
+
migrationsTableExists(sql, table),
|
|
154
|
+
(exists) => exists ? Effect.void : Effect.fail(error)
|
|
155
|
+
)
|
|
156
|
+
)
|
|
157
|
+
)
|
|
151
158
|
),
|
|
152
159
|
orElse: () =>
|
|
153
160
|
sql`CREATE TABLE IF NOT EXISTS ${sql(table)} (
|
|
@@ -328,6 +335,15 @@ export const make = <RD = never>({
|
|
|
328
335
|
return completed
|
|
329
336
|
})
|
|
330
337
|
|
|
338
|
+
const migrationsTableExists = (sql: Client.SqlClient, table: string): Effect.Effect<boolean, SqlError> => {
|
|
339
|
+
// Match query quoting: to_regclass folds unquoted names to lowercase.
|
|
340
|
+
const quotedTable = sql`${sql(table)}`.compile(true)[0]
|
|
341
|
+
return Effect.map(
|
|
342
|
+
sql`SELECT 1 AS found WHERE to_regclass(${quotedTable}) IS NOT NULL`.withoutTransform,
|
|
343
|
+
(rows) => rows.length > 0
|
|
344
|
+
)
|
|
345
|
+
}
|
|
346
|
+
|
|
331
347
|
const migrationOrder = Order.make<ResolvedMigration>(([a], [b]) => Order.Number(a, b))
|
|
332
348
|
|
|
333
349
|
const isConstraintConflict = (error: SqlError): boolean =>
|
package/src/sql/SqlClient.ts
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* @stability unstable
|
|
10
10
|
* @since 4.0.0
|
|
11
11
|
*/
|
|
12
|
-
import
|
|
12
|
+
import * as Cause from "../Cause.ts"
|
|
13
13
|
import { Clock } from "../Clock.ts"
|
|
14
14
|
import * as Context from "../Context.ts"
|
|
15
15
|
import * as Effect from "../Effect.ts"
|
|
@@ -280,6 +280,12 @@ export const make = Effect.fnUntraced(function*(options: SqlClient.MakeOptions)
|
|
|
280
280
|
*
|
|
281
281
|
* **Details**
|
|
282
282
|
*
|
|
283
|
+
* Both acquirers lease the connection into the current scope and hold the
|
|
284
|
+
* semaphore until that scope closes, so a statement or stream keeps the
|
|
285
|
+
* connection until it finishes and another fiber cannot begin a transaction
|
|
286
|
+
* underneath it. Effects that use the connection directly, such as an export,
|
|
287
|
+
* have to run inside `Effect.scoped`.
|
|
288
|
+
*
|
|
283
289
|
* SQLite can keep a transaction open after COMMIT fails, for example on a
|
|
284
290
|
* deferred foreign key violation. `onCommitFailure` rolls it back before the
|
|
285
291
|
* connection is reused. If that ROLLBACK fails, the connection is rejected, and
|
|
@@ -300,7 +306,7 @@ export const makeSqliteAcquirers = <C extends Connection.Connection>(options: {
|
|
|
300
306
|
readonly semaphore: Semaphore.Semaphore
|
|
301
307
|
readonly isTransaction?: ((conn: C) => boolean) | undefined
|
|
302
308
|
}): {
|
|
303
|
-
readonly acquirer: Effect.Effect<C, SqlError>
|
|
309
|
+
readonly acquirer: Effect.Effect<C, SqlError, Scope.Scope>
|
|
304
310
|
readonly transactionAcquirer: Effect.Effect<C, SqlError, Scope.Scope>
|
|
305
311
|
readonly onCommitFailure: (conn: Connection.Connection) => Effect.Effect<void, SqlError>
|
|
306
312
|
} => {
|
|
@@ -336,15 +342,17 @@ export const makeSqliteAcquirers = <C extends Connection.Connection>(options: {
|
|
|
336
342
|
})
|
|
337
343
|
})
|
|
338
344
|
|
|
345
|
+
const lease = Effect.uninterruptibleMask((restore) =>
|
|
346
|
+
Effect.flatMap(Effect.scope, (scope) =>
|
|
347
|
+
restore(semaphore.take(1)).pipe(
|
|
348
|
+
Effect.andThen(Scope.addFinalizer(scope, semaphore.release(1))),
|
|
349
|
+
Effect.andThen(available)
|
|
350
|
+
))
|
|
351
|
+
)
|
|
352
|
+
|
|
339
353
|
return {
|
|
340
|
-
acquirer:
|
|
341
|
-
transactionAcquirer:
|
|
342
|
-
Effect.flatMap(Effect.scope, (scope) =>
|
|
343
|
-
restore(semaphore.take(1)).pipe(
|
|
344
|
-
Effect.andThen(Scope.addFinalizer(scope, semaphore.release(1))),
|
|
345
|
-
Effect.andThen(available)
|
|
346
|
-
))
|
|
347
|
-
),
|
|
354
|
+
acquirer: lease,
|
|
355
|
+
transactionAcquirer: lease,
|
|
348
356
|
onCommitFailure: (conn) => Effect.tapCause(rollback(conn as C), (cause) => Effect.sync(() => poison(cause)))
|
|
349
357
|
}
|
|
350
358
|
}
|
|
@@ -359,6 +367,18 @@ const isNoTransactionError = (error: SqlError): boolean => {
|
|
|
359
367
|
return /no transaction is active/i.test(message);
|
|
360
368
|
}
|
|
361
369
|
|
|
370
|
+
/**
|
|
371
|
+
* A failed COMMIT cleanup leaves the connection in an unsafe state, so both the
|
|
372
|
+
* COMMIT error and the cleanup error are promoted to defects: typed recovery
|
|
373
|
+
* must not be able to hide them.
|
|
374
|
+
*/
|
|
375
|
+
const failuresToDefects = <E>(cause: Cause.Cause<E>): Cause.Cause<never> =>
|
|
376
|
+
Cause.fromReasons(cause.reasons.map((reason) =>
|
|
377
|
+
Cause.isFailReason(reason)
|
|
378
|
+
? Cause.makeDieReason(reason.error).annotate(Cause.reasonAnnotations(reason))
|
|
379
|
+
: reason
|
|
380
|
+
))
|
|
381
|
+
|
|
362
382
|
/**
|
|
363
383
|
* Builds a transaction wrapper that begins top-level transactions, uses
|
|
364
384
|
* savepoints for nested transactions, commits on success, and rolls back on
|
|
@@ -394,7 +414,7 @@ export const makeWithTransaction = <I, S>(options: {
|
|
|
394
414
|
Effect.uninterruptibleMask((restore) =>
|
|
395
415
|
Effect.useSpan(
|
|
396
416
|
"sql.transaction",
|
|
397
|
-
{ kind: "
|
|
417
|
+
{ kind: "internal" },
|
|
398
418
|
(span) =>
|
|
399
419
|
Effect.withFiber<A, E | SqlError, R>((fiber) => {
|
|
400
420
|
for (const [key, value] of options.spanAttributes) {
|
|
@@ -424,21 +444,25 @@ export const makeWithTransaction = <I, S>(options: {
|
|
|
424
444
|
)
|
|
425
445
|
),
|
|
426
446
|
(exit) => {
|
|
427
|
-
let effect: Effect.Effect<void>
|
|
447
|
+
let effect: Effect.Effect<void, SqlError>
|
|
428
448
|
if (Exit.isSuccess(exit)) {
|
|
429
449
|
if (id === 0) {
|
|
430
|
-
span.event("
|
|
450
|
+
span.event("effect.sql.transaction.commit", clock.currentTimeNanosUnsafe())
|
|
431
451
|
const onCommitFailure = options.onCommitFailure
|
|
432
|
-
effect =
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
452
|
+
effect = onCommitFailure
|
|
453
|
+
? Effect.catchCause(options.commit(conn), (commitCause) =>
|
|
454
|
+
Effect.matchCauseEffect(onCommitFailure(conn), {
|
|
455
|
+
onFailure: (cleanupCause) =>
|
|
456
|
+
Effect.failCause(failuresToDefects(Cause.combine(commitCause, cleanupCause))),
|
|
457
|
+
onSuccess: () => Effect.failCause(commitCause)
|
|
458
|
+
}))
|
|
459
|
+
: options.commit(conn)
|
|
436
460
|
} else {
|
|
437
|
-
span.event("
|
|
461
|
+
span.event("effect.sql.transaction.savepoint", clock.currentTimeNanosUnsafe())
|
|
438
462
|
effect = Effect.void
|
|
439
463
|
}
|
|
440
464
|
} else {
|
|
441
|
-
span.event("
|
|
465
|
+
span.event("effect.sql.transaction.rollback", clock.currentTimeNanosUnsafe())
|
|
442
466
|
effect = Effect.orDie(
|
|
443
467
|
id > 0
|
|
444
468
|
? 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
|
*/
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Provides a deterministic implementation of the Effect `Crypto` service for
|
|
3
|
+
* tests.
|
|
4
|
+
*
|
|
5
|
+
* Random bytes, numbers, shuffles, UUIDs, and ULIDs are derived from a seeded
|
|
6
|
+
* pseudo-random generator. Digest operations are delegated to an underlying
|
|
7
|
+
* platform `Crypto` service.
|
|
8
|
+
*
|
|
9
|
+
* @stability unstable
|
|
10
|
+
* @since 4.0.0
|
|
11
|
+
*/
|
|
12
|
+
import * as Crypto from "../Crypto.ts"
|
|
13
|
+
import * as Effect from "../Effect.ts"
|
|
14
|
+
import * as Layer from "../Layer.ts"
|
|
15
|
+
import * as Random from "../Random.ts"
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Creates a deterministic `Crypto` service using a seeded pseudo-random
|
|
19
|
+
* generator.
|
|
20
|
+
*
|
|
21
|
+
* **When to use**
|
|
22
|
+
*
|
|
23
|
+
* Use to construct a `Crypto` service whose random operations are reproducible
|
|
24
|
+
* in tests while preserving the digest implementation of a platform `Crypto`
|
|
25
|
+
* service.
|
|
26
|
+
*
|
|
27
|
+
* **Details**
|
|
28
|
+
*
|
|
29
|
+
* The effect requires an existing `Crypto` service and delegates digest
|
|
30
|
+
* operations to it. Each evaluation starts a new random sequence from `seed`;
|
|
31
|
+
* every other random operation is derived from that sequence.
|
|
32
|
+
*
|
|
33
|
+
* **Gotchas**
|
|
34
|
+
*
|
|
35
|
+
* The generated values are deterministic and must not be used for
|
|
36
|
+
* security-sensitive purposes. The sequence depends on the order in which
|
|
37
|
+
* random operations are evaluated. UUIDv7 and ULID values also include the
|
|
38
|
+
* current `Clock` time, which must be controlled separately when their complete
|
|
39
|
+
* output needs to be reproducible.
|
|
40
|
+
*
|
|
41
|
+
* @see {@link layer} for providing the service as a layer
|
|
42
|
+
*
|
|
43
|
+
* @stability unstable
|
|
44
|
+
* @category constructors
|
|
45
|
+
* @since 4.0.0
|
|
46
|
+
*/
|
|
47
|
+
export const make: (
|
|
48
|
+
seed: string | number
|
|
49
|
+
) => Effect.Effect<Crypto.Crypto, never, Crypto.Crypto> = Effect.fnUntraced(
|
|
50
|
+
function*(_seed: string | number) {
|
|
51
|
+
const crypto = yield* Crypto.Crypto
|
|
52
|
+
const seededRandom = yield* Random.Random
|
|
53
|
+
return Crypto.make({
|
|
54
|
+
randomBytes: (size) => {
|
|
55
|
+
const bytes = new Uint8Array(size)
|
|
56
|
+
for (let i = 0; i < size; i++) {
|
|
57
|
+
bytes[i] = Math.floor(seededRandom.nextDoubleUnsafe() * 256)
|
|
58
|
+
}
|
|
59
|
+
return bytes
|
|
60
|
+
},
|
|
61
|
+
digest: crypto.digest
|
|
62
|
+
})
|
|
63
|
+
},
|
|
64
|
+
(effect, seed) => Random.withSeed(effect, seed)
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Creates a layer that provides deterministic `Crypto` random operations from
|
|
69
|
+
* a seed.
|
|
70
|
+
*
|
|
71
|
+
* **When to use**
|
|
72
|
+
*
|
|
73
|
+
* Use to provide reproducible random bytes, numbers, shuffles, UUIDs, and ULIDs
|
|
74
|
+
* to an Effect program under test.
|
|
75
|
+
*
|
|
76
|
+
* **Details**
|
|
77
|
+
*
|
|
78
|
+
* The layer requires an existing platform `Crypto` service whose digest
|
|
79
|
+
* implementation is retained. Each layer build starts the random sequence from
|
|
80
|
+
* `seed`.
|
|
81
|
+
*
|
|
82
|
+
* **Gotchas**
|
|
83
|
+
*
|
|
84
|
+
* UUIDv7 and ULID values also depend on the current `Clock`. Provide a test
|
|
85
|
+
* clock when their complete output needs to be reproducible.
|
|
86
|
+
*
|
|
87
|
+
* @see {@link make} for constructing the service directly
|
|
88
|
+
*
|
|
89
|
+
* @stability unstable
|
|
90
|
+
* @category layers
|
|
91
|
+
* @since 4.0.0
|
|
92
|
+
*/
|
|
93
|
+
export const layer = (seed: string | number): Layer.Layer<Crypto.Crypto, never, Crypto.Crypto> =>
|
|
94
|
+
Layer.effect(Crypto.Crypto, make(seed))
|
package/src/testing/index.ts
CHANGED
|
@@ -1,19 +1,28 @@
|
|
|
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"
|
|
16
19
|
|
|
20
|
+
/**
|
|
21
|
+
* @stability unstable
|
|
22
|
+
* @since 4.0.0
|
|
23
|
+
*/
|
|
24
|
+
export * as TestCrypto from "./TestCrypto.ts"
|
|
25
|
+
|
|
17
26
|
/**
|
|
18
27
|
* @stability unstable
|
|
19
28
|
* @since 4.0.0
|