effect 4.0.0-beta.2 → 4.0.0-beta.21
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 +127 -299
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +102 -62
- package/dist/Array.js.map +1 -1
- package/dist/Cache.d.ts +2 -2
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +6 -5
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +1 -1
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Channel.d.ts +116 -30
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +82 -37
- package/dist/Channel.js.map +1 -1
- package/dist/Chunk.d.ts +54 -247
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +36 -67
- package/dist/Chunk.js.map +1 -1
- package/dist/Combiner.d.ts +280 -13
- package/dist/Combiner.d.ts.map +1 -1
- package/dist/Combiner.js +198 -7
- package/dist/Combiner.js.map +1 -1
- package/dist/Config.d.ts +165 -9
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +62 -7
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +1 -1
- package/dist/Cron.d.ts +1 -1
- package/dist/Data.d.ts +534 -365
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +132 -79
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +23 -161
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +6 -51
- package/dist/DateTime.js.map +1 -1
- package/dist/Duration.d.ts +12 -12
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +12 -12
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +829 -692
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +263 -251
- package/dist/Effect.js.map +1 -1
- package/dist/Encoding.d.ts +194 -0
- package/dist/Encoding.d.ts.map +1 -0
- package/dist/Encoding.js +352 -0
- package/dist/Encoding.js.map +1 -0
- package/dist/Equal.d.ts +276 -109
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +124 -48
- package/dist/Equal.js.map +1 -1
- package/dist/ErrorReporter.d.ts +376 -0
- package/dist/ErrorReporter.d.ts.map +1 -0
- package/dist/ErrorReporter.js +246 -0
- package/dist/ErrorReporter.js.map +1 -0
- package/dist/Fiber.d.ts +2 -2
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js.map +1 -1
- package/dist/FileSystem.d.ts +1 -1
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +5 -5
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts +30 -34
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +15 -13
- package/dist/Filter.js.map +1 -1
- package/dist/Formatter.d.ts +131 -47
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +229 -51
- package/dist/Formatter.js.map +1 -1
- package/dist/Graph.d.ts +1 -1
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +5 -8
- package/dist/Graph.js.map +1 -1
- package/dist/HashMap.d.ts +15 -14
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +4 -4
- package/dist/HashMap.js.map +1 -1
- package/dist/Iterable.d.ts +40 -39
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +94 -22
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonSchema.d.ts +299 -10
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +323 -4
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Latch.d.ts +109 -0
- package/dist/Latch.d.ts.map +1 -0
- package/dist/Latch.js +72 -0
- package/dist/Latch.js.map +1 -0
- package/dist/Layer.d.ts +9 -9
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts +4 -4
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LogLevel.d.ts +32 -0
- package/dist/LogLevel.d.ts.map +1 -1
- package/dist/LogLevel.js +28 -100
- package/dist/LogLevel.js.map +1 -1
- package/dist/Logger.d.ts +29 -95
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +2 -3
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +1 -1
- package/dist/ManagedRuntime.js +1 -1
- package/dist/Metric.d.ts +2 -2
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +1 -1
- package/dist/Metric.js.map +1 -1
- package/dist/Optic.d.ts +947 -18
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +454 -5
- package/dist/Optic.js.map +1 -1
- package/dist/Option.d.ts +22 -15
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +14 -7
- package/dist/Option.js.map +1 -1
- package/dist/Pipeable.d.ts +17 -0
- package/dist/Pipeable.d.ts.map +1 -1
- package/dist/Pipeable.js +19 -1
- package/dist/Pipeable.js.map +1 -1
- package/dist/PlatformError.d.ts +10 -9
- package/dist/PlatformError.d.ts.map +1 -1
- package/dist/PlatformError.js +2 -2
- package/dist/PlatformError.js.map +1 -1
- package/dist/Pool.d.ts +6 -4
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +7 -5
- package/dist/Pool.js.map +1 -1
- package/dist/PubSub.d.ts +3 -2
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +3 -2
- package/dist/PubSub.js.map +1 -1
- package/dist/Pull.d.ts.map +1 -1
- package/dist/Pull.js +1 -1
- package/dist/Pull.js.map +1 -1
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +0 -1
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts +35 -1
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +46 -12
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +2 -2
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +1 -1
- package/dist/RcMap.js.map +1 -1
- package/dist/RcRef.d.ts +1 -1
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/Record.d.ts +24 -120
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +21 -41
- package/dist/Record.js.map +1 -1
- package/dist/Reducer.d.ts +166 -7
- package/dist/Reducer.d.ts.map +1 -1
- package/dist/Reducer.js +135 -1
- package/dist/Reducer.js.map +1 -1
- package/dist/References.d.ts +3 -3
- package/dist/References.d.ts.map +1 -1
- package/dist/Request.d.ts +1 -1
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js +2 -1
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +6 -26
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +0 -20
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Result.d.ts +12 -0
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +12 -0
- package/dist/Result.js.map +1 -1
- package/dist/Schedule.d.ts +47 -20
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +94 -34
- package/dist/Schedule.js.map +1 -1
- package/dist/Schema.d.ts +266 -50
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +426 -74
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +7 -6
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +2 -2
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +12 -14
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaParser.d.ts +5 -0
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +10 -0
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +44 -43
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +43 -24
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +107 -3
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +159 -4
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/ScopedCache.d.ts +2 -2
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +1 -1
- package/dist/ScopedCache.js.map +1 -1
- package/dist/Semaphore.d.ts +211 -0
- package/dist/Semaphore.d.ts.map +1 -0
- package/dist/{PartitionedSemaphore.js → Semaphore.js} +97 -13
- package/dist/Semaphore.js.map +1 -0
- package/dist/ServiceMap.d.ts +39 -30
- package/dist/ServiceMap.d.ts.map +1 -1
- package/dist/ServiceMap.js +3 -3
- package/dist/ServiceMap.js.map +1 -1
- package/dist/Sink.d.ts +13 -13
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +53 -6
- package/dist/Sink.js.map +1 -1
- package/dist/Stream.d.ts +235 -423
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +124 -77
- package/dist/Stream.js.map +1 -1
- package/dist/Struct.d.ts +16 -0
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +22 -0
- package/dist/Struct.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +2 -1
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +2 -1
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/SynchronizedRef.d.ts +2 -1
- package/dist/SynchronizedRef.d.ts.map +1 -1
- package/dist/SynchronizedRef.js +2 -1
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Trie.d.ts +18 -17
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +5 -5
- package/dist/Trie.js.map +1 -1
- package/dist/TxChunk.d.ts +37 -37
- package/dist/TxChunk.d.ts.map +1 -1
- package/dist/TxChunk.js +3 -3
- package/dist/TxChunk.js.map +1 -1
- package/dist/TxDeferred.d.ts +328 -0
- package/dist/TxDeferred.d.ts.map +1 -0
- package/dist/TxDeferred.js +196 -0
- package/dist/TxDeferred.js.map +1 -0
- package/dist/TxHashMap.d.ts +84 -83
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js +24 -24
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts +35 -35
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js +14 -14
- package/dist/TxHashSet.js.map +1 -1
- package/dist/TxPriorityQueue.d.ts +609 -0
- package/dist/TxPriorityQueue.d.ts.map +1 -0
- package/dist/TxPriorityQueue.js +415 -0
- package/dist/TxPriorityQueue.js.map +1 -0
- package/dist/TxPubSub.d.ts +585 -0
- package/dist/TxPubSub.d.ts.map +1 -0
- package/dist/TxPubSub.js +521 -0
- package/dist/TxPubSub.js.map +1 -0
- package/dist/TxQueue.d.ts +32 -32
- package/dist/TxQueue.d.ts.map +1 -1
- package/dist/TxQueue.js +26 -26
- package/dist/TxQueue.js.map +1 -1
- package/dist/TxReentrantLock.d.ts +523 -0
- package/dist/TxReentrantLock.d.ts.map +1 -0
- package/dist/TxReentrantLock.js +504 -0
- package/dist/TxReentrantLock.js.map +1 -0
- package/dist/TxRef.d.ts +34 -34
- package/dist/TxRef.d.ts.map +1 -1
- package/dist/TxRef.js +21 -14
- package/dist/TxRef.js.map +1 -1
- package/dist/TxSemaphore.d.ts +8 -8
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +7 -7
- package/dist/TxSemaphore.js.map +1 -1
- package/dist/TxSubscriptionRef.d.ts +508 -0
- package/dist/TxSubscriptionRef.d.ts.map +1 -0
- package/dist/TxSubscriptionRef.js +293 -0
- package/dist/TxSubscriptionRef.js.map +1 -0
- package/dist/Types.d.ts +84 -6
- package/dist/Types.d.ts.map +1 -1
- package/dist/index.d.ts +591 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +591 -20
- package/dist/index.js.map +1 -1
- package/dist/internal/core.js +11 -3
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/dateTime.js +3 -11
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/effect.js +263 -99
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/hashMap.js +5 -4
- package/dist/internal/hashMap.js.map +1 -1
- package/dist/internal/random.d.ts +2 -0
- package/dist/internal/random.d.ts.map +1 -0
- package/dist/internal/random.js +13 -0
- package/dist/internal/random.js.map +1 -0
- package/dist/internal/rcRef.js +3 -2
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/internal/request.js +2 -2
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/schema/annotations.js +2 -0
- package/dist/internal/schema/annotations.js.map +1 -1
- package/dist/internal/schema/schema.js +1 -0
- package/dist/internal/schema/schema.js.map +1 -1
- package/dist/internal/trie.js +5 -4
- package/dist/internal/trie.js.map +1 -1
- package/dist/testing/TestClock.d.ts +7 -6
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +6 -4
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +8 -8
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +128 -48
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +11 -12
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +3 -3
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +4 -3
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +4 -2
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +86 -14
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +163 -87
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +49 -12
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +1 -1
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +35 -7
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Model.d.ts +25 -7
- package/dist/unstable/ai/Model.d.ts.map +1 -1
- package/dist/unstable/ai/Model.js +22 -6
- package/dist/unstable/ai/Model.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +20 -20
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Response.d.ts +26 -26
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +1 -1
- package/dist/unstable/ai/Response.js.map +1 -1
- package/dist/unstable/ai/Tool.d.ts +19 -3
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +14 -9
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/ai/index.d.ts +1 -1
- package/dist/unstable/ai/index.js +1 -1
- package/dist/unstable/cli/CliError.d.ts +5 -5
- package/dist/unstable/cli/CliOutput.js +59 -6
- package/dist/unstable/cli/CliOutput.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +276 -19
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +234 -36
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/GlobalFlag.d.ts +125 -0
- package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -0
- package/dist/unstable/cli/GlobalFlag.js +118 -0
- package/dist/unstable/cli/GlobalFlag.js.map +1 -0
- package/dist/unstable/cli/HelpDoc.d.ts +70 -2
- package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
- package/dist/unstable/cli/index.d.ts +4 -0
- package/dist/unstable/cli/index.d.ts.map +1 -1
- package/dist/unstable/cli/index.js +4 -0
- package/dist/unstable/cli/index.js.map +1 -1
- package/dist/unstable/cli/internal/command.d.ts +17 -8
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.js +32 -23
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/completions/CommandDescriptor.js +7 -2
- package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +1 -1
- package/dist/unstable/cli/internal/help.d.ts +33 -0
- package/dist/unstable/cli/internal/help.d.ts.map +1 -0
- package/dist/unstable/cli/internal/help.js +107 -0
- package/dist/unstable/cli/internal/help.js.map +1 -0
- package/dist/unstable/cli/internal/parser.js +29 -36
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js +1 -1
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +4 -3
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +7 -6
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/EntityResource.d.ts +2 -2
- package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
- package/dist/unstable/cluster/Envelope.d.ts +1 -1
- package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js +4 -4
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/Message.d.ts +10 -10
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +2 -1
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +6 -6
- package/dist/unstable/cluster/Runner.d.ts +1 -1
- package/dist/unstable/cluster/Runners.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.js +4 -3
- package/dist/unstable/cluster/Runners.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts +2 -2
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +9 -7
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +21 -21
- package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.js +20 -20
- package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +5 -4
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/cluster/internal/entityReaper.js +2 -1
- package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceRef.js +2 -1
- package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.d.ts +36 -36
- package/dist/unstable/encoding/Msgpack.d.ts +1 -1
- package/dist/unstable/encoding/Ndjson.d.ts +1 -1
- package/dist/unstable/encoding/Sse.d.ts +4 -4
- package/dist/unstable/encoding/Sse.d.ts.map +1 -1
- package/dist/unstable/encoding/Sse.js +1 -1
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +2 -1
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
- package/dist/unstable/http/Cookies.d.ts +3 -3
- package/dist/unstable/http/Cookies.d.ts.map +1 -1
- package/dist/unstable/http/Cookies.js +2 -2
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/Headers.d.ts.map +1 -1
- package/dist/unstable/http/Headers.js +27 -10
- package/dist/unstable/http/Headers.js.map +1 -1
- package/dist/unstable/http/HttpBody.d.ts +17 -2
- package/dist/unstable/http/HttpBody.d.ts.map +1 -1
- package/dist/unstable/http/HttpBody.js +28 -1
- package/dist/unstable/http/HttpBody.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +37 -13
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +4 -4
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientError.d.ts +7 -7
- package/dist/unstable/http/HttpClientRequest.d.ts +27 -11
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +15 -3
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts +3 -8
- package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
- package/dist/unstable/http/HttpEffect.js +42 -56
- package/dist/unstable/http/HttpEffect.js.map +1 -1
- package/dist/unstable/http/HttpMethod.d.ts +4 -4
- package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
- package/dist/unstable/http/HttpMethod.js +3 -3
- package/dist/unstable/http/HttpMethod.js.map +1 -1
- package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
- package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/unstable/http/HttpMiddleware.js +8 -17
- package/dist/unstable/http/HttpMiddleware.js.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +20 -33
- package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerError.js +37 -44
- package/dist/unstable/http/HttpServerError.js.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
- package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.js +5 -5
- package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts +2 -1
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +3 -1
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +3 -3
- package/dist/unstable/http/UrlParams.d.ts +14 -6
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +1 -1
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/http/internal/preResponseHandler.d.ts +2 -0
- package/dist/unstable/http/internal/preResponseHandler.d.ts.map +1 -0
- package/dist/unstable/http/internal/preResponseHandler.js +10 -0
- package/dist/unstable/http/internal/preResponseHandler.js.map +1 -0
- package/dist/unstable/httpapi/HttpApi.d.ts +3 -3
- package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts +11 -5
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +23 -12
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts +7 -2
- package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +3 -3
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +31 -44
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.js +15 -24
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +11 -0
- package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.js +29 -9
- package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.d.ts +3 -3
- package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +4 -4
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
- package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts +2 -2
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +32 -21
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/observability/Otlp.d.ts +12 -12
- package/dist/unstable/observability/Otlp.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +1 -1
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
- package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpLogger.js +7 -4
- package/dist/unstable/observability/OtlpLogger.js.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
- package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
- package/dist/unstable/persistence/KeyValueStore.js +6 -6
- package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
- package/dist/unstable/persistence/Persistable.d.ts +2 -2
- package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
- package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedCache.js +2 -1
- package/dist/unstable/persistence/PersistedCache.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
- package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.js +12 -11
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/Persistence.d.ts +1 -1
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +2 -2
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +1 -1
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/process/ChildProcess.d.ts +5 -128
- package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcess.js +1 -65
- package/dist/unstable/process/ChildProcess.js.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts +45 -7
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js +21 -1
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +10 -10
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +16 -13
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +8 -8
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +3 -3
- package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.d.ts +6 -0
- package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +24 -7
- package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +1 -1
- package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
- package/dist/unstable/reactivity/Hydration.d.ts +39 -0
- package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
- package/dist/unstable/reactivity/Hydration.js +76 -0
- package/dist/unstable/reactivity/Hydration.js.map +1 -0
- package/dist/unstable/reactivity/index.d.ts +4 -0
- package/dist/unstable/reactivity/index.d.ts.map +1 -1
- package/dist/unstable/reactivity/index.js +4 -0
- package/dist/unstable/reactivity/index.js.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts +4 -4
- 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 +5 -26
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +6 -13
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcGroup.d.ts +2 -2
- package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcGroup.js.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.d.ts +3 -3
- package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
- package/dist/unstable/rpc/RpcSchema.d.ts +13 -0
- package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSchema.js +14 -0
- package/dist/unstable/rpc/RpcSchema.js.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.js +34 -9
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts +0 -7
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +15 -15
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/rpc/Utils.d.ts.map +1 -1
- package/dist/unstable/rpc/Utils.js +2 -1
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/schema/Model.d.ts +1 -1
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +3 -3
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.js +3 -3
- package/dist/unstable/schema/VariantSchema.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +4 -4
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +6 -5
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/socket/SocketServer.d.ts +3 -3
- package/dist/unstable/sql/Migrator.d.ts +1 -1
- package/dist/unstable/sql/SqlClient.d.ts +1 -1
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlError.d.ts +14 -14
- package/dist/unstable/sql/SqlError.d.ts.map +1 -1
- package/dist/unstable/sql/SqlError.js +9 -3
- package/dist/unstable/sql/SqlError.js.map +1 -1
- package/dist/unstable/sql/SqlModel.d.ts +2 -2
- package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
- package/dist/unstable/sql/SqlModel.js +3 -3
- package/dist/unstable/sql/SqlModel.js.map +1 -1
- package/dist/unstable/sql/SqlSchema.d.ts +16 -5
- package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
- package/dist/unstable/sql/SqlSchema.js +17 -7
- package/dist/unstable/sql/SqlSchema.js.map +1 -1
- package/dist/unstable/sql/Statement.js +0 -1
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts.map +1 -1
- package/dist/unstable/workers/Worker.js +2 -1
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts +3 -3
- package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableClock.js +3 -3
- package/dist/unstable/workflow/DurableClock.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js +2 -2
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +3 -3
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +1 -1
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +12 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +137 -1
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +2 -2
- package/src/Array.ts +190 -342
- package/src/Cache.ts +9 -8
- package/src/Cause.ts +1 -1
- package/src/Channel.ts +554 -138
- package/src/Chunk.ts +81 -268
- package/src/Combiner.ts +280 -13
- package/src/Config.ts +183 -21
- package/src/Data.ts +538 -374
- package/src/DateTime.ts +24 -164
- package/src/Duration.ts +15 -15
- package/src/Effect.ts +991 -800
- package/src/Encoding.ts +879 -0
- package/src/Equal.ts +278 -111
- package/src/ErrorReporter.ts +459 -0
- package/src/Fiber.ts +9 -2
- package/src/FileSystem.ts +7 -8
- package/src/Filter.ts +48 -58
- package/src/Formatter.ts +253 -51
- package/src/Graph.ts +24 -11
- package/src/HashMap.ts +15 -14
- package/src/Iterable.ts +105 -50
- package/src/JsonSchema.ts +383 -10
- package/src/Latch.ts +112 -0
- package/src/Layer.ts +11 -15
- package/src/LayerMap.ts +5 -5
- package/src/LogLevel.ts +37 -0
- package/src/Logger.ts +33 -100
- package/src/ManagedRuntime.ts +1 -1
- package/src/Metric.ts +4 -4
- package/src/Optic.ts +948 -19
- package/src/Option.ts +30 -20
- package/src/Pipeable.ts +32 -1
- package/src/PlatformError.ts +5 -5
- package/src/Pool.ts +13 -11
- package/src/PubSub.ts +10 -9
- package/src/Pull.ts +1 -1
- package/src/Queue.ts +0 -1
- package/src/Random.ts +51 -14
- package/src/RcMap.ts +5 -5
- package/src/RcRef.ts +1 -1
- package/src/Record.ts +43 -152
- package/src/Reducer.ts +166 -7
- package/src/References.ts +4 -4
- package/src/Request.ts +3 -2
- package/src/RequestResolver.ts +9 -29
- package/src/Result.ts +13 -0
- package/src/Schedule.ts +318 -160
- package/src/Schema.ts +661 -116
- package/src/SchemaAST.ts +7 -6
- package/src/SchemaGetter.ts +12 -14
- package/src/SchemaParser.ts +11 -0
- package/src/SchemaRepresentation.ts +43 -24
- package/src/SchemaTransformation.ts +189 -4
- package/src/ScopedCache.ts +3 -3
- package/src/Semaphore.ts +356 -0
- package/src/ServiceMap.ts +47 -38
- package/src/Sink.ts +78 -26
- package/src/Stream.ts +566 -601
- package/src/Struct.ts +26 -0
- package/src/SubscriptionRef.ts +3 -2
- package/src/SynchronizedRef.ts +3 -2
- package/src/Trie.ts +18 -17
- package/src/TxChunk.ts +72 -53
- package/src/TxDeferred.ts +394 -0
- package/src/TxHashMap.ts +332 -285
- package/src/TxHashSet.ts +111 -116
- package/src/TxPriorityQueue.ts +767 -0
- package/src/TxPubSub.ts +789 -0
- package/src/TxQueue.ts +241 -251
- package/src/TxReentrantLock.ts +753 -0
- package/src/TxRef.ts +50 -38
- package/src/TxSemaphore.ts +29 -32
- package/src/TxSubscriptionRef.ts +639 -0
- package/src/Types.ts +78 -2
- package/src/index.ts +600 -21
- package/src/internal/core.ts +12 -5
- package/src/internal/dateTime.ts +9 -30
- package/src/internal/effect.ts +744 -265
- package/src/internal/hashMap.ts +9 -7
- package/src/internal/random.ts +20 -0
- package/src/internal/rcRef.ts +4 -3
- package/src/internal/request.ts +2 -2
- package/src/internal/schema/annotations.ts +2 -0
- package/src/internal/schema/schema.ts +1 -0
- package/src/internal/trie.ts +16 -9
- package/src/testing/TestClock.ts +13 -11
- package/src/testing/TestSchema.ts +10 -10
- package/src/unstable/ai/AiError.ts +97 -44
- package/src/unstable/ai/Chat.ts +12 -11
- package/src/unstable/ai/LanguageModel.ts +129 -25
- package/src/unstable/ai/McpSchema.ts +59 -13
- package/src/unstable/ai/McpServer.ts +48 -9
- package/src/unstable/ai/Model.ts +40 -9
- package/src/unstable/ai/Prompt.ts +37 -37
- package/src/unstable/ai/Response.ts +25 -25
- package/src/unstable/ai/Tool.ts +19 -13
- package/src/unstable/ai/index.ts +1 -1
- package/src/unstable/cli/CliOutput.ts +75 -6
- package/src/unstable/cli/Command.ts +501 -60
- package/src/unstable/cli/GlobalFlag.ts +243 -0
- package/src/unstable/cli/HelpDoc.ts +80 -2
- package/src/unstable/cli/index.ts +5 -0
- package/src/unstable/cli/internal/command.ts +50 -34
- package/src/unstable/cli/internal/completions/CommandDescriptor.ts +7 -2
- package/src/unstable/cli/internal/help.ts +146 -0
- package/src/unstable/cli/internal/parser.ts +33 -54
- package/src/unstable/cluster/ClusterCron.ts +2 -2
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +5 -4
- package/src/unstable/cluster/Entity.ts +11 -10
- package/src/unstable/cluster/EntityResource.ts +4 -4
- package/src/unstable/cluster/Envelope.ts +1 -1
- package/src/unstable/cluster/K8sHttpClient.ts +5 -5
- package/src/unstable/cluster/MessageStorage.ts +3 -5
- package/src/unstable/cluster/Runners.ts +6 -5
- package/src/unstable/cluster/Sharding.ts +12 -10
- package/src/unstable/cluster/ShardingConfig.ts +30 -31
- package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
- package/src/unstable/cluster/internal/entityManager.ts +9 -8
- package/src/unstable/cluster/internal/entityReaper.ts +2 -1
- package/src/unstable/cluster/internal/resourceRef.ts +2 -1
- package/src/unstable/encoding/Sse.ts +3 -5
- package/src/unstable/eventlog/EventLog.ts +2 -1
- package/src/unstable/http/Cookies.ts +3 -3
- package/src/unstable/http/Headers.ts +28 -13
- package/src/unstable/http/HttpBody.ts +42 -1
- package/src/unstable/http/HttpClient.ts +58 -23
- package/src/unstable/http/HttpClientRequest.ts +38 -13
- package/src/unstable/http/HttpEffect.ts +46 -68
- package/src/unstable/http/HttpMethod.ts +16 -4
- package/src/unstable/http/HttpMiddleware.ts +9 -24
- package/src/unstable/http/HttpServerError.ts +42 -45
- package/src/unstable/http/HttpServerRequest.ts +1 -1
- package/src/unstable/http/HttpServerRespondable.ts +6 -6
- package/src/unstable/http/HttpServerResponse.ts +4 -2
- package/src/unstable/http/Multipart.ts +2 -2
- package/src/unstable/http/UrlParams.ts +20 -5
- package/src/unstable/http/internal/preResponseHandler.ts +15 -0
- package/src/unstable/httpapi/HttpApi.ts +5 -5
- package/src/unstable/httpapi/HttpApiBuilder.ts +77 -21
- package/src/unstable/httpapi/HttpApiClient.ts +14 -6
- package/src/unstable/httpapi/HttpApiEndpoint.ts +67 -83
- package/src/unstable/httpapi/HttpApiError.ts +30 -9
- package/src/unstable/httpapi/HttpApiGroup.ts +6 -6
- package/src/unstable/httpapi/HttpApiMiddleware.ts +4 -4
- package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
- package/src/unstable/httpapi/HttpApiSecurity.ts +3 -3
- package/src/unstable/httpapi/OpenApi.ts +41 -23
- package/src/unstable/observability/Otlp.ts +12 -12
- package/src/unstable/observability/OtlpExporter.ts +3 -3
- package/src/unstable/observability/OtlpLogger.ts +13 -9
- package/src/unstable/observability/OtlpMetrics.ts +4 -4
- package/src/unstable/observability/OtlpTracer.ts +4 -4
- package/src/unstable/persistence/KeyValueStore.ts +6 -6
- package/src/unstable/persistence/Persistable.ts +2 -2
- package/src/unstable/persistence/PersistedCache.ts +20 -9
- package/src/unstable/persistence/PersistedQueue.ts +25 -24
- package/src/unstable/persistence/Persistence.ts +3 -3
- package/src/unstable/persistence/RateLimiter.ts +4 -4
- package/src/unstable/process/ChildProcess.ts +6 -208
- package/src/unstable/process/ChildProcessSpawner.ts +75 -14
- package/src/unstable/reactivity/Atom.ts +27 -25
- package/src/unstable/reactivity/AtomHttpApi.ts +21 -20
- package/src/unstable/reactivity/AtomRegistry.ts +31 -7
- package/src/unstable/reactivity/AtomRpc.ts +3 -3
- package/src/unstable/reactivity/Hydration.ts +112 -0
- package/src/unstable/reactivity/index.ts +5 -0
- package/src/unstable/rpc/Rpc.ts +6 -6
- package/src/unstable/rpc/RpcClient.ts +12 -54
- package/src/unstable/rpc/RpcGroup.ts +4 -4
- package/src/unstable/rpc/RpcMiddleware.ts +3 -3
- package/src/unstable/rpc/RpcSchema.ts +17 -0
- package/src/unstable/rpc/RpcSerialization.ts +44 -9
- package/src/unstable/rpc/RpcServer.ts +21 -30
- package/src/unstable/rpc/Utils.ts +2 -1
- package/src/unstable/schema/VariantSchema.ts +6 -6
- package/src/unstable/socket/Socket.ts +16 -17
- package/src/unstable/sql/SqlClient.ts +1 -1
- package/src/unstable/sql/SqlError.ts +11 -9
- package/src/unstable/sql/SqlModel.ts +5 -5
- package/src/unstable/sql/SqlSchema.ts +41 -25
- package/src/unstable/sql/Statement.ts +0 -1
- package/src/unstable/workers/Worker.ts +2 -1
- package/src/unstable/workflow/DurableClock.ts +8 -8
- package/src/unstable/workflow/DurableDeferred.ts +2 -2
- package/src/unstable/workflow/Workflow.ts +6 -2
- package/src/unstable/workflow/WorkflowEngine.ts +185 -2
- package/dist/PartitionedSemaphore.d.ts +0 -52
- package/dist/PartitionedSemaphore.d.ts.map +0 -1
- package/dist/PartitionedSemaphore.js.map +0 -1
- package/dist/encoding/Base64.d.ts +0 -67
- package/dist/encoding/Base64.d.ts.map +0 -1
- package/dist/encoding/Base64.js +0 -146
- package/dist/encoding/Base64.js.map +0 -1
- package/dist/encoding/Base64Url.d.ts +0 -60
- package/dist/encoding/Base64Url.d.ts.map +0 -1
- package/dist/encoding/Base64Url.js +0 -89
- package/dist/encoding/Base64Url.js.map +0 -1
- package/dist/encoding/EncodingError.d.ts +0 -31
- package/dist/encoding/EncodingError.d.ts.map +0 -1
- package/dist/encoding/EncodingError.js +0 -22
- package/dist/encoding/EncodingError.js.map +0 -1
- package/dist/encoding/Hex.d.ts +0 -61
- package/dist/encoding/Hex.d.ts.map +0 -1
- package/dist/encoding/Hex.js +0 -115
- package/dist/encoding/Hex.js.map +0 -1
- package/dist/encoding/index.d.ts +0 -26
- package/dist/encoding/index.d.ts.map +0 -1
- package/dist/encoding/index.js +0 -27
- package/dist/encoding/index.js.map +0 -1
- package/dist/unstable/cli/internal/builtInFlags.d.ts +0 -7
- package/dist/unstable/cli/internal/builtInFlags.d.ts.map +0 -1
- package/dist/unstable/cli/internal/builtInFlags.js +0 -44
- package/dist/unstable/cli/internal/builtInFlags.js.map +0 -1
- package/src/PartitionedSemaphore.ts +0 -182
- package/src/encoding/Base64.ts +0 -366
- package/src/encoding/Base64Url.ts +0 -104
- package/src/encoding/EncodingError.ts +0 -35
- package/src/encoding/Hex.ts +0 -390
- package/src/encoding/index.ts +0 -31
- package/src/unstable/cli/internal/builtInFlags.ts +0 -78
|
@@ -56,6 +56,8 @@ export interface AtomRegistry {
|
|
|
56
56
|
}) => () => void
|
|
57
57
|
readonly reset: () => void
|
|
58
58
|
readonly dispose: () => void
|
|
59
|
+
onNodeAdded?: ((node: Node<any>) => void) | undefined
|
|
60
|
+
onNodeRemoved?: ((node: Node<any>) => void) | undefined
|
|
59
61
|
}
|
|
60
62
|
|
|
61
63
|
/**
|
|
@@ -65,6 +67,10 @@ export interface AtomRegistry {
|
|
|
65
67
|
export interface Node<A> {
|
|
66
68
|
readonly atom: Atom.Atom<A>
|
|
67
69
|
readonly value: () => A
|
|
70
|
+
parents: Array<Node<any>>
|
|
71
|
+
children: Array<Node<any>>
|
|
72
|
+
listeners: Set<() => void>
|
|
73
|
+
currentState(): "uninitialized" | "stale" | "valid" | "removed"
|
|
68
74
|
}
|
|
69
75
|
|
|
70
76
|
/**
|
|
@@ -290,6 +296,8 @@ class RegistryImpl implements AtomRegistry {
|
|
|
290
296
|
readonly defaultIdleTTL: number | undefined
|
|
291
297
|
readonly scheduler: Scheduler
|
|
292
298
|
readonly schedulerAsync: Scheduler
|
|
299
|
+
onNodeAdded?: ((node: Node<any>) => void) | undefined
|
|
300
|
+
onNodeRemoved?: ((node: Node<any>) => void) | undefined
|
|
293
301
|
|
|
294
302
|
constructor(
|
|
295
303
|
initialValues?: Iterable<readonly [Atom.Atom<any>, any]>,
|
|
@@ -386,6 +394,7 @@ class RegistryImpl implements AtomRegistry {
|
|
|
386
394
|
if (node === undefined) {
|
|
387
395
|
node = this.createNode(atom)
|
|
388
396
|
this.nodes.set(key, node)
|
|
397
|
+
this.onNodeAdded?.(node)
|
|
389
398
|
} else if (this.atomHasTtl(atom)) {
|
|
390
399
|
this.removeNodeTimeout(node)
|
|
391
400
|
}
|
|
@@ -436,6 +445,7 @@ class RegistryImpl implements AtomRegistry {
|
|
|
436
445
|
} else {
|
|
437
446
|
this.nodes.delete(atomKey(node.atom))
|
|
438
447
|
node.remove()
|
|
448
|
+
this.onNodeRemoved?.(node)
|
|
439
449
|
}
|
|
440
450
|
}
|
|
441
451
|
|
|
@@ -450,6 +460,7 @@ class RegistryImpl implements AtomRegistry {
|
|
|
450
460
|
if (idleTTL <= 0) {
|
|
451
461
|
this.nodes.delete(atomKey(node.atom))
|
|
452
462
|
node.remove()
|
|
463
|
+
this.onNodeRemoved?.(node)
|
|
453
464
|
return
|
|
454
465
|
}
|
|
455
466
|
}
|
|
@@ -471,9 +482,7 @@ class RegistryImpl implements AtomRegistry {
|
|
|
471
482
|
|
|
472
483
|
removeNodeTimeout(node: NodeImpl<any>): void {
|
|
473
484
|
const bucket = this.nodeTimeoutBucket.get(node)
|
|
474
|
-
if (bucket === undefined)
|
|
475
|
-
return
|
|
476
|
-
}
|
|
485
|
+
if (bucket === undefined) return
|
|
477
486
|
this.nodeTimeoutBucket.delete(node)
|
|
478
487
|
this.scheduleNodeRemoval(node)
|
|
479
488
|
|
|
@@ -491,11 +500,10 @@ class RegistryImpl implements AtomRegistry {
|
|
|
491
500
|
this.timeoutBuckets.delete(bucket)
|
|
492
501
|
|
|
493
502
|
nodes.forEach((node) => {
|
|
494
|
-
if (!node.canBeRemoved) {
|
|
495
|
-
return
|
|
496
|
-
}
|
|
497
503
|
this.nodeTimeoutBucket.delete(node)
|
|
504
|
+
if (!node.canBeRemoved) return
|
|
498
505
|
this.nodes.delete(atomKey(node.atom))
|
|
506
|
+
this.onNodeRemoved?.(node)
|
|
499
507
|
this.#currentSweepTTL = node.atom.idleTTL ?? this.defaultIdleTTL!
|
|
500
508
|
node.remove()
|
|
501
509
|
this.#currentSweepTTL = null
|
|
@@ -507,7 +515,10 @@ class RegistryImpl implements AtomRegistry {
|
|
|
507
515
|
this.timeoutBuckets.clear()
|
|
508
516
|
this.nodeTimeoutBucket.clear()
|
|
509
517
|
|
|
510
|
-
this.nodes.forEach((node) =>
|
|
518
|
+
this.nodes.forEach((node) => {
|
|
519
|
+
node.remove()
|
|
520
|
+
this.onNodeRemoved?.(node)
|
|
521
|
+
})
|
|
511
522
|
this.nodes.clear()
|
|
512
523
|
}
|
|
513
524
|
|
|
@@ -554,6 +565,19 @@ class NodeImpl<A> {
|
|
|
554
565
|
listeners: Set<() => void> = new Set()
|
|
555
566
|
skipInvalidation = false
|
|
556
567
|
|
|
568
|
+
currentState() {
|
|
569
|
+
switch (this.state) {
|
|
570
|
+
case NodeState.uninitialized:
|
|
571
|
+
return "uninitialized"
|
|
572
|
+
case NodeState.stale:
|
|
573
|
+
return "stale"
|
|
574
|
+
case NodeState.valid:
|
|
575
|
+
return "valid"
|
|
576
|
+
default:
|
|
577
|
+
return "removed"
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
|
|
557
581
|
get canBeRemoved(): boolean {
|
|
558
582
|
return !this.atom.keepAlive && this.listeners.size === 0 && this.children.length === 0 && this.state !== 0
|
|
559
583
|
}
|
|
@@ -71,7 +71,7 @@ export interface AtomRpcClient<Self, Id extends string, Rpcs extends Rpc.Any, E>
|
|
|
71
71
|
| ReadonlyArray<unknown>
|
|
72
72
|
| ReadonlyRecord<string, ReadonlyArray<unknown>>
|
|
73
73
|
| undefined
|
|
74
|
-
readonly timeToLive?: Duration.
|
|
74
|
+
readonly timeToLive?: Duration.Input | undefined
|
|
75
75
|
}
|
|
76
76
|
) => Rpc.ExtractTag<Rpcs, Tag> extends Rpc.Rpc<
|
|
77
77
|
infer _Tag,
|
|
@@ -208,7 +208,7 @@ export const Service = <Self>() =>
|
|
|
208
208
|
| ReadonlyArray<unknown>
|
|
209
209
|
| ReadonlyRecord<string, ReadonlyArray<unknown>>
|
|
210
210
|
| undefined
|
|
211
|
-
readonly timeToLive?: Duration.
|
|
211
|
+
readonly timeToLive?: Duration.Input | undefined
|
|
212
212
|
}
|
|
213
213
|
) =>
|
|
214
214
|
queryFamily({
|
|
@@ -219,7 +219,7 @@ export const Service = <Self>() =>
|
|
|
219
219
|
: undefined,
|
|
220
220
|
reactivityKeys: options?.reactivityKeys,
|
|
221
221
|
timeToLive: options?.timeToLive
|
|
222
|
-
? Duration.
|
|
222
|
+
? Duration.fromInputUnsafe(options.timeToLive)
|
|
223
223
|
: undefined
|
|
224
224
|
}) as any
|
|
225
225
|
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 4.0.0
|
|
3
|
+
*/
|
|
4
|
+
import * as AsyncResult from "./AsyncResult.ts"
|
|
5
|
+
import * as Atom from "./Atom.ts"
|
|
6
|
+
import type * as AtomRegistry from "./AtomRegistry.ts"
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @since 4.0.0
|
|
10
|
+
* @category models
|
|
11
|
+
*/
|
|
12
|
+
export interface DehydratedAtom {
|
|
13
|
+
readonly "~effect/reactivity/DehydratedAtom": true
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @since 4.0.0
|
|
18
|
+
* @category models
|
|
19
|
+
*/
|
|
20
|
+
export interface DehydratedAtomValue extends DehydratedAtom {
|
|
21
|
+
readonly key: string
|
|
22
|
+
readonly value: unknown
|
|
23
|
+
readonly dehydratedAt: number
|
|
24
|
+
readonly resultPromise?: Promise<unknown> | undefined
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @since 4.0.0
|
|
29
|
+
* @category dehydration
|
|
30
|
+
*/
|
|
31
|
+
export const dehydrate = (
|
|
32
|
+
registry: AtomRegistry.AtomRegistry,
|
|
33
|
+
options?: {
|
|
34
|
+
/**
|
|
35
|
+
* How to encode `AsyncResult.Initial` values. Default is "ignore".
|
|
36
|
+
*/
|
|
37
|
+
readonly encodeInitialAs?: "ignore" | "promise" | "value-only" | undefined
|
|
38
|
+
}
|
|
39
|
+
): Array<DehydratedAtom> => {
|
|
40
|
+
const encodeInitialResultMode = options?.encodeInitialAs ?? "ignore"
|
|
41
|
+
const arr: Array<DehydratedAtomValue> = []
|
|
42
|
+
const now = Date.now()
|
|
43
|
+
registry.getNodes().forEach((node, key) => {
|
|
44
|
+
if (!Atom.isSerializable(node.atom)) return
|
|
45
|
+
const atom = node.atom
|
|
46
|
+
const value = node.value()
|
|
47
|
+
const isInitial = AsyncResult.isAsyncResult(value) && AsyncResult.isInitial(value)
|
|
48
|
+
if (encodeInitialResultMode === "ignore" && isInitial) return
|
|
49
|
+
const encodedValue = atom[Atom.SerializableTypeId].encode(value)
|
|
50
|
+
|
|
51
|
+
// Create a promise that resolves when the atom moves out of Initial state
|
|
52
|
+
let resultPromise: Promise<unknown> | undefined
|
|
53
|
+
if (encodeInitialResultMode === "promise" && isInitial) {
|
|
54
|
+
resultPromise = new Promise((resolve) => {
|
|
55
|
+
const unsubscribe = registry.subscribe(atom, (newValue) => {
|
|
56
|
+
if (AsyncResult.isAsyncResult(newValue) && !AsyncResult.isInitial(newValue)) {
|
|
57
|
+
resolve(atom[Atom.SerializableTypeId].encode(newValue))
|
|
58
|
+
unsubscribe()
|
|
59
|
+
}
|
|
60
|
+
})
|
|
61
|
+
})
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
arr.push({
|
|
65
|
+
"~effect/reactivity/DehydratedAtom": true,
|
|
66
|
+
key: key as string,
|
|
67
|
+
value: encodedValue,
|
|
68
|
+
dehydratedAt: now,
|
|
69
|
+
resultPromise
|
|
70
|
+
})
|
|
71
|
+
})
|
|
72
|
+
return arr as any
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* @since 4.0.0
|
|
77
|
+
* @category dehydration
|
|
78
|
+
*/
|
|
79
|
+
export const toValues = (state: ReadonlyArray<DehydratedAtom>): Array<DehydratedAtomValue> => state as any
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* @since 4.0.0
|
|
83
|
+
* @category hydration
|
|
84
|
+
*/
|
|
85
|
+
export const hydrate = (
|
|
86
|
+
registry: AtomRegistry.AtomRegistry,
|
|
87
|
+
dehydratedState: Iterable<DehydratedAtom>
|
|
88
|
+
): void => {
|
|
89
|
+
for (const datom of (dehydratedState as Iterable<DehydratedAtomValue>)) {
|
|
90
|
+
registry.setSerializable(datom.key, datom.value)
|
|
91
|
+
|
|
92
|
+
// If there's a resultPromise, it means this was in Initial state when dehydrated
|
|
93
|
+
// and we should wait for it to resolve to a non-Initial state, then update the registry
|
|
94
|
+
if (!datom.resultPromise) continue
|
|
95
|
+
datom.resultPromise.then((resolvedValue) => {
|
|
96
|
+
// Try to update the existing node directly instead of using setSerializable
|
|
97
|
+
const nodes = registry.getNodes()
|
|
98
|
+
const node = nodes.get(datom.key)
|
|
99
|
+
if (node) {
|
|
100
|
+
// Decode the resolved value using the node's atom serializable decoder
|
|
101
|
+
const atom = node.atom as any
|
|
102
|
+
if (atom[Atom.SerializableTypeId]) {
|
|
103
|
+
const decoded = atom[Atom.SerializableTypeId].decode(resolvedValue)
|
|
104
|
+
;(node as any).setValue(decoded)
|
|
105
|
+
}
|
|
106
|
+
} else {
|
|
107
|
+
// Fallback to setSerializable if node doesn't exist yet
|
|
108
|
+
registry.setSerializable(datom.key, resolvedValue)
|
|
109
|
+
}
|
|
110
|
+
})
|
|
111
|
+
}
|
|
112
|
+
}
|
package/src/unstable/rpc/Rpc.ts
CHANGED
|
@@ -61,7 +61,7 @@ export interface Rpc<
|
|
|
61
61
|
readonly payloadSchema: Payload
|
|
62
62
|
readonly successSchema: Success
|
|
63
63
|
readonly errorSchema: Error
|
|
64
|
-
readonly defectSchema:
|
|
64
|
+
readonly defectSchema: Schema.Top
|
|
65
65
|
readonly annotations: ServiceMap.ServiceMap<never>
|
|
66
66
|
readonly middlewares: ReadonlySet<Middleware>
|
|
67
67
|
readonly "~requires": Requires
|
|
@@ -132,7 +132,7 @@ export interface Rpc<
|
|
|
132
132
|
* Add an annotation on the rpc.
|
|
133
133
|
*/
|
|
134
134
|
annotate<I, S>(
|
|
135
|
-
tag: ServiceMap.
|
|
135
|
+
tag: ServiceMap.Key<I, S>,
|
|
136
136
|
value: S
|
|
137
137
|
): Rpc<Tag, Payload, Success, Error, Middleware, Requires>
|
|
138
138
|
|
|
@@ -183,7 +183,7 @@ export interface AnyWithProps extends Pipeable {
|
|
|
183
183
|
readonly payloadSchema: Schema.Top
|
|
184
184
|
readonly successSchema: Schema.Top
|
|
185
185
|
readonly errorSchema: Schema.Top
|
|
186
|
-
readonly defectSchema:
|
|
186
|
+
readonly defectSchema: Schema.Top
|
|
187
187
|
readonly annotations: ServiceMap.ServiceMap<never>
|
|
188
188
|
readonly middlewares: ReadonlySet<RpcMiddleware.AnyServiceWithProps>
|
|
189
189
|
readonly "~requires": any
|
|
@@ -521,7 +521,7 @@ export type ExtractProvides<R extends Any, Tag extends string> = R extends Rpc<
|
|
|
521
521
|
infer _Error,
|
|
522
522
|
infer _Middleware,
|
|
523
523
|
infer _Requires
|
|
524
|
-
> ? RpcMiddleware.Provides<_Middleware> :
|
|
524
|
+
> ? RpcMiddleware.Provides<_Middleware["Identifier"]> :
|
|
525
525
|
never
|
|
526
526
|
|
|
527
527
|
/**
|
|
@@ -660,7 +660,7 @@ const Proto = {
|
|
|
660
660
|
middlewares: this.middlewares
|
|
661
661
|
})
|
|
662
662
|
},
|
|
663
|
-
annotate(this: AnyWithProps, tag: ServiceMap.
|
|
663
|
+
annotate(this: AnyWithProps, tag: ServiceMap.Key<any, any>, value: any) {
|
|
664
664
|
return makeProto({
|
|
665
665
|
_tag: this._tag,
|
|
666
666
|
payloadSchema: this.payloadSchema,
|
|
@@ -696,7 +696,7 @@ const makeProto = <
|
|
|
696
696
|
readonly payloadSchema: Payload
|
|
697
697
|
readonly successSchema: Success
|
|
698
698
|
readonly errorSchema: Error
|
|
699
|
-
readonly defectSchema:
|
|
699
|
+
readonly defectSchema: Schema.Top
|
|
700
700
|
readonly annotations: ServiceMap.ServiceMap<never>
|
|
701
701
|
readonly middlewares: ReadonlySet<Middleware>
|
|
702
702
|
}): Rpc<Tag, Payload, Success, Error, Middleware, Requires> => {
|
|
@@ -8,6 +8,7 @@ import * as Effect from "../../Effect.ts"
|
|
|
8
8
|
import * as Exit from "../../Exit.ts"
|
|
9
9
|
import * as Fiber from "../../Fiber.ts"
|
|
10
10
|
import { constVoid, dual, flow, identity } from "../../Function.ts"
|
|
11
|
+
import * as Latch from "../../Latch.ts"
|
|
11
12
|
import * as Layer from "../../Layer.ts"
|
|
12
13
|
import * as Option from "../../Option.ts"
|
|
13
14
|
import * as Pool from "../../Pool.ts"
|
|
@@ -20,7 +21,6 @@ import * as ServiceMap from "../../ServiceMap.ts"
|
|
|
20
21
|
import * as Stream from "../../Stream.ts"
|
|
21
22
|
import type * as Struct from "../../Struct.ts"
|
|
22
23
|
import type { Span } from "../../Tracer.ts"
|
|
23
|
-
import type { Mutable } from "../../Types.ts"
|
|
24
24
|
import * as Headers from "../http/Headers.ts"
|
|
25
25
|
import * as HttpBody from "../http/HttpBody.ts"
|
|
26
26
|
import * as HttpClient from "../http/HttpClient.ts"
|
|
@@ -45,16 +45,7 @@ import { withRun } from "./Utils.ts"
|
|
|
45
45
|
* @since 4.0.0
|
|
46
46
|
* @category client
|
|
47
47
|
*/
|
|
48
|
-
export type RpcClient<Rpcs extends Rpc.Any, E = never> = Struct.Simplify<
|
|
49
|
-
& RpcClient.From<RpcClient.NonPrefixed<Rpcs>, E, "">
|
|
50
|
-
& {
|
|
51
|
-
readonly [CurrentPrefix in RpcClient.Prefixes<Rpcs>]: RpcClient.From<
|
|
52
|
-
RpcClient.Prefixed<Rpcs, CurrentPrefix>,
|
|
53
|
-
E,
|
|
54
|
-
CurrentPrefix
|
|
55
|
-
>
|
|
56
|
-
}
|
|
57
|
-
>
|
|
48
|
+
export type RpcClient<Rpcs extends Rpc.Any, E = never> = Struct.Simplify<RpcClient.From<Rpcs, E>>
|
|
58
49
|
|
|
59
50
|
/**
|
|
60
51
|
* @since 4.0.0
|
|
@@ -65,34 +56,8 @@ export declare namespace RpcClient {
|
|
|
65
56
|
* @since 4.0.0
|
|
66
57
|
* @category client
|
|
67
58
|
*/
|
|
68
|
-
export type
|
|
69
|
-
|
|
70
|
-
: never
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* @since 4.0.0
|
|
74
|
-
* @category client
|
|
75
|
-
*/
|
|
76
|
-
export type NonPrefixed<Rpcs extends Rpc.Any> = Exclude<Rpcs, { readonly _tag: `${string}.${string}` }>
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* @since 4.0.0
|
|
80
|
-
* @category client
|
|
81
|
-
*/
|
|
82
|
-
export type Prefixed<Rpcs extends Rpc.Any, Prefix extends string> = Extract<
|
|
83
|
-
Rpcs,
|
|
84
|
-
{ readonly _tag: `${Prefix}.${string}` }
|
|
85
|
-
>
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* @since 4.0.0
|
|
89
|
-
* @category client
|
|
90
|
-
*/
|
|
91
|
-
export type From<Rpcs extends Rpc.Any, E = never, Prefix extends string = ""> = {
|
|
92
|
-
readonly [
|
|
93
|
-
Current in Rpcs as Current["_tag"] extends `${Prefix}.${infer Method}` ? Method
|
|
94
|
-
: Current["_tag"]
|
|
95
|
-
]: <
|
|
59
|
+
export type From<Rpcs extends Rpc.Any, E = never> = {
|
|
60
|
+
readonly [Current in Rpcs as Current["_tag"]]: <
|
|
96
61
|
const AsQueue extends boolean = false,
|
|
97
62
|
const Discard = false
|
|
98
63
|
>(
|
|
@@ -614,16 +579,9 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any, E, const Flatten extend
|
|
|
614
579
|
}
|
|
615
580
|
} else {
|
|
616
581
|
client = {}
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
if (prefix !== undefined && !(prefix in client)) {
|
|
621
|
-
;(client as any)[prefix] = {} as Mutable<RpcClient.Prefixed<Rpcs, typeof prefix>>
|
|
622
|
-
}
|
|
623
|
-
const target = prefix !== undefined ? (client as any)[prefix] : client
|
|
624
|
-
const tag = prefix !== undefined ? rpc._tag.slice(dot + 1) : rpc._tag
|
|
625
|
-
target[tag] = onRequest(rpc as any)
|
|
626
|
-
}
|
|
582
|
+
group.requests.forEach((rpc) => {
|
|
583
|
+
client[rpc._tag] = onRequest(rpc as any)
|
|
584
|
+
})
|
|
627
585
|
}
|
|
628
586
|
|
|
629
587
|
return { client, write } as const
|
|
@@ -1070,7 +1028,7 @@ const defaultRetryPolicy = Schedule.exponential(500, 1.5).pipe(
|
|
|
1070
1028
|
|
|
1071
1029
|
const makePinger = Effect.fnUntraced(function*<A, E, R>(writePing: Effect.Effect<A, E, R>) {
|
|
1072
1030
|
let recievedPong = true
|
|
1073
|
-
const latch =
|
|
1031
|
+
const latch = Latch.makeUnsafe()
|
|
1074
1032
|
const reset = () => {
|
|
1075
1033
|
recievedPong = true
|
|
1076
1034
|
latch.closeUnsafe()
|
|
@@ -1118,7 +1076,7 @@ export const makeProtocolWorker = (
|
|
|
1118
1076
|
readonly maxSize: number
|
|
1119
1077
|
readonly concurrency?: number | undefined
|
|
1120
1078
|
readonly targetUtilization?: number | undefined
|
|
1121
|
-
readonly timeToLive: Duration.
|
|
1079
|
+
readonly timeToLive: Duration.Input
|
|
1122
1080
|
}
|
|
1123
1081
|
): Effect.Effect<
|
|
1124
1082
|
Protocol["Service"],
|
|
@@ -1133,7 +1091,7 @@ export const makeProtocolWorker = (
|
|
|
1133
1091
|
|
|
1134
1092
|
const entries = new Map<string, {
|
|
1135
1093
|
readonly worker: Worker.Worker<FromServerEncoded, FromClientEncoded | RpcWorker.InitialMessage.Encoded>
|
|
1136
|
-
readonly latch:
|
|
1094
|
+
readonly latch: Latch.Latch
|
|
1137
1095
|
}>()
|
|
1138
1096
|
|
|
1139
1097
|
const acquire = Effect.gen(function*() {
|
|
@@ -1219,7 +1177,7 @@ export const makeProtocolWorker = (
|
|
|
1219
1177
|
case "Request": {
|
|
1220
1178
|
return Pool.get(pool).pipe(
|
|
1221
1179
|
Effect.flatMap((worker) => {
|
|
1222
|
-
const latch =
|
|
1180
|
+
const latch = Latch.makeUnsafe(false)
|
|
1223
1181
|
entries.set(request.id, { worker, latch })
|
|
1224
1182
|
return Effect.flatMap(worker.send(request, transferables), () => latch.await)
|
|
1225
1183
|
}),
|
|
@@ -1266,7 +1224,7 @@ export const layerProtocolWorker: (
|
|
|
1266
1224
|
readonly maxSize: number
|
|
1267
1225
|
readonly concurrency?: number | undefined
|
|
1268
1226
|
readonly targetUtilization?: number | undefined
|
|
1269
|
-
readonly timeToLive: Duration.
|
|
1227
|
+
readonly timeToLive: Duration.Input
|
|
1270
1228
|
}
|
|
1271
1229
|
) => Layer.Layer<
|
|
1272
1230
|
Protocol,
|
|
@@ -131,12 +131,12 @@ export interface RpcGroup<in out R extends Rpc.Any> extends Pipeable {
|
|
|
131
131
|
/**
|
|
132
132
|
* Annotate the group with a value.
|
|
133
133
|
*/
|
|
134
|
-
annotate<I, S>(service: ServiceMap.
|
|
134
|
+
annotate<I, S>(service: ServiceMap.Key<I, S>, value: S): RpcGroup<R>
|
|
135
135
|
|
|
136
136
|
/**
|
|
137
137
|
* Annotate the Rpc's above this point with a value.
|
|
138
138
|
*/
|
|
139
|
-
annotateRpcs<I, S>(service: ServiceMap.
|
|
139
|
+
annotateRpcs<I, S>(service: ServiceMap.Key<I, S>, value: S): RpcGroup<R>
|
|
140
140
|
|
|
141
141
|
/**
|
|
142
142
|
* Annotate the group with the provided annotations.
|
|
@@ -314,13 +314,13 @@ const RpcGroupProto = {
|
|
|
314
314
|
})
|
|
315
315
|
})
|
|
316
316
|
},
|
|
317
|
-
annotate(this: RpcGroup<any>, service: ServiceMap.
|
|
317
|
+
annotate(this: RpcGroup<any>, service: ServiceMap.Key<any, any>, value: any) {
|
|
318
318
|
return makeProto({
|
|
319
319
|
requests: this.requests,
|
|
320
320
|
annotations: ServiceMap.add(this.annotations, service, value)
|
|
321
321
|
})
|
|
322
322
|
},
|
|
323
|
-
annotateRpcs(this: RpcGroup<any>, service: ServiceMap.
|
|
323
|
+
annotateRpcs(this: RpcGroup<any>, service: ServiceMap.Key<any, any>, value: any) {
|
|
324
324
|
return this.annotateRpcsMerge(ServiceMap.make(service, value))
|
|
325
325
|
},
|
|
326
326
|
annotateMerge(this: RpcGroup<any>, context: ServiceMap.ServiceMap<any>) {
|
|
@@ -173,7 +173,7 @@ export type ErrorServicesDecode<A> = ErrorSchema<A>["DecodingServices"]
|
|
|
173
173
|
* @since 4.0.0
|
|
174
174
|
* @category models
|
|
175
175
|
*/
|
|
176
|
-
export interface AnyService extends ServiceMap.
|
|
176
|
+
export interface AnyService extends ServiceMap.Key<any, any> {
|
|
177
177
|
readonly [TypeId]: typeof TypeId
|
|
178
178
|
readonly error: Schema.Top
|
|
179
179
|
readonly requiredForClient: boolean
|
|
@@ -184,7 +184,7 @@ export interface AnyService extends ServiceMap.Service<any, any> {
|
|
|
184
184
|
* @since 4.0.0
|
|
185
185
|
* @category models
|
|
186
186
|
*/
|
|
187
|
-
export interface AnyServiceWithProps extends ServiceMap.
|
|
187
|
+
export interface AnyServiceWithProps extends ServiceMap.Key<any, RpcMiddleware<any, any, any>> {
|
|
188
188
|
readonly [TypeId]: typeof TypeId
|
|
189
189
|
readonly error: Schema.Top
|
|
190
190
|
readonly requiredForClient: boolean
|
|
@@ -253,7 +253,7 @@ export const Service = <
|
|
|
253
253
|
* @category client
|
|
254
254
|
*/
|
|
255
255
|
export const layerClient = <Id extends AnyId, S, R, EX = never, RX = never>(
|
|
256
|
-
tag: ServiceMap.
|
|
256
|
+
tag: ServiceMap.Key<Id, S>,
|
|
257
257
|
service:
|
|
258
258
|
| RpcMiddlewareClient<Id[TypeId]["error"]["Type"], Id[TypeId]["clientError"], R>
|
|
259
259
|
| Effect.Effect<RpcMiddlewareClient<Id[TypeId]["error"]["Type"], Id[TypeId]["clientError"], R>, EX, RX>
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
|
+
import * as Cause from "../../Cause.ts"
|
|
5
|
+
import { constUndefined } from "../../Function.ts"
|
|
4
6
|
import * as Predicate from "../../Predicate.ts"
|
|
5
7
|
import * as Schema from "../../Schema.ts"
|
|
6
8
|
import type * as AST from "../../SchemaAST.ts"
|
|
9
|
+
import * as ServiceMap from "../../ServiceMap.ts"
|
|
7
10
|
import * as Stream_ from "../../Stream.ts"
|
|
8
11
|
|
|
9
12
|
const StreamSchemaTypeId = "~effect/rpc/RpcSchema/StreamSchema"
|
|
@@ -58,3 +61,17 @@ const schema = Schema.declare(Stream_.isStream)
|
|
|
58
61
|
export function Stream<A extends Schema.Top, E extends Schema.Top>(success: A, error: E): Stream<A, E> {
|
|
59
62
|
return Schema.make(schema.ast, { [StreamSchemaTypeId]: StreamSchemaTypeId, success, error })
|
|
60
63
|
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* @since 4.0.0
|
|
67
|
+
* @category Cause annotations
|
|
68
|
+
*/
|
|
69
|
+
export class ClientAbort extends ServiceMap.Service<ClientAbort, true>()("effect/rpc/RpcSchema/ClientAbort") {
|
|
70
|
+
static annotation = this.serviceMap(true).pipe(
|
|
71
|
+
ServiceMap.add(Cause.StackTrace, {
|
|
72
|
+
name: "ClientAbort",
|
|
73
|
+
stack: constUndefined,
|
|
74
|
+
parent: undefined
|
|
75
|
+
})
|
|
76
|
+
)
|
|
77
|
+
}
|
|
@@ -107,11 +107,7 @@ export const jsonRpc = (options?: {
|
|
|
107
107
|
return decodeJsonRpcRaw(decoded, batches)
|
|
108
108
|
},
|
|
109
109
|
encode: (response) => {
|
|
110
|
-
|
|
111
|
-
if (response.length === 0) return undefined
|
|
112
|
-
return JSON.stringify(response.map(encodeJsonRpcMessage))
|
|
113
|
-
}
|
|
114
|
-
const encoded = encodeJsonRpcRaw(response as any, batches)
|
|
110
|
+
const encoded = encodeJsonRpcResponse(response as any, batches)
|
|
115
111
|
return encoded && JSON.stringify(encoded)
|
|
116
112
|
}
|
|
117
113
|
}
|
|
@@ -146,10 +142,7 @@ export const ndJsonRpc = (options?: {
|
|
|
146
142
|
return messages
|
|
147
143
|
},
|
|
148
144
|
encode: (response) => {
|
|
149
|
-
|
|
150
|
-
return parser.encode(response.map(encodeJsonRpcMessage))
|
|
151
|
-
}
|
|
152
|
-
const encoded = encodeJsonRpcRaw(response as any, batches)
|
|
145
|
+
const encoded = encodeJsonRpcResponse(response as any, batches)
|
|
153
146
|
return encoded && parser.encode(encoded)
|
|
154
147
|
}
|
|
155
148
|
})
|
|
@@ -171,6 +164,7 @@ function decodeJsonRpcRaw(
|
|
|
171
164
|
const messages: Array<RpcMessage.FromClientEncoded | RpcMessage.FromServerEncoded> = []
|
|
172
165
|
for (let i = 0; i < decoded.length; i++) {
|
|
173
166
|
const message = decodeJsonRpcMessage(decoded[i])
|
|
167
|
+
messages.push(message)
|
|
174
168
|
if (message._tag === "Request") {
|
|
175
169
|
batch.size++
|
|
176
170
|
batches.set(message.id, batch)
|
|
@@ -263,6 +257,47 @@ function encodeJsonRpcRaw(
|
|
|
263
257
|
return encodeJsonRpcMessage(response)
|
|
264
258
|
}
|
|
265
259
|
|
|
260
|
+
function encodeJsonRpcResponse(
|
|
261
|
+
response:
|
|
262
|
+
| RpcMessage.FromServerEncoded
|
|
263
|
+
| RpcMessage.FromClientEncoded
|
|
264
|
+
| Array<RpcMessage.FromServerEncoded | RpcMessage.FromClientEncoded>,
|
|
265
|
+
batches: Map<string, {
|
|
266
|
+
readonly size: number
|
|
267
|
+
readonly responses: Map<string, RpcMessage.FromServerEncoded>
|
|
268
|
+
}>
|
|
269
|
+
) {
|
|
270
|
+
if (Array.isArray(response) === false) {
|
|
271
|
+
return encodeJsonRpcRaw(response, batches)
|
|
272
|
+
}
|
|
273
|
+
if (response.length === 0) {
|
|
274
|
+
return undefined
|
|
275
|
+
}
|
|
276
|
+
const encoded: Array<JsonRpcMessage | Array<JsonRpcMessage>> = []
|
|
277
|
+
for (let i = 0; i < response.length; i++) {
|
|
278
|
+
const current = encodeJsonRpcRaw(response[i], batches)
|
|
279
|
+
if (current !== undefined) {
|
|
280
|
+
encoded.push(current)
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
if (encoded.length === 0) {
|
|
284
|
+
return undefined
|
|
285
|
+
}
|
|
286
|
+
if (encoded.length === 1) {
|
|
287
|
+
return encoded[0]
|
|
288
|
+
}
|
|
289
|
+
const messages: Array<JsonRpcMessage> = []
|
|
290
|
+
for (let i = 0; i < encoded.length; i++) {
|
|
291
|
+
const current = encoded[i]
|
|
292
|
+
if (Array.isArray(current)) {
|
|
293
|
+
messages.push(...current)
|
|
294
|
+
} else {
|
|
295
|
+
messages.push(current)
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
return messages
|
|
299
|
+
}
|
|
300
|
+
|
|
266
301
|
function encodeJsonRpcMessage(response: RpcMessage.FromServerEncoded | RpcMessage.FromClientEncoded): JsonRpcMessage {
|
|
267
302
|
switch (response._tag) {
|
|
268
303
|
case "Request":
|