effect 4.0.0-beta.1 → 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 +125 -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 +31 -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/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 +143 -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 +57 -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/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,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
|
|
|
@@ -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(
|
|
@@ -98,6 +98,12 @@ export type ScalarConfig = {
|
|
|
98
98
|
* Default: `false`
|
|
99
99
|
*/
|
|
100
100
|
defaultOpenAllTags?: boolean
|
|
101
|
+
/**
|
|
102
|
+
* Whether to display the operation ID in the operation reference.
|
|
103
|
+
*
|
|
104
|
+
* Default: `false`
|
|
105
|
+
*/
|
|
106
|
+
showOperationId?: boolean
|
|
101
107
|
}
|
|
102
108
|
|
|
103
109
|
type ScalarSource =
|
|
@@ -362,20 +362,23 @@ export function fromApi<Id extends string, Groups extends HttpApiGroup.Any>(
|
|
|
362
362
|
}
|
|
363
363
|
}
|
|
364
364
|
|
|
365
|
-
function processParameters(
|
|
366
|
-
if (
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
365
|
+
function processParameters(schema: Schema.Top | undefined, i: OpenAPISpecParameter["in"]) {
|
|
366
|
+
if (schema) {
|
|
367
|
+
const ast = AST.toEncoded(schema.ast)
|
|
368
|
+
if (AST.isObjects(ast)) {
|
|
369
|
+
for (const ps of ast.propertySignatures) {
|
|
370
|
+
op.parameters.push({
|
|
371
|
+
name: String(ps.name),
|
|
372
|
+
in: i,
|
|
373
|
+
schema: {},
|
|
374
|
+
required: i === "path" || !AST.isOptional(ps.type)
|
|
375
|
+
})
|
|
376
|
+
pathOps.push({
|
|
377
|
+
_tag: "parameter",
|
|
378
|
+
ast: ps.type,
|
|
379
|
+
path: ["paths", path, method, "parameters", String(op.parameters.length - 1), "schema"]
|
|
380
|
+
})
|
|
381
|
+
}
|
|
379
382
|
}
|
|
380
383
|
}
|
|
381
384
|
}
|
|
@@ -421,8 +424,7 @@ export function fromApi<Id extends string, Groups extends HttpApiGroup.Any>(
|
|
|
421
424
|
processParameters(endpoint.params, "path")
|
|
422
425
|
if (!hasBody && endpoint.payload.size === 1) {
|
|
423
426
|
const entry = endpoint.payload.values().next().value!
|
|
424
|
-
|
|
425
|
-
processParameters(schema.fields, "query")
|
|
427
|
+
processParameters(entry.schemas[0], "query")
|
|
426
428
|
}
|
|
427
429
|
processParameters(endpoint.headers, "header")
|
|
428
430
|
processParameters(endpoint.query, "query")
|