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/Schema.ts
CHANGED
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
+
/** @effect-diagnostics schemaStructWithTag:skip-file */
|
|
5
6
|
import type { StandardJSONSchemaV1, StandardSchemaV1 } from "@standard-schema/spec"
|
|
6
7
|
import * as Arr from "./Array.ts"
|
|
8
|
+
import * as BigDecimal_ from "./BigDecimal.ts"
|
|
7
9
|
import type * as Brand from "./Brand.ts"
|
|
8
10
|
import * as Cause_ from "./Cause.ts"
|
|
9
11
|
import type * as Combiner from "./Combiner.ts"
|
|
@@ -12,13 +14,15 @@ import * as DateTime from "./DateTime.ts"
|
|
|
12
14
|
import type { Differ } from "./Differ.ts"
|
|
13
15
|
import * as Duration_ from "./Duration.ts"
|
|
14
16
|
import * as Effect from "./Effect.ts"
|
|
15
|
-
import * as
|
|
17
|
+
import * as Encoding from "./Encoding.ts"
|
|
16
18
|
import * as Equal from "./Equal.ts"
|
|
17
19
|
import * as Equivalence from "./Equivalence.ts"
|
|
18
20
|
import * as Exit_ from "./Exit.ts"
|
|
19
21
|
import type { Formatter } from "./Formatter.ts"
|
|
20
22
|
import { format, formatDate, formatPropertyKey } from "./Formatter.ts"
|
|
21
23
|
import { identity } from "./Function.ts"
|
|
24
|
+
import * as HashMap_ from "./HashMap.ts"
|
|
25
|
+
import * as HashSet_ from "./HashSet.ts"
|
|
22
26
|
import * as core from "./internal/core.ts"
|
|
23
27
|
import * as InternalAnnotations from "./internal/schema/annotations.ts"
|
|
24
28
|
import * as InternalArbitrary from "./internal/schema/arbitrary.ts"
|
|
@@ -321,7 +325,7 @@ export declare namespace Schema {
|
|
|
321
325
|
/**
|
|
322
326
|
* @since 4.0.0
|
|
323
327
|
*/
|
|
324
|
-
export type Type<S extends Top
|
|
328
|
+
export type Type<S> = S extends Top ? S["Type"] : never
|
|
325
329
|
}
|
|
326
330
|
|
|
327
331
|
/**
|
|
@@ -349,15 +353,15 @@ export declare namespace Codec {
|
|
|
349
353
|
/**
|
|
350
354
|
* @since 4.0.0
|
|
351
355
|
*/
|
|
352
|
-
export type Encoded<S extends Top
|
|
356
|
+
export type Encoded<S> = S extends Top ? S["Encoded"] : never
|
|
353
357
|
/**
|
|
354
358
|
* @since 4.0.0
|
|
355
359
|
*/
|
|
356
|
-
export type DecodingServices<S extends Top
|
|
360
|
+
export type DecodingServices<S> = S extends Top ? S["DecodingServices"] : never
|
|
357
361
|
/**
|
|
358
362
|
* @since 4.0.0
|
|
359
363
|
*/
|
|
360
|
-
export type EncodingServices<S extends Top
|
|
364
|
+
export type EncodingServices<S> = S extends Top ? S["EncodingServices"] : never
|
|
361
365
|
/**
|
|
362
366
|
* @since 4.0.0
|
|
363
367
|
*/
|
|
@@ -1801,11 +1805,6 @@ export declare namespace Record {
|
|
|
1801
1805
|
readonly "Iso": PropertyKey
|
|
1802
1806
|
}
|
|
1803
1807
|
|
|
1804
|
-
/**
|
|
1805
|
-
* @since 4.0.0
|
|
1806
|
-
*/
|
|
1807
|
-
export type Record = Record$<Record.Key, Top>
|
|
1808
|
-
|
|
1809
1808
|
/**
|
|
1810
1809
|
* @since 4.0.0
|
|
1811
1810
|
*/
|
|
@@ -1864,14 +1863,14 @@ export declare namespace Record {
|
|
|
1864
1863
|
/**
|
|
1865
1864
|
* @since 4.0.0
|
|
1866
1865
|
*/
|
|
1867
|
-
export interface Record
|
|
1866
|
+
export interface $Record<Key extends Record.Key, Value extends Top> extends
|
|
1868
1867
|
Bottom<
|
|
1869
1868
|
Record.Type<Key, Value>,
|
|
1870
1869
|
Record.Encoded<Key, Value>,
|
|
1871
1870
|
Record.DecodingServices<Key, Value>,
|
|
1872
1871
|
Record.EncodingServices<Key, Value>,
|
|
1873
1872
|
AST.Objects,
|
|
1874
|
-
Record
|
|
1873
|
+
$Record<Key, Value>,
|
|
1875
1874
|
Simplify<Record.MakeIn<Key, Value>>,
|
|
1876
1875
|
Record.Iso<Key, Value>
|
|
1877
1876
|
>
|
|
@@ -1893,7 +1892,7 @@ export function Record<Key extends Record.Key, Value extends Top>(
|
|
|
1893
1892
|
readonly encode?: Combiner.Combiner<readonly [Key["Encoded"], Value["Encoded"]]> | undefined
|
|
1894
1893
|
}
|
|
1895
1894
|
}
|
|
1896
|
-
): Record
|
|
1895
|
+
): $Record<Key, Value> {
|
|
1897
1896
|
const keyValueCombiner = options?.keyValueCombiner?.decode || options?.keyValueCombiner?.encode
|
|
1898
1897
|
? new AST.KeyValueCombiner(options.keyValueCombiner.decode, options.keyValueCombiner.encode)
|
|
1899
1898
|
: undefined
|
|
@@ -1912,7 +1911,7 @@ export declare namespace StructWithRest {
|
|
|
1912
1911
|
/**
|
|
1913
1912
|
* @since 4.0.0
|
|
1914
1913
|
*/
|
|
1915
|
-
export type Records = ReadonlyArray<Record.
|
|
1914
|
+
export type Records = ReadonlyArray<$Record<Record.Key, Top>>
|
|
1916
1915
|
|
|
1917
1916
|
type MergeTuple<T extends ReadonlyArray<unknown>> = T extends readonly [infer Head, ...infer Tail] ?
|
|
1918
1917
|
Head & MergeTuple<Tail>
|
|
@@ -2244,14 +2243,14 @@ export function TupleWithRest<S extends Tuple<Tuple.Elements>, const Rest extend
|
|
|
2244
2243
|
/**
|
|
2245
2244
|
* @since 4.0.0
|
|
2246
2245
|
*/
|
|
2247
|
-
export interface Array
|
|
2246
|
+
export interface $Array<S extends Top> extends
|
|
2248
2247
|
Bottom<
|
|
2249
2248
|
ReadonlyArray<S["Type"]>,
|
|
2250
2249
|
ReadonlyArray<S["Encoded"]>,
|
|
2251
2250
|
S["DecodingServices"],
|
|
2252
2251
|
S["EncodingServices"],
|
|
2253
2252
|
AST.Arrays,
|
|
2254
|
-
Array
|
|
2253
|
+
$Array<S>,
|
|
2255
2254
|
ReadonlyArray<S["~type.make"]>,
|
|
2256
2255
|
ReadonlyArray<S["Iso"]>
|
|
2257
2256
|
>
|
|
@@ -2261,8 +2260,8 @@ export interface Array$<S extends Top> extends
|
|
|
2261
2260
|
}
|
|
2262
2261
|
|
|
2263
2262
|
interface ArrayLambda extends Lambda {
|
|
2264
|
-
<S extends Top>(self: S): Array
|
|
2265
|
-
readonly "~lambda.out": this["~lambda.in"] extends Top ? Array
|
|
2263
|
+
<S extends Top>(self: S): $Array<S>
|
|
2264
|
+
readonly "~lambda.out": this["~lambda.in"] extends Top ? $Array<this["~lambda.in"]> : never
|
|
2266
2265
|
}
|
|
2267
2266
|
|
|
2268
2267
|
/**
|
|
@@ -2306,7 +2305,7 @@ export const NonEmptyArray = Struct_.lambda<NonEmptyArrayLambda>((schema) =>
|
|
|
2306
2305
|
/**
|
|
2307
2306
|
* @since 4.0.0
|
|
2308
2307
|
*/
|
|
2309
|
-
export interface UniqueArray<S extends Top> extends Array
|
|
2308
|
+
export interface UniqueArray<S extends Top> extends $Array<S> {}
|
|
2310
2309
|
|
|
2311
2310
|
/**
|
|
2312
2311
|
* Returns a new array schema that ensures all elements are unique.
|
|
@@ -3309,12 +3308,12 @@ export interface TaggedUnion<Cases extends Record<string, Top>> extends
|
|
|
3309
3308
|
readonly guards: { [K in keyof Cases]: (u: unknown) => u is Cases[K]["Type"] }
|
|
3310
3309
|
readonly match: {
|
|
3311
3310
|
<Output>(
|
|
3312
|
-
value: Cases[keyof Cases]["Type"],
|
|
3313
3311
|
cases: { [K in keyof Cases]: (value: Cases[K]["Type"]) => Output }
|
|
3314
|
-
): Output
|
|
3312
|
+
): (value: Cases[keyof Cases]["Type"]) => Output
|
|
3315
3313
|
<Output>(
|
|
3314
|
+
value: Cases[keyof Cases]["Type"],
|
|
3316
3315
|
cases: { [K in keyof Cases]: (value: Cases[K]["Type"]) => Output }
|
|
3317
|
-
):
|
|
3316
|
+
): Output
|
|
3318
3317
|
}
|
|
3319
3318
|
}
|
|
3320
3319
|
|
|
@@ -4755,6 +4754,63 @@ export const isBetweenBigInt = makeIsBetween({
|
|
|
4755
4754
|
})
|
|
4756
4755
|
})
|
|
4757
4756
|
|
|
4757
|
+
/**
|
|
4758
|
+
* Validates that a BigDecimal is greater than the specified value (exclusive).
|
|
4759
|
+
*
|
|
4760
|
+
* @category BigDecimal checks
|
|
4761
|
+
* @since 4.0.0
|
|
4762
|
+
*/
|
|
4763
|
+
export const isGreaterThanBigDecimal = makeIsGreaterThan({
|
|
4764
|
+
order: BigDecimal_.Order,
|
|
4765
|
+
formatter: (bd) => BigDecimal_.format(bd)
|
|
4766
|
+
})
|
|
4767
|
+
|
|
4768
|
+
/**
|
|
4769
|
+
* Validates that a BigDecimal is greater than or equal to the specified value
|
|
4770
|
+
* (inclusive).
|
|
4771
|
+
*
|
|
4772
|
+
* @category BigDecimal checks
|
|
4773
|
+
* @since 4.0.0
|
|
4774
|
+
*/
|
|
4775
|
+
export const isGreaterThanOrEqualToBigDecimal = makeIsGreaterThanOrEqualTo({
|
|
4776
|
+
order: BigDecimal_.Order,
|
|
4777
|
+
formatter: (bd) => BigDecimal_.format(bd)
|
|
4778
|
+
})
|
|
4779
|
+
|
|
4780
|
+
/**
|
|
4781
|
+
* Validates that a BigDecimal is less than the specified value (exclusive).
|
|
4782
|
+
*
|
|
4783
|
+
* @category BigDecimal checks
|
|
4784
|
+
* @since 4.0.0
|
|
4785
|
+
*/
|
|
4786
|
+
export const isLessThanBigDecimal = makeIsLessThan({
|
|
4787
|
+
order: BigDecimal_.Order,
|
|
4788
|
+
formatter: (bd) => BigDecimal_.format(bd)
|
|
4789
|
+
})
|
|
4790
|
+
|
|
4791
|
+
/**
|
|
4792
|
+
* Validates that a BigDecimal is less than or equal to the specified value
|
|
4793
|
+
* (inclusive).
|
|
4794
|
+
*
|
|
4795
|
+
* @category BigDecimal checks
|
|
4796
|
+
* @since 4.0.0
|
|
4797
|
+
*/
|
|
4798
|
+
export const isLessThanOrEqualToBigDecimal = makeIsLessThanOrEqualTo({
|
|
4799
|
+
order: BigDecimal_.Order,
|
|
4800
|
+
formatter: (bd) => BigDecimal_.format(bd)
|
|
4801
|
+
})
|
|
4802
|
+
|
|
4803
|
+
/**
|
|
4804
|
+
* Validates that a BigDecimal is within a specified range.
|
|
4805
|
+
*
|
|
4806
|
+
* @category BigDecimal checks
|
|
4807
|
+
* @since 4.0.0
|
|
4808
|
+
*/
|
|
4809
|
+
export const isBetweenBigDecimal = makeIsBetween({
|
|
4810
|
+
order: BigDecimal_.Order,
|
|
4811
|
+
formatter: (bd) => BigDecimal_.format(bd)
|
|
4812
|
+
})
|
|
4813
|
+
|
|
4758
4814
|
/**
|
|
4759
4815
|
* Validates that a value has at least the specified length. Works with strings
|
|
4760
4816
|
* and arrays.
|
|
@@ -5651,15 +5707,15 @@ export function RedactedFromValue<S extends Top>(value: S, options?: {
|
|
|
5651
5707
|
}
|
|
5652
5708
|
|
|
5653
5709
|
/**
|
|
5654
|
-
* @category
|
|
5710
|
+
* @category CauseReason
|
|
5655
5711
|
* @since 4.0.0
|
|
5656
5712
|
*/
|
|
5657
|
-
export interface
|
|
5713
|
+
export interface CauseReason<E extends Top, D extends Top> extends
|
|
5658
5714
|
declareConstructor<
|
|
5659
5715
|
Cause_.Reason<E["Type"]>,
|
|
5660
5716
|
Cause_.Reason<E["Encoded"]>,
|
|
5661
5717
|
readonly [E, D],
|
|
5662
|
-
|
|
5718
|
+
CauseReasonIso<E, D>
|
|
5663
5719
|
>
|
|
5664
5720
|
{
|
|
5665
5721
|
readonly error: E
|
|
@@ -5667,10 +5723,10 @@ export interface CauseFailure<E extends Top, D extends Top> extends
|
|
|
5667
5723
|
}
|
|
5668
5724
|
|
|
5669
5725
|
/**
|
|
5670
|
-
* @category
|
|
5726
|
+
* @category CauseReason
|
|
5671
5727
|
* @since 4.0.0
|
|
5672
5728
|
*/
|
|
5673
|
-
export type
|
|
5729
|
+
export type CauseReasonIso<E extends Top, D extends Top> = {
|
|
5674
5730
|
readonly _tag: "Fail"
|
|
5675
5731
|
readonly error: E["Iso"]
|
|
5676
5732
|
} | {
|
|
@@ -5682,11 +5738,11 @@ export type CauseFailureIso<E extends Top, D extends Top> = {
|
|
|
5682
5738
|
}
|
|
5683
5739
|
|
|
5684
5740
|
/**
|
|
5685
|
-
* @category
|
|
5741
|
+
* @category CauseReason
|
|
5686
5742
|
* @since 4.0.0
|
|
5687
5743
|
*/
|
|
5688
|
-
export function
|
|
5689
|
-
const schema = declareConstructor<Cause_.Reason<E["Type"]>, Cause_.Reason<E["Encoded"]>,
|
|
5744
|
+
export function CauseReason<E extends Top, D extends Top>(error: E, defect: D): CauseReason<E, D> {
|
|
5745
|
+
const schema = declareConstructor<Cause_.Reason<E["Type"]>, Cause_.Reason<E["Encoded"]>, CauseReasonIso<E, D>>()(
|
|
5690
5746
|
[error, defect],
|
|
5691
5747
|
([error, defect]) => (input, ast, options) => {
|
|
5692
5748
|
if (!Cause_.isReason(input)) {
|
|
@@ -5719,7 +5775,7 @@ export function CauseFailure<E extends Top, D extends Top>(error: E, defect: D):
|
|
|
5719
5775
|
_tag: "effect/Cause/Failure"
|
|
5720
5776
|
},
|
|
5721
5777
|
generation: {
|
|
5722
|
-
runtime: `Schema.
|
|
5778
|
+
runtime: `Schema.CauseReason(?, ?)`,
|
|
5723
5779
|
Type: `Cause.Failure<?, ?>`,
|
|
5724
5780
|
importDeclaration: `import * as Cause from "effect/Cause"`
|
|
5725
5781
|
},
|
|
@@ -5745,15 +5801,15 @@ export function CauseFailure<E extends Top, D extends Top>(error: E, defect: D):
|
|
|
5745
5801
|
encode: identity
|
|
5746
5802
|
})
|
|
5747
5803
|
),
|
|
5748
|
-
toArbitrary: ([error, defect]) =>
|
|
5749
|
-
toEquivalence: ([error, defect]) =>
|
|
5750
|
-
toFormatter: ([error, defect]) =>
|
|
5804
|
+
toArbitrary: ([error, defect]) => causeReasonToArbitrary(error, defect),
|
|
5805
|
+
toEquivalence: ([error, defect]) => causeReasonToEquivalence(error, defect),
|
|
5806
|
+
toFormatter: ([error, defect]) => causeReasonToFormatter(error, defect)
|
|
5751
5807
|
}
|
|
5752
5808
|
)
|
|
5753
5809
|
return make(schema.ast, { error, defect })
|
|
5754
5810
|
}
|
|
5755
5811
|
|
|
5756
|
-
function
|
|
5812
|
+
function causeReasonToArbitrary<E, D>(error: FastCheck.Arbitrary<E>, defect: FastCheck.Arbitrary<D>) {
|
|
5757
5813
|
return (fc: typeof FastCheck, ctx: Annotations.ToArbitrary.Context | undefined) => {
|
|
5758
5814
|
return fc.oneof(
|
|
5759
5815
|
ctx?.isSuspend ? { maxDepth: 2, depthIdentifier: "Cause.Failure" } : {},
|
|
@@ -5765,7 +5821,7 @@ function causeFailureToArbitrary<E, D>(error: FastCheck.Arbitrary<E>, defect: Fa
|
|
|
5765
5821
|
}
|
|
5766
5822
|
}
|
|
5767
5823
|
|
|
5768
|
-
function
|
|
5824
|
+
function causeReasonToEquivalence<E>(error: Equivalence.Equivalence<E>, defect: Equivalence.Equivalence<unknown>) {
|
|
5769
5825
|
return (a: Cause_.Reason<E>, b: Cause_.Reason<E>) => {
|
|
5770
5826
|
if (a._tag !== b._tag) return false
|
|
5771
5827
|
switch (a._tag) {
|
|
@@ -5779,7 +5835,7 @@ function causeFailureToEquivalence<E>(error: Equivalence.Equivalence<E>, defect:
|
|
|
5779
5835
|
}
|
|
5780
5836
|
}
|
|
5781
5837
|
|
|
5782
|
-
function
|
|
5838
|
+
function causeReasonToFormatter<E>(error: Formatter<E>, defect: Formatter<unknown>) {
|
|
5783
5839
|
return (t: Cause_.Reason<E>) => {
|
|
5784
5840
|
switch (t._tag) {
|
|
5785
5841
|
case "Fail":
|
|
@@ -5812,7 +5868,7 @@ export interface Cause<E extends Top, D extends Top> extends
|
|
|
5812
5868
|
* @category Cause
|
|
5813
5869
|
* @since 4.0.0
|
|
5814
5870
|
*/
|
|
5815
|
-
export type CauseIso<E extends Top, D extends Top> = ReadonlyArray<
|
|
5871
|
+
export type CauseIso<E extends Top, D extends Top> = ReadonlyArray<CauseReasonIso<E, D>>
|
|
5816
5872
|
|
|
5817
5873
|
/**
|
|
5818
5874
|
* @category Cause
|
|
@@ -5821,15 +5877,17 @@ export type CauseIso<E extends Top, D extends Top> = ReadonlyArray<CauseFailureI
|
|
|
5821
5877
|
export function Cause<E extends Top, D extends Top>(error: E, defect: D): Cause<E, D> {
|
|
5822
5878
|
const schema = declareConstructor<Cause_.Cause<E["Type"]>, Cause_.Cause<E["Encoded"]>, CauseIso<E, D>>()(
|
|
5823
5879
|
[error, defect],
|
|
5824
|
-
([error, defect]) =>
|
|
5825
|
-
|
|
5826
|
-
|
|
5880
|
+
([error, defect]) => {
|
|
5881
|
+
const failures = Array(CauseReason(error, defect))
|
|
5882
|
+
return (input, ast, options) => {
|
|
5883
|
+
if (!Cause_.isCause(input)) {
|
|
5884
|
+
return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)))
|
|
5885
|
+
}
|
|
5886
|
+
return Effect.mapBothEager(Parser.decodeUnknownEffect(failures)(input.reasons, options), {
|
|
5887
|
+
onSuccess: Cause_.fromReasons,
|
|
5888
|
+
onFailure: (issue) => new Issue.Composite(ast, Option_.some(input), [new Issue.Pointer(["failures"], issue)])
|
|
5889
|
+
})
|
|
5827
5890
|
}
|
|
5828
|
-
const failures = Array(CauseFailure(error, defect))
|
|
5829
|
-
return Effect.mapBothEager(Parser.decodeUnknownEffect(failures)(input.reasons, options), {
|
|
5830
|
-
onSuccess: Cause_.fromReasons,
|
|
5831
|
-
onFailure: (issue) => new Issue.Composite(ast, Option_.some(input), [new Issue.Pointer(["failures"], issue)])
|
|
5832
|
-
})
|
|
5833
5891
|
},
|
|
5834
5892
|
{
|
|
5835
5893
|
typeConstructor: {
|
|
@@ -5843,7 +5901,7 @@ export function Cause<E extends Top, D extends Top>(error: E, defect: D): Cause<
|
|
|
5843
5901
|
expected: "Cause",
|
|
5844
5902
|
toCodec: ([error, defect]) =>
|
|
5845
5903
|
link<Cause_.Cause<E["Encoded"]>>()(
|
|
5846
|
-
Array(
|
|
5904
|
+
Array(CauseReason(error, defect)),
|
|
5847
5905
|
Transformation.transform({
|
|
5848
5906
|
decode: Cause_.fromReasons,
|
|
5849
5907
|
encode: ({ reasons: failures }) => failures
|
|
@@ -5859,18 +5917,18 @@ export function Cause<E extends Top, D extends Top>(error: E, defect: D): Cause<
|
|
|
5859
5917
|
|
|
5860
5918
|
function causeToArbitrary<E, D>(error: FastCheck.Arbitrary<E>, defect: FastCheck.Arbitrary<D>) {
|
|
5861
5919
|
return (fc: typeof FastCheck, ctx: Annotations.ToArbitrary.Context | undefined) => {
|
|
5862
|
-
return fc.array(
|
|
5920
|
+
return fc.array(causeReasonToArbitrary(error, defect)(fc, ctx)).map(Cause_.fromReasons)
|
|
5863
5921
|
}
|
|
5864
5922
|
}
|
|
5865
5923
|
|
|
5866
5924
|
function causeToEquivalence<E>(error: Equivalence.Equivalence<E>, defect: Equivalence.Equivalence<unknown>) {
|
|
5867
|
-
const failures = Equivalence.Array(
|
|
5925
|
+
const failures = Equivalence.Array(causeReasonToEquivalence(error, defect))
|
|
5868
5926
|
return (a: Cause_.Cause<E>, b: Cause_.Cause<E>) => failures(a.reasons, b.reasons)
|
|
5869
5927
|
}
|
|
5870
5928
|
|
|
5871
5929
|
function causeToFormatter<E>(error: Formatter<E>, defect: Formatter<unknown>) {
|
|
5872
|
-
const
|
|
5873
|
-
return (t: Cause_.Cause<E>) => `Cause([${t.reasons.map(
|
|
5930
|
+
const causeReason = causeReasonToFormatter(error, defect)
|
|
5931
|
+
return (t: Cause_.Cause<E>) => `Cause([${t.reasons.map(causeReason).join(", ")}])`
|
|
5874
5932
|
}
|
|
5875
5933
|
|
|
5876
5934
|
/**
|
|
@@ -6044,28 +6102,32 @@ export function Exit<A extends Top, E extends Top, D extends Top>(value: A, erro
|
|
|
6044
6102
|
ExitIso<A, E, D>
|
|
6045
6103
|
>()(
|
|
6046
6104
|
[value, error, defect],
|
|
6047
|
-
([value, error, defect]) =>
|
|
6048
|
-
if (!Exit_.isExit(input)) {
|
|
6049
|
-
return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)))
|
|
6050
|
-
}
|
|
6105
|
+
([value, error, defect]) => {
|
|
6051
6106
|
const cause = Cause(error, defect)
|
|
6052
|
-
|
|
6053
|
-
|
|
6054
|
-
return Effect.
|
|
6055
|
-
|
|
6056
|
-
|
|
6057
|
-
|
|
6058
|
-
|
|
6059
|
-
|
|
6060
|
-
|
|
6061
|
-
|
|
6062
|
-
|
|
6063
|
-
|
|
6064
|
-
|
|
6065
|
-
|
|
6066
|
-
|
|
6067
|
-
|
|
6068
|
-
|
|
6107
|
+
return (input, ast, options) => {
|
|
6108
|
+
if (!Exit_.isExit(input)) {
|
|
6109
|
+
return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)))
|
|
6110
|
+
}
|
|
6111
|
+
switch (input._tag) {
|
|
6112
|
+
case "Success":
|
|
6113
|
+
return Effect.mapBothEager(
|
|
6114
|
+
Parser.decodeUnknownEffect(value)(input.value, options),
|
|
6115
|
+
{
|
|
6116
|
+
onSuccess: Exit_.succeed,
|
|
6117
|
+
onFailure: (issue) =>
|
|
6118
|
+
new Issue.Composite(ast, Option_.some(input), [new Issue.Pointer(["value"], issue)])
|
|
6119
|
+
}
|
|
6120
|
+
)
|
|
6121
|
+
case "Failure":
|
|
6122
|
+
return Effect.mapBothEager(
|
|
6123
|
+
Parser.decodeUnknownEffect(cause)(input.cause, options),
|
|
6124
|
+
{
|
|
6125
|
+
onSuccess: Exit_.failCause,
|
|
6126
|
+
onFailure: (issue) =>
|
|
6127
|
+
new Issue.Composite(ast, Option_.some(input), [new Issue.Pointer(["cause"], issue)])
|
|
6128
|
+
}
|
|
6129
|
+
)
|
|
6130
|
+
}
|
|
6069
6131
|
}
|
|
6070
6132
|
},
|
|
6071
6133
|
{
|
|
@@ -6131,7 +6193,7 @@ export function Exit<A extends Top, E extends Top, D extends Top>(value: A, erro
|
|
|
6131
6193
|
* @category ReadonlyMap
|
|
6132
6194
|
* @since 4.0.0
|
|
6133
6195
|
*/
|
|
6134
|
-
export interface ReadonlyMap
|
|
6196
|
+
export interface $ReadonlyMap<Key extends Top, Value extends Top> extends
|
|
6135
6197
|
declareConstructor<
|
|
6136
6198
|
globalThis.ReadonlyMap<Key["Type"], Value["Type"]>,
|
|
6137
6199
|
globalThis.ReadonlyMap<Key["Encoded"], Value["Encoded"]>,
|
|
@@ -6156,25 +6218,28 @@ export type ReadonlyMapIso<Key extends Top, Value extends Top> = ReadonlyArray<r
|
|
|
6156
6218
|
* @category ReadonlyMap
|
|
6157
6219
|
* @since 4.0.0
|
|
6158
6220
|
*/
|
|
6159
|
-
export function ReadonlyMap<Key extends Top, Value extends Top>(key: Key, value: Value): ReadonlyMap
|
|
6221
|
+
export function ReadonlyMap<Key extends Top, Value extends Top>(key: Key, value: Value): $ReadonlyMap<Key, Value> {
|
|
6160
6222
|
const schema = declareConstructor<
|
|
6161
6223
|
globalThis.ReadonlyMap<Key["Type"], Value["Type"]>,
|
|
6162
6224
|
globalThis.ReadonlyMap<Key["Encoded"], Value["Encoded"]>,
|
|
6163
6225
|
ReadonlyMapIso<Key, Value>
|
|
6164
6226
|
>()(
|
|
6165
6227
|
[key, value],
|
|
6166
|
-
([key, value]) =>
|
|
6167
|
-
|
|
6168
|
-
|
|
6169
|
-
|
|
6170
|
-
|
|
6171
|
-
|
|
6172
|
-
|
|
6173
|
-
|
|
6174
|
-
|
|
6175
|
-
|
|
6228
|
+
([key, value]) => {
|
|
6229
|
+
const array = Array(Tuple([key, value]))
|
|
6230
|
+
return (input, ast, options) => {
|
|
6231
|
+
if (input instanceof globalThis.Map) {
|
|
6232
|
+
return Effect.mapBothEager(
|
|
6233
|
+
Parser.decodeUnknownEffect(array)([...input], options),
|
|
6234
|
+
{
|
|
6235
|
+
onSuccess: (array: ReadonlyArray<readonly [Key["Type"], Value["Type"]]>) => new globalThis.Map(array),
|
|
6236
|
+
onFailure: (issue) =>
|
|
6237
|
+
new Issue.Composite(ast, Option_.some(input), [new Issue.Pointer(["entries"], issue)])
|
|
6238
|
+
}
|
|
6239
|
+
)
|
|
6240
|
+
}
|
|
6241
|
+
return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)))
|
|
6176
6242
|
}
|
|
6177
|
-
return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)))
|
|
6178
6243
|
},
|
|
6179
6244
|
{
|
|
6180
6245
|
typeConstructor: {
|
|
@@ -6214,11 +6279,102 @@ export function ReadonlyMap<Key extends Top, Value extends Top>(key: Key, value:
|
|
|
6214
6279
|
return make(schema.ast, { key, value })
|
|
6215
6280
|
}
|
|
6216
6281
|
|
|
6282
|
+
/**
|
|
6283
|
+
* @category HashMap
|
|
6284
|
+
* @since 4.0.0
|
|
6285
|
+
*/
|
|
6286
|
+
export interface HashMap<Key extends Top, Value extends Top> extends
|
|
6287
|
+
declareConstructor<
|
|
6288
|
+
HashMap_.HashMap<Key["Type"], Value["Type"]>,
|
|
6289
|
+
HashMap_.HashMap<Key["Encoded"], Value["Encoded"]>,
|
|
6290
|
+
readonly [Key, Value],
|
|
6291
|
+
HashMapIso<Key, Value>
|
|
6292
|
+
>
|
|
6293
|
+
{
|
|
6294
|
+
readonly key: Key
|
|
6295
|
+
readonly value: Value
|
|
6296
|
+
}
|
|
6297
|
+
|
|
6298
|
+
/**
|
|
6299
|
+
* @category HashMap
|
|
6300
|
+
* @since 4.0.0
|
|
6301
|
+
*/
|
|
6302
|
+
export type HashMapIso<Key extends Top, Value extends Top> = ReadonlyArray<readonly [Key["Iso"], Value["Iso"]]>
|
|
6303
|
+
|
|
6304
|
+
/**
|
|
6305
|
+
* Creates a schema that validates a `HashMap` where keys and values must
|
|
6306
|
+
* conform to the provided schemas.
|
|
6307
|
+
*
|
|
6308
|
+
* @category HashMap
|
|
6309
|
+
* @since 4.0.0
|
|
6310
|
+
*/
|
|
6311
|
+
export function HashMap<Key extends Top, Value extends Top>(key: Key, value: Value): HashMap<Key, Value> {
|
|
6312
|
+
const schema = declareConstructor<
|
|
6313
|
+
HashMap_.HashMap<Key["Type"], Value["Type"]>,
|
|
6314
|
+
HashMap_.HashMap<Key["Encoded"], Value["Encoded"]>,
|
|
6315
|
+
HashMapIso<Key, Value>
|
|
6316
|
+
>()(
|
|
6317
|
+
[key, value],
|
|
6318
|
+
([key, value]) => {
|
|
6319
|
+
const entries = Array(Tuple([key, value]))
|
|
6320
|
+
return (input, ast, options) => {
|
|
6321
|
+
if (HashMap_.isHashMap(input)) {
|
|
6322
|
+
return Effect.mapBothEager(
|
|
6323
|
+
Parser.decodeUnknownEffect(entries)(HashMap_.toEntries(input), options),
|
|
6324
|
+
{
|
|
6325
|
+
onSuccess: HashMap_.fromIterable,
|
|
6326
|
+
onFailure: (issue) =>
|
|
6327
|
+
new Issue.Composite(ast, Option_.some(input), [new Issue.Pointer(["entries"], issue)])
|
|
6328
|
+
}
|
|
6329
|
+
)
|
|
6330
|
+
}
|
|
6331
|
+
return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)))
|
|
6332
|
+
}
|
|
6333
|
+
},
|
|
6334
|
+
{
|
|
6335
|
+
typeConstructor: {
|
|
6336
|
+
_tag: "effect/HashMap"
|
|
6337
|
+
},
|
|
6338
|
+
generation: {
|
|
6339
|
+
runtime: `Schema.HashMap(?, ?)`,
|
|
6340
|
+
Type: `HashMap.HashMap<?, ?>`,
|
|
6341
|
+
importDeclaration: `import * as HashMap from "effect/HashMap"`
|
|
6342
|
+
},
|
|
6343
|
+
expected: "HashMap",
|
|
6344
|
+
toCodec: ([key, value]) =>
|
|
6345
|
+
link<HashMap_.HashMap<Key["Encoded"], Value["Encoded"]>>()(
|
|
6346
|
+
Array(Tuple([key, value])),
|
|
6347
|
+
Transformation.transform({
|
|
6348
|
+
decode: HashMap_.fromIterable,
|
|
6349
|
+
encode: HashMap_.toEntries
|
|
6350
|
+
})
|
|
6351
|
+
),
|
|
6352
|
+
toArbitrary: ([key, value]) => (fc, ctx) => {
|
|
6353
|
+
return fc.oneof(
|
|
6354
|
+
ctx?.isSuspend ? { maxDepth: 2, depthIdentifier: "HashMap" } : {},
|
|
6355
|
+
fc.constant([]),
|
|
6356
|
+
fc.array(fc.tuple(key, value), ctx?.constraints?.array)
|
|
6357
|
+
).map(HashMap_.fromIterable)
|
|
6358
|
+
},
|
|
6359
|
+
toEquivalence: ([key, value]) => Equal.makeCompareMap(key, value),
|
|
6360
|
+
toFormatter: ([key, value]) => (t) => {
|
|
6361
|
+
const size = HashMap_.size(t)
|
|
6362
|
+
if (size === 0) {
|
|
6363
|
+
return "HashMap(0) {}"
|
|
6364
|
+
}
|
|
6365
|
+
const entries = HashMap_.toEntries(t).sort().map(([k, v]) => `${key(k)} => ${value(v)}`)
|
|
6366
|
+
return `HashMap(${size}) { ${entries.join(", ")} }`
|
|
6367
|
+
}
|
|
6368
|
+
}
|
|
6369
|
+
)
|
|
6370
|
+
return make(schema.ast, { key, value })
|
|
6371
|
+
}
|
|
6372
|
+
|
|
6217
6373
|
/**
|
|
6218
6374
|
* @category ReadonlySet
|
|
6219
6375
|
* @since 4.0.0
|
|
6220
6376
|
*/
|
|
6221
|
-
export interface ReadonlySet
|
|
6377
|
+
export interface $ReadonlySet<Value extends Top> extends
|
|
6222
6378
|
declareConstructor<
|
|
6223
6379
|
globalThis.ReadonlySet<Value["Type"]>,
|
|
6224
6380
|
globalThis.ReadonlySet<Value["Encoded"]>,
|
|
@@ -6239,25 +6395,28 @@ export type ReadonlySetIso<Value extends Top> = ReadonlyArray<Value["Iso"]>
|
|
|
6239
6395
|
* @category ReadonlySet
|
|
6240
6396
|
* @since 4.0.0
|
|
6241
6397
|
*/
|
|
6242
|
-
export function ReadonlySet<Value extends Top>(value: Value): ReadonlySet
|
|
6398
|
+
export function ReadonlySet<Value extends Top>(value: Value): $ReadonlySet<Value> {
|
|
6243
6399
|
const schema = declareConstructor<
|
|
6244
6400
|
globalThis.ReadonlySet<Value["Type"]>,
|
|
6245
6401
|
globalThis.ReadonlySet<Value["Encoded"]>,
|
|
6246
6402
|
ReadonlySetIso<Value>
|
|
6247
6403
|
>()(
|
|
6248
6404
|
[value],
|
|
6249
|
-
([value]) =>
|
|
6250
|
-
|
|
6251
|
-
|
|
6252
|
-
|
|
6253
|
-
|
|
6254
|
-
|
|
6255
|
-
|
|
6256
|
-
|
|
6257
|
-
|
|
6258
|
-
|
|
6405
|
+
([value]) => {
|
|
6406
|
+
const array = Array(value)
|
|
6407
|
+
return (input, ast, options) => {
|
|
6408
|
+
if (input instanceof globalThis.Set) {
|
|
6409
|
+
return Effect.mapBothEager(
|
|
6410
|
+
Parser.decodeUnknownEffect(array)([...input], options),
|
|
6411
|
+
{
|
|
6412
|
+
onSuccess: (array: ReadonlyArray<Value["Type"]>) => new globalThis.Set(array),
|
|
6413
|
+
onFailure: (issue) =>
|
|
6414
|
+
new Issue.Composite(ast, Option_.some(input), [new Issue.Pointer(["values"], issue)])
|
|
6415
|
+
}
|
|
6416
|
+
)
|
|
6417
|
+
}
|
|
6418
|
+
return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)))
|
|
6259
6419
|
}
|
|
6260
|
-
return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)))
|
|
6261
6420
|
},
|
|
6262
6421
|
{
|
|
6263
6422
|
typeConstructor: {
|
|
@@ -6297,6 +6456,95 @@ export function ReadonlySet<Value extends Top>(value: Value): ReadonlySet$<Value
|
|
|
6297
6456
|
return make(schema.ast, { value })
|
|
6298
6457
|
}
|
|
6299
6458
|
|
|
6459
|
+
/**
|
|
6460
|
+
* @category HashSet
|
|
6461
|
+
* @since 4.0.0
|
|
6462
|
+
*/
|
|
6463
|
+
export interface HashSet<Value extends Top> extends
|
|
6464
|
+
declareConstructor<
|
|
6465
|
+
HashSet_.HashSet<Value["Type"]>,
|
|
6466
|
+
HashSet_.HashSet<Value["Encoded"]>,
|
|
6467
|
+
readonly [Value],
|
|
6468
|
+
HashSetIso<Value>
|
|
6469
|
+
>
|
|
6470
|
+
{
|
|
6471
|
+
readonly value: Value
|
|
6472
|
+
}
|
|
6473
|
+
|
|
6474
|
+
/**
|
|
6475
|
+
* @category HashSet
|
|
6476
|
+
* @since 4.0.0
|
|
6477
|
+
*/
|
|
6478
|
+
export type HashSetIso<Value extends Top> = ReadonlyArray<Value["Iso"]>
|
|
6479
|
+
|
|
6480
|
+
/**
|
|
6481
|
+
* Creates a schema that validates a `HashSet` where values must conform to the
|
|
6482
|
+
* provided schema.
|
|
6483
|
+
*
|
|
6484
|
+
* @category HashSet
|
|
6485
|
+
* @since 4.0.0
|
|
6486
|
+
*/
|
|
6487
|
+
export function HashSet<Value extends Top>(value: Value): HashSet<Value> {
|
|
6488
|
+
const schema = declareConstructor<
|
|
6489
|
+
HashSet_.HashSet<Value["Type"]>,
|
|
6490
|
+
HashSet_.HashSet<Value["Encoded"]>,
|
|
6491
|
+
HashSetIso<Value>
|
|
6492
|
+
>()(
|
|
6493
|
+
[value],
|
|
6494
|
+
([value]) => {
|
|
6495
|
+
const values = Array(value)
|
|
6496
|
+
return (input, ast, options) => {
|
|
6497
|
+
if (HashSet_.isHashSet(input)) {
|
|
6498
|
+
return Effect.mapBothEager(
|
|
6499
|
+
Parser.decodeUnknownEffect(values)(Arr.fromIterable(input), options),
|
|
6500
|
+
{
|
|
6501
|
+
onSuccess: HashSet_.fromIterable,
|
|
6502
|
+
onFailure: (issue) =>
|
|
6503
|
+
new Issue.Composite(ast, Option_.some(input), [new Issue.Pointer(["values"], issue)])
|
|
6504
|
+
}
|
|
6505
|
+
)
|
|
6506
|
+
}
|
|
6507
|
+
return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)))
|
|
6508
|
+
}
|
|
6509
|
+
},
|
|
6510
|
+
{
|
|
6511
|
+
typeConstructor: {
|
|
6512
|
+
_tag: "effect/HashSet"
|
|
6513
|
+
},
|
|
6514
|
+
generation: {
|
|
6515
|
+
runtime: `Schema.HashSet(?)`,
|
|
6516
|
+
Type: `HashSet.HashSet<?>`
|
|
6517
|
+
},
|
|
6518
|
+
expected: "HashSet",
|
|
6519
|
+
toCodec: ([value]) =>
|
|
6520
|
+
link<HashSet_.HashSet<Value["Encoded"]>>()(
|
|
6521
|
+
Array(value),
|
|
6522
|
+
Transformation.transform({
|
|
6523
|
+
decode: HashSet_.fromIterable,
|
|
6524
|
+
encode: Arr.fromIterable
|
|
6525
|
+
})
|
|
6526
|
+
),
|
|
6527
|
+
toArbitrary: ([value]) => (fc, ctx) => {
|
|
6528
|
+
return fc.oneof(
|
|
6529
|
+
ctx?.isSuspend ? { maxDepth: 2, depthIdentifier: "HashSet" } : {},
|
|
6530
|
+
fc.constant([]),
|
|
6531
|
+
fc.array(value, ctx?.constraints?.array)
|
|
6532
|
+
).map(HashSet_.fromIterable)
|
|
6533
|
+
},
|
|
6534
|
+
toEquivalence: ([value]) => Equal.makeCompareSet(value),
|
|
6535
|
+
toFormatter: ([value]) => (t) => {
|
|
6536
|
+
const size = HashSet_.size(t)
|
|
6537
|
+
if (size === 0) {
|
|
6538
|
+
return "HashSet(0) {}"
|
|
6539
|
+
}
|
|
6540
|
+
const values = globalThis.Array.from(t).sort().map((v) => `${value(v)}`)
|
|
6541
|
+
return `HashSet(${size}) { ${values.join(", ")} }`
|
|
6542
|
+
}
|
|
6543
|
+
}
|
|
6544
|
+
)
|
|
6545
|
+
return make(schema.ast, { value })
|
|
6546
|
+
}
|
|
6547
|
+
|
|
6300
6548
|
/**
|
|
6301
6549
|
* @since 4.0.0
|
|
6302
6550
|
*/
|
|
@@ -6588,6 +6836,45 @@ export const DurationFromMillis: DurationFromMillis = Number.check(isGreaterThan
|
|
|
6588
6836
|
decodeTo(Duration, Transformation.durationFromMillis)
|
|
6589
6837
|
)
|
|
6590
6838
|
|
|
6839
|
+
/**
|
|
6840
|
+
* @since 4.0.0
|
|
6841
|
+
*/
|
|
6842
|
+
export interface BigDecimal extends declare<BigDecimal_.BigDecimal> {}
|
|
6843
|
+
|
|
6844
|
+
/**
|
|
6845
|
+
* A schema for `BigDecimal` values.
|
|
6846
|
+
*
|
|
6847
|
+
* **Default JSON serializer**
|
|
6848
|
+
*
|
|
6849
|
+
* - encodes `BigDecimal` as a `string`
|
|
6850
|
+
*
|
|
6851
|
+
* @since 4.0.0
|
|
6852
|
+
*/
|
|
6853
|
+
export const BigDecimal: BigDecimal = declare(
|
|
6854
|
+
BigDecimal_.isBigDecimal,
|
|
6855
|
+
{
|
|
6856
|
+
typeConstructor: {
|
|
6857
|
+
_tag: "effect/BigDecimal"
|
|
6858
|
+
},
|
|
6859
|
+
generation: {
|
|
6860
|
+
runtime: `Schema.BigDecimal`,
|
|
6861
|
+
Type: `BigDecimal.BigDecimal`,
|
|
6862
|
+
importDeclaration: `import * as BigDecimal from "effect/BigDecimal"`
|
|
6863
|
+
},
|
|
6864
|
+
expected: "BigDecimal",
|
|
6865
|
+
toCodecJson: () =>
|
|
6866
|
+
link<BigDecimal_.BigDecimal>()(
|
|
6867
|
+
String.annotate({ expected: "a string that will be decoded as a BigDecimal" }),
|
|
6868
|
+
Transformation.bigDecimalFromString
|
|
6869
|
+
),
|
|
6870
|
+
toArbitrary: () => (fc) =>
|
|
6871
|
+
fc.tuple(fc.bigInt(), fc.integer({ min: 0, max: 20 }))
|
|
6872
|
+
.map(([value, scale]) => BigDecimal_.make(value, scale)),
|
|
6873
|
+
toFormatter: () => (bd) => BigDecimal_.format(bd),
|
|
6874
|
+
toEquivalence: () => BigDecimal_.Equivalence
|
|
6875
|
+
}
|
|
6876
|
+
)
|
|
6877
|
+
|
|
6591
6878
|
/**
|
|
6592
6879
|
* @since 4.0.0
|
|
6593
6880
|
*/
|
|
@@ -6720,7 +7007,7 @@ export const File: File = instanceOf(globalThis.File, {
|
|
|
6720
7007
|
}),
|
|
6721
7008
|
Transformation.transformOrFail({
|
|
6722
7009
|
decode: (e) =>
|
|
6723
|
-
Result_.match(
|
|
7010
|
+
Result_.match(Encoding.decodeBase64(e.data), {
|
|
6724
7011
|
onFailure: (error) =>
|
|
6725
7012
|
Effect.fail(
|
|
6726
7013
|
new Issue.InvalidValue(Option_.some(e.data), {
|
|
@@ -6739,7 +7026,7 @@ export const File: File = instanceOf(globalThis.File, {
|
|
|
6739
7026
|
try: async () => {
|
|
6740
7027
|
const bytes = new globalThis.Uint8Array(await file.arrayBuffer())
|
|
6741
7028
|
return {
|
|
6742
|
-
data:
|
|
7029
|
+
data: Encoding.encodeBase64(bytes),
|
|
6743
7030
|
type: file.type,
|
|
6744
7031
|
name: file.name,
|
|
6745
7032
|
lastModified: file.lastModified
|
|
@@ -7273,7 +7560,7 @@ export const DateTimeUtc: DateTimeUtc = declare(
|
|
|
7273
7560
|
(u) => DateTime.isDateTime(u) && DateTime.isUtc(u),
|
|
7274
7561
|
{
|
|
7275
7562
|
typeConstructor: {
|
|
7276
|
-
_tag: "DateTime.Utc"
|
|
7563
|
+
_tag: "effect/DateTime.Utc"
|
|
7277
7564
|
},
|
|
7278
7565
|
generation: {
|
|
7279
7566
|
runtime: `Schema.DateTimeUtc`,
|
|
@@ -7284,10 +7571,7 @@ export const DateTimeUtc: DateTimeUtc = declare(
|
|
|
7284
7571
|
toCodecJson: () =>
|
|
7285
7572
|
link<DateTime.Utc>()(
|
|
7286
7573
|
String,
|
|
7287
|
-
|
|
7288
|
-
decode: Getter.dateTimeUtcFromInput(),
|
|
7289
|
-
encode: Getter.transform(DateTime.formatIso)
|
|
7290
|
-
}
|
|
7574
|
+
Transformation.dateTimeUtcFromString
|
|
7291
7575
|
),
|
|
7292
7576
|
toArbitrary: () => (fc, ctx) =>
|
|
7293
7577
|
fc.date({ noInvalidDate: true, ...ctx?.constraints?.date }).map((date) => DateTime.fromDateUnsafe(date)),
|
|
@@ -7344,10 +7628,7 @@ export const DateTimeUtcFromString: DateTimeUtcFromString = String.annotate({
|
|
|
7344
7628
|
}).pipe(
|
|
7345
7629
|
decodeTo(
|
|
7346
7630
|
DateTimeUtc,
|
|
7347
|
-
Transformation.
|
|
7348
|
-
decode: DateTime.makeUnsafe,
|
|
7349
|
-
encode: DateTime.formatIso
|
|
7350
|
-
})
|
|
7631
|
+
Transformation.dateTimeUtcFromString
|
|
7351
7632
|
)
|
|
7352
7633
|
)
|
|
7353
7634
|
|
|
@@ -7375,6 +7656,183 @@ export const DateTimeUtcFromMillis: DateTimeUtcFromMillis = Number.pipe(
|
|
|
7375
7656
|
})
|
|
7376
7657
|
)
|
|
7377
7658
|
|
|
7659
|
+
/**
|
|
7660
|
+
* @since 4.0.0
|
|
7661
|
+
*/
|
|
7662
|
+
export interface TimeZoneOffset extends declare<DateTime.TimeZone.Offset> {}
|
|
7663
|
+
|
|
7664
|
+
/**
|
|
7665
|
+
* A schema for `DateTime.TimeZone.Offset` values.
|
|
7666
|
+
*
|
|
7667
|
+
* **Default JSON serializer**
|
|
7668
|
+
*
|
|
7669
|
+
* - encodes `DateTime.TimeZone.Offset` as a number (offset in milliseconds)
|
|
7670
|
+
*
|
|
7671
|
+
* @category DateTime
|
|
7672
|
+
* @since 4.0.0
|
|
7673
|
+
*/
|
|
7674
|
+
export const TimeZoneOffset: TimeZoneOffset = declare(
|
|
7675
|
+
DateTime.isTimeZoneOffset,
|
|
7676
|
+
{
|
|
7677
|
+
typeConstructor: {
|
|
7678
|
+
_tag: "effect/DateTime.TimeZone.Offset"
|
|
7679
|
+
},
|
|
7680
|
+
generation: {
|
|
7681
|
+
runtime: `Schema.TimeZoneOffset`,
|
|
7682
|
+
Type: `DateTime.TimeZone.Offset`,
|
|
7683
|
+
importDeclaration: `import * as DateTime from "effect/DateTime"`
|
|
7684
|
+
},
|
|
7685
|
+
expected: "DateTime.TimeZone.Offset",
|
|
7686
|
+
toCodecJson: () =>
|
|
7687
|
+
link<DateTime.TimeZone.Offset>()(
|
|
7688
|
+
Number,
|
|
7689
|
+
Transformation.timeZoneOffsetFromNumber
|
|
7690
|
+
),
|
|
7691
|
+
toArbitrary: () => (fc) =>
|
|
7692
|
+
fc.integer({ min: -12 * 60 * 60 * 1000, max: 14 * 60 * 60 * 1000 }).map((n) => DateTime.zoneMakeOffset(n)),
|
|
7693
|
+
toFormatter: () => (tz) => DateTime.zoneToString(tz),
|
|
7694
|
+
toEquivalence: () => (a, b) => a.offset === b.offset
|
|
7695
|
+
}
|
|
7696
|
+
)
|
|
7697
|
+
|
|
7698
|
+
/**
|
|
7699
|
+
* @since 4.0.0
|
|
7700
|
+
*/
|
|
7701
|
+
export interface TimeZoneNamed extends declare<DateTime.TimeZone.Named> {}
|
|
7702
|
+
|
|
7703
|
+
/**
|
|
7704
|
+
* A schema for `DateTime.TimeZone.Named` values.
|
|
7705
|
+
*
|
|
7706
|
+
* **Default JSON serializer**
|
|
7707
|
+
*
|
|
7708
|
+
* - encodes `DateTime.TimeZone.Named` as a string (IANA time zone identifier)
|
|
7709
|
+
*
|
|
7710
|
+
* @category DateTime
|
|
7711
|
+
* @since 4.0.0
|
|
7712
|
+
*/
|
|
7713
|
+
export const TimeZoneNamed: TimeZoneNamed = declare(
|
|
7714
|
+
DateTime.isTimeZoneNamed,
|
|
7715
|
+
{
|
|
7716
|
+
typeConstructor: {
|
|
7717
|
+
_tag: "effect/DateTime.TimeZone.Named"
|
|
7718
|
+
},
|
|
7719
|
+
generation: {
|
|
7720
|
+
runtime: `Schema.TimeZoneNamed`,
|
|
7721
|
+
Type: `DateTime.TimeZone.Named`,
|
|
7722
|
+
importDeclaration: `import * as DateTime from "effect/DateTime"`
|
|
7723
|
+
},
|
|
7724
|
+
expected: "DateTime.TimeZone.Named",
|
|
7725
|
+
toCodecJson: () =>
|
|
7726
|
+
link<DateTime.TimeZone.Named>()(
|
|
7727
|
+
String.annotate({ expected: "an IANA time zone identifier" }),
|
|
7728
|
+
Transformation.timeZoneNamedFromString
|
|
7729
|
+
),
|
|
7730
|
+
toArbitrary: () => (fc) =>
|
|
7731
|
+
fc.constantFrom(
|
|
7732
|
+
...["UTC", "Europe/London", "America/New_York", "Asia/Tokyo", "Australia/Sydney"].map(
|
|
7733
|
+
DateTime.zoneMakeNamedUnsafe
|
|
7734
|
+
)
|
|
7735
|
+
),
|
|
7736
|
+
toFormatter: () => (tz) => DateTime.zoneToString(tz),
|
|
7737
|
+
toEquivalence: () => (a, b) => a.id === b.id
|
|
7738
|
+
}
|
|
7739
|
+
)
|
|
7740
|
+
|
|
7741
|
+
/**
|
|
7742
|
+
* @since 4.0.0
|
|
7743
|
+
*/
|
|
7744
|
+
export interface TimeZone extends declare<DateTime.TimeZone> {}
|
|
7745
|
+
|
|
7746
|
+
/**
|
|
7747
|
+
* A schema for `DateTime.TimeZone` values.
|
|
7748
|
+
*
|
|
7749
|
+
* **Default JSON serializer**
|
|
7750
|
+
*
|
|
7751
|
+
* - encodes `DateTime.TimeZone` as a string (IANA identifier or offset like
|
|
7752
|
+
* `+03:00`)
|
|
7753
|
+
*
|
|
7754
|
+
* @category DateTime
|
|
7755
|
+
* @since 4.0.0
|
|
7756
|
+
*/
|
|
7757
|
+
export const TimeZone: TimeZone = declare(
|
|
7758
|
+
DateTime.isTimeZone,
|
|
7759
|
+
{
|
|
7760
|
+
typeConstructor: {
|
|
7761
|
+
_tag: "effect/DateTime.TimeZone"
|
|
7762
|
+
},
|
|
7763
|
+
generation: {
|
|
7764
|
+
runtime: `Schema.TimeZone`,
|
|
7765
|
+
Type: `DateTime.TimeZone`,
|
|
7766
|
+
importDeclaration: `import * as DateTime from "effect/DateTime"`
|
|
7767
|
+
},
|
|
7768
|
+
expected: "DateTime.TimeZone",
|
|
7769
|
+
toCodecJson: () =>
|
|
7770
|
+
link<DateTime.TimeZone>()(
|
|
7771
|
+
String.annotate({ expected: "a time zone string (IANA identifier or offset like +03:00)" }),
|
|
7772
|
+
Transformation.timeZoneFromString
|
|
7773
|
+
),
|
|
7774
|
+
toArbitrary: () => (fc) =>
|
|
7775
|
+
fc.oneof(
|
|
7776
|
+
fc.integer({ min: -12 * 60 * 60 * 1000, max: 14 * 60 * 60 * 1000 }).map((n) => DateTime.zoneMakeOffset(n)),
|
|
7777
|
+
fc.constantFrom(
|
|
7778
|
+
...["UTC", "Europe/London", "America/New_York", "Asia/Tokyo", "Australia/Sydney"].map(
|
|
7779
|
+
DateTime.zoneMakeNamedUnsafe
|
|
7780
|
+
)
|
|
7781
|
+
)
|
|
7782
|
+
),
|
|
7783
|
+
toFormatter: () => (tz) => DateTime.zoneToString(tz),
|
|
7784
|
+
toEquivalence: () => (a, b) => DateTime.zoneToString(a) === DateTime.zoneToString(b)
|
|
7785
|
+
}
|
|
7786
|
+
)
|
|
7787
|
+
|
|
7788
|
+
/**
|
|
7789
|
+
* @since 4.0.0
|
|
7790
|
+
*/
|
|
7791
|
+
export interface DateTimeZoned extends declare<DateTime.Zoned> {}
|
|
7792
|
+
|
|
7793
|
+
/**
|
|
7794
|
+
* A schema for `DateTime.Zoned` values.
|
|
7795
|
+
*
|
|
7796
|
+
* **Default JSON serializer**
|
|
7797
|
+
*
|
|
7798
|
+
* - encodes `DateTime.Zoned` as a string in the format
|
|
7799
|
+
* `YYYY-MM-DDTHH:mm:ss.sss+HH:MM[Time/Zone]`
|
|
7800
|
+
*
|
|
7801
|
+
* @category DateTime
|
|
7802
|
+
* @since 4.0.0
|
|
7803
|
+
*/
|
|
7804
|
+
export const DateTimeZoned: DateTimeZoned = declare(
|
|
7805
|
+
(u) => DateTime.isDateTime(u) && DateTime.isZoned(u),
|
|
7806
|
+
{
|
|
7807
|
+
typeConstructor: {
|
|
7808
|
+
_tag: "effect/DateTime.Zoned"
|
|
7809
|
+
},
|
|
7810
|
+
generation: {
|
|
7811
|
+
runtime: `Schema.DateTimeZoned`,
|
|
7812
|
+
Type: `DateTime.Zoned`,
|
|
7813
|
+
importDeclaration: `import * as DateTime from "effect/DateTime"`
|
|
7814
|
+
},
|
|
7815
|
+
expected: "DateTime.Zoned",
|
|
7816
|
+
toCodecJson: () =>
|
|
7817
|
+
link<DateTime.Zoned>()(
|
|
7818
|
+
String.annotate({ expected: "a zoned DateTime string (e.g. 2024-01-01T00:00:00.000+00:00[Europe/London])" }),
|
|
7819
|
+
Transformation.dateTimeZonedFromString
|
|
7820
|
+
),
|
|
7821
|
+
toArbitrary: () => (fc, ctx) =>
|
|
7822
|
+
fc.tuple(
|
|
7823
|
+
fc.date({
|
|
7824
|
+
noInvalidDate: true,
|
|
7825
|
+
min: new globalThis.Date(-8640000000000000 + 14 * 60 * 60 * 1000),
|
|
7826
|
+
max: new globalThis.Date(8640000000000000 - 14 * 60 * 60 * 1000),
|
|
7827
|
+
...ctx?.constraints?.date
|
|
7828
|
+
}),
|
|
7829
|
+
fc.constantFrom("UTC", "Europe/London", "America/New_York", "Asia/Tokyo", "Australia/Sydney")
|
|
7830
|
+
).map(([date, zone]) => DateTime.makeZonedUnsafe(date, { timeZone: zone })),
|
|
7831
|
+
toFormatter: () => (zoned) => DateTime.formatIsoZoned(zoned),
|
|
7832
|
+
toEquivalence: () => DateTime.Equivalence
|
|
7833
|
+
}
|
|
7834
|
+
)
|
|
7835
|
+
|
|
7378
7836
|
// -----------------------------------------------------------------------------
|
|
7379
7837
|
// Class
|
|
7380
7838
|
// -----------------------------------------------------------------------------
|
|
@@ -7402,7 +7860,10 @@ export interface Class<Self, S extends Top & { readonly fields: Struct.Fields },
|
|
|
7402
7860
|
>
|
|
7403
7861
|
{
|
|
7404
7862
|
// intentionally left without `readonly "~rebuild.out": this`
|
|
7405
|
-
new(
|
|
7863
|
+
new(
|
|
7864
|
+
...args: {} extends S["~type.make.in"] ? [props?: S["~type.make.in"], options?: MakeOptions]
|
|
7865
|
+
: [props: S["~type.make.in"], options?: MakeOptions]
|
|
7866
|
+
): S["Type"] & Inherited
|
|
7406
7867
|
readonly identifier: string
|
|
7407
7868
|
readonly fields: S["fields"]
|
|
7408
7869
|
/**
|
|
@@ -7463,11 +7924,12 @@ function makeClass<
|
|
|
7463
7924
|
|
|
7464
7925
|
return class extends Inherited {
|
|
7465
7926
|
constructor(...[input, options]: ReadonlyArray<any>) {
|
|
7927
|
+
const props = input ?? {}
|
|
7466
7928
|
if (options?.disableValidation) {
|
|
7467
|
-
super(
|
|
7929
|
+
super(props, options)
|
|
7468
7930
|
} else {
|
|
7469
|
-
const validated = struct.makeUnsafe(
|
|
7470
|
-
super({ ...
|
|
7931
|
+
const validated = struct.makeUnsafe(props, options)
|
|
7932
|
+
super({ ...props, ...validated }, { ...options, disableValidation: true })
|
|
7471
7933
|
}
|
|
7472
7934
|
}
|
|
7473
7935
|
|