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
|
@@ -493,6 +493,62 @@ export const encodeHistogram = (histogram: {
|
|
|
493
493
|
Proto.varintField(2, histogram.aggregationTemporality)
|
|
494
494
|
)
|
|
495
495
|
|
|
496
|
+
/**
|
|
497
|
+
* Encodes a SummaryDataPoint message.
|
|
498
|
+
*
|
|
499
|
+
* message SummaryDataPoint {
|
|
500
|
+
* repeated KeyValue attributes = 7;
|
|
501
|
+
* fixed64 start_time_unix_nano = 2;
|
|
502
|
+
* fixed64 time_unix_nano = 3;
|
|
503
|
+
* fixed64 count = 4;
|
|
504
|
+
* double sum = 5;
|
|
505
|
+
* repeated ValueAtQuantile quantile_values = 6;
|
|
506
|
+
* uint32 flags = 8;
|
|
507
|
+
* }
|
|
508
|
+
*
|
|
509
|
+
* message ValueAtQuantile {
|
|
510
|
+
* double quantile = 1;
|
|
511
|
+
* double value = 2;
|
|
512
|
+
* }
|
|
513
|
+
*
|
|
514
|
+
* @internal
|
|
515
|
+
*/
|
|
516
|
+
export const encodeSummaryDataPoint = (point: {
|
|
517
|
+
readonly attributes: ReadonlyArray<KeyValue>
|
|
518
|
+
readonly startTimeUnixNano: string
|
|
519
|
+
readonly timeUnixNano: string
|
|
520
|
+
readonly count: string | number | bigint
|
|
521
|
+
readonly sum: number
|
|
522
|
+
readonly quantileValues: ReadonlyArray<{ readonly quantile: number; readonly value: number }>
|
|
523
|
+
readonly flags?: number | undefined
|
|
524
|
+
}): Uint8Array =>
|
|
525
|
+
Proto.concat(
|
|
526
|
+
Proto.fixed64Field(2, BigInt(point.startTimeUnixNano)),
|
|
527
|
+
Proto.fixed64Field(3, BigInt(point.timeUnixNano)),
|
|
528
|
+
Proto.fixed64Field(4, BigInt(point.count)),
|
|
529
|
+
Proto.doubleField(5, point.sum),
|
|
530
|
+
Proto.repeatedField(
|
|
531
|
+
6,
|
|
532
|
+
point.quantileValues,
|
|
533
|
+
(q) => Proto.concat(Proto.doubleField(1, q.quantile), Proto.doubleField(2, q.value))
|
|
534
|
+
),
|
|
535
|
+
Proto.repeatedField(7, point.attributes, encodeKeyValue),
|
|
536
|
+
point.flags !== undefined ? Proto.varintField(8, point.flags) : new Uint8Array(0)
|
|
537
|
+
)
|
|
538
|
+
|
|
539
|
+
/**
|
|
540
|
+
* Encodes a Summary message.
|
|
541
|
+
*
|
|
542
|
+
* message Summary {
|
|
543
|
+
* repeated SummaryDataPoint data_points = 1;
|
|
544
|
+
* }
|
|
545
|
+
*
|
|
546
|
+
* @internal
|
|
547
|
+
*/
|
|
548
|
+
export const encodeSummary = (summary: {
|
|
549
|
+
readonly dataPoints: ReadonlyArray<Parameters<typeof encodeSummaryDataPoint>[0]>
|
|
550
|
+
}): Uint8Array => Proto.repeatedField(1, summary.dataPoints, encodeSummaryDataPoint)
|
|
551
|
+
|
|
496
552
|
/**
|
|
497
553
|
* Encodes a Metric message.
|
|
498
554
|
*
|
|
@@ -518,6 +574,7 @@ export const encodeMetric = (metric: {
|
|
|
518
574
|
readonly gauge?: Parameters<typeof encodeGauge>[0] | undefined
|
|
519
575
|
readonly sum?: Parameters<typeof encodeSum>[0] | undefined
|
|
520
576
|
readonly histogram?: Parameters<typeof encodeHistogram>[0] | undefined
|
|
577
|
+
readonly summary?: Parameters<typeof encodeSummary>[0] | undefined
|
|
521
578
|
}): Uint8Array =>
|
|
522
579
|
Proto.concat(
|
|
523
580
|
Proto.stringField(1, metric.name),
|
|
@@ -531,6 +588,9 @@ export const encodeMetric = (metric: {
|
|
|
531
588
|
: new Uint8Array(0),
|
|
532
589
|
metric.histogram !== undefined
|
|
533
590
|
? Proto.messageField(9, encodeHistogram(metric.histogram))
|
|
591
|
+
: new Uint8Array(0),
|
|
592
|
+
metric.summary !== undefined
|
|
593
|
+
? Proto.messageField(11, encodeSummary(metric.summary))
|
|
534
594
|
: new Uint8Array(0)
|
|
535
595
|
)
|
|
536
596
|
|
|
@@ -34,6 +34,7 @@ import * as Scope from "../Scope.ts"
|
|
|
34
34
|
import * as Migrator from "../sql/Migrator.ts"
|
|
35
35
|
import * as SqlClient from "../sql/SqlClient.ts"
|
|
36
36
|
import type { SqlError } from "../sql/SqlError.ts"
|
|
37
|
+
import type { Fragment } from "../sql/Statement.ts"
|
|
37
38
|
import * as Redis from "./Redis.ts"
|
|
38
39
|
|
|
39
40
|
/**
|
|
@@ -80,11 +81,27 @@ export interface PersistedQueue<in out A, out R = never> {
|
|
|
80
81
|
* **Details**
|
|
81
82
|
*
|
|
82
83
|
* If an element with the same id already exists in the queue, it will not be
|
|
83
|
-
* added again
|
|
84
|
+
* added again, and the `delay` of the duplicate offer is ignored.
|
|
85
|
+
* De-duplication survives completion until the id is removed by
|
|
84
86
|
* `layerCleanup`.
|
|
87
|
+
*
|
|
88
|
+
* `delay` postpones the first delivery. Measured by the store's clock, the
|
|
89
|
+
* element is never delivered before the delay elapses, and is typically
|
|
90
|
+
* delivered within the store's `pollInterval` after. The SQL store uses the
|
|
91
|
+
* database clock and rounds delays up to whole seconds. The Redis store
|
|
92
|
+
* compares the offering process's clock with the polling worker's, so it
|
|
93
|
+
* relies on those clocks agreeing.
|
|
94
|
+
* Retries still use the queue's `retrySchedule`, and the delay does not
|
|
95
|
+
* count an attempt. A zero, negative or omitted delay enqueues the element
|
|
96
|
+
* immediately.
|
|
97
|
+
*
|
|
98
|
+
* An infinite delay does nothing: the id is returned, but nothing is stored
|
|
99
|
+
* and no de-duplication record is written, so the same id can be offered
|
|
100
|
+
* again later.
|
|
85
101
|
*/
|
|
86
102
|
readonly offer: (value: A, options?: {
|
|
87
|
-
readonly id
|
|
103
|
+
readonly id?: string | undefined
|
|
104
|
+
readonly delay?: Duration.Input | undefined
|
|
88
105
|
}) => Effect.Effect<string, PersistedQueueError | Schema.SchemaError, R>
|
|
89
106
|
|
|
90
107
|
/**
|
|
@@ -232,21 +249,27 @@ export const makeFactory = Effect.gen(function*() {
|
|
|
232
249
|
return Effect.succeed<PersistedQueue<S["Type"], S["EncodingServices"] | S["DecodingServices"]>>({
|
|
233
250
|
[TypeId]: TypeId,
|
|
234
251
|
offer: (value, opts) =>
|
|
235
|
-
Effect.
|
|
236
|
-
|
|
237
|
-
(
|
|
238
|
-
|
|
239
|
-
return Effect.
|
|
240
|
-
store.offer({
|
|
241
|
-
name: options.name,
|
|
242
|
-
id,
|
|
243
|
-
element,
|
|
244
|
-
isCustomId: opts?.id !== undefined
|
|
245
|
-
}),
|
|
246
|
-
id
|
|
247
|
-
)
|
|
252
|
+
Effect.suspend(() => {
|
|
253
|
+
const id = opts?.id ?? crypto.randomUUID()
|
|
254
|
+
const delay = positiveDelay(opts?.delay)
|
|
255
|
+
if (delay !== undefined && !Duration.isFinite(delay)) {
|
|
256
|
+
return Effect.succeed(id)
|
|
248
257
|
}
|
|
249
|
-
|
|
258
|
+
return Effect.flatMap(
|
|
259
|
+
encodeUnknown(value),
|
|
260
|
+
(element) =>
|
|
261
|
+
Effect.as(
|
|
262
|
+
store.offer({
|
|
263
|
+
name: options.name,
|
|
264
|
+
id,
|
|
265
|
+
element,
|
|
266
|
+
isCustomId: opts?.id !== undefined,
|
|
267
|
+
delay
|
|
268
|
+
}),
|
|
269
|
+
id
|
|
270
|
+
)
|
|
271
|
+
)
|
|
272
|
+
}),
|
|
250
273
|
take: <XA, XE, XR>(
|
|
251
274
|
f: (value: S["Type"], metadata: {
|
|
252
275
|
readonly id: string
|
|
@@ -430,6 +453,13 @@ class DeadLetter {
|
|
|
430
453
|
const isDeadLetter = (u: unknown): u is DeadLetter =>
|
|
431
454
|
Predicate.isTagged(u, "~effect/persistence/PersistedQueue/DeadLetter")
|
|
432
455
|
|
|
456
|
+
// stores only see a positive delay, so a zero or negative one is dropped here
|
|
457
|
+
const positiveDelay = (input: Duration.Input | undefined): Duration.Duration | undefined => {
|
|
458
|
+
if (input === undefined) return undefined
|
|
459
|
+
const delay = Duration.fromInputUnsafe(input)
|
|
460
|
+
return Duration.isPositive(delay) ? delay : undefined
|
|
461
|
+
}
|
|
462
|
+
|
|
433
463
|
const deadLetterFromCause = (cause: Cause.Cause<unknown>): DeadLetter | undefined => {
|
|
434
464
|
for (const reason of cause.reasons) {
|
|
435
465
|
if (Cause.isFailReason(reason) && isDeadLetter(reason.error)) {
|
|
@@ -452,6 +482,9 @@ const deadLetterFromCause = (cause: Cause.Cause<unknown>): DeadLetter | undefine
|
|
|
452
482
|
* The store persists offered elements and returns taken elements in a scope so
|
|
453
483
|
* the finalizer can complete or retry them based on the processing exit.
|
|
454
484
|
*
|
|
485
|
+
* An offered `delay` is always finite and positive, and the element must not
|
|
486
|
+
* be taken before it elapses. It is `undefined` for immediate elements.
|
|
487
|
+
*
|
|
455
488
|
* Claiming an element counts an attempt, so the `attempts` returned by `take`
|
|
456
489
|
* is 1-based. When the take scope closes with a success the element is marked
|
|
457
490
|
* completed; a failure retries it according to `retryDelay` or marks it failed
|
|
@@ -471,6 +504,7 @@ export class PersistedQueueStore extends Context.Service<
|
|
|
471
504
|
readonly id: string
|
|
472
505
|
readonly element: unknown
|
|
473
506
|
readonly isCustomId: boolean
|
|
507
|
+
readonly delay?: Duration.Duration | undefined
|
|
474
508
|
}
|
|
475
509
|
) => Effect.Effect<void, PersistedQueueError>
|
|
476
510
|
|
|
@@ -509,6 +543,9 @@ export class PersistedQueueStore extends Context.Service<
|
|
|
509
543
|
* queue's retry schedule until the configured maximum attempts is reached,
|
|
510
544
|
* after which the element is marked as failed.
|
|
511
545
|
*
|
|
546
|
+
* Delayed elements are scanned on every take loop, so the store is meant for
|
|
547
|
+
* development and tests rather than large delayed backlogs.
|
|
548
|
+
*
|
|
512
549
|
* @stability unstable
|
|
513
550
|
* @category layers
|
|
514
551
|
* @since 4.0.0
|
|
@@ -558,7 +595,7 @@ export const layerStoreMemory: Layer.Layer<
|
|
|
558
595
|
element: options.element,
|
|
559
596
|
attempts: 0,
|
|
560
597
|
state: "pending",
|
|
561
|
-
visibleAt: now,
|
|
598
|
+
visibleAt: options.delay === undefined ? now : now + Duration.toMillis(options.delay),
|
|
562
599
|
stateChangedAt: now
|
|
563
600
|
}
|
|
564
601
|
queue.entries.set(options.id, entry)
|
|
@@ -655,7 +692,9 @@ export const layerStoreMemory: Layer.Layer<
|
|
|
655
692
|
* The store uses Redis lists, hashes, and sorted sets with worker locks,
|
|
656
693
|
* periodically refreshes locks while items are being processed, delays retried
|
|
657
694
|
* items with the queue's retry schedule, and moves exhausted items to a failed
|
|
658
|
-
* queue.
|
|
695
|
+
* queue. Delayed offers share the retry sorted set: they are scored with the
|
|
696
|
+
* offering process's clock and released by the polling worker's clock, so
|
|
697
|
+
* clock skew between hosts shifts their delivery.
|
|
659
698
|
*
|
|
660
699
|
* @stability unstable
|
|
661
700
|
* @category constructors
|
|
@@ -716,6 +755,7 @@ export const makeStoreRedis = Effect.fnUntraced(function*(
|
|
|
716
755
|
const retry = redis.eval(retryRedis)
|
|
717
756
|
const resetQueue = redis.eval(resetQueueRedis)
|
|
718
757
|
const offer = redis.eval(offerRedis)
|
|
758
|
+
const offerDelayed = redis.eval(offerDelayedRedis)
|
|
719
759
|
const take = redis.eval(takeRedis)
|
|
720
760
|
const expireAll = redis.eval(expireAllRedis)
|
|
721
761
|
const trimFailed = redis.eval(trimFailedRedis)
|
|
@@ -856,24 +896,33 @@ export const makeStoreRedis = Effect.fnUntraced(function*(
|
|
|
856
896
|
})
|
|
857
897
|
|
|
858
898
|
return PersistedQueueStore.of({
|
|
859
|
-
offer: ({ element, id, isCustomId, name }) => {
|
|
899
|
+
offer: ({ delay, element, id, isCustomId, name }) => {
|
|
860
900
|
const keys = keysFor(name)
|
|
861
901
|
const payload = JSON.stringify({ id, element })
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
)
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
902
|
+
const send = Effect.suspend(() => {
|
|
903
|
+
if (delay === undefined) {
|
|
904
|
+
return isCustomId
|
|
905
|
+
? offer(keys.queue, keys.ids, id, payload)
|
|
906
|
+
: redis.send("RPUSH", keys.queue, payload)
|
|
907
|
+
}
|
|
908
|
+
const visibleAt = clock.currentTimeMillisUnsafe() + Duration.toMillis(delay)
|
|
909
|
+
return isCustomId
|
|
910
|
+
? offerDelayed(keys.delayed, keys.ids, id, payload, visibleAt)
|
|
911
|
+
: redis.send("ZADD", keys.delayed, visibleAt.toString(), payload)
|
|
912
|
+
})
|
|
913
|
+
return send.pipe(
|
|
914
|
+
Effect.mapError(({ cause }) =>
|
|
915
|
+
new PersistedQueueError({
|
|
916
|
+
message: "Failed to offer element to persisted queue",
|
|
917
|
+
cause
|
|
918
|
+
})
|
|
919
|
+
),
|
|
920
|
+
Effect.tap(() =>
|
|
921
|
+
Effect.sync(() => {
|
|
922
|
+
queueStates.peek(name)?.nudge.openUnsafe()
|
|
923
|
+
})
|
|
876
924
|
)
|
|
925
|
+
)
|
|
877
926
|
},
|
|
878
927
|
take: (options) =>
|
|
879
928
|
Effect.uninterruptibleMask((restore) => {
|
|
@@ -1009,6 +1058,25 @@ end
|
|
|
1009
1058
|
}
|
|
1010
1059
|
)
|
|
1011
1060
|
|
|
1061
|
+
const offerDelayedRedis = Redis.script(
|
|
1062
|
+
(...args: [keyDelayed: string, keyIds: string, id: string, payload: string, visibleAt: number]) => args,
|
|
1063
|
+
{
|
|
1064
|
+
lua: `
|
|
1065
|
+
local key_delayed = KEYS[1]
|
|
1066
|
+
local key_ids = KEYS[2]
|
|
1067
|
+
local id = ARGV[1]
|
|
1068
|
+
local payload = ARGV[2]
|
|
1069
|
+
local visible_at = ARGV[3]
|
|
1070
|
+
|
|
1071
|
+
local result = redis.call("ZADD", key_ids, "NX", "+inf", id)
|
|
1072
|
+
if result == 1 then
|
|
1073
|
+
redis.call("ZADD", key_delayed, visible_at, payload)
|
|
1074
|
+
end
|
|
1075
|
+
`,
|
|
1076
|
+
numberOfKeys: 2
|
|
1077
|
+
}
|
|
1078
|
+
)
|
|
1079
|
+
|
|
1012
1080
|
const resetQueueRedis = Redis.script(
|
|
1013
1081
|
(
|
|
1014
1082
|
...args: [
|
|
@@ -1296,6 +1364,9 @@ export const layerStoreRedis: (
|
|
|
1296
1364
|
* per-worker locks, refreshes active locks while scoped takes are running, and
|
|
1297
1365
|
* retries or completes rows according to the processing exit.
|
|
1298
1366
|
*
|
|
1367
|
+
* Offer and retry delays are measured with the database clock and rounded up
|
|
1368
|
+
* to whole seconds.
|
|
1369
|
+
*
|
|
1299
1370
|
* @stability unstable
|
|
1300
1371
|
* @category constructors
|
|
1301
1372
|
* @since 4.0.0
|
|
@@ -1360,34 +1431,46 @@ export const makeStoreSql: (
|
|
|
1360
1431
|
}
|
|
1361
1432
|
const secondsAgo = (seconds: number) => secondsOffset(-Math.max(Math.ceil(seconds), 0))
|
|
1362
1433
|
const secondsFromNow = (seconds: number) => secondsOffset(Math.max(Math.ceil(seconds), 0))
|
|
1434
|
+
// Deadline for a delayed offer, which must never land before the delay
|
|
1435
|
+
// elapses. pg reads clock_timestamp() since NOW() is fixed at transaction
|
|
1436
|
+
// start. mysql and sqlite clocks drop the fraction of the current second, so
|
|
1437
|
+
// they get a whole extra second to cover it.
|
|
1438
|
+
const delayedVisibleAt = (delay: Duration.Duration) => {
|
|
1439
|
+
const seconds = Math.ceil(Duration.toSeconds(delay))
|
|
1440
|
+
return sql.onDialectOrElse({
|
|
1441
|
+
pg: () => sql`clock_timestamp() + INTERVAL '${sql.literal(seconds.toString())} seconds'`,
|
|
1442
|
+
mssql: () => secondsOffset(seconds),
|
|
1443
|
+
orElse: () => secondsOffset(seconds + 1)
|
|
1444
|
+
})
|
|
1445
|
+
}
|
|
1363
1446
|
const expiresAt = secondsAgo(Duration.toSeconds(lockExpiration))
|
|
1364
1447
|
|
|
1365
1448
|
const offer = sql.onDialectOrElse({
|
|
1366
|
-
pg: () => (id: string, name: string, element: string) =>
|
|
1449
|
+
pg: () => (id: string, name: string, element: string, visibleAt: Fragment) =>
|
|
1367
1450
|
sql`
|
|
1368
1451
|
INSERT INTO ${tableNameSql} (id, queue_name, element, state, attempts, visible_at, created_at, updated_at)
|
|
1369
|
-
VALUES (${id}, ${name}, ${element}, 'pending', 0, ${
|
|
1452
|
+
VALUES (${id}, ${name}, ${element}, 'pending', 0, ${visibleAt}, ${sqlNow}, ${sqlNow})
|
|
1370
1453
|
ON CONFLICT (id, queue_name) DO NOTHING
|
|
1371
1454
|
`,
|
|
1372
|
-
mysql: () => (id: string, name: string, element: string) =>
|
|
1455
|
+
mysql: () => (id: string, name: string, element: string, visibleAt: Fragment) =>
|
|
1373
1456
|
sql`
|
|
1374
1457
|
INSERT IGNORE INTO ${tableNameSql} (id, queue_name, element, state, attempts, visible_at, created_at, updated_at)
|
|
1375
|
-
VALUES (${id}, ${name}, ${element}, 'pending', 0, ${
|
|
1458
|
+
VALUES (${id}, ${name}, ${element}, 'pending', 0, ${visibleAt}, ${sqlNow}, ${sqlNow})
|
|
1376
1459
|
`,
|
|
1377
|
-
mssql: () => (id: string, name: string, element: string) =>
|
|
1460
|
+
mssql: () => (id: string, name: string, element: string, visibleAt: Fragment) =>
|
|
1378
1461
|
sql`
|
|
1379
1462
|
MERGE ${tableNameSql} WITH (HOLDLOCK) AS target
|
|
1380
1463
|
USING (SELECT ${id} AS id, ${name} AS queue_name) AS source
|
|
1381
1464
|
ON target.id = source.id AND target.queue_name = source.queue_name
|
|
1382
1465
|
WHEN NOT MATCHED THEN
|
|
1383
1466
|
INSERT (id, queue_name, element, state, attempts, visible_at, created_at, updated_at)
|
|
1384
|
-
VALUES (source.id, source.queue_name, ${element}, 'pending', 0, ${
|
|
1467
|
+
VALUES (source.id, source.queue_name, ${element}, 'pending', 0, ${visibleAt}, ${sqlNow}, ${sqlNow});
|
|
1385
1468
|
`,
|
|
1386
1469
|
// sqlite
|
|
1387
|
-
orElse: () => (id: string, name: string, element: string) =>
|
|
1470
|
+
orElse: () => (id: string, name: string, element: string, visibleAt: Fragment) =>
|
|
1388
1471
|
sql`
|
|
1389
1472
|
INSERT OR IGNORE INTO ${tableNameSql} (id, queue_name, element, state, attempts, visible_at, created_at, updated_at)
|
|
1390
|
-
VALUES (${id}, ${name}, ${element}, 'pending', 0, ${
|
|
1473
|
+
VALUES (${id}, ${name}, ${element}, 'pending', 0, ${visibleAt}, ${sqlNow}, ${sqlNow})
|
|
1391
1474
|
`
|
|
1392
1475
|
})
|
|
1393
1476
|
|
|
@@ -1696,20 +1779,30 @@ export const makeStoreSql: (
|
|
|
1696
1779
|
)
|
|
1697
1780
|
|
|
1698
1781
|
return PersistedQueueStore.of({
|
|
1699
|
-
offer: ({ element, id, name }) =>
|
|
1700
|
-
Effect.catchCause(
|
|
1701
|
-
Effect.
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
Effect.tap(() =>
|
|
1708
|
-
Effect.sync(() => {
|
|
1709
|
-
queueStates.peek(name)?.nudge.openUnsafe()
|
|
1710
|
-
})
|
|
1782
|
+
offer: ({ delay, element, id, name }) =>
|
|
1783
|
+
Effect.catchCause(
|
|
1784
|
+
Effect.suspend(() =>
|
|
1785
|
+
offer(
|
|
1786
|
+
id,
|
|
1787
|
+
name,
|
|
1788
|
+
JSON.stringify(element),
|
|
1789
|
+
delay === undefined ? sqlNow : delayedVisibleAt(delay)
|
|
1711
1790
|
)
|
|
1712
1791
|
),
|
|
1792
|
+
(cause) =>
|
|
1793
|
+
Effect.fail(
|
|
1794
|
+
new PersistedQueueError({
|
|
1795
|
+
message: "Failed to offer element to persisted queue",
|
|
1796
|
+
cause
|
|
1797
|
+
})
|
|
1798
|
+
)
|
|
1799
|
+
).pipe(
|
|
1800
|
+
Effect.tap(() =>
|
|
1801
|
+
Effect.sync(() => {
|
|
1802
|
+
queueStates.peek(name)?.nudge.openUnsafe()
|
|
1803
|
+
})
|
|
1804
|
+
)
|
|
1805
|
+
),
|
|
1713
1806
|
take: (options) => {
|
|
1714
1807
|
queueStates.get(options.name).maxAttempts = options.maxAttempts
|
|
1715
1808
|
const loop: Effect.Effect<
|
|
@@ -644,7 +644,7 @@ export const flatMap: {
|
|
|
644
644
|
* @category combinators
|
|
645
645
|
* @since 4.0.0
|
|
646
646
|
*/
|
|
647
|
-
<A, E, B, E2>(f: (a: A, prev: Success<A, E>) => AsyncResult<
|
|
647
|
+
<A, E, B, E2>(f: (a: A, prev: Success<A, E>) => AsyncResult<B, E2>): (self: AsyncResult<A, E>) => AsyncResult<B, E | E2>
|
|
648
648
|
/**
|
|
649
649
|
* Maps the success value of an `AsyncResult` and flattens the result.
|
|
650
650
|
*
|
package/src/reactivity/Atom.ts
CHANGED
|
@@ -818,7 +818,7 @@ export interface AtomRuntime<R, ER = never> extends Atom<AsyncResult.AsyncResult
|
|
|
818
818
|
| ((
|
|
819
819
|
get: AtomContext
|
|
820
820
|
) => Effect.Effect<SubscriptionRef.SubscriptionRef<A>, E, Scope.Scope | R | AtomRegistry | Reactivity.Reactivity>)
|
|
821
|
-
) => Writable<AsyncResult.AsyncResult<A, E>, A>
|
|
821
|
+
) => Writable<AsyncResult.AsyncResult<A, E | ER>, A>
|
|
822
822
|
}
|
|
823
823
|
|
|
824
824
|
/**
|
|
@@ -2774,18 +2774,21 @@ export const batch: (f: () => void) => void = Registry.batch
|
|
|
2774
2774
|
// -----------------------------------------------------------------------------
|
|
2775
2775
|
|
|
2776
2776
|
/**
|
|
2777
|
-
* Creates a
|
|
2777
|
+
* Creates a signal atom that increments when the document becomes visible.
|
|
2778
2778
|
*
|
|
2779
2779
|
* **Details**
|
|
2780
2780
|
*
|
|
2781
2781
|
* It listens for `visibilitychange` events on `window` and removes the listener
|
|
2782
|
-
* when the atom is disposed.
|
|
2782
|
+
* when the atom is disposed. Without `window`, it stays at `0` and adds no listener.
|
|
2783
2783
|
*
|
|
2784
2784
|
* @stability unstable
|
|
2785
2785
|
* @category constants
|
|
2786
2786
|
* @since 4.0.0
|
|
2787
2787
|
*/
|
|
2788
2788
|
export const windowFocusSignal: Atom<number> = readable((get) => {
|
|
2789
|
+
if (typeof window === "undefined") {
|
|
2790
|
+
return 0
|
|
2791
|
+
}
|
|
2789
2792
|
let count = 0
|
|
2790
2793
|
function update() {
|
|
2791
2794
|
if (document.visibilityState === "visible") {
|
|
@@ -2825,8 +2828,8 @@ export const makeRefreshOnSignal = <_>(signal: Atom<_>) => <A extends Atom<any>>
|
|
|
2825
2828
|
*
|
|
2826
2829
|
* **Details**
|
|
2827
2830
|
*
|
|
2828
|
-
*
|
|
2829
|
-
*
|
|
2831
|
+
* Without `window`, this helper does not trigger refreshes. Source atom updates
|
|
2832
|
+
* are still forwarded.
|
|
2830
2833
|
*
|
|
2831
2834
|
* @stability unstable
|
|
2832
2835
|
* @category combinators
|
|
@@ -2991,7 +2994,8 @@ function updateSearchParams() {
|
|
|
2991
2994
|
}
|
|
2992
2995
|
}
|
|
2993
2996
|
searchParamState.updates.clear()
|
|
2994
|
-
const
|
|
2997
|
+
const search = searchParams.toString()
|
|
2998
|
+
const newUrl = `${window.location.pathname}${search.length > 0 ? `?${search}` : ""}${window.location.hash}`
|
|
2995
2999
|
window.history.pushState({}, "", newUrl)
|
|
2996
3000
|
searchParamState.updating = false
|
|
2997
3001
|
}
|
|
@@ -57,7 +57,7 @@ export interface AtomHttpApiClient<Self, Id extends string, Groups extends HttpA
|
|
|
57
57
|
HttpApiGroup.Endpoints<Group>,
|
|
58
58
|
EndpointIdentifier
|
|
59
59
|
>,
|
|
60
|
-
const ResponseMode extends HttpApiEndpoint.ClientResponseMode =
|
|
60
|
+
const ResponseMode extends HttpApiEndpoint.ClientResponseMode = "decoded-only"
|
|
61
61
|
>(
|
|
62
62
|
group: GroupIdentifier,
|
|
63
63
|
endpoint: EndpointIdentifier,
|
|
@@ -353,9 +353,7 @@ type ResponseByMode<
|
|
|
353
353
|
Endpoint extends HttpApiEndpoint.Constraint,
|
|
354
354
|
ResponseMode extends HttpApiEndpoint.ClientResponseMode
|
|
355
355
|
> = HttpApiClient.Client.Response<
|
|
356
|
-
|
|
357
|
-
ReturnType<HttpApiClient.Client.Method<Extract<Endpoint, HttpApiEndpoint.ConstraintRequest>, never, never>>
|
|
358
|
-
>,
|
|
356
|
+
HttpApiClient.SuccessType<Extract<Endpoint, HttpApiEndpoint.ConstraintRequest>["~Success"]>,
|
|
359
357
|
ResponseMode
|
|
360
358
|
>
|
|
361
359
|
|
|
@@ -71,11 +71,13 @@ export interface AtomRegistry {
|
|
|
71
71
|
readonly scheduler: Scheduler
|
|
72
72
|
readonly schedulerAsync: Scheduler
|
|
73
73
|
readonly getNodes: () => ReadonlyMap<Atom.Atom<any> | string, Node<any>>
|
|
74
|
+
readonly ensureNode: <A>(atom: Atom.Atom<A>) => Node<A>
|
|
74
75
|
readonly get: <A>(atom: Atom.Atom<A>) => A
|
|
75
76
|
readonly mount: <A>(atom: Atom.Atom<A>) => () => void
|
|
76
77
|
readonly refresh: <A>(atom: Atom.Atom<A>) => void
|
|
77
78
|
readonly set: <R, W>(atom: Atom.Writable<R, W>, value: W) => void
|
|
78
79
|
readonly setSerializable: (key: string, encoded: unknown) => void
|
|
80
|
+
readonly preloadedSerializable: Map<string, unknown>
|
|
79
81
|
readonly modify: <R, W, A>(atom: Atom.Writable<R, W>, f: (_: R) => [returnValue: A, nextValue: W]) => A
|
|
80
82
|
readonly update: <R, W>(atom: Atom.Writable<R, W>, f: (_: R) => W) => void
|
|
81
83
|
readonly subscribe: <A>(atom: Atom.Atom<A>, f: (_: A) => void, options?: {
|
|
@@ -83,6 +85,7 @@ export interface AtomRegistry {
|
|
|
83
85
|
}) => () => void
|
|
84
86
|
readonly reset: () => void
|
|
85
87
|
readonly dispose: () => void
|
|
88
|
+
scheduleNodeRemoval(node: Node<any>): void
|
|
86
89
|
onNodeAdded?: ((node: Node<any>) => void) | undefined
|
|
87
90
|
onNodeRemoved?: ((node: Node<any>) => void) | undefined
|
|
88
91
|
}
|
|
@@ -102,10 +105,14 @@ export interface AtomRegistry {
|
|
|
102
105
|
export interface Node<A> {
|
|
103
106
|
readonly atom: Atom.Atom<A>
|
|
104
107
|
readonly value: () => A
|
|
108
|
+
readonly valueOption: () => Option.Option<A>
|
|
109
|
+
readonly canBeRemoved: boolean
|
|
105
110
|
parents: Set<Node<any>>
|
|
106
111
|
children: Set<Node<any>>
|
|
107
112
|
listeners: Set<() => void>
|
|
108
113
|
currentState(): "uninitialized" | "stale" | "valid" | "removed"
|
|
114
|
+
setInitialValue(value: A): void
|
|
115
|
+
subscribe(listener: () => void): () => void
|
|
109
116
|
}
|
|
110
117
|
|
|
111
118
|
/**
|