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
package/src/Semaphore.ts
ADDED
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 2.0.0
|
|
3
|
+
*/
|
|
4
|
+
import * as Effect from "./Effect.ts"
|
|
5
|
+
import * as internal from "./internal/effect.ts"
|
|
6
|
+
import * as MutableHashMap from "./MutableHashMap.ts"
|
|
7
|
+
import * as Option from "./Option.ts"
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @category models
|
|
11
|
+
* @since 2.0.0
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { Effect, Semaphore } from "effect"
|
|
15
|
+
*
|
|
16
|
+
* // Create and use a semaphore for controlling concurrent access
|
|
17
|
+
* const program = Effect.gen(function*() {
|
|
18
|
+
* const semaphore = yield* Semaphore.make(2)
|
|
19
|
+
*
|
|
20
|
+
* return yield* semaphore.withPermits(1)(
|
|
21
|
+
* Effect.succeed("Resource accessed")
|
|
22
|
+
* )
|
|
23
|
+
* })
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export interface Semaphore {
|
|
27
|
+
/**
|
|
28
|
+
* Adjusts the number of permits available in the semaphore.
|
|
29
|
+
*/
|
|
30
|
+
resize(permits: number): Effect.Effect<void>
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Runs an effect with the given number of permits and releases the permits
|
|
34
|
+
* when the effect completes.
|
|
35
|
+
*
|
|
36
|
+
* **Details**
|
|
37
|
+
*
|
|
38
|
+
* This function acquires the specified number of permits before executing
|
|
39
|
+
* the provided effect. Once the effect finishes, the permits are released.
|
|
40
|
+
* If insufficient permits are available, the function will wait until they
|
|
41
|
+
* are released by other tasks.
|
|
42
|
+
*/
|
|
43
|
+
withPermits(permits: number): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Runs an effect with the given number of permits and releases the permits
|
|
47
|
+
* when the effect completes.
|
|
48
|
+
*
|
|
49
|
+
* **Details**
|
|
50
|
+
*
|
|
51
|
+
* This function acquires the specified number of permits before executing
|
|
52
|
+
* the provided effect. Once the effect finishes, the permits are released.
|
|
53
|
+
* If insufficient permits are available, the function will wait until they
|
|
54
|
+
* are released by other tasks.
|
|
55
|
+
*/
|
|
56
|
+
withPermit<A, E, R>(self: Effect.Effect<A, E, R>): Effect.Effect<A, E, R>
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Runs an effect only if the specified number of permits are immediately
|
|
60
|
+
* available.
|
|
61
|
+
*
|
|
62
|
+
* **Details**
|
|
63
|
+
*
|
|
64
|
+
* This function attempts to acquire the specified number of permits. If they
|
|
65
|
+
* are available, it runs the effect and releases the permits after the effect
|
|
66
|
+
* completes. If permits are not available, the effect does not execute, and
|
|
67
|
+
* the result is `Option.none`.
|
|
68
|
+
*/
|
|
69
|
+
withPermitsIfAvailable(
|
|
70
|
+
permits: number
|
|
71
|
+
): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<Option.Option<A>, E, R>
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Acquires the specified number of permits and returns the resulting
|
|
75
|
+
* available permits, suspending the task if they are not yet available.
|
|
76
|
+
* Concurrent pending `take` calls are processed in a first-in, first-out manner.
|
|
77
|
+
*/
|
|
78
|
+
take(permits: number): Effect.Effect<number>
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Releases the specified number of permits and returns the resulting
|
|
82
|
+
* available permits.
|
|
83
|
+
*/
|
|
84
|
+
release(permits: number): Effect.Effect<number>
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Releases all permits held by this semaphore and returns the resulting available permits.
|
|
88
|
+
*/
|
|
89
|
+
releaseAll: Effect.Effect<number>
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Unsafely creates a new Semaphore.
|
|
94
|
+
*
|
|
95
|
+
* **Previously Known As**
|
|
96
|
+
*
|
|
97
|
+
* This API replaces the following from Effect 3.x:
|
|
98
|
+
*
|
|
99
|
+
* - `Effect.makeSemaphoreUnsafe`
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* ```ts
|
|
103
|
+
* import { Effect, Semaphore } from "effect"
|
|
104
|
+
*
|
|
105
|
+
* const semaphore = Semaphore.makeUnsafe(3)
|
|
106
|
+
*
|
|
107
|
+
* const task = (id: number) =>
|
|
108
|
+
* semaphore.withPermits(1)(
|
|
109
|
+
* Effect.gen(function*() {
|
|
110
|
+
* yield* Effect.log(`Task ${id} started`)
|
|
111
|
+
* yield* Effect.sleep("1 second")
|
|
112
|
+
* yield* Effect.log(`Task ${id} completed`)
|
|
113
|
+
* })
|
|
114
|
+
* )
|
|
115
|
+
*
|
|
116
|
+
* // Only 3 tasks can run concurrently
|
|
117
|
+
* const program = Effect.all([
|
|
118
|
+
* task(1),
|
|
119
|
+
* task(2),
|
|
120
|
+
* task(3),
|
|
121
|
+
* task(4),
|
|
122
|
+
* task(5)
|
|
123
|
+
* ], { concurrency: "unbounded" })
|
|
124
|
+
* ```
|
|
125
|
+
*
|
|
126
|
+
* @since 2.0.0
|
|
127
|
+
* @category constructors
|
|
128
|
+
*/
|
|
129
|
+
export const makeUnsafe: (permits: number) => Semaphore = internal.makeSemaphoreUnsafe
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Creates a new Semaphore.
|
|
133
|
+
*
|
|
134
|
+
* **Previously Known As**
|
|
135
|
+
*
|
|
136
|
+
* This API replaces the following from Effect 3.x:
|
|
137
|
+
*
|
|
138
|
+
* - `Effect.makeSemaphore`
|
|
139
|
+
*
|
|
140
|
+
* @example
|
|
141
|
+
* ```ts
|
|
142
|
+
* import { Effect, Semaphore } from "effect"
|
|
143
|
+
*
|
|
144
|
+
* const program = Effect.gen(function*() {
|
|
145
|
+
* const semaphore = yield* Semaphore.make(2)
|
|
146
|
+
*
|
|
147
|
+
* const task = (id: number) =>
|
|
148
|
+
* semaphore.withPermits(1)(
|
|
149
|
+
* Effect.gen(function*() {
|
|
150
|
+
* yield* Effect.log(`Task ${id} acquired permit`)
|
|
151
|
+
* yield* Effect.sleep("1 second")
|
|
152
|
+
* yield* Effect.log(`Task ${id} releasing permit`)
|
|
153
|
+
* })
|
|
154
|
+
* )
|
|
155
|
+
*
|
|
156
|
+
* // Run 4 tasks, but only 2 can run concurrently
|
|
157
|
+
* yield* Effect.all([task(1), task(2), task(3), task(4)])
|
|
158
|
+
* })
|
|
159
|
+
* ```
|
|
160
|
+
*
|
|
161
|
+
* @since 2.0.0
|
|
162
|
+
* @category constructors
|
|
163
|
+
*/
|
|
164
|
+
export const make: (permits: number) => Effect.Effect<Semaphore> = internal.makeSemaphore
|
|
165
|
+
|
|
166
|
+
// -----------------------------------------------------------------------------
|
|
167
|
+
// Partitioned
|
|
168
|
+
// -----------------------------------------------------------------------------
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* @since 3.19.4
|
|
172
|
+
* @category models
|
|
173
|
+
*/
|
|
174
|
+
export const PartitionedTypeId: PartitionedTypeId = "~effect/PartitionedSemaphore"
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* @since 3.19.4
|
|
178
|
+
* @category models
|
|
179
|
+
*/
|
|
180
|
+
export type PartitionedTypeId = "~effect/PartitionedSemaphore"
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* A `Partitioned` semaphore controls access to a shared permit pool while
|
|
184
|
+
* tracking waiters by partition key.
|
|
185
|
+
*
|
|
186
|
+
* Waiting permits are distributed across partitions in round-robin order.
|
|
187
|
+
*
|
|
188
|
+
* **Previously Known As**
|
|
189
|
+
*
|
|
190
|
+
* This API replaces the following from Effect 3.x:
|
|
191
|
+
*
|
|
192
|
+
* - `PartitionedSemaphore.PartitionedSemaphore`
|
|
193
|
+
*
|
|
194
|
+
* @since 3.19.4
|
|
195
|
+
* @category models
|
|
196
|
+
*/
|
|
197
|
+
export interface Partitioned<in K> {
|
|
198
|
+
readonly [PartitionedTypeId]: PartitionedTypeId
|
|
199
|
+
readonly withPermits: (
|
|
200
|
+
key: K,
|
|
201
|
+
permits: number
|
|
202
|
+
) => <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* Creates a `Partitioned` semaphore unsafely.
|
|
207
|
+
*
|
|
208
|
+
* **Previously Known As**
|
|
209
|
+
*
|
|
210
|
+
* This API replaces the following from Effect 3.x:
|
|
211
|
+
*
|
|
212
|
+
* - `PartitionedSemaphore.makeUnsafe`
|
|
213
|
+
*
|
|
214
|
+
* @since 3.19.4
|
|
215
|
+
* @category constructors
|
|
216
|
+
*/
|
|
217
|
+
export const makePartitionedUnsafe = <K = unknown>(options: {
|
|
218
|
+
readonly permits: number
|
|
219
|
+
}): Partitioned<K> => {
|
|
220
|
+
const maxPermits = Math.max(0, options.permits)
|
|
221
|
+
|
|
222
|
+
if (!Number.isFinite(maxPermits)) {
|
|
223
|
+
return {
|
|
224
|
+
[PartitionedTypeId]: PartitionedTypeId,
|
|
225
|
+
withPermits: () => (effect) => effect
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
let totalPermits = maxPermits
|
|
230
|
+
let waitingPermits = 0
|
|
231
|
+
|
|
232
|
+
type Waiter = {
|
|
233
|
+
permits: number
|
|
234
|
+
readonly resume: () => void
|
|
235
|
+
}
|
|
236
|
+
const partitions = MutableHashMap.empty<K, Set<Waiter>>()
|
|
237
|
+
|
|
238
|
+
const take = (key: K, permits: number) =>
|
|
239
|
+
Effect.callback<void>((resume) => {
|
|
240
|
+
if (maxPermits < permits) {
|
|
241
|
+
resume(Effect.never)
|
|
242
|
+
return
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
if (totalPermits >= permits) {
|
|
246
|
+
totalPermits -= permits
|
|
247
|
+
resume(Effect.void)
|
|
248
|
+
return
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
const needed = permits - totalPermits
|
|
252
|
+
const taken = permits - needed
|
|
253
|
+
if (totalPermits > 0) {
|
|
254
|
+
totalPermits = 0
|
|
255
|
+
}
|
|
256
|
+
waitingPermits += needed
|
|
257
|
+
|
|
258
|
+
const waiters = Option.getOrElse(
|
|
259
|
+
MutableHashMap.get(partitions, key),
|
|
260
|
+
() => {
|
|
261
|
+
const set = new Set<Waiter>()
|
|
262
|
+
MutableHashMap.set(partitions, key, set)
|
|
263
|
+
return set
|
|
264
|
+
}
|
|
265
|
+
)
|
|
266
|
+
|
|
267
|
+
const entry: Waiter = {
|
|
268
|
+
permits: needed,
|
|
269
|
+
resume: () => {
|
|
270
|
+
cleanup()
|
|
271
|
+
resume(Effect.void)
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
const cleanup = () => {
|
|
276
|
+
waiters.delete(entry)
|
|
277
|
+
if (waiters.size === 0) {
|
|
278
|
+
MutableHashMap.remove(partitions, key)
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
waiters.add(entry)
|
|
283
|
+
|
|
284
|
+
return Effect.sync(() => {
|
|
285
|
+
cleanup()
|
|
286
|
+
waitingPermits -= entry.permits
|
|
287
|
+
if (taken > 0) {
|
|
288
|
+
releaseUnsafe(taken)
|
|
289
|
+
}
|
|
290
|
+
})
|
|
291
|
+
})
|
|
292
|
+
|
|
293
|
+
let iterator = partitions[Symbol.iterator]()
|
|
294
|
+
|
|
295
|
+
const releaseUnsafe = (permits: number): void => {
|
|
296
|
+
while (permits > 0) {
|
|
297
|
+
if (waitingPermits === 0) {
|
|
298
|
+
totalPermits += permits
|
|
299
|
+
return
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
let state = iterator.next()
|
|
303
|
+
if (state.done) {
|
|
304
|
+
iterator = partitions[Symbol.iterator]()
|
|
305
|
+
state = iterator.next()
|
|
306
|
+
if (state.done) {
|
|
307
|
+
return
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
const waiter = state.value[1].values().next().value
|
|
312
|
+
if (waiter === undefined) {
|
|
313
|
+
continue
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
waiter.permits -= 1
|
|
317
|
+
waitingPermits -= 1
|
|
318
|
+
|
|
319
|
+
if (waiter.permits === 0) {
|
|
320
|
+
waiter.resume()
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
permits -= 1
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
return {
|
|
328
|
+
[PartitionedTypeId]: PartitionedTypeId,
|
|
329
|
+
withPermits: (key, permits) => {
|
|
330
|
+
const takePermits = take(key, permits)
|
|
331
|
+
return (effect) =>
|
|
332
|
+
Effect.uninterruptibleMask((restore) =>
|
|
333
|
+
Effect.flatMap(
|
|
334
|
+
restore(takePermits),
|
|
335
|
+
() => Effect.ensuring(restore(effect), Effect.sync(() => releaseUnsafe(permits)))
|
|
336
|
+
)
|
|
337
|
+
)
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
/**
|
|
343
|
+
* Creates a `Partitioned` semaphore.
|
|
344
|
+
*
|
|
345
|
+
* **Previously Known As**
|
|
346
|
+
*
|
|
347
|
+
* This API replaces the following from Effect 3.x:
|
|
348
|
+
*
|
|
349
|
+
* - `PartitionedSemaphore.make`
|
|
350
|
+
*
|
|
351
|
+
* @since 3.19.4
|
|
352
|
+
* @category constructors
|
|
353
|
+
*/
|
|
354
|
+
export const makePartitioned = <K = unknown>(options: {
|
|
355
|
+
readonly permits: number
|
|
356
|
+
}): Effect.Effect<Partitioned<K>> => Effect.sync(() => makePartitionedUnsafe<K>(options))
|
package/src/ServiceMap.ts
CHANGED
|
@@ -24,6 +24,24 @@ import type * as Types from "./Types.ts"
|
|
|
24
24
|
|
|
25
25
|
const ServiceTypeId = "~effect/ServiceMap/Service" as const
|
|
26
26
|
|
|
27
|
+
/**
|
|
28
|
+
* The base type used for all ServiceMap keys.
|
|
29
|
+
*
|
|
30
|
+
* @since 4.0.0
|
|
31
|
+
* @category Models
|
|
32
|
+
*/
|
|
33
|
+
export interface Key<in out Identifier, in out Shape> extends Pipeable, Inspectable {
|
|
34
|
+
readonly [ServiceTypeId]: {
|
|
35
|
+
readonly _Service: Types.Invariant<Shape>
|
|
36
|
+
readonly _Identifier: Types.Invariant<Identifier>
|
|
37
|
+
}
|
|
38
|
+
readonly Service: Shape
|
|
39
|
+
readonly Identifier: Identifier
|
|
40
|
+
readonly key: string
|
|
41
|
+
readonly stack?: string | undefined
|
|
42
|
+
asEffect(): Effect<Shape, never, Identifier>
|
|
43
|
+
}
|
|
44
|
+
|
|
27
45
|
/**
|
|
28
46
|
* @example
|
|
29
47
|
* ```ts
|
|
@@ -42,21 +60,12 @@ const ServiceTypeId = "~effect/ServiceMap/Service" as const
|
|
|
42
60
|
* @category Models
|
|
43
61
|
*/
|
|
44
62
|
export interface Service<in out Identifier, in out Shape>
|
|
45
|
-
extends
|
|
63
|
+
extends Key<Identifier, Shape>, Yieldable<Service<Identifier, Shape>, Shape, never, Identifier>
|
|
46
64
|
{
|
|
47
|
-
readonly [ServiceTypeId]: {
|
|
48
|
-
readonly _Service: Types.Invariant<Shape>
|
|
49
|
-
readonly _Identifier: Types.Invariant<Identifier>
|
|
50
|
-
}
|
|
51
|
-
readonly Service: Shape
|
|
52
|
-
readonly Identifier: Identifier
|
|
53
65
|
of(self: Shape): Shape
|
|
54
66
|
serviceMap(self: Shape): ServiceMap<Identifier>
|
|
55
67
|
use<A, E, R>(f: (service: Shape) => Effect<A, E, R>): Effect<A, E, R | Identifier>
|
|
56
68
|
useSync<A>(f: (service: Shape) => A): Effect<A, never, Identifier>
|
|
57
|
-
|
|
58
|
-
readonly stack?: string | undefined
|
|
59
|
-
readonly key: string
|
|
60
69
|
}
|
|
61
70
|
|
|
62
71
|
/**
|
|
@@ -368,7 +377,7 @@ export declare namespace Service {
|
|
|
368
377
|
* @since 4.0.0
|
|
369
378
|
* @category Models
|
|
370
379
|
*/
|
|
371
|
-
export type Any =
|
|
380
|
+
export type Any = Key<never, any> | Key<any, any>
|
|
372
381
|
|
|
373
382
|
/**
|
|
374
383
|
* @example
|
|
@@ -508,20 +517,20 @@ const Proto: Omit<ServiceMap<never>, "mapUnsafe"> = {
|
|
|
508
517
|
export const isServiceMap = (u: unknown): u is ServiceMap<never> => hasProperty(u, TypeId)
|
|
509
518
|
|
|
510
519
|
/**
|
|
511
|
-
* Checks if the provided argument is a `
|
|
520
|
+
* Checks if the provided argument is a `Key`.
|
|
512
521
|
*
|
|
513
522
|
* @example
|
|
514
523
|
* ```ts
|
|
515
524
|
* import { ServiceMap } from "effect"
|
|
516
525
|
* import * as assert from "node:assert"
|
|
517
526
|
*
|
|
518
|
-
* assert.strictEqual(ServiceMap.
|
|
527
|
+
* assert.strictEqual(ServiceMap.isKey(ServiceMap.Service("Service")), true)
|
|
519
528
|
* ```
|
|
520
529
|
*
|
|
521
530
|
* @since 4.0.0
|
|
522
531
|
* @category Guards
|
|
523
532
|
*/
|
|
524
|
-
export const
|
|
533
|
+
export const isKey = (u: unknown): u is Key<any, any> => hasProperty(u, ServiceTypeId)
|
|
525
534
|
|
|
526
535
|
/**
|
|
527
536
|
* Checks if the provided argument is a `Reference`.
|
|
@@ -580,7 +589,7 @@ const emptyServiceMap = makeUnsafe(new Map())
|
|
|
580
589
|
* @category Constructors
|
|
581
590
|
*/
|
|
582
591
|
export const make = <I, S>(
|
|
583
|
-
key:
|
|
592
|
+
key: Key<I, S>,
|
|
584
593
|
service: Types.NoInfer<S>
|
|
585
594
|
): ServiceMap<I> => makeUnsafe(new Map([[key.key, service]]))
|
|
586
595
|
|
|
@@ -635,7 +644,7 @@ export const add: {
|
|
|
635
644
|
* @since 4.0.0
|
|
636
645
|
* @category Adders
|
|
637
646
|
*/
|
|
638
|
-
<I, S>(key:
|
|
647
|
+
<I, S>(key: Key<I, S>, service: Types.NoInfer<S>): <Services>(self: ServiceMap<Services>) => ServiceMap<Services | I>
|
|
639
648
|
/**
|
|
640
649
|
* Adds a service to a given `ServiceMap`.
|
|
641
650
|
*
|
|
@@ -661,10 +670,10 @@ export const add: {
|
|
|
661
670
|
* @since 4.0.0
|
|
662
671
|
* @category Adders
|
|
663
672
|
*/
|
|
664
|
-
<Services, I, S>(self: ServiceMap<Services>, key:
|
|
673
|
+
<Services, I, S>(self: ServiceMap<Services>, key: Key<I, S>, service: Types.NoInfer<S>): ServiceMap<Services | I>
|
|
665
674
|
} = dual(3, <Services, I, S>(
|
|
666
675
|
self: ServiceMap<Services>,
|
|
667
|
-
key:
|
|
676
|
+
key: Key<I, S>,
|
|
668
677
|
service: Types.NoInfer<S>
|
|
669
678
|
): ServiceMap<Services | I> => {
|
|
670
679
|
const map = new Map(self.mapUnsafe)
|
|
@@ -681,19 +690,19 @@ export const addOrOmit: {
|
|
|
681
690
|
* @since 4.0.0
|
|
682
691
|
* @category Adders
|
|
683
692
|
*/
|
|
684
|
-
<I, S>(key:
|
|
693
|
+
<I, S>(key: Key<I, S>, service: Option.Option<Types.NoInfer<S>>): <Services>(self: ServiceMap<Services>) => ServiceMap<Services | I>
|
|
685
694
|
/**
|
|
686
695
|
* @since 4.0.0
|
|
687
696
|
* @category Adders
|
|
688
697
|
*/
|
|
689
698
|
<Services, I, S>(
|
|
690
699
|
self: ServiceMap<Services>,
|
|
691
|
-
key:
|
|
700
|
+
key: Key<I, S>,
|
|
692
701
|
service: Option.Option<Types.NoInfer<S>>
|
|
693
702
|
): ServiceMap<Services | I>
|
|
694
703
|
} = dual(3, <Services, I, S>(
|
|
695
704
|
self: ServiceMap<Services>,
|
|
696
|
-
key:
|
|
705
|
+
key: Key<I, S>,
|
|
697
706
|
service: Option.Option<Types.NoInfer<S>>
|
|
698
707
|
): ServiceMap<Services | I> => {
|
|
699
708
|
const map = new Map(self.mapUnsafe)
|
|
@@ -770,7 +779,7 @@ export const getOrElse: {
|
|
|
770
779
|
* @since 4.0.0
|
|
771
780
|
* @category Getters
|
|
772
781
|
*/
|
|
773
|
-
<S, I, B>(key:
|
|
782
|
+
<S, I, B>(key: Key<I, S>, orElse: LazyArg<B>): <Services>(self: ServiceMap<Services>) => S | B
|
|
774
783
|
/**
|
|
775
784
|
* Get a service from the context that corresponds to the given key, or
|
|
776
785
|
* use the fallback value.
|
|
@@ -803,8 +812,8 @@ export const getOrElse: {
|
|
|
803
812
|
* @since 4.0.0
|
|
804
813
|
* @category Getters
|
|
805
814
|
*/
|
|
806
|
-
<Services, S, I, B>(self: ServiceMap<Services>, key:
|
|
807
|
-
} = dual(3, <Services, S, I, B>(self: ServiceMap<Services>, key:
|
|
815
|
+
<Services, S, I, B>(self: ServiceMap<Services>, key: Key<I, S>, orElse: LazyArg<B>): S | B
|
|
816
|
+
} = dual(3, <Services, S, I, B>(self: ServiceMap<Services>, key: Key<I, S>, orElse: LazyArg<B>): S | B => {
|
|
808
817
|
if (self.mapUnsafe.has(key.key)) {
|
|
809
818
|
return self.mapUnsafe.get(key.key)! as any
|
|
810
819
|
}
|
|
@@ -820,15 +829,15 @@ export const getOrUndefined: {
|
|
|
820
829
|
* @since 4.0.0
|
|
821
830
|
* @category Getters
|
|
822
831
|
*/
|
|
823
|
-
<S, I>(key:
|
|
832
|
+
<S, I>(key: Key<I, S>): <Services>(self: ServiceMap<Services>) => S | undefined
|
|
824
833
|
/**
|
|
825
834
|
* @since 4.0.0
|
|
826
835
|
* @category Getters
|
|
827
836
|
*/
|
|
828
|
-
<Services, S, I>(self: ServiceMap<Services>, key:
|
|
837
|
+
<Services, S, I>(self: ServiceMap<Services>, key: Key<I, S>): S | undefined
|
|
829
838
|
} = dual(
|
|
830
839
|
2,
|
|
831
|
-
<Services, S, I>(self: ServiceMap<Services>, key:
|
|
840
|
+
<Services, S, I>(self: ServiceMap<Services>, key: Key<I, S>): S | undefined => self.mapUnsafe.get(key.key)
|
|
832
841
|
)
|
|
833
842
|
|
|
834
843
|
/**
|
|
@@ -888,7 +897,7 @@ export const getUnsafe: {
|
|
|
888
897
|
* @since 4.0.0
|
|
889
898
|
* @category unsafe
|
|
890
899
|
*/
|
|
891
|
-
<S, I>(service:
|
|
900
|
+
<S, I>(service: Key<I, S>): <Services>(self: ServiceMap<Services>) => S
|
|
892
901
|
/**
|
|
893
902
|
* Get a service from the context that corresponds to the given key.
|
|
894
903
|
*
|
|
@@ -917,10 +926,10 @@ export const getUnsafe: {
|
|
|
917
926
|
* @since 4.0.0
|
|
918
927
|
* @category unsafe
|
|
919
928
|
*/
|
|
920
|
-
<Services, S, I>(self: ServiceMap<Services>, services:
|
|
929
|
+
<Services, S, I>(self: ServiceMap<Services>, services: Key<I, S>): S
|
|
921
930
|
} = dual(
|
|
922
931
|
2,
|
|
923
|
-
<Services, I extends Services, S>(self: ServiceMap<Services>, service:
|
|
932
|
+
<Services, I extends Services, S>(self: ServiceMap<Services>, service: Key<I, S>): S => {
|
|
924
933
|
if (!self.mapUnsafe.has(service.key)) {
|
|
925
934
|
if (ReferenceTypeId in service) return getDefaultValue(service as any)
|
|
926
935
|
throw serviceNotFoundError(service)
|
|
@@ -980,7 +989,7 @@ export const get: {
|
|
|
980
989
|
* @since 4.0.0
|
|
981
990
|
* @category Getters
|
|
982
991
|
*/
|
|
983
|
-
<Services, I extends Services, S>(service:
|
|
992
|
+
<Services, I extends Services, S>(service: Key<I, S>): (self: ServiceMap<Services>) => S
|
|
984
993
|
/**
|
|
985
994
|
* Get a service from the context that corresponds to the given key.
|
|
986
995
|
*
|
|
@@ -1006,7 +1015,7 @@ export const get: {
|
|
|
1006
1015
|
* @since 4.0.0
|
|
1007
1016
|
* @category Getters
|
|
1008
1017
|
*/
|
|
1009
|
-
<Services, I extends Services, S>(self: ServiceMap<Services>, service:
|
|
1018
|
+
<Services, I extends Services, S>(self: ServiceMap<Services>, service: Key<I, S>): S
|
|
1010
1019
|
} = getUnsafe
|
|
1011
1020
|
|
|
1012
1021
|
/**
|
|
@@ -1044,7 +1053,7 @@ const getDefaultValue = (ref: Reference<any>) => {
|
|
|
1044
1053
|
return (ref as any)[defaultValueCacheKey] = ref.defaultValue()
|
|
1045
1054
|
}
|
|
1046
1055
|
|
|
1047
|
-
const serviceNotFoundError = (service:
|
|
1056
|
+
const serviceNotFoundError = (service: Key<any, any>) => {
|
|
1048
1057
|
const error = new Error(
|
|
1049
1058
|
`Service not found${service.key ? `: ${String(service.key)}` : ""}`
|
|
1050
1059
|
)
|
|
@@ -1122,7 +1131,7 @@ export const getOption: {
|
|
|
1122
1131
|
* @since 4.0.0
|
|
1123
1132
|
* @category Getters
|
|
1124
1133
|
*/
|
|
1125
|
-
<S, I>(service:
|
|
1134
|
+
<S, I>(service: Key<I, S>): <Services>(self: ServiceMap<Services>) => Option.Option<S>
|
|
1126
1135
|
/**
|
|
1127
1136
|
* Get the value associated with the specified key from the context wrapped in
|
|
1128
1137
|
* an `Option` object. If the key is not found, the `Option` object will be
|
|
@@ -1151,8 +1160,8 @@ export const getOption: {
|
|
|
1151
1160
|
* @since 4.0.0
|
|
1152
1161
|
* @category Getters
|
|
1153
1162
|
*/
|
|
1154
|
-
<Services, S, I>(self: ServiceMap<Services>, service:
|
|
1155
|
-
} = dual(2, <Services, I extends Services, S>(self: ServiceMap<Services>, service:
|
|
1163
|
+
<Services, S, I>(self: ServiceMap<Services>, service: Key<I, S>): Option.Option<S>
|
|
1164
|
+
} = dual(2, <Services, I extends Services, S>(self: ServiceMap<Services>, service: Key<I, S>): Option.Option<S> => {
|
|
1156
1165
|
if (self.mapUnsafe.has(service.key)) {
|
|
1157
1166
|
return Option.some(self.mapUnsafe.get(service.key)! as any)
|
|
1158
1167
|
}
|
|
@@ -1320,7 +1329,7 @@ export const mergeAll = <T extends Array<unknown>>(
|
|
|
1320
1329
|
* @since 4.0.0
|
|
1321
1330
|
* @category Utils
|
|
1322
1331
|
*/
|
|
1323
|
-
export const pick = <S extends ReadonlyArray<
|
|
1332
|
+
export const pick = <S extends ReadonlyArray<Key<any, any>>>(
|
|
1324
1333
|
...services: S
|
|
1325
1334
|
) =>
|
|
1326
1335
|
<Services>(self: ServiceMap<Services>): ServiceMap<Services & Service.Identifier<S[number]>> => {
|
|
@@ -1360,7 +1369,7 @@ export const pick = <S extends ReadonlyArray<Service<any, any>>>(
|
|
|
1360
1369
|
* @since 4.0.0
|
|
1361
1370
|
* @category Utils
|
|
1362
1371
|
*/
|
|
1363
|
-
export const omit = <S extends ReadonlyArray<
|
|
1372
|
+
export const omit = <S extends ReadonlyArray<Key<any, any>>>(
|
|
1364
1373
|
...keys: S
|
|
1365
1374
|
) =>
|
|
1366
1375
|
<Services>(self: ServiceMap<Services>): ServiceMap<Exclude<Services, Service.Identifier<S[number]>>> => {
|