effect 4.0.0-beta.1 → 4.0.0-beta.11
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/Cache.d.ts +2 -2
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +1 -1
- 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 +7 -7
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +6 -4
- package/dist/Channel.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 +3 -3
- package/dist/Config.js +3 -3
- 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 +342 -248
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +119 -119
- 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/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 -1
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +15 -0
- 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 +2 -2
- package/dist/Graph.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/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/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/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/Queue.d.ts.map +1 -1
- package/dist/Queue.js +0 -1
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts +18 -1
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +29 -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/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 +33 -14
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +65 -24
- package/dist/Schedule.js.map +1 -1
- package/dist/Schema.d.ts +199 -49
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +386 -72
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +2 -1
- 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/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 +37 -0
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +80 -0
- 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/Stream.d.ts +24 -24
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +12 -11
- 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/Types.d.ts +14 -6
- package/dist/Types.d.ts.map +1 -1
- package/dist/index.d.ts +503 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +503 -19
- 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 +85 -26
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/hashMap.js +2 -2
- 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/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 +6 -6
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +48 -48
- package/dist/unstable/ai/AiError.d.ts.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 +2 -2
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +41 -0
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +51 -51
- 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.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/cli/CliError.d.ts +5 -5
- package/dist/unstable/cli/CliOutput.js +37 -6
- package/dist/unstable/cli/CliOutput.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +199 -7
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +116 -6
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/HelpDoc.d.ts +60 -2
- package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.d.ts +11 -1
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.js +33 -8
- 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/parser.js +10 -2
- 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 +2 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +5 -4
- 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 +1 -1
- 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 +8 -6
- 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.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.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 +11 -11
- 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.map +1 -1
- package/dist/unstable/http/HttpEffect.js +30 -33
- 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 +4 -9
- package/dist/unstable/http/HttpMiddleware.js.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +14 -32
- package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerError.js +11 -27
- package/dist/unstable/http/HttpServerError.js.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/httpapi/HttpApiBuilder.js +6 -6
- package/dist/unstable/httpapi/HttpApiBuilder.js.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 +21 -39
- 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/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/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +18 -16
- 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 +2 -2
- package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts +6 -0
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +6 -6
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +15 -12
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +6 -6
- 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 +22 -1
- 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 +2 -2
- package/dist/unstable/rpc/Rpc.d.ts.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/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +9 -3
- 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 +4 -4
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +2 -2
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.js +13 -2
- 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 +3 -2
- 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/SqlError.d.ts +2 -2
- package/dist/unstable/sql/SqlModel.d.ts +2 -2
- package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
- package/dist/unstable/sql/SqlSchema.d.ts +24 -1
- package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
- package/dist/unstable/sql/SqlSchema.js +24 -3
- 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 +2 -2
- package/dist/unstable/workflow/WorkflowEngine.d.ts +8 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +133 -1
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +2 -2
- package/src/Cache.ts +3 -3
- package/src/Cause.ts +1 -1
- package/src/Channel.ts +15 -13
- package/src/Combiner.ts +280 -13
- package/src/Config.ts +3 -3
- package/src/Data.ts +538 -374
- package/src/DateTime.ts +24 -164
- package/src/Duration.ts +15 -15
- package/src/Effect.ts +378 -269
- package/src/Encoding.ts +879 -0
- package/src/Equal.ts +278 -111
- package/src/ErrorReporter.ts +459 -0
- package/src/FileSystem.ts +7 -8
- package/src/Filter.ts +48 -1
- package/src/Formatter.ts +253 -51
- package/src/Graph.ts +8 -5
- package/src/JsonSchema.ts +383 -10
- package/src/Latch.ts +112 -0
- package/src/LayerMap.ts +5 -5
- package/src/LogLevel.ts +37 -0
- package/src/Logger.ts +33 -100
- package/src/Metric.ts +4 -4
- package/src/Optic.ts +948 -19
- 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/Queue.ts +0 -1
- package/src/Random.ts +33 -14
- package/src/RcMap.ts +5 -5
- package/src/RcRef.ts +1 -1
- 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 +279 -140
- package/src/Schema.ts +575 -113
- package/src/SchemaAST.ts +2 -1
- package/src/SchemaGetter.ts +12 -14
- package/src/SchemaRepresentation.ts +43 -24
- package/src/SchemaTransformation.ts +104 -0
- package/src/ScopedCache.ts +3 -3
- package/src/Semaphore.ts +356 -0
- package/src/Stream.ts +50 -49
- package/src/Struct.ts +26 -0
- package/src/SubscriptionRef.ts +3 -2
- package/src/SynchronizedRef.ts +3 -2
- package/src/Types.ts +12 -2
- package/src/index.ts +507 -20
- package/src/internal/core.ts +12 -5
- package/src/internal/dateTime.ts +9 -30
- package/src/internal/effect.ts +194 -51
- package/src/internal/hashMap.ts +2 -2
- package/src/internal/random.ts +20 -0
- package/src/internal/rcRef.ts +4 -3
- package/src/testing/TestClock.ts +13 -11
- package/src/testing/TestSchema.ts +8 -8
- package/src/unstable/ai/AiError.ts +2 -2
- package/src/unstable/ai/Chat.ts +12 -11
- package/src/unstable/ai/LanguageModel.ts +74 -3
- package/src/unstable/ai/McpServer.ts +2 -2
- package/src/unstable/ai/Prompt.ts +37 -37
- package/src/unstable/ai/Response.ts +25 -25
- package/src/unstable/cli/CliOutput.ts +45 -6
- package/src/unstable/cli/Command.ts +298 -11
- package/src/unstable/cli/HelpDoc.ts +68 -2
- package/src/unstable/cli/internal/command.ts +47 -11
- package/src/unstable/cli/internal/completions/CommandDescriptor.ts +7 -2
- package/src/unstable/cli/internal/parser.ts +11 -3
- package/src/unstable/cluster/ClusterCron.ts +2 -2
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +3 -2
- package/src/unstable/cluster/Entity.ts +7 -6
- package/src/unstable/cluster/EntityResource.ts +4 -4
- package/src/unstable/cluster/Envelope.ts +1 -1
- package/src/unstable/cluster/K8sHttpClient.ts +1 -1
- package/src/unstable/cluster/MessageStorage.ts +3 -5
- package/src/unstable/cluster/Runners.ts +6 -5
- package/src/unstable/cluster/Sharding.ts +11 -9
- package/src/unstable/cluster/ShardingConfig.ts +10 -11
- 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 +2 -4
- 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 +19 -19
- package/src/unstable/http/HttpClientRequest.ts +38 -13
- package/src/unstable/http/HttpEffect.ts +27 -30
- package/src/unstable/http/HttpMethod.ts +16 -4
- package/src/unstable/http/HttpMiddleware.ts +5 -10
- package/src/unstable/http/HttpServerError.ts +13 -27
- 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/httpapi/HttpApiBuilder.ts +6 -5
- package/src/unstable/httpapi/HttpApiClient.ts +3 -3
- package/src/unstable/httpapi/HttpApiEndpoint.ts +47 -72
- package/src/unstable/httpapi/HttpApiError.ts +30 -9
- package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
- package/src/unstable/httpapi/OpenApi.ts +18 -16
- 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 +2 -2
- package/src/unstable/process/ChildProcessSpawner.ts +6 -0
- package/src/unstable/reactivity/Atom.ts +20 -18
- package/src/unstable/reactivity/AtomHttpApi.ts +19 -18
- package/src/unstable/reactivity/AtomRegistry.ts +29 -1
- 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 +3 -3
- package/src/unstable/rpc/RpcClient.ts +12 -54
- package/src/unstable/rpc/RpcServer.ts +10 -4
- package/src/unstable/rpc/Utils.ts +2 -1
- package/src/unstable/schema/VariantSchema.ts +36 -7
- package/src/unstable/socket/Socket.ts +7 -6
- package/src/unstable/sql/SqlModel.ts +2 -2
- package/src/unstable/sql/SqlSchema.ts +62 -13
- 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/WorkflowEngine.ts +181 -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/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/Schedule.ts
CHANGED
|
@@ -36,8 +36,9 @@ import * as Duration from "./Duration.ts"
|
|
|
36
36
|
import type { Effect } from "./Effect.ts"
|
|
37
37
|
import type { LazyArg } from "./Function.ts"
|
|
38
38
|
import { constant, dual, identity } from "./Function.ts"
|
|
39
|
-
|
|
39
|
+
import { isEffect } from "./internal/core.ts"
|
|
40
40
|
import * as effect from "./internal/effect.ts"
|
|
41
|
+
import * as random from "./internal/random.ts"
|
|
41
42
|
import { type Pipeable, pipeArguments } from "./Pipeable.ts"
|
|
42
43
|
import { hasProperty } from "./Predicate.ts"
|
|
43
44
|
import * as Pull from "./Pull.ts"
|
|
@@ -47,6 +48,8 @@ import type { Contravariant, Covariant, Mutable } from "./Types.ts"
|
|
|
47
48
|
|
|
48
49
|
const TypeId = "~effect/Schedule"
|
|
49
50
|
|
|
51
|
+
const randomNext: Effect<number> = random.Random.useSync((random) => random.nextDoubleUnsafe())
|
|
52
|
+
|
|
50
53
|
/**
|
|
51
54
|
* A Schedule defines a strategy for repeating or retrying effects based on some policy.
|
|
52
55
|
*
|
|
@@ -346,7 +349,7 @@ export const fromStep = <Input, Output, EnvX, Error, ErrorX, Env>(
|
|
|
346
349
|
Error,
|
|
347
350
|
Env
|
|
348
351
|
>
|
|
349
|
-
): Schedule<Output, Input, Error | ErrorX
|
|
352
|
+
): Schedule<Output, Input, Error | Pull.ExcludeDone<ErrorX>, Env | EnvX> => {
|
|
350
353
|
const self = Object.create(ScheduleProto)
|
|
351
354
|
self.step = step
|
|
352
355
|
return self
|
|
@@ -395,7 +398,7 @@ export const fromStepWithMetadata = <Input, Output, EnvX, ErrorX, Error, Env>(
|
|
|
395
398
|
Error,
|
|
396
399
|
Env
|
|
397
400
|
>
|
|
398
|
-
): Schedule<Output, Input, Error | ErrorX
|
|
401
|
+
): Schedule<Output, Input, Error | Pull.ExcludeDone<ErrorX>, Env | EnvX> =>
|
|
399
402
|
fromStep(effect.map(step, (f) => {
|
|
400
403
|
const meta = metadataFn()
|
|
401
404
|
return (now, input) => f(meta(now, input))
|
|
@@ -747,7 +750,7 @@ export const addDelay: {
|
|
|
747
750
|
* @since 2.0.0
|
|
748
751
|
* @category utils
|
|
749
752
|
*/
|
|
750
|
-
<Output, Error2 = never, Env2 = never>(f: (output: Output) => Effect<Duration.
|
|
753
|
+
<Output, Error2 = never, Env2 = never>(f: (output: Output) => Effect<Duration.Input, Error2, Env2>): <Input, Error, Env>(
|
|
751
754
|
self: Schedule<Output, Input, Error, Env>
|
|
752
755
|
) => Schedule<Output, Input, Error | Error2, Env | Env2>
|
|
753
756
|
/**
|
|
@@ -868,17 +871,16 @@ export const addDelay: {
|
|
|
868
871
|
*/
|
|
869
872
|
<Output, Input, Error, Env, Error2 = never, Env2 = never>(
|
|
870
873
|
self: Schedule<Output, Input, Error, Env>,
|
|
871
|
-
f: (output: Output) => Effect<Duration.
|
|
874
|
+
f: (output: Output) => Effect<Duration.Input, Error2, Env2>
|
|
872
875
|
): Schedule<Output, Input, Error | Error2, Env | Env2>
|
|
873
876
|
} = dual(2, <Output, Input, Error, Env, Error2 = never, Env2 = never>(
|
|
874
877
|
self: Schedule<Output, Input, Error, Env>,
|
|
875
|
-
f: (output: Output) => Effect<Duration.
|
|
878
|
+
f: (output: Output) => Effect<Duration.Input, Error2, Env2>
|
|
876
879
|
): Schedule<Output, Input, Error | Error2, Env | Env2> =>
|
|
877
880
|
modifyDelay(
|
|
878
881
|
self,
|
|
879
882
|
(output, delay) =>
|
|
880
|
-
effect.map(f(output), (d) =>
|
|
881
|
-
Duration.sum(Duration.fromDurationInputUnsafe(d), Duration.fromDurationInputUnsafe(delay)))
|
|
883
|
+
effect.map(f(output), (d) => Duration.sum(Duration.fromInputUnsafe(d), Duration.fromInputUnsafe(delay)))
|
|
882
884
|
))
|
|
883
885
|
|
|
884
886
|
/**
|
|
@@ -1140,116 +1142,211 @@ export const andThenResult: {
|
|
|
1140
1142
|
} = dual(2, <Output, Input, Error, Env, Output2, Input2, Error2, Env2>(
|
|
1141
1143
|
self: Schedule<Output, Input, Error, Env>,
|
|
1142
1144
|
other: Schedule<Output2, Input2, Error2, Env2>
|
|
1143
|
-
): Schedule<Result.Result<
|
|
1144
|
-
fromStep(effect.
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1145
|
+
): Schedule<Result.Result<Output, Output2>, Input & Input2, Error | Error2, Env | Env2> =>
|
|
1146
|
+
fromStep(effect.sync(() => {
|
|
1147
|
+
let currentSide = 0
|
|
1148
|
+
let currentStep:
|
|
1149
|
+
| undefined
|
|
1150
|
+
| ((now: number, input: Input & Input2) => Pull.Pull<
|
|
1151
|
+
[Result.Result<Output, Output2>, Duration.Duration],
|
|
1149
1152
|
Error | Error2,
|
|
1150
|
-
Output
|
|
1153
|
+
Result.Result<Output, Output2>,
|
|
1151
1154
|
Env | Env2
|
|
1152
|
-
>
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1155
|
+
>)
|
|
1156
|
+
const left = map(self, Result.succeed)
|
|
1157
|
+
const right = map(other, Result.fail)
|
|
1158
|
+
return function recur(
|
|
1159
|
+
now,
|
|
1160
|
+
input
|
|
1161
|
+
): Pull.Pull<
|
|
1162
|
+
[Result.Result<Output, Output2>, Duration.Duration],
|
|
1163
|
+
Error | Error2,
|
|
1164
|
+
Result.Result<Output, Output2>,
|
|
1165
|
+
Env | Env2
|
|
1166
|
+
> {
|
|
1167
|
+
if (currentStep) return currentStep(now, input)
|
|
1168
|
+
return toStep<
|
|
1169
|
+
/**
|
|
1170
|
+
* Returns a new `Schedule` that will first execute the left (i.e. `self`)
|
|
1171
|
+
* schedule to completion. Once the left schedule is complete, the right (i.e.
|
|
1172
|
+
* `other`) schedule will be executed to completion.
|
|
1173
|
+
*
|
|
1174
|
+
* The output of the resulting schedule is a `Result` where outputs of the
|
|
1175
|
+
* left schedule are emitted as `Result.Err<Output>` and outputs of the right
|
|
1176
|
+
* schedule are emitted as `Result.Ok<Output>`.
|
|
1177
|
+
*
|
|
1178
|
+
* @example
|
|
1179
|
+
* ```ts
|
|
1180
|
+
* import { Console, Effect, Result, Schedule } from "effect"
|
|
1181
|
+
*
|
|
1182
|
+
* // Track which phase of the schedule we're in
|
|
1183
|
+
* const phaseTracker = Schedule.andThenResult(
|
|
1184
|
+
* Schedule.exponential("100 millis").pipe(Schedule.take(2)),
|
|
1185
|
+
* Schedule.spaced("500 millis").pipe(Schedule.take(2))
|
|
1186
|
+
* )
|
|
1187
|
+
*
|
|
1188
|
+
* const program = Effect.gen(function*() {
|
|
1189
|
+
* yield* Effect.repeat(
|
|
1190
|
+
* Effect.gen(function*() {
|
|
1191
|
+
* yield* Console.log("Task executed")
|
|
1192
|
+
* return "task-result"
|
|
1193
|
+
* }),
|
|
1194
|
+
* phaseTracker.pipe(
|
|
1195
|
+
* Schedule.tapOutput((result) =>
|
|
1196
|
+
* Result.match(result, {
|
|
1197
|
+
* onFailure: (phase1Output) => Console.log(`Phase 1: ${phase1Output}`),
|
|
1198
|
+
* onSuccess: (phase2Output) => Console.log(`Phase 2: ${phase2Output}`)
|
|
1199
|
+
* })
|
|
1200
|
+
* )
|
|
1201
|
+
* )
|
|
1202
|
+
* )
|
|
1203
|
+
* })
|
|
1204
|
+
* ```
|
|
1205
|
+
*
|
|
1206
|
+
* @since 2.0.0
|
|
1207
|
+
* @category sequencing
|
|
1208
|
+
*/
|
|
1209
|
+
Result.Result<Output, Output2>,
|
|
1210
|
+
/**
|
|
1211
|
+
* Returns a new `Schedule` that will first execute the left (i.e. `self`)
|
|
1212
|
+
* schedule to completion. Once the left schedule is complete, the right (i.e.
|
|
1213
|
+
* `other`) schedule will be executed to completion.
|
|
1214
|
+
*
|
|
1215
|
+
* The output of the resulting schedule is a `Result` where outputs of the
|
|
1216
|
+
* left schedule are emitted as `Result.Err<Output>` and outputs of the right
|
|
1217
|
+
* schedule are emitted as `Result.Ok<Output>`.
|
|
1218
|
+
*
|
|
1219
|
+
* @example
|
|
1220
|
+
* ```ts
|
|
1221
|
+
* import { Console, Effect, Result, Schedule } from "effect"
|
|
1222
|
+
*
|
|
1223
|
+
* // Track which phase of the schedule we're in
|
|
1224
|
+
* const phaseTracker = Schedule.andThenResult(
|
|
1225
|
+
* Schedule.exponential("100 millis").pipe(Schedule.take(2)),
|
|
1226
|
+
* Schedule.spaced("500 millis").pipe(Schedule.take(2))
|
|
1227
|
+
* )
|
|
1228
|
+
*
|
|
1229
|
+
* const program = Effect.gen(function*() {
|
|
1230
|
+
* yield* Effect.repeat(
|
|
1231
|
+
* Effect.gen(function*() {
|
|
1232
|
+
* yield* Console.log("Task executed")
|
|
1233
|
+
* return "task-result"
|
|
1234
|
+
* }),
|
|
1235
|
+
* phaseTracker.pipe(
|
|
1236
|
+
* Schedule.tapOutput((result) =>
|
|
1237
|
+
* Result.match(result, {
|
|
1238
|
+
* onFailure: (phase1Output) => Console.log(`Phase 1: ${phase1Output}`),
|
|
1239
|
+
* onSuccess: (phase2Output) => Console.log(`Phase 2: ${phase2Output}`)
|
|
1240
|
+
* })
|
|
1241
|
+
* )
|
|
1242
|
+
* )
|
|
1243
|
+
* )
|
|
1244
|
+
* })
|
|
1245
|
+
* ```
|
|
1246
|
+
*
|
|
1247
|
+
* @since 2.0.0
|
|
1248
|
+
* @category sequencing
|
|
1249
|
+
*/
|
|
1250
|
+
Input & Input2,
|
|
1251
|
+
/**
|
|
1252
|
+
* Returns a new `Schedule` that will first execute the left (i.e. `self`)
|
|
1253
|
+
* schedule to completion. Once the left schedule is complete, the right (i.e.
|
|
1254
|
+
* `other`) schedule will be executed to completion.
|
|
1255
|
+
*
|
|
1256
|
+
* The output of the resulting schedule is a `Result` where outputs of the
|
|
1257
|
+
* left schedule are emitted as `Result.Err<Output>` and outputs of the right
|
|
1258
|
+
* schedule are emitted as `Result.Ok<Output>`.
|
|
1259
|
+
*
|
|
1260
|
+
* @example
|
|
1261
|
+
* ```ts
|
|
1262
|
+
* import { Console, Effect, Result, Schedule } from "effect"
|
|
1263
|
+
*
|
|
1264
|
+
* // Track which phase of the schedule we're in
|
|
1265
|
+
* const phaseTracker = Schedule.andThenResult(
|
|
1266
|
+
* Schedule.exponential("100 millis").pipe(Schedule.take(2)),
|
|
1267
|
+
* Schedule.spaced("500 millis").pipe(Schedule.take(2))
|
|
1268
|
+
* )
|
|
1269
|
+
*
|
|
1270
|
+
* const program = Effect.gen(function*() {
|
|
1271
|
+
* yield* Effect.repeat(
|
|
1272
|
+
* Effect.gen(function*() {
|
|
1273
|
+
* yield* Console.log("Task executed")
|
|
1274
|
+
* return "task-result"
|
|
1275
|
+
* }),
|
|
1276
|
+
* phaseTracker.pipe(
|
|
1277
|
+
* Schedule.tapOutput((result) =>
|
|
1278
|
+
* Result.match(result, {
|
|
1279
|
+
* onFailure: (phase1Output) => Console.log(`Phase 1: ${phase1Output}`),
|
|
1280
|
+
* onSuccess: (phase2Output) => Console.log(`Phase 2: ${phase2Output}`)
|
|
1281
|
+
* })
|
|
1282
|
+
* )
|
|
1283
|
+
* )
|
|
1284
|
+
* )
|
|
1285
|
+
* })
|
|
1286
|
+
* ```
|
|
1287
|
+
*
|
|
1288
|
+
* @since 2.0.0
|
|
1289
|
+
* @category sequencing
|
|
1290
|
+
*/
|
|
1291
|
+
Error | Error2,
|
|
1292
|
+
/**
|
|
1293
|
+
* Returns a new `Schedule` that will first execute the left (i.e. `self`)
|
|
1294
|
+
* schedule to completion. Once the left schedule is complete, the right (i.e.
|
|
1295
|
+
* `other`) schedule will be executed to completion.
|
|
1296
|
+
*
|
|
1297
|
+
* The output of the resulting schedule is a `Result` where outputs of the
|
|
1298
|
+
* left schedule are emitted as `Result.Err<Output>` and outputs of the right
|
|
1299
|
+
* schedule are emitted as `Result.Ok<Output>`.
|
|
1300
|
+
*
|
|
1301
|
+
* @example
|
|
1302
|
+
* ```ts
|
|
1303
|
+
* import { Console, Effect, Result, Schedule } from "effect"
|
|
1304
|
+
*
|
|
1305
|
+
* // Track which phase of the schedule we're in
|
|
1306
|
+
* const phaseTracker = Schedule.andThenResult(
|
|
1307
|
+
* Schedule.exponential("100 millis").pipe(Schedule.take(2)),
|
|
1308
|
+
* Schedule.spaced("500 millis").pipe(Schedule.take(2))
|
|
1309
|
+
* )
|
|
1310
|
+
*
|
|
1311
|
+
* const program = Effect.gen(function*() {
|
|
1312
|
+
* yield* Effect.repeat(
|
|
1313
|
+
* Effect.gen(function*() {
|
|
1314
|
+
* yield* Console.log("Task executed")
|
|
1315
|
+
* return "task-result"
|
|
1316
|
+
* }),
|
|
1317
|
+
* phaseTracker.pipe(
|
|
1318
|
+
* Schedule.tapOutput((result) =>
|
|
1319
|
+
* Result.match(result, {
|
|
1320
|
+
* onFailure: (phase1Output) => Console.log(`Phase 1: ${phase1Output}`),
|
|
1321
|
+
* onSuccess: (phase2Output) => Console.log(`Phase 2: ${phase2Output}`)
|
|
1322
|
+
* })
|
|
1323
|
+
* )
|
|
1324
|
+
* )
|
|
1325
|
+
* )
|
|
1326
|
+
* })
|
|
1327
|
+
* ```
|
|
1328
|
+
*
|
|
1329
|
+
* @since 2.0.0
|
|
1330
|
+
* @category sequencing
|
|
1331
|
+
*/
|
|
1332
|
+
Env | Env2
|
|
1333
|
+
>(currentSide === 0 ? left : right).pipe(
|
|
1334
|
+
effect.flatMap((step) => {
|
|
1335
|
+
currentSide++
|
|
1336
|
+
if (currentSide === 1) {
|
|
1337
|
+
currentStep = (now, input) =>
|
|
1338
|
+
Pull.catchDone(step(now, input), (_) => {
|
|
1339
|
+
currentStep = undefined
|
|
1340
|
+
return recur(now, input)
|
|
1341
|
+
})
|
|
1342
|
+
return currentStep(now, input)
|
|
1343
|
+
}
|
|
1344
|
+
currentStep = step
|
|
1345
|
+
return currentStep(now, input)
|
|
1346
|
+
})
|
|
1347
|
+
);
|
|
1348
|
+
};
|
|
1349
|
+
})))
|
|
1253
1350
|
|
|
1254
1351
|
/**
|
|
1255
1352
|
* Combines two `Schedule`s by recurring if both of the two schedules want
|
|
@@ -2916,6 +3013,24 @@ export const delays = <Out, In, E, R>(self: Schedule<Out, In, E, R>): Schedule<D
|
|
|
2916
3013
|
)
|
|
2917
3014
|
)
|
|
2918
3015
|
|
|
3016
|
+
/**
|
|
3017
|
+
* Returns a schedule that recurs once after the specified duration.
|
|
3018
|
+
*
|
|
3019
|
+
* The schedule outputs the configured duration for its first recurrence and
|
|
3020
|
+
* then completes.
|
|
3021
|
+
*
|
|
3022
|
+
* @since 2.0.0
|
|
3023
|
+
* @category constructors
|
|
3024
|
+
*/
|
|
3025
|
+
export const duration = (durationInput: Duration.Input): Schedule<Duration.Duration> => {
|
|
3026
|
+
const duration = Duration.fromInputUnsafe(durationInput)
|
|
3027
|
+
return fromStepWithMetadata(effect.succeed((meta) =>
|
|
3028
|
+
meta.attempt === 1
|
|
3029
|
+
? effect.succeed([duration, duration])
|
|
3030
|
+
: Cause.done(Duration.zero)
|
|
3031
|
+
))
|
|
3032
|
+
}
|
|
3033
|
+
|
|
2919
3034
|
/**
|
|
2920
3035
|
* Returns a new `Schedule` that will always recur, but only during the
|
|
2921
3036
|
* specified `duration` of time.
|
|
@@ -3001,10 +3116,10 @@ export const delays = <Out, In, E, R>(self: Schedule<Out, In, E, R>): Schedule<D
|
|
|
3001
3116
|
* @since 4.0.0
|
|
3002
3117
|
* @category constructors
|
|
3003
3118
|
*/
|
|
3004
|
-
export const during = (duration: Duration.
|
|
3119
|
+
export const during = (duration: Duration.Input): Schedule<Duration.Duration> =>
|
|
3005
3120
|
while_(
|
|
3006
3121
|
elapsed,
|
|
3007
|
-
({ output }) => effect.succeed(Duration.isLessThanOrEqualTo(output, Duration.
|
|
3122
|
+
({ output }) => effect.succeed(Duration.isLessThanOrEqualTo(output, Duration.fromInputUnsafe(duration)))
|
|
3008
3123
|
)
|
|
3009
3124
|
|
|
3010
3125
|
/**
|
|
@@ -3744,10 +3859,10 @@ export const elapsed: Schedule<Duration.Duration> = fromStepWithMetadata(
|
|
|
3744
3859
|
* @category constructors
|
|
3745
3860
|
*/
|
|
3746
3861
|
export const exponential = (
|
|
3747
|
-
base: Duration.
|
|
3862
|
+
base: Duration.Input,
|
|
3748
3863
|
factor: number = 2
|
|
3749
3864
|
): Schedule<Duration.Duration> => {
|
|
3750
|
-
const baseMillis = Duration.toMillis(Duration.
|
|
3865
|
+
const baseMillis = Duration.toMillis(Duration.fromInputUnsafe(base))
|
|
3751
3866
|
return fromStepWithMetadata(effect.succeed((meta) => {
|
|
3752
3867
|
const duration = Duration.millis(baseMillis * Math.pow(factor, meta.attempt - 1))
|
|
3753
3868
|
return effect.succeed([duration, duration])
|
|
@@ -3818,8 +3933,8 @@ export const exponential = (
|
|
|
3818
3933
|
* @since 2.0.0
|
|
3819
3934
|
* @category constructors
|
|
3820
3935
|
*/
|
|
3821
|
-
export const fibonacci = (one: Duration.
|
|
3822
|
-
const oneMillis = Duration.toMillis(Duration.
|
|
3936
|
+
export const fibonacci = (one: Duration.Input): Schedule<Duration.Duration> => {
|
|
3937
|
+
const oneMillis = Duration.toMillis(Duration.fromInputUnsafe(one))
|
|
3823
3938
|
return fromStep(effect.sync(() => {
|
|
3824
3939
|
let a = 0
|
|
3825
3940
|
let b = oneMillis
|
|
@@ -3895,8 +4010,8 @@ export const fibonacci = (one: Duration.DurationInput): Schedule<Duration.Durati
|
|
|
3895
4010
|
* @since 2.0.0
|
|
3896
4011
|
* @category constructors
|
|
3897
4012
|
*/
|
|
3898
|
-
export const fixed = (interval: Duration.
|
|
3899
|
-
const window = Duration.toMillis(Duration.
|
|
4013
|
+
export const fixed = (interval: Duration.Input): Schedule<number> => {
|
|
4014
|
+
const window = Duration.toMillis(Duration.fromInputUnsafe(interval))
|
|
3900
4015
|
return fromStepWithMetadata(effect.succeed((meta) =>
|
|
3901
4016
|
effect.succeed([
|
|
3902
4017
|
meta.attempt - 1,
|
|
@@ -4032,7 +4147,7 @@ export const map: {
|
|
|
4032
4147
|
* @since 2.0.0
|
|
4033
4148
|
* @category mapping
|
|
4034
4149
|
*/
|
|
4035
|
-
<Output, Output2, Error2 = never, Env2 = never>(f: (output: Output) => Effect<Output2, Error2, Env2>): <Input, Error, Env>(
|
|
4150
|
+
<Output, Output2, Error2 = never, Env2 = never>(f: (output: Output) => Output2 | Effect<Output2, Error2, Env2>): <Input, Error, Env>(
|
|
4036
4151
|
self: Schedule<Output, Input, Error, Env>
|
|
4037
4152
|
) => Schedule<Output2, Input, Error | Error2, Env | Env2>
|
|
4038
4153
|
/**
|
|
@@ -4099,17 +4214,24 @@ export const map: {
|
|
|
4099
4214
|
*/
|
|
4100
4215
|
<Output, Input, Error, Env, Output2, Error2 = never, Env2 = never>(
|
|
4101
4216
|
self: Schedule<Output, Input, Error, Env>,
|
|
4102
|
-
f: (output: Output) => Effect<Output2, Error2, Env2>
|
|
4217
|
+
f: (output: Output) => Output2 | Effect<Output2, Error2, Env2>
|
|
4103
4218
|
): Schedule<Output2, Input, Error | Error2, Env | Env2>
|
|
4104
4219
|
} = dual(2, <Output, Input, Error, Env, Output2, Error2 = never, Env2 = never>(
|
|
4105
4220
|
self: Schedule<Output, Input, Error, Env>,
|
|
4106
|
-
f: (output: Output) => Effect<Output2, Error2, Env2>
|
|
4221
|
+
f: (output: Output) => Output2 | Effect<Output2, Error2, Env2>
|
|
4107
4222
|
): Schedule<Output2, Input, Error | Error2, Env | Env2> => {
|
|
4108
4223
|
const handle = Pull.matchEffect({
|
|
4109
|
-
onSuccess: ([output, duration]: [Output, Duration.Duration]) =>
|
|
4110
|
-
|
|
4224
|
+
onSuccess: ([output, duration]: [Output, Duration.Duration]) => {
|
|
4225
|
+
const result = f(output)
|
|
4226
|
+
if (!isEffect(result)) return effect.succeed([result, duration] as [Output2, Duration.Duration])
|
|
4227
|
+
return effect.map(result, (output) => [output, duration] as [Output2, Duration.Duration])
|
|
4228
|
+
},
|
|
4111
4229
|
onFailure: effect.failCause<Error>,
|
|
4112
|
-
onDone: (output: Output) =>
|
|
4230
|
+
onDone: (output: Output) => {
|
|
4231
|
+
const result = f(output)
|
|
4232
|
+
if (!isEffect(result)) return Cause.done(result as Output2)
|
|
4233
|
+
return effect.flatMap(result, Cause.done)
|
|
4234
|
+
}
|
|
4113
4235
|
})
|
|
4114
4236
|
return fromStep(effect.map(toStep(self), (step) => (now, input) => handle(step(now, input))))
|
|
4115
4237
|
})
|
|
@@ -4183,7 +4305,7 @@ export const modifyDelay: {
|
|
|
4183
4305
|
f: (
|
|
4184
4306
|
output: Output,
|
|
4185
4307
|
delay: Duration.Duration
|
|
4186
|
-
) => Effect<Duration.
|
|
4308
|
+
) => Effect<Duration.Input, Error2, Env2>
|
|
4187
4309
|
): <Input, Error, Env>(
|
|
4188
4310
|
self: Schedule<Output, Input, Error, Env>
|
|
4189
4311
|
) => Schedule<Output, Input, Error | Error2, Env | Env2>
|
|
@@ -4223,22 +4345,39 @@ export const modifyDelay: {
|
|
|
4223
4345
|
self: Schedule<Output, Input, Error, Env>,
|
|
4224
4346
|
f: (
|
|
4225
4347
|
output: Output,
|
|
4226
|
-
delay: Duration.
|
|
4227
|
-
) => Effect<Duration.
|
|
4348
|
+
delay: Duration.Input
|
|
4349
|
+
) => Effect<Duration.Input, Error2, Env2>
|
|
4228
4350
|
): Schedule<Output, Input, Error | Error2, Env | Env2>
|
|
4229
4351
|
} = dual(2, <Output, Input, Error, Env, Error2 = never, Env2 = never>(
|
|
4230
4352
|
self: Schedule<Output, Input, Error, Env>,
|
|
4231
4353
|
f: (
|
|
4232
4354
|
output: Output,
|
|
4233
|
-
delay: Duration.
|
|
4234
|
-
) => Effect<Duration.
|
|
4355
|
+
delay: Duration.Input
|
|
4356
|
+
) => Effect<Duration.Input, Error2, Env2>
|
|
4235
4357
|
): Schedule<Output, Input, Error | Error2, Env | Env2> =>
|
|
4236
4358
|
fromStep(effect.map(toStep(self), (step) => (now, input) =>
|
|
4237
4359
|
effect.flatMap(
|
|
4238
4360
|
step(now, input),
|
|
4239
|
-
([output, delay]) => effect.map(f(output, delay), (delay) => [output, Duration.
|
|
4361
|
+
([output, delay]) => effect.map(f(output, delay), (delay) => [output, Duration.fromInputUnsafe(delay)])
|
|
4240
4362
|
))))
|
|
4241
4363
|
|
|
4364
|
+
/**
|
|
4365
|
+
* Returns a new `Schedule` that randomly adjusts each recurrence delay.
|
|
4366
|
+
*
|
|
4367
|
+
* Delays are jittered between `80%` and `120%` of the original delay.
|
|
4368
|
+
*
|
|
4369
|
+
* @since 2.0.0
|
|
4370
|
+
* @category utilities
|
|
4371
|
+
*/
|
|
4372
|
+
export const jittered = <Output, Input, Error, Env>(
|
|
4373
|
+
self: Schedule<Output, Input, Error, Env>
|
|
4374
|
+
): Schedule<Output, Input, Error, Env> =>
|
|
4375
|
+
modifyDelay(self, (_, delay) =>
|
|
4376
|
+
effect.map(randomNext, (random) => {
|
|
4377
|
+
const millis = Duration.toMillis(Duration.fromInputUnsafe(delay))
|
|
4378
|
+
return Duration.millis(millis * 0.8 * (1 - random) + millis * 1.2 * random)
|
|
4379
|
+
}))
|
|
4380
|
+
|
|
4242
4381
|
/**
|
|
4243
4382
|
* Returns a new `Schedule` that outputs the inputs of the specified schedule.
|
|
4244
4383
|
*
|
|
@@ -4747,8 +4886,8 @@ export const reduce: {
|
|
|
4747
4886
|
* @since 2.0.0
|
|
4748
4887
|
* @category constructors
|
|
4749
4888
|
*/
|
|
4750
|
-
export const spaced = (duration: Duration.
|
|
4751
|
-
const decoded = Duration.
|
|
4889
|
+
export const spaced = (duration: Duration.Input): Schedule<number> => {
|
|
4890
|
+
const decoded = Duration.fromInputUnsafe(duration)
|
|
4752
4891
|
return fromStepWithMetadata(effect.succeed((meta) => effect.succeed([meta.attempt - 1, decoded])))
|
|
4753
4892
|
}
|
|
4754
4893
|
|
|
@@ -5838,8 +5977,8 @@ export {
|
|
|
5838
5977
|
* @since 2.0.0
|
|
5839
5978
|
* @category constructors
|
|
5840
5979
|
*/
|
|
5841
|
-
export const windowed = (interval: Duration.
|
|
5842
|
-
const window = Duration.toMillis(Duration.
|
|
5980
|
+
export const windowed = (interval: Duration.Input): Schedule<number> => {
|
|
5981
|
+
const window = Duration.toMillis(Duration.fromInputUnsafe(interval))
|
|
5843
5982
|
return fromStepWithMetadata(effect.succeed((meta) =>
|
|
5844
5983
|
effect.sync(() => [
|
|
5845
5984
|
meta.attempt - 1,
|