effect 4.0.0-beta.0 → 4.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Cache.d.ts +2 -2
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +1 -1
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +1 -1
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +6 -4
- package/dist/Channel.js.map +1 -1
- package/dist/Combiner.d.ts +280 -13
- package/dist/Combiner.d.ts.map +1 -1
- package/dist/Combiner.js +198 -7
- package/dist/Combiner.js.map +1 -1
- package/dist/Config.d.ts +3 -3
- package/dist/Config.js +3 -3
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +1 -1
- package/dist/Cron.d.ts +1 -1
- package/dist/Data.d.ts +534 -365
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +132 -79
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +23 -161
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +6 -51
- package/dist/DateTime.js.map +1 -1
- package/dist/Duration.d.ts +12 -12
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +12 -12
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +175 -240
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +73 -119
- package/dist/Effect.js.map +1 -1
- package/dist/Encoding.d.ts +194 -0
- package/dist/Encoding.d.ts.map +1 -0
- package/dist/Encoding.js +352 -0
- package/dist/Encoding.js.map +1 -0
- package/dist/Equal.d.ts +276 -109
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +124 -48
- package/dist/Equal.js.map +1 -1
- package/dist/FileSystem.d.ts +1 -1
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +5 -5
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts +30 -1
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +15 -0
- package/dist/Filter.js.map +1 -1
- package/dist/Formatter.d.ts +131 -47
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +229 -51
- package/dist/Formatter.js.map +1 -1
- package/dist/Graph.d.ts +1 -1
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +2 -2
- package/dist/Graph.js.map +1 -1
- package/dist/JsonSchema.d.ts +299 -10
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +323 -4
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Latch.d.ts +109 -0
- package/dist/Latch.d.ts.map +1 -0
- package/dist/Latch.js +72 -0
- package/dist/Latch.js.map +1 -0
- package/dist/LayerMap.d.ts +4 -4
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LogLevel.d.ts +27 -0
- package/dist/LogLevel.d.ts.map +1 -1
- package/dist/LogLevel.js +28 -100
- package/dist/LogLevel.js.map +1 -1
- package/dist/Logger.d.ts +4 -4
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Metric.d.ts +2 -2
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +1 -1
- package/dist/Metric.js.map +1 -1
- package/dist/Optic.d.ts +947 -18
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +454 -5
- package/dist/Optic.js.map +1 -1
- package/dist/Pipeable.d.ts +17 -0
- package/dist/Pipeable.d.ts.map +1 -1
- package/dist/Pipeable.js +19 -1
- package/dist/Pipeable.js.map +1 -1
- package/dist/PlatformError.d.ts +10 -9
- package/dist/PlatformError.d.ts.map +1 -1
- package/dist/PlatformError.js +2 -2
- package/dist/PlatformError.js.map +1 -1
- package/dist/Pool.d.ts +6 -4
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +7 -5
- package/dist/Pool.js.map +1 -1
- package/dist/PubSub.d.ts +3 -2
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +3 -2
- package/dist/PubSub.js.map +1 -1
- package/dist/Random.d.ts +18 -1
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +29 -12
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +2 -2
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +1 -1
- package/dist/RcMap.js.map +1 -1
- package/dist/RcRef.d.ts +1 -1
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/Reducer.d.ts +166 -7
- package/dist/Reducer.d.ts.map +1 -1
- package/dist/Reducer.js +135 -1
- package/dist/Reducer.js.map +1 -1
- package/dist/Request.d.ts +1 -1
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js +2 -1
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +6 -26
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +0 -20
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Result.d.ts +12 -0
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +12 -0
- package/dist/Result.js.map +1 -1
- package/dist/Schedule.d.ts +33 -14
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +65 -24
- package/dist/Schedule.js.map +1 -1
- package/dist/Schema.d.ts +199 -49
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +386 -72
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaGetter.d.ts +2 -2
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +12 -14
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +44 -43
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +43 -24
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +37 -0
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +80 -0
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/ScopedCache.d.ts +2 -2
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +1 -1
- package/dist/ScopedCache.js.map +1 -1
- package/dist/Semaphore.d.ts +211 -0
- package/dist/Semaphore.d.ts.map +1 -0
- package/dist/{PartitionedSemaphore.js → Semaphore.js} +97 -13
- package/dist/Semaphore.js.map +1 -0
- package/dist/Stream.d.ts +19 -19
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +12 -11
- package/dist/Stream.js.map +1 -1
- package/dist/Struct.d.ts +16 -0
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +22 -0
- package/dist/Struct.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +2 -1
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +2 -1
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/SynchronizedRef.d.ts +2 -1
- package/dist/SynchronizedRef.d.ts.map +1 -1
- package/dist/SynchronizedRef.js +2 -1
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Types.d.ts +14 -6
- package/dist/Types.d.ts.map +1 -1
- package/dist/index.d.ts +499 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +499 -19
- package/dist/index.js.map +1 -1
- package/dist/internal/core.js +11 -3
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/dateTime.js +3 -11
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/effect.js +37 -22
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/random.d.ts +2 -0
- package/dist/internal/random.d.ts.map +1 -0
- package/dist/internal/random.js +13 -0
- package/dist/internal/random.js.map +1 -0
- package/dist/internal/rcRef.js +3 -2
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/testing/TestClock.d.ts +7 -6
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +6 -4
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +6 -6
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +48 -48
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +3 -3
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +4 -3
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +2 -2
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +51 -51
- package/dist/unstable/ai/McpServer.d.ts +1 -1
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +20 -20
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Response.d.ts +26 -26
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +1 -1
- package/dist/unstable/ai/Response.js.map +1 -1
- package/dist/unstable/cli/CliError.d.ts +5 -5
- package/dist/unstable/cli/Prompt.js +2 -2
- package/dist/unstable/cli/Prompt.js.map +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js +1 -1
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +2 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +5 -4
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/EntityResource.d.ts +2 -2
- package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
- package/dist/unstable/cluster/Envelope.d.ts +1 -1
- package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/Message.d.ts +10 -10
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +2 -1
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +6 -6
- package/dist/unstable/cluster/Runner.d.ts +1 -1
- package/dist/unstable/cluster/Runners.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.js +4 -3
- package/dist/unstable/cluster/Runners.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts +2 -2
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +8 -6
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +21 -21
- package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +5 -4
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/cluster/internal/entityReaper.js +2 -1
- package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceRef.js +2 -1
- package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.d.ts +36 -36
- package/dist/unstable/encoding/Msgpack.d.ts +1 -1
- package/dist/unstable/encoding/Ndjson.d.ts +1 -1
- package/dist/unstable/encoding/Sse.d.ts +4 -4
- package/dist/unstable/encoding/Sse.d.ts.map +1 -1
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +2 -1
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
- package/dist/unstable/http/Cookies.d.ts +3 -3
- package/dist/unstable/http/Cookies.d.ts.map +1 -1
- package/dist/unstable/http/Cookies.js +2 -2
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/HttpBody.d.ts +17 -2
- package/dist/unstable/http/HttpBody.d.ts.map +1 -1
- package/dist/unstable/http/HttpBody.js +28 -1
- package/dist/unstable/http/HttpBody.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +11 -11
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +4 -4
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientError.d.ts +7 -7
- package/dist/unstable/http/HttpClientRequest.d.ts +27 -11
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +15 -3
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
- package/dist/unstable/http/HttpEffect.js +18 -26
- package/dist/unstable/http/HttpEffect.js.map +1 -1
- package/dist/unstable/http/HttpMethod.d.ts +4 -4
- package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
- package/dist/unstable/http/HttpMethod.js +3 -3
- package/dist/unstable/http/HttpMethod.js.map +1 -1
- package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
- package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/unstable/http/HttpMiddleware.js +4 -9
- package/dist/unstable/http/HttpMiddleware.js.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +6 -6
- package/dist/unstable/http/HttpServerResponse.js +1 -1
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +3 -3
- package/dist/unstable/http/UrlParams.d.ts +14 -6
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +1 -1
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +5 -5
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +3 -3
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +21 -39
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.js +15 -24
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
- package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +18 -16
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/observability/Otlp.d.ts +12 -12
- package/dist/unstable/observability/Otlp.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +1 -1
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
- package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
- package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
- package/dist/unstable/persistence/KeyValueStore.js +6 -6
- package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
- package/dist/unstable/persistence/Persistable.d.ts +2 -2
- package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
- package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedCache.js +2 -1
- package/dist/unstable/persistence/PersistedCache.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
- package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.js +12 -11
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/Persistence.d.ts +1 -1
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +2 -2
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +1 -1
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/process/ChildProcess.d.ts +2 -2
- package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts +6 -0
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +6 -6
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +15 -12
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +6 -6
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +3 -3
- package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +1 -1
- package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
- package/dist/unstable/reactivity/Hydration.d.ts +39 -0
- package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
- package/dist/unstable/reactivity/Hydration.js +76 -0
- package/dist/unstable/reactivity/Hydration.js.map +1 -0
- package/dist/unstable/reactivity/index.d.ts +4 -0
- package/dist/unstable/reactivity/index.d.ts.map +1 -1
- package/dist/unstable/reactivity/index.js +4 -0
- package/dist/unstable/reactivity/index.js.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts +2 -2
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts +5 -26
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +6 -13
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +5 -3
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/rpc/Utils.d.ts.map +1 -1
- package/dist/unstable/rpc/Utils.js +2 -1
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/schema/Model.d.ts +4 -4
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +2 -2
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.js +13 -2
- package/dist/unstable/schema/VariantSchema.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +4 -4
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +3 -2
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/socket/SocketServer.d.ts +3 -3
- package/dist/unstable/sql/Migrator.d.ts +1 -1
- package/dist/unstable/sql/SqlError.d.ts +2 -2
- package/dist/unstable/sql/SqlModel.d.ts +2 -2
- package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
- package/dist/unstable/sql/SqlSchema.d.ts +24 -1
- package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
- package/dist/unstable/sql/SqlSchema.js +24 -3
- package/dist/unstable/sql/SqlSchema.js.map +1 -1
- package/dist/unstable/sql/Statement.js +0 -1
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts.map +1 -1
- package/dist/unstable/workers/Worker.js +2 -1
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts +3 -3
- package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableClock.js +3 -3
- package/dist/unstable/workflow/DurableClock.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js +2 -2
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +2 -2
- package/dist/unstable/workflow/WorkflowEngine.d.ts +2 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +2 -1
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +2 -2
- package/src/Cache.ts +3 -3
- package/src/Cause.ts +1 -1
- package/src/Channel.ts +6 -4
- package/src/Combiner.ts +280 -13
- package/src/Config.ts +3 -3
- package/src/Data.ts +538 -374
- package/src/DateTime.ts +24 -164
- package/src/Duration.ts +15 -15
- package/src/Effect.ts +202 -261
- package/src/Encoding.ts +879 -0
- package/src/Equal.ts +278 -111
- package/src/FileSystem.ts +7 -8
- package/src/Filter.ts +48 -1
- package/src/Formatter.ts +253 -51
- package/src/Graph.ts +8 -5
- package/src/JsonSchema.ts +383 -10
- package/src/Latch.ts +112 -0
- package/src/LayerMap.ts +5 -5
- package/src/LogLevel.ts +31 -0
- package/src/Logger.ts +5 -5
- package/src/Metric.ts +4 -4
- package/src/Optic.ts +948 -19
- package/src/Pipeable.ts +32 -1
- package/src/PlatformError.ts +5 -5
- package/src/Pool.ts +13 -11
- package/src/PubSub.ts +10 -9
- package/src/Random.ts +33 -14
- package/src/RcMap.ts +5 -5
- package/src/RcRef.ts +1 -1
- package/src/Reducer.ts +166 -7
- package/src/Request.ts +3 -2
- package/src/RequestResolver.ts +9 -29
- package/src/Result.ts +13 -0
- package/src/Schedule.ts +279 -140
- package/src/Schema.ts +575 -113
- package/src/SchemaGetter.ts +12 -14
- package/src/SchemaRepresentation.ts +43 -24
- package/src/SchemaTransformation.ts +104 -0
- package/src/ScopedCache.ts +3 -3
- package/src/Semaphore.ts +356 -0
- package/src/Stream.ts +43 -42
- package/src/Struct.ts +26 -0
- package/src/SubscriptionRef.ts +3 -2
- package/src/SynchronizedRef.ts +3 -2
- package/src/Types.ts +12 -2
- package/src/index.ts +502 -20
- package/src/internal/core.ts +12 -5
- package/src/internal/dateTime.ts +9 -30
- package/src/internal/effect.ts +70 -37
- package/src/internal/random.ts +20 -0
- package/src/internal/rcRef.ts +4 -3
- package/src/testing/TestClock.ts +13 -11
- package/src/testing/TestSchema.ts +8 -8
- package/src/unstable/ai/AiError.ts +2 -2
- package/src/unstable/ai/Chat.ts +12 -11
- package/src/unstable/ai/LanguageModel.ts +3 -3
- package/src/unstable/ai/McpServer.ts +2 -2
- package/src/unstable/ai/Prompt.ts +37 -37
- package/src/unstable/ai/Response.ts +25 -25
- package/src/unstable/cli/Prompt.ts +2 -2
- package/src/unstable/cluster/ClusterCron.ts +2 -2
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +3 -2
- package/src/unstable/cluster/Entity.ts +7 -6
- package/src/unstable/cluster/EntityResource.ts +4 -4
- package/src/unstable/cluster/Envelope.ts +1 -1
- package/src/unstable/cluster/K8sHttpClient.ts +1 -1
- package/src/unstable/cluster/MessageStorage.ts +3 -5
- package/src/unstable/cluster/Runners.ts +6 -5
- package/src/unstable/cluster/Sharding.ts +11 -9
- package/src/unstable/cluster/ShardingConfig.ts +10 -11
- package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
- package/src/unstable/cluster/internal/entityManager.ts +9 -8
- package/src/unstable/cluster/internal/entityReaper.ts +2 -1
- package/src/unstable/cluster/internal/resourceRef.ts +2 -1
- package/src/unstable/encoding/Sse.ts +2 -4
- package/src/unstable/eventlog/EventLog.ts +2 -1
- package/src/unstable/http/Cookies.ts +3 -3
- package/src/unstable/http/HttpBody.ts +42 -1
- package/src/unstable/http/HttpClient.ts +19 -19
- package/src/unstable/http/HttpClientRequest.ts +38 -13
- package/src/unstable/http/HttpEffect.ts +17 -25
- package/src/unstable/http/HttpMethod.ts +16 -4
- package/src/unstable/http/HttpMiddleware.ts +5 -10
- package/src/unstable/http/HttpServerResponse.ts +1 -1
- package/src/unstable/http/Multipart.ts +2 -2
- package/src/unstable/http/UrlParams.ts +20 -5
- package/src/unstable/httpapi/HttpApiBuilder.ts +5 -5
- package/src/unstable/httpapi/HttpApiClient.ts +3 -3
- package/src/unstable/httpapi/HttpApiEndpoint.ts +47 -72
- package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
- package/src/unstable/httpapi/OpenApi.ts +18 -16
- package/src/unstable/observability/Otlp.ts +12 -12
- package/src/unstable/observability/OtlpExporter.ts +3 -3
- package/src/unstable/observability/OtlpLogger.ts +4 -4
- package/src/unstable/observability/OtlpMetrics.ts +4 -4
- package/src/unstable/observability/OtlpTracer.ts +4 -4
- package/src/unstable/persistence/KeyValueStore.ts +6 -6
- package/src/unstable/persistence/Persistable.ts +2 -2
- package/src/unstable/persistence/PersistedCache.ts +20 -9
- package/src/unstable/persistence/PersistedQueue.ts +25 -24
- package/src/unstable/persistence/Persistence.ts +3 -3
- package/src/unstable/persistence/RateLimiter.ts +4 -4
- package/src/unstable/process/ChildProcess.ts +2 -2
- package/src/unstable/process/ChildProcessSpawner.ts +6 -0
- package/src/unstable/reactivity/Atom.ts +20 -18
- package/src/unstable/reactivity/AtomHttpApi.ts +19 -18
- package/src/unstable/reactivity/AtomRpc.ts +3 -3
- package/src/unstable/reactivity/Hydration.ts +112 -0
- package/src/unstable/reactivity/index.ts +5 -0
- package/src/unstable/rpc/Rpc.ts +3 -3
- package/src/unstable/rpc/RpcClient.ts +12 -54
- package/src/unstable/rpc/RpcServer.ts +6 -4
- package/src/unstable/rpc/Utils.ts +2 -1
- package/src/unstable/schema/VariantSchema.ts +36 -7
- package/src/unstable/socket/Socket.ts +7 -6
- package/src/unstable/sql/SqlModel.ts +2 -2
- package/src/unstable/sql/SqlSchema.ts +62 -13
- package/src/unstable/sql/Statement.ts +0 -1
- package/src/unstable/workers/Worker.ts +2 -1
- package/src/unstable/workflow/DurableClock.ts +8 -8
- package/src/unstable/workflow/DurableDeferred.ts +2 -2
- package/src/unstable/workflow/WorkflowEngine.ts +3 -2
- package/dist/PartitionedSemaphore.d.ts +0 -52
- package/dist/PartitionedSemaphore.d.ts.map +0 -1
- package/dist/PartitionedSemaphore.js.map +0 -1
- package/dist/encoding/Base64.d.ts +0 -67
- package/dist/encoding/Base64.d.ts.map +0 -1
- package/dist/encoding/Base64.js +0 -146
- package/dist/encoding/Base64.js.map +0 -1
- package/dist/encoding/Base64Url.d.ts +0 -60
- package/dist/encoding/Base64Url.d.ts.map +0 -1
- package/dist/encoding/Base64Url.js +0 -89
- package/dist/encoding/Base64Url.js.map +0 -1
- package/dist/encoding/EncodingError.d.ts +0 -31
- package/dist/encoding/EncodingError.d.ts.map +0 -1
- package/dist/encoding/EncodingError.js +0 -22
- package/dist/encoding/EncodingError.js.map +0 -1
- package/dist/encoding/Hex.d.ts +0 -61
- package/dist/encoding/Hex.d.ts.map +0 -1
- package/dist/encoding/Hex.js +0 -115
- package/dist/encoding/Hex.js.map +0 -1
- package/dist/encoding/index.d.ts +0 -26
- package/dist/encoding/index.d.ts.map +0 -1
- package/dist/encoding/index.js +0 -27
- package/dist/encoding/index.js.map +0 -1
- package/src/PartitionedSemaphore.ts +0 -182
- package/src/encoding/Base64.ts +0 -366
- package/src/encoding/Base64Url.ts +0 -104
- package/src/encoding/EncodingError.ts +0 -35
- package/src/encoding/Hex.ts +0 -390
- package/src/encoding/index.ts +0 -31
|
@@ -9,6 +9,7 @@ import * as Effect from "../../Effect.ts"
|
|
|
9
9
|
import * as Exit from "../../Exit.ts"
|
|
10
10
|
import { flow } from "../../Function.ts"
|
|
11
11
|
import * as Iterable from "../../Iterable.ts"
|
|
12
|
+
import * as Latch from "../../Latch.ts"
|
|
12
13
|
import * as Layer from "../../Layer.ts"
|
|
13
14
|
import * as MutableRef from "../../MutableRef.ts"
|
|
14
15
|
import * as Queue from "../../Queue.ts"
|
|
@@ -235,14 +236,14 @@ export const layerStoreMemory: Layer.Layer<
|
|
|
235
236
|
}
|
|
236
237
|
const ids = new Set<string>()
|
|
237
238
|
const queues = new Map<string, {
|
|
238
|
-
latch:
|
|
239
|
+
latch: Latch.Latch
|
|
239
240
|
items: Set<Entry>
|
|
240
241
|
}>()
|
|
241
242
|
const getOrCreateQueue = (name: string) => {
|
|
242
243
|
let queue = queues.get(name)
|
|
243
244
|
if (!queue) {
|
|
244
245
|
queue = {
|
|
245
|
-
latch:
|
|
246
|
+
latch: Latch.makeUnsafe(false),
|
|
246
247
|
items: new Set()
|
|
247
248
|
}
|
|
248
249
|
queues.set(name, queue)
|
|
@@ -294,26 +295,26 @@ export const layerStoreMemory: Layer.Layer<
|
|
|
294
295
|
export const makeStoreRedis = Effect.fnUntraced(function*(
|
|
295
296
|
options?: {
|
|
296
297
|
readonly prefix?: string | undefined
|
|
297
|
-
readonly pollInterval?: Duration.
|
|
298
|
-
readonly lockRefreshInterval?: Duration.
|
|
299
|
-
readonly lockExpiration?: Duration.
|
|
298
|
+
readonly pollInterval?: Duration.Input | undefined
|
|
299
|
+
readonly lockRefreshInterval?: Duration.Input | undefined
|
|
300
|
+
readonly lockExpiration?: Duration.Input | undefined
|
|
300
301
|
}
|
|
301
302
|
) {
|
|
302
303
|
const redis = yield* Redis.Redis
|
|
303
304
|
|
|
304
305
|
const pollInterval = Duration.max(
|
|
305
|
-
options?.pollInterval ? Duration.
|
|
306
|
+
options?.pollInterval ? Duration.fromInputUnsafe(options.pollInterval) : Duration.seconds(1),
|
|
306
307
|
Duration.millis(1)
|
|
307
308
|
)
|
|
308
309
|
const lockRefreshMillis = Math.max(
|
|
309
310
|
options?.lockRefreshInterval
|
|
310
|
-
? Duration.toMillis(Duration.
|
|
311
|
+
? Duration.toMillis(Duration.fromInputUnsafe(options.lockRefreshInterval))
|
|
311
312
|
: 30_000,
|
|
312
313
|
1
|
|
313
314
|
)
|
|
314
315
|
const lockExpirationMillis = Math.max(
|
|
315
316
|
options?.lockExpiration
|
|
316
|
-
? Duration.toMillis(Duration.
|
|
317
|
+
? Duration.toMillis(Duration.fromInputUnsafe(options.lockExpiration))
|
|
317
318
|
: 90_000,
|
|
318
319
|
1
|
|
319
320
|
)
|
|
@@ -345,8 +346,8 @@ export const makeStoreRedis = Effect.fnUntraced(function*(
|
|
|
345
346
|
const pendingKey = keyPending(name)
|
|
346
347
|
const queue = yield* Queue.make<Element>()
|
|
347
348
|
const takers = MutableRef.make(0)
|
|
348
|
-
const pollLatch =
|
|
349
|
-
const takenLatch =
|
|
349
|
+
const pollLatch = Latch.makeUnsafe()
|
|
350
|
+
const takenLatch = Latch.makeUnsafe()
|
|
350
351
|
|
|
351
352
|
yield* Effect.addFinalizer(() =>
|
|
352
353
|
Effect.orDie(
|
|
@@ -653,9 +654,9 @@ end
|
|
|
653
654
|
export const layerStoreRedis: (
|
|
654
655
|
options?: {
|
|
655
656
|
readonly prefix?: string | undefined
|
|
656
|
-
readonly pollInterval?: Duration.
|
|
657
|
-
readonly lockRefreshInterval?: Duration.
|
|
658
|
-
readonly lockExpiration?: Duration.
|
|
657
|
+
readonly pollInterval?: Duration.Input | undefined
|
|
658
|
+
readonly lockRefreshInterval?: Duration.Input | undefined
|
|
659
|
+
readonly lockExpiration?: Duration.Input | undefined
|
|
659
660
|
} | undefined
|
|
660
661
|
) => Layer.Layer<
|
|
661
662
|
PersistedQueueStore,
|
|
@@ -670,9 +671,9 @@ export const layerStoreRedis: (
|
|
|
670
671
|
export const makeStoreSql: (
|
|
671
672
|
options?: {
|
|
672
673
|
readonly tableName?: string | undefined
|
|
673
|
-
readonly pollInterval?: Duration.
|
|
674
|
-
readonly lockRefreshInterval?: Duration.
|
|
675
|
-
readonly lockExpiration?: Duration.
|
|
674
|
+
readonly pollInterval?: Duration.Input | undefined
|
|
675
|
+
readonly lockRefreshInterval?: Duration.Input | undefined
|
|
676
|
+
readonly lockExpiration?: Duration.Input | undefined
|
|
676
677
|
} | undefined
|
|
677
678
|
) => Effect.Effect<
|
|
678
679
|
PersistedQueueStore["Service"],
|
|
@@ -683,15 +684,15 @@ export const makeStoreSql: (
|
|
|
683
684
|
const tableName = options?.tableName ?? "effect_queue"
|
|
684
685
|
const tableNameSql = sql(tableName)
|
|
685
686
|
const pollInterval = Duration.max(
|
|
686
|
-
options?.pollInterval ? Duration.
|
|
687
|
+
options?.pollInterval ? Duration.fromInputUnsafe(options.pollInterval) : Duration.millis(1000),
|
|
687
688
|
Duration.millis(1)
|
|
688
689
|
)
|
|
689
690
|
const lockRefreshInterval = Duration.max(
|
|
690
|
-
options?.lockRefreshInterval ? Duration.
|
|
691
|
+
options?.lockRefreshInterval ? Duration.fromInputUnsafe(options.lockRefreshInterval) : Duration.seconds(30),
|
|
691
692
|
Duration.millis(1)
|
|
692
693
|
)
|
|
693
694
|
const lockExpiration = Duration.max(
|
|
694
|
-
options?.lockExpiration ? Duration.
|
|
695
|
+
options?.lockExpiration ? Duration.fromInputUnsafe(options.lockExpiration) : Duration.minutes(2),
|
|
695
696
|
Duration.millis(1)
|
|
696
697
|
)
|
|
697
698
|
const lockExpirationSql = sql.literal(Math.ceil(Duration.toSeconds(lockExpiration)).toString())
|
|
@@ -930,8 +931,8 @@ export const makeStoreSql: (
|
|
|
930
931
|
lookup: Effect.fnUntraced(function*({ maxAttempts, name }: QueueKey) {
|
|
931
932
|
const queue = yield* Queue.make<Element>()
|
|
932
933
|
const takers = MutableRef.make(0)
|
|
933
|
-
const pollLatch =
|
|
934
|
-
const takenLatch =
|
|
934
|
+
const pollLatch = Latch.makeUnsafe()
|
|
935
|
+
const takenLatch = Latch.makeUnsafe()
|
|
935
936
|
|
|
936
937
|
yield* Effect.addFinalizer(() =>
|
|
937
938
|
Effect.flatMap(Queue.clear(queue), (elements) => {
|
|
@@ -1098,9 +1099,9 @@ class QueueKey extends Data.Class<{
|
|
|
1098
1099
|
export const layerStoreSql: (
|
|
1099
1100
|
options?: {
|
|
1100
1101
|
readonly tableName?: string | undefined
|
|
1101
|
-
readonly pollInterval?: Duration.
|
|
1102
|
-
readonly lockRefreshInterval?: Duration.
|
|
1103
|
-
readonly lockExpiration?: Duration.
|
|
1102
|
+
readonly pollInterval?: Duration.Input | undefined
|
|
1103
|
+
readonly lockRefreshInterval?: Duration.Input | undefined
|
|
1104
|
+
readonly lockExpiration?: Duration.Input | undefined
|
|
1104
1105
|
} | undefined
|
|
1105
1106
|
) => Layer.Layer<
|
|
1106
1107
|
PersistedQueueStore,
|
|
@@ -42,7 +42,7 @@ export class PersistenceError extends Schema.ErrorClass(ErrorTypeId)({
|
|
|
42
42
|
export class Persistence extends ServiceMap.Service<Persistence, {
|
|
43
43
|
readonly make: (options: {
|
|
44
44
|
readonly storeId: string
|
|
45
|
-
readonly timeToLive?: (exit: Exit.Exit<unknown, unknown>, key: Persistable.Any) => Duration.
|
|
45
|
+
readonly timeToLive?: (exit: Exit.Exit<unknown, unknown>, key: Persistable.Any) => Duration.Input
|
|
46
46
|
}) => Effect.Effect<PersistenceStore, never, Scope.Scope>
|
|
47
47
|
}>()("effect/persistence/Persistence") {}
|
|
48
48
|
|
|
@@ -169,7 +169,7 @@ export const layer = Layer.effect(Persistence)(Effect.gen(function*() {
|
|
|
169
169
|
return out
|
|
170
170
|
}),
|
|
171
171
|
set(key, value) {
|
|
172
|
-
const ttl = Duration.
|
|
172
|
+
const ttl = Duration.fromInputUnsafe(timeToLive(value, key))
|
|
173
173
|
if (Duration.isZero(ttl) || Duration.isNegative(ttl)) return Effect.void
|
|
174
174
|
return Persistable.serializeExit(key, value).pipe(
|
|
175
175
|
Effect.flatMap((encoded) =>
|
|
@@ -180,7 +180,7 @@ export const layer = Layer.effect(Persistence)(Effect.gen(function*() {
|
|
|
180
180
|
setMany: Effect.fnUntraced(function*(entries) {
|
|
181
181
|
const encodedEntries = Arr.empty<readonly [string, object, Duration.Duration | undefined]>()
|
|
182
182
|
for (const [key, value] of entries) {
|
|
183
|
-
const ttl = Duration.
|
|
183
|
+
const ttl = Duration.fromInputUnsafe(timeToLive(value, key))
|
|
184
184
|
if (Duration.isZero(ttl) || Duration.isNegative(ttl)) continue
|
|
185
185
|
const encoded = Persistable.serializeExit(key, value)
|
|
186
186
|
const exit = Exit.isExit(encoded)
|
|
@@ -32,7 +32,7 @@ export interface RateLimiter {
|
|
|
32
32
|
readonly consume: (options: {
|
|
33
33
|
readonly algorithm?: "fixed-window" | "token-bucket" | undefined
|
|
34
34
|
readonly onExceeded?: "delay" | "fail" | undefined
|
|
35
|
-
readonly window: Duration.
|
|
35
|
+
readonly window: Duration.Input
|
|
36
36
|
readonly limit: number
|
|
37
37
|
readonly key: string
|
|
38
38
|
readonly tokens?: number | undefined
|
|
@@ -62,7 +62,7 @@ export const make: Effect.Effect<
|
|
|
62
62
|
const tokens = options.tokens ?? 1
|
|
63
63
|
const onExceeded = options.onExceeded ?? "fail"
|
|
64
64
|
const algorithm = options.algorithm ?? "fixed-window"
|
|
65
|
-
const window = Duration.max(Duration.
|
|
65
|
+
const window = Duration.max(Duration.fromInputUnsafe(options.window), Duration.millis(1))
|
|
66
66
|
const windowMillis = Duration.toMillis(window)
|
|
67
67
|
const refillRate = Duration.divideUnsafe(window, options.limit)
|
|
68
68
|
const refillRateMillis = Duration.toMillis(refillRate)
|
|
@@ -222,7 +222,7 @@ export const makeWithRateLimiter: Effect.Effect<
|
|
|
222
222
|
((options: {
|
|
223
223
|
readonly algorithm?: "fixed-window" | "token-bucket" | undefined
|
|
224
224
|
readonly onExceeded?: "delay" | "fail" | undefined
|
|
225
|
-
readonly window: Duration.
|
|
225
|
+
readonly window: Duration.Input
|
|
226
226
|
readonly limit: number
|
|
227
227
|
readonly key: string
|
|
228
228
|
readonly tokens?: number | undefined
|
|
@@ -266,7 +266,7 @@ export const makeWithRateLimiter: Effect.Effect<
|
|
|
266
266
|
export const makeSleep: Effect.Effect<
|
|
267
267
|
((options: {
|
|
268
268
|
readonly algorithm?: "fixed-window" | "token-bucket" | undefined
|
|
269
|
-
readonly window: Duration.
|
|
269
|
+
readonly window: Duration.Input
|
|
270
270
|
readonly limit: number
|
|
271
271
|
readonly key: string
|
|
272
272
|
readonly tokens?: number | undefined
|
|
@@ -283,7 +283,7 @@ export interface KillOptions {
|
|
|
283
283
|
* Defaults to `undefined`, which means that no timeout will be enforced by
|
|
284
284
|
* default.
|
|
285
285
|
*/
|
|
286
|
-
readonly forceKillAfter?: Duration.
|
|
286
|
+
readonly forceKillAfter?: Duration.Input | undefined
|
|
287
287
|
}
|
|
288
288
|
|
|
289
289
|
/**
|
|
@@ -414,7 +414,7 @@ export interface CommandOptions extends KillOptions {
|
|
|
414
414
|
* the value of `globalThis.process.env`, prioritizing the values in `env`
|
|
415
415
|
* when conflicts exist.
|
|
416
416
|
*/
|
|
417
|
-
readonly env?: Record<string, string> | undefined
|
|
417
|
+
readonly env?: Record<string, string | undefined> | undefined
|
|
418
418
|
/**
|
|
419
419
|
* If set to `true`, the child process uses both the values in `env` as well
|
|
420
420
|
* as the values in `globalThis.process.env`, prioritizing the values in `env`
|
|
@@ -76,10 +76,16 @@ export interface ChildProcessHandle {
|
|
|
76
76
|
readonly stdin: Sink.Sink<void, Uint8Array, never, PlatformError.PlatformError>
|
|
77
77
|
/**
|
|
78
78
|
* The standard output stream for the child process.
|
|
79
|
+
*
|
|
80
|
+
* Note: Using alongside `all` may cause interleaving of output and unexpected
|
|
81
|
+
* results.
|
|
79
82
|
*/
|
|
80
83
|
readonly stdout: Stream.Stream<Uint8Array, PlatformError.PlatformError>
|
|
81
84
|
/**
|
|
82
85
|
* The standard error stream for the child process.
|
|
86
|
+
*
|
|
87
|
+
* Note: Using alongside `all` may cause interleaving of output and unexpected
|
|
88
|
+
* results.
|
|
83
89
|
*/
|
|
84
90
|
readonly stderr: Stream.Stream<Uint8Array, PlatformError.PlatformError>
|
|
85
91
|
/**
|
|
@@ -169,25 +169,25 @@ export const setIdleTTL: {
|
|
|
169
169
|
* @since 4.0.0
|
|
170
170
|
* @category combinators
|
|
171
171
|
*/
|
|
172
|
-
(duration: Duration.
|
|
172
|
+
(duration: Duration.Input): <A extends Atom<any>>(self: A) => A
|
|
173
173
|
/**
|
|
174
174
|
* @since 4.0.0
|
|
175
175
|
* @category combinators
|
|
176
176
|
*/
|
|
177
|
-
<A extends Atom<any>>(self: A, duration: Duration.
|
|
177
|
+
<A extends Atom<any>>(self: A, duration: Duration.Input): A
|
|
178
178
|
} = dual<
|
|
179
179
|
/**
|
|
180
180
|
* @since 4.0.0
|
|
181
181
|
* @category combinators
|
|
182
182
|
*/
|
|
183
|
-
(duration: Duration.
|
|
183
|
+
(duration: Duration.Input) => <A extends Atom<any>>(self: A) => A,
|
|
184
184
|
/**
|
|
185
185
|
* @since 4.0.0
|
|
186
186
|
* @category combinators
|
|
187
187
|
*/
|
|
188
|
-
<A extends Atom<any>>(self: A, duration: Duration.
|
|
188
|
+
<A extends Atom<any>>(self: A, duration: Duration.Input) => A
|
|
189
189
|
>(2, (self, durationInput) => {
|
|
190
|
-
const duration = Duration.
|
|
190
|
+
const duration = Duration.fromInputUnsafe(durationInput)
|
|
191
191
|
const isFinite = Duration.isFinite(duration)
|
|
192
192
|
return Object.assign(Object.create(Object.getPrototypeOf(self)), {
|
|
193
193
|
...self,
|
|
@@ -1684,16 +1684,16 @@ export const debounce: {
|
|
|
1684
1684
|
* @since 4.0.0
|
|
1685
1685
|
* @category combinators
|
|
1686
1686
|
*/
|
|
1687
|
-
(duration: Duration.
|
|
1687
|
+
(duration: Duration.Input): <A extends Atom<any>>(self: A) => WithoutSerializable<A>
|
|
1688
1688
|
/**
|
|
1689
1689
|
* @since 4.0.0
|
|
1690
1690
|
* @category combinators
|
|
1691
1691
|
*/
|
|
1692
|
-
<A extends Atom<any>>(self: A, duration: Duration.
|
|
1692
|
+
<A extends Atom<any>>(self: A, duration: Duration.Input): WithoutSerializable<A>
|
|
1693
1693
|
} = dual(
|
|
1694
1694
|
2,
|
|
1695
|
-
<A>(self: Atom<A>, duration: Duration.
|
|
1696
|
-
const millis = Duration.toMillis(Duration.
|
|
1695
|
+
<A>(self: Atom<A>, duration: Duration.Input): Atom<A> => {
|
|
1696
|
+
const millis = Duration.toMillis(Duration.fromInputUnsafe(duration))
|
|
1697
1697
|
return transform(self, function(get) {
|
|
1698
1698
|
let timeout: number | undefined
|
|
1699
1699
|
let value = get.once(self)
|
|
@@ -1729,7 +1729,7 @@ export const withRefresh: {
|
|
|
1729
1729
|
* @since 4.0.0
|
|
1730
1730
|
* @category combinators
|
|
1731
1731
|
*/
|
|
1732
|
-
(duration: Duration.
|
|
1732
|
+
(duration: Duration.Input): <A extends Atom<any>>(self: A) => WithoutSerializable<A>
|
|
1733
1733
|
/**
|
|
1734
1734
|
* Ensures that the value of the atom is refreshed at most once per specified
|
|
1735
1735
|
* duration.
|
|
@@ -1737,11 +1737,11 @@ export const withRefresh: {
|
|
|
1737
1737
|
* @since 4.0.0
|
|
1738
1738
|
* @category combinators
|
|
1739
1739
|
*/
|
|
1740
|
-
<A extends Atom<any>>(self: A, duration: Duration.
|
|
1740
|
+
<A extends Atom<any>>(self: A, duration: Duration.Input): WithoutSerializable<A>
|
|
1741
1741
|
} = dual(
|
|
1742
1742
|
2,
|
|
1743
|
-
<A>(self: Atom<A>, duration: Duration.
|
|
1744
|
-
const millis = Duration.toMillis(Duration.
|
|
1743
|
+
<A>(self: Atom<A>, duration: Duration.Input): Atom<A> => {
|
|
1744
|
+
const millis = Duration.toMillis(Duration.fromInputUnsafe(duration))
|
|
1745
1745
|
return transform(self, function(get) {
|
|
1746
1746
|
const handle = setTimeout(() => get.refresh(self), millis) as any
|
|
1747
1747
|
get.addFinalizer(() => clearTimeout(handle))
|
|
@@ -2291,16 +2291,18 @@ export const serializable: {
|
|
|
2291
2291
|
} = dual(2, <R extends Atom<any>, A, I>(self: R, options: {
|
|
2292
2292
|
readonly key: string
|
|
2293
2293
|
readonly schema: Schema.Codec<A, I>
|
|
2294
|
-
}): R & Serializable<any> =>
|
|
2295
|
-
|
|
2294
|
+
}): R & Serializable<any> => {
|
|
2295
|
+
const codecJson = Schema.toCodecJson(options.schema)
|
|
2296
|
+
return Object.assign(Object.create(Object.getPrototypeOf(self)), {
|
|
2296
2297
|
...self,
|
|
2297
2298
|
label: self.label ?? [options.key, new Error().stack?.split("\n")[5] ?? ""],
|
|
2298
2299
|
[SerializableTypeId]: {
|
|
2299
2300
|
key: options.key,
|
|
2300
|
-
encode: Schema.encodeSync(
|
|
2301
|
-
decode: Schema.decodeSync(
|
|
2301
|
+
encode: Schema.encodeSync(codecJson),
|
|
2302
|
+
decode: Schema.decodeSync(codecJson)
|
|
2302
2303
|
}
|
|
2303
|
-
})
|
|
2304
|
+
})
|
|
2305
|
+
})
|
|
2304
2306
|
|
|
2305
2307
|
/**
|
|
2306
2308
|
* @since 4.0.0
|
|
@@ -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> => {
|