effect 4.0.0-beta.5 → 4.0.0-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Cache.d.ts +2 -2
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +1 -1
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +1 -1
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +6 -4
- package/dist/Channel.js.map +1 -1
- package/dist/Config.d.ts +3 -3
- package/dist/Config.js +3 -3
- package/dist/Config.js.map +1 -1
- package/dist/Data.d.ts +3 -2
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +9 -8
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +23 -161
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +6 -51
- package/dist/DateTime.js.map +1 -1
- package/dist/Duration.d.ts +12 -12
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +12 -12
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +13 -239
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +1 -119
- package/dist/Effect.js.map +1 -1
- package/dist/Encoding.d.ts +194 -0
- package/dist/Encoding.d.ts.map +1 -0
- package/dist/Encoding.js +352 -0
- package/dist/Encoding.js.map +1 -0
- package/dist/Equal.js.map +1 -1
- package/dist/FileSystem.js +2 -2
- package/dist/FileSystem.js.map +1 -1
- package/dist/Formatter.d.ts +131 -47
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +229 -51
- package/dist/Formatter.js.map +1 -1
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +2 -2
- package/dist/Graph.js.map +1 -1
- package/dist/JsonSchema.d.ts +299 -10
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +323 -4
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Latch.d.ts +109 -0
- package/dist/Latch.d.ts.map +1 -0
- package/dist/Latch.js +72 -0
- package/dist/Latch.js.map +1 -0
- package/dist/LayerMap.d.ts +4 -4
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LogLevel.d.ts +27 -0
- package/dist/LogLevel.d.ts.map +1 -1
- package/dist/LogLevel.js +28 -100
- package/dist/LogLevel.js.map +1 -1
- package/dist/Logger.d.ts +4 -4
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Metric.d.ts +2 -2
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +1 -1
- package/dist/Metric.js.map +1 -1
- package/dist/Pipeable.d.ts +17 -0
- package/dist/Pipeable.d.ts.map +1 -1
- package/dist/Pipeable.js +19 -1
- package/dist/Pipeable.js.map +1 -1
- package/dist/Pool.d.ts +6 -4
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +7 -5
- package/dist/Pool.js.map +1 -1
- package/dist/PubSub.d.ts +3 -2
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +3 -2
- package/dist/PubSub.js.map +1 -1
- package/dist/Random.d.ts +1 -1
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +3 -12
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +2 -2
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +1 -1
- package/dist/RcMap.js.map +1 -1
- package/dist/RcRef.d.ts +1 -1
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/Request.d.ts +1 -1
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js +2 -1
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +6 -26
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +0 -20
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Schedule.d.ts +22 -13
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +53 -25
- package/dist/Schedule.js.map +1 -1
- package/dist/Schema.d.ts +196 -46
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +385 -71
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaGetter.d.ts +2 -2
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +12 -14
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +44 -43
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +5 -2
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +37 -0
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +80 -0
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/ScopedCache.d.ts +2 -2
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +1 -1
- package/dist/ScopedCache.js.map +1 -1
- package/dist/Semaphore.d.ts +211 -0
- package/dist/Semaphore.d.ts.map +1 -0
- package/dist/{PartitionedSemaphore.js → Semaphore.js} +97 -13
- package/dist/Semaphore.js.map +1 -0
- package/dist/Stream.d.ts +19 -19
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +12 -11
- package/dist/Stream.js.map +1 -1
- package/dist/Struct.d.ts +16 -0
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +22 -0
- package/dist/Struct.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +2 -1
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +2 -1
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/SynchronizedRef.d.ts +2 -1
- package/dist/SynchronizedRef.d.ts.map +1 -1
- package/dist/SynchronizedRef.js +2 -1
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Types.d.ts +8 -0
- package/dist/Types.d.ts.map +1 -1
- package/dist/index.d.ts +148 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +148 -5
- package/dist/index.js.map +1 -1
- package/dist/internal/core.js +11 -3
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/dateTime.js +3 -11
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/effect.js +2 -2
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/random.d.ts +2 -0
- package/dist/internal/random.d.ts.map +1 -0
- package/dist/internal/random.js +13 -0
- package/dist/internal/random.js.map +1 -0
- package/dist/internal/rcRef.js +3 -2
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/testing/TestClock.d.ts +7 -6
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +6 -4
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +6 -6
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +48 -48
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +3 -3
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +4 -3
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +2 -2
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +51 -51
- package/dist/unstable/ai/McpServer.d.ts +1 -1
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +20 -20
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Response.d.ts +26 -26
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +1 -1
- package/dist/unstable/ai/Response.js.map +1 -1
- package/dist/unstable/cli/CliError.d.ts +5 -5
- package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js +1 -1
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +2 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +5 -4
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/EntityResource.d.ts +2 -2
- package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
- package/dist/unstable/cluster/Envelope.d.ts +1 -1
- package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/Message.d.ts +5 -5
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +2 -1
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +3 -3
- package/dist/unstable/cluster/Runner.d.ts +1 -1
- package/dist/unstable/cluster/Runners.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.js +4 -3
- package/dist/unstable/cluster/Runners.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts +2 -2
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +8 -6
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +21 -21
- package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +5 -4
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/cluster/internal/entityReaper.js +2 -1
- package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceRef.js +2 -1
- package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.d.ts +36 -36
- package/dist/unstable/encoding/Sse.d.ts +3 -3
- package/dist/unstable/encoding/Sse.d.ts.map +1 -1
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +2 -1
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +5 -5
- package/dist/unstable/http/Cookies.d.ts +2 -2
- package/dist/unstable/http/Cookies.d.ts.map +1 -1
- package/dist/unstable/http/Cookies.js +2 -2
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +4 -4
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.d.ts +11 -11
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +8 -1
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
- package/dist/unstable/http/HttpEffect.js +18 -26
- package/dist/unstable/http/HttpEffect.js.map +1 -1
- package/dist/unstable/http/HttpMethod.d.ts +4 -4
- package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
- package/dist/unstable/http/HttpMethod.js +3 -3
- package/dist/unstable/http/HttpMethod.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +2 -2
- package/dist/unstable/http/UrlParams.d.ts +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +2 -2
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
- package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
- package/dist/unstable/observability/Otlp.d.ts +12 -12
- package/dist/unstable/observability/Otlp.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +1 -1
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
- package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
- package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.js +4 -4
- package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
- package/dist/unstable/persistence/Persistable.d.ts +2 -2
- package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
- package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedCache.js +2 -1
- package/dist/unstable/persistence/PersistedCache.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
- package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.js +12 -11
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/Persistence.d.ts +1 -1
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +2 -2
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +1 -1
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/process/ChildProcess.d.ts +1 -1
- package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts +6 -0
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +6 -6
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +3 -3
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +1 -1
- package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
- package/dist/unstable/reactivity/index.d.ts +2 -2
- package/dist/unstable/reactivity/index.d.ts.map +1 -1
- package/dist/unstable/reactivity/index.js +2 -2
- package/dist/unstable/reactivity/index.js.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts +2 -2
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts +5 -26
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +6 -13
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +5 -3
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/rpc/Utils.d.ts.map +1 -1
- package/dist/unstable/rpc/Utils.js +2 -1
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +4 -4
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +3 -2
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/sql/SqlModel.d.ts +2 -2
- package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
- package/dist/unstable/sql/SqlModel.js +3 -3
- package/dist/unstable/sql/SqlModel.js.map +1 -1
- package/dist/unstable/sql/SqlSchema.d.ts +16 -5
- package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
- package/dist/unstable/sql/SqlSchema.js +17 -7
- package/dist/unstable/sql/SqlSchema.js.map +1 -1
- package/dist/unstable/sql/Statement.js +0 -1
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts.map +1 -1
- package/dist/unstable/workers/Worker.js +2 -1
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts +3 -3
- package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableClock.js +3 -3
- package/dist/unstable/workflow/DurableClock.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js +2 -2
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +2 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +2 -1
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +1 -2
- package/src/Cache.ts +3 -3
- package/src/Cause.ts +1 -1
- package/src/Channel.ts +6 -4
- package/src/Config.ts +3 -3
- package/src/Data.ts +10 -9
- package/src/DateTime.ts +24 -164
- package/src/Duration.ts +15 -15
- package/src/Effect.ts +15 -261
- package/src/Encoding.ts +879 -0
- package/src/Equal.ts +2 -2
- package/src/FileSystem.ts +4 -4
- package/src/Formatter.ts +253 -51
- package/src/Graph.ts +8 -5
- package/src/JsonSchema.ts +383 -10
- package/src/Latch.ts +112 -0
- package/src/LayerMap.ts +5 -5
- package/src/LogLevel.ts +31 -0
- package/src/Logger.ts +5 -5
- package/src/Metric.ts +4 -4
- package/src/Pipeable.ts +32 -1
- package/src/Pool.ts +13 -11
- package/src/PubSub.ts +10 -9
- package/src/Random.ts +5 -14
- package/src/RcMap.ts +5 -5
- package/src/RcRef.ts +1 -1
- package/src/Request.ts +3 -2
- package/src/RequestResolver.ts +9 -29
- package/src/Schedule.ts +261 -140
- package/src/Schema.ts +571 -109
- package/src/SchemaGetter.ts +12 -14
- package/src/SchemaRepresentation.ts +5 -2
- package/src/SchemaTransformation.ts +104 -0
- package/src/ScopedCache.ts +3 -3
- package/src/Semaphore.ts +356 -0
- package/src/Stream.ts +43 -42
- package/src/Struct.ts +26 -0
- package/src/SubscriptionRef.ts +3 -2
- package/src/SynchronizedRef.ts +3 -2
- package/src/Types.ts +9 -0
- package/src/index.ts +151 -6
- package/src/internal/core.ts +10 -2
- package/src/internal/dateTime.ts +9 -30
- package/src/internal/effect.ts +24 -23
- package/src/internal/random.ts +20 -0
- package/src/internal/rcRef.ts +4 -3
- package/src/testing/TestClock.ts +13 -11
- package/src/testing/TestSchema.ts +8 -8
- package/src/unstable/ai/AiError.ts +2 -2
- package/src/unstable/ai/Chat.ts +12 -11
- package/src/unstable/ai/LanguageModel.ts +3 -3
- package/src/unstable/ai/McpServer.ts +2 -2
- package/src/unstable/ai/Prompt.ts +37 -37
- package/src/unstable/ai/Response.ts +25 -25
- package/src/unstable/cluster/ClusterCron.ts +2 -2
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +3 -2
- package/src/unstable/cluster/Entity.ts +7 -6
- package/src/unstable/cluster/EntityResource.ts +4 -4
- package/src/unstable/cluster/Envelope.ts +1 -1
- package/src/unstable/cluster/K8sHttpClient.ts +1 -1
- package/src/unstable/cluster/MessageStorage.ts +3 -5
- package/src/unstable/cluster/Runners.ts +6 -5
- package/src/unstable/cluster/Sharding.ts +11 -9
- package/src/unstable/cluster/ShardingConfig.ts +10 -11
- package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
- package/src/unstable/cluster/internal/entityManager.ts +9 -8
- package/src/unstable/cluster/internal/entityReaper.ts +2 -1
- package/src/unstable/cluster/internal/resourceRef.ts +2 -1
- package/src/unstable/encoding/Sse.ts +2 -4
- package/src/unstable/eventlog/EventLog.ts +2 -1
- package/src/unstable/http/Cookies.ts +3 -3
- package/src/unstable/http/HttpClient.ts +4 -4
- package/src/unstable/http/HttpClientRequest.ts +15 -11
- package/src/unstable/http/HttpEffect.ts +17 -25
- package/src/unstable/http/HttpMethod.ts +16 -4
- package/src/unstable/http/Multipart.ts +2 -2
- package/src/unstable/http/UrlParams.ts +1 -1
- package/src/unstable/httpapi/HttpApiBuilder.ts +2 -2
- package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
- package/src/unstable/observability/Otlp.ts +12 -12
- package/src/unstable/observability/OtlpExporter.ts +3 -3
- package/src/unstable/observability/OtlpLogger.ts +4 -4
- package/src/unstable/observability/OtlpMetrics.ts +4 -4
- package/src/unstable/observability/OtlpTracer.ts +4 -4
- package/src/unstable/persistence/KeyValueStore.ts +4 -4
- package/src/unstable/persistence/Persistable.ts +2 -2
- package/src/unstable/persistence/PersistedCache.ts +20 -9
- package/src/unstable/persistence/PersistedQueue.ts +25 -24
- package/src/unstable/persistence/Persistence.ts +3 -3
- package/src/unstable/persistence/RateLimiter.ts +4 -4
- package/src/unstable/process/ChildProcess.ts +1 -1
- package/src/unstable/process/ChildProcessSpawner.ts +6 -0
- package/src/unstable/reactivity/Atom.ts +13 -13
- package/src/unstable/reactivity/AtomHttpApi.ts +3 -3
- package/src/unstable/reactivity/AtomRpc.ts +3 -3
- package/src/unstable/reactivity/index.ts +2 -2
- package/src/unstable/rpc/Rpc.ts +3 -3
- package/src/unstable/rpc/RpcClient.ts +12 -54
- package/src/unstable/rpc/RpcServer.ts +6 -4
- package/src/unstable/rpc/Utils.ts +2 -1
- package/src/unstable/socket/Socket.ts +7 -6
- package/src/unstable/sql/SqlModel.ts +5 -5
- package/src/unstable/sql/SqlSchema.ts +41 -25
- package/src/unstable/sql/Statement.ts +0 -1
- package/src/unstable/workers/Worker.ts +2 -1
- package/src/unstable/workflow/DurableClock.ts +8 -8
- package/src/unstable/workflow/DurableDeferred.ts +2 -2
- package/src/unstable/workflow/WorkflowEngine.ts +3 -2
- package/dist/PartitionedSemaphore.d.ts +0 -52
- package/dist/PartitionedSemaphore.d.ts.map +0 -1
- package/dist/PartitionedSemaphore.js.map +0 -1
- package/dist/encoding/Base64.d.ts +0 -67
- package/dist/encoding/Base64.d.ts.map +0 -1
- package/dist/encoding/Base64.js +0 -146
- package/dist/encoding/Base64.js.map +0 -1
- package/dist/encoding/Base64Url.d.ts +0 -60
- package/dist/encoding/Base64Url.d.ts.map +0 -1
- package/dist/encoding/Base64Url.js +0 -89
- package/dist/encoding/Base64Url.js.map +0 -1
- package/dist/encoding/EncodingError.d.ts +0 -31
- package/dist/encoding/EncodingError.d.ts.map +0 -1
- package/dist/encoding/EncodingError.js +0 -22
- package/dist/encoding/EncodingError.js.map +0 -1
- package/dist/encoding/Hex.d.ts +0 -61
- package/dist/encoding/Hex.d.ts.map +0 -1
- package/dist/encoding/Hex.js +0 -115
- package/dist/encoding/Hex.js.map +0 -1
- package/dist/encoding/index.d.ts +0 -26
- package/dist/encoding/index.d.ts.map +0 -1
- package/dist/encoding/index.js +0 -27
- package/dist/encoding/index.js.map +0 -1
- package/src/PartitionedSemaphore.ts +0 -182
- package/src/encoding/Base64.ts +0 -366
- package/src/encoding/Base64Url.ts +0 -104
- package/src/encoding/EncodingError.ts +0 -35
- package/src/encoding/Hex.ts +0 -390
- package/src/encoding/index.ts +0 -31
package/dist/Schema.js
CHANGED
|
@@ -2,17 +2,20 @@
|
|
|
2
2
|
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
4
|
import * as Arr from "./Array.js";
|
|
5
|
+
import * as BigDecimal_ from "./BigDecimal.js";
|
|
5
6
|
import * as Cause_ from "./Cause.js";
|
|
6
7
|
import * as Data from "./Data.js";
|
|
7
8
|
import * as DateTime from "./DateTime.js";
|
|
8
9
|
import * as Duration_ from "./Duration.js";
|
|
9
10
|
import * as Effect from "./Effect.js";
|
|
10
|
-
import * as
|
|
11
|
+
import * as Encoding from "./Encoding.js";
|
|
11
12
|
import * as Equal from "./Equal.js";
|
|
12
13
|
import * as Equivalence from "./Equivalence.js";
|
|
13
14
|
import * as Exit_ from "./Exit.js";
|
|
14
15
|
import { format, formatDate, formatPropertyKey } from "./Formatter.js";
|
|
15
16
|
import { identity } from "./Function.js";
|
|
17
|
+
import * as HashMap_ from "./HashMap.js";
|
|
18
|
+
import * as HashSet_ from "./HashSet.js";
|
|
16
19
|
import * as core from "./internal/core.js";
|
|
17
20
|
import * as InternalAnnotations from "./internal/schema/annotations.js";
|
|
18
21
|
import * as InternalArbitrary from "./internal/schema/arbitrary.js";
|
|
@@ -2528,6 +2531,58 @@ export const isBetweenBigInt = /*#__PURE__*/makeIsBetween({
|
|
|
2528
2531
|
}
|
|
2529
2532
|
})
|
|
2530
2533
|
});
|
|
2534
|
+
/**
|
|
2535
|
+
* Validates that a BigDecimal is greater than the specified value (exclusive).
|
|
2536
|
+
*
|
|
2537
|
+
* @category BigDecimal checks
|
|
2538
|
+
* @since 4.0.0
|
|
2539
|
+
*/
|
|
2540
|
+
export const isGreaterThanBigDecimal = /*#__PURE__*/makeIsGreaterThan({
|
|
2541
|
+
order: BigDecimal_.Order,
|
|
2542
|
+
formatter: bd => BigDecimal_.format(bd)
|
|
2543
|
+
});
|
|
2544
|
+
/**
|
|
2545
|
+
* Validates that a BigDecimal is greater than or equal to the specified value
|
|
2546
|
+
* (inclusive).
|
|
2547
|
+
*
|
|
2548
|
+
* @category BigDecimal checks
|
|
2549
|
+
* @since 4.0.0
|
|
2550
|
+
*/
|
|
2551
|
+
export const isGreaterThanOrEqualToBigDecimal = /*#__PURE__*/makeIsGreaterThanOrEqualTo({
|
|
2552
|
+
order: BigDecimal_.Order,
|
|
2553
|
+
formatter: bd => BigDecimal_.format(bd)
|
|
2554
|
+
});
|
|
2555
|
+
/**
|
|
2556
|
+
* Validates that a BigDecimal is less than the specified value (exclusive).
|
|
2557
|
+
*
|
|
2558
|
+
* @category BigDecimal checks
|
|
2559
|
+
* @since 4.0.0
|
|
2560
|
+
*/
|
|
2561
|
+
export const isLessThanBigDecimal = /*#__PURE__*/makeIsLessThan({
|
|
2562
|
+
order: BigDecimal_.Order,
|
|
2563
|
+
formatter: bd => BigDecimal_.format(bd)
|
|
2564
|
+
});
|
|
2565
|
+
/**
|
|
2566
|
+
* Validates that a BigDecimal is less than or equal to the specified value
|
|
2567
|
+
* (inclusive).
|
|
2568
|
+
*
|
|
2569
|
+
* @category BigDecimal checks
|
|
2570
|
+
* @since 4.0.0
|
|
2571
|
+
*/
|
|
2572
|
+
export const isLessThanOrEqualToBigDecimal = /*#__PURE__*/makeIsLessThanOrEqualTo({
|
|
2573
|
+
order: BigDecimal_.Order,
|
|
2574
|
+
formatter: bd => BigDecimal_.format(bd)
|
|
2575
|
+
});
|
|
2576
|
+
/**
|
|
2577
|
+
* Validates that a BigDecimal is within a specified range.
|
|
2578
|
+
*
|
|
2579
|
+
* @category BigDecimal checks
|
|
2580
|
+
* @since 4.0.0
|
|
2581
|
+
*/
|
|
2582
|
+
export const isBetweenBigDecimal = /*#__PURE__*/makeIsBetween({
|
|
2583
|
+
order: BigDecimal_.Order,
|
|
2584
|
+
formatter: bd => BigDecimal_.format(bd)
|
|
2585
|
+
});
|
|
2531
2586
|
/**
|
|
2532
2587
|
* Validates that a value has at least the specified length. Works with strings
|
|
2533
2588
|
* and arrays.
|
|
@@ -3225,10 +3280,10 @@ export function RedactedFromValue(value, options) {
|
|
|
3225
3280
|
}));
|
|
3226
3281
|
}
|
|
3227
3282
|
/**
|
|
3228
|
-
* @category
|
|
3283
|
+
* @category CauseReason
|
|
3229
3284
|
* @since 4.0.0
|
|
3230
3285
|
*/
|
|
3231
|
-
export function
|
|
3286
|
+
export function CauseReason(error, defect) {
|
|
3232
3287
|
const schema = declareConstructor()([error, defect], ([error, defect]) => (input, ast, options) => {
|
|
3233
3288
|
if (!Cause_.isReason(input)) {
|
|
3234
3289
|
return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)));
|
|
@@ -3252,7 +3307,7 @@ export function CauseFailure(error, defect) {
|
|
|
3252
3307
|
_tag: "effect/Cause/Failure"
|
|
3253
3308
|
},
|
|
3254
3309
|
generation: {
|
|
3255
|
-
runtime: `Schema.
|
|
3310
|
+
runtime: `Schema.CauseReason(?, ?)`,
|
|
3256
3311
|
Type: `Cause.Failure<?, ?>`,
|
|
3257
3312
|
importDeclaration: `import * as Cause from "effect/Cause"`
|
|
3258
3313
|
},
|
|
@@ -3279,16 +3334,16 @@ export function CauseFailure(error, defect) {
|
|
|
3279
3334
|
},
|
|
3280
3335
|
encode: identity
|
|
3281
3336
|
})),
|
|
3282
|
-
toArbitrary: ([error, defect]) =>
|
|
3283
|
-
toEquivalence: ([error, defect]) =>
|
|
3284
|
-
toFormatter: ([error, defect]) =>
|
|
3337
|
+
toArbitrary: ([error, defect]) => causeReasonToArbitrary(error, defect),
|
|
3338
|
+
toEquivalence: ([error, defect]) => causeReasonToEquivalence(error, defect),
|
|
3339
|
+
toFormatter: ([error, defect]) => causeReasonToFormatter(error, defect)
|
|
3285
3340
|
});
|
|
3286
3341
|
return make(schema.ast, {
|
|
3287
3342
|
error,
|
|
3288
3343
|
defect
|
|
3289
3344
|
});
|
|
3290
3345
|
}
|
|
3291
|
-
function
|
|
3346
|
+
function causeReasonToArbitrary(error, defect) {
|
|
3292
3347
|
return (fc, ctx) => {
|
|
3293
3348
|
return fc.oneof(ctx?.isSuspend ? {
|
|
3294
3349
|
maxDepth: 2,
|
|
@@ -3298,7 +3353,7 @@ function causeFailureToArbitrary(error, defect) {
|
|
|
3298
3353
|
}).map(Cause_.makeInterruptReason), error.map(e => Cause_.makeFailReason(e)), defect.map(d => Cause_.makeDieReason(d)));
|
|
3299
3354
|
};
|
|
3300
3355
|
}
|
|
3301
|
-
function
|
|
3356
|
+
function causeReasonToEquivalence(error, defect) {
|
|
3302
3357
|
return (a, b) => {
|
|
3303
3358
|
if (a._tag !== b._tag) return false;
|
|
3304
3359
|
switch (a._tag) {
|
|
@@ -3311,7 +3366,7 @@ function causeFailureToEquivalence(error, defect) {
|
|
|
3311
3366
|
}
|
|
3312
3367
|
};
|
|
3313
3368
|
}
|
|
3314
|
-
function
|
|
3369
|
+
function causeReasonToFormatter(error, defect) {
|
|
3315
3370
|
return t => {
|
|
3316
3371
|
switch (t._tag) {
|
|
3317
3372
|
case "Fail":
|
|
@@ -3328,15 +3383,17 @@ function causeFailureToFormatter(error, defect) {
|
|
|
3328
3383
|
* @since 4.0.0
|
|
3329
3384
|
*/
|
|
3330
3385
|
export function Cause(error, defect) {
|
|
3331
|
-
const schema = declareConstructor()([error, defect], ([error, defect]) =>
|
|
3332
|
-
|
|
3333
|
-
|
|
3334
|
-
|
|
3335
|
-
|
|
3336
|
-
|
|
3337
|
-
|
|
3338
|
-
|
|
3339
|
-
|
|
3386
|
+
const schema = declareConstructor()([error, defect], ([error, defect]) => {
|
|
3387
|
+
const failures = Array(CauseReason(error, defect));
|
|
3388
|
+
return (input, ast, options) => {
|
|
3389
|
+
if (!Cause_.isCause(input)) {
|
|
3390
|
+
return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)));
|
|
3391
|
+
}
|
|
3392
|
+
return Effect.mapBothEager(Parser.decodeUnknownEffect(failures)(input.reasons, options), {
|
|
3393
|
+
onSuccess: Cause_.fromReasons,
|
|
3394
|
+
onFailure: issue => new Issue.Composite(ast, Option_.some(input), [new Issue.Pointer(["failures"], issue)])
|
|
3395
|
+
});
|
|
3396
|
+
};
|
|
3340
3397
|
}, {
|
|
3341
3398
|
typeConstructor: {
|
|
3342
3399
|
_tag: "effect/Cause"
|
|
@@ -3347,7 +3404,7 @@ export function Cause(error, defect) {
|
|
|
3347
3404
|
importDeclaration: `import * as Cause from "effect/Cause"`
|
|
3348
3405
|
},
|
|
3349
3406
|
expected: "Cause",
|
|
3350
|
-
toCodec: ([error, defect]) => link()(Array(
|
|
3407
|
+
toCodec: ([error, defect]) => link()(Array(CauseReason(error, defect)), Transformation.transform({
|
|
3351
3408
|
decode: Cause_.fromReasons,
|
|
3352
3409
|
encode: ({
|
|
3353
3410
|
reasons: failures
|
|
@@ -3364,16 +3421,16 @@ export function Cause(error, defect) {
|
|
|
3364
3421
|
}
|
|
3365
3422
|
function causeToArbitrary(error, defect) {
|
|
3366
3423
|
return (fc, ctx) => {
|
|
3367
|
-
return fc.array(
|
|
3424
|
+
return fc.array(causeReasonToArbitrary(error, defect)(fc, ctx)).map(Cause_.fromReasons);
|
|
3368
3425
|
};
|
|
3369
3426
|
}
|
|
3370
3427
|
function causeToEquivalence(error, defect) {
|
|
3371
|
-
const failures = Equivalence.Array(
|
|
3428
|
+
const failures = Equivalence.Array(causeReasonToEquivalence(error, defect));
|
|
3372
3429
|
return (a, b) => failures(a.reasons, b.reasons);
|
|
3373
3430
|
}
|
|
3374
3431
|
function causeToFormatter(error, defect) {
|
|
3375
|
-
const
|
|
3376
|
-
return t => `Cause([${t.reasons.map(
|
|
3432
|
+
const causeReason = causeReasonToFormatter(error, defect);
|
|
3433
|
+
return t => `Cause([${t.reasons.map(causeReason).join(", ")}])`;
|
|
3377
3434
|
}
|
|
3378
3435
|
const ErrorJsonEncoded = /*#__PURE__*/Struct({
|
|
3379
3436
|
message: String,
|
|
@@ -3459,23 +3516,25 @@ export const DefectWithStack = /*#__PURE__*/Union([/*#__PURE__*/ErrorJsonEncoded
|
|
|
3459
3516
|
* @since 4.0.0
|
|
3460
3517
|
*/
|
|
3461
3518
|
export function Exit(value, error, defect) {
|
|
3462
|
-
const schema = declareConstructor()([value, error, defect], ([value, error, defect]) =>
|
|
3463
|
-
if (!Exit_.isExit(input)) {
|
|
3464
|
-
return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)));
|
|
3465
|
-
}
|
|
3519
|
+
const schema = declareConstructor()([value, error, defect], ([value, error, defect]) => {
|
|
3466
3520
|
const cause = Cause(error, defect);
|
|
3467
|
-
|
|
3468
|
-
|
|
3469
|
-
return Effect.
|
|
3470
|
-
|
|
3471
|
-
|
|
3472
|
-
|
|
3473
|
-
|
|
3474
|
-
|
|
3475
|
-
|
|
3476
|
-
|
|
3477
|
-
|
|
3478
|
-
|
|
3521
|
+
return (input, ast, options) => {
|
|
3522
|
+
if (!Exit_.isExit(input)) {
|
|
3523
|
+
return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)));
|
|
3524
|
+
}
|
|
3525
|
+
switch (input._tag) {
|
|
3526
|
+
case "Success":
|
|
3527
|
+
return Effect.mapBothEager(Parser.decodeUnknownEffect(value)(input.value, options), {
|
|
3528
|
+
onSuccess: Exit_.succeed,
|
|
3529
|
+
onFailure: issue => new Issue.Composite(ast, Option_.some(input), [new Issue.Pointer(["value"], issue)])
|
|
3530
|
+
});
|
|
3531
|
+
case "Failure":
|
|
3532
|
+
return Effect.mapBothEager(Parser.decodeUnknownEffect(cause)(input.cause, options), {
|
|
3533
|
+
onSuccess: Exit_.failCause,
|
|
3534
|
+
onFailure: issue => new Issue.Composite(ast, Option_.some(input), [new Issue.Pointer(["cause"], issue)])
|
|
3535
|
+
});
|
|
3536
|
+
}
|
|
3537
|
+
};
|
|
3479
3538
|
}, {
|
|
3480
3539
|
typeConstructor: {
|
|
3481
3540
|
_tag: "effect/Exit"
|
|
@@ -3544,15 +3603,17 @@ export function Exit(value, error, defect) {
|
|
|
3544
3603
|
* @since 4.0.0
|
|
3545
3604
|
*/
|
|
3546
3605
|
export function ReadonlyMap(key, value) {
|
|
3547
|
-
const schema = declareConstructor()([key, value], ([key, value]) =>
|
|
3548
|
-
|
|
3549
|
-
|
|
3550
|
-
|
|
3551
|
-
|
|
3552
|
-
|
|
3553
|
-
|
|
3554
|
-
|
|
3555
|
-
|
|
3606
|
+
const schema = declareConstructor()([key, value], ([key, value]) => {
|
|
3607
|
+
const array = Array(Tuple([key, value]));
|
|
3608
|
+
return (input, ast, options) => {
|
|
3609
|
+
if (input instanceof globalThis.Map) {
|
|
3610
|
+
return Effect.mapBothEager(Parser.decodeUnknownEffect(array)([...input], options), {
|
|
3611
|
+
onSuccess: array => new globalThis.Map(array),
|
|
3612
|
+
onFailure: issue => new Issue.Composite(ast, Option_.some(input), [new Issue.Pointer(["entries"], issue)])
|
|
3613
|
+
});
|
|
3614
|
+
}
|
|
3615
|
+
return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)));
|
|
3616
|
+
};
|
|
3556
3617
|
}, {
|
|
3557
3618
|
typeConstructor: {
|
|
3558
3619
|
_tag: "ReadonlyMap"
|
|
@@ -3587,20 +3648,76 @@ export function ReadonlyMap(key, value) {
|
|
|
3587
3648
|
value
|
|
3588
3649
|
});
|
|
3589
3650
|
}
|
|
3651
|
+
/**
|
|
3652
|
+
* Creates a schema that validates a `HashMap` where keys and values must
|
|
3653
|
+
* conform to the provided schemas.
|
|
3654
|
+
*
|
|
3655
|
+
* @category HashMap
|
|
3656
|
+
* @since 4.0.0
|
|
3657
|
+
*/
|
|
3658
|
+
export function HashMap(key, value) {
|
|
3659
|
+
const schema = declareConstructor()([key, value], ([key, value]) => {
|
|
3660
|
+
const entries = Array(Tuple([key, value]));
|
|
3661
|
+
return (input, ast, options) => {
|
|
3662
|
+
if (HashMap_.isHashMap(input)) {
|
|
3663
|
+
return Effect.mapBothEager(Parser.decodeUnknownEffect(entries)(HashMap_.toEntries(input), options), {
|
|
3664
|
+
onSuccess: HashMap_.fromIterable,
|
|
3665
|
+
onFailure: issue => new Issue.Composite(ast, Option_.some(input), [new Issue.Pointer(["entries"], issue)])
|
|
3666
|
+
});
|
|
3667
|
+
}
|
|
3668
|
+
return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)));
|
|
3669
|
+
};
|
|
3670
|
+
}, {
|
|
3671
|
+
typeConstructor: {
|
|
3672
|
+
_tag: "effect/HashMap"
|
|
3673
|
+
},
|
|
3674
|
+
generation: {
|
|
3675
|
+
runtime: `Schema.HashMap(?, ?)`,
|
|
3676
|
+
Type: `HashMap.HashMap<?, ?>`,
|
|
3677
|
+
importDeclaration: `import * as HashMap from "effect/HashMap"`
|
|
3678
|
+
},
|
|
3679
|
+
expected: "HashMap",
|
|
3680
|
+
toCodec: ([key, value]) => link()(Array(Tuple([key, value])), Transformation.transform({
|
|
3681
|
+
decode: HashMap_.fromIterable,
|
|
3682
|
+
encode: HashMap_.toEntries
|
|
3683
|
+
})),
|
|
3684
|
+
toArbitrary: ([key, value]) => (fc, ctx) => {
|
|
3685
|
+
return fc.oneof(ctx?.isSuspend ? {
|
|
3686
|
+
maxDepth: 2,
|
|
3687
|
+
depthIdentifier: "HashMap"
|
|
3688
|
+
} : {}, fc.constant([]), fc.array(fc.tuple(key, value), ctx?.constraints?.array)).map(HashMap_.fromIterable);
|
|
3689
|
+
},
|
|
3690
|
+
toEquivalence: ([key, value]) => Equal.makeCompareMap(key, value),
|
|
3691
|
+
toFormatter: ([key, value]) => t => {
|
|
3692
|
+
const size = HashMap_.size(t);
|
|
3693
|
+
if (size === 0) {
|
|
3694
|
+
return "HashMap(0) {}";
|
|
3695
|
+
}
|
|
3696
|
+
const entries = HashMap_.toEntries(t).sort().map(([k, v]) => `${key(k)} => ${value(v)}`);
|
|
3697
|
+
return `HashMap(${size}) { ${entries.join(", ")} }`;
|
|
3698
|
+
}
|
|
3699
|
+
});
|
|
3700
|
+
return make(schema.ast, {
|
|
3701
|
+
key,
|
|
3702
|
+
value
|
|
3703
|
+
});
|
|
3704
|
+
}
|
|
3590
3705
|
/**
|
|
3591
3706
|
* @category ReadonlySet
|
|
3592
3707
|
* @since 4.0.0
|
|
3593
3708
|
*/
|
|
3594
3709
|
export function ReadonlySet(value) {
|
|
3595
|
-
const schema = declareConstructor()([value], ([value]) =>
|
|
3596
|
-
|
|
3597
|
-
|
|
3598
|
-
|
|
3599
|
-
|
|
3600
|
-
|
|
3601
|
-
|
|
3602
|
-
|
|
3603
|
-
|
|
3710
|
+
const schema = declareConstructor()([value], ([value]) => {
|
|
3711
|
+
const array = Array(value);
|
|
3712
|
+
return (input, ast, options) => {
|
|
3713
|
+
if (input instanceof globalThis.Set) {
|
|
3714
|
+
return Effect.mapBothEager(Parser.decodeUnknownEffect(array)([...input], options), {
|
|
3715
|
+
onSuccess: array => new globalThis.Set(array),
|
|
3716
|
+
onFailure: issue => new Issue.Composite(ast, Option_.some(input), [new Issue.Pointer(["values"], issue)])
|
|
3717
|
+
});
|
|
3718
|
+
}
|
|
3719
|
+
return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)));
|
|
3720
|
+
};
|
|
3604
3721
|
}, {
|
|
3605
3722
|
typeConstructor: {
|
|
3606
3723
|
_tag: "ReadonlySet"
|
|
@@ -3634,6 +3751,58 @@ export function ReadonlySet(value) {
|
|
|
3634
3751
|
value
|
|
3635
3752
|
});
|
|
3636
3753
|
}
|
|
3754
|
+
/**
|
|
3755
|
+
* Creates a schema that validates a `HashSet` where values must conform to the
|
|
3756
|
+
* provided schema.
|
|
3757
|
+
*
|
|
3758
|
+
* @category HashSet
|
|
3759
|
+
* @since 4.0.0
|
|
3760
|
+
*/
|
|
3761
|
+
export function HashSet(value) {
|
|
3762
|
+
const schema = declareConstructor()([value], ([value]) => {
|
|
3763
|
+
const values = Array(value);
|
|
3764
|
+
return (input, ast, options) => {
|
|
3765
|
+
if (HashSet_.isHashSet(input)) {
|
|
3766
|
+
return Effect.mapBothEager(Parser.decodeUnknownEffect(values)(Arr.fromIterable(input), options), {
|
|
3767
|
+
onSuccess: HashSet_.fromIterable,
|
|
3768
|
+
onFailure: issue => new Issue.Composite(ast, Option_.some(input), [new Issue.Pointer(["values"], issue)])
|
|
3769
|
+
});
|
|
3770
|
+
}
|
|
3771
|
+
return Effect.fail(new Issue.InvalidType(ast, Option_.some(input)));
|
|
3772
|
+
};
|
|
3773
|
+
}, {
|
|
3774
|
+
typeConstructor: {
|
|
3775
|
+
_tag: "HashSet"
|
|
3776
|
+
},
|
|
3777
|
+
generation: {
|
|
3778
|
+
runtime: `Schema.HashSet(?)`,
|
|
3779
|
+
Type: `HashSet.HashSet<?>`
|
|
3780
|
+
},
|
|
3781
|
+
expected: "HashSet",
|
|
3782
|
+
toCodec: ([value]) => link()(Array(value), Transformation.transform({
|
|
3783
|
+
decode: HashSet_.fromIterable,
|
|
3784
|
+
encode: Arr.fromIterable
|
|
3785
|
+
})),
|
|
3786
|
+
toArbitrary: ([value]) => (fc, ctx) => {
|
|
3787
|
+
return fc.oneof(ctx?.isSuspend ? {
|
|
3788
|
+
maxDepth: 2,
|
|
3789
|
+
depthIdentifier: "HashSet"
|
|
3790
|
+
} : {}, fc.constant([]), fc.array(value, ctx?.constraints?.array)).map(HashSet_.fromIterable);
|
|
3791
|
+
},
|
|
3792
|
+
toEquivalence: ([value]) => Equal.makeCompareSet(value),
|
|
3793
|
+
toFormatter: ([value]) => t => {
|
|
3794
|
+
const size = HashSet_.size(t);
|
|
3795
|
+
if (size === 0) {
|
|
3796
|
+
return "HashSet(0) {}";
|
|
3797
|
+
}
|
|
3798
|
+
const values = globalThis.Array.from(t).sort().map(v => `${value(v)}`);
|
|
3799
|
+
return `HashSet(${size}) { ${values.join(", ")} }`;
|
|
3800
|
+
}
|
|
3801
|
+
});
|
|
3802
|
+
return make(schema.ast, {
|
|
3803
|
+
value
|
|
3804
|
+
});
|
|
3805
|
+
}
|
|
3637
3806
|
/**
|
|
3638
3807
|
* @since 4.0.0
|
|
3639
3808
|
*/
|
|
@@ -3842,6 +4011,35 @@ export const DurationFromNanos = /*#__PURE__*/BigInt.check(isGreaterThanOrEqualT
|
|
|
3842
4011
|
* @since 4.0.0
|
|
3843
4012
|
*/
|
|
3844
4013
|
export const DurationFromMillis = /*#__PURE__*/Number.check(isGreaterThanOrEqualTo(0)).pipe(/*#__PURE__*/decodeTo(Duration, Transformation.durationFromMillis));
|
|
4014
|
+
/**
|
|
4015
|
+
* A schema for `BigDecimal` values.
|
|
4016
|
+
*
|
|
4017
|
+
* **Default JSON serializer**
|
|
4018
|
+
*
|
|
4019
|
+
* - encodes `BigDecimal` as a `string`
|
|
4020
|
+
*
|
|
4021
|
+
* @since 4.0.0
|
|
4022
|
+
*/
|
|
4023
|
+
export const BigDecimal = /*#__PURE__*/declare(BigDecimal_.isBigDecimal, {
|
|
4024
|
+
typeConstructor: {
|
|
4025
|
+
_tag: "effect/BigDecimal"
|
|
4026
|
+
},
|
|
4027
|
+
generation: {
|
|
4028
|
+
runtime: `Schema.BigDecimal`,
|
|
4029
|
+
Type: `BigDecimal.BigDecimal`,
|
|
4030
|
+
importDeclaration: `import * as BigDecimal from "effect/BigDecimal"`
|
|
4031
|
+
},
|
|
4032
|
+
expected: "BigDecimal",
|
|
4033
|
+
toCodecJson: () => link()(String.annotate({
|
|
4034
|
+
expected: "a string that will be decoded as a BigDecimal"
|
|
4035
|
+
}), Transformation.bigDecimalFromString),
|
|
4036
|
+
toArbitrary: () => fc => fc.tuple(fc.bigInt(), fc.integer({
|
|
4037
|
+
min: 0,
|
|
4038
|
+
max: 20
|
|
4039
|
+
})).map(([value, scale]) => BigDecimal_.make(value, scale)),
|
|
4040
|
+
toFormatter: () => bd => BigDecimal_.format(bd),
|
|
4041
|
+
toEquivalence: () => BigDecimal_.Equivalence
|
|
4042
|
+
});
|
|
3845
4043
|
/**
|
|
3846
4044
|
* A transformation schema that decodes a JSON-encoded string into an `unknown` value.
|
|
3847
4045
|
*
|
|
@@ -3953,7 +4151,7 @@ export const File = /*#__PURE__*/instanceOf(globalThis.File, {
|
|
|
3953
4151
|
name: String,
|
|
3954
4152
|
lastModified: Number
|
|
3955
4153
|
}), Transformation.transformOrFail({
|
|
3956
|
-
decode: e => Result_.match(
|
|
4154
|
+
decode: e => Result_.match(Encoding.decodeBase64(e.data), {
|
|
3957
4155
|
onFailure: error => Effect.fail(new Issue.InvalidValue(Option_.some(e.data), {
|
|
3958
4156
|
message: error.message
|
|
3959
4157
|
})),
|
|
@@ -3969,7 +4167,7 @@ export const File = /*#__PURE__*/instanceOf(globalThis.File, {
|
|
|
3969
4167
|
try: async () => {
|
|
3970
4168
|
const bytes = new globalThis.Uint8Array(await file.arrayBuffer());
|
|
3971
4169
|
return {
|
|
3972
|
-
data:
|
|
4170
|
+
data: Encoding.encodeBase64(bytes),
|
|
3973
4171
|
type: file.type,
|
|
3974
4172
|
name: file.name,
|
|
3975
4173
|
lastModified: file.lastModified
|
|
@@ -4391,10 +4589,7 @@ export const DateTimeUtc = /*#__PURE__*/declare(u => DateTime.isDateTime(u) && D
|
|
|
4391
4589
|
importDeclaration: `import * as DateTime from "effect/DateTime"`
|
|
4392
4590
|
},
|
|
4393
4591
|
expected: "DateTime.Utc",
|
|
4394
|
-
toCodecJson: () => link()(String,
|
|
4395
|
-
decode: Getter.dateTimeUtcFromInput(),
|
|
4396
|
-
encode: Getter.transform(DateTime.formatIso)
|
|
4397
|
-
}),
|
|
4592
|
+
toCodecJson: () => link()(String, Transformation.dateTimeUtcFromString),
|
|
4398
4593
|
toArbitrary: () => (fc, ctx) => fc.date({
|
|
4399
4594
|
noInvalidDate: true,
|
|
4400
4595
|
...ctx?.constraints?.date
|
|
@@ -4434,10 +4629,7 @@ export const DateTimeUtcFromDate = /*#__PURE__*/DateValid.pipe(/*#__PURE__*/deco
|
|
|
4434
4629
|
*/
|
|
4435
4630
|
export const DateTimeUtcFromString = /*#__PURE__*/String.annotate({
|
|
4436
4631
|
expected: "a string that will be decoded as a DateTime.Utc"
|
|
4437
|
-
}).pipe(/*#__PURE__*/decodeTo(DateTimeUtc,
|
|
4438
|
-
decode: DateTime.makeUnsafe,
|
|
4439
|
-
encode: DateTime.formatIso
|
|
4440
|
-
})));
|
|
4632
|
+
}).pipe(/*#__PURE__*/decodeTo(DateTimeUtc, Transformation.dateTimeUtcFromString));
|
|
4441
4633
|
/**
|
|
4442
4634
|
* A transformation schema that decodes a number into a `DateTime.Utc`.
|
|
4443
4635
|
*
|
|
@@ -4454,18 +4646,140 @@ export const DateTimeUtcFromMillis = /*#__PURE__*/Number.pipe(/*#__PURE__*/decod
|
|
|
4454
4646
|
decode: /*#__PURE__*/Getter.dateTimeUtcFromInput(),
|
|
4455
4647
|
encode: /*#__PURE__*/Getter.transform(DateTime.toEpochMillis)
|
|
4456
4648
|
}));
|
|
4649
|
+
/**
|
|
4650
|
+
* A schema for `DateTime.TimeZone.Offset` values.
|
|
4651
|
+
*
|
|
4652
|
+
* **Default JSON serializer**
|
|
4653
|
+
*
|
|
4654
|
+
* - encodes `DateTime.TimeZone.Offset` as a number (offset in milliseconds)
|
|
4655
|
+
*
|
|
4656
|
+
* @category DateTime
|
|
4657
|
+
* @since 4.0.0
|
|
4658
|
+
*/
|
|
4659
|
+
export const TimeZoneOffset = /*#__PURE__*/declare(DateTime.isTimeZoneOffset, {
|
|
4660
|
+
typeConstructor: {
|
|
4661
|
+
_tag: "DateTime.TimeZone.Offset"
|
|
4662
|
+
},
|
|
4663
|
+
generation: {
|
|
4664
|
+
runtime: `Schema.TimeZoneOffset`,
|
|
4665
|
+
Type: `DateTime.TimeZone.Offset`,
|
|
4666
|
+
importDeclaration: `import * as DateTime from "effect/DateTime"`
|
|
4667
|
+
},
|
|
4668
|
+
expected: "DateTime.TimeZone.Offset",
|
|
4669
|
+
toCodecJson: () => link()(Number, Transformation.timeZoneOffsetFromNumber),
|
|
4670
|
+
toArbitrary: () => fc => fc.integer({
|
|
4671
|
+
min: -12 * 60 * 60 * 1000,
|
|
4672
|
+
max: 14 * 60 * 60 * 1000
|
|
4673
|
+
}).map(n => DateTime.zoneMakeOffset(n)),
|
|
4674
|
+
toFormatter: () => tz => DateTime.zoneToString(tz),
|
|
4675
|
+
toEquivalence: () => (a, b) => a.offset === b.offset
|
|
4676
|
+
});
|
|
4677
|
+
/**
|
|
4678
|
+
* A schema for `DateTime.TimeZone.Named` values.
|
|
4679
|
+
*
|
|
4680
|
+
* **Default JSON serializer**
|
|
4681
|
+
*
|
|
4682
|
+
* - encodes `DateTime.TimeZone.Named` as a string (IANA time zone identifier)
|
|
4683
|
+
*
|
|
4684
|
+
* @category DateTime
|
|
4685
|
+
* @since 4.0.0
|
|
4686
|
+
*/
|
|
4687
|
+
export const TimeZoneNamed = /*#__PURE__*/declare(DateTime.isTimeZoneNamed, {
|
|
4688
|
+
typeConstructor: {
|
|
4689
|
+
_tag: "DateTime.TimeZone.Named"
|
|
4690
|
+
},
|
|
4691
|
+
generation: {
|
|
4692
|
+
runtime: `Schema.TimeZoneNamed`,
|
|
4693
|
+
Type: `DateTime.TimeZone.Named`,
|
|
4694
|
+
importDeclaration: `import * as DateTime from "effect/DateTime"`
|
|
4695
|
+
},
|
|
4696
|
+
expected: "DateTime.TimeZone.Named",
|
|
4697
|
+
toCodecJson: () => link()(String.annotate({
|
|
4698
|
+
expected: "an IANA time zone identifier"
|
|
4699
|
+
}), Transformation.timeZoneNamedFromString),
|
|
4700
|
+
toArbitrary: () => fc => fc.constantFrom(...["UTC", "Europe/London", "America/New_York", "Asia/Tokyo", "Australia/Sydney"].map(DateTime.zoneMakeNamedUnsafe)),
|
|
4701
|
+
toFormatter: () => tz => DateTime.zoneToString(tz),
|
|
4702
|
+
toEquivalence: () => (a, b) => a.id === b.id
|
|
4703
|
+
});
|
|
4704
|
+
/**
|
|
4705
|
+
* A schema for `DateTime.TimeZone` values.
|
|
4706
|
+
*
|
|
4707
|
+
* **Default JSON serializer**
|
|
4708
|
+
*
|
|
4709
|
+
* - encodes `DateTime.TimeZone` as a string (IANA identifier or offset like
|
|
4710
|
+
* `+03:00`)
|
|
4711
|
+
*
|
|
4712
|
+
* @category DateTime
|
|
4713
|
+
* @since 4.0.0
|
|
4714
|
+
*/
|
|
4715
|
+
export const TimeZone = /*#__PURE__*/declare(DateTime.isTimeZone, {
|
|
4716
|
+
typeConstructor: {
|
|
4717
|
+
_tag: "DateTime.TimeZone"
|
|
4718
|
+
},
|
|
4719
|
+
generation: {
|
|
4720
|
+
runtime: `Schema.TimeZone`,
|
|
4721
|
+
Type: `DateTime.TimeZone`,
|
|
4722
|
+
importDeclaration: `import * as DateTime from "effect/DateTime"`
|
|
4723
|
+
},
|
|
4724
|
+
expected: "DateTime.TimeZone",
|
|
4725
|
+
toCodecJson: () => link()(String.annotate({
|
|
4726
|
+
expected: "a time zone string (IANA identifier or offset like +03:00)"
|
|
4727
|
+
}), Transformation.timeZoneFromString),
|
|
4728
|
+
toArbitrary: () => fc => fc.oneof(fc.integer({
|
|
4729
|
+
min: -12 * 60 * 60 * 1000,
|
|
4730
|
+
max: 14 * 60 * 60 * 1000
|
|
4731
|
+
}).map(n => DateTime.zoneMakeOffset(n)), fc.constantFrom(...["UTC", "Europe/London", "America/New_York", "Asia/Tokyo", "Australia/Sydney"].map(DateTime.zoneMakeNamedUnsafe))),
|
|
4732
|
+
toFormatter: () => tz => DateTime.zoneToString(tz),
|
|
4733
|
+
toEquivalence: () => (a, b) => DateTime.zoneToString(a) === DateTime.zoneToString(b)
|
|
4734
|
+
});
|
|
4735
|
+
/**
|
|
4736
|
+
* A schema for `DateTime.Zoned` values.
|
|
4737
|
+
*
|
|
4738
|
+
* **Default JSON serializer**
|
|
4739
|
+
*
|
|
4740
|
+
* - encodes `DateTime.Zoned` as a string in the format
|
|
4741
|
+
* `YYYY-MM-DDTHH:mm:ss.sss+HH:MM[Time/Zone]`
|
|
4742
|
+
*
|
|
4743
|
+
* @category DateTime
|
|
4744
|
+
* @since 4.0.0
|
|
4745
|
+
*/
|
|
4746
|
+
export const DateTimeZoned = /*#__PURE__*/declare(u => DateTime.isDateTime(u) && DateTime.isZoned(u), {
|
|
4747
|
+
typeConstructor: {
|
|
4748
|
+
_tag: "DateTime.Zoned"
|
|
4749
|
+
},
|
|
4750
|
+
generation: {
|
|
4751
|
+
runtime: `Schema.DateTimeZoned`,
|
|
4752
|
+
Type: `DateTime.Zoned`,
|
|
4753
|
+
importDeclaration: `import * as DateTime from "effect/DateTime"`
|
|
4754
|
+
},
|
|
4755
|
+
expected: "DateTime.Zoned",
|
|
4756
|
+
toCodecJson: () => link()(String.annotate({
|
|
4757
|
+
expected: "a zoned DateTime string (e.g. 2024-01-01T00:00:00.000+00:00[Europe/London])"
|
|
4758
|
+
}), Transformation.dateTimeZonedFromString),
|
|
4759
|
+
toArbitrary: () => (fc, ctx) => fc.tuple(fc.date({
|
|
4760
|
+
noInvalidDate: true,
|
|
4761
|
+
min: new globalThis.Date(-8640000000000000 + 14 * 60 * 60 * 1000),
|
|
4762
|
+
max: new globalThis.Date(8640000000000000 - 14 * 60 * 60 * 1000),
|
|
4763
|
+
...ctx?.constraints?.date
|
|
4764
|
+
}), fc.constantFrom("UTC", "Europe/London", "America/New_York", "Asia/Tokyo", "Australia/Sydney")).map(([date, zone]) => DateTime.makeZonedUnsafe(date, {
|
|
4765
|
+
timeZone: zone
|
|
4766
|
+
})),
|
|
4767
|
+
toFormatter: () => zoned => DateTime.formatIsoZoned(zoned),
|
|
4768
|
+
toEquivalence: () => DateTime.Equivalence
|
|
4769
|
+
});
|
|
4457
4770
|
const immerable = /*#__PURE__*/globalThis.Symbol.for("immer-draftable");
|
|
4458
4771
|
function makeClass(Inherited, identifier, struct, annotations) {
|
|
4459
4772
|
const getClassSchema = getClassSchemaFactory(struct, identifier, annotations);
|
|
4460
4773
|
const ClassTypeId = getClassTypeId(identifier); // HMR support
|
|
4461
4774
|
return class extends Inherited {
|
|
4462
4775
|
constructor(...[input, options]) {
|
|
4776
|
+
const props = input ?? {};
|
|
4463
4777
|
if (options?.disableValidation) {
|
|
4464
|
-
super(
|
|
4778
|
+
super(props, options);
|
|
4465
4779
|
} else {
|
|
4466
|
-
const validated = struct.makeUnsafe(
|
|
4780
|
+
const validated = struct.makeUnsafe(props, options);
|
|
4467
4781
|
super({
|
|
4468
|
-
...
|
|
4782
|
+
...props,
|
|
4469
4783
|
...validated
|
|
4470
4784
|
}, {
|
|
4471
4785
|
...options,
|