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/Stream.ts
CHANGED
|
@@ -20,6 +20,7 @@ import * as internalExecutionPlan from "./internal/executionPlan.ts"
|
|
|
20
20
|
import * as internal from "./internal/stream.ts"
|
|
21
21
|
import { addSpanStackTrace } from "./internal/tracer.ts"
|
|
22
22
|
import * as Iterable from "./Iterable.ts"
|
|
23
|
+
import * as Latch from "./Latch.ts"
|
|
23
24
|
import type * as Layer from "./Layer.ts"
|
|
24
25
|
import type { LogLevel } from "./LogLevel.ts"
|
|
25
26
|
import * as MutableHashMap from "./MutableHashMap.ts"
|
|
@@ -471,7 +472,7 @@ export const fromEffectSchedule = <A, E, R, X, AS extends A, ES, RS>(
|
|
|
471
472
|
* @since 2.0.0
|
|
472
473
|
* @category Constructors
|
|
473
474
|
*/
|
|
474
|
-
export const tick = (interval: Duration.
|
|
475
|
+
export const tick = (interval: Duration.Input): Stream<void> =>
|
|
475
476
|
fromPull(Effect.sync(() => {
|
|
476
477
|
let first = true
|
|
477
478
|
const effect = Effect.succeed(Arr.of<void>(undefined))
|
|
@@ -2648,8 +2649,8 @@ export const tapSink: {
|
|
|
2648
2649
|
transformPullBracket(
|
|
2649
2650
|
self,
|
|
2650
2651
|
Effect.fnUntraced(function*(pull, _, scope) {
|
|
2651
|
-
const upstreamLatch =
|
|
2652
|
-
const sinkLatch =
|
|
2652
|
+
const upstreamLatch = Latch.makeUnsafe()
|
|
2653
|
+
const sinkLatch = Latch.makeUnsafe()
|
|
2653
2654
|
let chunk: Arr.NonEmptyReadonlyArray<A> | undefined = undefined
|
|
2654
2655
|
let causeSink: Cause.Cause<E2> | undefined = undefined
|
|
2655
2656
|
let sinkDone = false
|
|
@@ -3316,7 +3317,7 @@ export const timeout: {
|
|
|
3316
3317
|
* @since 2.0.0
|
|
3317
3318
|
* @category Rate Limiting
|
|
3318
3319
|
*/
|
|
3319
|
-
(duration: Duration.
|
|
3320
|
+
(duration: Duration.Input): <A, E, R>(self: Stream<A, E, R>) => Stream<A, E, R>
|
|
3320
3321
|
/**
|
|
3321
3322
|
* Ends the stream if it does not produce a value within the specified duration.
|
|
3322
3323
|
*
|
|
@@ -3340,10 +3341,10 @@ export const timeout: {
|
|
|
3340
3341
|
* @since 2.0.0
|
|
3341
3342
|
* @category Rate Limiting
|
|
3342
3343
|
*/
|
|
3343
|
-
<A, E, R>(self: Stream<A, E, R>, duration: Duration.
|
|
3344
|
+
<A, E, R>(self: Stream<A, E, R>, duration: Duration.Input): Stream<A, E, R>
|
|
3344
3345
|
} = dual(
|
|
3345
3346
|
2,
|
|
3346
|
-
<A, E, R>(self: Stream<A, E, R>, duration: Duration.
|
|
3347
|
+
<A, E, R>(self: Stream<A, E, R>, duration: Duration.Input): Stream<A, E, R> =>
|
|
3347
3348
|
transformPull(self, (pull, _scope) =>
|
|
3348
3349
|
Effect.succeed(Effect.timeoutOrElse(pull, {
|
|
3349
3350
|
duration,
|
|
@@ -5341,7 +5342,7 @@ export const zipLatestAll = <T extends ReadonlyArray<Stream<any, any, any>>>(
|
|
|
5341
5342
|
fromChannel(Channel.suspend(() => {
|
|
5342
5343
|
const latest: Array<any> = []
|
|
5343
5344
|
const emitted = new Set<number>()
|
|
5344
|
-
const readyLatch =
|
|
5345
|
+
const readyLatch = Latch.makeUnsafe()
|
|
5345
5346
|
return Channel.mergeAll(
|
|
5346
5347
|
Channel.fromArray(
|
|
5347
5348
|
streams.map((s, i) =>
|
|
@@ -12174,7 +12175,7 @@ export const debounce: {
|
|
|
12174
12175
|
* @since 2.0.0
|
|
12175
12176
|
* @category Rate Limiting
|
|
12176
12177
|
*/
|
|
12177
|
-
(duration: Duration.
|
|
12178
|
+
(duration: Duration.Input): <A, E, R>(self: Stream<A, E, R>) => Stream<A, E, R>
|
|
12178
12179
|
/**
|
|
12179
12180
|
* Drops earlier elements within the debounce window and emits only the latest element after the pause.
|
|
12180
12181
|
*
|
|
@@ -12198,21 +12199,21 @@ export const debounce: {
|
|
|
12198
12199
|
* @since 2.0.0
|
|
12199
12200
|
* @category Rate Limiting
|
|
12200
12201
|
*/
|
|
12201
|
-
<A, E, R>(self: Stream<A, E, R>, duration: Duration.
|
|
12202
|
+
<A, E, R>(self: Stream<A, E, R>, duration: Duration.Input): Stream<A, E, R>
|
|
12202
12203
|
} = dual(
|
|
12203
12204
|
2,
|
|
12204
|
-
<A, E, R>(self: Stream<A, E, R>, duration: Duration.
|
|
12205
|
+
<A, E, R>(self: Stream<A, E, R>, duration: Duration.Input): Stream<A, E, R> =>
|
|
12205
12206
|
transformPull(
|
|
12206
12207
|
self,
|
|
12207
12208
|
Effect.fnUntraced(function*(pull, scope) {
|
|
12208
12209
|
const clock = yield* Clock
|
|
12209
|
-
const durationMs = Duration.toMillis(Duration.
|
|
12210
|
+
const durationMs = Duration.toMillis(Duration.fromInputUnsafe(duration))
|
|
12210
12211
|
let lastArr: Arr.NonEmptyReadonlyArray<A> | undefined
|
|
12211
12212
|
let cause: Cause.Cause<Cause.Done | E> | undefined
|
|
12212
12213
|
let emitAtMs = Infinity
|
|
12213
|
-
const pullLatch =
|
|
12214
|
-
const emitLatch =
|
|
12215
|
-
const endLatch =
|
|
12214
|
+
const pullLatch = Latch.makeUnsafe()
|
|
12215
|
+
const emitLatch = Latch.makeUnsafe()
|
|
12216
|
+
const endLatch = Latch.makeUnsafe()
|
|
12216
12217
|
|
|
12217
12218
|
yield* pull.pipe(
|
|
12218
12219
|
pullLatch.whenOpen,
|
|
@@ -12346,7 +12347,7 @@ export const throttleEffect: {
|
|
|
12346
12347
|
options: {
|
|
12347
12348
|
readonly cost: (arr: Arr.NonEmptyReadonlyArray<A>) => Effect.Effect<number, E2, R2>
|
|
12348
12349
|
readonly units: number
|
|
12349
|
-
readonly duration: Duration.
|
|
12350
|
+
readonly duration: Duration.Input
|
|
12350
12351
|
readonly burst?: number | undefined
|
|
12351
12352
|
readonly strategy?: "enforce" | "shape" | undefined
|
|
12352
12353
|
}
|
|
@@ -12392,7 +12393,7 @@ export const throttleEffect: {
|
|
|
12392
12393
|
options: {
|
|
12393
12394
|
readonly cost: (arr: Arr.NonEmptyReadonlyArray<A>) => Effect.Effect<number, E2, R2>
|
|
12394
12395
|
readonly units: number
|
|
12395
|
-
readonly duration: Duration.
|
|
12396
|
+
readonly duration: Duration.Input
|
|
12396
12397
|
readonly burst?: number | undefined
|
|
12397
12398
|
readonly strategy?: "enforce" | "shape" | undefined
|
|
12398
12399
|
}
|
|
@@ -12404,7 +12405,7 @@ export const throttleEffect: {
|
|
|
12404
12405
|
options: {
|
|
12405
12406
|
readonly cost: (arr: Arr.NonEmptyReadonlyArray<A>) => Effect.Effect<number, E2, R2>
|
|
12406
12407
|
readonly units: number
|
|
12407
|
-
readonly duration: Duration.
|
|
12408
|
+
readonly duration: Duration.Input
|
|
12408
12409
|
readonly burst?: number | undefined
|
|
12409
12410
|
readonly strategy?: "enforce" | "shape" | undefined
|
|
12410
12411
|
}
|
|
@@ -12421,12 +12422,12 @@ const throttleEnforceEffect = <A, E, R, E2, R2>(
|
|
|
12421
12422
|
self: Stream<A, E, R>,
|
|
12422
12423
|
cost: (arr: Arr.NonEmptyReadonlyArray<A>) => Effect.Effect<number, E2, R2>,
|
|
12423
12424
|
units: number,
|
|
12424
|
-
duration: Duration.
|
|
12425
|
+
duration: Duration.Input,
|
|
12425
12426
|
burst: number
|
|
12426
12427
|
): Stream<A, E | E2, R | R2> =>
|
|
12427
12428
|
transformPull(self, (pull) =>
|
|
12428
12429
|
Effect.clockWith((clock) => {
|
|
12429
|
-
const durationMs = Duration.toMillis(Duration.
|
|
12430
|
+
const durationMs = Duration.toMillis(Duration.fromInputUnsafe(duration))
|
|
12430
12431
|
const max = units + burst < 0 ? Number.POSITIVE_INFINITY : units + burst
|
|
12431
12432
|
let tokens = units
|
|
12432
12433
|
let timestampMs = clock.currentTimeMillisUnsafe()
|
|
@@ -12457,12 +12458,12 @@ const throttleShapeEffect = <A, E, R, E2, R2>(
|
|
|
12457
12458
|
self: Stream<A, E, R>,
|
|
12458
12459
|
cost: (arr: Arr.NonEmptyReadonlyArray<A>) => Effect.Effect<number, E2, R2>,
|
|
12459
12460
|
units: number,
|
|
12460
|
-
duration: Duration.
|
|
12461
|
+
duration: Duration.Input,
|
|
12461
12462
|
burst: number
|
|
12462
12463
|
): Stream<A, E | E2, R | R2> =>
|
|
12463
12464
|
transformPull(self, (pull) =>
|
|
12464
12465
|
Effect.clockWith((clock) => {
|
|
12465
|
-
const durationMs = Duration.toMillis(Duration.
|
|
12466
|
+
const durationMs = Duration.toMillis(Duration.fromInputUnsafe(duration))
|
|
12466
12467
|
const max = units + burst < 0 ? Number.POSITIVE_INFINITY : units + burst
|
|
12467
12468
|
let tokens = units
|
|
12468
12469
|
let timestampMs = clock.currentTimeMillisUnsafe()
|
|
@@ -12575,7 +12576,7 @@ export const throttle: {
|
|
|
12575
12576
|
options: {
|
|
12576
12577
|
readonly cost: (arr: Arr.NonEmptyReadonlyArray<A>) => number
|
|
12577
12578
|
readonly units: number
|
|
12578
|
-
readonly duration: Duration.
|
|
12579
|
+
readonly duration: Duration.Input
|
|
12579
12580
|
readonly burst?: number | undefined
|
|
12580
12581
|
readonly strategy?: "enforce" | "shape" | undefined
|
|
12581
12582
|
}
|
|
@@ -12620,7 +12621,7 @@ export const throttle: {
|
|
|
12620
12621
|
options: {
|
|
12621
12622
|
readonly cost: (arr: Arr.NonEmptyReadonlyArray<A>) => number
|
|
12622
12623
|
readonly units: number
|
|
12623
|
-
readonly duration: Duration.
|
|
12624
|
+
readonly duration: Duration.Input
|
|
12624
12625
|
readonly burst?: number | undefined
|
|
12625
12626
|
readonly strategy?: "enforce" | "shape" | undefined
|
|
12626
12627
|
}
|
|
@@ -12632,7 +12633,7 @@ export const throttle: {
|
|
|
12632
12633
|
options: {
|
|
12633
12634
|
readonly cost: (arr: Arr.NonEmptyReadonlyArray<A>) => number
|
|
12634
12635
|
readonly units: number
|
|
12635
|
-
readonly duration: Duration.
|
|
12636
|
+
readonly duration: Duration.Input
|
|
12636
12637
|
readonly burst?: number | undefined
|
|
12637
12638
|
readonly strategy?: "enforce" | "shape" | undefined
|
|
12638
12639
|
}
|
|
@@ -12770,7 +12771,7 @@ export const groupedWithin: {
|
|
|
12770
12771
|
* @since 2.0.0
|
|
12771
12772
|
* @category Grouping
|
|
12772
12773
|
*/
|
|
12773
|
-
(chunkSize: number, duration: Duration.
|
|
12774
|
+
(chunkSize: number, duration: Duration.Input): <A, E, R>(self: Stream<A, E, R>) => Stream<Array<A>, E, R>
|
|
12774
12775
|
/**
|
|
12775
12776
|
* Partitions the stream into arrays, emitting when the chunk size is reached
|
|
12776
12777
|
* or the duration passes.
|
|
@@ -12794,11 +12795,11 @@ export const groupedWithin: {
|
|
|
12794
12795
|
* @since 2.0.0
|
|
12795
12796
|
* @category Grouping
|
|
12796
12797
|
*/
|
|
12797
|
-
<A, E, R>(self: Stream<A, E, R>, chunkSize: number, duration: Duration.
|
|
12798
|
+
<A, E, R>(self: Stream<A, E, R>, chunkSize: number, duration: Duration.Input): Stream<Array<A>, E, R>
|
|
12798
12799
|
} = dual(3, <A, E, R>(
|
|
12799
12800
|
self: Stream<A, E, R>,
|
|
12800
12801
|
chunkSize: number,
|
|
12801
|
-
duration: Duration.
|
|
12802
|
+
duration: Duration.Input
|
|
12802
12803
|
): Stream<Array<A>, E, R> =>
|
|
12803
12804
|
aggregateWithin(
|
|
12804
12805
|
self,
|
|
@@ -12873,7 +12874,7 @@ export const groupBy: {
|
|
|
12873
12874
|
f: (a: NoInfer<A>) => Effect.Effect<readonly [K, V], E2, R2>,
|
|
12874
12875
|
options?: {
|
|
12875
12876
|
readonly bufferSize?: number | undefined
|
|
12876
|
-
readonly idleTimeToLive?: Duration.
|
|
12877
|
+
readonly idleTimeToLive?: Duration.Input | undefined
|
|
12877
12878
|
}
|
|
12878
12879
|
): <E, R>(self: Stream<A, E, R>) => Stream<readonly [K, Stream<V>], E | E2, R | R2>
|
|
12879
12880
|
/**
|
|
@@ -12912,7 +12913,7 @@ export const groupBy: {
|
|
|
12912
12913
|
f: (a: NoInfer<A>) => Effect.Effect<readonly [K, V], E2, R2>,
|
|
12913
12914
|
options?: {
|
|
12914
12915
|
readonly bufferSize?: number | undefined
|
|
12915
|
-
readonly idleTimeToLive?: Duration.
|
|
12916
|
+
readonly idleTimeToLive?: Duration.Input | undefined
|
|
12916
12917
|
}
|
|
12917
12918
|
): Stream<readonly [K, Stream<V>], E | E2, R | R2>
|
|
12918
12919
|
} = dual((args) => isStream(args[0]), <A, E, R, K, V, E2, R2>(
|
|
@@ -12920,7 +12921,7 @@ export const groupBy: {
|
|
|
12920
12921
|
f: (a: NoInfer<A>) => Effect.Effect<readonly [K, V], E2, R2>,
|
|
12921
12922
|
options?: {
|
|
12922
12923
|
readonly bufferSize?: number | undefined
|
|
12923
|
-
readonly idleTimeToLive?: Duration.
|
|
12924
|
+
readonly idleTimeToLive?: Duration.Input | undefined
|
|
12924
12925
|
}
|
|
12925
12926
|
): Stream<readonly [K, Stream<V>], E | E2, R | R2> =>
|
|
12926
12927
|
groupByImpl(
|
|
@@ -13002,7 +13003,7 @@ export const groupByKey: {
|
|
|
13002
13003
|
f: (a: NoInfer<A>) => K,
|
|
13003
13004
|
options?: {
|
|
13004
13005
|
readonly bufferSize?: number | undefined
|
|
13005
|
-
readonly idleTimeToLive?: Duration.
|
|
13006
|
+
readonly idleTimeToLive?: Duration.Input | undefined
|
|
13006
13007
|
}
|
|
13007
13008
|
): <E, R>(self: Stream<A, E, R>) => Stream<readonly [K, Stream<A>], E, R>
|
|
13008
13009
|
/**
|
|
@@ -13039,7 +13040,7 @@ export const groupByKey: {
|
|
|
13039
13040
|
f: (a: NoInfer<A>) => K,
|
|
13040
13041
|
options?: {
|
|
13041
13042
|
readonly bufferSize?: number | undefined
|
|
13042
|
-
readonly idleTimeToLive?: Duration.
|
|
13043
|
+
readonly idleTimeToLive?: Duration.Input | undefined
|
|
13043
13044
|
}
|
|
13044
13045
|
): Stream<readonly [K, Stream<A>], E, R>
|
|
13045
13046
|
} = dual((args) => isStream(args[0]), <A, E, R, K>(
|
|
@@ -13047,7 +13048,7 @@ export const groupByKey: {
|
|
|
13047
13048
|
f: (a: NoInfer<A>) => K,
|
|
13048
13049
|
options?: {
|
|
13049
13050
|
readonly bufferSize?: number | undefined
|
|
13050
|
-
readonly idleTimeToLive?: Duration.
|
|
13051
|
+
readonly idleTimeToLive?: Duration.Input | undefined
|
|
13051
13052
|
}
|
|
13052
13053
|
): Stream<readonly [K, Stream<A>], E, R> =>
|
|
13053
13054
|
suspend(() => {
|
|
@@ -13145,7 +13146,7 @@ const groupByImpl = <A, E, R, K, V, E2, R2>(
|
|
|
13145
13146
|
) => Effect.Effect<void, E2, R2>,
|
|
13146
13147
|
options?: {
|
|
13147
13148
|
readonly bufferSize?: number | undefined
|
|
13148
|
-
readonly idleTimeToLive?: Duration.
|
|
13149
|
+
readonly idleTimeToLive?: Duration.Input | undefined
|
|
13149
13150
|
}
|
|
13150
13151
|
): Stream<readonly [K, Stream<V>], E | E2, R | R2> =>
|
|
13151
13152
|
transformPullBracket(
|
|
@@ -13537,7 +13538,7 @@ export const aggregateWithin: {
|
|
|
13537
13538
|
fromChannel(Channel.fromTransformBracket(Effect.fnUntraced(function*(_upstream, _, scope) {
|
|
13538
13539
|
const pull = yield* Channel.toPullScoped(self.channel, _)
|
|
13539
13540
|
|
|
13540
|
-
const pullLatch =
|
|
13541
|
+
const pullLatch = Latch.makeUnsafe(false)
|
|
13541
13542
|
const scheduleStep = Symbol()
|
|
13542
13543
|
const buffer = yield* Queue.make</**
|
|
13543
13544
|
* Aggregates elements with a sink, emitting each result when the sink completes or the schedule triggers.
|
|
@@ -13879,12 +13880,12 @@ export const share: {
|
|
|
13879
13880
|
options: {
|
|
13880
13881
|
readonly capacity: "unbounded"
|
|
13881
13882
|
readonly replay?: number | undefined
|
|
13882
|
-
readonly idleTimeToLive?: Duration.
|
|
13883
|
+
readonly idleTimeToLive?: Duration.Input | undefined
|
|
13883
13884
|
} | {
|
|
13884
13885
|
readonly capacity: number
|
|
13885
13886
|
readonly strategy?: "sliding" | "dropping" | "suspend" | undefined
|
|
13886
13887
|
readonly replay?: number | undefined
|
|
13887
|
-
readonly idleTimeToLive?: Duration.
|
|
13888
|
+
readonly idleTimeToLive?: Duration.Input | undefined
|
|
13888
13889
|
}
|
|
13889
13890
|
): <A, E, R>(self: Stream<A, E, R>) => Effect.Effect<Stream<A, E>, never, Scope.Scope | R>
|
|
13890
13891
|
/**
|
|
@@ -13923,12 +13924,12 @@ export const share: {
|
|
|
13923
13924
|
options: {
|
|
13924
13925
|
readonly capacity: "unbounded"
|
|
13925
13926
|
readonly replay?: number | undefined
|
|
13926
|
-
readonly idleTimeToLive?: Duration.
|
|
13927
|
+
readonly idleTimeToLive?: Duration.Input | undefined
|
|
13927
13928
|
} | {
|
|
13928
13929
|
readonly capacity: number
|
|
13929
13930
|
readonly strategy?: "sliding" | "dropping" | "suspend" | undefined
|
|
13930
13931
|
readonly replay?: number | undefined
|
|
13931
|
-
readonly idleTimeToLive?: Duration.
|
|
13932
|
+
readonly idleTimeToLive?: Duration.Input | undefined
|
|
13932
13933
|
}
|
|
13933
13934
|
): Effect.Effect<Stream<A, E>, never, Scope.Scope | R>
|
|
13934
13935
|
} = dual(2, <A, E, R>(
|
|
@@ -13936,12 +13937,12 @@ export const share: {
|
|
|
13936
13937
|
options: {
|
|
13937
13938
|
readonly capacity: "unbounded"
|
|
13938
13939
|
readonly replay?: number | undefined
|
|
13939
|
-
readonly idleTimeToLive?: Duration.
|
|
13940
|
+
readonly idleTimeToLive?: Duration.Input | undefined
|
|
13940
13941
|
} | {
|
|
13941
13942
|
readonly capacity: number
|
|
13942
13943
|
readonly strategy?: "sliding" | "dropping" | "suspend" | undefined
|
|
13943
13944
|
readonly replay?: number | undefined
|
|
13944
|
-
readonly idleTimeToLive?: Duration.
|
|
13945
|
+
readonly idleTimeToLive?: Duration.Input | undefined
|
|
13945
13946
|
}
|
|
13946
13947
|
): Effect.Effect<Stream<A, E>, never, Scope.Scope | R> =>
|
|
13947
13948
|
Effect.map(
|
|
@@ -17747,7 +17748,7 @@ export const toReadableStreamWith = dual<
|
|
|
17747
17748
|
): ReadableStream<A> => {
|
|
17748
17749
|
let currentResolve: (() => void) | undefined = undefined
|
|
17749
17750
|
let fiber: Fiber.Fiber<void, E> | undefined = undefined
|
|
17750
|
-
const latch =
|
|
17751
|
+
const latch = Latch.makeUnsafe(false)
|
|
17751
17752
|
|
|
17752
17753
|
return new ReadableStream<A>({
|
|
17753
17754
|
start(controller) {
|
package/src/Struct.ts
CHANGED
|
@@ -1513,3 +1513,29 @@ export function makeReducer<A>(
|
|
|
1513
1513
|
}
|
|
1514
1514
|
return Reducer.make(combine, initialValue)
|
|
1515
1515
|
}
|
|
1516
|
+
|
|
1517
|
+
/**
|
|
1518
|
+
* Creates a record with the given keys and value.
|
|
1519
|
+
*
|
|
1520
|
+
* **Example** (Creating a record)
|
|
1521
|
+
*
|
|
1522
|
+
* ```ts
|
|
1523
|
+
* import { Struct } from "effect"
|
|
1524
|
+
*
|
|
1525
|
+
* const record = Struct.Record(["a", "b"], "value")
|
|
1526
|
+
* console.log(record) // { a: "value", b: "value" }
|
|
1527
|
+
* ```
|
|
1528
|
+
*
|
|
1529
|
+
* @category Constructors
|
|
1530
|
+
* @since 4.0.0
|
|
1531
|
+
*/
|
|
1532
|
+
export function Record<const Keys extends ReadonlyArray<string | symbol>, Value>(
|
|
1533
|
+
keys: Keys,
|
|
1534
|
+
value: Value
|
|
1535
|
+
): Record<Keys[number], Value> {
|
|
1536
|
+
const out: any = {}
|
|
1537
|
+
for (const key of keys) {
|
|
1538
|
+
out[key] = value
|
|
1539
|
+
}
|
|
1540
|
+
return out
|
|
1541
|
+
}
|
package/src/SubscriptionRef.ts
CHANGED
|
@@ -8,6 +8,7 @@ import * as Option from "./Option.ts"
|
|
|
8
8
|
import type { Pipeable } from "./Pipeable.ts"
|
|
9
9
|
import * as PubSub from "./PubSub.ts"
|
|
10
10
|
import * as Ref from "./Ref.ts"
|
|
11
|
+
import * as Semaphore from "./Semaphore.ts"
|
|
11
12
|
import * as Stream from "./Stream.ts"
|
|
12
13
|
import type { Invariant } from "./Types.ts"
|
|
13
14
|
|
|
@@ -19,7 +20,7 @@ const TypeId = "~effect/SubscriptionRef"
|
|
|
19
20
|
*/
|
|
20
21
|
export interface SubscriptionRef<in out A> extends SubscriptionRef.Variance<A>, Pipeable {
|
|
21
22
|
readonly backing: Ref.Ref<A>
|
|
22
|
-
readonly semaphore:
|
|
23
|
+
readonly semaphore: Semaphore.Semaphore
|
|
23
24
|
readonly pubsub: PubSub.PubSub<A>
|
|
24
25
|
}
|
|
25
26
|
|
|
@@ -70,7 +71,7 @@ const Proto = {
|
|
|
70
71
|
export const make = <A>(value: A): Effect.Effect<SubscriptionRef<A>> =>
|
|
71
72
|
Effect.map(PubSub.unbounded<A>({ replay: 1 }), (pubsub) => {
|
|
72
73
|
const self = Object.create(Proto)
|
|
73
|
-
self.semaphore =
|
|
74
|
+
self.semaphore = Semaphore.makeUnsafe(1)
|
|
74
75
|
self.backing = Ref.makeUnsafe(value)
|
|
75
76
|
self.pubsub = pubsub
|
|
76
77
|
PubSub.publishUnsafe(self.pubsub, value)
|
package/src/SynchronizedRef.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { dual } from "./Function.ts"
|
|
|
6
6
|
import { PipeInspectableProto } from "./internal/core.ts"
|
|
7
7
|
import * as Option from "./Option.ts"
|
|
8
8
|
import * as Ref from "./Ref.ts"
|
|
9
|
+
import * as Semaphore from "./Semaphore.ts"
|
|
9
10
|
|
|
10
11
|
const TypeId = "~effect/SynchronizedRef"
|
|
11
12
|
|
|
@@ -16,7 +17,7 @@ const TypeId = "~effect/SynchronizedRef"
|
|
|
16
17
|
export interface SynchronizedRef<in out A> extends Ref.Ref<A> {
|
|
17
18
|
readonly [TypeId]: typeof TypeId
|
|
18
19
|
readonly backing: Ref.Ref<A>
|
|
19
|
-
readonly semaphore:
|
|
20
|
+
readonly semaphore: Semaphore.Semaphore
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
const Proto = {
|
|
@@ -36,7 +37,7 @@ const Proto = {
|
|
|
36
37
|
*/
|
|
37
38
|
export const makeUnsafe = <A>(value: A): SynchronizedRef<A> => {
|
|
38
39
|
const self = Object.create(Proto)
|
|
39
|
-
self.semaphore =
|
|
40
|
+
self.semaphore = Semaphore.makeUnsafe(1)
|
|
40
41
|
self.backing = Ref.makeUnsafe(value)
|
|
41
42
|
return self
|
|
42
43
|
}
|
package/src/Types.ts
CHANGED
|
@@ -729,6 +729,15 @@ export declare namespace Contravariant {
|
|
|
729
729
|
*/
|
|
730
730
|
export type MatchRecord<S, onTrue, onFalse> = {} extends S ? onTrue : onFalse
|
|
731
731
|
|
|
732
|
+
/**
|
|
733
|
+
* Conditional type that returns `void` if `S` is an empty object type,
|
|
734
|
+
* otherwise returns `S`.
|
|
735
|
+
*
|
|
736
|
+
* @since 4.0.0
|
|
737
|
+
* @category types
|
|
738
|
+
*/
|
|
739
|
+
export type VoidIfEmpty<S> = MatchRecord<S, void, S>
|
|
740
|
+
|
|
732
741
|
/**
|
|
733
742
|
* Excludes function types from a union, keeping only non-function members.
|
|
734
743
|
*
|
package/src/index.ts
CHANGED
|
@@ -865,6 +865,13 @@ export * as Duration from "./Duration.ts"
|
|
|
865
865
|
*/
|
|
866
866
|
export * as Effect from "./Effect.ts"
|
|
867
867
|
|
|
868
|
+
/**
|
|
869
|
+
* Encoding & decoding for Base64 (RFC4648), Base64Url, and Hex.
|
|
870
|
+
*
|
|
871
|
+
* @since 4.0.0
|
|
872
|
+
*/
|
|
873
|
+
export * as Encoding from "./Encoding.ts"
|
|
874
|
+
|
|
868
875
|
/**
|
|
869
876
|
* This module provides functionality for defining and working with equality between values.
|
|
870
877
|
* It includes the `Equal` interface for types that can determine equality with other values
|
|
@@ -1130,6 +1137,57 @@ export * as FileSystem from "./FileSystem.ts"
|
|
|
1130
1137
|
export * as Filter from "./Filter.ts"
|
|
1131
1138
|
|
|
1132
1139
|
/**
|
|
1140
|
+
* Utilities for converting arbitrary JavaScript values into human-readable
|
|
1141
|
+
* strings, with support for circular references, redaction, and common JS
|
|
1142
|
+
* types that `JSON.stringify` handles poorly.
|
|
1143
|
+
*
|
|
1144
|
+
* Mental model:
|
|
1145
|
+
* - A `Formatter<Value, Format>` is a callable `(value: Value) => Format`.
|
|
1146
|
+
* - {@link format} is the general-purpose pretty-printer: it handles
|
|
1147
|
+
* primitives, arrays, objects, `BigInt`, `Symbol`, `Date`, `RegExp`,
|
|
1148
|
+
* `Set`, `Map`, class instances, and circular references.
|
|
1149
|
+
* - {@link formatJson} is a safe `JSON.stringify` wrapper that silently
|
|
1150
|
+
* drops circular references and applies redaction.
|
|
1151
|
+
* - Both functions accept a `space` option for indentation control.
|
|
1152
|
+
*
|
|
1153
|
+
* Common tasks:
|
|
1154
|
+
* - Pretty-print any value for debugging / logging -> {@link format}
|
|
1155
|
+
* - Serialize to JSON safely (no circular throws) -> {@link formatJson}
|
|
1156
|
+
* - Format a single object property key -> {@link formatPropertyKey}
|
|
1157
|
+
* - Format a property path like `["a"]["b"]` -> {@link formatPath}
|
|
1158
|
+
* - Format a `Date` to ISO string safely -> {@link formatDate}
|
|
1159
|
+
*
|
|
1160
|
+
* Gotchas:
|
|
1161
|
+
* - {@link format} output is **not** valid JSON; use {@link formatJson} when
|
|
1162
|
+
* you need parseable JSON.
|
|
1163
|
+
* - {@link format} calls `toString()` on objects by default; pass
|
|
1164
|
+
* `ignoreToString: true` to disable.
|
|
1165
|
+
* - {@link formatJson} silently omits circular references (the key is
|
|
1166
|
+
* dropped from the output).
|
|
1167
|
+
* - Values implementing the `Redactable` protocol are automatically
|
|
1168
|
+
* redacted by both {@link format} and {@link formatJson}.
|
|
1169
|
+
*
|
|
1170
|
+
* **Example** (Pretty-print a value)
|
|
1171
|
+
*
|
|
1172
|
+
* ```ts
|
|
1173
|
+
* import { Formatter } from "effect"
|
|
1174
|
+
*
|
|
1175
|
+
* const obj = { name: "Alice", scores: [100, 97] }
|
|
1176
|
+
* console.log(Formatter.format(obj))
|
|
1177
|
+
* // {"name":"Alice","scores":[100,97]}
|
|
1178
|
+
*
|
|
1179
|
+
* console.log(Formatter.format(obj, { space: 2 }))
|
|
1180
|
+
* // {
|
|
1181
|
+
* // "name": "Alice",
|
|
1182
|
+
* // "scores": [
|
|
1183
|
+
* // 100,
|
|
1184
|
+
* // 97
|
|
1185
|
+
* // ]
|
|
1186
|
+
* // }
|
|
1187
|
+
* ```
|
|
1188
|
+
*
|
|
1189
|
+
* See also: {@link Formatter}, {@link format}, {@link formatJson}
|
|
1190
|
+
*
|
|
1133
1191
|
* @since 4.0.0
|
|
1134
1192
|
*/
|
|
1135
1193
|
export * as Formatter from "./Formatter.ts"
|
|
@@ -1394,10 +1452,98 @@ export * as JsonPatch from "./JsonPatch.ts"
|
|
|
1394
1452
|
export * as JsonPointer from "./JsonPointer.ts"
|
|
1395
1453
|
|
|
1396
1454
|
/**
|
|
1455
|
+
* Convert JSON Schema documents between dialects (Draft-07, Draft-2020-12,
|
|
1456
|
+
* OpenAPI 3.0, OpenAPI 3.1). All dialects are normalized to an internal
|
|
1457
|
+
* `Document<"draft-2020-12">` representation before optional conversion to
|
|
1458
|
+
* an output dialect.
|
|
1459
|
+
*
|
|
1460
|
+
* ## Mental model
|
|
1461
|
+
*
|
|
1462
|
+
* - **JsonSchema** — a plain object with string keys; represents any single
|
|
1463
|
+
* JSON Schema node.
|
|
1464
|
+
* - **Dialect** — one of `"draft-07"`, `"draft-2020-12"`, `"openapi-3.1"`,
|
|
1465
|
+
* or `"openapi-3.0"`.
|
|
1466
|
+
* - **Document** — a structured container holding a root `schema`, its
|
|
1467
|
+
* companion `definitions`, and the target `dialect`. Definitions are
|
|
1468
|
+
* stored separately from the root schema so they can be relocated when
|
|
1469
|
+
* converting between dialects.
|
|
1470
|
+
* - **MultiDocument** — same as `Document` but carries multiple root
|
|
1471
|
+
* schemas (at least one). Useful when generating several schemas that
|
|
1472
|
+
* share a single definitions pool.
|
|
1473
|
+
* - **Definitions** — a `Record<string, JsonSchema>` keyed by definition
|
|
1474
|
+
* name. The ref pointer prefix depends on the dialect.
|
|
1475
|
+
* - **`from*` functions** — parse a raw JSON Schema object into the
|
|
1476
|
+
* canonical `Document<"draft-2020-12">`.
|
|
1477
|
+
* - **`to*` functions** — convert from the canonical representation to a
|
|
1478
|
+
* specific output dialect.
|
|
1479
|
+
*
|
|
1480
|
+
* ## Common tasks
|
|
1481
|
+
*
|
|
1482
|
+
* - Parse a Draft-07 schema → {@link fromSchemaDraft07}
|
|
1483
|
+
* - Parse a Draft-2020-12 schema → {@link fromSchemaDraft2020_12}
|
|
1484
|
+
* - Parse an OpenAPI 3.1 schema → {@link fromSchemaOpenApi3_1}
|
|
1485
|
+
* - Parse an OpenAPI 3.0 schema → {@link fromSchemaOpenApi3_0}
|
|
1486
|
+
* - Convert to Draft-07 output → {@link toDocumentDraft07}
|
|
1487
|
+
* - Convert to OpenAPI 3.1 output → {@link toMultiDocumentOpenApi3_1}
|
|
1488
|
+
* - Resolve a `$ref` against definitions → {@link resolve$ref}
|
|
1489
|
+
* - Inline the root `$ref` of a document → {@link resolveTopLevel$ref}
|
|
1490
|
+
*
|
|
1491
|
+
* ## Gotchas
|
|
1492
|
+
*
|
|
1493
|
+
* - All `from*` functions normalize to `Document<"draft-2020-12">`
|
|
1494
|
+
* regardless of the input dialect.
|
|
1495
|
+
* - Unsupported or unrecognized JSON Schema keywords are silently dropped
|
|
1496
|
+
* during conversion.
|
|
1497
|
+
* - Draft-07 tuple syntax (`items` as array + `additionalItems`) is
|
|
1498
|
+
* converted to 2020-12 form (`prefixItems` + `items`), and vice-versa.
|
|
1499
|
+
* - OpenAPI 3.0 `nullable: true` is expanded into `type` arrays or
|
|
1500
|
+
* `anyOf` unions. The `nullable` keyword is removed.
|
|
1501
|
+
* - OpenAPI 3.0 singular `example` is converted to `examples` (array).
|
|
1502
|
+
* - {@link resolve$ref} only looks up the last segment of the ref path in
|
|
1503
|
+
* the definitions map; it does not follow arbitrary JSON Pointer paths.
|
|
1504
|
+
*
|
|
1505
|
+
* ## Quickstart
|
|
1506
|
+
*
|
|
1507
|
+
* **Example** (Parse a Draft-07 schema and convert to Draft-07 output)
|
|
1508
|
+
*
|
|
1509
|
+
* ```ts
|
|
1510
|
+
* import { JsonSchema } from "effect"
|
|
1511
|
+
*
|
|
1512
|
+
* const raw: JsonSchema.JsonSchema = {
|
|
1513
|
+
* type: "object",
|
|
1514
|
+
* properties: {
|
|
1515
|
+
* name: { type: "string" }
|
|
1516
|
+
* },
|
|
1517
|
+
* required: ["name"]
|
|
1518
|
+
* }
|
|
1519
|
+
*
|
|
1520
|
+
* // Parse into canonical form
|
|
1521
|
+
* const doc = JsonSchema.fromSchemaDraft07(raw)
|
|
1522
|
+
*
|
|
1523
|
+
* // Convert back to Draft-07
|
|
1524
|
+
* const draft07 = JsonSchema.toDocumentDraft07(doc)
|
|
1525
|
+
*
|
|
1526
|
+
* console.log(draft07.dialect) // "draft-07"
|
|
1527
|
+
* console.log(draft07.schema) // { type: "object", properties: { name: { type: "string" } }, required: ["name"] }
|
|
1528
|
+
* ```
|
|
1529
|
+
*
|
|
1530
|
+
* ## See also
|
|
1531
|
+
*
|
|
1532
|
+
* - {@link Document}
|
|
1533
|
+
* - {@link MultiDocument}
|
|
1534
|
+
* - {@link fromSchemaDraft07}
|
|
1535
|
+
* - {@link toDocumentDraft07}
|
|
1536
|
+
* - {@link resolve$ref}
|
|
1537
|
+
*
|
|
1397
1538
|
* @since 4.0.0
|
|
1398
1539
|
*/
|
|
1399
1540
|
export * as JsonSchema from "./JsonSchema.ts"
|
|
1400
1541
|
|
|
1542
|
+
/**
|
|
1543
|
+
* @since 3.8.0
|
|
1544
|
+
*/
|
|
1545
|
+
export * as Latch from "./Latch.ts"
|
|
1546
|
+
|
|
1401
1547
|
/**
|
|
1402
1548
|
* A `Layer<ROut, E, RIn>` describes how to build one or more services in your
|
|
1403
1549
|
* application. Services can be injected into effects via
|
|
@@ -2269,12 +2415,6 @@ export * as Order from "./Order.ts"
|
|
|
2269
2415
|
*/
|
|
2270
2416
|
export * as Ordering from "./Ordering.ts"
|
|
2271
2417
|
|
|
2272
|
-
/**
|
|
2273
|
-
* @since 3.19.4
|
|
2274
|
-
* @experimental
|
|
2275
|
-
*/
|
|
2276
|
-
export * as PartitionedSemaphore from "./PartitionedSemaphore.ts"
|
|
2277
|
-
|
|
2278
2418
|
/**
|
|
2279
2419
|
* @since 4.0.0
|
|
2280
2420
|
*/
|
|
@@ -3137,6 +3277,11 @@ export * as ScopedCache from "./ScopedCache.ts"
|
|
|
3137
3277
|
*/
|
|
3138
3278
|
export * as ScopedRef from "./ScopedRef.ts"
|
|
3139
3279
|
|
|
3280
|
+
/**
|
|
3281
|
+
* @since 2.0.0
|
|
3282
|
+
*/
|
|
3283
|
+
export * as Semaphore from "./Semaphore.ts"
|
|
3284
|
+
|
|
3140
3285
|
/**
|
|
3141
3286
|
* This module provides a data structure called `ServiceMap` that can be used
|
|
3142
3287
|
* for dependency injection in effectful programs. It is essentially a table
|
package/src/internal/core.ts
CHANGED
|
@@ -70,7 +70,7 @@ export const PipeInspectableProto = {
|
|
|
70
70
|
return { ...this }
|
|
71
71
|
},
|
|
72
72
|
toString() {
|
|
73
|
-
return format(this, { ignoreToString: true })
|
|
73
|
+
return format(this.toJSON(), { ignoreToString: true, space: 2 })
|
|
74
74
|
},
|
|
75
75
|
[NodeInspectSymbol]() {
|
|
76
76
|
return this.toJSON()
|
|
@@ -102,6 +102,14 @@ export const YieldableProto = {
|
|
|
102
102
|
}
|
|
103
103
|
}
|
|
104
104
|
|
|
105
|
+
/** @internal */
|
|
106
|
+
export const YieldableErrorProto = {
|
|
107
|
+
...YieldableProto,
|
|
108
|
+
pipe() {
|
|
109
|
+
return pipeArguments(this, arguments)
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
105
113
|
/** @internal */
|
|
106
114
|
export const EffectProto = {
|
|
107
115
|
[EffectTypeId]: effectVariance,
|
|
@@ -581,7 +589,7 @@ export const YieldableError: new(
|
|
|
581
589
|
return exitFail(this)
|
|
582
590
|
}
|
|
583
591
|
}
|
|
584
|
-
Object.assign(YieldableError.prototype,
|
|
592
|
+
Object.assign(YieldableError.prototype, YieldableErrorProto)
|
|
585
593
|
return YieldableError as any
|
|
586
594
|
})()
|
|
587
595
|
|