effect 4.0.0-beta.0 → 4.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Cache.d.ts +2 -2
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +1 -1
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +1 -1
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +6 -4
- package/dist/Channel.js.map +1 -1
- package/dist/Combiner.d.ts +280 -13
- package/dist/Combiner.d.ts.map +1 -1
- package/dist/Combiner.js +198 -7
- package/dist/Combiner.js.map +1 -1
- package/dist/Config.d.ts +3 -3
- package/dist/Config.js +3 -3
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +1 -1
- package/dist/Cron.d.ts +1 -1
- package/dist/Data.d.ts +534 -365
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +132 -79
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +23 -161
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +6 -51
- package/dist/DateTime.js.map +1 -1
- package/dist/Duration.d.ts +12 -12
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +12 -12
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +175 -240
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +73 -119
- package/dist/Effect.js.map +1 -1
- package/dist/Encoding.d.ts +194 -0
- package/dist/Encoding.d.ts.map +1 -0
- package/dist/Encoding.js +352 -0
- package/dist/Encoding.js.map +1 -0
- package/dist/Equal.d.ts +276 -109
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +124 -48
- package/dist/Equal.js.map +1 -1
- package/dist/FileSystem.d.ts +1 -1
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +5 -5
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts +30 -1
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +15 -0
- package/dist/Filter.js.map +1 -1
- package/dist/Formatter.d.ts +131 -47
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +229 -51
- package/dist/Formatter.js.map +1 -1
- package/dist/Graph.d.ts +1 -1
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +2 -2
- package/dist/Graph.js.map +1 -1
- package/dist/JsonSchema.d.ts +299 -10
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +323 -4
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Latch.d.ts +109 -0
- package/dist/Latch.d.ts.map +1 -0
- package/dist/Latch.js +72 -0
- package/dist/Latch.js.map +1 -0
- package/dist/LayerMap.d.ts +4 -4
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LogLevel.d.ts +27 -0
- package/dist/LogLevel.d.ts.map +1 -1
- package/dist/LogLevel.js +28 -100
- package/dist/LogLevel.js.map +1 -1
- package/dist/Logger.d.ts +4 -4
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Metric.d.ts +2 -2
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +1 -1
- package/dist/Metric.js.map +1 -1
- package/dist/Optic.d.ts +947 -18
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +454 -5
- package/dist/Optic.js.map +1 -1
- package/dist/Pipeable.d.ts +17 -0
- package/dist/Pipeable.d.ts.map +1 -1
- package/dist/Pipeable.js +19 -1
- package/dist/Pipeable.js.map +1 -1
- package/dist/PlatformError.d.ts +10 -9
- package/dist/PlatformError.d.ts.map +1 -1
- package/dist/PlatformError.js +2 -2
- package/dist/PlatformError.js.map +1 -1
- package/dist/Pool.d.ts +6 -4
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +7 -5
- package/dist/Pool.js.map +1 -1
- package/dist/PubSub.d.ts +3 -2
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +3 -2
- package/dist/PubSub.js.map +1 -1
- package/dist/Random.d.ts +18 -1
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +29 -12
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +2 -2
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +1 -1
- package/dist/RcMap.js.map +1 -1
- package/dist/RcRef.d.ts +1 -1
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/Reducer.d.ts +166 -7
- package/dist/Reducer.d.ts.map +1 -1
- package/dist/Reducer.js +135 -1
- package/dist/Reducer.js.map +1 -1
- package/dist/Request.d.ts +1 -1
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js +2 -1
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +6 -26
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +0 -20
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Result.d.ts +12 -0
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +12 -0
- package/dist/Result.js.map +1 -1
- package/dist/Schedule.d.ts +33 -14
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +65 -24
- package/dist/Schedule.js.map +1 -1
- package/dist/Schema.d.ts +199 -49
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +386 -72
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaGetter.d.ts +2 -2
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +12 -14
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +44 -43
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +43 -24
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +37 -0
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +80 -0
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/ScopedCache.d.ts +2 -2
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +1 -1
- package/dist/ScopedCache.js.map +1 -1
- package/dist/Semaphore.d.ts +211 -0
- package/dist/Semaphore.d.ts.map +1 -0
- package/dist/{PartitionedSemaphore.js → Semaphore.js} +97 -13
- package/dist/Semaphore.js.map +1 -0
- package/dist/Stream.d.ts +19 -19
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +12 -11
- package/dist/Stream.js.map +1 -1
- package/dist/Struct.d.ts +16 -0
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +22 -0
- package/dist/Struct.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +2 -1
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +2 -1
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/SynchronizedRef.d.ts +2 -1
- package/dist/SynchronizedRef.d.ts.map +1 -1
- package/dist/SynchronizedRef.js +2 -1
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Types.d.ts +14 -6
- package/dist/Types.d.ts.map +1 -1
- package/dist/index.d.ts +499 -19
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +499 -19
- package/dist/index.js.map +1 -1
- package/dist/internal/core.js +11 -3
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/dateTime.js +3 -11
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/effect.js +37 -22
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/random.d.ts +2 -0
- package/dist/internal/random.d.ts.map +1 -0
- package/dist/internal/random.js +13 -0
- package/dist/internal/random.js.map +1 -0
- package/dist/internal/rcRef.js +3 -2
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/testing/TestClock.d.ts +7 -6
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +6 -4
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +6 -6
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +48 -48
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +3 -3
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +4 -3
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +2 -2
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +51 -51
- package/dist/unstable/ai/McpServer.d.ts +1 -1
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +20 -20
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Response.d.ts +26 -26
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +1 -1
- package/dist/unstable/ai/Response.js.map +1 -1
- package/dist/unstable/cli/CliError.d.ts +5 -5
- package/dist/unstable/cli/Prompt.js +2 -2
- package/dist/unstable/cli/Prompt.js.map +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js +1 -1
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +2 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +5 -4
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/EntityResource.d.ts +2 -2
- package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
- package/dist/unstable/cluster/Envelope.d.ts +1 -1
- package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/Message.d.ts +10 -10
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +2 -1
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +6 -6
- package/dist/unstable/cluster/Runner.d.ts +1 -1
- package/dist/unstable/cluster/Runners.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.js +4 -3
- package/dist/unstable/cluster/Runners.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts +2 -2
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +8 -6
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +21 -21
- package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +5 -4
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/cluster/internal/entityReaper.js +2 -1
- package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceRef.js +2 -1
- package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.d.ts +36 -36
- package/dist/unstable/encoding/Msgpack.d.ts +1 -1
- package/dist/unstable/encoding/Ndjson.d.ts +1 -1
- package/dist/unstable/encoding/Sse.d.ts +4 -4
- package/dist/unstable/encoding/Sse.d.ts.map +1 -1
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +2 -1
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
- package/dist/unstable/http/Cookies.d.ts +3 -3
- package/dist/unstable/http/Cookies.d.ts.map +1 -1
- package/dist/unstable/http/Cookies.js +2 -2
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/HttpBody.d.ts +17 -2
- package/dist/unstable/http/HttpBody.d.ts.map +1 -1
- package/dist/unstable/http/HttpBody.js +28 -1
- package/dist/unstable/http/HttpBody.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +11 -11
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +4 -4
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientError.d.ts +7 -7
- package/dist/unstable/http/HttpClientRequest.d.ts +27 -11
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +15 -3
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
- package/dist/unstable/http/HttpEffect.js +18 -26
- package/dist/unstable/http/HttpEffect.js.map +1 -1
- package/dist/unstable/http/HttpMethod.d.ts +4 -4
- package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
- package/dist/unstable/http/HttpMethod.js +3 -3
- package/dist/unstable/http/HttpMethod.js.map +1 -1
- package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
- package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/unstable/http/HttpMiddleware.js +4 -9
- package/dist/unstable/http/HttpMiddleware.js.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +6 -6
- package/dist/unstable/http/HttpServerResponse.js +1 -1
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +3 -3
- package/dist/unstable/http/UrlParams.d.ts +14 -6
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +1 -1
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +5 -5
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +3 -3
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +21 -39
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.js +15 -24
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
- package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +18 -16
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/observability/Otlp.d.ts +12 -12
- package/dist/unstable/observability/Otlp.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +1 -1
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
- package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
- package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
- package/dist/unstable/persistence/KeyValueStore.js +6 -6
- package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
- package/dist/unstable/persistence/Persistable.d.ts +2 -2
- package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
- package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedCache.js +2 -1
- package/dist/unstable/persistence/PersistedCache.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
- package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.js +12 -11
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/Persistence.d.ts +1 -1
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +2 -2
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +1 -1
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/process/ChildProcess.d.ts +2 -2
- package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts +6 -0
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +6 -6
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +15 -12
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +6 -6
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +3 -3
- package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +1 -1
- package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
- package/dist/unstable/reactivity/Hydration.d.ts +39 -0
- package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
- package/dist/unstable/reactivity/Hydration.js +76 -0
- package/dist/unstable/reactivity/Hydration.js.map +1 -0
- package/dist/unstable/reactivity/index.d.ts +4 -0
- package/dist/unstable/reactivity/index.d.ts.map +1 -1
- package/dist/unstable/reactivity/index.js +4 -0
- package/dist/unstable/reactivity/index.js.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts +2 -2
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts +5 -26
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +6 -13
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +5 -3
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/rpc/Utils.d.ts.map +1 -1
- package/dist/unstable/rpc/Utils.js +2 -1
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/schema/Model.d.ts +4 -4
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +2 -2
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.js +13 -2
- package/dist/unstable/schema/VariantSchema.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +4 -4
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +3 -2
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/socket/SocketServer.d.ts +3 -3
- package/dist/unstable/sql/Migrator.d.ts +1 -1
- package/dist/unstable/sql/SqlError.d.ts +2 -2
- package/dist/unstable/sql/SqlModel.d.ts +2 -2
- package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
- package/dist/unstable/sql/SqlSchema.d.ts +24 -1
- package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
- package/dist/unstable/sql/SqlSchema.js +24 -3
- package/dist/unstable/sql/SqlSchema.js.map +1 -1
- package/dist/unstable/sql/Statement.js +0 -1
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts.map +1 -1
- package/dist/unstable/workers/Worker.js +2 -1
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts +3 -3
- package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableClock.js +3 -3
- package/dist/unstable/workflow/DurableClock.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js +2 -2
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +2 -2
- package/dist/unstable/workflow/WorkflowEngine.d.ts +2 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +2 -1
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +2 -2
- package/src/Cache.ts +3 -3
- package/src/Cause.ts +1 -1
- package/src/Channel.ts +6 -4
- package/src/Combiner.ts +280 -13
- package/src/Config.ts +3 -3
- package/src/Data.ts +538 -374
- package/src/DateTime.ts +24 -164
- package/src/Duration.ts +15 -15
- package/src/Effect.ts +202 -261
- package/src/Encoding.ts +879 -0
- package/src/Equal.ts +278 -111
- package/src/FileSystem.ts +7 -8
- package/src/Filter.ts +48 -1
- package/src/Formatter.ts +253 -51
- package/src/Graph.ts +8 -5
- package/src/JsonSchema.ts +383 -10
- package/src/Latch.ts +112 -0
- package/src/LayerMap.ts +5 -5
- package/src/LogLevel.ts +31 -0
- package/src/Logger.ts +5 -5
- package/src/Metric.ts +4 -4
- package/src/Optic.ts +948 -19
- package/src/Pipeable.ts +32 -1
- package/src/PlatformError.ts +5 -5
- package/src/Pool.ts +13 -11
- package/src/PubSub.ts +10 -9
- package/src/Random.ts +33 -14
- package/src/RcMap.ts +5 -5
- package/src/RcRef.ts +1 -1
- package/src/Reducer.ts +166 -7
- package/src/Request.ts +3 -2
- package/src/RequestResolver.ts +9 -29
- package/src/Result.ts +13 -0
- package/src/Schedule.ts +279 -140
- package/src/Schema.ts +575 -113
- package/src/SchemaGetter.ts +12 -14
- package/src/SchemaRepresentation.ts +43 -24
- package/src/SchemaTransformation.ts +104 -0
- package/src/ScopedCache.ts +3 -3
- package/src/Semaphore.ts +356 -0
- package/src/Stream.ts +43 -42
- package/src/Struct.ts +26 -0
- package/src/SubscriptionRef.ts +3 -2
- package/src/SynchronizedRef.ts +3 -2
- package/src/Types.ts +12 -2
- package/src/index.ts +502 -20
- package/src/internal/core.ts +12 -5
- package/src/internal/dateTime.ts +9 -30
- package/src/internal/effect.ts +70 -37
- package/src/internal/random.ts +20 -0
- package/src/internal/rcRef.ts +4 -3
- package/src/testing/TestClock.ts +13 -11
- package/src/testing/TestSchema.ts +8 -8
- package/src/unstable/ai/AiError.ts +2 -2
- package/src/unstable/ai/Chat.ts +12 -11
- package/src/unstable/ai/LanguageModel.ts +3 -3
- package/src/unstable/ai/McpServer.ts +2 -2
- package/src/unstable/ai/Prompt.ts +37 -37
- package/src/unstable/ai/Response.ts +25 -25
- package/src/unstable/cli/Prompt.ts +2 -2
- package/src/unstable/cluster/ClusterCron.ts +2 -2
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +3 -2
- package/src/unstable/cluster/Entity.ts +7 -6
- package/src/unstable/cluster/EntityResource.ts +4 -4
- package/src/unstable/cluster/Envelope.ts +1 -1
- package/src/unstable/cluster/K8sHttpClient.ts +1 -1
- package/src/unstable/cluster/MessageStorage.ts +3 -5
- package/src/unstable/cluster/Runners.ts +6 -5
- package/src/unstable/cluster/Sharding.ts +11 -9
- package/src/unstable/cluster/ShardingConfig.ts +10 -11
- package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
- package/src/unstable/cluster/internal/entityManager.ts +9 -8
- package/src/unstable/cluster/internal/entityReaper.ts +2 -1
- package/src/unstable/cluster/internal/resourceRef.ts +2 -1
- package/src/unstable/encoding/Sse.ts +2 -4
- package/src/unstable/eventlog/EventLog.ts +2 -1
- package/src/unstable/http/Cookies.ts +3 -3
- package/src/unstable/http/HttpBody.ts +42 -1
- package/src/unstable/http/HttpClient.ts +19 -19
- package/src/unstable/http/HttpClientRequest.ts +38 -13
- package/src/unstable/http/HttpEffect.ts +17 -25
- package/src/unstable/http/HttpMethod.ts +16 -4
- package/src/unstable/http/HttpMiddleware.ts +5 -10
- package/src/unstable/http/HttpServerResponse.ts +1 -1
- package/src/unstable/http/Multipart.ts +2 -2
- package/src/unstable/http/UrlParams.ts +20 -5
- package/src/unstable/httpapi/HttpApiBuilder.ts +5 -5
- package/src/unstable/httpapi/HttpApiClient.ts +3 -3
- package/src/unstable/httpapi/HttpApiEndpoint.ts +47 -72
- package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
- package/src/unstable/httpapi/OpenApi.ts +18 -16
- package/src/unstable/observability/Otlp.ts +12 -12
- package/src/unstable/observability/OtlpExporter.ts +3 -3
- package/src/unstable/observability/OtlpLogger.ts +4 -4
- package/src/unstable/observability/OtlpMetrics.ts +4 -4
- package/src/unstable/observability/OtlpTracer.ts +4 -4
- package/src/unstable/persistence/KeyValueStore.ts +6 -6
- package/src/unstable/persistence/Persistable.ts +2 -2
- package/src/unstable/persistence/PersistedCache.ts +20 -9
- package/src/unstable/persistence/PersistedQueue.ts +25 -24
- package/src/unstable/persistence/Persistence.ts +3 -3
- package/src/unstable/persistence/RateLimiter.ts +4 -4
- package/src/unstable/process/ChildProcess.ts +2 -2
- package/src/unstable/process/ChildProcessSpawner.ts +6 -0
- package/src/unstable/reactivity/Atom.ts +20 -18
- package/src/unstable/reactivity/AtomHttpApi.ts +19 -18
- package/src/unstable/reactivity/AtomRpc.ts +3 -3
- package/src/unstable/reactivity/Hydration.ts +112 -0
- package/src/unstable/reactivity/index.ts +5 -0
- package/src/unstable/rpc/Rpc.ts +3 -3
- package/src/unstable/rpc/RpcClient.ts +12 -54
- package/src/unstable/rpc/RpcServer.ts +6 -4
- package/src/unstable/rpc/Utils.ts +2 -1
- package/src/unstable/schema/VariantSchema.ts +36 -7
- package/src/unstable/socket/Socket.ts +7 -6
- package/src/unstable/sql/SqlModel.ts +2 -2
- package/src/unstable/sql/SqlSchema.ts +62 -13
- package/src/unstable/sql/Statement.ts +0 -1
- package/src/unstable/workers/Worker.ts +2 -1
- package/src/unstable/workflow/DurableClock.ts +8 -8
- package/src/unstable/workflow/DurableDeferred.ts +2 -2
- package/src/unstable/workflow/WorkflowEngine.ts +3 -2
- package/dist/PartitionedSemaphore.d.ts +0 -52
- package/dist/PartitionedSemaphore.d.ts.map +0 -1
- package/dist/PartitionedSemaphore.js.map +0 -1
- package/dist/encoding/Base64.d.ts +0 -67
- package/dist/encoding/Base64.d.ts.map +0 -1
- package/dist/encoding/Base64.js +0 -146
- package/dist/encoding/Base64.js.map +0 -1
- package/dist/encoding/Base64Url.d.ts +0 -60
- package/dist/encoding/Base64Url.d.ts.map +0 -1
- package/dist/encoding/Base64Url.js +0 -89
- package/dist/encoding/Base64Url.js.map +0 -1
- package/dist/encoding/EncodingError.d.ts +0 -31
- package/dist/encoding/EncodingError.d.ts.map +0 -1
- package/dist/encoding/EncodingError.js +0 -22
- package/dist/encoding/EncodingError.js.map +0 -1
- package/dist/encoding/Hex.d.ts +0 -61
- package/dist/encoding/Hex.d.ts.map +0 -1
- package/dist/encoding/Hex.js +0 -115
- package/dist/encoding/Hex.js.map +0 -1
- package/dist/encoding/index.d.ts +0 -26
- package/dist/encoding/index.d.ts.map +0 -1
- package/dist/encoding/index.js +0 -27
- package/dist/encoding/index.js.map +0 -1
- package/src/PartitionedSemaphore.ts +0 -182
- package/src/encoding/Base64.ts +0 -366
- package/src/encoding/Base64Url.ts +0 -104
- package/src/encoding/EncodingError.ts +0 -35
- package/src/encoding/Hex.ts +0 -390
- package/src/encoding/index.ts +0 -31
package/src/index.ts
CHANGED
|
@@ -444,6 +444,65 @@ export * as Chunk from "./Chunk.ts"
|
|
|
444
444
|
export * as Clock from "./Clock.ts"
|
|
445
445
|
|
|
446
446
|
/**
|
|
447
|
+
* A module for combining two values of the same type into one.
|
|
448
|
+
*
|
|
449
|
+
* A `Combiner<A>` wraps a single binary function `(self: A, that: A) => A`.
|
|
450
|
+
* It describes *how* two values merge but carries no initial/empty value
|
|
451
|
+
* (for that, see {@link Reducer} which extends `Combiner` with an
|
|
452
|
+
* `initialValue`).
|
|
453
|
+
*
|
|
454
|
+
* ## Mental model
|
|
455
|
+
*
|
|
456
|
+
* - **Combiner** – an object with a `combine(self, that)` method that returns
|
|
457
|
+
* a value of the same type.
|
|
458
|
+
* - **Argument order** – `self` is the "left" / accumulator side, `that` is
|
|
459
|
+
* the "right" / incoming side.
|
|
460
|
+
* - **No identity element** – unlike a monoid, a `Combiner` does not require
|
|
461
|
+
* a neutral element. Use {@link Reducer} when you need one.
|
|
462
|
+
* - **Purity** – all combiners produced by this module are pure; they never
|
|
463
|
+
* mutate their arguments.
|
|
464
|
+
* - **Composability** – combiners can be lifted into `Option`, `Struct`,
|
|
465
|
+
* `Tuple`, and other container types via helpers in those modules.
|
|
466
|
+
*
|
|
467
|
+
* ## Common tasks
|
|
468
|
+
*
|
|
469
|
+
* - Create a combiner from any binary function → {@link make}
|
|
470
|
+
* - Swap argument order → {@link flip}
|
|
471
|
+
* - Pick the smaller / larger of two values → {@link min} / {@link max}
|
|
472
|
+
* - Always keep the first or last value → {@link first} / {@link last}
|
|
473
|
+
* - Ignore both values and return a fixed result → {@link constant}
|
|
474
|
+
* - Insert a separator between combined values → {@link intercalate}
|
|
475
|
+
*
|
|
476
|
+
* ## Gotchas
|
|
477
|
+
*
|
|
478
|
+
* - `min` and `max` require an `Order<A>`, not a raw comparator. Import from
|
|
479
|
+
* e.g. `Number.Order` or `String.Order`.
|
|
480
|
+
* - `intercalate` is curried: call it with the separator first, then pass the
|
|
481
|
+
* base combiner.
|
|
482
|
+
* - A `Reducer` (which adds `initialValue`) is also a valid `Combiner` — you
|
|
483
|
+
* can pass a `Reducer` anywhere a `Combiner` is expected.
|
|
484
|
+
*
|
|
485
|
+
* ## Quickstart
|
|
486
|
+
*
|
|
487
|
+
* **Example** (combining strings with a separator)
|
|
488
|
+
*
|
|
489
|
+
* ```ts
|
|
490
|
+
* import { Combiner, String } from "effect"
|
|
491
|
+
*
|
|
492
|
+
* const csv = Combiner.intercalate(",")(String.ReducerConcat)
|
|
493
|
+
*
|
|
494
|
+
* console.log(csv.combine("a", "b"))
|
|
495
|
+
* // Output: "a,b"
|
|
496
|
+
*
|
|
497
|
+
* console.log(csv.combine(csv.combine("a", "b"), "c"))
|
|
498
|
+
* // Output: "a,b,c"
|
|
499
|
+
* ```
|
|
500
|
+
*
|
|
501
|
+
* ## See also
|
|
502
|
+
*
|
|
503
|
+
* - {@link make} – the primary constructor
|
|
504
|
+
* - {@link Combiner} – the core interface
|
|
505
|
+
*
|
|
447
506
|
* @since 4.0.0
|
|
448
507
|
*/
|
|
449
508
|
export * as Combiner from "./Combiner.ts"
|
|
@@ -684,15 +743,75 @@ export * as Console from "./Console.ts"
|
|
|
684
743
|
export * as Cron from "./Cron.ts"
|
|
685
744
|
|
|
686
745
|
/**
|
|
687
|
-
*
|
|
688
|
-
*
|
|
689
|
-
*
|
|
746
|
+
* Immutable data constructors with discriminated-union support.
|
|
747
|
+
*
|
|
748
|
+
* The `Data` module provides base classes and factory functions for creating
|
|
749
|
+
* immutable value types with a `_tag` field for discriminated unions.
|
|
750
|
+
* It is the recommended way to define domain models, error types, and
|
|
751
|
+
* lightweight ADTs in Effect applications.
|
|
752
|
+
*
|
|
753
|
+
* ## Mental model
|
|
754
|
+
*
|
|
755
|
+
* - **`Class`** — base class for plain immutable data. Extend it with a type
|
|
756
|
+
* parameter to declare the fields. Instances are `Pipeable`.
|
|
757
|
+
* - **`TaggedClass`** — like `Class` but automatically adds a `readonly _tag`
|
|
758
|
+
* string literal field. Useful for single-variant types or ad-hoc tagged
|
|
759
|
+
* values.
|
|
760
|
+
* - **`TaggedEnum`** (type) + **`taggedEnum`** (value) — define a multi-variant
|
|
761
|
+
* discriminated union from a simple record. `taggedEnum()` returns per-variant
|
|
762
|
+
* constructors plus `$is` / `$match` helpers.
|
|
763
|
+
* - **`Error`** — like `Class` but extends `Cause.YieldableError`, so instances
|
|
764
|
+
* can be yielded inside `Effect.gen` to fail the effect.
|
|
765
|
+
* - **`TaggedError`** — like `TaggedClass` but extends `Cause.YieldableError`.
|
|
766
|
+
* Works with `Effect.catchTag` for tag-based error recovery.
|
|
767
|
+
*
|
|
768
|
+
* ## Common tasks
|
|
769
|
+
*
|
|
770
|
+
* - Define a simple value class → {@link Class}
|
|
771
|
+
* - Define a value class with a `_tag` → {@link TaggedClass}
|
|
772
|
+
* - Define a discriminated union with constructors → {@link TaggedEnum} + {@link taggedEnum}
|
|
773
|
+
* - Define a yieldable error → {@link Error}
|
|
774
|
+
* - Define a yieldable tagged error → {@link TaggedError}
|
|
775
|
+
* - Type-guard a tagged value → `$is` from {@link taggedEnum}
|
|
776
|
+
* - Pattern-match on a tagged union → `$match` from {@link taggedEnum}
|
|
777
|
+
*
|
|
778
|
+
* ## Gotchas
|
|
690
779
|
*
|
|
691
|
-
*
|
|
692
|
-
*
|
|
693
|
-
* -
|
|
694
|
-
* - **
|
|
695
|
-
*
|
|
780
|
+
* - Variant records passed to `TaggedEnum` must **not** contain a `_tag` key;
|
|
781
|
+
* the `_tag` is added automatically from the record key.
|
|
782
|
+
* - When a class has no fields, the constructor argument is optional (`void`).
|
|
783
|
+
* - `taggedEnum()` creates **plain objects**, not class instances. If you need
|
|
784
|
+
* class-based variants, use `TaggedClass` or `TaggedError` instead.
|
|
785
|
+
* - `TaggedEnum.WithGenerics` supports up to 4 generic type parameters.
|
|
786
|
+
*
|
|
787
|
+
* ## Quickstart
|
|
788
|
+
*
|
|
789
|
+
* **Example** (tagged union with pattern matching)
|
|
790
|
+
*
|
|
791
|
+
* ```ts
|
|
792
|
+
* import { Data } from "effect"
|
|
793
|
+
*
|
|
794
|
+
* type Shape = Data.TaggedEnum<{
|
|
795
|
+
* Circle: { readonly radius: number }
|
|
796
|
+
* Rect: { readonly width: number; readonly height: number }
|
|
797
|
+
* }>
|
|
798
|
+
* const { Circle, Rect, $match } = Data.taggedEnum<Shape>()
|
|
799
|
+
*
|
|
800
|
+
* const area = $match({
|
|
801
|
+
* Circle: ({ radius }) => Math.PI * radius ** 2,
|
|
802
|
+
* Rect: ({ width, height }) => width * height
|
|
803
|
+
* })
|
|
804
|
+
*
|
|
805
|
+
* console.log(area(Circle({ radius: 5 })))
|
|
806
|
+
* // 78.53981633974483
|
|
807
|
+
* console.log(area(Rect({ width: 3, height: 4 })))
|
|
808
|
+
* // 12
|
|
809
|
+
* ```
|
|
810
|
+
*
|
|
811
|
+
* @see {@link Class} — plain immutable data class
|
|
812
|
+
* @see {@link TaggedEnum} — discriminated union type
|
|
813
|
+
* @see {@link taggedEnum} — discriminated union constructors
|
|
814
|
+
* @see {@link TaggedError} — yieldable tagged error class
|
|
696
815
|
*
|
|
697
816
|
* @since 2.0.0
|
|
698
817
|
*/
|
|
@@ -866,9 +985,80 @@ export * as Duration from "./Duration.ts"
|
|
|
866
985
|
export * as Effect from "./Effect.ts"
|
|
867
986
|
|
|
868
987
|
/**
|
|
869
|
-
*
|
|
870
|
-
*
|
|
871
|
-
*
|
|
988
|
+
* Encoding & decoding for Base64 (RFC4648), Base64Url, and Hex.
|
|
989
|
+
*
|
|
990
|
+
* @since 4.0.0
|
|
991
|
+
*/
|
|
992
|
+
export * as Encoding from "./Encoding.ts"
|
|
993
|
+
|
|
994
|
+
/**
|
|
995
|
+
* Structural and custom equality for Effect values.
|
|
996
|
+
*
|
|
997
|
+
* The `Equal` module provides deep structural comparison for primitives, plain
|
|
998
|
+
* objects, arrays, Maps, Sets, Dates, and RegExps. Types that implement the
|
|
999
|
+
* {@link Equal} interface can supply their own comparison logic while staying
|
|
1000
|
+
* compatible with the rest of the ecosystem (HashMap, HashSet, etc.).
|
|
1001
|
+
*
|
|
1002
|
+
* ## Mental model
|
|
1003
|
+
*
|
|
1004
|
+
* - **Structural equality** — two values are equal when their contents match,
|
|
1005
|
+
* not when they share the same reference.
|
|
1006
|
+
* - **Hash-first shortcut** — before comparing fields, the module checks
|
|
1007
|
+
* {@link Hash.hash}. If the hashes differ the objects are unequal without
|
|
1008
|
+
* further traversal.
|
|
1009
|
+
* - **Equal interface** — any object that implements both {@link symbol} (the
|
|
1010
|
+
* equality method) and `Hash.symbol` (the hash method) can define custom
|
|
1011
|
+
* comparison logic.
|
|
1012
|
+
* - **Caching** — comparison results for object pairs are cached in a WeakMap.
|
|
1013
|
+
* This makes repeated checks fast but **requires immutability** after the
|
|
1014
|
+
* first comparison.
|
|
1015
|
+
* - **By-reference opt-out** — {@link byReference} and {@link byReferenceUnsafe}
|
|
1016
|
+
* let you switch individual objects back to reference equality when you need
|
|
1017
|
+
* mutable identity semantics.
|
|
1018
|
+
*
|
|
1019
|
+
* ## Common tasks
|
|
1020
|
+
*
|
|
1021
|
+
* - Compare two values → {@link equals}
|
|
1022
|
+
* - Check if a value implements `Equal` → {@link isEqual}
|
|
1023
|
+
* - Use `equals` where an `Equivalence` is expected → {@link asEquivalence}
|
|
1024
|
+
* - Implement custom equality on a class → implement {@link Equal} (see
|
|
1025
|
+
* example on the interface)
|
|
1026
|
+
* - Opt an object out of structural equality → {@link byReference} /
|
|
1027
|
+
* {@link byReferenceUnsafe}
|
|
1028
|
+
*
|
|
1029
|
+
* ## Gotchas
|
|
1030
|
+
*
|
|
1031
|
+
* - Objects **must be treated as immutable** after their first equality check.
|
|
1032
|
+
* Results are cached; mutating an object afterwards yields stale results.
|
|
1033
|
+
* - `NaN` is considered equal to `NaN` (unlike `===`).
|
|
1034
|
+
* - Functions without an `Equal` implementation are compared by reference.
|
|
1035
|
+
* - Map and Set comparisons are order-independent but O(n²) in size.
|
|
1036
|
+
* - If only one of two objects implements `Equal`, they are never equal.
|
|
1037
|
+
*
|
|
1038
|
+
* ## Quickstart
|
|
1039
|
+
*
|
|
1040
|
+
* **Example** (basic structural comparison)
|
|
1041
|
+
*
|
|
1042
|
+
* ```ts
|
|
1043
|
+
* import { Equal } from "effect"
|
|
1044
|
+
*
|
|
1045
|
+
* // Primitives
|
|
1046
|
+
* console.log(Equal.equals(1, 1)) // true
|
|
1047
|
+
* console.log(Equal.equals("a", "b")) // false
|
|
1048
|
+
*
|
|
1049
|
+
* // Objects and arrays
|
|
1050
|
+
* console.log(Equal.equals({ x: 1 }, { x: 1 })) // true
|
|
1051
|
+
* console.log(Equal.equals([1, 2], [1, 2])) // true
|
|
1052
|
+
*
|
|
1053
|
+
* // Curried form
|
|
1054
|
+
* const is42 = Equal.equals(42)
|
|
1055
|
+
* console.log(is42(42)) // true
|
|
1056
|
+
* console.log(is42(0)) // false
|
|
1057
|
+
* ```
|
|
1058
|
+
*
|
|
1059
|
+
* @see {@link equals} — the main comparison function
|
|
1060
|
+
* @see {@link Equal} — the interface for custom equality
|
|
1061
|
+
* @see {@link Hash} — the companion hashing module
|
|
872
1062
|
*
|
|
873
1063
|
* @since 2.0.0
|
|
874
1064
|
*/
|
|
@@ -1130,6 +1320,57 @@ export * as FileSystem from "./FileSystem.ts"
|
|
|
1130
1320
|
export * as Filter from "./Filter.ts"
|
|
1131
1321
|
|
|
1132
1322
|
/**
|
|
1323
|
+
* Utilities for converting arbitrary JavaScript values into human-readable
|
|
1324
|
+
* strings, with support for circular references, redaction, and common JS
|
|
1325
|
+
* types that `JSON.stringify` handles poorly.
|
|
1326
|
+
*
|
|
1327
|
+
* Mental model:
|
|
1328
|
+
* - A `Formatter<Value, Format>` is a callable `(value: Value) => Format`.
|
|
1329
|
+
* - {@link format} is the general-purpose pretty-printer: it handles
|
|
1330
|
+
* primitives, arrays, objects, `BigInt`, `Symbol`, `Date`, `RegExp`,
|
|
1331
|
+
* `Set`, `Map`, class instances, and circular references.
|
|
1332
|
+
* - {@link formatJson} is a safe `JSON.stringify` wrapper that silently
|
|
1333
|
+
* drops circular references and applies redaction.
|
|
1334
|
+
* - Both functions accept a `space` option for indentation control.
|
|
1335
|
+
*
|
|
1336
|
+
* Common tasks:
|
|
1337
|
+
* - Pretty-print any value for debugging / logging -> {@link format}
|
|
1338
|
+
* - Serialize to JSON safely (no circular throws) -> {@link formatJson}
|
|
1339
|
+
* - Format a single object property key -> {@link formatPropertyKey}
|
|
1340
|
+
* - Format a property path like `["a"]["b"]` -> {@link formatPath}
|
|
1341
|
+
* - Format a `Date` to ISO string safely -> {@link formatDate}
|
|
1342
|
+
*
|
|
1343
|
+
* Gotchas:
|
|
1344
|
+
* - {@link format} output is **not** valid JSON; use {@link formatJson} when
|
|
1345
|
+
* you need parseable JSON.
|
|
1346
|
+
* - {@link format} calls `toString()` on objects by default; pass
|
|
1347
|
+
* `ignoreToString: true` to disable.
|
|
1348
|
+
* - {@link formatJson} silently omits circular references (the key is
|
|
1349
|
+
* dropped from the output).
|
|
1350
|
+
* - Values implementing the `Redactable` protocol are automatically
|
|
1351
|
+
* redacted by both {@link format} and {@link formatJson}.
|
|
1352
|
+
*
|
|
1353
|
+
* **Example** (Pretty-print a value)
|
|
1354
|
+
*
|
|
1355
|
+
* ```ts
|
|
1356
|
+
* import { Formatter } from "effect"
|
|
1357
|
+
*
|
|
1358
|
+
* const obj = { name: "Alice", scores: [100, 97] }
|
|
1359
|
+
* console.log(Formatter.format(obj))
|
|
1360
|
+
* // {"name":"Alice","scores":[100,97]}
|
|
1361
|
+
*
|
|
1362
|
+
* console.log(Formatter.format(obj, { space: 2 }))
|
|
1363
|
+
* // {
|
|
1364
|
+
* // "name": "Alice",
|
|
1365
|
+
* // "scores": [
|
|
1366
|
+
* // 100,
|
|
1367
|
+
* // 97
|
|
1368
|
+
* // ]
|
|
1369
|
+
* // }
|
|
1370
|
+
* ```
|
|
1371
|
+
*
|
|
1372
|
+
* See also: {@link Formatter}, {@link format}, {@link formatJson}
|
|
1373
|
+
*
|
|
1133
1374
|
* @since 4.0.0
|
|
1134
1375
|
*/
|
|
1135
1376
|
export * as Formatter from "./Formatter.ts"
|
|
@@ -1394,10 +1635,98 @@ export * as JsonPatch from "./JsonPatch.ts"
|
|
|
1394
1635
|
export * as JsonPointer from "./JsonPointer.ts"
|
|
1395
1636
|
|
|
1396
1637
|
/**
|
|
1638
|
+
* Convert JSON Schema documents between dialects (Draft-07, Draft-2020-12,
|
|
1639
|
+
* OpenAPI 3.0, OpenAPI 3.1). All dialects are normalized to an internal
|
|
1640
|
+
* `Document<"draft-2020-12">` representation before optional conversion to
|
|
1641
|
+
* an output dialect.
|
|
1642
|
+
*
|
|
1643
|
+
* ## Mental model
|
|
1644
|
+
*
|
|
1645
|
+
* - **JsonSchema** — a plain object with string keys; represents any single
|
|
1646
|
+
* JSON Schema node.
|
|
1647
|
+
* - **Dialect** — one of `"draft-07"`, `"draft-2020-12"`, `"openapi-3.1"`,
|
|
1648
|
+
* or `"openapi-3.0"`.
|
|
1649
|
+
* - **Document** — a structured container holding a root `schema`, its
|
|
1650
|
+
* companion `definitions`, and the target `dialect`. Definitions are
|
|
1651
|
+
* stored separately from the root schema so they can be relocated when
|
|
1652
|
+
* converting between dialects.
|
|
1653
|
+
* - **MultiDocument** — same as `Document` but carries multiple root
|
|
1654
|
+
* schemas (at least one). Useful when generating several schemas that
|
|
1655
|
+
* share a single definitions pool.
|
|
1656
|
+
* - **Definitions** — a `Record<string, JsonSchema>` keyed by definition
|
|
1657
|
+
* name. The ref pointer prefix depends on the dialect.
|
|
1658
|
+
* - **`from*` functions** — parse a raw JSON Schema object into the
|
|
1659
|
+
* canonical `Document<"draft-2020-12">`.
|
|
1660
|
+
* - **`to*` functions** — convert from the canonical representation to a
|
|
1661
|
+
* specific output dialect.
|
|
1662
|
+
*
|
|
1663
|
+
* ## Common tasks
|
|
1664
|
+
*
|
|
1665
|
+
* - Parse a Draft-07 schema → {@link fromSchemaDraft07}
|
|
1666
|
+
* - Parse a Draft-2020-12 schema → {@link fromSchemaDraft2020_12}
|
|
1667
|
+
* - Parse an OpenAPI 3.1 schema → {@link fromSchemaOpenApi3_1}
|
|
1668
|
+
* - Parse an OpenAPI 3.0 schema → {@link fromSchemaOpenApi3_0}
|
|
1669
|
+
* - Convert to Draft-07 output → {@link toDocumentDraft07}
|
|
1670
|
+
* - Convert to OpenAPI 3.1 output → {@link toMultiDocumentOpenApi3_1}
|
|
1671
|
+
* - Resolve a `$ref` against definitions → {@link resolve$ref}
|
|
1672
|
+
* - Inline the root `$ref` of a document → {@link resolveTopLevel$ref}
|
|
1673
|
+
*
|
|
1674
|
+
* ## Gotchas
|
|
1675
|
+
*
|
|
1676
|
+
* - All `from*` functions normalize to `Document<"draft-2020-12">`
|
|
1677
|
+
* regardless of the input dialect.
|
|
1678
|
+
* - Unsupported or unrecognized JSON Schema keywords are silently dropped
|
|
1679
|
+
* during conversion.
|
|
1680
|
+
* - Draft-07 tuple syntax (`items` as array + `additionalItems`) is
|
|
1681
|
+
* converted to 2020-12 form (`prefixItems` + `items`), and vice-versa.
|
|
1682
|
+
* - OpenAPI 3.0 `nullable: true` is expanded into `type` arrays or
|
|
1683
|
+
* `anyOf` unions. The `nullable` keyword is removed.
|
|
1684
|
+
* - OpenAPI 3.0 singular `example` is converted to `examples` (array).
|
|
1685
|
+
* - {@link resolve$ref} only looks up the last segment of the ref path in
|
|
1686
|
+
* the definitions map; it does not follow arbitrary JSON Pointer paths.
|
|
1687
|
+
*
|
|
1688
|
+
* ## Quickstart
|
|
1689
|
+
*
|
|
1690
|
+
* **Example** (Parse a Draft-07 schema and convert to Draft-07 output)
|
|
1691
|
+
*
|
|
1692
|
+
* ```ts
|
|
1693
|
+
* import { JsonSchema } from "effect"
|
|
1694
|
+
*
|
|
1695
|
+
* const raw: JsonSchema.JsonSchema = {
|
|
1696
|
+
* type: "object",
|
|
1697
|
+
* properties: {
|
|
1698
|
+
* name: { type: "string" }
|
|
1699
|
+
* },
|
|
1700
|
+
* required: ["name"]
|
|
1701
|
+
* }
|
|
1702
|
+
*
|
|
1703
|
+
* // Parse into canonical form
|
|
1704
|
+
* const doc = JsonSchema.fromSchemaDraft07(raw)
|
|
1705
|
+
*
|
|
1706
|
+
* // Convert back to Draft-07
|
|
1707
|
+
* const draft07 = JsonSchema.toDocumentDraft07(doc)
|
|
1708
|
+
*
|
|
1709
|
+
* console.log(draft07.dialect) // "draft-07"
|
|
1710
|
+
* console.log(draft07.schema) // { type: "object", properties: { name: { type: "string" } }, required: ["name"] }
|
|
1711
|
+
* ```
|
|
1712
|
+
*
|
|
1713
|
+
* ## See also
|
|
1714
|
+
*
|
|
1715
|
+
* - {@link Document}
|
|
1716
|
+
* - {@link MultiDocument}
|
|
1717
|
+
* - {@link fromSchemaDraft07}
|
|
1718
|
+
* - {@link toDocumentDraft07}
|
|
1719
|
+
* - {@link resolve$ref}
|
|
1720
|
+
*
|
|
1397
1721
|
* @since 4.0.0
|
|
1398
1722
|
*/
|
|
1399
1723
|
export * as JsonSchema from "./JsonSchema.ts"
|
|
1400
1724
|
|
|
1725
|
+
/**
|
|
1726
|
+
* @since 3.8.0
|
|
1727
|
+
*/
|
|
1728
|
+
export * as Latch from "./Latch.ts"
|
|
1729
|
+
|
|
1401
1730
|
/**
|
|
1402
1731
|
* A `Layer<ROut, E, RIn>` describes how to build one or more services in your
|
|
1403
1732
|
* application. Services can be injected into effects via
|
|
@@ -2103,11 +2432,100 @@ export * as NullOr from "./NullOr.ts"
|
|
|
2103
2432
|
export * as Number from "./Number.ts"
|
|
2104
2433
|
|
|
2105
2434
|
/**
|
|
2106
|
-
*
|
|
2107
|
-
*
|
|
2108
|
-
*
|
|
2435
|
+
* Composable, immutable accessors for reading and updating nested data
|
|
2436
|
+
* structures without mutation.
|
|
2437
|
+
*
|
|
2438
|
+
* **Mental model**
|
|
2439
|
+
*
|
|
2440
|
+
* - **Optic** — a first-class reference to a piece inside a larger structure.
|
|
2441
|
+
* Compose optics to reach deeply nested values.
|
|
2442
|
+
* - **Iso** — lossless two-way conversion (`get`/`set`) between `S` and `A`.
|
|
2443
|
+
* Extends both {@link Lens} and {@link Prism}.
|
|
2444
|
+
* - **Lens** — focuses on exactly one part of `S`. `get` always succeeds;
|
|
2445
|
+
* `replace` needs the original `S` to produce the updated whole.
|
|
2446
|
+
* - **Prism** — focuses on a part that may not be present (e.g. a union
|
|
2447
|
+
* variant). `getResult` can fail; `set` builds a new `S` from `A` alone.
|
|
2448
|
+
* - **Optional** — the most general optic: both reading and writing can fail.
|
|
2449
|
+
* - **Traversal** — focuses on zero or more elements of an array-like
|
|
2450
|
+
* structure. Technically `Optional<S, ReadonlyArray<A>>`.
|
|
2451
|
+
* - **Hierarchy** (strongest → weakest):
|
|
2452
|
+
* `Iso > Lens | Prism > Optional`. Composing a weaker optic with any other
|
|
2453
|
+
* produces the weaker kind.
|
|
2454
|
+
*
|
|
2455
|
+
* **Common tasks**
|
|
2456
|
+
*
|
|
2457
|
+
* - Start a chain → {@link id} (identity iso)
|
|
2458
|
+
* - Drill into a struct key → `.key("name")` / `.optionalKey("name")`
|
|
2459
|
+
* - Drill into a key that may not exist → `.at("name")`
|
|
2460
|
+
* - Narrow a tagged union → `.tag("MyVariant")`
|
|
2461
|
+
* - Narrow by type guard → `.refine(guard)`
|
|
2462
|
+
* - Add validation → `.check(Schema.isGreaterThan(0))`
|
|
2463
|
+
* - Filter out `undefined` → `.notUndefined()`
|
|
2464
|
+
* - Pick/omit struct keys → `.pick(["a","b"])` / `.omit(["c"])`
|
|
2465
|
+
* - Traverse array elements → `.forEach(el => el.key("field"))`
|
|
2466
|
+
* - Build an iso → {@link makeIso}
|
|
2467
|
+
* - Build a lens → {@link makeLens}
|
|
2468
|
+
* - Build a prism → {@link makePrism}, {@link fromChecks}
|
|
2469
|
+
* - Build an optional → {@link makeOptional}
|
|
2470
|
+
* - Focus into `Option.Some` → {@link some}
|
|
2471
|
+
* - Focus into `Result.Success`/`Failure` → {@link success}, {@link failure}
|
|
2472
|
+
* - Convert record ↔ entries → {@link entries}
|
|
2473
|
+
* - Extract all traversal elements → {@link getAll}
|
|
2474
|
+
*
|
|
2475
|
+
* **Gotchas**
|
|
2476
|
+
*
|
|
2477
|
+
* - Updates are structurally persistent: only nodes on the path are cloned.
|
|
2478
|
+
* Unrelated branches keep referential identity. However, **no-op updates
|
|
2479
|
+
* may still allocate** a new root — do not rely on reference identity to
|
|
2480
|
+
* detect no-ops.
|
|
2481
|
+
* - `replace` silently returns the original `S` when the optic cannot focus
|
|
2482
|
+
* (e.g. wrong tag). Use `replaceResult` for explicit failure.
|
|
2483
|
+
* - `modify` also returns the original `S` on focus failure — it never throws.
|
|
2484
|
+
* - `.key()` and `.optionalKey()` do not work on union types (compile error).
|
|
2485
|
+
* - Only plain objects (`Object.prototype` or `null` prototype) and arrays can
|
|
2486
|
+
* be cloned. Class instances cause a runtime error on `replace`/`modify`.
|
|
2487
|
+
*
|
|
2488
|
+
* **Quickstart**
|
|
2489
|
+
*
|
|
2490
|
+
* **Example** (reading and updating nested state)
|
|
2491
|
+
*
|
|
2492
|
+
* ```ts
|
|
2493
|
+
* import { Optic } from "effect"
|
|
2494
|
+
*
|
|
2495
|
+
* type State = { user: { name: string; age: number } }
|
|
2496
|
+
*
|
|
2497
|
+
* const _age = Optic.id<State>().key("user").key("age")
|
|
2498
|
+
*
|
|
2499
|
+
* const s1: State = { user: { name: "Alice", age: 30 } }
|
|
2500
|
+
*
|
|
2501
|
+
* // Read
|
|
2502
|
+
* console.log(_age.get(s1))
|
|
2503
|
+
* // Output: 30
|
|
2504
|
+
*
|
|
2505
|
+
* // Update immutably
|
|
2506
|
+
* const s2 = _age.replace(31, s1)
|
|
2507
|
+
* console.log(s2)
|
|
2508
|
+
* // Output: { user: { name: "Alice", age: 31 } }
|
|
2509
|
+
*
|
|
2510
|
+
* // Modify with a function
|
|
2511
|
+
* const s3 = _age.modify((n) => n + 1)(s1)
|
|
2512
|
+
* console.log(s3)
|
|
2513
|
+
* // Output: { user: { name: "Alice", age: 31 } }
|
|
2514
|
+
*
|
|
2515
|
+
* // Referential identity is preserved for unrelated branches
|
|
2516
|
+
* console.log(s2.user !== s1.user)
|
|
2517
|
+
* // Output: true (on the path)
|
|
2518
|
+
* ```
|
|
2519
|
+
*
|
|
2520
|
+
* **See also**
|
|
2521
|
+
*
|
|
2522
|
+
* - {@link id} — entry point for optic chains
|
|
2523
|
+
* - {@link Lens} / {@link Prism} / {@link Optional} — core optic types
|
|
2524
|
+
* - {@link Traversal} / {@link getAll} — multi-focus optics
|
|
2525
|
+
* - {@link some} / {@link success} / {@link failure} — built-in prisms
|
|
2109
2526
|
*
|
|
2110
2527
|
* @since 4.0.0
|
|
2528
|
+
* @module
|
|
2111
2529
|
*/
|
|
2112
2530
|
export * as Optic from "./Optic.ts"
|
|
2113
2531
|
|
|
@@ -2269,12 +2687,6 @@ export * as Order from "./Order.ts"
|
|
|
2269
2687
|
*/
|
|
2270
2688
|
export * as Ordering from "./Ordering.ts"
|
|
2271
2689
|
|
|
2272
|
-
/**
|
|
2273
|
-
* @since 3.19.4
|
|
2274
|
-
* @experimental
|
|
2275
|
-
*/
|
|
2276
|
-
export * as PartitionedSemaphore from "./PartitionedSemaphore.ts"
|
|
2277
|
-
|
|
2278
2690
|
/**
|
|
2279
2691
|
* @since 4.0.0
|
|
2280
2692
|
*/
|
|
@@ -2451,6 +2863,71 @@ export * as Redactable from "./Redactable.ts"
|
|
|
2451
2863
|
export * as Redacted from "./Redacted.ts"
|
|
2452
2864
|
|
|
2453
2865
|
/**
|
|
2866
|
+
* A module for reducing collections of values into a single result.
|
|
2867
|
+
*
|
|
2868
|
+
* A `Reducer<A>` extends {@link Combiner.Combiner} by adding an
|
|
2869
|
+
* `initialValue` (identity element) and a `combineAll` method that folds an
|
|
2870
|
+
* entire collection. Think `Array.prototype.reduce`, but packaged as a
|
|
2871
|
+
* reusable, composable value.
|
|
2872
|
+
*
|
|
2873
|
+
* ## Mental model
|
|
2874
|
+
*
|
|
2875
|
+
* - **Reducer** – a {@link Combiner.Combiner} plus an `initialValue` and a
|
|
2876
|
+
* `combineAll` method.
|
|
2877
|
+
* - **initialValue** – the neutral/identity element. Combining any value with
|
|
2878
|
+
* `initialValue` should return the original value unchanged (e.g. `0` for
|
|
2879
|
+
* addition, `""` for string concatenation).
|
|
2880
|
+
* - **combineAll** – folds an `Iterable<A>` starting from `initialValue`.
|
|
2881
|
+
* When omitted from {@link make}, a default left-to-right fold is used.
|
|
2882
|
+
* - **Purity** – all reducers produced by this module are pure; they never
|
|
2883
|
+
* mutate their arguments.
|
|
2884
|
+
* - **Composability** – reducers can be lifted into `Option`, `Struct`,
|
|
2885
|
+
* `Tuple`, `Record`, and other container types via helpers in those modules.
|
|
2886
|
+
* - **Subtype of Combiner** – every `Reducer` is also a valid
|
|
2887
|
+
* `Combiner`, so you can pass a `Reducer` anywhere a `Combiner` is
|
|
2888
|
+
* expected.
|
|
2889
|
+
*
|
|
2890
|
+
* ## Common tasks
|
|
2891
|
+
*
|
|
2892
|
+
* - Create a reducer from a combine function and initial value → {@link make}
|
|
2893
|
+
* - Swap argument order → {@link flip}
|
|
2894
|
+
* - Combine two values without an initial value → use {@link Combiner.Combiner}
|
|
2895
|
+
* instead
|
|
2896
|
+
*
|
|
2897
|
+
* ## Gotchas
|
|
2898
|
+
*
|
|
2899
|
+
* - `combineAll` on an empty iterable returns `initialValue`, not an error.
|
|
2900
|
+
* - The default `combineAll` folds left-to-right. If your `combine` is not
|
|
2901
|
+
* associative, order matters. Pass a custom `combineAll` to {@link make} if
|
|
2902
|
+
* you need different traversal or short-circuiting.
|
|
2903
|
+
* - A `Reducer` is also a valid `Combiner` — but a `Combiner` is *not* a
|
|
2904
|
+
* `Reducer` (it lacks `initialValue`).
|
|
2905
|
+
*
|
|
2906
|
+
* ## Quickstart
|
|
2907
|
+
*
|
|
2908
|
+
* **Example** (summing a list of numbers)
|
|
2909
|
+
*
|
|
2910
|
+
* ```ts
|
|
2911
|
+
* import { Reducer } from "effect"
|
|
2912
|
+
*
|
|
2913
|
+
* const Sum = Reducer.make<number>((a, b) => a + b, 0)
|
|
2914
|
+
*
|
|
2915
|
+
* console.log(Sum.combine(3, 4))
|
|
2916
|
+
* // Output: 7
|
|
2917
|
+
*
|
|
2918
|
+
* console.log(Sum.combineAll([1, 2, 3, 4]))
|
|
2919
|
+
* // Output: 10
|
|
2920
|
+
*
|
|
2921
|
+
* console.log(Sum.combineAll([]))
|
|
2922
|
+
* // Output: 0
|
|
2923
|
+
* ```
|
|
2924
|
+
*
|
|
2925
|
+
* ## See also
|
|
2926
|
+
*
|
|
2927
|
+
* - {@link make} – the primary constructor
|
|
2928
|
+
* - {@link Reducer} – the core interface
|
|
2929
|
+
* - {@link Combiner.Combiner} – the parent interface (no `initialValue`)
|
|
2930
|
+
*
|
|
2454
2931
|
* @since 4.0.0
|
|
2455
2932
|
*/
|
|
2456
2933
|
export * as Reducer from "./Reducer.ts"
|
|
@@ -3137,6 +3614,11 @@ export * as ScopedCache from "./ScopedCache.ts"
|
|
|
3137
3614
|
*/
|
|
3138
3615
|
export * as ScopedRef from "./ScopedRef.ts"
|
|
3139
3616
|
|
|
3617
|
+
/**
|
|
3618
|
+
* @since 2.0.0
|
|
3619
|
+
*/
|
|
3620
|
+
export * as Semaphore from "./Semaphore.ts"
|
|
3621
|
+
|
|
3140
3622
|
/**
|
|
3141
3623
|
* This module provides a data structure called `ServiceMap` that can be used
|
|
3142
3624
|
* 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,13 +589,13 @@ 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
|
|
|
588
596
|
/** @internal */
|
|
589
597
|
export const Error: new<A extends Record<string, any> = {}>(
|
|
590
|
-
args: Types.
|
|
598
|
+
args: Types.VoidIfEmpty<{ readonly [P in keyof A]: A[P] }>
|
|
591
599
|
) => Cause.YieldableError & Readonly<A> = (function() {
|
|
592
600
|
const plainArgsSymbol = Symbol.for("effect/Data/Error/plainArgs")
|
|
593
601
|
return class Base extends YieldableError {
|
|
@@ -611,8 +619,7 @@ export const Error: new<A extends Record<string, any> = {}>(
|
|
|
611
619
|
export const TaggedError = <Tag extends string>(
|
|
612
620
|
tag: Tag
|
|
613
621
|
): new<A extends Record<string, any> = {}>(
|
|
614
|
-
args: Types.
|
|
615
|
-
: { readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }
|
|
622
|
+
args: Types.VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P] }>
|
|
616
623
|
) => Cause.YieldableError & { readonly _tag: Tag } & Readonly<A> => {
|
|
617
624
|
class Base extends Error<{}> {
|
|
618
625
|
readonly _tag = tag
|