effect 4.0.0-beta.5 → 4.0.0-beta.7
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/Config.d.ts +3 -3
- package/dist/Config.js +3 -3
- package/dist/Config.js.map +1 -1
- package/dist/Data.d.ts +3 -2
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +9 -8
- 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 +13 -239
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +1 -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.js.map +1 -1
- package/dist/FileSystem.js +2 -2
- package/dist/FileSystem.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.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/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/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 +1 -1
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +3 -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/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/Schedule.d.ts +22 -13
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +53 -25
- package/dist/Schedule.js.map +1 -1
- package/dist/Schema.d.ts +196 -46
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +385 -71
- 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 +5 -2
- 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 +8 -0
- package/dist/Types.d.ts.map +1 -1
- package/dist/index.d.ts +148 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +148 -5
- 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 +2 -2
- 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 +5 -5
- 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 +3 -3
- 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/Sse.d.ts +3 -3
- 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 +1 -1
- 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 +5 -5
- package/dist/unstable/http/Cookies.d.ts +2 -2
- 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/HttpClient.d.ts +4 -4
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.d.ts +11 -11
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +8 -1
- 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/Multipart.d.ts +2 -2
- package/dist/unstable/http/UrlParams.d.ts +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +2 -2
- package/dist/unstable/httpapi/HttpApiBuilder.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/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.js +4 -4
- 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 +1 -1
- 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 +3 -3
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +1 -1
- 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/index.d.ts +2 -2
- package/dist/unstable/reactivity/index.d.ts.map +1 -1
- package/dist/unstable/reactivity/index.js +2 -2
- 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/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/sql/SqlModel.d.ts +2 -2
- package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
- package/dist/unstable/sql/SqlModel.js +3 -3
- package/dist/unstable/sql/SqlModel.js.map +1 -1
- package/dist/unstable/sql/SqlSchema.d.ts +16 -5
- package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
- package/dist/unstable/sql/SqlSchema.js +17 -7
- 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 +1 -1
- 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 +1 -2
- package/src/Cache.ts +3 -3
- package/src/Cause.ts +1 -1
- package/src/Channel.ts +6 -4
- package/src/Config.ts +3 -3
- package/src/Data.ts +10 -9
- package/src/DateTime.ts +24 -164
- package/src/Duration.ts +15 -15
- package/src/Effect.ts +15 -261
- package/src/Encoding.ts +879 -0
- package/src/Equal.ts +2 -2
- package/src/FileSystem.ts +4 -4
- 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/Pipeable.ts +32 -1
- package/src/Pool.ts +13 -11
- package/src/PubSub.ts +10 -9
- package/src/Random.ts +5 -14
- package/src/RcMap.ts +5 -5
- package/src/RcRef.ts +1 -1
- package/src/Request.ts +3 -2
- package/src/RequestResolver.ts +9 -29
- package/src/Schedule.ts +261 -140
- package/src/Schema.ts +571 -109
- package/src/SchemaGetter.ts +12 -14
- package/src/SchemaRepresentation.ts +5 -2
- 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 +9 -0
- package/src/index.ts +151 -6
- package/src/internal/core.ts +10 -2
- package/src/internal/dateTime.ts +9 -30
- package/src/internal/effect.ts +24 -23
- 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/HttpClient.ts +4 -4
- package/src/unstable/http/HttpClientRequest.ts +15 -11
- package/src/unstable/http/HttpEffect.ts +17 -25
- package/src/unstable/http/HttpMethod.ts +16 -4
- package/src/unstable/http/Multipart.ts +2 -2
- package/src/unstable/http/UrlParams.ts +1 -1
- package/src/unstable/httpapi/HttpApiBuilder.ts +2 -2
- package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
- 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 +4 -4
- 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 +1 -1
- package/src/unstable/process/ChildProcessSpawner.ts +6 -0
- package/src/unstable/reactivity/Atom.ts +13 -13
- package/src/unstable/reactivity/AtomHttpApi.ts +3 -3
- package/src/unstable/reactivity/AtomRpc.ts +3 -3
- package/src/unstable/reactivity/index.ts +2 -2
- 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/socket/Socket.ts +7 -6
- package/src/unstable/sql/SqlModel.ts +5 -5
- package/src/unstable/sql/SqlSchema.ts +41 -25
- 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"
|
|
@@ -3403,24 +3404,24 @@ export const isSuccess: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect
|
|
|
3403
3404
|
/** @internal */
|
|
3404
3405
|
export const delay: {
|
|
3405
3406
|
(
|
|
3406
|
-
duration: Duration.
|
|
3407
|
+
duration: Duration.Input
|
|
3407
3408
|
): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
|
|
3408
3409
|
<A, E, R>(
|
|
3409
3410
|
self: Effect.Effect<A, E, R>,
|
|
3410
|
-
duration: Duration.
|
|
3411
|
+
duration: Duration.Input
|
|
3411
3412
|
): Effect.Effect<A, E, R>
|
|
3412
3413
|
} = dual(
|
|
3413
3414
|
2,
|
|
3414
3415
|
<A, E, R>(
|
|
3415
3416
|
self: Effect.Effect<A, E, R>,
|
|
3416
|
-
duration: Duration.
|
|
3417
|
+
duration: Duration.Input
|
|
3417
3418
|
): Effect.Effect<A, E, R> => andThen(sleep(duration), self)
|
|
3418
3419
|
)
|
|
3419
3420
|
|
|
3420
3421
|
/** @internal */
|
|
3421
3422
|
export const timeoutOrElse: {
|
|
3422
3423
|
<A2, E2, R2>(options: {
|
|
3423
|
-
readonly duration: Duration.
|
|
3424
|
+
readonly duration: Duration.Input
|
|
3424
3425
|
readonly onTimeout: LazyArg<Effect.Effect<A2, E2, R2>>
|
|
3425
3426
|
}): <A, E, R>(
|
|
3426
3427
|
self: Effect.Effect<A, E, R>
|
|
@@ -3428,7 +3429,7 @@ export const timeoutOrElse: {
|
|
|
3428
3429
|
<A, E, R, A2, E2, R2>(
|
|
3429
3430
|
self: Effect.Effect<A, E, R>,
|
|
3430
3431
|
options: {
|
|
3431
|
-
readonly duration: Duration.
|
|
3432
|
+
readonly duration: Duration.Input
|
|
3432
3433
|
readonly onTimeout: LazyArg<Effect.Effect<A2, E2, R2>>
|
|
3433
3434
|
}
|
|
3434
3435
|
): Effect.Effect<A | A2, E | E2, R | R2>
|
|
@@ -3437,7 +3438,7 @@ export const timeoutOrElse: {
|
|
|
3437
3438
|
<A, E, R, A2, E2, R2>(
|
|
3438
3439
|
self: Effect.Effect<A, E, R>,
|
|
3439
3440
|
options: {
|
|
3440
|
-
readonly duration: Duration.
|
|
3441
|
+
readonly duration: Duration.Input
|
|
3441
3442
|
readonly onTimeout: LazyArg<Effect.Effect<A2, E2, R2>>
|
|
3442
3443
|
}
|
|
3443
3444
|
): Effect.Effect<A | A2, E | E2, R | R2> =>
|
|
@@ -3450,19 +3451,19 @@ export const timeoutOrElse: {
|
|
|
3450
3451
|
/** @internal */
|
|
3451
3452
|
export const timeout: {
|
|
3452
3453
|
(
|
|
3453
|
-
duration: Duration.
|
|
3454
|
+
duration: Duration.Input
|
|
3454
3455
|
): <A, E, R>(
|
|
3455
3456
|
self: Effect.Effect<A, E, R>
|
|
3456
3457
|
) => Effect.Effect<A, E | Cause.TimeoutError, R>
|
|
3457
3458
|
<A, E, R>(
|
|
3458
3459
|
self: Effect.Effect<A, E, R>,
|
|
3459
|
-
duration: Duration.
|
|
3460
|
+
duration: Duration.Input
|
|
3460
3461
|
): Effect.Effect<A, E | Cause.TimeoutError, R>
|
|
3461
3462
|
} = dual(
|
|
3462
3463
|
2,
|
|
3463
3464
|
<A, E, R>(
|
|
3464
3465
|
self: Effect.Effect<A, E, R>,
|
|
3465
|
-
duration: Duration.
|
|
3466
|
+
duration: Duration.Input
|
|
3466
3467
|
): Effect.Effect<A, E | TimeoutError, R> =>
|
|
3467
3468
|
timeoutOrElse(self, {
|
|
3468
3469
|
duration,
|
|
@@ -3473,19 +3474,19 @@ export const timeout: {
|
|
|
3473
3474
|
/** @internal */
|
|
3474
3475
|
export const timeoutOption: {
|
|
3475
3476
|
(
|
|
3476
|
-
duration: Duration.
|
|
3477
|
+
duration: Duration.Input
|
|
3477
3478
|
): <A, E, R>(
|
|
3478
3479
|
self: Effect.Effect<A, E, R>
|
|
3479
3480
|
) => Effect.Effect<Option.Option<A>, E, R>
|
|
3480
3481
|
<A, E, R>(
|
|
3481
3482
|
self: Effect.Effect<A, E, R>,
|
|
3482
|
-
duration: Duration.
|
|
3483
|
+
duration: Duration.Input
|
|
3483
3484
|
): Effect.Effect<Option.Option<A>, E, R>
|
|
3484
3485
|
} = dual(
|
|
3485
3486
|
2,
|
|
3486
3487
|
<A, E, R>(
|
|
3487
3488
|
self: Effect.Effect<A, E, R>,
|
|
3488
|
-
duration: Duration.
|
|
3489
|
+
duration: Duration.Input
|
|
3489
3490
|
): Effect.Effect<Option.Option<A>, E, R> =>
|
|
3490
3491
|
raceFirst(
|
|
3491
3492
|
asSome(self),
|
|
@@ -3873,19 +3874,19 @@ export const acquireUseRelease = <Resource, E, R, A, E2, R2, E3, R3>(
|
|
|
3873
3874
|
|
|
3874
3875
|
/** @internal */
|
|
3875
3876
|
export const cachedInvalidateWithTTL: {
|
|
3876
|
-
(timeToLive: Duration.
|
|
3877
|
+
(timeToLive: Duration.Input): <A, E, R>(
|
|
3877
3878
|
self: Effect.Effect<A, E, R>
|
|
3878
3879
|
) => Effect.Effect<[Effect.Effect<A, E, R>, Effect.Effect<void>]>
|
|
3879
3880
|
<A, E, R>(
|
|
3880
3881
|
self: Effect.Effect<A, E, R>,
|
|
3881
|
-
timeToLive: Duration.
|
|
3882
|
+
timeToLive: Duration.Input
|
|
3882
3883
|
): Effect.Effect<[Effect.Effect<A, E, R>, Effect.Effect<void>]>
|
|
3883
3884
|
} = dual(2, <A, E, R>(
|
|
3884
3885
|
self: Effect.Effect<A, E, R>,
|
|
3885
|
-
ttl: Duration.
|
|
3886
|
+
ttl: Duration.Input
|
|
3886
3887
|
): Effect.Effect<[Effect.Effect<A, E, R>, Effect.Effect<void>]> =>
|
|
3887
3888
|
sync(() => {
|
|
3888
|
-
const ttlMillis = Duration.toMillis(Duration.
|
|
3889
|
+
const ttlMillis = Duration.toMillis(Duration.fromInputUnsafe(ttl))
|
|
3889
3890
|
const isFinite = Number.isFinite(ttlMillis)
|
|
3890
3891
|
const latch = makeLatchUnsafe(false)
|
|
3891
3892
|
let expiresAt = 0
|
|
@@ -3918,17 +3919,17 @@ export const cachedInvalidateWithTTL: {
|
|
|
3918
3919
|
/** @internal */
|
|
3919
3920
|
export const cachedWithTTL: {
|
|
3920
3921
|
(
|
|
3921
|
-
timeToLive: Duration.
|
|
3922
|
+
timeToLive: Duration.Input
|
|
3922
3923
|
): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<Effect.Effect<A, E, R>>
|
|
3923
3924
|
<A, E, R>(
|
|
3924
3925
|
self: Effect.Effect<A, E, R>,
|
|
3925
|
-
timeToLive: Duration.
|
|
3926
|
+
timeToLive: Duration.Input
|
|
3926
3927
|
): Effect.Effect<Effect.Effect<A, E, R>>
|
|
3927
3928
|
} = dual(
|
|
3928
3929
|
2,
|
|
3929
3930
|
<A, E, R>(
|
|
3930
3931
|
self: Effect.Effect<A, E, R>,
|
|
3931
|
-
timeToLive: Duration.
|
|
3932
|
+
timeToLive: Duration.Input
|
|
3932
3933
|
): Effect.Effect<Effect.Effect<A, E, R>> => map(cachedInvalidateWithTTL(self, timeToLive), (tuple) => tuple[0])
|
|
3933
3934
|
)
|
|
3934
3935
|
|
|
@@ -4854,7 +4855,7 @@ export const makeSemaphore = (permits: number) => sync(() => makeSemaphoreUnsafe
|
|
|
4854
4855
|
const succeedTrue = succeed(true)
|
|
4855
4856
|
const succeedFalse = succeed(false)
|
|
4856
4857
|
|
|
4857
|
-
class Latch implements
|
|
4858
|
+
class Latch implements _Latch.Latch {
|
|
4858
4859
|
waiters: Array<(_: Effect.Effect<void>) => void> = []
|
|
4859
4860
|
scheduled = false
|
|
4860
4861
|
private isOpen: boolean
|
|
@@ -4914,7 +4915,7 @@ class Latch implements Effect.Latch {
|
|
|
4914
4915
|
}
|
|
4915
4916
|
|
|
4916
4917
|
/** @internal */
|
|
4917
|
-
export const makeLatchUnsafe = (open?: boolean | undefined):
|
|
4918
|
+
export const makeLatchUnsafe = (open?: boolean | undefined): _Latch.Latch => new Latch(open ?? false)
|
|
4918
4919
|
|
|
4919
4920
|
/** @internal */
|
|
4920
4921
|
export const makeLatch = (open?: boolean | undefined) => sync(() => makeLatchUnsafe(open))
|
|
@@ -5344,8 +5345,8 @@ export const clockWith = <A, E, R>(f: (clock: Clock.Clock) => Effect.Effect<A, E
|
|
|
5344
5345
|
withFiber((fiber) => f(fiber.getRef(ClockRef)))
|
|
5345
5346
|
|
|
5346
5347
|
/** @internal */
|
|
5347
|
-
export const sleep = (duration: Duration.
|
|
5348
|
-
clockWith((clock) => clock.sleep(Duration.
|
|
5348
|
+
export const sleep = (duration: Duration.Input): Effect.Effect<void> =>
|
|
5349
|
+
clockWith((clock) => clock.sleep(Duration.fromInputUnsafe(duration)))
|
|
5349
5350
|
|
|
5350
5351
|
/** @internal */
|
|
5351
5352
|
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))
|
|
@@ -135,7 +135,7 @@ export interface Service {
|
|
|
135
135
|
*/
|
|
136
136
|
readonly generateObject: <
|
|
137
137
|
ObjectEncoded extends Record<string, any>,
|
|
138
|
-
StructuredOutputSchema extends Schema.
|
|
138
|
+
StructuredOutputSchema extends Schema.Encoder<ObjectEncoded, unknown>,
|
|
139
139
|
Options extends NoExcessProperties<
|
|
140
140
|
GenerateObjectOptions<any, StructuredOutputSchema>,
|
|
141
141
|
Options
|
|
@@ -728,7 +728,7 @@ export const make: (params: ConstructorParams) => Effect.Effect<Service> = Effec
|
|
|
728
728
|
|
|
729
729
|
const generateObject = <
|
|
730
730
|
ObjectEncoded extends Record<string, any>,
|
|
731
|
-
StructuredOutputSchema extends Schema.
|
|
731
|
+
StructuredOutputSchema extends Schema.Encoder<ObjectEncoded, unknown>,
|
|
732
732
|
Options extends NoExcessProperties<
|
|
733
733
|
GenerateObjectOptions<any, StructuredOutputSchema>,
|
|
734
734
|
Options
|
|
@@ -1359,7 +1359,7 @@ export const generateText = <
|
|
|
1359
1359
|
*/
|
|
1360
1360
|
export const generateObject = <
|
|
1361
1361
|
ObjectEncoded extends Record<string, any>,
|
|
1362
|
-
StructuredOutputSchema extends Schema.
|
|
1362
|
+
StructuredOutputSchema extends Schema.Encoder<ObjectEncoded, unknown>,
|
|
1363
1363
|
Options extends NoExcessProperties<
|
|
1364
1364
|
GenerateObjectOptions<any, StructuredOutputSchema>,
|
|
1365
1365
|
Options
|
|
@@ -992,14 +992,14 @@ export const prompt = <
|
|
|
992
992
|
* @since 4.0.0
|
|
993
993
|
* @category elicitation
|
|
994
994
|
*/
|
|
995
|
-
export const elicit: <S extends Schema.
|
|
995
|
+
export const elicit: <S extends Schema.Encoder<Record<string, unknown>, unknown>>(options: {
|
|
996
996
|
readonly message: string
|
|
997
997
|
readonly schema: S
|
|
998
998
|
}) => Effect.Effect<
|
|
999
999
|
S["Type"],
|
|
1000
1000
|
ElicitationDeclined,
|
|
1001
1001
|
McpServerClient | S["DecodingServices"]
|
|
1002
|
-
> = Effect.fnUntraced(function*<S extends Schema.
|
|
1002
|
+
> = Effect.fnUntraced(function*<S extends Schema.Encoder<Record<string, unknown>, unknown>>(options: {
|
|
1003
1003
|
readonly message: string
|
|
1004
1004
|
readonly schema: S
|
|
1005
1005
|
}) {
|