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
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
+
import type { NonEmptyReadonlyArray } from "../../Array.ts"
|
|
6
|
+
import type * as ServiceMap from "../../ServiceMap.ts"
|
|
7
|
+
|
|
5
8
|
/**
|
|
6
9
|
* Structured representation of help documentation for a command.
|
|
7
10
|
* This data structure is independent of formatting, allowing for
|
|
@@ -9,11 +12,13 @@
|
|
|
9
12
|
*
|
|
10
13
|
* @example
|
|
11
14
|
* ```ts
|
|
15
|
+
* import { ServiceMap } from "effect"
|
|
12
16
|
* import type * as HelpDoc from "effect/unstable/cli/HelpDoc"
|
|
13
17
|
*
|
|
14
18
|
* const deployCommandHelp: HelpDoc.HelpDoc = {
|
|
15
19
|
* description: "Deploy your application to the cloud",
|
|
16
20
|
* usage: "myapp deploy [options] <target>",
|
|
21
|
+
* annotations: ServiceMap.empty(),
|
|
17
22
|
* flags: [
|
|
18
23
|
* {
|
|
19
24
|
* name: "verbose",
|
|
@@ -62,6 +67,11 @@ export interface HelpDoc {
|
|
|
62
67
|
*/
|
|
63
68
|
readonly flags: ReadonlyArray<FlagDoc>
|
|
64
69
|
|
|
70
|
+
/**
|
|
71
|
+
* Custom command annotations.
|
|
72
|
+
*/
|
|
73
|
+
readonly annotations: ServiceMap.ServiceMap<never>
|
|
74
|
+
|
|
65
75
|
/**
|
|
66
76
|
* List of positional arguments for this command
|
|
67
77
|
*/
|
|
@@ -70,7 +80,30 @@ export interface HelpDoc {
|
|
|
70
80
|
/**
|
|
71
81
|
* Optional list of subcommands if this is a parent command
|
|
72
82
|
*/
|
|
73
|
-
readonly subcommands?: ReadonlyArray<
|
|
83
|
+
readonly subcommands?: ReadonlyArray<SubcommandGroupDoc>
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Optional concrete usage examples for the command
|
|
87
|
+
*/
|
|
88
|
+
readonly examples?: ReadonlyArray<ExampleDoc>
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Documentation for a command usage example
|
|
93
|
+
*
|
|
94
|
+
* @since 4.0.0
|
|
95
|
+
* @category models
|
|
96
|
+
*/
|
|
97
|
+
export interface ExampleDoc {
|
|
98
|
+
/**
|
|
99
|
+
* Command line invocation example
|
|
100
|
+
*/
|
|
101
|
+
readonly command: string
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Optional explanation for the example
|
|
105
|
+
*/
|
|
106
|
+
readonly description?: string | undefined
|
|
74
107
|
}
|
|
75
108
|
|
|
76
109
|
/**
|
|
@@ -132,15 +165,18 @@ export interface FlagDoc {
|
|
|
132
165
|
*
|
|
133
166
|
* @example
|
|
134
167
|
* ```ts
|
|
168
|
+
* import { ServiceMap } from "effect"
|
|
135
169
|
* import type { HelpDoc } from "effect/unstable/cli"
|
|
136
170
|
*
|
|
137
171
|
* const deploySubcommand: HelpDoc.SubcommandDoc = {
|
|
138
172
|
* name: "deploy",
|
|
173
|
+
* shortDescription: "Deploy app",
|
|
139
174
|
* description: "Deploy the application to the cloud"
|
|
140
175
|
* }
|
|
141
176
|
*
|
|
142
177
|
* const buildSubcommand: HelpDoc.SubcommandDoc = {
|
|
143
178
|
* name: "build",
|
|
179
|
+
* shortDescription: undefined,
|
|
144
180
|
* description: "Build the application for production"
|
|
145
181
|
* }
|
|
146
182
|
*
|
|
@@ -148,8 +184,12 @@ export interface FlagDoc {
|
|
|
148
184
|
* const mainCommandHelp: HelpDoc.HelpDoc = {
|
|
149
185
|
* description: "Cloud deployment tool",
|
|
150
186
|
* usage: "myapp <command> [options]",
|
|
187
|
+
* annotations: ServiceMap.empty(),
|
|
151
188
|
* flags: [],
|
|
152
|
-
* subcommands: [
|
|
189
|
+
* subcommands: [{
|
|
190
|
+
* group: undefined,
|
|
191
|
+
* commands: [deploySubcommand, buildSubcommand]
|
|
192
|
+
* }]
|
|
153
193
|
* }
|
|
154
194
|
* ```
|
|
155
195
|
*
|
|
@@ -162,17 +202,42 @@ export interface SubcommandDoc {
|
|
|
162
202
|
*/
|
|
163
203
|
readonly name: string
|
|
164
204
|
|
|
205
|
+
/**
|
|
206
|
+
* Optional short description of what the subcommand does.
|
|
207
|
+
*/
|
|
208
|
+
readonly shortDescription: string | undefined
|
|
209
|
+
|
|
165
210
|
/**
|
|
166
211
|
* Brief description of what the subcommand does
|
|
167
212
|
*/
|
|
168
213
|
readonly description: string
|
|
169
214
|
}
|
|
170
215
|
|
|
216
|
+
/**
|
|
217
|
+
* Documentation for a grouped subcommand listing
|
|
218
|
+
*
|
|
219
|
+
* @since 4.0.0
|
|
220
|
+
* @category models
|
|
221
|
+
*/
|
|
222
|
+
export interface SubcommandGroupDoc {
|
|
223
|
+
/**
|
|
224
|
+
* Group name used in help output.
|
|
225
|
+
* Undefined means the default ungrouped section.
|
|
226
|
+
*/
|
|
227
|
+
readonly group: string | undefined
|
|
228
|
+
|
|
229
|
+
/**
|
|
230
|
+
* Subcommands in this group.
|
|
231
|
+
*/
|
|
232
|
+
readonly commands: NonEmptyReadonlyArray<SubcommandDoc>
|
|
233
|
+
}
|
|
234
|
+
|
|
171
235
|
/**
|
|
172
236
|
* Documentation for a positional argument
|
|
173
237
|
*
|
|
174
238
|
* @example
|
|
175
239
|
* ```ts
|
|
240
|
+
* import { ServiceMap } from "effect"
|
|
176
241
|
* import type { HelpDoc } from "effect/unstable/cli"
|
|
177
242
|
*
|
|
178
243
|
* const sourceArg: HelpDoc.ArgDoc = {
|
|
@@ -195,6 +260,7 @@ export interface SubcommandDoc {
|
|
|
195
260
|
* const copyCommandHelp: HelpDoc.HelpDoc = {
|
|
196
261
|
* description: "Copy files from source to destination",
|
|
197
262
|
* usage: "copy <source> [files...]",
|
|
263
|
+
* annotations: ServiceMap.empty(),
|
|
198
264
|
* flags: [],
|
|
199
265
|
* args: [sourceArg, filesArg]
|
|
200
266
|
* }
|
|
@@ -5,13 +5,14 @@
|
|
|
5
5
|
* Internal implementation details for CLI commands.
|
|
6
6
|
* Public API is in ../Command.ts
|
|
7
7
|
*/
|
|
8
|
+
import * as Arr from "../../../Array.ts"
|
|
8
9
|
import * as Effect from "../../../Effect.ts"
|
|
9
10
|
import { YieldableProto } from "../../../internal/core.ts"
|
|
10
11
|
import { pipeArguments } from "../../../Pipeable.ts"
|
|
11
12
|
import * as Predicate from "../../../Predicate.ts"
|
|
12
13
|
import * as ServiceMap from "../../../ServiceMap.ts"
|
|
13
14
|
import * as CliError from "../CliError.ts"
|
|
14
|
-
import type { ArgDoc, FlagDoc, HelpDoc,
|
|
15
|
+
import type { ArgDoc, ExampleDoc, FlagDoc, HelpDoc, SubcommandGroupDoc } from "../HelpDoc.ts"
|
|
15
16
|
import * as Param from "../Param.ts"
|
|
16
17
|
import * as Primitive from "../Primitive.ts"
|
|
17
18
|
import { type ConfigInternal, reconstructTree } from "./config.ts"
|
|
@@ -22,6 +23,11 @@ import { type ConfigInternal, reconstructTree } from "./config.ts"
|
|
|
22
23
|
|
|
23
24
|
import type { Command, CommandContext, Environment, ParsedTokens } from "../Command.ts"
|
|
24
25
|
|
|
26
|
+
interface SubcommandGroup {
|
|
27
|
+
readonly group: string | undefined
|
|
28
|
+
readonly commands: Arr.NonEmptyReadonlyArray<Command<any, unknown, unknown, unknown>>
|
|
29
|
+
}
|
|
30
|
+
|
|
25
31
|
/**
|
|
26
32
|
* Internal implementation interface with all the machinery.
|
|
27
33
|
* Use toImpl() to access from internal code.
|
|
@@ -29,6 +35,7 @@ import type { Command, CommandContext, Environment, ParsedTokens } from "../Comm
|
|
|
29
35
|
export interface CommandInternal<Name extends string, Input, E, R> extends Command<Name, Input, E, R> {
|
|
30
36
|
readonly config: ConfigInternal
|
|
31
37
|
readonly service: ServiceMap.Service<CommandContext<Name>, Input>
|
|
38
|
+
readonly annotations: ServiceMap.ServiceMap<never>
|
|
32
39
|
readonly parse: (input: ParsedTokens) => Effect.Effect<Input, CliError.CliError, Environment>
|
|
33
40
|
readonly handle: (
|
|
34
41
|
input: Input,
|
|
@@ -80,8 +87,11 @@ export const makeCommand = <const Name extends string, Input, E, R>(options: {
|
|
|
80
87
|
readonly name: Name
|
|
81
88
|
readonly config: ConfigInternal
|
|
82
89
|
readonly service?: ServiceMap.Service<CommandContext<Name>, Input> | undefined
|
|
90
|
+
readonly annotations?: ServiceMap.ServiceMap<never> | undefined
|
|
83
91
|
readonly description?: string | undefined
|
|
84
|
-
readonly
|
|
92
|
+
readonly shortDescription?: string | undefined
|
|
93
|
+
readonly examples?: ReadonlyArray<Command.Example> | undefined
|
|
94
|
+
readonly subcommands?: ReadonlyArray<SubcommandGroup> | undefined
|
|
85
95
|
readonly parse?: ((input: ParsedTokens) => Effect.Effect<Input, CliError.CliError, Environment>) | undefined
|
|
86
96
|
readonly handle?:
|
|
87
97
|
| ((input: Input, commandPath: ReadonlyArray<string>) => Effect.Effect<void, E, R | Environment>)
|
|
@@ -89,6 +99,8 @@ export const makeCommand = <const Name extends string, Input, E, R>(options: {
|
|
|
89
99
|
}): Command<Name, Input, E, R> => {
|
|
90
100
|
const service = options.service ?? ServiceMap.Service<CommandContext<Name>, Input>(`${TypeId}/${options.name}`)
|
|
91
101
|
const config = options.config
|
|
102
|
+
const annotations = options.annotations ?? ServiceMap.empty()
|
|
103
|
+
const subcommands = options.subcommands ?? []
|
|
92
104
|
|
|
93
105
|
const handle = (
|
|
94
106
|
input: Input,
|
|
@@ -123,8 +135,7 @@ export const makeCommand = <const Name extends string, Input, E, R>(options: {
|
|
|
123
135
|
}
|
|
124
136
|
|
|
125
137
|
let usage = commandPath.length > 0 ? commandPath.join(" ") : options.name
|
|
126
|
-
|
|
127
|
-
if (subcommands.length > 0) {
|
|
138
|
+
if (subcommands.some((group) => group.commands.length > 0)) {
|
|
128
139
|
usage += " <subcommand>"
|
|
129
140
|
}
|
|
130
141
|
usage += " [flags]"
|
|
@@ -147,24 +158,38 @@ export const makeCommand = <const Name extends string, Input, E, R>(options: {
|
|
|
147
158
|
}
|
|
148
159
|
}
|
|
149
160
|
|
|
150
|
-
const subcommandDocs: Array<
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
161
|
+
const subcommandDocs: Array<SubcommandGroupDoc> = []
|
|
162
|
+
|
|
163
|
+
for (const group of subcommands) {
|
|
164
|
+
subcommandDocs.push({
|
|
165
|
+
group: group.group,
|
|
166
|
+
commands: Arr.map(group.commands, (subcommand) => ({
|
|
167
|
+
name: subcommand.name,
|
|
168
|
+
shortDescription: subcommand.shortDescription,
|
|
169
|
+
description: subcommand.description ?? ""
|
|
170
|
+
}))
|
|
171
|
+
})
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
const examples: ReadonlyArray<ExampleDoc> = options.examples ?? []
|
|
154
175
|
|
|
155
176
|
return {
|
|
156
177
|
description: options.description ?? "",
|
|
157
178
|
usage,
|
|
158
179
|
flags,
|
|
180
|
+
annotations,
|
|
159
181
|
...(args.length > 0 && { args }),
|
|
160
|
-
...(subcommandDocs.length > 0 && { subcommands: subcommandDocs })
|
|
182
|
+
...(subcommandDocs.length > 0 && { subcommands: subcommandDocs }),
|
|
183
|
+
...(examples.length > 0 && { examples })
|
|
161
184
|
}
|
|
162
185
|
}
|
|
163
186
|
|
|
164
187
|
return Object.assign(Object.create(Proto), {
|
|
165
188
|
[TypeId]: TypeId,
|
|
166
189
|
name: options.name,
|
|
167
|
-
|
|
190
|
+
examples: options.examples ?? [],
|
|
191
|
+
annotations,
|
|
192
|
+
subcommands,
|
|
168
193
|
config,
|
|
169
194
|
service,
|
|
170
195
|
parse,
|
|
@@ -172,6 +197,9 @@ export const makeCommand = <const Name extends string, Input, E, R>(options: {
|
|
|
172
197
|
buildHelpDoc,
|
|
173
198
|
...(Predicate.isNotUndefined(options.description)
|
|
174
199
|
? { description: options.description }
|
|
200
|
+
: {}),
|
|
201
|
+
...(Predicate.isNotUndefined(options.shortDescription)
|
|
202
|
+
? { shortDescription: options.shortDescription }
|
|
175
203
|
: {})
|
|
176
204
|
})
|
|
177
205
|
}
|
|
@@ -255,7 +283,15 @@ export const getHelpForCommandPath = <Name extends string, Input, E, R>(
|
|
|
255
283
|
// Navigate through the command path to find the target command
|
|
256
284
|
for (let i = 1; i < commandPath.length; i++) {
|
|
257
285
|
const subcommandName = commandPath[i]
|
|
258
|
-
|
|
286
|
+
let subcommand: Command.Any | undefined = undefined
|
|
287
|
+
|
|
288
|
+
for (const group of currentCommand.subcommands) {
|
|
289
|
+
subcommand = group.commands.find((sub) => sub.name === subcommandName)
|
|
290
|
+
if (subcommand) {
|
|
291
|
+
break
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
|
|
259
295
|
if (subcommand) {
|
|
260
296
|
currentCommand = subcommand
|
|
261
297
|
}
|
|
@@ -157,11 +157,16 @@ export const fromCommand = (cmd: Command.Any): CommandDescriptor => {
|
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
159
|
|
|
160
|
-
const subcommands: Array<CommandDescriptor> =
|
|
160
|
+
const subcommands: Array<CommandDescriptor> = []
|
|
161
|
+
for (const group of cmd.subcommands) {
|
|
162
|
+
for (const subcommand of group.commands) {
|
|
163
|
+
subcommands.push(fromCommand(subcommand))
|
|
164
|
+
}
|
|
165
|
+
}
|
|
161
166
|
|
|
162
167
|
return {
|
|
163
168
|
name: cmd.name,
|
|
164
|
-
description: cmd.description,
|
|
169
|
+
description: cmd.shortDescription ?? cmd.description,
|
|
165
170
|
flags,
|
|
166
171
|
arguments: args,
|
|
167
172
|
subcommands
|
|
@@ -273,8 +273,16 @@ const createFlagRegistry = (params: ReadonlyArray<FlagParam>): FlagRegistry => {
|
|
|
273
273
|
}
|
|
274
274
|
|
|
275
275
|
const buildSubcommandIndex = (
|
|
276
|
-
subcommands:
|
|
277
|
-
): Map<string, Command<string, unknown, unknown, unknown>> =>
|
|
276
|
+
subcommands: Command.Any["subcommands"]
|
|
277
|
+
): Map<string, Command<string, unknown, unknown, unknown>> => {
|
|
278
|
+
const index = new Map<string, Command<string, unknown, unknown, unknown>>()
|
|
279
|
+
for (const group of subcommands) {
|
|
280
|
+
for (const subcommand of group.commands) {
|
|
281
|
+
index.set(subcommand.name, subcommand)
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
return index
|
|
285
|
+
}
|
|
278
286
|
|
|
279
287
|
/* ========================================================================== */
|
|
280
288
|
/* Flag Accumulator */
|
|
@@ -506,7 +514,7 @@ const resolveFirstValue = (
|
|
|
506
514
|
// Not a subcommand. Check if this looks like a typo.
|
|
507
515
|
const expectsArgs = toImpl(command).config.arguments.length > 0
|
|
508
516
|
if (!expectsArgs && subIndex.size > 0) {
|
|
509
|
-
const suggestions = suggest(value,
|
|
517
|
+
const suggestions = suggest(value, Array.from(subIndex.keys()))
|
|
510
518
|
state.errors.push(
|
|
511
519
|
new CliError.UnknownSubcommand({
|
|
512
520
|
subcommand: value,
|
|
@@ -51,7 +51,7 @@ export const make = <E, R>(options: {
|
|
|
51
51
|
*
|
|
52
52
|
* Defaults to "1 day".
|
|
53
53
|
*/
|
|
54
|
-
readonly skipIfOlderThan?: Duration.
|
|
54
|
+
readonly skipIfOlderThan?: Duration.Input | undefined
|
|
55
55
|
}): Layer.Layer<never, never, Sharding | Exclude<R, Scope>> => {
|
|
56
56
|
const CronEntity = Entity.make(`ClusterCron/${options.name}`, [
|
|
57
57
|
Rpc.make("run", {
|
|
@@ -76,7 +76,7 @@ export const make = <E, R>(options: {
|
|
|
76
76
|
)
|
|
77
77
|
|
|
78
78
|
const skipIfOlderThan = Option.fromUndefinedOr(options.skipIfOlderThan).pipe(
|
|
79
|
-
Option.map(Duration.
|
|
79
|
+
Option.map(Duration.fromInputUnsafe),
|
|
80
80
|
Option.getOrElse(() => Duration.days(1))
|
|
81
81
|
)
|
|
82
82
|
|
|
@@ -6,6 +6,7 @@ import * as Duration from "../../Duration.ts"
|
|
|
6
6
|
import * as Effect from "../../Effect.ts"
|
|
7
7
|
import * as Exit from "../../Exit.ts"
|
|
8
8
|
import * as Fiber from "../../Fiber.ts"
|
|
9
|
+
import * as Latch from "../../Latch.ts"
|
|
9
10
|
import * as Layer from "../../Layer.ts"
|
|
10
11
|
import * as PrimaryKey from "../../PrimaryKey.ts"
|
|
11
12
|
import * as RcMap from "../../RcMap.ts"
|
|
@@ -106,7 +107,7 @@ export const make = Effect.gen(function*() {
|
|
|
106
107
|
readonly services: ServiceMap.ServiceMap<any>
|
|
107
108
|
}>()
|
|
108
109
|
const interruptedActivities = new Set<string>()
|
|
109
|
-
const activityLatches = new Map<string,
|
|
110
|
+
const activityLatches = new Map<string, Latch.Latch>()
|
|
110
111
|
const clients = yield* RcMap.make({
|
|
111
112
|
lookup: Effect.fnUntraced(function*(workflowName: string) {
|
|
112
113
|
const entity = entities.get(workflowName)
|
|
@@ -297,7 +298,7 @@ export const make = Effect.gen(function*() {
|
|
|
297
298
|
return Effect.gen(function*() {
|
|
298
299
|
let entry = activities.get(activityId)
|
|
299
300
|
while (!entry) {
|
|
300
|
-
const latch =
|
|
301
|
+
const latch = Latch.makeUnsafe()
|
|
301
302
|
activityLatches.set(activityId, latch)
|
|
302
303
|
yield* latch.await
|
|
303
304
|
entry = activities.get(activityId)
|
|
@@ -4,12 +4,13 @@
|
|
|
4
4
|
import * as Arr from "../../Array.ts"
|
|
5
5
|
import type * as Cause from "../../Cause.ts"
|
|
6
6
|
import * as Data from "../../Data.ts"
|
|
7
|
-
import type
|
|
7
|
+
import type * as Duration from "../../Duration.ts"
|
|
8
8
|
import * as Effect from "../../Effect.ts"
|
|
9
9
|
import * as Equal from "../../Equal.ts"
|
|
10
10
|
import * as Exit from "../../Exit.ts"
|
|
11
11
|
import { identity } from "../../Function.ts"
|
|
12
12
|
import * as Hash from "../../Hash.ts"
|
|
13
|
+
import type * as Latch from "../../Latch.ts"
|
|
13
14
|
import * as Layer from "../../Layer.ts"
|
|
14
15
|
import * as Predicate from "../../Predicate.ts"
|
|
15
16
|
import * as Queue from "../../Queue.ts"
|
|
@@ -116,7 +117,7 @@ export interface Entity<
|
|
|
116
117
|
>(
|
|
117
118
|
build: Handlers | Effect.Effect<Handlers, never, RX>,
|
|
118
119
|
options?: {
|
|
119
|
-
readonly maxIdleTime?:
|
|
120
|
+
readonly maxIdleTime?: Duration.Input | undefined
|
|
120
121
|
readonly concurrency?: number | "unbounded" | undefined
|
|
121
122
|
readonly mailboxCapacity?: number | "unbounded" | undefined
|
|
122
123
|
readonly disableFatalDefects?: boolean | undefined
|
|
@@ -159,7 +160,7 @@ export interface Entity<
|
|
|
159
160
|
RX
|
|
160
161
|
>,
|
|
161
162
|
options?: {
|
|
162
|
-
readonly maxIdleTime?:
|
|
163
|
+
readonly maxIdleTime?: Duration.Input | undefined
|
|
163
164
|
readonly mailboxCapacity?: number | "unbounded" | undefined
|
|
164
165
|
readonly disableFatalDefects?: boolean | undefined
|
|
165
166
|
readonly defectRetryPolicy?: Schedule.Schedule<any, unknown> | undefined
|
|
@@ -234,7 +235,7 @@ const Proto = {
|
|
|
234
235
|
this: Entity<string, Rpcs>,
|
|
235
236
|
build: Handlers | Effect.Effect<Handlers, never, RX>,
|
|
236
237
|
options?: {
|
|
237
|
-
readonly maxIdleTime?:
|
|
238
|
+
readonly maxIdleTime?: Duration.Input | undefined
|
|
238
239
|
readonly concurrency?: number | "unbounded" | undefined
|
|
239
240
|
readonly mailboxCapacity?: number | "unbounded" | undefined
|
|
240
241
|
readonly disableFatalDefects?: boolean | undefined
|
|
@@ -283,7 +284,7 @@ const Proto = {
|
|
|
283
284
|
RX
|
|
284
285
|
>,
|
|
285
286
|
options?: {
|
|
286
|
-
readonly maxIdleTime?:
|
|
287
|
+
readonly maxIdleTime?: Duration.Input | undefined
|
|
287
288
|
readonly mailboxCapacity?: number | "unbounded" | undefined
|
|
288
289
|
readonly disableFatalDefects?: boolean | undefined
|
|
289
290
|
readonly defectRetryPolicy?: Schedule.Schedule<any, unknown> | undefined
|
|
@@ -642,6 +643,6 @@ export const KeepAliveRpc = Rpc.make("Cluster/Entity/keepAlive")
|
|
|
642
643
|
* @since 4.0.0
|
|
643
644
|
* @category Keep alive
|
|
644
645
|
*/
|
|
645
|
-
export class KeepAliveLatch extends ServiceMap.Service<KeepAliveLatch,
|
|
646
|
+
export class KeepAliveLatch extends ServiceMap.Service<KeepAliveLatch, Latch.Latch>()(
|
|
646
647
|
"effect/cluster/Entity/KeepAliveLatch"
|
|
647
648
|
) {}
|
|
@@ -62,14 +62,14 @@ export class CloseScope extends ServiceMap.Service<
|
|
|
62
62
|
*/
|
|
63
63
|
export const make: <A, E, R>(options: {
|
|
64
64
|
readonly acquire: Effect.Effect<A, E, R>
|
|
65
|
-
readonly idleTimeToLive?: Duration.
|
|
65
|
+
readonly idleTimeToLive?: Duration.Input | undefined
|
|
66
66
|
}) => Effect.Effect<
|
|
67
67
|
EntityResource<A, E>,
|
|
68
68
|
E,
|
|
69
69
|
Scope.Scope | Exclude<R, CloseScope> | Sharding | Entity.CurrentAddress
|
|
70
70
|
> = Effect.fnUntraced(function*<A, E, R>(options: {
|
|
71
71
|
readonly acquire: Effect.Effect<A, E, R>
|
|
72
|
-
readonly idleTimeToLive?: Duration.
|
|
72
|
+
readonly idleTimeToLive?: Duration.Input | undefined
|
|
73
73
|
}) {
|
|
74
74
|
let shuttingDown = false
|
|
75
75
|
|
|
@@ -116,14 +116,14 @@ export const make: <A, E, R>(options: {
|
|
|
116
116
|
export const makeK8sPod: (
|
|
117
117
|
spec: v1.Pod,
|
|
118
118
|
options?: {
|
|
119
|
-
readonly idleTimeToLive?: Duration.
|
|
119
|
+
readonly idleTimeToLive?: Duration.Input | undefined
|
|
120
120
|
} | undefined
|
|
121
121
|
) => Effect.Effect<
|
|
122
122
|
EntityResource<K8sHttpClient.PodStatus>,
|
|
123
123
|
never,
|
|
124
124
|
Scope.Scope | Sharding | Entity.CurrentAddress | K8sHttpClient.K8sHttpClient
|
|
125
125
|
> = Effect.fnUntraced(function*(spec: v1.Pod, options?: {
|
|
126
|
-
readonly idleTimeToLive?: Duration.
|
|
126
|
+
readonly idleTimeToLive?: Duration.Input | undefined
|
|
127
127
|
}) {
|
|
128
128
|
const createPod = yield* K8sHttpClient.makeCreatePod
|
|
129
129
|
return yield* make({
|
|
@@ -218,7 +218,7 @@ export const PartialJson: Schema.Codec<
|
|
|
218
218
|
* @category schemas
|
|
219
219
|
*/
|
|
220
220
|
export const PartialArray: Schema.mutable<
|
|
221
|
-
Schema
|
|
221
|
+
Schema.$Array<Schema.Codec<AckChunk | Interrupt | PartialRequest, Encoded>>
|
|
222
222
|
> = Schema.mutable(Schema.Array(PartialJson))
|
|
223
223
|
|
|
224
224
|
/**
|
|
@@ -156,7 +156,7 @@ export const makeCreatePod = Effect.gen(function*() {
|
|
|
156
156
|
Effect.tapCause(Effect.logInfo),
|
|
157
157
|
Effect.orDie
|
|
158
158
|
)
|
|
159
|
-
const deletePod = HttpClientRequest.
|
|
159
|
+
const deletePod = HttpClientRequest.delete(`/v1/namespaces/${namespace}/pods/${name}`).pipe(
|
|
160
160
|
client.execute,
|
|
161
161
|
Effect.flatMap((res) => res.json),
|
|
162
162
|
Effect.catchIf(
|
|
@@ -6,6 +6,7 @@ import { Clock } from "../../Clock.ts"
|
|
|
6
6
|
import * as Data from "../../Data.ts"
|
|
7
7
|
import * as Effect from "../../Effect.ts"
|
|
8
8
|
import * as Exit from "../../Exit.ts"
|
|
9
|
+
import * as Latch from "../../Latch.ts"
|
|
9
10
|
import * as Layer from "../../Layer.ts"
|
|
10
11
|
import type * as Option from "../../Option.ts"
|
|
11
12
|
import type { Predicate } from "../../Predicate.ts"
|
|
@@ -718,7 +719,7 @@ export class MemoryDriver extends ServiceMap.Service<MemoryDriver>()("effect/clu
|
|
|
718
719
|
return messages
|
|
719
720
|
}
|
|
720
721
|
|
|
721
|
-
const replyLatch = yield*
|
|
722
|
+
const replyLatch = yield* Latch.make()
|
|
722
723
|
|
|
723
724
|
function repliesFor(requestIds: Array<string>) {
|
|
724
725
|
const replies = Arr.empty<Reply.Encoded>()
|
|
@@ -904,10 +905,7 @@ export const layerMemory: Layer.Layer<
|
|
|
904
905
|
|
|
905
906
|
const EnvelopeWithReply: Schema.Struct<
|
|
906
907
|
{
|
|
907
|
-
readonly envelope: Schema.
|
|
908
|
-
Envelope.PartialRequest | Envelope.AckChunk | Envelope.Interrupt,
|
|
909
|
-
unknown
|
|
910
|
-
>
|
|
908
|
+
readonly envelope: Schema.Decoder<Envelope.PartialRequest | Envelope.AckChunk | Envelope.Interrupt>
|
|
911
909
|
readonly lastSentReply: Schema.UndefinedOr<Schema.Codec<Reply.Encoded>>
|
|
912
910
|
}
|
|
913
911
|
> = Schema.Struct({
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as Effect from "../../Effect.ts"
|
|
5
5
|
import * as Exit from "../../Exit.ts"
|
|
6
|
+
import * as Latch from "../../Latch.ts"
|
|
6
7
|
import * as Layer from "../../Layer.ts"
|
|
7
8
|
import * as Queue from "../../Queue.ts"
|
|
8
9
|
import * as RcMap from "../../RcMap.ts"
|
|
@@ -192,8 +193,8 @@ export const make: (options: Omit<Runners["Service"], "sendLocal" | "notifyLocal
|
|
|
192
193
|
}
|
|
193
194
|
|
|
194
195
|
type StorageRequestEntry = {
|
|
195
|
-
readonly latch:
|
|
196
|
-
doneLatch:
|
|
196
|
+
readonly latch: Latch.Latch
|
|
197
|
+
doneLatch: Latch.Latch | undefined
|
|
197
198
|
readonly messages: Set<Message.OutgoingRequest<any>>
|
|
198
199
|
replies: Array<Reply.Reply<any>>
|
|
199
200
|
}
|
|
@@ -204,11 +205,11 @@ export const make: (options: Omit<Runners["Service"], "sendLocal" | "notifyLocal
|
|
|
204
205
|
let entry = storageRequests.get(message.envelope.requestId)
|
|
205
206
|
if (entry) {
|
|
206
207
|
entry.messages.add(message)
|
|
207
|
-
entry.doneLatch ??=
|
|
208
|
+
entry.doneLatch ??= Latch.makeUnsafe(false)
|
|
208
209
|
return yield* entry.doneLatch.await
|
|
209
210
|
} else {
|
|
210
211
|
entry = {
|
|
211
|
-
latch:
|
|
212
|
+
latch: Latch.makeUnsafe(false),
|
|
212
213
|
doneLatch: undefined,
|
|
213
214
|
replies: [],
|
|
214
215
|
messages: new Set([message])
|
|
@@ -260,7 +261,7 @@ export const make: (options: Omit<Runners["Service"], "sendLocal" | "notifyLocal
|
|
|
260
261
|
)
|
|
261
262
|
)
|
|
262
263
|
|
|
263
|
-
const storageLatch =
|
|
264
|
+
const storageLatch = Latch.makeUnsafe(false)
|
|
264
265
|
if (storage !== MessageStorage.noop) {
|
|
265
266
|
yield* Effect.gen(function*() {
|
|
266
267
|
const foundRequests = new Set<StorageRequestEntry>()
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import * as Arr from "../../Array.ts"
|
|
5
5
|
import * as Cause from "../../Cause.ts"
|
|
6
6
|
import { Clock } from "../../Clock.ts"
|
|
7
|
-
import type {
|
|
7
|
+
import type { Input } from "../../Duration.ts"
|
|
8
8
|
import * as Duration from "../../Duration.ts"
|
|
9
9
|
import * as Effect from "../../Effect.ts"
|
|
10
10
|
import * as Equal from "../../Equal.ts"
|
|
@@ -13,6 +13,7 @@ import * as Fiber from "../../Fiber.ts"
|
|
|
13
13
|
import * as FiberMap from "../../FiberMap.ts"
|
|
14
14
|
import { constant, flow } from "../../Function.ts"
|
|
15
15
|
import * as HashRing from "../../HashRing.ts"
|
|
16
|
+
import * as Latch from "../../Latch.ts"
|
|
16
17
|
import * as Layer from "../../Layer.ts"
|
|
17
18
|
import * as MutableHashMap from "../../MutableHashMap.ts"
|
|
18
19
|
import * as MutableHashSet from "../../MutableHashSet.ts"
|
|
@@ -23,6 +24,7 @@ import { CurrentLogAnnotations } from "../../References.ts"
|
|
|
23
24
|
import * as Result from "../../Result.ts"
|
|
24
25
|
import * as Schedule from "../../Schedule.ts"
|
|
25
26
|
import * as Scope from "../../Scope.ts"
|
|
27
|
+
import * as Semaphore from "../../Semaphore.ts"
|
|
26
28
|
import * as ServiceMap from "../../ServiceMap.ts"
|
|
27
29
|
import * as Stream from "../../Stream.ts"
|
|
28
30
|
import type * as Rpc from "../rpc/Rpc.ts"
|
|
@@ -113,7 +115,7 @@ export class Sharding extends ServiceMap.Service<Sharding, {
|
|
|
113
115
|
entity: Entity<Type, Rpcs>,
|
|
114
116
|
handlers: Effect.Effect<Handlers, never, RX>,
|
|
115
117
|
options?: {
|
|
116
|
-
readonly maxIdleTime?:
|
|
118
|
+
readonly maxIdleTime?: Input | undefined
|
|
117
119
|
readonly concurrency?: number | "unbounded" | undefined
|
|
118
120
|
readonly mailboxCapacity?: number | "unbounded" | undefined
|
|
119
121
|
readonly disableFatalDefects?: boolean | undefined
|
|
@@ -221,7 +223,7 @@ const make = Effect.gen(function*() {
|
|
|
221
223
|
|
|
222
224
|
// the active shards are the ones that we have acquired the lock for
|
|
223
225
|
const acquiredShards = MutableHashSet.empty<ShardId>()
|
|
224
|
-
const activeShardsLatch = yield*
|
|
226
|
+
const activeShardsLatch = yield* Latch.make(false)
|
|
225
227
|
|
|
226
228
|
const events = yield* PubSub.unbounded<ShardingRegistrationEvent>()
|
|
227
229
|
const getRegistrationEvents: Stream.Stream<ShardingRegistrationEvent> = Stream.fromPubSub(events)
|
|
@@ -429,16 +431,16 @@ const make = Effect.gen(function*() {
|
|
|
429
431
|
// It should also be shutdown after the entity managers, to ensure interrupt
|
|
430
432
|
// & ack envelopes can still be processed.
|
|
431
433
|
|
|
432
|
-
const storageReadLatch = yield*
|
|
434
|
+
const storageReadLatch = yield* Latch.make(true)
|
|
433
435
|
const openStorageReadLatch = constant(Effect.asVoid(storageReadLatch.open))
|
|
434
436
|
|
|
435
|
-
const storageReadLock =
|
|
437
|
+
const storageReadLock = Semaphore.makeUnsafe(1)
|
|
436
438
|
const withStorageReadLock = storageReadLock.withPermits(1)
|
|
437
439
|
|
|
438
440
|
if (storageEnabled && config.runnerAddress) {
|
|
439
441
|
const selfAddress = config.runnerAddress
|
|
440
442
|
const entityRegistrationTimeoutMillis = Duration.toMillis(
|
|
441
|
-
Duration.
|
|
443
|
+
Duration.fromInputUnsafe(config.entityRegistrationTimeout)
|
|
442
444
|
)
|
|
443
445
|
const storageStartMillis = clock.currentTimeMillisUnsafe()
|
|
444
446
|
|
|
@@ -1182,7 +1184,7 @@ const make = Effect.gen(function*() {
|
|
|
1182
1184
|
|
|
1183
1185
|
const singletons = new Map<ShardId, MutableHashMap.MutableHashMap<SingletonAddress, Effect.Effect<void>>>()
|
|
1184
1186
|
const singletonFibers = yield* FiberMap.make<SingletonAddress>()
|
|
1185
|
-
const withSingletonLock =
|
|
1187
|
+
const withSingletonLock = Semaphore.makeUnsafe(1).withPermits(1)
|
|
1186
1188
|
|
|
1187
1189
|
const registerSingleton: Sharding["Service"]["registerSingleton"] = Effect.fnUntraced(
|
|
1188
1190
|
function*(name, run, options) {
|
|
@@ -1253,7 +1255,7 @@ const make = Effect.gen(function*() {
|
|
|
1253
1255
|
// --- Entities ---
|
|
1254
1256
|
|
|
1255
1257
|
const reaper = yield* EntityReaper
|
|
1256
|
-
const entityManagerLatches = new Map<string,
|
|
1258
|
+
const entityManagerLatches = new Map<string, Latch.Latch>()
|
|
1257
1259
|
|
|
1258
1260
|
const registerEntity: Sharding["Service"]["registerEntity"] = Effect.fnUntraced(
|
|
1259
1261
|
function*(entity, build, options) {
|
|
@@ -1310,7 +1312,7 @@ const make = Effect.gen(function*() {
|
|
|
1310
1312
|
const waitForEntityManager = (entityType: string) => {
|
|
1311
1313
|
let latch = entityManagerLatches.get(entityType)
|
|
1312
1314
|
if (!latch) {
|
|
1313
|
-
latch =
|
|
1315
|
+
latch = Latch.makeUnsafe()
|
|
1314
1316
|
entityManagerLatches.set(entityType, latch)
|
|
1315
1317
|
}
|
|
1316
1318
|
return latch.await
|