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
package/src/internal/dateTime.ts
CHANGED
|
@@ -12,7 +12,6 @@ import * as Inspectable from "../Inspectable.ts"
|
|
|
12
12
|
import * as order from "../Order.ts"
|
|
13
13
|
import { pipeArguments } from "../Pipeable.ts"
|
|
14
14
|
import * as Predicate from "../Predicate.ts"
|
|
15
|
-
import * as Result from "../Result.ts"
|
|
16
15
|
import type { Mutable } from "../Types.ts"
|
|
17
16
|
import * as UndefinedOr from "../UndefinedOr.ts"
|
|
18
17
|
import * as effect from "./effect.ts"
|
|
@@ -467,32 +466,12 @@ export const setZoneNamedUnsafe: {
|
|
|
467
466
|
|
|
468
467
|
/** @internal */
|
|
469
468
|
export const distance: {
|
|
470
|
-
(other: DateTime.DateTime): (self: DateTime.DateTime) => number
|
|
471
|
-
(self: DateTime.DateTime, other: DateTime.DateTime): number
|
|
472
|
-
} = dual(2, (self: DateTime.DateTime, other: DateTime.DateTime): number => toEpochMillis(other) - toEpochMillis(self))
|
|
473
|
-
|
|
474
|
-
/** @internal */
|
|
475
|
-
export const distanceDurationResult: {
|
|
476
|
-
(other: DateTime.DateTime): (self: DateTime.DateTime) => Result.Result<Duration.Duration, Duration.Duration>
|
|
477
|
-
(self: DateTime.DateTime, other: DateTime.DateTime): Result.Result<Duration.Duration, Duration.Duration>
|
|
478
|
-
} = dual(
|
|
479
|
-
2,
|
|
480
|
-
(self: DateTime.DateTime, other: DateTime.DateTime): Result.Result<Duration.Duration, Duration.Duration> => {
|
|
481
|
-
const diffMillis = distance(self, other)
|
|
482
|
-
return diffMillis > 0
|
|
483
|
-
? Result.succeed(Duration.millis(diffMillis))
|
|
484
|
-
: Result.fail(Duration.millis(-diffMillis))
|
|
485
|
-
}
|
|
486
|
-
)
|
|
487
|
-
|
|
488
|
-
/** @internal */
|
|
489
|
-
export const distanceDuration: {
|
|
490
469
|
(other: DateTime.DateTime): (self: DateTime.DateTime) => Duration.Duration
|
|
491
470
|
(self: DateTime.DateTime, other: DateTime.DateTime): Duration.Duration
|
|
492
471
|
} = dual(
|
|
493
472
|
2,
|
|
494
473
|
(self: DateTime.DateTime, other: DateTime.DateTime): Duration.Duration =>
|
|
495
|
-
Duration.millis(
|
|
474
|
+
Duration.millis(toEpochMillis(other) - toEpochMillis(self))
|
|
496
475
|
)
|
|
497
476
|
|
|
498
477
|
/** @internal */
|
|
@@ -911,22 +890,22 @@ export const match: {
|
|
|
911
890
|
|
|
912
891
|
/** @internal */
|
|
913
892
|
export const addDuration: {
|
|
914
|
-
(duration: Duration.
|
|
915
|
-
<A extends DateTime.DateTime>(self: A, duration: Duration.
|
|
893
|
+
(duration: Duration.Input): <A extends DateTime.DateTime>(self: A) => A
|
|
894
|
+
<A extends DateTime.DateTime>(self: A, duration: Duration.Input): A
|
|
916
895
|
} = dual(
|
|
917
896
|
2,
|
|
918
|
-
(self: DateTime.DateTime, duration: Duration.
|
|
919
|
-
mapEpochMillis(self, (millis) => millis + Duration.toMillis(Duration.
|
|
897
|
+
(self: DateTime.DateTime, duration: Duration.Input): DateTime.DateTime =>
|
|
898
|
+
mapEpochMillis(self, (millis) => millis + Duration.toMillis(Duration.fromInputUnsafe(duration)))
|
|
920
899
|
)
|
|
921
900
|
|
|
922
901
|
/** @internal */
|
|
923
902
|
export const subtractDuration: {
|
|
924
|
-
(duration: Duration.
|
|
925
|
-
<A extends DateTime.DateTime>(self: A, duration: Duration.
|
|
903
|
+
(duration: Duration.Input): <A extends DateTime.DateTime>(self: A) => A
|
|
904
|
+
<A extends DateTime.DateTime>(self: A, duration: Duration.Input): A
|
|
926
905
|
} = dual(
|
|
927
906
|
2,
|
|
928
|
-
(self: DateTime.DateTime, duration: Duration.
|
|
929
|
-
mapEpochMillis(self, (millis) => millis - Duration.toMillis(Duration.
|
|
907
|
+
(self: DateTime.DateTime, duration: Duration.Input): DateTime.DateTime =>
|
|
908
|
+
mapEpochMillis(self, (millis) => millis - Duration.toMillis(Duration.fromInputUnsafe(duration)))
|
|
930
909
|
)
|
|
931
910
|
|
|
932
911
|
const addMillis = (date: Date, amount: number): void => {
|
package/src/internal/effect.ts
CHANGED
|
@@ -14,6 +14,7 @@ import { constant, constFalse, constTrue, constUndefined, constVoid, dual, ident
|
|
|
14
14
|
import * as Hash from "../Hash.ts"
|
|
15
15
|
import { toJson, toStringUnknown } from "../Inspectable.ts"
|
|
16
16
|
import * as Iterable from "../Iterable.ts"
|
|
17
|
+
import type * as _Latch from "../Latch.ts"
|
|
17
18
|
import type * as Logger from "../Logger.ts"
|
|
18
19
|
import type * as LogLevel from "../LogLevel.ts"
|
|
19
20
|
import type * as Metric from "../Metric.ts"
|
|
@@ -81,6 +82,7 @@ import {
|
|
|
81
82
|
isEffect,
|
|
82
83
|
isFailReason,
|
|
83
84
|
isInterruptReason,
|
|
85
|
+
isNoSuchElementError,
|
|
84
86
|
makePrimitive,
|
|
85
87
|
makePrimitiveProto,
|
|
86
88
|
NoSuchElementError,
|
|
@@ -783,6 +785,7 @@ export const fiberJoinAll = <A extends Iterable<Fiber.Fiber<any, any>>>(self: A)
|
|
|
783
785
|
> =>
|
|
784
786
|
callback((resume) => {
|
|
785
787
|
const fibers = Array.from(self)
|
|
788
|
+
if (fibers.length === 0) return resume(succeed(Arr.empty() as any))
|
|
786
789
|
const out = new Array<any>(fibers.length) as Arr.NonEmptyArray<any>
|
|
787
790
|
const cancels = Arr.empty<() => void>()
|
|
788
791
|
let done = 0
|
|
@@ -2440,6 +2443,18 @@ export const catch_: {
|
|
|
2440
2443
|
): Effect.Effect<A | B, E2, R | R2> => catchCauseIf(self, findError as any, (e: any) => f(e)) as any
|
|
2441
2444
|
)
|
|
2442
2445
|
|
|
2446
|
+
/** @internal */
|
|
2447
|
+
export const catchNoSuchElement = <A, E, R>(
|
|
2448
|
+
self: Effect.Effect<A, E, R>
|
|
2449
|
+
): Effect.Effect<Option.Option<A>, Exclude<E, Cause.NoSuchElementError>, R> =>
|
|
2450
|
+
matchEffect(self, {
|
|
2451
|
+
onFailure: (error) =>
|
|
2452
|
+
isNoSuchElementError(error)
|
|
2453
|
+
? succeedNone
|
|
2454
|
+
: fail(error as Exclude<E, Cause.NoSuchElementError>),
|
|
2455
|
+
onSuccess: succeedSome
|
|
2456
|
+
})
|
|
2457
|
+
|
|
2443
2458
|
/** @internal */
|
|
2444
2459
|
export const catchDefect: {
|
|
2445
2460
|
<E, B, E2, R2>(
|
|
@@ -3390,24 +3405,24 @@ export const isSuccess: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect
|
|
|
3390
3405
|
/** @internal */
|
|
3391
3406
|
export const delay: {
|
|
3392
3407
|
(
|
|
3393
|
-
duration: Duration.
|
|
3408
|
+
duration: Duration.Input
|
|
3394
3409
|
): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
|
|
3395
3410
|
<A, E, R>(
|
|
3396
3411
|
self: Effect.Effect<A, E, R>,
|
|
3397
|
-
duration: Duration.
|
|
3412
|
+
duration: Duration.Input
|
|
3398
3413
|
): Effect.Effect<A, E, R>
|
|
3399
3414
|
} = dual(
|
|
3400
3415
|
2,
|
|
3401
3416
|
<A, E, R>(
|
|
3402
3417
|
self: Effect.Effect<A, E, R>,
|
|
3403
|
-
duration: Duration.
|
|
3418
|
+
duration: Duration.Input
|
|
3404
3419
|
): Effect.Effect<A, E, R> => andThen(sleep(duration), self)
|
|
3405
3420
|
)
|
|
3406
3421
|
|
|
3407
3422
|
/** @internal */
|
|
3408
3423
|
export const timeoutOrElse: {
|
|
3409
3424
|
<A2, E2, R2>(options: {
|
|
3410
|
-
readonly duration: Duration.
|
|
3425
|
+
readonly duration: Duration.Input
|
|
3411
3426
|
readonly onTimeout: LazyArg<Effect.Effect<A2, E2, R2>>
|
|
3412
3427
|
}): <A, E, R>(
|
|
3413
3428
|
self: Effect.Effect<A, E, R>
|
|
@@ -3415,7 +3430,7 @@ export const timeoutOrElse: {
|
|
|
3415
3430
|
<A, E, R, A2, E2, R2>(
|
|
3416
3431
|
self: Effect.Effect<A, E, R>,
|
|
3417
3432
|
options: {
|
|
3418
|
-
readonly duration: Duration.
|
|
3433
|
+
readonly duration: Duration.Input
|
|
3419
3434
|
readonly onTimeout: LazyArg<Effect.Effect<A2, E2, R2>>
|
|
3420
3435
|
}
|
|
3421
3436
|
): Effect.Effect<A | A2, E | E2, R | R2>
|
|
@@ -3424,7 +3439,7 @@ export const timeoutOrElse: {
|
|
|
3424
3439
|
<A, E, R, A2, E2, R2>(
|
|
3425
3440
|
self: Effect.Effect<A, E, R>,
|
|
3426
3441
|
options: {
|
|
3427
|
-
readonly duration: Duration.
|
|
3442
|
+
readonly duration: Duration.Input
|
|
3428
3443
|
readonly onTimeout: LazyArg<Effect.Effect<A2, E2, R2>>
|
|
3429
3444
|
}
|
|
3430
3445
|
): Effect.Effect<A | A2, E | E2, R | R2> =>
|
|
@@ -3437,19 +3452,19 @@ export const timeoutOrElse: {
|
|
|
3437
3452
|
/** @internal */
|
|
3438
3453
|
export const timeout: {
|
|
3439
3454
|
(
|
|
3440
|
-
duration: Duration.
|
|
3455
|
+
duration: Duration.Input
|
|
3441
3456
|
): <A, E, R>(
|
|
3442
3457
|
self: Effect.Effect<A, E, R>
|
|
3443
3458
|
) => Effect.Effect<A, E | Cause.TimeoutError, R>
|
|
3444
3459
|
<A, E, R>(
|
|
3445
3460
|
self: Effect.Effect<A, E, R>,
|
|
3446
|
-
duration: Duration.
|
|
3461
|
+
duration: Duration.Input
|
|
3447
3462
|
): Effect.Effect<A, E | Cause.TimeoutError, R>
|
|
3448
3463
|
} = dual(
|
|
3449
3464
|
2,
|
|
3450
3465
|
<A, E, R>(
|
|
3451
3466
|
self: Effect.Effect<A, E, R>,
|
|
3452
|
-
duration: Duration.
|
|
3467
|
+
duration: Duration.Input
|
|
3453
3468
|
): Effect.Effect<A, E | TimeoutError, R> =>
|
|
3454
3469
|
timeoutOrElse(self, {
|
|
3455
3470
|
duration,
|
|
@@ -3460,19 +3475,19 @@ export const timeout: {
|
|
|
3460
3475
|
/** @internal */
|
|
3461
3476
|
export const timeoutOption: {
|
|
3462
3477
|
(
|
|
3463
|
-
duration: Duration.
|
|
3478
|
+
duration: Duration.Input
|
|
3464
3479
|
): <A, E, R>(
|
|
3465
3480
|
self: Effect.Effect<A, E, R>
|
|
3466
3481
|
) => Effect.Effect<Option.Option<A>, E, R>
|
|
3467
3482
|
<A, E, R>(
|
|
3468
3483
|
self: Effect.Effect<A, E, R>,
|
|
3469
|
-
duration: Duration.
|
|
3484
|
+
duration: Duration.Input
|
|
3470
3485
|
): Effect.Effect<Option.Option<A>, E, R>
|
|
3471
3486
|
} = dual(
|
|
3472
3487
|
2,
|
|
3473
3488
|
<A, E, R>(
|
|
3474
3489
|
self: Effect.Effect<A, E, R>,
|
|
3475
|
-
duration: Duration.
|
|
3490
|
+
duration: Duration.Input
|
|
3476
3491
|
): Effect.Effect<Option.Option<A>, E, R> =>
|
|
3477
3492
|
raceFirst(
|
|
3478
3493
|
asSome(self),
|
|
@@ -3860,19 +3875,19 @@ export const acquireUseRelease = <Resource, E, R, A, E2, R2, E3, R3>(
|
|
|
3860
3875
|
|
|
3861
3876
|
/** @internal */
|
|
3862
3877
|
export const cachedInvalidateWithTTL: {
|
|
3863
|
-
(timeToLive: Duration.
|
|
3878
|
+
(timeToLive: Duration.Input): <A, E, R>(
|
|
3864
3879
|
self: Effect.Effect<A, E, R>
|
|
3865
3880
|
) => Effect.Effect<[Effect.Effect<A, E, R>, Effect.Effect<void>]>
|
|
3866
3881
|
<A, E, R>(
|
|
3867
3882
|
self: Effect.Effect<A, E, R>,
|
|
3868
|
-
timeToLive: Duration.
|
|
3883
|
+
timeToLive: Duration.Input
|
|
3869
3884
|
): Effect.Effect<[Effect.Effect<A, E, R>, Effect.Effect<void>]>
|
|
3870
3885
|
} = dual(2, <A, E, R>(
|
|
3871
3886
|
self: Effect.Effect<A, E, R>,
|
|
3872
|
-
ttl: Duration.
|
|
3887
|
+
ttl: Duration.Input
|
|
3873
3888
|
): Effect.Effect<[Effect.Effect<A, E, R>, Effect.Effect<void>]> =>
|
|
3874
3889
|
sync(() => {
|
|
3875
|
-
const ttlMillis = Duration.toMillis(Duration.
|
|
3890
|
+
const ttlMillis = Duration.toMillis(Duration.fromInputUnsafe(ttl))
|
|
3876
3891
|
const isFinite = Number.isFinite(ttlMillis)
|
|
3877
3892
|
const latch = makeLatchUnsafe(false)
|
|
3878
3893
|
let expiresAt = 0
|
|
@@ -3905,17 +3920,17 @@ export const cachedInvalidateWithTTL: {
|
|
|
3905
3920
|
/** @internal */
|
|
3906
3921
|
export const cachedWithTTL: {
|
|
3907
3922
|
(
|
|
3908
|
-
timeToLive: Duration.
|
|
3923
|
+
timeToLive: Duration.Input
|
|
3909
3924
|
): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<Effect.Effect<A, E, R>>
|
|
3910
3925
|
<A, E, R>(
|
|
3911
3926
|
self: Effect.Effect<A, E, R>,
|
|
3912
|
-
timeToLive: Duration.
|
|
3927
|
+
timeToLive: Duration.Input
|
|
3913
3928
|
): Effect.Effect<Effect.Effect<A, E, R>>
|
|
3914
3929
|
} = dual(
|
|
3915
3930
|
2,
|
|
3916
3931
|
<A, E, R>(
|
|
3917
3932
|
self: Effect.Effect<A, E, R>,
|
|
3918
|
-
timeToLive: Duration.
|
|
3933
|
+
timeToLive: Duration.Input
|
|
3919
3934
|
): Effect.Effect<Effect.Effect<A, E, R>> => map(cachedInvalidateWithTTL(self, timeToLive), (tuple) => tuple[0])
|
|
3920
3935
|
)
|
|
3921
3936
|
|
|
@@ -4759,25 +4774,27 @@ class Semaphore {
|
|
|
4759
4774
|
return this.permits - this.taken
|
|
4760
4775
|
}
|
|
4761
4776
|
|
|
4762
|
-
readonly take = (n: number): Effect.Effect<number> =>
|
|
4763
|
-
|
|
4777
|
+
readonly take = (n: number): Effect.Effect<number> => {
|
|
4778
|
+
const take: Effect.Effect<number> = suspend(() => {
|
|
4764
4779
|
if (this.free < n) {
|
|
4765
|
-
|
|
4766
|
-
if (this.free
|
|
4767
|
-
|
|
4780
|
+
return callback((resume) => {
|
|
4781
|
+
if (this.free >= n) return resume(take)
|
|
4782
|
+
const observer = () => {
|
|
4783
|
+
if (this.free < n) return
|
|
4784
|
+
this.waiters.delete(observer)
|
|
4785
|
+
resume(take)
|
|
4768
4786
|
}
|
|
4769
|
-
this.waiters.
|
|
4770
|
-
|
|
4771
|
-
|
|
4772
|
-
|
|
4773
|
-
this.waiters.add(observer)
|
|
4774
|
-
return sync(() => {
|
|
4775
|
-
this.waiters.delete(observer)
|
|
4787
|
+
this.waiters.add(observer)
|
|
4788
|
+
return sync(() => {
|
|
4789
|
+
this.waiters.delete(observer)
|
|
4790
|
+
})
|
|
4776
4791
|
})
|
|
4777
4792
|
}
|
|
4778
4793
|
this.taken += n
|
|
4779
|
-
return
|
|
4794
|
+
return succeed(n)
|
|
4780
4795
|
})
|
|
4796
|
+
return take
|
|
4797
|
+
}
|
|
4781
4798
|
|
|
4782
4799
|
updateTakenUnsafe(fiber: Fiber.Fiber<any, any>, f: (n: number) => number): Effect.Effect<number> {
|
|
4783
4800
|
this.taken = f(this.taken)
|
|
@@ -4815,7 +4832,10 @@ class Semaphore {
|
|
|
4815
4832
|
|
|
4816
4833
|
readonly withPermits = (n: number) => <A, E, R>(self: Effect.Effect<A, E, R>) =>
|
|
4817
4834
|
uninterruptibleMask((restore) =>
|
|
4818
|
-
flatMap(
|
|
4835
|
+
flatMap(
|
|
4836
|
+
restore(this.take(n)),
|
|
4837
|
+
(permits) => onExitPrimitive(restore(self), () => this.release(permits), true)
|
|
4838
|
+
)
|
|
4819
4839
|
)
|
|
4820
4840
|
|
|
4821
4841
|
readonly withPermit = this.withPermits(1)
|
|
@@ -4841,7 +4861,7 @@ export const makeSemaphore = (permits: number) => sync(() => makeSemaphoreUnsafe
|
|
|
4841
4861
|
const succeedTrue = succeed(true)
|
|
4842
4862
|
const succeedFalse = succeed(false)
|
|
4843
4863
|
|
|
4844
|
-
class Latch implements
|
|
4864
|
+
class Latch implements _Latch.Latch {
|
|
4845
4865
|
waiters: Array<(_: Effect.Effect<void>) => void> = []
|
|
4846
4866
|
scheduled = false
|
|
4847
4867
|
private isOpen: boolean
|
|
@@ -4901,7 +4921,7 @@ class Latch implements Effect.Latch {
|
|
|
4901
4921
|
}
|
|
4902
4922
|
|
|
4903
4923
|
/** @internal */
|
|
4904
|
-
export const makeLatchUnsafe = (open?: boolean | undefined):
|
|
4924
|
+
export const makeLatchUnsafe = (open?: boolean | undefined): _Latch.Latch => new Latch(open ?? false)
|
|
4905
4925
|
|
|
4906
4926
|
/** @internal */
|
|
4907
4927
|
export const makeLatch = (open?: boolean | undefined) => sync(() => makeLatchUnsafe(open))
|
|
@@ -5331,8 +5351,8 @@ export const clockWith = <A, E, R>(f: (clock: Clock.Clock) => Effect.Effect<A, E
|
|
|
5331
5351
|
withFiber((fiber) => f(fiber.getRef(ClockRef)))
|
|
5332
5352
|
|
|
5333
5353
|
/** @internal */
|
|
5334
|
-
export const sleep = (duration: Duration.
|
|
5335
|
-
clockWith((clock) => clock.sleep(Duration.
|
|
5354
|
+
export const sleep = (duration: Duration.Input): Effect.Effect<void> =>
|
|
5355
|
+
clockWith((clock) => clock.sleep(Duration.fromInputUnsafe(duration)))
|
|
5336
5356
|
|
|
5337
5357
|
/** @internal */
|
|
5338
5358
|
export const currentTimeMillis: Effect.Effect<number> = clockWith((clock) => clock.currentTimeMillis)
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as ServiceMap from "../ServiceMap.ts"
|
|
2
|
+
|
|
3
|
+
/** @internal */
|
|
4
|
+
export interface Random {
|
|
5
|
+
nextIntUnsafe(): number
|
|
6
|
+
nextDoubleUnsafe(): number
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
/** @internal */
|
|
10
|
+
export const Random: ServiceMap.Reference<Random> = ServiceMap.Reference<Random>("effect/Random", {
|
|
11
|
+
defaultValue: () => ({
|
|
12
|
+
nextIntUnsafe() {
|
|
13
|
+
return Math.floor(Math.random() * (Number.MAX_SAFE_INTEGER - Number.MIN_SAFE_INTEGER + 1)) +
|
|
14
|
+
Number.MIN_SAFE_INTEGER
|
|
15
|
+
},
|
|
16
|
+
nextDoubleUnsafe() {
|
|
17
|
+
return Math.random()
|
|
18
|
+
}
|
|
19
|
+
})
|
|
20
|
+
})
|
package/src/internal/rcRef.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { identity } from "../Function.ts"
|
|
|
6
6
|
import { pipeArguments } from "../Pipeable.ts"
|
|
7
7
|
import type * as RcRef from "../RcRef.ts"
|
|
8
8
|
import * as Scope from "../Scope.ts"
|
|
9
|
+
import * as Semaphore from "../Semaphore.ts"
|
|
9
10
|
import * as ServiceMap from "../ServiceMap.ts"
|
|
10
11
|
|
|
11
12
|
const TypeId = "~effect/RcRef"
|
|
@@ -47,7 +48,7 @@ class RcRefImpl<A, E> implements RcRef.RcRef<A, E> {
|
|
|
47
48
|
}
|
|
48
49
|
|
|
49
50
|
state: State<A> = stateEmpty
|
|
50
|
-
readonly semaphore =
|
|
51
|
+
readonly semaphore = Semaphore.makeUnsafe(1)
|
|
51
52
|
readonly acquire: Effect.Effect<A, E>
|
|
52
53
|
readonly services: ServiceMap.ServiceMap<never>
|
|
53
54
|
readonly scope: Scope.Scope
|
|
@@ -69,7 +70,7 @@ class RcRefImpl<A, E> implements RcRef.RcRef<A, E> {
|
|
|
69
70
|
/** @internal */
|
|
70
71
|
export const make = <A, E, R>(options: {
|
|
71
72
|
readonly acquire: Effect.Effect<A, E, R>
|
|
72
|
-
readonly idleTimeToLive?: Duration.
|
|
73
|
+
readonly idleTimeToLive?: Duration.Input | undefined
|
|
73
74
|
}) =>
|
|
74
75
|
Effect.withFiber<RcRef.RcRef<A, E>, never, R | Scope.Scope>((fiber) => {
|
|
75
76
|
const services = fiber.services as ServiceMap.ServiceMap<R | Scope.Scope>
|
|
@@ -78,7 +79,7 @@ export const make = <A, E, R>(options: {
|
|
|
78
79
|
options.acquire as Effect.Effect<A, E>,
|
|
79
80
|
services,
|
|
80
81
|
scope,
|
|
81
|
-
options.idleTimeToLive ? Duration.
|
|
82
|
+
options.idleTimeToLive ? Duration.fromInputUnsafe(options.idleTimeToLive) : undefined
|
|
82
83
|
)
|
|
83
84
|
return Effect.as(
|
|
84
85
|
Scope.addFinalizerExit(scope, () => {
|
package/src/testing/TestClock.ts
CHANGED
|
@@ -8,8 +8,10 @@ import * as Duration from "../Duration.ts"
|
|
|
8
8
|
import * as Effect from "../Effect.ts"
|
|
9
9
|
import * as Fiber from "../Fiber.ts"
|
|
10
10
|
import { flow } from "../Function.ts"
|
|
11
|
+
import * as Latch from "../Latch.ts"
|
|
11
12
|
import * as Layer from "../Layer.ts"
|
|
12
13
|
import * as Order from "../Order.ts"
|
|
14
|
+
import * as Semaphore from "../Semaphore.ts"
|
|
13
15
|
|
|
14
16
|
/**
|
|
15
17
|
* A `TestClock` simplifies deterministically and efficiently testing effects
|
|
@@ -79,7 +81,7 @@ export interface TestClock extends Clock.Clock {
|
|
|
79
81
|
* that were scheduled to occur on or before the new time will be run in
|
|
80
82
|
* order.
|
|
81
83
|
*/
|
|
82
|
-
adjust(duration: Duration.
|
|
84
|
+
adjust(duration: Duration.Input): Effect.Effect<void>
|
|
83
85
|
/**
|
|
84
86
|
* Sets the current clock time to the specified `timestamp`. Any effects that
|
|
85
87
|
* were scheduled to occur on or before the new time will be run in order.
|
|
@@ -139,7 +141,7 @@ export declare namespace TestClock {
|
|
|
139
141
|
* The amount of time to wait before displaying a warning message when a
|
|
140
142
|
* test is using time but is not advancing the `TestClock`.
|
|
141
143
|
*/
|
|
142
|
-
readonly warningDelay?: Duration.
|
|
144
|
+
readonly warningDelay?: Duration.Input
|
|
143
145
|
}
|
|
144
146
|
|
|
145
147
|
/**
|
|
@@ -155,7 +157,7 @@ export declare namespace TestClock {
|
|
|
155
157
|
* const timestamp = testClock.currentTimeMillisUnsafe()
|
|
156
158
|
* console.log(timestamp) // Current test time
|
|
157
159
|
*
|
|
158
|
-
* // Internal state structure: { timestamp: number, sleeps: Array<[number,
|
|
160
|
+
* // Internal state structure: { timestamp: number, sleeps: Array<[number, Latch.Latch]> }
|
|
159
161
|
* })
|
|
160
162
|
* ```
|
|
161
163
|
*
|
|
@@ -164,7 +166,7 @@ export declare namespace TestClock {
|
|
|
164
166
|
*/
|
|
165
167
|
export interface State {
|
|
166
168
|
readonly timestamp: number
|
|
167
|
-
readonly sleeps: ReadonlyArray<[number,
|
|
169
|
+
readonly sleeps: ReadonlyArray<[number, Latch.Latch]>
|
|
168
170
|
}
|
|
169
171
|
}
|
|
170
172
|
|
|
@@ -220,10 +222,10 @@ export const make = Effect.fnUntraced(function*(
|
|
|
220
222
|
const sleeps: Array<{
|
|
221
223
|
readonly sequence: number
|
|
222
224
|
readonly timestamp: number
|
|
223
|
-
readonly latch:
|
|
225
|
+
readonly latch: Latch.Latch
|
|
224
226
|
}> = []
|
|
225
227
|
const liveClock = yield* Clock.clockWith(Effect.succeed)
|
|
226
|
-
const warningSemaphore = yield*
|
|
228
|
+
const warningSemaphore = yield* Semaphore.make(1)
|
|
227
229
|
|
|
228
230
|
let currentTimestamp: number = new Date(0).getTime()
|
|
229
231
|
let warningState: WarningState = WarningState.Start()
|
|
@@ -292,7 +294,7 @@ export const make = Effect.fnUntraced(function*(
|
|
|
292
294
|
const millis = Duration.toMillis(duration)
|
|
293
295
|
const end = currentTimestamp + millis
|
|
294
296
|
if (end <= currentTimestamp) return
|
|
295
|
-
const latch =
|
|
297
|
+
const latch = Latch.makeUnsafe()
|
|
296
298
|
sleeps.push({
|
|
297
299
|
sequence: sequence++,
|
|
298
300
|
timestamp: end,
|
|
@@ -303,7 +305,7 @@ export const make = Effect.fnUntraced(function*(
|
|
|
303
305
|
yield* latch.await
|
|
304
306
|
})
|
|
305
307
|
|
|
306
|
-
const runSemaphore = yield*
|
|
308
|
+
const runSemaphore = yield* Semaphore.make(1)
|
|
307
309
|
const run = Effect.fnUntraced(function*(step: (currentTimestamp: number) => number) {
|
|
308
310
|
yield* Fiber.await(yield* Effect.forkScoped(Effect.yieldNow))
|
|
309
311
|
const endTimestamp = step(currentTimestamp)
|
|
@@ -317,8 +319,8 @@ export const make = Effect.fnUntraced(function*(
|
|
|
317
319
|
currentTimestamp = endTimestamp
|
|
318
320
|
}, runSemaphore.withPermits(1))
|
|
319
321
|
|
|
320
|
-
function adjust(duration: Duration.
|
|
321
|
-
const millis = Duration.toMillis(Duration.
|
|
322
|
+
function adjust(duration: Duration.Input) {
|
|
323
|
+
const millis = Duration.toMillis(Duration.fromInputUnsafe(duration))
|
|
322
324
|
return warningDone.pipe(Effect.andThen(run((timestamp) => timestamp + millis)))
|
|
323
325
|
}
|
|
324
326
|
|
|
@@ -429,7 +431,7 @@ export const testClockWith = <A, E, R>(
|
|
|
429
431
|
* @since 2.0.0
|
|
430
432
|
* @category utils
|
|
431
433
|
*/
|
|
432
|
-
export const adjust = (duration: Duration.
|
|
434
|
+
export const adjust = (duration: Duration.Input): Effect.Effect<void> =>
|
|
433
435
|
testClockWith((testClock) => testClock.adjust(duration))
|
|
434
436
|
|
|
435
437
|
/**
|
|
@@ -156,16 +156,16 @@ export class Decoding<S extends Schema.Top> {
|
|
|
156
156
|
/**
|
|
157
157
|
* Asserts that decoding succeeds with the expected value.
|
|
158
158
|
*/
|
|
159
|
-
async succeed<S extends Schema.
|
|
159
|
+
async succeed<S extends Schema.Decoder<unknown, never>>(
|
|
160
160
|
this: Decoding<S>,
|
|
161
161
|
input: unknown
|
|
162
162
|
): Promise<void>
|
|
163
|
-
async succeed<S extends Schema.
|
|
163
|
+
async succeed<S extends Schema.Decoder<unknown, never>>(
|
|
164
164
|
this: Decoding<S>,
|
|
165
165
|
input: unknown,
|
|
166
166
|
expected: S["Type"]
|
|
167
167
|
): Promise<void>
|
|
168
|
-
async succeed<S extends Schema.
|
|
168
|
+
async succeed<S extends Schema.Decoder<unknown, never>>(
|
|
169
169
|
this: Decoding<S>,
|
|
170
170
|
input: unknown,
|
|
171
171
|
expected?: S["Type"]
|
|
@@ -182,7 +182,7 @@ export class Decoding<S extends Schema.Top> {
|
|
|
182
182
|
/**
|
|
183
183
|
* Asserts that decoding fails with the expected error message.
|
|
184
184
|
*/
|
|
185
|
-
async fail<S extends Schema.
|
|
185
|
+
async fail<S extends Schema.Decoder<unknown, never>>(
|
|
186
186
|
this: Decoding<S>,
|
|
187
187
|
input: unknown,
|
|
188
188
|
message: string
|
|
@@ -232,16 +232,16 @@ class Encoding<S extends Schema.Top> {
|
|
|
232
232
|
/**
|
|
233
233
|
* Asserts that encoding succeeds with the expected value.
|
|
234
234
|
*/
|
|
235
|
-
async succeed<S extends Schema.
|
|
235
|
+
async succeed<S extends Schema.Encoder<unknown, never>>(
|
|
236
236
|
this: Encoding<S>,
|
|
237
237
|
input: unknown
|
|
238
238
|
): Promise<void>
|
|
239
|
-
async succeed<S extends Schema.
|
|
239
|
+
async succeed<S extends Schema.Encoder<unknown, never>>(
|
|
240
240
|
this: Encoding<S>,
|
|
241
241
|
input: unknown,
|
|
242
242
|
expected: S["Encoded"]
|
|
243
243
|
): Promise<void>
|
|
244
|
-
async succeed<S extends Schema.
|
|
244
|
+
async succeed<S extends Schema.Encoder<unknown, never>>(
|
|
245
245
|
this: Encoding<S>,
|
|
246
246
|
input: unknown,
|
|
247
247
|
expected?: S["Encoded"]
|
|
@@ -258,7 +258,7 @@ class Encoding<S extends Schema.Top> {
|
|
|
258
258
|
/**
|
|
259
259
|
* Asserts that encoding fails with the expected error message.
|
|
260
260
|
*/
|
|
261
|
-
async fail<S extends Schema.
|
|
261
|
+
async fail<S extends Schema.Encoder<unknown, never>>(
|
|
262
262
|
this: Encoding<S>,
|
|
263
263
|
input: unknown,
|
|
264
264
|
message: string
|
|
@@ -247,9 +247,9 @@ export class NetworkError extends Schema.ErrorClass<NetworkError>(
|
|
|
247
247
|
* @since 1.0.0
|
|
248
248
|
* @category schemas
|
|
249
249
|
*/
|
|
250
|
-
export const ProviderMetadata: Schema
|
|
250
|
+
export const ProviderMetadata: Schema.$Record<
|
|
251
251
|
Schema.String,
|
|
252
|
-
Schema.NullOr<Schema.Codec<Schema.MutableJson
|
|
252
|
+
Schema.NullOr<Schema.Codec<Schema.MutableJson>>
|
|
253
253
|
> = Schema.Record(Schema.String, Schema.NullOr(Schema.MutableJson))
|
|
254
254
|
|
|
255
255
|
/**
|
package/src/unstable/ai/Chat.ts
CHANGED
|
@@ -53,6 +53,7 @@ import * as Option from "../../Option.ts"
|
|
|
53
53
|
import * as Predicate from "../../Predicate.ts"
|
|
54
54
|
import * as Ref from "../../Ref.ts"
|
|
55
55
|
import * as Schema from "../../Schema.ts"
|
|
56
|
+
import * as Semaphore from "../../Semaphore.ts"
|
|
56
57
|
import * as ServiceMap from "../../ServiceMap.ts"
|
|
57
58
|
import * as Stream from "../../Stream.ts"
|
|
58
59
|
import type { NoExcessProperties } from "../../Types.ts"
|
|
@@ -276,7 +277,7 @@ export interface Service {
|
|
|
276
277
|
*/
|
|
277
278
|
readonly generateObject: <
|
|
278
279
|
ObjectEncoded extends Record<string, any>,
|
|
279
|
-
ObjectSchema extends Schema.
|
|
280
|
+
ObjectSchema extends Schema.Encoder<ObjectEncoded, unknown>,
|
|
280
281
|
Options extends NoExcessProperties<LanguageModel.GenerateObjectOptions<any, ObjectSchema>, Options>,
|
|
281
282
|
Tools extends Record<string, Tool.Any> = {}
|
|
282
283
|
>(options: Options & LanguageModel.GenerateObjectOptions<Tools, ObjectSchema>) => Effect.Effect<
|
|
@@ -325,7 +326,7 @@ const encodeHistoryJson = Schema.encodeUnknownEffect(Schema.fromJsonString(Promp
|
|
|
325
326
|
export const empty: Effect.Effect<Service> = Effect.gen(function*() {
|
|
326
327
|
const history = yield* Ref.make(Prompt.empty)
|
|
327
328
|
const services = yield* Effect.services<never>()
|
|
328
|
-
const semaphore = yield*
|
|
329
|
+
const semaphore = yield* Semaphore.make(1)
|
|
329
330
|
|
|
330
331
|
const provideContext = <A, E, R>(effect: Effect.Effect<A, E, R>): Effect.Effect<A, E, R> =>
|
|
331
332
|
Effect.updateServices(effect, (existing) => ServiceMap.merge(services, existing))
|
|
@@ -627,7 +628,7 @@ export declare namespace Persistence {
|
|
|
627
628
|
* the persistence store, a `ChatNotFoundError` will be returned.
|
|
628
629
|
*/
|
|
629
630
|
readonly get: (chatId: string, options?: {
|
|
630
|
-
readonly timeToLive?: Duration.
|
|
631
|
+
readonly timeToLive?: Duration.Input | undefined
|
|
631
632
|
}) => Effect.Effect<Persisted, ChatNotFoundError | PersistenceError>
|
|
632
633
|
|
|
633
634
|
/**
|
|
@@ -637,7 +638,7 @@ export declare namespace Persistence {
|
|
|
637
638
|
* returned.
|
|
638
639
|
*/
|
|
639
640
|
readonly getOrCreate: (chatId: string, options?: {
|
|
640
|
-
readonly timeToLive?: Duration.
|
|
641
|
+
readonly timeToLive?: Duration.Input | undefined
|
|
641
642
|
}) => Effect.Effect<Persisted, AiError.AiError | PersistenceError>
|
|
642
643
|
}
|
|
643
644
|
}
|
|
@@ -680,7 +681,7 @@ export const makePersisted = Effect.fnUntraced(function*(options: {
|
|
|
680
681
|
const store = yield* persistence.make(options.storeId)
|
|
681
682
|
|
|
682
683
|
const toPersisted = Effect.fnUntraced(
|
|
683
|
-
function*(chatId: string, chat: Service, ttl: Duration.
|
|
684
|
+
function*(chatId: string, chat: Service, ttl: Duration.Input | undefined) {
|
|
684
685
|
const idGenerator = yield* Effect.serviceOption(IdGenerator.IdGenerator).pipe(
|
|
685
686
|
Effect.map(Option.getOrElse(() => IdGenerator.defaultIdGenerator))
|
|
686
687
|
)
|
|
@@ -712,7 +713,7 @@ export const makePersisted = Effect.fnUntraced(function*(options: {
|
|
|
712
713
|
yield* Ref.set(chat.history, history)
|
|
713
714
|
// Export the chat history
|
|
714
715
|
const exported = yield* Effect.orDie(chat.export)
|
|
715
|
-
const timeToLive = Predicate.isNotUndefined(ttl) ? Duration.
|
|
716
|
+
const timeToLive = Predicate.isNotUndefined(ttl) ? Duration.fromInput(ttl) : undefined
|
|
716
717
|
// Save the chat to the backing store
|
|
717
718
|
yield* store.set(chatId, exported as object, timeToLive)
|
|
718
719
|
}
|
|
@@ -748,13 +749,13 @@ export const makePersisted = Effect.fnUntraced(function*(options: {
|
|
|
748
749
|
)
|
|
749
750
|
|
|
750
751
|
const createChat = Effect.fnUntraced(
|
|
751
|
-
function*(chatId: string, ttl: Duration.
|
|
752
|
+
function*(chatId: string, ttl: Duration.Input | undefined) {
|
|
752
753
|
// Create an empty chat
|
|
753
754
|
const chat = yield* empty
|
|
754
755
|
// Export the chat history
|
|
755
756
|
const history = yield* Effect.orDie(chat.export)
|
|
756
757
|
// Save the history for the newly created chat
|
|
757
|
-
const timeToLive = Predicate.isNotUndefined(ttl) ? Duration.
|
|
758
|
+
const timeToLive = Predicate.isNotUndefined(ttl) ? Duration.fromInput(ttl) : undefined
|
|
758
759
|
yield* store.set(chatId, history as object, timeToLive)
|
|
759
760
|
// Convert the chat to a persisted chat
|
|
760
761
|
return yield* toPersisted(chatId, chat, ttl)
|
|
@@ -762,7 +763,7 @@ export const makePersisted = Effect.fnUntraced(function*(options: {
|
|
|
762
763
|
)
|
|
763
764
|
|
|
764
765
|
const getChat = Effect.fnUntraced(
|
|
765
|
-
function*(chatId: string, ttl: Duration.
|
|
766
|
+
function*(chatId: string, ttl: Duration.Input | undefined) {
|
|
766
767
|
// Create an empty chat
|
|
767
768
|
const chat = yield* empty
|
|
768
769
|
// Attempt to retrieve the previous history from the store
|
|
@@ -783,7 +784,7 @@ export const makePersisted = Effect.fnUntraced(function*(options: {
|
|
|
783
784
|
|
|
784
785
|
const get = Effect.fnUntraced(
|
|
785
786
|
function*(chatId: string, options?: {
|
|
786
|
-
readonly timeToLive?: Duration.
|
|
787
|
+
readonly timeToLive?: Duration.Input | undefined
|
|
787
788
|
}) {
|
|
788
789
|
return yield* getChat(chatId, options?.timeToLive)
|
|
789
790
|
},
|
|
@@ -795,7 +796,7 @@ export const makePersisted = Effect.fnUntraced(function*(options: {
|
|
|
795
796
|
|
|
796
797
|
const getOrCreate = Effect.fnUntraced(
|
|
797
798
|
function*(chatId: string, options?: {
|
|
798
|
-
readonly timeToLive?: Duration.
|
|
799
|
+
readonly timeToLive?: Duration.Input | undefined
|
|
799
800
|
}) {
|
|
800
801
|
return yield* getChat(chatId, options?.timeToLive).pipe(
|
|
801
802
|
Effect.catchTag("ChatNotFoundError", () => createChat(chatId, options?.timeToLive))
|