effect 4.0.0-beta.0 → 4.0.0-beta.10
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.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 +175 -240
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +73 -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/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 +27 -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 +4 -4
- package/dist/Logger.d.ts.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/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/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/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 +19 -19
- 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 +499 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +499 -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 +37 -22
- package/dist/internal/effect.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/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/Prompt.js +2 -2
- package/dist/unstable/cli/Prompt.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/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 +18 -26
- 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 +6 -6
- package/dist/unstable/http/HttpServerResponse.js +1 -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 +5 -5
- 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/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/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/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 +5 -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 +2 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +2 -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 +6 -4
- 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 +202 -261
- package/src/Encoding.ts +879 -0
- package/src/Equal.ts +278 -111
- 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 +31 -0
- package/src/Logger.ts +5 -5
- 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/Random.ts +33 -14
- package/src/RcMap.ts +5 -5
- package/src/RcRef.ts +1 -1
- package/src/Reducer.ts +166 -7
- 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/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 +43 -42
- 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 +502 -20
- package/src/internal/core.ts +12 -5
- package/src/internal/dateTime.ts +9 -30
- package/src/internal/effect.ts +70 -37
- 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 +3 -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/Prompt.ts +2 -2
- 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/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 +17 -25
- package/src/unstable/http/HttpMethod.ts +16 -4
- package/src/unstable/http/HttpMiddleware.ts +5 -10
- package/src/unstable/http/HttpServerResponse.ts +1 -1
- package/src/unstable/http/Multipart.ts +2 -2
- package/src/unstable/http/UrlParams.ts +20 -5
- package/src/unstable/httpapi/HttpApiBuilder.ts +5 -5
- package/src/unstable/httpapi/HttpApiClient.ts +3 -3
- package/src/unstable/httpapi/HttpApiEndpoint.ts +47 -72
- 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 +4 -4
- 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/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 +6 -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 +3 -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
|
@@ -61,11 +61,11 @@ export declare namespace HttpClient {
|
|
|
61
61
|
|
|
62
62
|
readonly get: (
|
|
63
63
|
url: string | URL,
|
|
64
|
-
options?: HttpClientRequest.Options.
|
|
64
|
+
options?: HttpClientRequest.Options.NoUrl
|
|
65
65
|
) => Effect.Effect<HttpClientResponse.HttpClientResponse, E, R>
|
|
66
66
|
readonly head: (
|
|
67
67
|
url: string | URL,
|
|
68
|
-
options?: HttpClientRequest.Options.
|
|
68
|
+
options?: HttpClientRequest.Options.NoUrl
|
|
69
69
|
) => Effect.Effect<HttpClientResponse.HttpClientResponse, E, R>
|
|
70
70
|
readonly post: (
|
|
71
71
|
url: string | URL,
|
|
@@ -132,7 +132,7 @@ export const execute: (
|
|
|
132
132
|
* @since 4.0.0
|
|
133
133
|
* @category accessors
|
|
134
134
|
*/
|
|
135
|
-
export const get: (url: string | URL, options?: HttpClientRequest.Options.
|
|
135
|
+
export const get: (url: string | URL, options?: HttpClientRequest.Options.NoUrl | undefined) => Effect.Effect<
|
|
136
136
|
HttpClientResponse.HttpClientResponse,
|
|
137
137
|
Error.HttpClientError,
|
|
138
138
|
HttpClient
|
|
@@ -142,7 +142,7 @@ export const get: (url: string | URL, options?: HttpClientRequest.Options.NoBody
|
|
|
142
142
|
* @since 4.0.0
|
|
143
143
|
* @category accessors
|
|
144
144
|
*/
|
|
145
|
-
export const head: (url: string | URL, options?: HttpClientRequest.Options.
|
|
145
|
+
export const head: (url: string | URL, options?: HttpClientRequest.Options.NoUrl | undefined) => Effect.Effect<
|
|
146
146
|
HttpClientResponse.HttpClientResponse,
|
|
147
147
|
Error.HttpClientError,
|
|
148
148
|
HttpClient
|
|
@@ -928,7 +928,7 @@ export const retry: {
|
|
|
928
928
|
/**
|
|
929
929
|
* Retries common transient errors, such as rate limiting, timeouts or network issues.
|
|
930
930
|
*
|
|
931
|
-
* Use `
|
|
931
|
+
* Use `retryOn` to focus on retrying errors, transient responses, or both.
|
|
932
932
|
*
|
|
933
933
|
* Specifying a `while` predicate allows you to consider other errors as
|
|
934
934
|
* transient, and is ignored in "response-only" mode.
|
|
@@ -940,7 +940,7 @@ export const retryTransient: {
|
|
|
940
940
|
/**
|
|
941
941
|
* Retries common transient errors, such as rate limiting, timeouts or network issues.
|
|
942
942
|
*
|
|
943
|
-
* Use `
|
|
943
|
+
* Use `retryOn` to focus on retrying errors, transient responses, or both.
|
|
944
944
|
*
|
|
945
945
|
* Specifying a `while` predicate allows you to consider other errors as
|
|
946
946
|
* transient, and is ignored in "response-only" mode.
|
|
@@ -953,13 +953,13 @@ export const retryTransient: {
|
|
|
953
953
|
E,
|
|
954
954
|
ES = never,
|
|
955
955
|
R1 = never,
|
|
956
|
-
const
|
|
957
|
-
Input = "errors-only" extends
|
|
958
|
-
: "response-only" extends
|
|
956
|
+
const RetryOn extends "errors-only" | "response-only" | "errors-and-responses" = never,
|
|
957
|
+
Input = "errors-only" extends RetryOn ? E
|
|
958
|
+
: "response-only" extends RetryOn ? HttpClientResponse.HttpClientResponse
|
|
959
959
|
: HttpClientResponse.HttpClientResponse | E
|
|
960
960
|
>(
|
|
961
961
|
options: {
|
|
962
|
-
readonly
|
|
962
|
+
readonly retryOn?: RetryOn | undefined
|
|
963
963
|
readonly while?: Predicate.Predicate<NoInfer<E | ES>>
|
|
964
964
|
readonly schedule?: Schedule.Schedule<B, NoInfer<Input>, ES, R1>
|
|
965
965
|
readonly times?: number
|
|
@@ -968,7 +968,7 @@ export const retryTransient: {
|
|
|
968
968
|
/**
|
|
969
969
|
* Retries common transient errors, such as rate limiting, timeouts or network issues.
|
|
970
970
|
*
|
|
971
|
-
* Use `
|
|
971
|
+
* Use `retryOn` to focus on retrying errors, transient responses, or both.
|
|
972
972
|
*
|
|
973
973
|
* Specifying a `while` predicate allows you to consider other errors as
|
|
974
974
|
* transient, and is ignored in "response-only" mode.
|
|
@@ -982,14 +982,14 @@ export const retryTransient: {
|
|
|
982
982
|
B,
|
|
983
983
|
ES = never,
|
|
984
984
|
R1 = never,
|
|
985
|
-
const
|
|
986
|
-
Input = "errors-only" extends
|
|
987
|
-
: "response-only" extends
|
|
985
|
+
const RetryOn extends "errors-only" | "response-only" | "errors-and-responses" = never,
|
|
986
|
+
Input = "errors-only" extends RetryOn ? E
|
|
987
|
+
: "response-only" extends RetryOn ? HttpClientResponse.HttpClientResponse
|
|
988
988
|
: HttpClientResponse.HttpClientResponse | E
|
|
989
989
|
>(
|
|
990
990
|
self: HttpClient.With<E, R>,
|
|
991
991
|
options: {
|
|
992
|
-
readonly
|
|
992
|
+
readonly retryOn?: RetryOn | undefined
|
|
993
993
|
readonly while?: Predicate.Predicate<NoInfer<E | ES>>
|
|
994
994
|
readonly schedule?: Schedule.Schedule<B, NoInfer<Input>, ES, R1>
|
|
995
995
|
readonly times?: number
|
|
@@ -1006,26 +1006,26 @@ export const retryTransient: {
|
|
|
1006
1006
|
>(
|
|
1007
1007
|
self: HttpClient.With<E, R>,
|
|
1008
1008
|
options: {
|
|
1009
|
-
readonly
|
|
1009
|
+
readonly retryOn?: "errors-only" | "response-only" | "errors-and-responses" | undefined
|
|
1010
1010
|
readonly while?: Predicate.Predicate<E | ES>
|
|
1011
1011
|
readonly schedule?: Schedule.Schedule<B, any, ES, R1>
|
|
1012
1012
|
readonly times?: number
|
|
1013
1013
|
} | Schedule.Schedule<B, any, ES, R1>
|
|
1014
1014
|
): HttpClient.With<E | ES, R1 | R> => {
|
|
1015
1015
|
const isOnlySchedule = Schedule.isSchedule(options)
|
|
1016
|
-
const
|
|
1016
|
+
const retryOn = isOnlySchedule ? "errors-and-responses" : options.retryOn ?? "errors-and-responses"
|
|
1017
1017
|
const schedule = isOnlySchedule ? options : options.schedule
|
|
1018
1018
|
const passthroughSchedule = schedule && Schedule.passthrough(schedule)
|
|
1019
1019
|
const times = isOnlySchedule ? undefined : options.times
|
|
1020
1020
|
return transformResponse(
|
|
1021
1021
|
self,
|
|
1022
1022
|
flow(
|
|
1023
|
-
|
|
1023
|
+
retryOn === "errors-only" ? identity : Effect.repeat({
|
|
1024
1024
|
schedule: passthroughSchedule!,
|
|
1025
1025
|
times,
|
|
1026
1026
|
while: isTransientResponse
|
|
1027
1027
|
}),
|
|
1028
|
-
|
|
1028
|
+
retryOn === "response-only" ? identity : Effect.retry({
|
|
1029
1029
|
while: isOnlySchedule || options.while === undefined
|
|
1030
1030
|
? isTransientError
|
|
1031
1031
|
: Predicate.or(isTransientError, options.while),
|
|
@@ -61,12 +61,6 @@ export interface Options {
|
|
|
61
61
|
* @since 4.0.0
|
|
62
62
|
*/
|
|
63
63
|
export declare namespace Options {
|
|
64
|
-
/**
|
|
65
|
-
* @since 4.0.0
|
|
66
|
-
* @category models
|
|
67
|
-
*/
|
|
68
|
-
export interface NoBody extends Omit<Options, "method" | "url" | "body"> {}
|
|
69
|
-
|
|
70
64
|
/**
|
|
71
65
|
* @since 4.0.0
|
|
72
66
|
* @category models
|
|
@@ -133,7 +127,7 @@ export const make = <M extends HttpMethod>(
|
|
|
133
127
|
) =>
|
|
134
128
|
(
|
|
135
129
|
url: string | URL,
|
|
136
|
-
options?:
|
|
130
|
+
options?: Options.NoUrl | undefined
|
|
137
131
|
): HttpClientRequest =>
|
|
138
132
|
modify(empty, {
|
|
139
133
|
method,
|
|
@@ -145,7 +139,7 @@ export const make = <M extends HttpMethod>(
|
|
|
145
139
|
* @since 4.0.0
|
|
146
140
|
* @category constructors
|
|
147
141
|
*/
|
|
148
|
-
export const get: (url: string | URL, options?: Options.
|
|
142
|
+
export const get: (url: string | URL, options?: Options.NoUrl) => HttpClientRequest = make("GET")
|
|
149
143
|
|
|
150
144
|
/**
|
|
151
145
|
* @since 4.0.0
|
|
@@ -165,23 +159,33 @@ export const patch: (url: string | URL, options?: Options.NoUrl) => HttpClientRe
|
|
|
165
159
|
*/
|
|
166
160
|
export const put: (url: string | URL, options?: Options.NoUrl) => HttpClientRequest = make("PUT")
|
|
167
161
|
|
|
162
|
+
const del: (url: string | URL, options?: Options.NoUrl) => HttpClientRequest = make("DELETE")
|
|
163
|
+
|
|
164
|
+
export {
|
|
165
|
+
/**
|
|
166
|
+
* @since 4.0.0
|
|
167
|
+
* @category constructors
|
|
168
|
+
*/
|
|
169
|
+
del as delete
|
|
170
|
+
}
|
|
171
|
+
|
|
168
172
|
/**
|
|
169
173
|
* @since 4.0.0
|
|
170
174
|
* @category constructors
|
|
171
175
|
*/
|
|
172
|
-
export const
|
|
176
|
+
export const head: (url: string | URL, options?: Options.NoUrl) => HttpClientRequest = make("HEAD")
|
|
173
177
|
|
|
174
178
|
/**
|
|
175
179
|
* @since 4.0.0
|
|
176
180
|
* @category constructors
|
|
177
181
|
*/
|
|
178
|
-
export const
|
|
182
|
+
export const options: (url: string | URL, options?: Options.NoUrl) => HttpClientRequest = make("OPTIONS")
|
|
179
183
|
|
|
180
184
|
/**
|
|
181
185
|
* @since 4.0.0
|
|
182
186
|
* @category constructors
|
|
183
187
|
*/
|
|
184
|
-
export const
|
|
188
|
+
export const trace: (url: string | URL, options?: Options.NoUrl) => HttpClientRequest = make("TRACE")
|
|
185
189
|
|
|
186
190
|
/**
|
|
187
191
|
* @since 4.0.0
|
|
@@ -661,7 +665,7 @@ export const setBody: {
|
|
|
661
665
|
(self: HttpClientRequest, body: HttpBody.HttpBody): HttpClientRequest
|
|
662
666
|
} = dual(2, (self: HttpClientRequest, body: HttpBody.HttpBody): HttpClientRequest => {
|
|
663
667
|
let headers = self.headers
|
|
664
|
-
if (body._tag === "Empty") {
|
|
668
|
+
if (body._tag === "Empty" || body._tag === "FormData") {
|
|
665
669
|
headers = Headers.remove(Headers.remove(headers, "Content-Type"), "Content-length")
|
|
666
670
|
} else {
|
|
667
671
|
if (body.contentType) {
|
|
@@ -826,7 +830,28 @@ export const bodyFormData: {
|
|
|
826
830
|
* @category combinators
|
|
827
831
|
*/
|
|
828
832
|
(self: HttpClientRequest, body: FormData): HttpClientRequest
|
|
829
|
-
} = dual(2, (self: HttpClientRequest, body: FormData): HttpClientRequest => setBody(self, HttpBody.
|
|
833
|
+
} = dual(2, (self: HttpClientRequest, body: FormData): HttpClientRequest => setBody(self, HttpBody.formData(body)))
|
|
834
|
+
|
|
835
|
+
/**
|
|
836
|
+
* @since 4.0.0
|
|
837
|
+
* @category combinators
|
|
838
|
+
*/
|
|
839
|
+
export const bodyFormDataRecord: {
|
|
840
|
+
/**
|
|
841
|
+
* @since 4.0.0
|
|
842
|
+
* @category combinators
|
|
843
|
+
*/
|
|
844
|
+
(entries: HttpBody.FormDataInput): (self: HttpClientRequest) => HttpClientRequest
|
|
845
|
+
/**
|
|
846
|
+
* @since 4.0.0
|
|
847
|
+
* @category combinators
|
|
848
|
+
*/
|
|
849
|
+
(self: HttpClientRequest, entries: HttpBody.FormDataInput): HttpClientRequest
|
|
850
|
+
} = dual(
|
|
851
|
+
2,
|
|
852
|
+
(self: HttpClientRequest, entries: HttpBody.FormDataInput): HttpClientRequest =>
|
|
853
|
+
setBody(self, HttpBody.formDataRecord(entries))
|
|
854
|
+
)
|
|
830
855
|
|
|
831
856
|
/**
|
|
832
857
|
* @since 4.0.0
|
|
@@ -6,7 +6,6 @@ import * as Effect from "../../Effect.ts"
|
|
|
6
6
|
import * as Exit from "../../Exit.ts"
|
|
7
7
|
import * as Fiber from "../../Fiber.ts"
|
|
8
8
|
import { dual } from "../../Function.ts"
|
|
9
|
-
import { effectIsExit } from "../../internal/effect.ts"
|
|
10
9
|
import * as Layer from "../../Layer.ts"
|
|
11
10
|
import * as Scope from "../../Scope.ts"
|
|
12
11
|
import * as ServiceMap from "../../ServiceMap.ts"
|
|
@@ -32,30 +31,6 @@ export const toHandled = <E, R, EH, RH>(
|
|
|
32
31
|
) => Effect.Effect<unknown, EH, RH>,
|
|
33
32
|
middleware?: HttpMiddleware | undefined
|
|
34
33
|
): Effect.Effect<void, never, Exclude<R | RH | HttpServerRequest, Scope.Scope>> => {
|
|
35
|
-
const responded = Effect.flatMap(self, (response) => {
|
|
36
|
-
const fiber = Fiber.getCurrent()!
|
|
37
|
-
const request = ServiceMap.getUnsafe(fiber.services, HttpServerRequest)
|
|
38
|
-
const handler = fiber.getRef(PreResponseHandlers)
|
|
39
|
-
if (handler === undefined) {
|
|
40
|
-
;(request as any)[handledSymbol] = true
|
|
41
|
-
const eff = handleResponse(request, response)
|
|
42
|
-
if (effectIsExit(eff)) {
|
|
43
|
-
return eff._tag === "Success" ? Effect.succeed(response) : handleCause(eff.cause)
|
|
44
|
-
}
|
|
45
|
-
return Effect.matchCauseEffect(eff, {
|
|
46
|
-
onFailure: handleCause,
|
|
47
|
-
onSuccess: () => Effect.succeed(response)
|
|
48
|
-
})
|
|
49
|
-
}
|
|
50
|
-
return Effect.flatMapEager(handler(request, response), (sentResponse) => {
|
|
51
|
-
;(request as any)[handledSymbol] = true
|
|
52
|
-
return Effect.matchCauseEffectEager(handleResponse(request, sentResponse), {
|
|
53
|
-
onSuccess: () => Effect.succeed(response),
|
|
54
|
-
onFailure: handleCause
|
|
55
|
-
})
|
|
56
|
-
})
|
|
57
|
-
})
|
|
58
|
-
|
|
59
34
|
const handleCause = (cause: Cause<E | EH | HttpServerError>) =>
|
|
60
35
|
Effect.flatMapEager(causeResponse(cause), ([response, cause]) => {
|
|
61
36
|
const fiber = Fiber.getCurrent()!
|
|
@@ -79,6 +54,23 @@ export const toHandled = <E, R, EH, RH>(
|
|
|
79
54
|
)
|
|
80
55
|
})
|
|
81
56
|
|
|
57
|
+
const responded = Effect.matchCauseEffect(self, {
|
|
58
|
+
onSuccess: (response) => {
|
|
59
|
+
const fiber = Fiber.getCurrent()!
|
|
60
|
+
const request = ServiceMap.getUnsafe(fiber.services, HttpServerRequest)
|
|
61
|
+
const handler = fiber.getRef(PreResponseHandlers)
|
|
62
|
+
if (handler === undefined) {
|
|
63
|
+
;(request as any)[handledSymbol] = true
|
|
64
|
+
return Effect.mapEager(handleResponse(request, response), () => response)
|
|
65
|
+
}
|
|
66
|
+
return Effect.flatMapEager(handler(request, response), (sentResponse) => {
|
|
67
|
+
;(request as any)[handledSymbol] = true
|
|
68
|
+
return Effect.mapEager(handleResponse(request, sentResponse), () => response)
|
|
69
|
+
})
|
|
70
|
+
},
|
|
71
|
+
onFailure: handleCause
|
|
72
|
+
})
|
|
73
|
+
|
|
82
74
|
const withMiddleware: Effect.Effect<
|
|
83
75
|
unknown,
|
|
84
76
|
E | EH | HttpServerError,
|
|
@@ -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)
|
|
@@ -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
|
|
@@ -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
|
|