effect 4.0.0-beta.67 → 4.0.0-beta.69
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/dist/Array.d.ts +41 -42
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +23 -23
- package/dist/Array.js.map +1 -1
- package/dist/BigDecimal.d.ts +265 -265
- package/dist/BigDecimal.js +128 -128
- package/dist/BigInt.d.ts +175 -177
- package/dist/BigInt.d.ts.map +1 -1
- package/dist/BigInt.js +81 -79
- package/dist/BigInt.js.map +1 -1
- package/dist/Boolean.d.ts +127 -125
- package/dist/Boolean.d.ts.map +1 -1
- package/dist/Boolean.js +55 -53
- package/dist/Boolean.js.map +1 -1
- package/dist/Brand.d.ts +10 -4
- package/dist/Brand.d.ts.map +1 -1
- package/dist/Brand.js +3 -2
- package/dist/Brand.js.map +1 -1
- package/dist/Cache.d.ts +36 -36
- package/dist/Cache.js +17 -17
- package/dist/Cause.d.ts +17 -18
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Cause.js +12 -12
- package/dist/Cause.js.map +1 -1
- package/dist/Channel.d.ts +234 -241
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +98 -102
- package/dist/Channel.js.map +1 -1
- package/dist/Chunk.d.ts +33 -56
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +17 -26
- package/dist/Chunk.js.map +1 -1
- package/dist/Clock.d.ts +1 -1
- package/dist/Clock.js +1 -1
- package/dist/Combiner.d.ts +9 -1
- 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 +78 -68
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +53 -49
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +33 -32
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +19 -18
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Console.d.ts +19 -19
- package/dist/Console.js +19 -19
- package/dist/Context.d.ts +70 -108
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +30 -44
- package/dist/Context.js.map +1 -1
- package/dist/Cron.d.ts +3 -5
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +3 -5
- package/dist/Cron.js.map +1 -1
- package/dist/Crypto.d.ts +208 -0
- package/dist/Crypto.d.ts.map +1 -0
- package/dist/Crypto.js +157 -0
- package/dist/Crypto.js.map +1 -0
- package/dist/Data.d.ts +6 -1
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +29 -31
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +19 -19
- package/dist/DateTime.js.map +1 -1
- package/dist/Deferred.d.ts +8 -9
- package/dist/Deferred.d.ts.map +1 -1
- package/dist/Deferred.js +6 -6
- package/dist/Deferred.js.map +1 -1
- package/dist/Differ.d.ts +2 -2
- package/dist/Duration.d.ts +30 -27
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +15 -12
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +879 -1137
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +375 -465
- package/dist/Effect.js.map +1 -1
- package/dist/Effectable.d.ts +2 -2
- package/dist/Effectable.js +2 -2
- package/dist/Encoding.d.ts +9 -9
- package/dist/Encoding.js +9 -9
- package/dist/Equal.d.ts +4 -3
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +4 -3
- package/dist/Equal.js.map +1 -1
- package/dist/Equivalence.d.ts +4 -5
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +2 -2
- package/dist/Equivalence.js.map +1 -1
- package/dist/ErrorReporter.d.ts +14 -14
- package/dist/ErrorReporter.js +9 -9
- package/dist/ExecutionPlan.d.ts +18 -9
- package/dist/ExecutionPlan.d.ts.map +1 -1
- package/dist/ExecutionPlan.js +6 -4
- package/dist/ExecutionPlan.js.map +1 -1
- package/dist/Exit.d.ts +0 -1
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js.map +1 -1
- package/dist/Fiber.d.ts +1 -2
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js +1 -1
- package/dist/Fiber.js.map +1 -1
- package/dist/FiberHandle.d.ts +5 -5
- package/dist/FiberHandle.js +3 -3
- package/dist/FiberMap.d.ts +10 -10
- package/dist/FiberMap.js +4 -4
- package/dist/FiberSet.d.ts +4 -4
- package/dist/FiberSet.js +2 -2
- package/dist/FileSystem.d.ts +10 -12
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +3 -3
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts +54 -54
- package/dist/Filter.js +28 -28
- package/dist/Formatter.d.ts +4 -2
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +3 -69
- package/dist/Formatter.js.map +1 -1
- package/dist/Function.d.ts +64 -65
- package/dist/Function.d.ts.map +1 -1
- package/dist/Function.js +41 -41
- package/dist/Function.js.map +1 -1
- package/dist/Graph.d.ts +157 -175
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +72 -80
- package/dist/Graph.js.map +1 -1
- package/dist/Hash.d.ts +4 -6
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +2 -2
- package/dist/Hash.js.map +1 -1
- package/dist/HashMap.d.ts +121 -157
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +47 -59
- package/dist/HashMap.js.map +1 -1
- package/dist/HashRing.d.ts +34 -34
- package/dist/HashRing.js +16 -16
- package/dist/HashSet.d.ts +51 -55
- package/dist/HashSet.d.ts.map +1 -1
- package/dist/HashSet.js +19 -20
- package/dist/HashSet.js.map +1 -1
- package/dist/Inspectable.d.ts +6 -4
- package/dist/Inspectable.d.ts.map +1 -1
- package/dist/Inspectable.js +6 -4
- package/dist/Inspectable.js.map +1 -1
- package/dist/Iterable.d.ts +37 -83
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +21 -39
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonPatch.d.ts +8 -6
- package/dist/JsonPatch.d.ts.map +1 -1
- package/dist/JsonPatch.js +5 -3
- package/dist/JsonPatch.js.map +1 -1
- package/dist/JsonPointer.d.ts +13 -11
- package/dist/JsonPointer.d.ts.map +1 -1
- package/dist/JsonPointer.js +13 -11
- 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 +10 -0
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Latch.d.ts +4 -16
- package/dist/Latch.d.ts.map +1 -1
- package/dist/Latch.js +2 -14
- package/dist/Latch.js.map +1 -1
- package/dist/Layer.d.ts +94 -135
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +44 -61
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts +15 -16
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LayerMap.js +6 -6
- package/dist/LogLevel.d.ts +13 -13
- package/dist/LogLevel.js +4 -4
- package/dist/Logger.d.ts +10 -11
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +10 -11
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +5 -4
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +4 -3
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Match.d.ts +2 -4
- package/dist/Match.d.ts.map +1 -1
- package/dist/Match.js +1 -2
- package/dist/Match.js.map +1 -1
- package/dist/Metric.d.ts +48 -50
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +22 -22
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts +30 -30
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js +15 -14
- package/dist/MutableHashMap.js.map +1 -1
- package/dist/MutableHashSet.d.ts.map +1 -1
- package/dist/MutableHashSet.js +0 -2
- package/dist/MutableHashSet.js.map +1 -1
- package/dist/MutableList.d.ts +23 -24
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +17 -19
- package/dist/MutableList.js.map +1 -1
- package/dist/MutableRef.d.ts.map +1 -1
- package/dist/MutableRef.js +0 -1
- package/dist/MutableRef.js.map +1 -1
- package/dist/Newtype.d.ts +12 -2
- package/dist/Newtype.d.ts.map +1 -1
- package/dist/Newtype.js +8 -2
- package/dist/Newtype.js.map +1 -1
- package/dist/NonEmptyIterable.d.ts +5 -12
- package/dist/NonEmptyIterable.d.ts.map +1 -1
- package/dist/NonEmptyIterable.js +3 -8
- package/dist/NonEmptyIterable.js.map +1 -1
- package/dist/Number.d.ts +145 -141
- package/dist/Number.d.ts.map +1 -1
- package/dist/Number.js +65 -61
- package/dist/Number.js.map +1 -1
- package/dist/Optic.d.ts +5 -5
- package/dist/Optic.js +5 -5
- package/dist/Option.d.ts +105 -109
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +50 -52
- package/dist/Option.js.map +1 -1
- package/dist/Order.d.ts +6 -6
- package/dist/Order.js +6 -6
- package/dist/Ordering.d.ts +15 -19
- package/dist/Ordering.d.ts.map +1 -1
- package/dist/Ordering.js +6 -6
- package/dist/Ordering.js.map +1 -1
- package/dist/PartitionedSemaphore.d.ts +3 -3
- package/dist/PartitionedSemaphore.js +2 -2
- package/dist/Path.d.ts +4 -4
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +2 -1
- package/dist/Path.js.map +1 -1
- package/dist/Pipeable.d.ts +10 -7
- package/dist/Pipeable.d.ts.map +1 -1
- package/dist/Pipeable.js +6 -4
- package/dist/Pipeable.js.map +1 -1
- package/dist/PlatformError.d.ts +3 -3
- package/dist/PlatformError.js +2 -2
- package/dist/Predicate.d.ts +2 -4
- package/dist/Predicate.d.ts.map +1 -1
- package/dist/Predicate.js +3 -3
- package/dist/Predicate.js.map +1 -1
- package/dist/PrimaryKey.d.ts +2 -1
- package/dist/PrimaryKey.d.ts.map +1 -1
- package/dist/PrimaryKey.js +2 -1
- package/dist/PrimaryKey.js.map +1 -1
- package/dist/PubSub.d.ts +25 -51
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +17 -35
- package/dist/PubSub.js.map +1 -1
- package/dist/Queue.d.ts +45 -60
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +27 -33
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts +27 -38
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +17 -54
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +11 -11
- package/dist/RcMap.js +3 -3
- package/dist/RcRef.d.ts +0 -1
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/RcRef.js.map +1 -1
- package/dist/Record.d.ts +9 -8
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +7 -5
- package/dist/Record.js.map +1 -1
- package/dist/Redactable.d.ts +7 -5
- package/dist/Redactable.d.ts.map +1 -1
- package/dist/Redactable.js +5 -3
- package/dist/Redactable.js.map +1 -1
- package/dist/Redacted.d.ts +2 -3
- package/dist/Redacted.d.ts.map +1 -1
- package/dist/Redacted.js +2 -2
- package/dist/Redacted.js.map +1 -1
- package/dist/Reducer.d.ts +3 -1
- package/dist/Reducer.d.ts.map +1 -1
- package/dist/Reducer.js +2 -0
- package/dist/Reducer.js.map +1 -1
- package/dist/Ref.d.ts +7 -17
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +5 -12
- package/dist/Ref.js.map +1 -1
- package/dist/RegExp.d.ts +1 -1
- package/dist/RegExp.js +1 -1
- package/dist/Request.d.ts +2 -1
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js +1 -0
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +2 -3
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +1 -1
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Resource.d.ts +1 -1
- package/dist/Resource.js +1 -1
- package/dist/Result.d.ts +124 -142
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +51 -63
- package/dist/Result.js.map +1 -1
- package/dist/Runtime.d.ts +2 -7
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +1 -3
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts +69 -72
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +31 -33
- package/dist/Schedule.js.map +1 -1
- package/dist/Scheduler.d.ts +2 -2
- package/dist/Scheduler.js +2 -2
- package/dist/Schema.d.ts +491 -321
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +220 -172
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +98 -77
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +89 -68
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +23 -23
- package/dist/SchemaGetter.js +20 -20
- package/dist/SchemaIssue.d.ts +18 -16
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +16 -14
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts +39 -40
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +48 -51
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +89 -77
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +47 -37
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +36 -5
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +33 -5
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/SchemaUtils.d.ts +1 -1
- package/dist/SchemaUtils.js +1 -1
- package/dist/Scope.d.ts +12 -29
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +6 -11
- package/dist/Scope.js.map +1 -1
- package/dist/ScopedCache.d.ts +37 -37
- package/dist/ScopedCache.js +17 -17
- package/dist/Semaphore.d.ts +4 -16
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +2 -14
- package/dist/Semaphore.js.map +1 -1
- package/dist/Sink.d.ts +36 -39
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +18 -18
- package/dist/Sink.js.map +1 -1
- package/dist/Stdio.d.ts +6 -6
- package/dist/Stdio.js +4 -4
- package/dist/Stream.d.ts +671 -808
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +289 -363
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +3 -2
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +3 -2
- package/dist/String.js.map +1 -1
- package/dist/Struct.d.ts +20 -18
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +10 -8
- package/dist/Struct.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +2 -2
- package/dist/SubscriptionRef.js +2 -2
- package/dist/Symbol.d.ts +3 -3
- package/dist/Symbol.js +3 -3
- package/dist/SynchronizedRef.d.ts +1 -1
- package/dist/SynchronizedRef.js +1 -1
- package/dist/Take.d.ts +2 -2
- package/dist/Take.js +1 -1
- package/dist/Terminal.d.ts +5 -5
- package/dist/Terminal.js +2 -2
- package/dist/Tracer.d.ts +9 -9
- package/dist/Tracer.js +2 -2
- package/dist/Trie.d.ts +70 -106
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +29 -43
- package/dist/Trie.js.map +1 -1
- package/dist/Tuple.d.ts +34 -32
- package/dist/Tuple.d.ts.map +1 -1
- package/dist/Tuple.js +16 -14
- package/dist/Tuple.js.map +1 -1
- package/dist/TxChunk.d.ts +27 -18
- package/dist/TxChunk.d.ts.map +1 -1
- package/dist/TxChunk.js +15 -10
- package/dist/TxChunk.js.map +1 -1
- package/dist/TxDeferred.d.ts +11 -11
- package/dist/TxDeferred.js +5 -5
- package/dist/TxHashMap.d.ts +60 -61
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js +23 -23
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts +28 -32
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js +13 -16
- package/dist/TxHashSet.js.map +1 -1
- package/dist/TxPriorityQueue.d.ts +30 -30
- package/dist/TxPriorityQueue.js +18 -18
- package/dist/TxPubSub.d.ts +18 -18
- package/dist/TxPubSub.js +14 -14
- package/dist/TxQueue.d.ts +26 -29
- package/dist/TxQueue.d.ts.map +1 -1
- package/dist/TxQueue.js +17 -17
- package/dist/TxQueue.js.map +1 -1
- package/dist/TxReentrantLock.d.ts +21 -21
- package/dist/TxReentrantLock.js +15 -15
- package/dist/TxRef.d.ts +24 -24
- package/dist/TxRef.js +11 -11
- package/dist/TxSemaphore.d.ts +13 -74
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +9 -52
- package/dist/TxSemaphore.js.map +1 -1
- package/dist/TxSubscriptionRef.d.ts +24 -24
- package/dist/TxSubscriptionRef.js +11 -11
- package/dist/Types.d.ts +1 -4
- package/dist/Types.d.ts.map +1 -1
- package/dist/UndefinedOr.d.ts +14 -0
- package/dist/UndefinedOr.d.ts.map +1 -1
- package/dist/UndefinedOr.js +8 -0
- package/dist/UndefinedOr.js.map +1 -1
- package/dist/Unify.d.ts +8 -8
- package/dist/Unify.js +1 -1
- package/dist/Utils.d.ts +1 -2
- package/dist/Utils.d.ts.map +1 -1
- package/dist/Utils.js.map +1 -1
- package/dist/index.d.ts +1934 -436
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1934 -436
- package/dist/index.js.map +1 -1
- package/dist/testing/FastCheck.d.ts +3 -3
- package/dist/testing/FastCheck.js +3 -3
- package/dist/testing/TestClock.d.ts +2 -3
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +1 -1
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestConsole.d.ts +8 -9
- package/dist/testing/TestConsole.d.ts.map +1 -1
- package/dist/testing/TestConsole.js +5 -5
- package/dist/testing/TestConsole.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +2 -0
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js +2 -0
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/testing/index.d.ts +34 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +34 -0
- package/dist/testing/index.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +10 -19
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +0 -9
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +0 -1
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +3 -0
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +2 -0
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +3 -1
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +1 -1
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Model.d.ts +2 -6
- package/dist/unstable/ai/Model.d.ts.map +1 -1
- package/dist/unstable/ai/Model.js +2 -2
- package/dist/unstable/ai/Model.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +8 -10
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Prompt.js +4 -4
- package/dist/unstable/ai/Prompt.js.map +1 -1
- package/dist/unstable/ai/Response.d.ts +20 -20
- package/dist/unstable/ai/ResponseIdTracker.d.ts +1 -1
- package/dist/unstable/ai/ResponseIdTracker.js +1 -1
- package/dist/unstable/ai/Telemetry.d.ts +5 -5
- package/dist/unstable/ai/Telemetry.js +3 -3
- package/dist/unstable/ai/Tokenizer.d.ts +1 -1
- package/dist/unstable/ai/Tool.d.ts +14 -12
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +10 -9
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/ai/index.d.ts +80 -6
- package/dist/unstable/ai/index.d.ts.map +1 -1
- package/dist/unstable/ai/index.js +80 -6
- package/dist/unstable/ai/index.js.map +1 -1
- package/dist/unstable/cli/CliOutput.d.ts +5 -6
- package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
- package/dist/unstable/cli/CliOutput.js +2 -3
- package/dist/unstable/cli/CliOutput.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +3 -3
- package/dist/unstable/cli/Command.js +1 -1
- package/dist/unstable/cli/Flag.d.ts +23 -0
- package/dist/unstable/cli/Flag.d.ts.map +1 -1
- package/dist/unstable/cli/Flag.js +23 -0
- package/dist/unstable/cli/Flag.js.map +1 -1
- package/dist/unstable/cli/HelpDoc.d.ts +4 -4
- package/dist/unstable/cli/Param.d.ts +33 -1
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- package/dist/unstable/cli/Param.js +64 -38
- package/dist/unstable/cli/Param.js.map +1 -1
- package/dist/unstable/cli/Primitive.d.ts +1 -1
- package/dist/unstable/cli/Primitive.js +1 -1
- package/dist/unstable/cli/Prompt.d.ts +6 -14
- package/dist/unstable/cli/Prompt.d.ts.map +1 -1
- package/dist/unstable/cli/Prompt.js +2 -2
- package/dist/unstable/cli/Prompt.js.map +1 -1
- package/dist/unstable/cli/index.d.ts +212 -0
- package/dist/unstable/cli/index.d.ts.map +1 -1
- package/dist/unstable/cli/index.js +205 -6
- package/dist/unstable/cli/index.js.map +1 -1
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.js +3 -0
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/completions/descriptor.js +3 -0
- package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
- package/dist/unstable/cli/internal/help.d.ts.map +1 -1
- package/dist/unstable/cli/internal/help.js +10 -0
- package/dist/unstable/cli/internal/help.js.map +1 -1
- package/dist/unstable/cli/internal/parser.js +3 -1
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
- package/dist/unstable/cluster/ClusterCron.js +1 -1
- package/dist/unstable/cluster/ClusterSchema.d.ts +8 -8
- package/dist/unstable/cluster/ClusterSchema.js +8 -8
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts +2 -2
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +2 -2
- package/dist/unstable/cluster/Entity.d.ts +0 -1
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/EntityProxy.d.ts +10 -14
- package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityProxy.js +8 -14
- package/dist/unstable/cluster/EntityProxy.js.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.d.ts +3 -2
- package/dist/unstable/cluster/EntityProxyServer.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.js +2 -2
- package/dist/unstable/cluster/EntityResource.d.ts +2 -2
- package/dist/unstable/cluster/EntityResource.js +1 -1
- package/dist/unstable/cluster/Envelope.d.ts +1 -1
- package/dist/unstable/cluster/Envelope.js +1 -1
- package/dist/unstable/cluster/HttpRunner.d.ts +11 -11
- package/dist/unstable/cluster/HttpRunner.js +11 -11
- package/dist/unstable/cluster/K8sHttpClient.d.ts +5 -5
- package/dist/unstable/cluster/K8sHttpClient.js +5 -5
- package/dist/unstable/cluster/MachineId.d.ts +1 -1
- package/dist/unstable/cluster/MachineId.js +1 -1
- package/dist/unstable/cluster/MessageStorage.d.ts +1 -2
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +1 -1
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Runner.d.ts +1 -1
- package/dist/unstable/cluster/Runner.js +1 -1
- package/dist/unstable/cluster/RunnerHealth.d.ts +2 -2
- package/dist/unstable/cluster/RunnerHealth.js +2 -2
- package/dist/unstable/cluster/RunnerServer.d.ts +4 -4
- package/dist/unstable/cluster/RunnerServer.js +4 -4
- package/dist/unstable/cluster/Runners.d.ts +3 -3
- package/dist/unstable/cluster/Runners.js +3 -3
- package/dist/unstable/cluster/ShardId.d.ts +7 -5
- package/dist/unstable/cluster/ShardId.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardId.js +6 -4
- package/dist/unstable/cluster/ShardId.js.map +1 -1
- package/dist/unstable/cluster/Sharding.js +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +2 -2
- package/dist/unstable/cluster/ShardingConfig.js +2 -2
- package/dist/unstable/cluster/SingleRunner.d.ts +1 -1
- package/dist/unstable/cluster/SingleRunner.js +1 -1
- package/dist/unstable/cluster/Snowflake.d.ts +10 -9
- package/dist/unstable/cluster/Snowflake.d.ts.map +1 -1
- package/dist/unstable/cluster/Snowflake.js +4 -3
- package/dist/unstable/cluster/Snowflake.js.map +1 -1
- package/dist/unstable/cluster/SocketRunner.d.ts +2 -2
- package/dist/unstable/cluster/SocketRunner.js +2 -2
- package/dist/unstable/cluster/SqlMessageStorage.d.ts +3 -3
- package/dist/unstable/cluster/SqlMessageStorage.js +3 -3
- package/dist/unstable/cluster/SqlRunnerStorage.d.ts +3 -3
- package/dist/unstable/cluster/SqlRunnerStorage.js +3 -3
- package/dist/unstable/cluster/TestRunner.d.ts +1 -1
- package/dist/unstable/cluster/TestRunner.js +1 -1
- package/dist/unstable/cluster/index.d.ts +790 -0
- package/dist/unstable/cluster/index.d.ts.map +1 -1
- package/dist/unstable/cluster/index.js +790 -0
- package/dist/unstable/cluster/index.js.map +1 -1
- package/dist/unstable/devtools/index.d.ts +58 -0
- package/dist/unstable/devtools/index.d.ts.map +1 -1
- package/dist/unstable/devtools/index.js +58 -0
- package/dist/unstable/devtools/index.js.map +1 -1
- package/dist/unstable/encoding/Sse.d.ts +16 -16
- package/dist/unstable/encoding/Sse.js +11 -11
- package/dist/unstable/encoding/index.d.ts +49 -0
- package/dist/unstable/encoding/index.d.ts.map +1 -1
- package/dist/unstable/encoding/index.js +49 -0
- package/dist/unstable/encoding/index.js.map +1 -1
- package/dist/unstable/eventlog/Event.d.ts +2 -2
- package/dist/unstable/eventlog/Event.js +1 -1
- package/dist/unstable/eventlog/EventGroup.d.ts +2 -2
- package/dist/unstable/eventlog/EventGroup.js +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts +6 -7
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +4 -4
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +2 -2
- package/dist/unstable/eventlog/EventLogRemote.js +2 -2
- package/dist/unstable/eventlog/EventLogServer.d.ts +2 -2
- package/dist/unstable/eventlog/EventLogServer.js +2 -2
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +2 -2
- package/dist/unstable/eventlog/EventLogServerEncrypted.js +2 -2
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +1 -1
- package/dist/unstable/eventlog/index.d.ts +240 -0
- package/dist/unstable/eventlog/index.d.ts.map +1 -1
- package/dist/unstable/eventlog/index.js +240 -0
- package/dist/unstable/eventlog/index.js.map +1 -1
- package/dist/unstable/http/Cookies.d.ts +6 -6
- package/dist/unstable/http/Cookies.js +4 -4
- package/dist/unstable/http/Etag.d.ts +2 -2
- package/dist/unstable/http/Etag.js +2 -2
- package/dist/unstable/http/Headers.d.ts +2 -2
- package/dist/unstable/http/Headers.js +1 -1
- package/dist/unstable/http/HttpClient.d.ts +5 -6
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +5 -4
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientError.d.ts +1 -1
- package/dist/unstable/http/HttpClientError.js +1 -1
- package/dist/unstable/http/HttpClientRequest.d.ts +4 -4
- package/dist/unstable/http/HttpClientRequest.js +4 -4
- package/dist/unstable/http/HttpClientResponse.d.ts +6 -6
- package/dist/unstable/http/HttpClientResponse.js +6 -6
- package/dist/unstable/http/HttpEffect.d.ts +5 -5
- package/dist/unstable/http/HttpEffect.js +5 -5
- package/dist/unstable/http/HttpIncomingMessage.d.ts +7 -6
- package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.js +7 -6
- package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
- package/dist/unstable/http/HttpMethod.d.ts +4 -2
- package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
- package/dist/unstable/http/HttpMethod.js +4 -1
- package/dist/unstable/http/HttpMethod.js.map +1 -1
- package/dist/unstable/http/HttpMiddleware.d.ts +1 -0
- package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/unstable/http/HttpMiddleware.js.map +1 -1
- package/dist/unstable/http/HttpRouter.d.ts +23 -25
- package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
- package/dist/unstable/http/HttpRouter.js +23 -22
- package/dist/unstable/http/HttpRouter.js.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +4 -1
- package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerError.js +4 -1
- package/dist/unstable/http/HttpServerError.js.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts +15 -15
- package/dist/unstable/http/HttpServerRequest.js +15 -15
- package/dist/unstable/http/HttpServerRespondable.d.ts +1 -1
- package/dist/unstable/http/HttpServerRespondable.js +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts +5 -4
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +5 -4
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/HttpStaticServer.d.ts +2 -4
- package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
- package/dist/unstable/http/HttpStaticServer.js +2 -4
- package/dist/unstable/http/HttpStaticServer.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +20 -19
- package/dist/unstable/http/Multipart.d.ts.map +1 -1
- package/dist/unstable/http/Multipart.js +19 -17
- package/dist/unstable/http/Multipart.js.map +1 -1
- package/dist/unstable/http/Template.d.ts +0 -1
- package/dist/unstable/http/Template.d.ts.map +1 -1
- package/dist/unstable/http/Template.js.map +1 -1
- package/dist/unstable/http/Url.d.ts +17 -17
- package/dist/unstable/http/Url.js +8 -8
- package/dist/unstable/http/UrlParams.d.ts +14 -12
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +12 -10
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/http/index.d.ts +452 -0
- package/dist/unstable/http/index.d.ts.map +1 -1
- package/dist/unstable/http/index.js +452 -0
- package/dist/unstable/http/index.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts +0 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts +0 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +4 -2
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js +3 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.d.ts +2 -2
- package/dist/unstable/httpapi/HttpApiSchema.d.ts +19 -8
- package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.js +11 -8
- package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts +0 -1
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSwagger.d.ts +0 -2
- package/dist/unstable/httpapi/HttpApiSwagger.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSwagger.js +0 -2
- package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
- package/dist/unstable/httpapi/index.d.ts +310 -25
- package/dist/unstable/httpapi/index.d.ts.map +1 -1
- package/dist/unstable/httpapi/index.js +310 -25
- package/dist/unstable/httpapi/index.js.map +1 -1
- package/dist/unstable/observability/Otlp.d.ts +3 -3
- package/dist/unstable/observability/Otlp.js +3 -3
- package/dist/unstable/observability/OtlpExporter.d.ts +1 -1
- package/dist/unstable/observability/OtlpExporter.js +1 -1
- package/dist/unstable/observability/OtlpLogger.d.ts +3 -2
- package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpLogger.js +2 -2
- package/dist/unstable/observability/OtlpLogger.js.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts +5 -4
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.js +2 -2
- package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
- package/dist/unstable/observability/OtlpResource.d.ts +9 -9
- package/dist/unstable/observability/OtlpResource.js +2 -2
- package/dist/unstable/observability/OtlpSerialization.d.ts +3 -3
- package/dist/unstable/observability/OtlpSerialization.js +3 -3
- package/dist/unstable/observability/OtlpTracer.d.ts +5 -2
- package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.js +2 -2
- package/dist/unstable/observability/OtlpTracer.js.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.d.ts +7 -7
- package/dist/unstable/observability/PrometheusMetrics.js +2 -2
- package/dist/unstable/observability/index.d.ts +159 -3
- package/dist/unstable/observability/index.d.ts.map +1 -1
- package/dist/unstable/observability/index.js +159 -3
- package/dist/unstable/observability/index.js.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.d.ts +4 -4
- package/dist/unstable/persistence/KeyValueStore.js +1 -1
- package/dist/unstable/persistence/Persistable.d.ts +11 -11
- package/dist/unstable/persistence/Persistable.js +1 -1
- package/dist/unstable/persistence/PersistedCache.d.ts +2 -2
- package/dist/unstable/persistence/PersistedCache.js +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts +6 -6
- package/dist/unstable/persistence/PersistedQueue.js +3 -3
- package/dist/unstable/persistence/Persistence.d.ts +2 -1
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +2 -1
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +19 -15
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +14 -10
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/persistence/Redis.d.ts +3 -3
- package/dist/unstable/persistence/Redis.js +3 -3
- package/dist/unstable/persistence/index.d.ts +147 -0
- package/dist/unstable/persistence/index.d.ts.map +1 -1
- package/dist/unstable/persistence/index.js +147 -0
- package/dist/unstable/persistence/index.js.map +1 -1
- package/dist/unstable/process/ChildProcess.d.ts +41 -41
- package/dist/unstable/process/ChildProcess.js +11 -11
- package/dist/unstable/process/ChildProcessSpawner.d.ts +10 -10
- package/dist/unstable/process/ChildProcessSpawner.js +5 -5
- package/dist/unstable/process/index.d.ts +1 -1
- package/dist/unstable/process/index.js +1 -1
- package/dist/unstable/reactivity/AsyncResult.d.ts +8 -6
- package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.js +3 -3
- package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +25 -20
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +12 -12
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +2 -2
- package/dist/unstable/reactivity/AtomHttpApi.js +1 -1
- package/dist/unstable/reactivity/AtomRef.d.ts +2 -2
- package/dist/unstable/reactivity/AtomRef.js +1 -1
- package/dist/unstable/reactivity/AtomRegistry.d.ts +16 -16
- package/dist/unstable/reactivity/AtomRegistry.js +7 -7
- package/dist/unstable/reactivity/AtomRpc.d.ts +2 -2
- package/dist/unstable/reactivity/AtomRpc.js +1 -1
- package/dist/unstable/reactivity/Reactivity.d.ts +2 -3
- package/dist/unstable/reactivity/Reactivity.d.ts.map +1 -1
- package/dist/unstable/reactivity/Reactivity.js +2 -3
- package/dist/unstable/reactivity/Reactivity.js.map +1 -1
- package/dist/unstable/reactivity/index.d.ts +166 -0
- package/dist/unstable/reactivity/index.d.ts.map +1 -1
- package/dist/unstable/reactivity/index.js +166 -0
- package/dist/unstable/reactivity/index.js.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts +0 -1
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/Rpc.js.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts +0 -1
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcClientError.d.ts +2 -2
- package/dist/unstable/rpc/RpcClientError.js +2 -2
- package/dist/unstable/rpc/RpcMiddleware.d.ts +2 -2
- package/dist/unstable/rpc/RpcMiddleware.js +1 -1
- package/dist/unstable/rpc/RpcWorker.d.ts +0 -1
- package/dist/unstable/rpc/RpcWorker.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcWorker.js +1 -1
- package/dist/unstable/rpc/RpcWorker.js.map +1 -1
- package/dist/unstable/rpc/Utils.d.ts +2 -0
- package/dist/unstable/rpc/Utils.d.ts.map +1 -1
- package/dist/unstable/rpc/Utils.js +2 -0
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/rpc/index.d.ts +272 -0
- package/dist/unstable/rpc/index.d.ts.map +1 -1
- package/dist/unstable/rpc/index.js +272 -0
- package/dist/unstable/rpc/index.js.map +1 -1
- package/dist/unstable/schema/Model.d.ts +63 -8
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/Model.js +44 -5
- package/dist/unstable/schema/Model.js.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +1 -4
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.js +1 -1
- package/dist/unstable/schema/VariantSchema.js.map +1 -1
- package/dist/unstable/schema/index.d.ts +37 -0
- package/dist/unstable/schema/index.d.ts.map +1 -1
- package/dist/unstable/schema/index.js +37 -0
- package/dist/unstable/schema/index.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +5 -4
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +4 -3
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/socket/index.d.ts +44 -0
- package/dist/unstable/socket/index.d.ts.map +1 -1
- package/dist/unstable/socket/index.js +44 -0
- package/dist/unstable/socket/index.js.map +1 -1
- package/dist/unstable/sql/Migrator.d.ts +11 -9
- package/dist/unstable/sql/Migrator.d.ts.map +1 -1
- package/dist/unstable/sql/Migrator.js +10 -8
- package/dist/unstable/sql/Migrator.js.map +1 -1
- package/dist/unstable/sql/SqlClient.d.ts +4 -0
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlClient.js +2 -0
- package/dist/unstable/sql/SqlClient.js.map +1 -1
- package/dist/unstable/sql/SqlConnection.d.ts +3 -3
- package/dist/unstable/sql/SqlError.d.ts +18 -0
- package/dist/unstable/sql/SqlError.d.ts.map +1 -1
- package/dist/unstable/sql/SqlError.js +17 -0
- package/dist/unstable/sql/SqlError.js.map +1 -1
- package/dist/unstable/sql/SqlModel.d.ts +0 -1
- package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
- package/dist/unstable/sql/SqlModel.js.map +1 -1
- package/dist/unstable/sql/SqlSchema.d.ts +5 -5
- package/dist/unstable/sql/SqlSchema.js +5 -5
- package/dist/unstable/sql/SqlStream.d.ts +1 -0
- package/dist/unstable/sql/SqlStream.d.ts.map +1 -1
- package/dist/unstable/sql/SqlStream.js +1 -0
- package/dist/unstable/sql/SqlStream.js.map +1 -1
- package/dist/unstable/sql/Statement.d.ts +27 -24
- package/dist/unstable/sql/Statement.d.ts.map +1 -1
- package/dist/unstable/sql/Statement.js +9 -6
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/sql/index.d.ts +178 -1
- package/dist/unstable/sql/index.d.ts.map +1 -1
- package/dist/unstable/sql/index.js +178 -1
- package/dist/unstable/sql/index.js.map +1 -1
- package/dist/unstable/workers/Transferable.d.ts +7 -7
- package/dist/unstable/workers/Transferable.js +4 -4
- package/dist/unstable/workers/Worker.d.ts +1 -0
- package/dist/unstable/workers/Worker.d.ts.map +1 -1
- package/dist/unstable/workers/Worker.js +1 -0
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workers/WorkerError.d.ts +8 -8
- package/dist/unstable/workers/WorkerError.js +7 -7
- package/dist/unstable/workers/index.d.ts +80 -0
- package/dist/unstable/workers/index.d.ts.map +1 -1
- package/dist/unstable/workers/index.js +80 -0
- package/dist/unstable/workers/index.js.map +1 -1
- package/dist/unstable/workflow/Activity.d.ts +7 -7
- package/dist/unstable/workflow/Activity.js +2 -2
- package/dist/unstable/workflow/DurableClock.d.ts +2 -2
- package/dist/unstable/workflow/DurableClock.js +1 -1
- package/dist/unstable/workflow/DurableDeferred.d.ts +22 -20
- package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js +8 -7
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/DurableQueue.d.ts +7 -5
- package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableQueue.js +5 -3
- package/dist/unstable/workflow/DurableQueue.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +12 -10
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +3 -3
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +4 -4
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +9 -13
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxy.d.ts +10 -12
- package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowProxy.js +8 -12
- package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxyServer.d.ts +3 -2
- package/dist/unstable/workflow/WorkflowProxyServer.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowProxyServer.js +2 -2
- package/dist/unstable/workflow/index.d.ts +160 -0
- package/dist/unstable/workflow/index.d.ts.map +1 -1
- package/dist/unstable/workflow/index.js +160 -0
- package/dist/unstable/workflow/index.js.map +1 -1
- package/package.json +3 -3
- package/src/Array.ts +41 -42
- package/src/BigDecimal.ts +265 -265
- package/src/BigInt.ts +175 -177
- package/src/Boolean.ts +127 -125
- package/src/Brand.ts +10 -4
- package/src/Cache.ts +42 -42
- package/src/Cause.ts +17 -18
- package/src/Channel.ts +256 -257
- package/src/Chunk.ts +33 -56
- package/src/Clock.ts +1 -1
- package/src/Combiner.ts +9 -1
- package/src/Config.ts +78 -68
- package/src/ConfigProvider.ts +33 -32
- package/src/Console.ts +23 -23
- package/src/Context.ts +70 -108
- package/src/Cron.ts +3 -5
- package/src/Crypto.ts +327 -0
- package/src/Data.ts +6 -1
- package/src/DateTime.ts +29 -31
- package/src/Deferred.ts +8 -9
- package/src/Differ.ts +2 -2
- package/src/Duration.ts +30 -27
- package/src/Effect.ts +893 -1151
- package/src/Effectable.ts +2 -2
- package/src/Encoding.ts +9 -9
- package/src/Equal.ts +4 -3
- package/src/Equivalence.ts +4 -5
- package/src/ErrorReporter.ts +14 -14
- package/src/ExecutionPlan.ts +18 -9
- package/src/Exit.ts +0 -1
- package/src/Fiber.ts +1 -2
- package/src/FiberHandle.ts +5 -5
- package/src/FiberMap.ts +10 -10
- package/src/FiberSet.ts +4 -4
- package/src/FileSystem.ts +10 -12
- package/src/Filter.ts +54 -54
- package/src/Formatter.ts +4 -70
- package/src/Function.ts +64 -65
- package/src/Graph.ts +157 -175
- package/src/Hash.ts +4 -6
- package/src/HashMap.ts +121 -157
- package/src/HashRing.ts +34 -34
- package/src/HashSet.ts +51 -55
- package/src/Inspectable.ts +8 -7
- package/src/Iterable.ts +37 -83
- package/src/JsonPatch.ts +9 -7
- package/src/JsonPointer.ts +13 -11
- package/src/JsonSchema.ts +16 -0
- package/src/Latch.ts +4 -16
- package/src/Layer.ts +94 -135
- package/src/LayerMap.ts +15 -16
- package/src/LogLevel.ts +13 -13
- package/src/Logger.ts +16 -17
- package/src/ManagedRuntime.ts +5 -4
- package/src/Match.ts +2 -4
- package/src/Metric.ts +56 -58
- package/src/MutableHashMap.ts +42 -44
- package/src/MutableHashSet.ts +0 -2
- package/src/MutableList.ts +23 -26
- package/src/MutableRef.ts +0 -1
- package/src/Newtype.ts +12 -2
- package/src/NonEmptyIterable.ts +5 -12
- package/src/Number.ts +145 -141
- package/src/Optic.ts +5 -5
- package/src/Option.ts +105 -109
- package/src/Order.ts +6 -6
- package/src/Ordering.ts +15 -19
- package/src/PartitionedSemaphore.ts +3 -3
- package/src/Path.ts +4 -4
- package/src/Pipeable.ts +10 -7
- package/src/PlatformError.ts +3 -3
- package/src/Predicate.ts +3 -5
- package/src/PrimaryKey.ts +2 -1
- package/src/PubSub.ts +25 -51
- package/src/Queue.ts +45 -60
- package/src/Random.ts +31 -74
- package/src/RcMap.ts +11 -11
- package/src/RcRef.ts +0 -1
- package/src/Record.ts +9 -8
- package/src/Redactable.ts +7 -5
- package/src/Redacted.ts +2 -3
- package/src/Reducer.ts +3 -1
- package/src/Ref.ts +15 -33
- package/src/RegExp.ts +1 -1
- package/src/Request.ts +2 -1
- package/src/RequestResolver.ts +2 -3
- package/src/Resource.ts +1 -1
- package/src/Result.ts +124 -142
- package/src/Runtime.ts +2 -7
- package/src/Schedule.ts +74 -77
- package/src/Scheduler.ts +2 -2
- package/src/Schema.ts +491 -321
- package/src/SchemaAST.ts +98 -77
- package/src/SchemaGetter.ts +23 -23
- package/src/SchemaIssue.ts +18 -16
- package/src/SchemaParser.ts +46 -49
- package/src/SchemaRepresentation.ts +89 -77
- package/src/SchemaTransformation.ts +36 -5
- package/src/SchemaUtils.ts +1 -1
- package/src/Scope.ts +12 -29
- package/src/ScopedCache.ts +43 -43
- package/src/Semaphore.ts +4 -16
- package/src/Sink.ts +36 -39
- package/src/Stdio.ts +6 -6
- package/src/Stream.ts +789 -828
- package/src/String.ts +3 -2
- package/src/Struct.ts +20 -18
- package/src/SubscriptionRef.ts +2 -2
- package/src/Symbol.ts +3 -3
- package/src/SynchronizedRef.ts +1 -1
- package/src/Take.ts +2 -2
- package/src/Terminal.ts +5 -5
- package/src/Tracer.ts +9 -9
- package/src/Trie.ts +70 -106
- package/src/Tuple.ts +34 -32
- package/src/TxChunk.ts +27 -18
- package/src/TxDeferred.ts +11 -11
- package/src/TxHashMap.ts +62 -63
- package/src/TxHashSet.ts +38 -42
- package/src/TxPriorityQueue.ts +31 -31
- package/src/TxPubSub.ts +18 -18
- package/src/TxQueue.ts +26 -29
- package/src/TxReentrantLock.ts +21 -21
- package/src/TxRef.ts +24 -24
- package/src/TxSemaphore.ts +13 -74
- package/src/TxSubscriptionRef.ts +24 -24
- package/src/Types.ts +1 -4
- package/src/UndefinedOr.ts +14 -0
- package/src/Unify.ts +8 -8
- package/src/Utils.ts +1 -2
- package/src/index.ts +1932 -433
- package/src/testing/FastCheck.ts +3 -3
- package/src/testing/TestClock.ts +2 -3
- package/src/testing/TestConsole.ts +8 -9
- package/src/testing/TestSchema.ts +2 -0
- package/src/testing/index.ts +34 -0
- package/src/unstable/ai/AiError.ts +10 -19
- package/src/unstable/ai/Chat.ts +0 -1
- package/src/unstable/ai/McpSchema.ts +3 -0
- package/src/unstable/ai/McpServer.ts +3 -1
- package/src/unstable/ai/Model.ts +2 -6
- package/src/unstable/ai/Prompt.ts +8 -10
- package/src/unstable/ai/Response.ts +20 -20
- package/src/unstable/ai/ResponseIdTracker.ts +1 -1
- package/src/unstable/ai/Telemetry.ts +5 -5
- package/src/unstable/ai/Tokenizer.ts +1 -1
- package/src/unstable/ai/Tool.ts +14 -12
- package/src/unstable/ai/index.ts +80 -6
- package/src/unstable/cli/CliOutput.ts +5 -6
- package/src/unstable/cli/Command.ts +3 -3
- package/src/unstable/cli/Flag.ts +24 -0
- package/src/unstable/cli/HelpDoc.ts +4 -4
- package/src/unstable/cli/Param.ts +101 -72
- package/src/unstable/cli/Primitive.ts +1 -1
- package/src/unstable/cli/Prompt.ts +6 -14
- package/src/unstable/cli/index.ts +205 -6
- package/src/unstable/cli/internal/command.ts +3 -0
- package/src/unstable/cli/internal/completions/descriptor.ts +3 -0
- package/src/unstable/cli/internal/help.ts +10 -0
- package/src/unstable/cli/internal/parser.ts +3 -1
- package/src/unstable/cluster/ClusterCron.ts +1 -1
- package/src/unstable/cluster/ClusterSchema.ts +8 -8
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +2 -2
- package/src/unstable/cluster/Entity.ts +0 -1
- package/src/unstable/cluster/EntityProxy.ts +10 -14
- package/src/unstable/cluster/EntityProxyServer.ts +3 -2
- package/src/unstable/cluster/EntityResource.ts +2 -2
- package/src/unstable/cluster/Envelope.ts +1 -1
- package/src/unstable/cluster/HttpRunner.ts +11 -11
- package/src/unstable/cluster/K8sHttpClient.ts +5 -5
- package/src/unstable/cluster/MachineId.ts +1 -1
- package/src/unstable/cluster/MessageStorage.ts +1 -2
- package/src/unstable/cluster/Runner.ts +1 -1
- package/src/unstable/cluster/RunnerHealth.ts +2 -2
- package/src/unstable/cluster/RunnerServer.ts +4 -4
- package/src/unstable/cluster/Runners.ts +3 -3
- package/src/unstable/cluster/ShardId.ts +7 -5
- package/src/unstable/cluster/Sharding.ts +1 -1
- package/src/unstable/cluster/ShardingConfig.ts +2 -2
- package/src/unstable/cluster/SingleRunner.ts +1 -1
- package/src/unstable/cluster/Snowflake.ts +10 -9
- package/src/unstable/cluster/SocketRunner.ts +2 -2
- package/src/unstable/cluster/SqlMessageStorage.ts +3 -3
- package/src/unstable/cluster/SqlRunnerStorage.ts +3 -3
- package/src/unstable/cluster/TestRunner.ts +1 -1
- package/src/unstable/cluster/index.ts +790 -0
- package/src/unstable/devtools/index.ts +58 -0
- package/src/unstable/encoding/Sse.ts +16 -16
- package/src/unstable/encoding/index.ts +49 -0
- package/src/unstable/eventlog/Event.ts +2 -2
- package/src/unstable/eventlog/EventGroup.ts +2 -2
- package/src/unstable/eventlog/EventLog.ts +6 -7
- package/src/unstable/eventlog/EventLogRemote.ts +2 -2
- package/src/unstable/eventlog/EventLogServer.ts +2 -2
- package/src/unstable/eventlog/EventLogServerEncrypted.ts +2 -2
- package/src/unstable/eventlog/EventLogServerUnencrypted.ts +1 -1
- package/src/unstable/eventlog/EventLogSessionAuth.ts +1 -1
- package/src/unstable/eventlog/index.ts +240 -0
- package/src/unstable/http/Cookies.ts +6 -6
- package/src/unstable/http/Etag.ts +2 -2
- package/src/unstable/http/Headers.ts +2 -2
- package/src/unstable/http/HttpClient.ts +5 -6
- package/src/unstable/http/HttpClientError.ts +1 -1
- package/src/unstable/http/HttpClientRequest.ts +4 -4
- package/src/unstable/http/HttpClientResponse.ts +6 -6
- package/src/unstable/http/HttpEffect.ts +5 -5
- package/src/unstable/http/HttpIncomingMessage.ts +7 -6
- package/src/unstable/http/HttpMethod.ts +4 -2
- package/src/unstable/http/HttpMiddleware.ts +1 -0
- package/src/unstable/http/HttpRouter.ts +23 -25
- package/src/unstable/http/HttpServerError.ts +4 -1
- package/src/unstable/http/HttpServerRequest.ts +15 -15
- package/src/unstable/http/HttpServerRespondable.ts +1 -1
- package/src/unstable/http/HttpServerResponse.ts +5 -4
- package/src/unstable/http/HttpStaticServer.ts +2 -4
- package/src/unstable/http/Multipart.ts +20 -19
- package/src/unstable/http/Template.ts +0 -1
- package/src/unstable/http/Url.ts +17 -17
- package/src/unstable/http/UrlParams.ts +14 -12
- package/src/unstable/http/index.ts +452 -0
- package/src/unstable/httpapi/HttpApiBuilder.ts +0 -1
- package/src/unstable/httpapi/HttpApiClient.ts +0 -1
- package/src/unstable/httpapi/HttpApiMiddleware.ts +4 -2
- package/src/unstable/httpapi/HttpApiScalar.ts +2 -2
- package/src/unstable/httpapi/HttpApiSchema.ts +19 -8
- package/src/unstable/httpapi/HttpApiSecurity.ts +0 -1
- package/src/unstable/httpapi/HttpApiSwagger.ts +0 -2
- package/src/unstable/httpapi/index.ts +310 -25
- package/src/unstable/observability/Otlp.ts +3 -3
- package/src/unstable/observability/OtlpExporter.ts +1 -1
- package/src/unstable/observability/OtlpLogger.ts +3 -2
- package/src/unstable/observability/OtlpMetrics.ts +5 -4
- package/src/unstable/observability/OtlpResource.ts +9 -9
- package/src/unstable/observability/OtlpSerialization.ts +3 -3
- package/src/unstable/observability/OtlpTracer.ts +5 -2
- package/src/unstable/observability/PrometheusMetrics.ts +7 -7
- package/src/unstable/observability/index.ts +159 -3
- package/src/unstable/persistence/KeyValueStore.ts +4 -4
- package/src/unstable/persistence/Persistable.ts +11 -11
- package/src/unstable/persistence/PersistedCache.ts +2 -2
- package/src/unstable/persistence/PersistedQueue.ts +6 -6
- package/src/unstable/persistence/Persistence.ts +2 -1
- package/src/unstable/persistence/RateLimiter.ts +19 -15
- package/src/unstable/persistence/Redis.ts +3 -3
- package/src/unstable/persistence/index.ts +147 -0
- package/src/unstable/process/ChildProcess.ts +42 -42
- package/src/unstable/process/ChildProcessSpawner.ts +10 -10
- package/src/unstable/process/index.ts +1 -1
- package/src/unstable/reactivity/AsyncResult.ts +8 -6
- package/src/unstable/reactivity/Atom.ts +25 -20
- package/src/unstable/reactivity/AtomHttpApi.ts +2 -2
- package/src/unstable/reactivity/AtomRef.ts +2 -2
- package/src/unstable/reactivity/AtomRegistry.ts +17 -17
- package/src/unstable/reactivity/AtomRpc.ts +2 -2
- package/src/unstable/reactivity/Reactivity.ts +2 -3
- package/src/unstable/reactivity/index.ts +166 -0
- package/src/unstable/rpc/Rpc.ts +0 -1
- package/src/unstable/rpc/RpcClient.ts +0 -1
- package/src/unstable/rpc/RpcClientError.ts +2 -2
- package/src/unstable/rpc/RpcMiddleware.ts +2 -2
- package/src/unstable/rpc/RpcWorker.ts +3 -2
- package/src/unstable/rpc/Utils.ts +2 -0
- package/src/unstable/rpc/index.ts +272 -0
- package/src/unstable/schema/Model.ts +98 -10
- package/src/unstable/schema/VariantSchema.ts +1 -4
- package/src/unstable/schema/index.ts +37 -0
- package/src/unstable/socket/Socket.ts +5 -4
- package/src/unstable/socket/index.ts +44 -0
- package/src/unstable/sql/Migrator.ts +14 -12
- package/src/unstable/sql/SqlClient.ts +4 -0
- package/src/unstable/sql/SqlConnection.ts +3 -3
- package/src/unstable/sql/SqlError.ts +18 -0
- package/src/unstable/sql/SqlModel.ts +0 -1
- package/src/unstable/sql/SqlSchema.ts +5 -5
- package/src/unstable/sql/SqlStream.ts +1 -0
- package/src/unstable/sql/Statement.ts +27 -24
- package/src/unstable/sql/index.ts +178 -1
- package/src/unstable/workers/Transferable.ts +7 -7
- package/src/unstable/workers/Worker.ts +1 -0
- package/src/unstable/workers/WorkerError.ts +8 -8
- package/src/unstable/workers/index.ts +80 -0
- package/src/unstable/workflow/Activity.ts +7 -7
- package/src/unstable/workflow/DurableClock.ts +2 -2
- package/src/unstable/workflow/DurableDeferred.ts +22 -20
- package/src/unstable/workflow/DurableQueue.ts +7 -5
- package/src/unstable/workflow/Workflow.ts +12 -10
- package/src/unstable/workflow/WorkflowEngine.ts +11 -15
- package/src/unstable/workflow/WorkflowProxy.ts +10 -12
- package/src/unstable/workflow/WorkflowProxyServer.ts +3 -2
- package/src/unstable/workflow/index.ts +160 -0
|
@@ -2,154 +2,944 @@
|
|
|
2
2
|
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
|
+
* The `ClusterCron` module provides a small integration between cron schedules
|
|
6
|
+
* and cluster sharding. It turns a `Cron.Cron` schedule into a `Layer` that
|
|
7
|
+
* coordinates one recurring job across a cluster by registering a singleton for
|
|
8
|
+
* the initial scheduling step and a persisted entity message for each run.
|
|
9
|
+
*
|
|
10
|
+
* This is useful for distributed maintenance work such as periodic cleanup,
|
|
11
|
+
* reconciliation, report generation, cache refreshes, or polling external
|
|
12
|
+
* systems where the job should be owned by the cluster rather than by every
|
|
13
|
+
* runner independently.
|
|
14
|
+
*
|
|
15
|
+
* **Mental model**
|
|
16
|
+
*
|
|
17
|
+
* - {@link make} registers a named cluster cron job as a layer
|
|
18
|
+
* - a singleton schedules the first run for the selected shard group
|
|
19
|
+
* - each run is delivered as a persisted entity message at its scheduled time
|
|
20
|
+
* - after a run exits, the handler schedules the next occurrence
|
|
21
|
+
* - stale runs can be skipped with `skipIfOlderThan`
|
|
22
|
+
*
|
|
23
|
+
* **Gotchas**
|
|
24
|
+
*
|
|
25
|
+
* - Job effects should be idempotent because persisted messages, retries, and
|
|
26
|
+
* runner failover are part of normal distributed execution.
|
|
27
|
+
* - By default, the next run is calculated from the current time after the
|
|
28
|
+
* handler exits; use `calculateNextRunFromPrevious` when preserving the
|
|
29
|
+
* schedule cadence is more important than catching up from delays.
|
|
30
|
+
* - Long outages can produce old scheduled messages; keep `skipIfOlderThan`
|
|
31
|
+
* aligned with the job's business semantics.
|
|
32
|
+
*
|
|
5
33
|
* @since 4.0.0
|
|
6
34
|
*/
|
|
7
35
|
export * as ClusterCron from "./ClusterCron.ts";
|
|
8
36
|
/**
|
|
37
|
+
* The `ClusterError` module defines the typed error values used by the
|
|
38
|
+
* unstable cluster runtime when routing messages to entities, coordinating
|
|
39
|
+
* runners, and persisting mailbox work.
|
|
40
|
+
*
|
|
41
|
+
* These errors are useful when implementing cluster transports, runner
|
|
42
|
+
* supervision, mailbox storage, and entity request handling. They make common
|
|
43
|
+
* distributed-system failures explicit: a message may reach a runner that no
|
|
44
|
+
* longer owns the entity, a runner may be unavailable or unregistered, a
|
|
45
|
+
* payload may fail to decode, persistence may fail, a mailbox may be at
|
|
46
|
+
* capacity, or an envelope may already be in progress.
|
|
47
|
+
*
|
|
48
|
+
* **Gotchas**
|
|
49
|
+
*
|
|
50
|
+
* - Entity ownership and runner availability can change while messages are in
|
|
51
|
+
* flight, so routing errors should generally be treated as retryable or
|
|
52
|
+
* recoverable by higher-level cluster logic.
|
|
53
|
+
* - `MalformedMessage` points to a schema/serialization boundary failure,
|
|
54
|
+
* while `PersistenceError` preserves failures from durable mailbox storage.
|
|
55
|
+
* - `AlreadyProcessingMessage` protects an entity mailbox from processing the
|
|
56
|
+
* same envelope concurrently.
|
|
57
|
+
*
|
|
9
58
|
* @since 4.0.0
|
|
10
59
|
*/
|
|
11
60
|
export * as ClusterError from "./ClusterError.ts";
|
|
12
61
|
/**
|
|
62
|
+
* The `ClusterMetrics` module defines the standard metrics emitted by the
|
|
63
|
+
* unstable cluster runtime. These gauges track the shape and health of a
|
|
64
|
+
* running cluster from the perspective of runners, entities, singletons, and
|
|
65
|
+
* shard ownership.
|
|
66
|
+
*
|
|
67
|
+
* **Common tasks**
|
|
68
|
+
*
|
|
69
|
+
* - Monitor how many entity instances and singleton processes are active on a
|
|
70
|
+
* runner
|
|
71
|
+
* - Track registered runners and the subset currently considered healthy
|
|
72
|
+
* - Observe shard distribution across runners during startup, rebalancing, and
|
|
73
|
+
* failover
|
|
74
|
+
*
|
|
75
|
+
* **Gotchas**
|
|
76
|
+
*
|
|
77
|
+
* - Runner-local gauges such as {@link entities}, {@link singletons}, and
|
|
78
|
+
* {@link shards} describe the current runner, so aggregate them carefully in
|
|
79
|
+
* dashboards
|
|
80
|
+
* - Cluster-wide gauges such as {@link runners} and {@link runnersHealthy}
|
|
81
|
+
* reflect the runtime's current view, which may lag briefly during membership
|
|
82
|
+
* changes or failure detection
|
|
83
|
+
*
|
|
13
84
|
* @since 4.0.0
|
|
14
85
|
*/
|
|
15
86
|
export * as ClusterMetrics from "./ClusterMetrics.ts";
|
|
16
87
|
/**
|
|
88
|
+
* The `ClusterSchema` module defines the schema annotations used by Effect
|
|
89
|
+
* Cluster protocols. These annotations attach cluster-specific behavior to
|
|
90
|
+
* RPCs and entities without changing the request or response schemas
|
|
91
|
+
* themselves.
|
|
92
|
+
*
|
|
93
|
+
* **Common tasks**
|
|
94
|
+
*
|
|
95
|
+
* - Mark requests as persisted so mailbox storage can replay them after
|
|
96
|
+
* interruption or restart
|
|
97
|
+
* - Run server-side handling inside a storage transaction when durable state
|
|
98
|
+
* and SQL updates must commit together
|
|
99
|
+
* - Control whether client sending, server handling, or both are treated as
|
|
100
|
+
* uninterruptible
|
|
101
|
+
* - Route entity ids into shard groups
|
|
102
|
+
* - Disable client tracing for internal protocols such as cron dispatch
|
|
103
|
+
* - Derive per-request annotations from the encoded request with {@link Dynamic}
|
|
104
|
+
*
|
|
105
|
+
* **Protocol notes**
|
|
106
|
+
*
|
|
107
|
+
* Cluster transports serialize the RPC payloads, not arbitrary runtime
|
|
108
|
+
* annotation values. Prefer static, deterministic annotations, and use
|
|
109
|
+
* {@link Dynamic} when a persisted or transactional decision depends on the
|
|
110
|
+
* request value that is already part of the protocol. Persisted requests require
|
|
111
|
+
* message storage support, and shard group selection must remain stable for a
|
|
112
|
+
* given entity id so routing is consistent across cluster members.
|
|
113
|
+
*
|
|
17
114
|
* @since 4.0.0
|
|
18
115
|
*/
|
|
19
116
|
export * as ClusterSchema from "./ClusterSchema.ts";
|
|
20
117
|
/**
|
|
118
|
+
* The cluster workflow engine runs durable workflows on top of cluster sharding
|
|
119
|
+
* and message storage. It adapts `WorkflowEngine.WorkflowEngine` so workflow
|
|
120
|
+
* executions, activities, deferred completions, resumes, interrupts, and durable
|
|
121
|
+
* clock wakeups are represented as persisted cluster entity messages.
|
|
122
|
+
*
|
|
123
|
+
* **Common tasks**
|
|
124
|
+
*
|
|
125
|
+
* - Provide a workflow engine for services that already use cluster sharding
|
|
126
|
+
* - Execute workflows by stable execution id and poll their persisted result
|
|
127
|
+
* - Resume suspended workflows after activities, deferreds, or durable clock wakeups
|
|
128
|
+
* - Interrupt workflow executions and propagate resume signals to parent workflows
|
|
129
|
+
*
|
|
130
|
+
* **Gotchas**
|
|
131
|
+
*
|
|
132
|
+
* - Workflow names and execution ids determine the cluster entity address used
|
|
133
|
+
* for persistence, so they must remain stable across deploys
|
|
134
|
+
* - Activities are persisted by activity name and attempt; retries and suspended
|
|
135
|
+
* activity resumes depend on those primary keys
|
|
136
|
+
* - Durable clock wakeups are scheduled through a separate clock entity and are
|
|
137
|
+
* cleared when an interrupted workflow stops waiting
|
|
138
|
+
*
|
|
21
139
|
* @since 4.0.0
|
|
22
140
|
*/
|
|
23
141
|
export * as ClusterWorkflowEngine from "./ClusterWorkflowEngine.ts";
|
|
24
142
|
/**
|
|
143
|
+
* The `DeliverAt` module defines the protocol used by cluster message payloads
|
|
144
|
+
* that carry their own scheduled delivery time. A value implements the protocol
|
|
145
|
+
* by exposing a method at the `DeliverAt` symbol that returns the target
|
|
146
|
+
* `DateTime`.
|
|
147
|
+
*
|
|
148
|
+
* **Common tasks**
|
|
149
|
+
*
|
|
150
|
+
* - Mark a message payload as deliverable at a specific time by implementing
|
|
151
|
+
* {@link DeliverAt}
|
|
152
|
+
* - Check whether an arbitrary value carries a scheduled delivery time with
|
|
153
|
+
* {@link isDeliverAt}
|
|
154
|
+
* - Convert a scheduled delivery time to epoch milliseconds with
|
|
155
|
+
* {@link toMillis}
|
|
156
|
+
*
|
|
157
|
+
* **Gotchas**
|
|
158
|
+
*
|
|
159
|
+
* - The protocol records the requested delivery instant; cluster infrastructure
|
|
160
|
+
* may still deliver later because of clock skew, queue latency, or worker
|
|
161
|
+
* availability
|
|
162
|
+
* - Values that do not implement the symbol method are treated as unscheduled;
|
|
163
|
+
* {@link toMillis} returns `null` for those values
|
|
164
|
+
*
|
|
25
165
|
* @since 4.0.0
|
|
26
166
|
*/
|
|
27
167
|
export * as DeliverAt from "./DeliverAt.ts";
|
|
28
168
|
/**
|
|
169
|
+
* The `Entity` module defines sharded, addressable actors for Effect Cluster.
|
|
170
|
+
* An entity type pairs a stable entity name with an RPC protocol and describes
|
|
171
|
+
* how requests for individual entity ids are routed to shard groups and
|
|
172
|
+
* runners.
|
|
173
|
+
*
|
|
174
|
+
* **Mental model**
|
|
175
|
+
*
|
|
176
|
+
* - An `Entity` is the cluster-facing definition for one logical actor type
|
|
177
|
+
* - Each entity id maps deterministically to a shard group and shard id
|
|
178
|
+
* - Clients are created per entity id and send typed RPC messages through the
|
|
179
|
+
* cluster sharding layer
|
|
180
|
+
* - Server layers register handlers or mailbox processors for the entity type
|
|
181
|
+
*
|
|
182
|
+
* **Common tasks**
|
|
183
|
+
*
|
|
184
|
+
* - Define an entity protocol with RPCs and create an entity with {@link make}
|
|
185
|
+
* - Send messages to a specific entity id with {@link Entity.client}
|
|
186
|
+
* - Register typed RPC handlers with {@link Entity.toLayer}
|
|
187
|
+
* - Process envelopes directly with {@link Entity.toLayerQueue}
|
|
188
|
+
* - Access the current entity or runner address with {@link CurrentAddress} and
|
|
189
|
+
* {@link CurrentRunnerAddress}
|
|
190
|
+
*
|
|
191
|
+
* **Gotchas**
|
|
192
|
+
*
|
|
193
|
+
* - Entity ids are part of routing: changing id formats can move work to
|
|
194
|
+
* different shards
|
|
195
|
+
* - Entity type names should be stable and unique within a cluster deployment
|
|
196
|
+
* - Mailbox capacity and concurrency determine back pressure and duplicate
|
|
197
|
+
* processing behavior
|
|
198
|
+
* - Persistence, mailbox, and already-processing failures are surfaced through
|
|
199
|
+
* the generated clients
|
|
200
|
+
*
|
|
29
201
|
* @since 4.0.0
|
|
30
202
|
*/
|
|
31
203
|
export * as Entity from "./Entity.ts";
|
|
32
204
|
/**
|
|
205
|
+
* The `EntityAddress` module defines the value used to locate an entity within
|
|
206
|
+
* a cluster. An address combines the entity type, entity id, and shard id so
|
|
207
|
+
* messages, persisted envelopes, workflow executions, and entity managers can
|
|
208
|
+
* agree on the same routing target.
|
|
209
|
+
*
|
|
210
|
+
* **Common tasks**
|
|
211
|
+
*
|
|
212
|
+
* - Build an address after resolving an entity id to a shard with `Sharding`
|
|
213
|
+
* - Attach an address to cluster envelopes and persisted messages
|
|
214
|
+
* - Compare or hash addresses when tracking active or resuming entities
|
|
215
|
+
*
|
|
216
|
+
* **Gotchas**
|
|
217
|
+
*
|
|
218
|
+
* - The shard id is part of the address identity; the same entity type and id
|
|
219
|
+
* on a different shard is a different address.
|
|
220
|
+
* - Entity ids should be routed through the same shard group logic used by the
|
|
221
|
+
* entity definition so messages are sent to the runner that owns the shard.
|
|
222
|
+
*
|
|
33
223
|
* @since 4.0.0
|
|
34
224
|
*/
|
|
35
225
|
export * as EntityAddress from "./EntityAddress.ts";
|
|
36
226
|
/**
|
|
227
|
+
* The `EntityId` module provides a branded string identifier for addressing a
|
|
228
|
+
* specific entity instance inside the cluster. Entity ids are commonly used as
|
|
229
|
+
* stable routing keys when sending messages to an entity, looking up its state,
|
|
230
|
+
* or deriving the shard responsible for that entity.
|
|
231
|
+
*
|
|
232
|
+
* Because routing is based on the exact string value, choose ids that are
|
|
233
|
+
* deterministic, normalized, and unique within the entity type you are
|
|
234
|
+
* addressing. Avoid display names or other values that may change over time.
|
|
235
|
+
*
|
|
37
236
|
* @since 4.0.0
|
|
38
237
|
*/
|
|
39
238
|
export * as EntityId from "./EntityId.ts";
|
|
40
239
|
/**
|
|
240
|
+
* The `EntityProxy` module derives external RPC and HTTP API surfaces from a
|
|
241
|
+
* clustered {@link Entity.Entity}. It is used when callers should communicate
|
|
242
|
+
* with entities through ordinary RPC clients or HTTP routes while the cluster
|
|
243
|
+
* runtime keeps responsibility for locating, routing, and delivering messages
|
|
244
|
+
* to the entity instance identified by `entityId`.
|
|
245
|
+
*
|
|
246
|
+
* **Common tasks**
|
|
247
|
+
*
|
|
248
|
+
* - Derive an `RpcGroup` from an entity with {@link toRpcGroup}
|
|
249
|
+
* - Derive an `HttpApiGroup` from an entity with {@link toHttpApiGroup}
|
|
250
|
+
* - Expose both request/response calls and discard variants for fire-and-forget
|
|
251
|
+
* delivery
|
|
252
|
+
*
|
|
253
|
+
* **Gotchas**
|
|
254
|
+
*
|
|
255
|
+
* - Proxy RPC payloads wrap the original RPC payload with an `entityId`; HTTP
|
|
256
|
+
* endpoints place the same identifier in the route path.
|
|
257
|
+
* - Generated RPC names are prefixed with the entity type, while HTTP endpoint
|
|
258
|
+
* paths are based on lower-cased RPC tags.
|
|
259
|
+
* - Proxy errors include cluster delivery errors such as mailbox saturation,
|
|
260
|
+
* duplicate in-flight messages, and persistence failures.
|
|
261
|
+
*
|
|
41
262
|
* @since 4.0.0
|
|
42
263
|
*/
|
|
43
264
|
export * as EntityProxy from "./EntityProxy.ts";
|
|
44
265
|
/**
|
|
266
|
+
* The `EntityProxyServer` module provides server-side layers for exposing
|
|
267
|
+
* clustered entities through proxy APIs. It connects proxy requests to an
|
|
268
|
+
* entity client, extracts the target `entityId`, and forwards the payload to
|
|
269
|
+
* the matching entity RPC method.
|
|
270
|
+
*
|
|
271
|
+
* **Common tasks**
|
|
272
|
+
*
|
|
273
|
+
* - Serve an entity proxy over an HTTP API group with {@link layerHttpApi}
|
|
274
|
+
* - Serve the RPC group produced by an entity proxy with {@link layerRpcHandlers}
|
|
275
|
+
* - Route both normal calls and discard calls to the same underlying entity
|
|
276
|
+
* method
|
|
277
|
+
*
|
|
278
|
+
* **Gotchas**
|
|
279
|
+
*
|
|
280
|
+
* - HTTP proxy endpoints expect the `entityId` path parameter to identify the
|
|
281
|
+
* target entity instance
|
|
282
|
+
* - RPC proxy handlers use tags prefixed with the entity type, matching the
|
|
283
|
+
* group generated by `EntityProxy.toRpcGroup`
|
|
284
|
+
* - Both layers require `Sharding` and the entity RPC server services in the
|
|
285
|
+
* environment so requests can be routed to the owning shard
|
|
286
|
+
*
|
|
45
287
|
* @since 4.0.0
|
|
46
288
|
*/
|
|
47
289
|
export * as EntityProxyServer from "./EntityProxyServer.ts";
|
|
48
290
|
/**
|
|
291
|
+
* The `EntityResource` module provides helpers for acquiring resources inside a
|
|
292
|
+
* cluster entity and keeping them available across entity restarts. It is useful
|
|
293
|
+
* for long-lived resources tied to an entity address, such as external
|
|
294
|
+
* processes, network clients, Kubernetes Pods, or other handles that should not
|
|
295
|
+
* be torn down during routine shard movement.
|
|
296
|
+
*
|
|
297
|
+
* **Common tasks**
|
|
298
|
+
*
|
|
299
|
+
* - Create a reusable entity-scoped resource with {@link make}
|
|
300
|
+
* - Keep an entity alive while the resource is acquired
|
|
301
|
+
* - Explicitly release the resource with `EntityResource.close`
|
|
302
|
+
* - Attach cleanup work to the resource close scope with {@link CloseScope}
|
|
303
|
+
* - Create and manage a Kubernetes Pod resource with {@link makeK8sPod}
|
|
304
|
+
*
|
|
305
|
+
* **Lifecycle gotchas**
|
|
306
|
+
*
|
|
307
|
+
* - Resources are retained by an `RcRef` and are only fully released after
|
|
308
|
+
* `idleTimeToLive` expires or `close` is called
|
|
309
|
+
* - The default idle time to live is infinite, so resources remain alive until
|
|
310
|
+
* explicitly closed
|
|
311
|
+
* - `CloseScope` is separate from the caller scope and is not closed by entity
|
|
312
|
+
* restarts, shard movement, or node shutdown finalization
|
|
313
|
+
*
|
|
49
314
|
* @since 4.0.0
|
|
50
315
|
*/
|
|
51
316
|
export * as EntityResource from "./EntityResource.ts";
|
|
52
317
|
/**
|
|
318
|
+
* The `EntityType` module defines the branded string used to identify a kind of
|
|
319
|
+
* entity in an Effect cluster. Entity type names are part of the cluster routing
|
|
320
|
+
* identity: they distinguish one family of entities from another before an
|
|
321
|
+
* individual entity id is considered.
|
|
322
|
+
*
|
|
323
|
+
* **Common tasks**
|
|
324
|
+
*
|
|
325
|
+
* - Declare the stable name for an entity family handled by a cluster service
|
|
326
|
+
* - Brand a string literal as an {@link EntityType} with {@link make}
|
|
327
|
+
* - Validate or encode entity type names with the {@link EntityType} schema
|
|
328
|
+
*
|
|
329
|
+
* **Gotchas**
|
|
330
|
+
*
|
|
331
|
+
* - Entity type names should be stable and unique within the cluster because
|
|
332
|
+
* changing them changes where entity messages are routed
|
|
333
|
+
* - The entity type name identifies the entity family, not a specific entity
|
|
334
|
+
* instance; combine it with the entity id at the call site that routes work
|
|
335
|
+
*
|
|
53
336
|
* @since 4.0.0
|
|
54
337
|
*/
|
|
55
338
|
export * as EntityType from "./EntityType.ts";
|
|
56
339
|
/**
|
|
340
|
+
* The `Envelope` module defines the transport messages exchanged by Effect
|
|
341
|
+
* cluster entities while processing RPC requests. Envelopes wrap decoded
|
|
342
|
+
* request payloads with routing metadata, trace context, and request ids, and
|
|
343
|
+
* also model delivery-control messages such as streamed-reply acknowledgements
|
|
344
|
+
* and request interrupts.
|
|
345
|
+
*
|
|
346
|
+
* **Common use cases**
|
|
347
|
+
*
|
|
348
|
+
* - Construct a runtime request envelope with {@link makeRequest}
|
|
349
|
+
* - Decode or encode envelopes crossing a network or durable queue with {@link PartialJson}
|
|
350
|
+
* - Batch encoded envelopes with {@link PartialArray}
|
|
351
|
+
* - Detect envelope values at runtime with {@link isEnvelope}
|
|
352
|
+
* - Build storage keys for keyed request payloads with {@link primaryKey}
|
|
353
|
+
*
|
|
354
|
+
* **Serialization and delivery notes**
|
|
355
|
+
*
|
|
356
|
+
* Request envelopes are decoded in two phases: the envelope metadata is parsed
|
|
357
|
+
* first, while the RPC payload remains `unknown` until the receiving side knows
|
|
358
|
+
* the target RPC schema. Snowflake identifiers are encoded as strings for JSON
|
|
359
|
+
* transport, and acknowledgement / interrupt envelopes carry the original
|
|
360
|
+
* request id so delivery protocols can correlate control messages with the
|
|
361
|
+
* in-flight request.
|
|
362
|
+
*
|
|
57
363
|
* @since 4.0.0
|
|
58
364
|
*/
|
|
59
365
|
export * as Envelope from "./Envelope.ts";
|
|
60
366
|
/**
|
|
367
|
+
* The `HttpRunner` module wires cluster runner RPCs to HTTP transports. It
|
|
368
|
+
* provides client protocol layers for contacting runners over HTTP or
|
|
369
|
+
* WebSocket, server-side HTTP effects for exposing runner RPC handlers, and
|
|
370
|
+
* complete layers that install those routes into an `HttpRouter`.
|
|
371
|
+
*
|
|
372
|
+
* **Common tasks**
|
|
373
|
+
*
|
|
374
|
+
* - Serve runner RPC routes with {@link layerHttp} or {@link layerWebsocket}
|
|
375
|
+
* - Configure client-only runner communication with {@link layerHttpClientOnly}
|
|
376
|
+
* or {@link layerWebsocketClientOnly}
|
|
377
|
+
* - Use custom route paths with {@link layerHttpOptions},
|
|
378
|
+
* {@link layerWebsocketOptions}, {@link layerClientProtocolHttp}, or
|
|
379
|
+
* {@link layerClientProtocolWebsocket}
|
|
380
|
+
*
|
|
381
|
+
* **Transport gotchas**
|
|
382
|
+
*
|
|
383
|
+
* - Client protocol paths are appended to each runner address when building the
|
|
384
|
+
* target URL
|
|
385
|
+
* - `https: true` switches HTTP clients from `http` to `https`, and WebSocket
|
|
386
|
+
* clients from `ws` to `wss`
|
|
387
|
+
* - The default complete layers serve and connect at `/`; use the `Options`
|
|
388
|
+
* variants when your runner routes live under a different path
|
|
389
|
+
*
|
|
61
390
|
* @since 4.0.0
|
|
62
391
|
*/
|
|
63
392
|
export * as HttpRunner from "./HttpRunner.ts";
|
|
64
393
|
/**
|
|
394
|
+
* The `K8sHttpClient` module provides an HTTP client service for talking to the
|
|
395
|
+
* Kubernetes API from code running inside a cluster.
|
|
396
|
+
*
|
|
397
|
+
* It configures requests for the in-cluster service endpoint, attaches the
|
|
398
|
+
* mounted service-account token when present, and exposes helpers for common
|
|
399
|
+
* cluster tasks such as discovering running pods by namespace or label selector
|
|
400
|
+
* and creating scoped pods that are cleaned up automatically.
|
|
401
|
+
*
|
|
402
|
+
* **Gotchas**
|
|
403
|
+
*
|
|
404
|
+
* - The default layer targets `https://kubernetes.default.svc/api`, so it is
|
|
405
|
+
* intended for workloads with Kubernetes DNS and service-account mounts.
|
|
406
|
+
* - Pod discovery is keyed by pod IP address and only includes pods whose phase
|
|
407
|
+
* is `Running`; callers should choose selectors that match the intended
|
|
408
|
+
* service topology.
|
|
409
|
+
* - Network policies, RBAC, and service-account token availability can all
|
|
410
|
+
* prevent the client from reaching or authorizing with the Kubernetes API.
|
|
411
|
+
*
|
|
65
412
|
* @since 4.0.0
|
|
66
413
|
*/
|
|
67
414
|
export * as K8sHttpClient from "./K8sHttpClient.ts";
|
|
68
415
|
/**
|
|
416
|
+
* The `MachineId` module provides the branded integer identifier used to
|
|
417
|
+
* distinguish cluster runners when generating distributed ids and coordinating
|
|
418
|
+
* runner state.
|
|
419
|
+
*
|
|
420
|
+
* **When to use**
|
|
421
|
+
*
|
|
422
|
+
* - Persisting or exchanging the machine id assigned to a cluster runner
|
|
423
|
+
* - Passing a runner-specific identity to the cluster snowflake generator
|
|
424
|
+
* - Decoding machine ids from storage while keeping them distinct from plain numbers
|
|
425
|
+
*
|
|
426
|
+
* **Gotchas**
|
|
427
|
+
*
|
|
428
|
+
* - Machine ids must be unique for concurrently active runners that generate snowflakes
|
|
429
|
+
* - Snowflake ids store the machine component in 10 bits, so only the value modulo 1024 is encoded
|
|
430
|
+
*
|
|
69
431
|
* @since 4.0.0
|
|
70
432
|
*/
|
|
71
433
|
export * as MachineId from "./MachineId.ts";
|
|
72
434
|
/**
|
|
435
|
+
* The cluster `Message` module defines the in-memory shapes used while moving
|
|
436
|
+
* requests and control envelopes between callers, durable storage, transports,
|
|
437
|
+
* and entity runners.
|
|
438
|
+
*
|
|
439
|
+
* **Common use cases**
|
|
440
|
+
*
|
|
441
|
+
* - Representing outgoing entity requests before they are stored or sent
|
|
442
|
+
* - Reconstructing incoming requests that runners read from storage or transport
|
|
443
|
+
* - Converting outgoing messages into local, in-process deliveries
|
|
444
|
+
* - Serializing request payloads with the associated RPC schema and context
|
|
445
|
+
* - Passing control envelopes such as acknowledgements and interrupts through
|
|
446
|
+
* without payload decoding
|
|
447
|
+
*
|
|
448
|
+
* **Gotchas**
|
|
449
|
+
*
|
|
450
|
+
* - Requests can exist in decoded local form or encoded persisted form; choose
|
|
451
|
+
* `IncomingLocal` / `OutgoingRequest` for local delivery and `IncomingRequest`
|
|
452
|
+
* / `Envelope.PartialRequest` for storage or transport boundaries.
|
|
453
|
+
* - Request payloads must be encoded and decoded with the matching RPC payload
|
|
454
|
+
* schema and service context, otherwise failures are surfaced as
|
|
455
|
+
* `MalformedMessage`.
|
|
456
|
+
* - Delivery state such as the last sent or received reply is carried alongside
|
|
457
|
+
* messages so retries and persisted replies can preserve cluster semantics.
|
|
458
|
+
*
|
|
73
459
|
* @since 4.0.0
|
|
74
460
|
*/
|
|
75
461
|
export * as Message from "./Message.ts";
|
|
76
462
|
/**
|
|
463
|
+
* The `MessageStorage` module defines the persistence boundary used by Effect
|
|
464
|
+
* Cluster to store mailbox messages and replies. Storage implementations keep
|
|
465
|
+
* requests, envelopes, and reply chunks durable enough for runners to recover
|
|
466
|
+
* work after restarts, replay unprocessed messages for assigned shards, and
|
|
467
|
+
* deliver replies back to locally registered handlers.
|
|
468
|
+
*
|
|
469
|
+
* **Common use cases**
|
|
470
|
+
*
|
|
471
|
+
* - Persist outgoing requests and control envelopes before delivery
|
|
472
|
+
* - Detect duplicate requests by primary key and resume from an existing reply
|
|
473
|
+
* - Query unprocessed messages when shards are assigned to a runner
|
|
474
|
+
* - Store, load, and clear replies for request streams and completions
|
|
475
|
+
* - Reset or clear mailbox state during shard or address lifecycle changes
|
|
476
|
+
*
|
|
477
|
+
* **Gotchas**
|
|
478
|
+
*
|
|
479
|
+
* - Implementations should make save and reply operations transactional when
|
|
480
|
+
* possible so recovery does not observe partial mailbox state
|
|
481
|
+
* - Duplicate detection depends on stable request primary keys and persisted
|
|
482
|
+
* request ids
|
|
483
|
+
* - Reply handlers are local process state; persisted replies may need to be
|
|
484
|
+
* loaded again after restarts or reassignment
|
|
485
|
+
* - Concurrent runners must only process messages for shards they currently own
|
|
486
|
+
*
|
|
77
487
|
* @since 4.0.0
|
|
78
488
|
*/
|
|
79
489
|
export * as MessageStorage from "./MessageStorage.ts";
|
|
80
490
|
/**
|
|
491
|
+
* The `Reply` module models responses produced by clustered RPC execution. A
|
|
492
|
+
* reply belongs to a request and is either a terminal {@link WithExit}, which
|
|
493
|
+
* carries the final RPC `Exit`, or a streaming {@link Chunk}, which carries a
|
|
494
|
+
* non-empty batch of success values for RPCs that stream results.
|
|
495
|
+
*
|
|
496
|
+
* **Common tasks**
|
|
497
|
+
*
|
|
498
|
+
* - Represent runtime replies with {@link Reply}, {@link WithExit}, and {@link Chunk}
|
|
499
|
+
* - Encode and decode transport payloads with {@link Encoded} and {@link Reply}
|
|
500
|
+
* - Persist replies together with schema context via {@link ReplyWithContext}
|
|
501
|
+
* - Serialize the latest received reply when resuming or de-duplicating requests with {@link serializeLastReceived}
|
|
502
|
+
*
|
|
503
|
+
* **Streaming and acknowledgement notes**
|
|
504
|
+
*
|
|
505
|
+
* - Chunk replies are sequenced and can be replayed until acknowledged by the
|
|
506
|
+
* receiver.
|
|
507
|
+
* - A `WithExit` reply is terminal and completes the request, while chunks only
|
|
508
|
+
* represent intermediate streamed success values.
|
|
509
|
+
* - `Chunk.emptyFrom` is used as an acknowledgement marker for an empty streamed
|
|
510
|
+
* reply; it is not a general-purpose success payload.
|
|
511
|
+
*
|
|
81
512
|
* @since 4.0.0
|
|
82
513
|
*/
|
|
83
514
|
export * as Reply from "./Reply.ts";
|
|
84
515
|
/**
|
|
516
|
+
* The `Runner` module defines the membership record used by the unstable
|
|
517
|
+
* cluster runtime to describe a process that can host entity shards.
|
|
518
|
+
*
|
|
519
|
+
* A runner combines the network address used by other runners to reach it, the
|
|
520
|
+
* shard groups it participates in, and a relative weight used when the sharding
|
|
521
|
+
* service assigns shards across the healthy runners in each group.
|
|
522
|
+
*
|
|
523
|
+
* **Common tasks**
|
|
524
|
+
*
|
|
525
|
+
* - Construct the runner registered by the local `Sharding` layer
|
|
526
|
+
* - Persist or exchange runner metadata through `RunnerStorage`
|
|
527
|
+
* - Encode and decode runner values at cluster transport or storage boundaries
|
|
528
|
+
* - Tune shard distribution by adjusting the runner's group membership and
|
|
529
|
+
* relative weight
|
|
530
|
+
*
|
|
531
|
+
* **Gotchas**
|
|
532
|
+
*
|
|
533
|
+
* - Runner addresses must be stable and unique while a runner is registered,
|
|
534
|
+
* because they identify the owner used for routing and shard locks.
|
|
535
|
+
* - Weights are relative within each shard group; changing weights or groups can
|
|
536
|
+
* rebalance shard ownership as the cluster refreshes its runner view.
|
|
537
|
+
* - Runner equality and hashing are based on address and weight, so compare
|
|
538
|
+
* `groups` explicitly when group membership is the important distinction.
|
|
539
|
+
*
|
|
85
540
|
* @since 4.0.0
|
|
86
541
|
*/
|
|
87
542
|
export * as Runner from "./Runner.ts";
|
|
88
543
|
/**
|
|
544
|
+
* The `RunnerAddress` module defines the network identity used to locate a
|
|
545
|
+
* cluster runner. A runner address is a host and port pair that can be encoded,
|
|
546
|
+
* compared, hashed, inspected, and used as a stable primary key.
|
|
547
|
+
*
|
|
548
|
+
* **Common use cases**
|
|
549
|
+
*
|
|
550
|
+
* - Representing the target runner for cluster routing and placement decisions
|
|
551
|
+
* - Persisting or exchanging runner endpoints through schemas
|
|
552
|
+
* - Using runner endpoints as keys in maps, registries, or shard ownership data
|
|
553
|
+
*
|
|
554
|
+
* **Gotchas**
|
|
555
|
+
*
|
|
556
|
+
* - Identity is structural: two addresses are equal when both host and port match
|
|
557
|
+
* - The primary key is formatted as `host:port`, so host strings should already
|
|
558
|
+
* be normalized for the routing layer using them
|
|
559
|
+
*
|
|
89
560
|
* @since 4.0.0
|
|
90
561
|
*/
|
|
91
562
|
export * as RunnerAddress from "./RunnerAddress.ts";
|
|
92
563
|
/**
|
|
564
|
+
* The `RunnerHealth` module defines the health-check service used by cluster
|
|
565
|
+
* sharding to decide whether a runner may still own its assigned shards. A
|
|
566
|
+
* runner that is reported as alive is allowed to keep processing messages,
|
|
567
|
+
* while a runner that is reported as unavailable can have its shards moved to
|
|
568
|
+
* another runner.
|
|
569
|
+
*
|
|
570
|
+
* **Common tasks**
|
|
571
|
+
*
|
|
572
|
+
* - Provide a custom {@link RunnerHealth} service for a cluster deployment
|
|
573
|
+
* - Use {@link layerPing} to check runners through the cluster runner protocol
|
|
574
|
+
* - Use {@link layerK8s} when Kubernetes pod readiness should drive health
|
|
575
|
+
* - Use {@link layerNoop} in tests or environments where runners are always considered healthy
|
|
576
|
+
*
|
|
577
|
+
* **Gotchas**
|
|
578
|
+
*
|
|
579
|
+
* - Health checks affect shard reassignment, so false negatives can move shards
|
|
580
|
+
* away from runners that may still be processing messages
|
|
581
|
+
* - The Kubernetes implementation treats API failures as healthy to avoid
|
|
582
|
+
* reassignment caused by a temporary control-plane outage
|
|
583
|
+
*
|
|
93
584
|
* @since 4.0.0
|
|
94
585
|
*/
|
|
95
586
|
export * as RunnerHealth from "./RunnerHealth.ts";
|
|
96
587
|
/**
|
|
588
|
+
* The `Runners` module defines the service used by the unstable cluster runtime
|
|
589
|
+
* to communicate with processes that host entity shards. It is the transport
|
|
590
|
+
* boundary between sharding decisions and runner execution: callers can ping a
|
|
591
|
+
* runner, send requests or envelopes, notify a runner that persisted work is
|
|
592
|
+
* available, and report an address as unavailable.
|
|
593
|
+
*
|
|
594
|
+
* The default implementation wraps lower-level runner callbacks with cluster
|
|
595
|
+
* message semantics. Persisted messages are written to `MessageStorage` before
|
|
596
|
+
* delivery, duplicate requests can resume from stored replies, and local sends
|
|
597
|
+
* can optionally serialize and deserialize messages to exercise the same path as
|
|
598
|
+
* remote delivery.
|
|
599
|
+
*
|
|
600
|
+
* **Common tasks**
|
|
601
|
+
*
|
|
602
|
+
* - Provide runner communication with {@link layerRpc}
|
|
603
|
+
* - Build a custom implementation with {@link make}
|
|
604
|
+
* - Use {@link makeNoop} or {@link layerNoop} when no remote runners are
|
|
605
|
+
* available
|
|
606
|
+
* - Define runner-to-runner protocol support with {@link Rpcs} and
|
|
607
|
+
* {@link RpcClientProtocol}
|
|
608
|
+
*
|
|
609
|
+
* **Gotchas**
|
|
610
|
+
*
|
|
611
|
+
* - `notify` is only for RPCs annotated as persisted; non-persisted messages
|
|
612
|
+
* should be sent directly.
|
|
613
|
+
* - Failed remote sends can fall back to reading replies from storage, so reply
|
|
614
|
+
* polling and `entityReplyPollInterval` affect recovery latency.
|
|
615
|
+
* - Unavailable runners invalidate cached RPC clients, but shard ownership and
|
|
616
|
+
* rebalancing are coordinated by the sharding layer rather than this module.
|
|
617
|
+
*
|
|
97
618
|
* @since 4.0.0
|
|
98
619
|
*/
|
|
99
620
|
export * as Runners from "./Runners.ts";
|
|
100
621
|
/**
|
|
622
|
+
* The `RunnerServer` module provides the transport-agnostic server side of the
|
|
623
|
+
* cluster runner protocol. It turns the runner RPC group into handlers that
|
|
624
|
+
* receive ping, notification, request, stream, and envelope messages from other
|
|
625
|
+
* runners, then forwards them into `Sharding` and coordinates persisted replies
|
|
626
|
+
* through `MessageStorage`.
|
|
627
|
+
*
|
|
628
|
+
* **Common tasks**
|
|
629
|
+
*
|
|
630
|
+
* - Build a runner server once an `RpcServer.Protocol` has been supplied by a
|
|
631
|
+
* transport such as HTTP, WebSocket, or sockets
|
|
632
|
+
* - Provide the complete runner runtime with `Sharding` and `Runners` clients
|
|
633
|
+
* using {@link layerWithClients}
|
|
634
|
+
* - Embed a cluster client without serving runner RPCs or accepting shard
|
|
635
|
+
* assignments using {@link layerClientOnly}
|
|
636
|
+
*
|
|
637
|
+
* **Gotchas**
|
|
638
|
+
*
|
|
639
|
+
* - This module does not choose a wire transport; transport-specific modules
|
|
640
|
+
* provide the `RpcServer.Protocol`
|
|
641
|
+
* - Persisted requests register reply handlers in `MessageStorage` before the
|
|
642
|
+
* message is delivered to `Sharding`
|
|
643
|
+
* - Client-only layers clear the configured runner address, so they can send
|
|
644
|
+
* cluster messages but do not register as shard-owning runners
|
|
645
|
+
*
|
|
101
646
|
* @since 4.0.0
|
|
102
647
|
*/
|
|
103
648
|
export * as RunnerServer from "./RunnerServer.ts";
|
|
104
649
|
/**
|
|
650
|
+
* The `RunnerStorage` module defines the persistence boundary used by clustered
|
|
651
|
+
* runners to register themselves and coordinate shard ownership.
|
|
652
|
+
*
|
|
653
|
+
* Implementations keep track of runner metadata, health, machine ids, and shard
|
|
654
|
+
* locks so a cluster can rebalance work as runners join, leave, or lose their
|
|
655
|
+
* leases. Production adapters usually implement the string-encoded interface and
|
|
656
|
+
* adapt it with {@link makeEncoded}; tests and local setups can use
|
|
657
|
+
* {@link makeMemory}.
|
|
658
|
+
*
|
|
659
|
+
* **Common tasks**
|
|
660
|
+
*
|
|
661
|
+
* - Register and unregister runners in a shared store
|
|
662
|
+
* - Read runner health for scheduling and rebalancing decisions
|
|
663
|
+
* - Acquire, refresh, and release shard locks for distributed processing
|
|
664
|
+
* - Bridge typed cluster values to string or numeric database representations
|
|
665
|
+
*
|
|
666
|
+
* **Gotchas**
|
|
667
|
+
*
|
|
668
|
+
* - Shard acquisition may be partial; callers must use the returned shard list
|
|
669
|
+
* - Refreshing leases is part of keeping shard ownership during rebalancing
|
|
670
|
+
* - The in-memory implementation is process-local and does not persist runner
|
|
671
|
+
* registrations or locks across restarts
|
|
672
|
+
*
|
|
105
673
|
* @since 4.0.0
|
|
106
674
|
*/
|
|
107
675
|
export * as RunnerStorage from "./RunnerStorage.ts";
|
|
108
676
|
/**
|
|
677
|
+
* The `ShardId` module models the address of a shard inside an Effect Cluster
|
|
678
|
+
* shard group. A shard id is made from a string `group` and numeric `id`, and
|
|
679
|
+
* the module gives that pair stable equality, hashing, primary-key behavior,
|
|
680
|
+
* schema support, and conversion to and from the `group:id` string form used by
|
|
681
|
+
* routing and storage boundaries.
|
|
682
|
+
*
|
|
683
|
+
* **Common tasks**
|
|
684
|
+
*
|
|
685
|
+
* - Create or reuse a cached shard identifier with {@link make}
|
|
686
|
+
* - Check runtime values with {@link isShardId}
|
|
687
|
+
* - Encode or decode shard identifiers with {@link ShardId}
|
|
688
|
+
* - Format for logs, persistence, or transport with {@link toString}
|
|
689
|
+
* - Parse encoded shard keys with {@link fromString} or {@link fromStringEncoded}
|
|
690
|
+
*
|
|
691
|
+
* **Gotchas**
|
|
692
|
+
*
|
|
693
|
+
* - Equality and hashing are based on the `group:id` representation, so both
|
|
694
|
+
* fields must match for two shard ids to be equal
|
|
695
|
+
* - Encoded strings are split at the last `:`; groups may contain colons, but
|
|
696
|
+
* ids must parse as numbers
|
|
697
|
+
* - This module identifies shards after a routing or hashing decision; it does
|
|
698
|
+
* not choose a shard for an arbitrary entity key
|
|
699
|
+
*
|
|
109
700
|
* @since 4.0.0
|
|
110
701
|
*/
|
|
111
702
|
export * as ShardId from "./ShardId.ts";
|
|
112
703
|
/**
|
|
704
|
+
* The `Sharding` module coordinates cluster-wide placement and delivery for
|
|
705
|
+
* entities and singletons. It hashes entity ids into shard ids, tracks which
|
|
706
|
+
* runner owns each shard, acquires local shard locks, and routes RPC messages
|
|
707
|
+
* to the runner that is responsible for the addressed entity.
|
|
708
|
+
*
|
|
709
|
+
* Use this module when building clustered services that need location
|
|
710
|
+
* transparency for stateful entities, singleton workloads that should run once
|
|
711
|
+
* per shard group, or durable message processing backed by cluster storage.
|
|
712
|
+
* Registered entity handlers are started on demand for shards owned by the
|
|
713
|
+
* current runner, while clients produced by the {@link Sharding} service route
|
|
714
|
+
* requests through the sharding service instead of calling handlers directly.
|
|
715
|
+
*
|
|
716
|
+
* **Gotchas**
|
|
717
|
+
*
|
|
718
|
+
* - Shard assignment and shard acquisition are distinct: a runner may be
|
|
719
|
+
* assigned a shard before it has acquired the storage lock for that shard.
|
|
720
|
+
* - Routing depends on the entity shard group and the configured shard count,
|
|
721
|
+
* so changing either value affects where entity ids are placed.
|
|
722
|
+
* - Persisted messages are only read and dispatched for shards currently owned
|
|
723
|
+
* by the local runner; shutdown and runner health changes can temporarily
|
|
724
|
+
* move work between runners.
|
|
725
|
+
*
|
|
113
726
|
* @since 4.0.0
|
|
114
727
|
*/
|
|
115
728
|
export * as Sharding from "./Sharding.ts";
|
|
116
729
|
/**
|
|
730
|
+
* The `ShardingConfig` module defines the configuration used by a cluster
|
|
731
|
+
* runner to participate in Effect Cluster sharding. It describes how a runner is
|
|
732
|
+
* addressed by other runners, which shard groups it can host, how many shards
|
|
733
|
+
* are assigned per group, and the timing settings used for locks, assignment
|
|
734
|
+
* refreshes, health checks, entity lifecycle, and message polling.
|
|
735
|
+
*
|
|
736
|
+
* Use this module when wiring a sharded application locally with
|
|
737
|
+
* {@link layer}, loading deployment settings from environment variables with
|
|
738
|
+
* {@link layerFromEnv}, or overriding selected defaults for tests and
|
|
739
|
+
* single-node development. In production, keep cluster-wide values such as
|
|
740
|
+
* `shardsPerGroup` and shard groups consistent across runners, choose stable
|
|
741
|
+
* externally reachable runner addresses, and tune lock expiration and refresh
|
|
742
|
+
* intervals to match the storage backend and shutdown behavior of the
|
|
743
|
+
* deployment platform.
|
|
744
|
+
*
|
|
117
745
|
* @since 4.0.0
|
|
118
746
|
*/
|
|
119
747
|
export * as ShardingConfig from "./ShardingConfig.ts";
|
|
120
748
|
/**
|
|
749
|
+
* The `ShardingRegistrationEvent` module defines the events emitted by
|
|
750
|
+
* `Sharding` when the local runner registers entity handlers or singleton
|
|
751
|
+
* workloads. These events are useful for observing the set of capabilities a
|
|
752
|
+
* runner has made available, coordinating startup hooks, and writing tests or
|
|
753
|
+
* integrations that need to react when registrations are complete.
|
|
754
|
+
*
|
|
755
|
+
* Registration events describe local registration, not shard ownership or
|
|
756
|
+
* execution. A runner may register an entity or singleton before it owns the
|
|
757
|
+
* shard that will run it, and the events are in-memory notifications from the
|
|
758
|
+
* `Sharding` service rather than persisted cluster state. For persisted
|
|
759
|
+
* messages, treat registration as the point where the handler is available to
|
|
760
|
+
* the runner; it does not imply that existing storage work has already been
|
|
761
|
+
* read or processed.
|
|
762
|
+
*
|
|
121
763
|
* @since 4.0.0
|
|
122
764
|
*/
|
|
123
765
|
export * as ShardingRegistrationEvent from "./ShardingRegistrationEvent.ts";
|
|
124
766
|
/**
|
|
767
|
+
* The `SingleRunner` module provides a ready-to-use layer for running the
|
|
768
|
+
* cluster sharding services in a single process. It wires together sharding,
|
|
769
|
+
* message storage, runner registration, runner health, and sharding
|
|
770
|
+
* configuration so durable entities and workflows can run without a fleet of
|
|
771
|
+
* external runners.
|
|
772
|
+
*
|
|
773
|
+
* **Common tasks**
|
|
774
|
+
*
|
|
775
|
+
* - Start a local or embedded cluster runner backed by SQL message storage
|
|
776
|
+
* - Run durable entities and workflows in development, tests, or small
|
|
777
|
+
* single-node deployments
|
|
778
|
+
* - Choose SQL runner storage for persistence or in-memory runner storage for
|
|
779
|
+
* short-lived scenarios
|
|
780
|
+
* - Override sharding configuration while still using the standard
|
|
781
|
+
* environment-based defaults
|
|
782
|
+
*
|
|
783
|
+
* **Gotchas**
|
|
784
|
+
*
|
|
785
|
+
* - The layer still requires a `SqlClient` because message storage is SQL-backed
|
|
786
|
+
* - Runner health and runner coordination are no-op implementations, so this is
|
|
787
|
+
* for single-node use rather than multi-runner cluster coordination
|
|
788
|
+
*
|
|
125
789
|
* @since 4.0.0
|
|
126
790
|
*/
|
|
127
791
|
export * as SingleRunner from "./SingleRunner.ts";
|
|
128
792
|
/**
|
|
793
|
+
* The `Singleton` module provides a small helper for registering effects that
|
|
794
|
+
* should run once across an Effect cluster. A singleton is coordinated through
|
|
795
|
+
* `Sharding`, which assigns ownership to one node at a time and can move that
|
|
796
|
+
* ownership when nodes leave or fail.
|
|
797
|
+
*
|
|
798
|
+
* Use singletons for cluster-wide background work such as schedulers, polling
|
|
799
|
+
* loops, maintenance jobs, or consumers that must not have one instance per
|
|
800
|
+
* process. Because ownership can change during failover, the registered effect
|
|
801
|
+
* should be interruptible, scoped, and able to resume work without assuming that
|
|
802
|
+
* the previous owner completed every in-flight action exactly once.
|
|
803
|
+
*
|
|
129
804
|
* @since 4.0.0
|
|
130
805
|
*/
|
|
131
806
|
export * as Singleton from "./Singleton.ts";
|
|
132
807
|
/**
|
|
808
|
+
* The `SingletonAddress` module defines the address used by cluster sharding to
|
|
809
|
+
* identify a registered singleton. A singleton address combines the singleton
|
|
810
|
+
* name with the `ShardId` that owns it, giving the runtime a stable key for
|
|
811
|
+
* registration events, equality checks, hashing, and runner-local fiber
|
|
812
|
+
* tracking.
|
|
813
|
+
*
|
|
814
|
+
* Use this module when observing singleton registrations or working with
|
|
815
|
+
* sharding internals that need to tell which shard currently owns a singleton.
|
|
816
|
+
* The shard id is derived from the singleton name and shard group at
|
|
817
|
+
* registration time, so changing either value changes ownership and routing.
|
|
818
|
+
* Ownership can also move as shard locks are acquired or released, so an address
|
|
819
|
+
* identifies the target shard rather than guaranteeing that a particular runner
|
|
820
|
+
* is currently executing the singleton.
|
|
821
|
+
*
|
|
133
822
|
* @since 4.0.0
|
|
134
823
|
*/
|
|
135
824
|
export * as SingletonAddress from "./SingletonAddress.ts";
|
|
136
825
|
/**
|
|
826
|
+
* The `Snowflake` module provides compact, sortable identifiers for cluster
|
|
827
|
+
* resources and events. A snowflake id is a branded `bigint` made from a
|
|
828
|
+
* millisecond timestamp, a machine id, and a per-machine sequence number.
|
|
829
|
+
*
|
|
830
|
+
* **Common use cases**
|
|
831
|
+
*
|
|
832
|
+
* - Creating ids without coordinating through a central database
|
|
833
|
+
* - Ordering cluster events, entity ids, or log records by generation time
|
|
834
|
+
* - Encoding ids as strings at service boundaries with {@link SnowflakeFromString}
|
|
835
|
+
* - Decoding a generated id into timestamp, machine id, and sequence parts with {@link toParts}
|
|
836
|
+
*
|
|
837
|
+
* **Gotchas**
|
|
838
|
+
*
|
|
839
|
+
* - Uniqueness depends on each concurrent generator using a distinct machine id
|
|
840
|
+
* - Generated ids are time-sortable, but they are not random or secret values
|
|
841
|
+
* - The default generator prevents local clock drift from moving ids backward
|
|
842
|
+
* - More than 4096 ids in the same millisecond advance the logical timestamp
|
|
843
|
+
*
|
|
137
844
|
* @since 4.0.0
|
|
138
845
|
*/
|
|
139
846
|
export * as Snowflake from "./Snowflake.ts";
|
|
140
847
|
/**
|
|
848
|
+
* The `SocketRunner` module wires cluster runner RPCs to socket transports. It
|
|
849
|
+
* provides a complete runner layer that serves RPC handlers on a `SocketServer`
|
|
850
|
+
* and installs `Sharding` and `Runners` clients for talking to other runners
|
|
851
|
+
* through the socket RPC protocol.
|
|
852
|
+
*
|
|
853
|
+
* **Common tasks**
|
|
854
|
+
*
|
|
855
|
+
* - Run a cluster worker over TCP or Unix sockets with {@link layer}
|
|
856
|
+
* - Connect to other runners while exposing `Sharding` and `Runners` clients
|
|
857
|
+
* - Embed a client-only cluster participant with {@link layerClientOnly} when
|
|
858
|
+
* the process should send messages but not receive shard assignments
|
|
859
|
+
*
|
|
860
|
+
* **Transport gotchas**
|
|
861
|
+
*
|
|
862
|
+
* - The server listen address comes from the provided `SocketServer` and is
|
|
863
|
+
* logged when {@link layer} starts
|
|
864
|
+
* - TCP addresses are logged as `hostname:port`, while Unix socket addresses
|
|
865
|
+
* are logged as their filesystem path
|
|
866
|
+
* - The client-only layer does not start a socket server; provide the full
|
|
867
|
+
* layer when the process must accept runner RPCs
|
|
868
|
+
*
|
|
141
869
|
* @since 4.0.0
|
|
142
870
|
*/
|
|
143
871
|
export * as SocketRunner from "./SocketRunner.ts";
|
|
144
872
|
/**
|
|
873
|
+
* SQL-backed message storage for the unstable cluster runtime.
|
|
874
|
+
*
|
|
875
|
+
* This module persists encoded cluster envelopes and replies in SQL tables so
|
|
876
|
+
* shards can resume work after process restarts, redeliver unprocessed messages,
|
|
877
|
+
* deduplicate requests by primary key, and replay outstanding reply chunks until
|
|
878
|
+
* they are acknowledged. It is the storage implementation to use when a cluster
|
|
879
|
+
* needs durable request / reply state backed by `SqlClient` rather than an
|
|
880
|
+
* in-memory store.
|
|
881
|
+
*
|
|
882
|
+
* The storage layer runs its own migrations and creates messages, replies, and
|
|
883
|
+
* migration tables using the configured prefix (`cluster` by default). Choose a
|
|
884
|
+
* stable prefix before deploying, because changing it points the runtime at a
|
|
885
|
+
* different set of tables. Existing deployments should also keep the generated
|
|
886
|
+
* migration history table with the message tables so future schema changes can
|
|
887
|
+
* be applied consistently across supported SQL dialects.
|
|
888
|
+
*
|
|
145
889
|
* @since 4.0.0
|
|
146
890
|
*/
|
|
147
891
|
export * as SqlMessageStorage from "./SqlMessageStorage.ts";
|
|
148
892
|
/**
|
|
893
|
+
* SQL-backed storage for Effect Cluster runner metadata and shard ownership.
|
|
894
|
+
*
|
|
895
|
+
* The `SqlRunnerStorage` module builds a `RunnerStorage` implementation from a
|
|
896
|
+
* `SqlClient`, creating the runner and lock tables it needs using the configured
|
|
897
|
+
* table prefix. It is used by clustered applications that need runner
|
|
898
|
+
* registration, health tracking, shard acquisition, refresh, and release to be
|
|
899
|
+
* coordinated through an external database instead of in-memory state.
|
|
900
|
+
*
|
|
901
|
+
* **Common tasks**
|
|
902
|
+
*
|
|
903
|
+
* - Provide the default storage layer with {@link layer}
|
|
904
|
+
* - Use {@link layerWith} when multiple clusters share the same database and
|
|
905
|
+
* need distinct table prefixes
|
|
906
|
+
* - Create a storage implementation directly with {@link make} for custom layer
|
|
907
|
+
* composition
|
|
908
|
+
*
|
|
909
|
+
* **Gotchas**
|
|
910
|
+
*
|
|
911
|
+
* - Runner heartbeats and persisted shard locks expire according to
|
|
912
|
+
* `ShardingConfig.shardLockExpiration`; stale rows may be reused or cleaned up
|
|
913
|
+
* by later storage operations.
|
|
914
|
+
* - PostgreSQL and MySQL use advisory locks by default, keeping shard ownership
|
|
915
|
+
* tied to a reserved database connection. Set
|
|
916
|
+
* `ShardingConfig.shardLockDisableAdvisory` when persisted lock rows should be
|
|
917
|
+
* used instead.
|
|
918
|
+
* - The selected table prefix controls the generated `runners` and `locks`
|
|
919
|
+
* table names, so changing it points the cluster at a different storage
|
|
920
|
+
* namespace.
|
|
921
|
+
*
|
|
149
922
|
* @since 4.0.0
|
|
150
923
|
*/
|
|
151
924
|
export * as SqlRunnerStorage from "./SqlRunnerStorage.ts";
|
|
152
925
|
/**
|
|
926
|
+
* The `TestRunner` module provides a lightweight in-memory cluster layer for
|
|
927
|
+
* tests that need the cluster sharding services without starting real runners
|
|
928
|
+
* or relying on external storage.
|
|
929
|
+
*
|
|
930
|
+
* Use it when exercising sharding behavior, message storage, or code that
|
|
931
|
+
* depends on the cluster runner services in unit and integration tests. The
|
|
932
|
+
* layer wires the normal sharding service to in-memory message and runner
|
|
933
|
+
* storage, along with no-op runner and health implementations.
|
|
934
|
+
*
|
|
935
|
+
* **Testing gotchas**
|
|
936
|
+
*
|
|
937
|
+
* - State is held in memory and scoped to the layer lifetime; it is not shared
|
|
938
|
+
* across independently constructed layers or persisted between test runs
|
|
939
|
+
* - Runner execution and health checks are no-ops, so this layer is best suited
|
|
940
|
+
* for testing coordination and storage behavior rather than real distributed
|
|
941
|
+
* runner processes
|
|
942
|
+
*
|
|
153
943
|
* @since 4.0.0
|
|
154
944
|
*/
|
|
155
945
|
export * as TestRunner from "./TestRunner.ts";
|