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
|
@@ -14,6 +14,7 @@ export type HttpMethod =
|
|
|
14
14
|
| "PATCH"
|
|
15
15
|
| "HEAD"
|
|
16
16
|
| "OPTIONS"
|
|
17
|
+
| "TRACE"
|
|
17
18
|
|
|
18
19
|
/**
|
|
19
20
|
* @since 4.0.0
|
|
@@ -24,7 +25,7 @@ export declare namespace HttpMethod {
|
|
|
24
25
|
* @since 4.0.0
|
|
25
26
|
* @category models
|
|
26
27
|
*/
|
|
27
|
-
export type NoBody = "GET" | "HEAD" | "OPTIONS"
|
|
28
|
+
export type NoBody = "GET" | "HEAD" | "OPTIONS" | "TRACE"
|
|
28
29
|
|
|
29
30
|
/**
|
|
30
31
|
* @since 4.0.0
|
|
@@ -36,12 +37,22 @@ export declare namespace HttpMethod {
|
|
|
36
37
|
/**
|
|
37
38
|
* @since 4.0.0
|
|
38
39
|
*/
|
|
39
|
-
export const hasBody = (method: HttpMethod):
|
|
40
|
+
export const hasBody = (method: HttpMethod): method is HttpMethod.WithBody =>
|
|
41
|
+
method !== "GET" && method !== "HEAD" && method !== "OPTIONS" && method !== "TRACE"
|
|
40
42
|
|
|
41
43
|
/**
|
|
42
44
|
* @since 4.0.0
|
|
43
45
|
*/
|
|
44
|
-
export const all: ReadonlySet<HttpMethod> = new Set([
|
|
46
|
+
export const all: ReadonlySet<HttpMethod> = new Set([
|
|
47
|
+
"GET",
|
|
48
|
+
"POST",
|
|
49
|
+
"PUT",
|
|
50
|
+
"DELETE",
|
|
51
|
+
"PATCH",
|
|
52
|
+
"HEAD",
|
|
53
|
+
"OPTIONS",
|
|
54
|
+
"TRACE"
|
|
55
|
+
])
|
|
45
56
|
|
|
46
57
|
/**
|
|
47
58
|
* @since 4.0.0
|
|
@@ -53,7 +64,8 @@ export const allShort = [
|
|
|
53
64
|
["DELETE", "del"],
|
|
54
65
|
["PATCH", "patch"],
|
|
55
66
|
["HEAD", "head"],
|
|
56
|
-
["OPTIONS", "options"]
|
|
67
|
+
["OPTIONS", "options"],
|
|
68
|
+
["TRACE", "trace"]
|
|
57
69
|
] as const
|
|
58
70
|
|
|
59
71
|
/**
|
|
@@ -46,21 +46,16 @@ export declare namespace HttpMiddleware {
|
|
|
46
46
|
*/
|
|
47
47
|
export const make = <M extends HttpMiddleware>(middleware: M): M => middleware
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
* @since 4.0.0
|
|
51
|
-
* @category Logger
|
|
52
|
-
*/
|
|
53
|
-
export const LoggerDisabled = ServiceMap.Reference<boolean>("effect/http/HttpMiddleware/LoggerDisabled", {
|
|
54
|
-
defaultValue: constFalse
|
|
55
|
-
})
|
|
49
|
+
const loggerDisabledRequests = new WeakSet<HttpServerRequest>()
|
|
56
50
|
|
|
57
51
|
/**
|
|
58
52
|
* @since 4.0.0
|
|
59
53
|
* @category Logger
|
|
60
54
|
*/
|
|
61
|
-
export const withLoggerDisabled = <A, E, R>(self: Effect.Effect<A, E, R>): Effect.Effect<A, E, R> =>
|
|
55
|
+
export const withLoggerDisabled = <A, E, R>(self: Effect.Effect<A, E, R>): Effect.Effect<A, E, R | HttpServerRequest> =>
|
|
62
56
|
Effect.withFiber((fiber) => {
|
|
63
|
-
|
|
57
|
+
const request = ServiceMap.getUnsafe(fiber.services, HttpServerRequest)
|
|
58
|
+
loggerDisabledRequests.add(request)
|
|
64
59
|
return self
|
|
65
60
|
})
|
|
66
61
|
|
|
@@ -102,7 +97,7 @@ export const logger: <E, R>(
|
|
|
102
97
|
const request = ServiceMap.getUnsafe(fiber.services, HttpServerRequest)
|
|
103
98
|
return Effect.withLogSpan(
|
|
104
99
|
Effect.flatMap(Effect.exit(httpApp), (exit) => {
|
|
105
|
-
if (
|
|
100
|
+
if (loggerDisabledRequests.has(request)) {
|
|
106
101
|
return exit
|
|
107
102
|
} else if (exit._tag === "Failure") {
|
|
108
103
|
const [response, cause] = causeResponseStripped(exit.cause)
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import * as Cause from "../../Cause.ts"
|
|
5
5
|
import * as Data from "../../Data.ts"
|
|
6
6
|
import * as Effect from "../../Effect.ts"
|
|
7
|
+
import * as ErrorReporter from "../../ErrorReporter.ts"
|
|
7
8
|
import type * as Exit from "../../Exit.ts"
|
|
8
9
|
import { hasProperty } from "../../Predicate.ts"
|
|
9
10
|
import type * as Request from "./HttpServerRequest.ts"
|
|
@@ -32,35 +33,24 @@ export class HttpServerError extends Data.TaggedError("HttpServerError")<{
|
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
35
|
|
|
35
|
-
/**
|
|
36
|
-
* @since 4.0.0
|
|
37
|
-
*/
|
|
38
36
|
readonly [TypeId] = TypeId
|
|
39
37
|
|
|
40
|
-
/**
|
|
41
|
-
* @since 4.0.0
|
|
42
|
-
*/
|
|
43
38
|
override stack = `${this.name}: ${this.message}`
|
|
44
39
|
|
|
45
|
-
/**
|
|
46
|
-
* @since 4.0.0
|
|
47
|
-
*/
|
|
48
40
|
get request(): Request.HttpServerRequest {
|
|
49
41
|
return this.reason.request
|
|
50
42
|
}
|
|
51
43
|
|
|
52
|
-
/**
|
|
53
|
-
* @since 4.0.0
|
|
54
|
-
*/
|
|
55
44
|
get response(): Response.HttpServerResponse | undefined {
|
|
56
45
|
return "response" in this.reason ? this.reason.response : undefined
|
|
57
46
|
}
|
|
58
47
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
48
|
+
[Respondable.symbol]() {
|
|
49
|
+
return this.reason[Respondable.symbol]()
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
override get [ErrorReporter.ignore](): boolean {
|
|
53
|
+
return this.reason[ErrorReporter.ignore] ?? false
|
|
64
54
|
}
|
|
65
55
|
|
|
66
56
|
override get message(): string {
|
|
@@ -80,7 +70,7 @@ export class RequestParseError extends Data.TaggedError("RequestParseError")<{
|
|
|
80
70
|
/**
|
|
81
71
|
* @since 4.0.0
|
|
82
72
|
*/
|
|
83
|
-
[Respondable.
|
|
73
|
+
[Respondable.symbol]() {
|
|
84
74
|
return Effect.succeed(Response.empty({ status: 400 }))
|
|
85
75
|
}
|
|
86
76
|
|
|
@@ -102,13 +92,12 @@ export class RouteNotFound extends Data.TaggedError("RouteNotFound")<{
|
|
|
102
92
|
readonly description?: string
|
|
103
93
|
readonly cause?: unknown
|
|
104
94
|
}> implements Respondable.Respondable {
|
|
105
|
-
|
|
106
|
-
* @since 4.0.0
|
|
107
|
-
*/
|
|
108
|
-
[Respondable.TypeId]() {
|
|
95
|
+
[Respondable.symbol]() {
|
|
109
96
|
return Effect.succeed(Response.empty({ status: 404 }))
|
|
110
97
|
}
|
|
111
98
|
|
|
99
|
+
override readonly [ErrorReporter.ignore] = true
|
|
100
|
+
|
|
112
101
|
get methodAndUrl() {
|
|
113
102
|
return `${this.request.method} ${this.request.url}`
|
|
114
103
|
}
|
|
@@ -130,7 +119,7 @@ export class InternalError extends Data.TaggedError("InternalError")<{
|
|
|
130
119
|
/**
|
|
131
120
|
* @since 4.0.0
|
|
132
121
|
*/
|
|
133
|
-
[Respondable.
|
|
122
|
+
[Respondable.symbol]() {
|
|
134
123
|
return Effect.succeed(Response.empty({ status: 500 }))
|
|
135
124
|
}
|
|
136
125
|
|
|
@@ -159,10 +148,7 @@ export class ResponseError extends Data.TaggedError("ResponseError")<{
|
|
|
159
148
|
readonly description?: string
|
|
160
149
|
readonly cause?: unknown
|
|
161
150
|
}> implements Respondable.Respondable {
|
|
162
|
-
|
|
163
|
-
* @since 4.0.0
|
|
164
|
-
*/
|
|
165
|
-
[Respondable.TypeId]() {
|
|
151
|
+
[Respondable.symbol]() {
|
|
166
152
|
return Effect.succeed(Response.empty({ status: 500 }))
|
|
167
153
|
}
|
|
168
154
|
|
|
@@ -12,21 +12,21 @@ import * as Response from "./HttpServerResponse.ts"
|
|
|
12
12
|
* @since 4.0.0
|
|
13
13
|
* @category Type IDs
|
|
14
14
|
*/
|
|
15
|
-
export const
|
|
15
|
+
export const symbol = "~effect/http/HttpServerRespondable"
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* @since 4.0.0
|
|
19
19
|
* @category models
|
|
20
20
|
*/
|
|
21
21
|
export interface Respondable {
|
|
22
|
-
|
|
22
|
+
[symbol](): Effect.Effect<HttpServerResponse, unknown>
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
26
|
* @since 4.0.0
|
|
27
27
|
* @category guards
|
|
28
28
|
*/
|
|
29
|
-
export const isRespondable = (u: unknown): u is Respondable => hasProperty(u,
|
|
29
|
+
export const isRespondable = (u: unknown): u is Respondable => hasProperty(u, symbol)
|
|
30
30
|
|
|
31
31
|
const badRequest = Response.empty({ status: 400 })
|
|
32
32
|
const notFound = Response.empty({ status: 404 })
|
|
@@ -39,7 +39,7 @@ export const toResponse = (self: Respondable): Effect.Effect<HttpServerResponse>
|
|
|
39
39
|
if (Response.isHttpServerResponse(self)) {
|
|
40
40
|
return Effect.succeed(self)
|
|
41
41
|
}
|
|
42
|
-
return Effect.orDie(self[
|
|
42
|
+
return Effect.orDie(self[symbol]())
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
/**
|
|
@@ -50,7 +50,7 @@ export const toResponseOrElse = (u: unknown, orElse: HttpServerResponse): Effect
|
|
|
50
50
|
if (Response.isHttpServerResponse(u)) {
|
|
51
51
|
return Effect.succeed(u)
|
|
52
52
|
} else if (isRespondable(u)) {
|
|
53
|
-
return Effect.catchCause(u[
|
|
53
|
+
return Effect.catchCause(u[symbol](), () => Effect.succeed(orElse))
|
|
54
54
|
// add support for some commmon types
|
|
55
55
|
} else if (Schema.isSchemaError(u)) {
|
|
56
56
|
return Effect.succeed(badRequest)
|
|
@@ -68,7 +68,7 @@ export const toResponseOrElseDefect = (u: unknown, orElse: HttpServerResponse):
|
|
|
68
68
|
if (Response.isHttpServerResponse(u)) {
|
|
69
69
|
return Effect.succeed(u)
|
|
70
70
|
} else if (isRespondable(u)) {
|
|
71
|
-
return Effect.catchCause(u[
|
|
71
|
+
return Effect.catchCause(u[symbol](), () => Effect.succeed(orElse))
|
|
72
72
|
}
|
|
73
73
|
return Effect.succeed(orElse)
|
|
74
74
|
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
4
|
import * as Effect from "../../Effect.ts"
|
|
5
|
+
import * as ErrorReporter from "../../ErrorReporter.ts"
|
|
5
6
|
import type * as FileSystem from "../../FileSystem.ts"
|
|
6
7
|
import { dual } from "../../Function.ts"
|
|
7
8
|
import type * as Inspectable from "../../Inspectable.ts"
|
|
@@ -28,7 +29,7 @@ const TypeId = "~effect/http/HttpServerResponse"
|
|
|
28
29
|
* @since 4.0.0
|
|
29
30
|
* @category models
|
|
30
31
|
*/
|
|
31
|
-
export interface HttpServerResponse extends Inspectable.Inspectable, Pipeable {
|
|
32
|
+
export interface HttpServerResponse extends Inspectable.Inspectable, Pipeable, ErrorReporter.Reportable {
|
|
32
33
|
readonly [TypeId]: typeof TypeId
|
|
33
34
|
readonly status: number
|
|
34
35
|
readonly statusText?: string | undefined
|
|
@@ -327,7 +328,7 @@ export const formData = (
|
|
|
327
328
|
statusText: options?.statusText,
|
|
328
329
|
headers: options?.headers && Headers.fromInput(options.headers),
|
|
329
330
|
cookies: options?.cookies,
|
|
330
|
-
body: Body.
|
|
331
|
+
body: Body.formData(body)
|
|
331
332
|
})
|
|
332
333
|
|
|
333
334
|
/**
|
|
@@ -834,6 +835,7 @@ const Proto: Omit<
|
|
|
834
835
|
> = {
|
|
835
836
|
...PipeInspectableProto,
|
|
836
837
|
[TypeId]: TypeId,
|
|
838
|
+
[ErrorReporter.ignore]: true,
|
|
837
839
|
toJSON(this: HttpServerResponse) {
|
|
838
840
|
return {
|
|
839
841
|
_id: "HttpServerResponse",
|
|
@@ -203,13 +203,13 @@ export const PersistedFileSchema: PersistedFileSchema = Schema.declare(
|
|
|
203
203
|
* @since 4.0.0
|
|
204
204
|
* @category Schemas
|
|
205
205
|
*/
|
|
206
|
-
export const FilesSchema: Schema
|
|
206
|
+
export const FilesSchema: Schema.$Array<PersistedFileSchema> = Schema.Array(PersistedFileSchema)
|
|
207
207
|
|
|
208
208
|
/**
|
|
209
209
|
* @since 4.0.0
|
|
210
210
|
* @category Schemas
|
|
211
211
|
*/
|
|
212
|
-
export const SingleFileSchema: Schema.decodeTo<PersistedFileSchema, Schema
|
|
212
|
+
export const SingleFileSchema: Schema.decodeTo<PersistedFileSchema, Schema.$Array<PersistedFileSchema>> = FilesSchema
|
|
213
213
|
.check(
|
|
214
214
|
Schema.isLengthBetween(1, 1)
|
|
215
215
|
).pipe(
|
|
@@ -43,10 +43,14 @@ export const isUrlParams = (u: unknown): u is UrlParams => hasProperty(u, TypeId
|
|
|
43
43
|
* @category models
|
|
44
44
|
*/
|
|
45
45
|
export type Input =
|
|
46
|
-
|
|
|
46
|
+
| CoercibleRecordInput
|
|
47
47
|
| Iterable<readonly [string, Coercible]>
|
|
48
48
|
| URLSearchParams
|
|
49
49
|
|
|
50
|
+
type CoercibleRecordInput = CoercibleRecord & {
|
|
51
|
+
readonly [Symbol.iterator]?: never
|
|
52
|
+
}
|
|
53
|
+
|
|
50
54
|
/**
|
|
51
55
|
* @since 4.0.0
|
|
52
56
|
* @category models
|
|
@@ -57,8 +61,17 @@ export type Coercible = string | number | bigint | boolean | null | undefined
|
|
|
57
61
|
* @since 4.0.0
|
|
58
62
|
* @category models
|
|
59
63
|
*/
|
|
60
|
-
|
|
61
|
-
|
|
64
|
+
type CoercibleRecordField<A> = A extends Coercible ? A
|
|
65
|
+
: A extends ReadonlyArray<infer Item> ? ReadonlyArray<Item extends Coercible ? Item : never>
|
|
66
|
+
: A extends object ? CoercibleRecord<A>
|
|
67
|
+
: never
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* @since 4.0.0
|
|
71
|
+
* @category models
|
|
72
|
+
*/
|
|
73
|
+
export type CoercibleRecord<A extends object = any> = {
|
|
74
|
+
readonly [K in keyof A]: CoercibleRecordField<A[K]>
|
|
62
75
|
}
|
|
63
76
|
|
|
64
77
|
const Proto = {
|
|
@@ -110,7 +123,9 @@ export const fromInput = (input: Input): UrlParams => {
|
|
|
110
123
|
}
|
|
111
124
|
|
|
112
125
|
const fromInputNested = (input: Input): Array<[string | Array<string>, any]> => {
|
|
113
|
-
const entries =
|
|
126
|
+
const entries = typeof (input as any)[Symbol.iterator] === "function"
|
|
127
|
+
? Arr.fromIterable(input as Iterable<readonly [string, Coercible]>)
|
|
128
|
+
: Object.entries(input)
|
|
114
129
|
const out: Array<[string | Array<string>, string]> = []
|
|
115
130
|
for (const [key, value] of entries) {
|
|
116
131
|
if (Array.isArray(value)) {
|
|
@@ -539,7 +554,7 @@ export const schemaJsonField = (field: string): schemaJsonField =>
|
|
|
539
554
|
*/
|
|
540
555
|
export interface schemaRecord extends
|
|
541
556
|
Schema.decodeTo<
|
|
542
|
-
Schema
|
|
557
|
+
Schema.$Record<Schema.String, Schema.Union<readonly [Schema.String, Schema.NonEmptyArray<Schema.String>]>>,
|
|
543
558
|
UrlParamsSchema,
|
|
544
559
|
never,
|
|
545
560
|
never
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
4
|
import * as Effect from "../../Effect.ts"
|
|
5
|
-
import * as
|
|
5
|
+
import * as Encoding from "../../Encoding.ts"
|
|
6
6
|
import * as Fiber from "../../Fiber.ts"
|
|
7
7
|
import type { FileSystem } from "../../FileSystem.ts"
|
|
8
8
|
import { identity } from "../../Function.ts"
|
|
@@ -328,7 +328,7 @@ export const securityDecode = <Security extends HttpApiSecurity.HttpApiSecurity>
|
|
|
328
328
|
} as any
|
|
329
329
|
return HttpServerRequest.asEffect().pipe(
|
|
330
330
|
Effect.flatMap((request) =>
|
|
331
|
-
|
|
331
|
+
Encoding.decodeBase64String((request.headers.authorization ?? "").slice(basicLen)).asEffect()
|
|
332
332
|
),
|
|
333
333
|
Effect.match({
|
|
334
334
|
onFailure: () => empty,
|
|
@@ -505,9 +505,9 @@ function handlerToRoute(
|
|
|
505
505
|
const endpoint = handler.endpoint
|
|
506
506
|
const encodeSuccess = Schema.encodeUnknownEffect(makeSuccessSchema(endpoint))
|
|
507
507
|
const encodeError = Schema.encodeUnknownEffect(makeErrorSchema(endpoint))
|
|
508
|
-
const decodeParams = UndefinedOr.map(
|
|
509
|
-
const decodeHeaders = UndefinedOr.map(
|
|
510
|
-
const decodeQuery = UndefinedOr.map(
|
|
508
|
+
const decodeParams = UndefinedOr.map(endpoint.params, Schema.decodeUnknownEffect)
|
|
509
|
+
const decodeHeaders = UndefinedOr.map(endpoint.headers, Schema.decodeUnknownEffect)
|
|
510
|
+
const decodeQuery = UndefinedOr.map(endpoint.query, Schema.decodeUnknownEffect)
|
|
511
511
|
|
|
512
512
|
const shouldParsePayload = endpoint.payload.size > 0 && !handler.isRaw
|
|
513
513
|
const payloadBy = shouldParsePayload ? buildPayloadDecoders(endpoint.payload) : undefined
|
|
@@ -549,6 +549,7 @@ function handlerToRoute(
|
|
|
549
549
|
return Response.isHttpServerResponse(response) ? response : yield* encodeSuccess(response)
|
|
550
550
|
})
|
|
551
551
|
).pipe(
|
|
552
|
+
Effect.withErrorReporting,
|
|
552
553
|
Effect.catch((error) => {
|
|
553
554
|
if (Schema.isSchemaError(error)) {
|
|
554
555
|
error = HttpApiSchemaError.fromSchemaError(error)
|
|
@@ -217,7 +217,7 @@ const makeClient = <ApiId extends string, Groups extends HttpApiGroup.Any, E, R>
|
|
|
217
217
|
})
|
|
218
218
|
|
|
219
219
|
// encoders
|
|
220
|
-
const encodeParams = UndefinedOr.map(
|
|
220
|
+
const encodeParams = UndefinedOr.map(endpoint.params, Schema.encodeUnknownEffect)
|
|
221
221
|
|
|
222
222
|
const payloadSchemas = HttpApiEndpoint.getPayloadSchemas(endpoint)
|
|
223
223
|
const encodePayload = Arr.isArrayNonEmpty(payloadSchemas) ?
|
|
@@ -226,8 +226,8 @@ const makeClient = <ApiId extends string, Groups extends HttpApiGroup.Any, E, R>
|
|
|
226
226
|
: Schema.encodeUnknownEffect(Schema.Union(payloadSchemas)) :
|
|
227
227
|
undefined
|
|
228
228
|
|
|
229
|
-
const encodeHeaders = UndefinedOr.map(
|
|
230
|
-
const encodeQuery = UndefinedOr.map(
|
|
229
|
+
const encodeHeaders = UndefinedOr.map(endpoint.headers, Schema.encodeUnknownEffect)
|
|
230
|
+
const encodeQuery = UndefinedOr.map(endpoint.query, Schema.encodeUnknownEffect)
|
|
231
231
|
|
|
232
232
|
const middlewareKeys = Array.from(onEndpointOptions.middleware, (tag) => `${tag.key}/Client`)
|
|
233
233
|
|
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
import * as Arr from "../../Array.ts"
|
|
5
5
|
import type { Brand } from "../../Brand.ts"
|
|
6
6
|
import type { Effect } from "../../Effect.ts"
|
|
7
|
-
import { format } from "../../Formatter.ts"
|
|
8
7
|
import { type Pipeable, pipeArguments } from "../../Pipeable.ts"
|
|
9
8
|
import * as Predicate from "../../Predicate.ts"
|
|
10
9
|
import * as Schema from "../../Schema.ts"
|
|
@@ -71,9 +70,9 @@ export interface HttpApiEndpoint<
|
|
|
71
70
|
readonly name: Name
|
|
72
71
|
readonly path: Path
|
|
73
72
|
readonly method: Method
|
|
74
|
-
readonly params: Schema.
|
|
75
|
-
readonly query: Schema.
|
|
76
|
-
readonly headers: Schema.
|
|
73
|
+
readonly params: Schema.Top | undefined
|
|
74
|
+
readonly query: Schema.Top | undefined
|
|
75
|
+
readonly headers: Schema.Top | undefined
|
|
77
76
|
readonly payload: PayloadMap
|
|
78
77
|
readonly success: ReadonlySet<Schema.Top>
|
|
79
78
|
readonly error: ReadonlySet<Schema.Top>
|
|
@@ -156,21 +155,6 @@ export interface HttpApiEndpoint<
|
|
|
156
155
|
>
|
|
157
156
|
}
|
|
158
157
|
|
|
159
|
-
/** @internal */
|
|
160
|
-
export function getParamsSchema(endpoint: AnyWithProps): Schema.Top | undefined {
|
|
161
|
-
return endpoint.params ? Schema.Struct(endpoint.params) : undefined
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
/** @internal */
|
|
165
|
-
export function getQuerySchema(endpoint: AnyWithProps): Schema.Top | undefined {
|
|
166
|
-
return endpoint.query ? Schema.Struct(endpoint.query) : undefined
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
/** @internal */
|
|
170
|
-
export function getHeadersSchema(endpoint: AnyWithProps): Schema.Top | undefined {
|
|
171
|
-
return endpoint.headers ? Schema.Struct(endpoint.headers) : undefined
|
|
172
|
-
}
|
|
173
|
-
|
|
174
158
|
/** @internal */
|
|
175
159
|
export function getPayloadSchemas(endpoint: AnyWithProps): Array<Schema.Top> {
|
|
176
160
|
const result: Array<Schema.Top> = []
|
|
@@ -830,9 +814,9 @@ function makeProto<
|
|
|
830
814
|
readonly name: Name
|
|
831
815
|
readonly path: Path
|
|
832
816
|
readonly method: Method
|
|
833
|
-
readonly params: Schema.
|
|
834
|
-
readonly query: Schema.
|
|
835
|
-
readonly headers: Schema.
|
|
817
|
+
readonly params: Schema.Top | undefined
|
|
818
|
+
readonly query: Schema.Top | undefined
|
|
819
|
+
readonly headers: Schema.Top | undefined
|
|
836
820
|
readonly payload: PayloadMap
|
|
837
821
|
readonly success: ReadonlySet<Schema.Top>
|
|
838
822
|
readonly error: ReadonlySet<Schema.Top>
|
|
@@ -855,32 +839,28 @@ function makeProto<
|
|
|
855
839
|
}
|
|
856
840
|
|
|
857
841
|
/**
|
|
858
|
-
* Params come from the router as `string` (optional params as `undefined`) and
|
|
859
|
-
* must be encodable back into the URL path.
|
|
860
|
-
*
|
|
861
|
-
* We accept "struct fields" (`Record<string, Codec<...>>`) so we can both enforce
|
|
862
|
-
* `Encoded` = `string | undefined` per field and reliably generate OpenAPI
|
|
863
|
-
* `in: path` parameters by iterating object properties.
|
|
864
|
-
*
|
|
865
842
|
* @since 4.0.0
|
|
866
843
|
* @category constraints
|
|
867
844
|
*/
|
|
868
|
-
export type ParamsConstraint =
|
|
845
|
+
export type ParamsConstraint =
|
|
846
|
+
| Record<string, Schema.Encoder<string | undefined, unknown>>
|
|
847
|
+
| Schema.Encoder<Record<string, string | undefined>, unknown>
|
|
869
848
|
|
|
870
849
|
/**
|
|
871
|
-
* URL search params can be repeated, so fields may encode to `string` or
|
|
872
|
-
* `ReadonlyArray<string>` (or be missing).
|
|
873
|
-
*
|
|
874
|
-
* Kept as "struct fields" so OpenAPI can safely expand properties into
|
|
875
|
-
* `in: query` parameters.
|
|
876
|
-
*
|
|
877
850
|
* @since 4.0.0
|
|
878
851
|
* @category constraints
|
|
879
852
|
*/
|
|
880
|
-
export type
|
|
881
|
-
string,
|
|
882
|
-
Schema.Encoder<string
|
|
883
|
-
|
|
853
|
+
export type HeadersConstraint =
|
|
854
|
+
| Record<string, Schema.Encoder<string | undefined, unknown>>
|
|
855
|
+
| Schema.Encoder<Record<string, string | undefined>, unknown>
|
|
856
|
+
|
|
857
|
+
/**
|
|
858
|
+
* @since 4.0.0
|
|
859
|
+
* @category constraints
|
|
860
|
+
*/
|
|
861
|
+
export type QueryConstraint =
|
|
862
|
+
| Record<string, Schema.Encoder<string | ReadonlyArray<string> | undefined, unknown>>
|
|
863
|
+
| Schema.Encoder<Record<string, string | ReadonlyArray<string> | undefined>, unknown>
|
|
884
864
|
|
|
885
865
|
/**
|
|
886
866
|
* Payload schema depends on the HTTP method:
|
|
@@ -893,34 +873,23 @@ export type QuerySchemaConstraint = Record<
|
|
|
893
873
|
* @since 4.0.0
|
|
894
874
|
* @category constraints
|
|
895
875
|
*/
|
|
896
|
-
export type
|
|
876
|
+
export type PayloadConstraint<Method extends HttpMethod> = Method extends HttpMethod.NoBody ? Record<
|
|
897
877
|
string,
|
|
898
878
|
Schema.Encoder<string | ReadonlyArray<string> | undefined, unknown>
|
|
899
879
|
> :
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
/**
|
|
903
|
-
* HTTP headers are string-valued (or missing).
|
|
904
|
-
*
|
|
905
|
-
* Kept as "struct fields" so OpenAPI can safely expand properties into
|
|
906
|
-
* `in: header` parameters.
|
|
907
|
-
*
|
|
908
|
-
* @since 4.0.0
|
|
909
|
-
* @category constraints
|
|
910
|
-
*/
|
|
911
|
-
export type HeadersSchemaConstraint = Record<string, Schema.Encoder<string | undefined, unknown>>
|
|
880
|
+
SuccessConstraint
|
|
912
881
|
|
|
913
882
|
/**
|
|
914
883
|
* @since 4.0.0
|
|
915
884
|
* @category constraints
|
|
916
885
|
*/
|
|
917
|
-
export type
|
|
886
|
+
export type SuccessConstraint = Schema.Top | ReadonlyArray<Schema.Top>
|
|
918
887
|
|
|
919
888
|
/**
|
|
920
889
|
* @since 4.0.0
|
|
921
890
|
* @category constraints
|
|
922
891
|
*/
|
|
923
|
-
export type
|
|
892
|
+
export type ErrorConstraint = Schema.Top | ReadonlyArray<Schema.Top>
|
|
924
893
|
|
|
925
894
|
/**
|
|
926
895
|
* @since 4.0.0
|
|
@@ -931,11 +900,11 @@ export const make = <Method extends HttpMethod>(method: Method) =>
|
|
|
931
900
|
const Name extends string,
|
|
932
901
|
const Path extends HttpRouter.PathInput,
|
|
933
902
|
Params extends ParamsConstraint = never,
|
|
934
|
-
Query extends
|
|
935
|
-
Payload extends
|
|
936
|
-
Headers extends
|
|
937
|
-
const Success extends
|
|
938
|
-
const Error extends
|
|
903
|
+
Query extends QueryConstraint = never,
|
|
904
|
+
Payload extends PayloadConstraint<Method> = never,
|
|
905
|
+
Headers extends HeadersConstraint = never,
|
|
906
|
+
const Success extends SuccessConstraint = HttpApiSchema.NoContent,
|
|
907
|
+
const Error extends ErrorConstraint = never
|
|
939
908
|
>(
|
|
940
909
|
name: Name,
|
|
941
910
|
path: Path,
|
|
@@ -964,8 +933,8 @@ export const make = <Method extends HttpMethod>(method: Method) =>
|
|
|
964
933
|
name,
|
|
965
934
|
path,
|
|
966
935
|
method,
|
|
967
|
-
params: options?.params,
|
|
968
|
-
query: options?.query,
|
|
936
|
+
params: getParams(options?.params),
|
|
937
|
+
query: getQuery(options?.query),
|
|
969
938
|
headers: getHeaders(options?.headers),
|
|
970
939
|
payload: getPayload(options?.payload),
|
|
971
940
|
success: getSuccess(options?.success),
|
|
@@ -975,17 +944,23 @@ export const make = <Method extends HttpMethod>(method: Method) =>
|
|
|
975
944
|
})
|
|
976
945
|
}
|
|
977
946
|
|
|
947
|
+
function getParams(params: ParamsConstraint | undefined): Schema.Top | undefined {
|
|
948
|
+
if (params === undefined) return undefined
|
|
949
|
+
if (Schema.isSchema(params)) return params
|
|
950
|
+
return Schema.Struct(params)
|
|
951
|
+
}
|
|
952
|
+
|
|
953
|
+
function getQuery(query: QueryConstraint | undefined): Schema.Top | undefined {
|
|
954
|
+
if (query === undefined) return undefined
|
|
955
|
+
if (Schema.isSchema(query)) return query
|
|
956
|
+
return Schema.Struct(query)
|
|
957
|
+
}
|
|
958
|
+
|
|
978
959
|
// all keys should be lowercase
|
|
979
|
-
function getHeaders(headers:
|
|
980
|
-
if (headers
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
if (key !== lowerKey) {
|
|
984
|
-
throw new Error(`Header keys must be lowercase, got ${format(key)} (use ${format(lowerKey)})`)
|
|
985
|
-
}
|
|
986
|
-
}
|
|
987
|
-
return headers
|
|
988
|
-
}
|
|
960
|
+
function getHeaders(headers: HeadersConstraint | undefined): Schema.Top | undefined {
|
|
961
|
+
if (headers === undefined) return undefined
|
|
962
|
+
if (Schema.isSchema(headers)) return headers
|
|
963
|
+
return Schema.Struct(headers)
|
|
989
964
|
}
|
|
990
965
|
|
|
991
966
|
function getPayload(
|