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
|
@@ -51,8 +51,8 @@ export interface AtomHttpApiClient<Self, Id extends string, Groups extends HttpA
|
|
|
51
51
|
infer _Name,
|
|
52
52
|
infer _Method,
|
|
53
53
|
infer _Path,
|
|
54
|
-
infer
|
|
55
|
-
infer
|
|
54
|
+
infer _Params,
|
|
55
|
+
infer _Query,
|
|
56
56
|
infer _Payload,
|
|
57
57
|
infer _Headers,
|
|
58
58
|
infer _Success,
|
|
@@ -62,7 +62,7 @@ export interface AtomHttpApiClient<Self, Id extends string, Groups extends HttpA
|
|
|
62
62
|
>
|
|
63
63
|
] ? Atom.AtomResultFn<
|
|
64
64
|
Simplify<
|
|
65
|
-
HttpApiEndpoint.ClientRequest<
|
|
65
|
+
HttpApiEndpoint.ClientRequest<_Params, _Query, _Payload, _Headers, false> & {
|
|
66
66
|
readonly reactivityKeys?: ReadonlyArray<unknown> | ReadonlyRecord<string, ReadonlyArray<unknown>> | undefined
|
|
67
67
|
}
|
|
68
68
|
>,
|
|
@@ -88,8 +88,8 @@ export interface AtomHttpApiClient<Self, Id extends string, Groups extends HttpA
|
|
|
88
88
|
infer _Name,
|
|
89
89
|
infer _Method,
|
|
90
90
|
infer _Path,
|
|
91
|
-
infer
|
|
92
|
-
infer
|
|
91
|
+
infer _Params,
|
|
92
|
+
infer _Query,
|
|
93
93
|
infer _Payload,
|
|
94
94
|
infer _Headers,
|
|
95
95
|
infer _Success,
|
|
@@ -98,12 +98,12 @@ export interface AtomHttpApiClient<Self, Id extends string, Groups extends HttpA
|
|
|
98
98
|
infer _RE
|
|
99
99
|
>
|
|
100
100
|
] ? Simplify<
|
|
101
|
-
HttpApiEndpoint.ClientRequest<
|
|
101
|
+
HttpApiEndpoint.ClientRequest<_Params, _Query, _Payload, _Headers, WithResponse> & {
|
|
102
102
|
readonly reactivityKeys?:
|
|
103
103
|
| ReadonlyArray<unknown>
|
|
104
104
|
| ReadonlyRecord<string, ReadonlyArray<unknown>>
|
|
105
105
|
| undefined
|
|
106
|
-
readonly timeToLive?: Duration.
|
|
106
|
+
readonly timeToLive?: Duration.Input | undefined
|
|
107
107
|
}
|
|
108
108
|
>
|
|
109
109
|
: never
|
|
@@ -112,7 +112,8 @@ export interface AtomHttpApiClient<Self, Id extends string, Groups extends HttpA
|
|
|
112
112
|
infer _Name,
|
|
113
113
|
infer _Method,
|
|
114
114
|
infer _Path,
|
|
115
|
-
infer
|
|
115
|
+
infer _Params,
|
|
116
|
+
infer _Query,
|
|
116
117
|
infer _Payload,
|
|
117
118
|
infer _Headers,
|
|
118
119
|
infer _Success,
|
|
@@ -170,8 +171,8 @@ export const Service = <Self>() =>
|
|
|
170
171
|
|
|
171
172
|
const mutationFamily = Atom.family(({ endpoint, group, withResponse }: MutationKey) =>
|
|
172
173
|
self.runtime.fn<{
|
|
173
|
-
|
|
174
|
-
|
|
174
|
+
params: any
|
|
175
|
+
query: any
|
|
175
176
|
headers: any
|
|
176
177
|
payload: any
|
|
177
178
|
reactivityKeys?: ReadonlyArray<unknown> | ReadonlyRecord<string, ReadonlyArray<unknown>> | undefined
|
|
@@ -217,26 +218,26 @@ export const Service = <Self>() =>
|
|
|
217
218
|
group: string,
|
|
218
219
|
endpoint: string,
|
|
219
220
|
request: {
|
|
220
|
-
readonly
|
|
221
|
-
readonly
|
|
221
|
+
readonly params?: any
|
|
222
|
+
readonly query?: any
|
|
222
223
|
readonly payload?: any
|
|
223
224
|
readonly headers?: any
|
|
224
225
|
readonly withResponse?: boolean
|
|
225
226
|
readonly reactivityKeys?: ReadonlyArray<unknown> | ReadonlyRecord<string, ReadonlyArray<unknown>> | undefined
|
|
226
|
-
readonly timeToLive?: Duration.
|
|
227
|
+
readonly timeToLive?: Duration.Input | undefined
|
|
227
228
|
}
|
|
228
229
|
) =>
|
|
229
230
|
queryFamily({
|
|
230
231
|
group,
|
|
231
232
|
endpoint,
|
|
232
|
-
|
|
233
|
-
|
|
233
|
+
params: request.params,
|
|
234
|
+
query: request.query,
|
|
234
235
|
payload: request.payload,
|
|
235
236
|
headers: request.headers,
|
|
236
237
|
withResponse: request.withResponse ?? false,
|
|
237
238
|
reactivityKeys: request.reactivityKeys,
|
|
238
239
|
timeToLive: request.timeToLive
|
|
239
|
-
? Duration.
|
|
240
|
+
? Duration.fromInputUnsafe(request.timeToLive)
|
|
240
241
|
: undefined
|
|
241
242
|
})) as any
|
|
242
243
|
|
|
@@ -252,8 +253,8 @@ interface MutationKey {
|
|
|
252
253
|
interface QueryKey {
|
|
253
254
|
group: string
|
|
254
255
|
endpoint: string
|
|
255
|
-
|
|
256
|
-
|
|
256
|
+
params: any
|
|
257
|
+
query: any
|
|
257
258
|
headers: any
|
|
258
259
|
payload: any
|
|
259
260
|
withResponse: boolean
|
|
@@ -71,7 +71,7 @@ export interface AtomRpcClient<Self, Id extends string, Rpcs extends Rpc.Any, E>
|
|
|
71
71
|
| ReadonlyArray<unknown>
|
|
72
72
|
| ReadonlyRecord<string, ReadonlyArray<unknown>>
|
|
73
73
|
| undefined
|
|
74
|
-
readonly timeToLive?: Duration.
|
|
74
|
+
readonly timeToLive?: Duration.Input | undefined
|
|
75
75
|
}
|
|
76
76
|
) => Rpc.ExtractTag<Rpcs, Tag> extends Rpc.Rpc<
|
|
77
77
|
infer _Tag,
|
|
@@ -208,7 +208,7 @@ export const Service = <Self>() =>
|
|
|
208
208
|
| ReadonlyArray<unknown>
|
|
209
209
|
| ReadonlyRecord<string, ReadonlyArray<unknown>>
|
|
210
210
|
| undefined
|
|
211
|
-
readonly timeToLive?: Duration.
|
|
211
|
+
readonly timeToLive?: Duration.Input | undefined
|
|
212
212
|
}
|
|
213
213
|
) =>
|
|
214
214
|
queryFamily({
|
|
@@ -219,7 +219,7 @@ export const Service = <Self>() =>
|
|
|
219
219
|
: undefined,
|
|
220
220
|
reactivityKeys: options?.reactivityKeys,
|
|
221
221
|
timeToLive: options?.timeToLive
|
|
222
|
-
? Duration.
|
|
222
|
+
? Duration.fromInputUnsafe(options.timeToLive)
|
|
223
223
|
: undefined
|
|
224
224
|
}) as any
|
|
225
225
|
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 4.0.0
|
|
3
|
+
*/
|
|
4
|
+
import * as AsyncResult from "./AsyncResult.ts"
|
|
5
|
+
import * as Atom from "./Atom.ts"
|
|
6
|
+
import type * as AtomRegistry from "./AtomRegistry.ts"
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @since 4.0.0
|
|
10
|
+
* @category models
|
|
11
|
+
*/
|
|
12
|
+
export interface DehydratedAtom {
|
|
13
|
+
readonly "~effect/reactivity/DehydratedAtom": true
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* @since 4.0.0
|
|
18
|
+
* @category models
|
|
19
|
+
*/
|
|
20
|
+
export interface DehydratedAtomValue extends DehydratedAtom {
|
|
21
|
+
readonly key: string
|
|
22
|
+
readonly value: unknown
|
|
23
|
+
readonly dehydratedAt: number
|
|
24
|
+
readonly resultPromise?: Promise<unknown> | undefined
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* @since 4.0.0
|
|
29
|
+
* @category dehydration
|
|
30
|
+
*/
|
|
31
|
+
export const dehydrate = (
|
|
32
|
+
registry: AtomRegistry.AtomRegistry,
|
|
33
|
+
options?: {
|
|
34
|
+
/**
|
|
35
|
+
* How to encode `AsyncResult.Initial` values. Default is "ignore".
|
|
36
|
+
*/
|
|
37
|
+
readonly encodeInitialAs?: "ignore" | "promise" | "value-only" | undefined
|
|
38
|
+
}
|
|
39
|
+
): Array<DehydratedAtom> => {
|
|
40
|
+
const encodeInitialResultMode = options?.encodeInitialAs ?? "ignore"
|
|
41
|
+
const arr: Array<DehydratedAtomValue> = []
|
|
42
|
+
const now = Date.now()
|
|
43
|
+
registry.getNodes().forEach((node, key) => {
|
|
44
|
+
if (!Atom.isSerializable(node.atom)) return
|
|
45
|
+
const atom = node.atom
|
|
46
|
+
const value = node.value()
|
|
47
|
+
const isInitial = AsyncResult.isAsyncResult(value) && AsyncResult.isInitial(value)
|
|
48
|
+
if (encodeInitialResultMode === "ignore" && isInitial) return
|
|
49
|
+
const encodedValue = atom[Atom.SerializableTypeId].encode(value)
|
|
50
|
+
|
|
51
|
+
// Create a promise that resolves when the atom moves out of Initial state
|
|
52
|
+
let resultPromise: Promise<unknown> | undefined
|
|
53
|
+
if (encodeInitialResultMode === "promise" && isInitial) {
|
|
54
|
+
resultPromise = new Promise((resolve) => {
|
|
55
|
+
const unsubscribe = registry.subscribe(atom, (newValue) => {
|
|
56
|
+
if (AsyncResult.isAsyncResult(newValue) && !AsyncResult.isInitial(newValue)) {
|
|
57
|
+
resolve(atom[Atom.SerializableTypeId].encode(newValue))
|
|
58
|
+
unsubscribe()
|
|
59
|
+
}
|
|
60
|
+
})
|
|
61
|
+
})
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
arr.push({
|
|
65
|
+
"~effect/reactivity/DehydratedAtom": true,
|
|
66
|
+
key: key as string,
|
|
67
|
+
value: encodedValue,
|
|
68
|
+
dehydratedAt: now,
|
|
69
|
+
resultPromise
|
|
70
|
+
})
|
|
71
|
+
})
|
|
72
|
+
return arr as any
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* @since 4.0.0
|
|
77
|
+
* @category dehydration
|
|
78
|
+
*/
|
|
79
|
+
export const toValues = (state: ReadonlyArray<DehydratedAtom>): Array<DehydratedAtomValue> => state as any
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* @since 4.0.0
|
|
83
|
+
* @category hydration
|
|
84
|
+
*/
|
|
85
|
+
export const hydrate = (
|
|
86
|
+
registry: AtomRegistry.AtomRegistry,
|
|
87
|
+
dehydratedState: Iterable<DehydratedAtom>
|
|
88
|
+
): void => {
|
|
89
|
+
for (const datom of (dehydratedState as Iterable<DehydratedAtomValue>)) {
|
|
90
|
+
registry.setSerializable(datom.key, datom.value)
|
|
91
|
+
|
|
92
|
+
// If there's a resultPromise, it means this was in Initial state when dehydrated
|
|
93
|
+
// and we should wait for it to resolve to a non-Initial state, then update the registry
|
|
94
|
+
if (!datom.resultPromise) continue
|
|
95
|
+
datom.resultPromise.then((resolvedValue) => {
|
|
96
|
+
// Try to update the existing node directly instead of using setSerializable
|
|
97
|
+
const nodes = registry.getNodes()
|
|
98
|
+
const node = nodes.get(datom.key)
|
|
99
|
+
if (node) {
|
|
100
|
+
// Decode the resolved value using the node's atom serializable decoder
|
|
101
|
+
const atom = node.atom as any
|
|
102
|
+
if (atom[Atom.SerializableTypeId]) {
|
|
103
|
+
const decoded = atom[Atom.SerializableTypeId].decode(resolvedValue)
|
|
104
|
+
;(node as any).setValue(decoded)
|
|
105
|
+
}
|
|
106
|
+
} else {
|
|
107
|
+
// Fallback to setSerializable if node doesn't exist yet
|
|
108
|
+
registry.setSerializable(datom.key, resolvedValue)
|
|
109
|
+
}
|
|
110
|
+
})
|
|
111
|
+
}
|
|
112
|
+
}
|
package/src/unstable/rpc/Rpc.ts
CHANGED
|
@@ -61,7 +61,7 @@ export interface Rpc<
|
|
|
61
61
|
readonly payloadSchema: Payload
|
|
62
62
|
readonly successSchema: Success
|
|
63
63
|
readonly errorSchema: Error
|
|
64
|
-
readonly defectSchema:
|
|
64
|
+
readonly defectSchema: Schema.Top
|
|
65
65
|
readonly annotations: ServiceMap.ServiceMap<never>
|
|
66
66
|
readonly middlewares: ReadonlySet<Middleware>
|
|
67
67
|
readonly "~requires": Requires
|
|
@@ -183,7 +183,7 @@ export interface AnyWithProps extends Pipeable {
|
|
|
183
183
|
readonly payloadSchema: Schema.Top
|
|
184
184
|
readonly successSchema: Schema.Top
|
|
185
185
|
readonly errorSchema: Schema.Top
|
|
186
|
-
readonly defectSchema:
|
|
186
|
+
readonly defectSchema: Schema.Top
|
|
187
187
|
readonly annotations: ServiceMap.ServiceMap<never>
|
|
188
188
|
readonly middlewares: ReadonlySet<RpcMiddleware.AnyServiceWithProps>
|
|
189
189
|
readonly "~requires": any
|
|
@@ -696,7 +696,7 @@ const makeProto = <
|
|
|
696
696
|
readonly payloadSchema: Payload
|
|
697
697
|
readonly successSchema: Success
|
|
698
698
|
readonly errorSchema: Error
|
|
699
|
-
readonly defectSchema:
|
|
699
|
+
readonly defectSchema: Schema.Top
|
|
700
700
|
readonly annotations: ServiceMap.ServiceMap<never>
|
|
701
701
|
readonly middlewares: ReadonlySet<Middleware>
|
|
702
702
|
}): Rpc<Tag, Payload, Success, Error, Middleware, Requires> => {
|
|
@@ -8,6 +8,7 @@ import * as Effect from "../../Effect.ts"
|
|
|
8
8
|
import * as Exit from "../../Exit.ts"
|
|
9
9
|
import * as Fiber from "../../Fiber.ts"
|
|
10
10
|
import { constVoid, dual, flow, identity } from "../../Function.ts"
|
|
11
|
+
import * as Latch from "../../Latch.ts"
|
|
11
12
|
import * as Layer from "../../Layer.ts"
|
|
12
13
|
import * as Option from "../../Option.ts"
|
|
13
14
|
import * as Pool from "../../Pool.ts"
|
|
@@ -20,7 +21,6 @@ import * as ServiceMap from "../../ServiceMap.ts"
|
|
|
20
21
|
import * as Stream from "../../Stream.ts"
|
|
21
22
|
import type * as Struct from "../../Struct.ts"
|
|
22
23
|
import type { Span } from "../../Tracer.ts"
|
|
23
|
-
import type { Mutable } from "../../Types.ts"
|
|
24
24
|
import * as Headers from "../http/Headers.ts"
|
|
25
25
|
import * as HttpBody from "../http/HttpBody.ts"
|
|
26
26
|
import * as HttpClient from "../http/HttpClient.ts"
|
|
@@ -45,16 +45,7 @@ import { withRun } from "./Utils.ts"
|
|
|
45
45
|
* @since 4.0.0
|
|
46
46
|
* @category client
|
|
47
47
|
*/
|
|
48
|
-
export type RpcClient<Rpcs extends Rpc.Any, E = never> = Struct.Simplify<
|
|
49
|
-
& RpcClient.From<RpcClient.NonPrefixed<Rpcs>, E, "">
|
|
50
|
-
& {
|
|
51
|
-
readonly [CurrentPrefix in RpcClient.Prefixes<Rpcs>]: RpcClient.From<
|
|
52
|
-
RpcClient.Prefixed<Rpcs, CurrentPrefix>,
|
|
53
|
-
E,
|
|
54
|
-
CurrentPrefix
|
|
55
|
-
>
|
|
56
|
-
}
|
|
57
|
-
>
|
|
48
|
+
export type RpcClient<Rpcs extends Rpc.Any, E = never> = Struct.Simplify<RpcClient.From<Rpcs, E>>
|
|
58
49
|
|
|
59
50
|
/**
|
|
60
51
|
* @since 4.0.0
|
|
@@ -65,34 +56,8 @@ export declare namespace RpcClient {
|
|
|
65
56
|
* @since 4.0.0
|
|
66
57
|
* @category client
|
|
67
58
|
*/
|
|
68
|
-
export type
|
|
69
|
-
|
|
70
|
-
: never
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* @since 4.0.0
|
|
74
|
-
* @category client
|
|
75
|
-
*/
|
|
76
|
-
export type NonPrefixed<Rpcs extends Rpc.Any> = Exclude<Rpcs, { readonly _tag: `${string}.${string}` }>
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* @since 4.0.0
|
|
80
|
-
* @category client
|
|
81
|
-
*/
|
|
82
|
-
export type Prefixed<Rpcs extends Rpc.Any, Prefix extends string> = Extract<
|
|
83
|
-
Rpcs,
|
|
84
|
-
{ readonly _tag: `${Prefix}.${string}` }
|
|
85
|
-
>
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* @since 4.0.0
|
|
89
|
-
* @category client
|
|
90
|
-
*/
|
|
91
|
-
export type From<Rpcs extends Rpc.Any, E = never, Prefix extends string = ""> = {
|
|
92
|
-
readonly [
|
|
93
|
-
Current in Rpcs as Current["_tag"] extends `${Prefix}.${infer Method}` ? Method
|
|
94
|
-
: Current["_tag"]
|
|
95
|
-
]: <
|
|
59
|
+
export type From<Rpcs extends Rpc.Any, E = never> = {
|
|
60
|
+
readonly [Current in Rpcs as Current["_tag"]]: <
|
|
96
61
|
const AsQueue extends boolean = false,
|
|
97
62
|
const Discard = false
|
|
98
63
|
>(
|
|
@@ -614,16 +579,9 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any, E, const Flatten extend
|
|
|
614
579
|
}
|
|
615
580
|
} else {
|
|
616
581
|
client = {}
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
if (prefix !== undefined && !(prefix in client)) {
|
|
621
|
-
;(client as any)[prefix] = {} as Mutable<RpcClient.Prefixed<Rpcs, typeof prefix>>
|
|
622
|
-
}
|
|
623
|
-
const target = prefix !== undefined ? (client as any)[prefix] : client
|
|
624
|
-
const tag = prefix !== undefined ? rpc._tag.slice(dot + 1) : rpc._tag
|
|
625
|
-
target[tag] = onRequest(rpc as any)
|
|
626
|
-
}
|
|
582
|
+
group.requests.forEach((rpc) => {
|
|
583
|
+
client[rpc._tag] = onRequest(rpc as any)
|
|
584
|
+
})
|
|
627
585
|
}
|
|
628
586
|
|
|
629
587
|
return { client, write } as const
|
|
@@ -1070,7 +1028,7 @@ const defaultRetryPolicy = Schedule.exponential(500, 1.5).pipe(
|
|
|
1070
1028
|
|
|
1071
1029
|
const makePinger = Effect.fnUntraced(function*<A, E, R>(writePing: Effect.Effect<A, E, R>) {
|
|
1072
1030
|
let recievedPong = true
|
|
1073
|
-
const latch =
|
|
1031
|
+
const latch = Latch.makeUnsafe()
|
|
1074
1032
|
const reset = () => {
|
|
1075
1033
|
recievedPong = true
|
|
1076
1034
|
latch.closeUnsafe()
|
|
@@ -1118,7 +1076,7 @@ export const makeProtocolWorker = (
|
|
|
1118
1076
|
readonly maxSize: number
|
|
1119
1077
|
readonly concurrency?: number | undefined
|
|
1120
1078
|
readonly targetUtilization?: number | undefined
|
|
1121
|
-
readonly timeToLive: Duration.
|
|
1079
|
+
readonly timeToLive: Duration.Input
|
|
1122
1080
|
}
|
|
1123
1081
|
): Effect.Effect<
|
|
1124
1082
|
Protocol["Service"],
|
|
@@ -1133,7 +1091,7 @@ export const makeProtocolWorker = (
|
|
|
1133
1091
|
|
|
1134
1092
|
const entries = new Map<string, {
|
|
1135
1093
|
readonly worker: Worker.Worker<FromServerEncoded, FromClientEncoded | RpcWorker.InitialMessage.Encoded>
|
|
1136
|
-
readonly latch:
|
|
1094
|
+
readonly latch: Latch.Latch
|
|
1137
1095
|
}>()
|
|
1138
1096
|
|
|
1139
1097
|
const acquire = Effect.gen(function*() {
|
|
@@ -1219,7 +1177,7 @@ export const makeProtocolWorker = (
|
|
|
1219
1177
|
case "Request": {
|
|
1220
1178
|
return Pool.get(pool).pipe(
|
|
1221
1179
|
Effect.flatMap((worker) => {
|
|
1222
|
-
const latch =
|
|
1180
|
+
const latch = Latch.makeUnsafe(false)
|
|
1223
1181
|
entries.set(request.id, { worker, latch })
|
|
1224
1182
|
return Effect.flatMap(worker.send(request, transferables), () => latch.await)
|
|
1225
1183
|
}),
|
|
@@ -1266,7 +1224,7 @@ export const layerProtocolWorker: (
|
|
|
1266
1224
|
readonly maxSize: number
|
|
1267
1225
|
readonly concurrency?: number | undefined
|
|
1268
1226
|
readonly targetUtilization?: number | undefined
|
|
1269
|
-
readonly timeToLive: Duration.
|
|
1227
|
+
readonly timeToLive: Duration.Input
|
|
1270
1228
|
}
|
|
1271
1229
|
) => Layer.Layer<
|
|
1272
1230
|
Protocol,
|
|
@@ -8,6 +8,7 @@ import * as Effect from "../../Effect.ts"
|
|
|
8
8
|
import * as Exit from "../../Exit.ts"
|
|
9
9
|
import * as Fiber from "../../Fiber.ts"
|
|
10
10
|
import { constant, constTrue, constVoid, identity } from "../../Function.ts"
|
|
11
|
+
import * as Latch from "../../Latch.ts"
|
|
11
12
|
import * as Layer from "../../Layer.ts"
|
|
12
13
|
import type * as Option from "../../Option.ts"
|
|
13
14
|
import * as Predicate from "../../Predicate.ts"
|
|
@@ -17,6 +18,7 @@ import * as Result from "../../Result.ts"
|
|
|
17
18
|
import * as Schedule from "../../Schedule.ts"
|
|
18
19
|
import * as Schema from "../../Schema.ts"
|
|
19
20
|
import * as Scope from "../../Scope.ts"
|
|
21
|
+
import * as Semaphore from "../../Semaphore.ts"
|
|
20
22
|
import * as ServiceMap from "../../ServiceMap.ts"
|
|
21
23
|
import { Stdio } from "../../Stdio.ts"
|
|
22
24
|
import * as Stream from "../../Stream.ts"
|
|
@@ -101,18 +103,18 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any>(
|
|
|
101
103
|
const trackFiber = Fiber.runIn(Scope.forkUnsafe(scope, "parallel"))
|
|
102
104
|
const concurrencySemaphore = concurrency === "unbounded"
|
|
103
105
|
? undefined
|
|
104
|
-
: yield*
|
|
106
|
+
: yield* Semaphore.make(concurrency)
|
|
105
107
|
|
|
106
108
|
type Client = {
|
|
107
109
|
readonly id: number
|
|
108
|
-
readonly latches: Map<RequestId,
|
|
110
|
+
readonly latches: Map<RequestId, Latch.Latch>
|
|
109
111
|
readonly fibers: Map<RequestId, Fiber.Fiber<unknown, any>>
|
|
110
112
|
ended: boolean
|
|
111
113
|
}
|
|
112
114
|
|
|
113
115
|
const clients = new Map<number, Client>()
|
|
114
116
|
let isShutdown = false
|
|
115
|
-
const shutdownLatch =
|
|
117
|
+
const shutdownLatch = Latch.makeUnsafe(false)
|
|
116
118
|
yield* Scope.addFinalizer(
|
|
117
119
|
scope,
|
|
118
120
|
Effect.withFiber((parent) => {
|
|
@@ -342,7 +344,7 @@ export const makeNoSerialization: <Rpcs extends Rpc.Any>(
|
|
|
342
344
|
) => {
|
|
343
345
|
let latch = client.latches.get(request.id)
|
|
344
346
|
if (supportsAck && !latch) {
|
|
345
|
-
latch =
|
|
347
|
+
latch = Latch.makeUnsafe(false)
|
|
346
348
|
client.latches.set(request.id, latch)
|
|
347
349
|
}
|
|
348
350
|
if (Effect.isEffect(stream)) {
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
4
|
import * as Effect from "../../Effect.ts"
|
|
5
|
+
import * as Semaphore from "../../Semaphore.ts"
|
|
5
6
|
import type * as ServiceMap from "../../ServiceMap.ts"
|
|
6
7
|
|
|
7
8
|
/**
|
|
@@ -14,7 +15,7 @@ export const withRun = <
|
|
|
14
15
|
>() =>
|
|
15
16
|
<EX, RX>(f: (write: Parameters<A["run"]>[0]) => Effect.Effect<Omit<A, "run">, EX, RX>): Effect.Effect<A, EX, RX> =>
|
|
16
17
|
Effect.suspend(() => {
|
|
17
|
-
const semaphore =
|
|
18
|
+
const semaphore = Semaphore.makeUnsafe(1)
|
|
18
19
|
let buffer: Array<[Array<any>, ServiceMap.ServiceMap<never>]> = []
|
|
19
20
|
let write = (...args: Array<any>): Effect.Effect<void> =>
|
|
20
21
|
Effect.servicesWith((context) => {
|
|
@@ -3,11 +3,14 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type { Brand } from "../../Brand.ts"
|
|
5
5
|
import * as Effect from "../../Effect.ts"
|
|
6
|
-
import {
|
|
6
|
+
import { dual } from "../../Function.ts"
|
|
7
|
+
import * as Option from "../../Option.ts"
|
|
7
8
|
import { type Pipeable, pipeArguments } from "../../Pipeable.ts"
|
|
8
9
|
import * as Predicate from "../../Predicate.ts"
|
|
9
10
|
import * as Schema from "../../Schema.ts"
|
|
10
11
|
import type * as AST from "../../SchemaAST.ts"
|
|
12
|
+
import * as Getter from "../../SchemaGetter.ts"
|
|
13
|
+
import * as Transformation from "../../SchemaTransformation.ts"
|
|
11
14
|
import * as Struct_ from "../../Struct.ts"
|
|
12
15
|
|
|
13
16
|
/**
|
|
@@ -465,8 +468,24 @@ export const Override = <A>(value: A): A & Brand<"Override"> => value as any
|
|
|
465
468
|
* @since 4.0.0
|
|
466
469
|
* @category overrideable
|
|
467
470
|
*/
|
|
468
|
-
export interface Overrideable<S extends Schema.Top & Schema.WithoutConstructorDefault>
|
|
469
|
-
|
|
471
|
+
export interface Overrideable<S extends Schema.Top & Schema.WithoutConstructorDefault> extends
|
|
472
|
+
Schema.Bottom<
|
|
473
|
+
(S["Type"] & Brand<"Override">) | undefined,
|
|
474
|
+
S["Encoded"],
|
|
475
|
+
S["DecodingServices"],
|
|
476
|
+
S["EncodingServices"],
|
|
477
|
+
S["ast"],
|
|
478
|
+
Overrideable<S>,
|
|
479
|
+
S["~type.make.in"],
|
|
480
|
+
(S["Type"] & Brand<"Override">) | undefined,
|
|
481
|
+
S["~type.parameters"],
|
|
482
|
+
(S["Type"] & Brand<"Override">) | undefined,
|
|
483
|
+
S["~type.mutability"],
|
|
484
|
+
"optional",
|
|
485
|
+
"with-default",
|
|
486
|
+
S["~encoded.mutability"],
|
|
487
|
+
S["~encoded.optionality"]
|
|
488
|
+
>
|
|
470
489
|
{}
|
|
471
490
|
|
|
472
491
|
/**
|
|
@@ -478,11 +497,21 @@ export const Overrideable = <S extends Schema.Top & Schema.WithoutConstructorDef
|
|
|
478
497
|
options: {
|
|
479
498
|
readonly defaultValue: Effect.Effect<S["~type.make.in"]>
|
|
480
499
|
}
|
|
481
|
-
) =>
|
|
500
|
+
): Overrideable<S> =>
|
|
482
501
|
schema.pipe(
|
|
483
|
-
Schema.
|
|
484
|
-
|
|
485
|
-
|
|
502
|
+
Schema.decodeTo(
|
|
503
|
+
Schema.optional(Schema.brand("Override")(Schema.toType(schema))),
|
|
504
|
+
Transformation.make({
|
|
505
|
+
decode: Getter.passthrough(),
|
|
506
|
+
encode: new Getter.Getter((o) => {
|
|
507
|
+
if (Option.isSome(o) && o.value !== undefined) {
|
|
508
|
+
return Effect.succeed(o)
|
|
509
|
+
}
|
|
510
|
+
return Effect.asSome(options.defaultValue)
|
|
511
|
+
})
|
|
512
|
+
})
|
|
513
|
+
)
|
|
514
|
+
) as any
|
|
486
515
|
|
|
487
516
|
const StructProto = {
|
|
488
517
|
pipe() {
|
|
@@ -5,11 +5,12 @@ import type { NonEmptyReadonlyArray } from "../../Array.ts"
|
|
|
5
5
|
import type * as Cause from "../../Cause.ts"
|
|
6
6
|
import * as Channel from "../../Channel.ts"
|
|
7
7
|
import * as Deferred from "../../Deferred.ts"
|
|
8
|
-
import type
|
|
8
|
+
import type * as Duration from "../../Duration.ts"
|
|
9
9
|
import * as Effect from "../../Effect.ts"
|
|
10
10
|
import * as Exit from "../../Exit.ts"
|
|
11
11
|
import * as FiberSet from "../../FiberSet.ts"
|
|
12
12
|
import { constVoid, dual, flow } from "../../Function.ts"
|
|
13
|
+
import * as Latch from "../../Latch.ts"
|
|
13
14
|
import * as Layer from "../../Layer.ts"
|
|
14
15
|
import * as Predicate from "../../Predicate.ts"
|
|
15
16
|
import * as Pull from "../../Pull.ts"
|
|
@@ -422,7 +423,7 @@ export const layerWebSocketConstructorGlobal: Layer.Layer<WebSocketConstructor>
|
|
|
422
423
|
*/
|
|
423
424
|
export const makeWebSocket = (url: string | Effect.Effect<string>, options?: {
|
|
424
425
|
readonly closeCodeIsError?: ((code: number) => boolean) | undefined
|
|
425
|
-
readonly openTimeout?:
|
|
426
|
+
readonly openTimeout?: Duration.Input | undefined
|
|
426
427
|
readonly protocols?: string | Array<string> | undefined
|
|
427
428
|
}): Effect.Effect<Socket, never, WebSocketConstructor> =>
|
|
428
429
|
fromWebSocket(
|
|
@@ -443,12 +444,12 @@ export const fromWebSocket = <RO>(
|
|
|
443
444
|
acquire: Effect.Effect<globalThis.WebSocket, SocketError, RO>,
|
|
444
445
|
options?: {
|
|
445
446
|
readonly closeCodeIsError?: ((code: number) => boolean) | undefined
|
|
446
|
-
readonly openTimeout?:
|
|
447
|
+
readonly openTimeout?: Duration.Input | undefined
|
|
447
448
|
} | undefined
|
|
448
449
|
): Effect.Effect<Socket, never, Exclude<RO, Scope.Scope>> =>
|
|
449
450
|
Effect.withFiber((fiber) => {
|
|
450
451
|
let currentWS: globalThis.WebSocket | undefined
|
|
451
|
-
const latch =
|
|
452
|
+
const latch = Latch.makeUnsafe(false)
|
|
452
453
|
const acquireContext = fiber.services as ServiceMap.ServiceMap<RO>
|
|
453
454
|
const closeCodeIsError = options?.closeCodeIsError ?? defaultCloseCodeIsError
|
|
454
455
|
|
|
@@ -618,7 +619,7 @@ export const layerWebSocket: (
|
|
|
618
619
|
url: string | Effect.Effect<string>,
|
|
619
620
|
options?: {
|
|
620
621
|
readonly closeCodeIsError?: ((code: number) => boolean) | undefined
|
|
621
|
-
readonly openTimeout?:
|
|
622
|
+
readonly openTimeout?: Duration.Input | undefined
|
|
622
623
|
readonly protocols?: string | Array<string> | undefined
|
|
623
624
|
} | undefined
|
|
624
625
|
) => Layer.Layer<Socket, never, WebSocketConstructor> = flow(makeWebSocket, Layer.effect(Socket))
|
|
@@ -648,7 +649,7 @@ export const fromTransformStream = <R>(acquire: Effect.Effect<InputTransformStre
|
|
|
648
649
|
readonly closeCodeIsError?: (code: number) => boolean
|
|
649
650
|
}): Effect.Effect<Socket, never, Exclude<R, Scope.Scope>> =>
|
|
650
651
|
Effect.withFiber((fiber) => {
|
|
651
|
-
const latch =
|
|
652
|
+
const latch = Latch.makeUnsafe(false)
|
|
652
653
|
let currentStream: {
|
|
653
654
|
readonly stream: InputTransformStream
|
|
654
655
|
readonly fiberSet: FiberSet.FiberSet<any, any>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* @category models
|
|
4
4
|
*/
|
|
5
5
|
import type * as Cause from "../../Cause.ts"
|
|
6
|
-
import type {
|
|
6
|
+
import type { Input } from "../../Duration.ts"
|
|
7
7
|
import * as Effect from "../../Effect.ts"
|
|
8
8
|
import { identity } from "../../Function.ts"
|
|
9
9
|
import * as RequestResolver from "../../RequestResolver.ts"
|
|
@@ -210,7 +210,7 @@ export const makeDataLoaders = <
|
|
|
210
210
|
readonly tableName: string
|
|
211
211
|
readonly spanPrefix: string
|
|
212
212
|
readonly idColumn: Id
|
|
213
|
-
readonly window:
|
|
213
|
+
readonly window: Input
|
|
214
214
|
readonly maxBatchSize?: number | undefined
|
|
215
215
|
}
|
|
216
216
|
): Effect.Effect<
|