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
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
import * as Arr from "../../Array.ts"
|
|
5
5
|
import type { Brand } from "../../Brand.ts"
|
|
6
6
|
import type { Effect } from "../../Effect.ts"
|
|
7
|
-
import { format } from "../../Formatter.ts"
|
|
8
7
|
import { type Pipeable, pipeArguments } from "../../Pipeable.ts"
|
|
9
8
|
import * as Predicate from "../../Predicate.ts"
|
|
10
9
|
import * as Schema from "../../Schema.ts"
|
|
@@ -71,9 +70,9 @@ export interface HttpApiEndpoint<
|
|
|
71
70
|
readonly name: Name
|
|
72
71
|
readonly path: Path
|
|
73
72
|
readonly method: Method
|
|
74
|
-
readonly params: Schema.
|
|
75
|
-
readonly query: Schema.
|
|
76
|
-
readonly headers: Schema.
|
|
73
|
+
readonly params: Schema.Top | undefined
|
|
74
|
+
readonly query: Schema.Top | undefined
|
|
75
|
+
readonly headers: Schema.Top | undefined
|
|
77
76
|
readonly payload: PayloadMap
|
|
78
77
|
readonly success: ReadonlySet<Schema.Top>
|
|
79
78
|
readonly error: ReadonlySet<Schema.Top>
|
|
@@ -156,21 +155,6 @@ export interface HttpApiEndpoint<
|
|
|
156
155
|
>
|
|
157
156
|
}
|
|
158
157
|
|
|
159
|
-
/** @internal */
|
|
160
|
-
export function getParamsSchema(endpoint: AnyWithProps): Schema.Top | undefined {
|
|
161
|
-
return endpoint.params ? Schema.Struct(endpoint.params) : undefined
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
/** @internal */
|
|
165
|
-
export function getQuerySchema(endpoint: AnyWithProps): Schema.Top | undefined {
|
|
166
|
-
return endpoint.query ? Schema.Struct(endpoint.query) : undefined
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
/** @internal */
|
|
170
|
-
export function getHeadersSchema(endpoint: AnyWithProps): Schema.Top | undefined {
|
|
171
|
-
return endpoint.headers ? Schema.Struct(endpoint.headers) : undefined
|
|
172
|
-
}
|
|
173
|
-
|
|
174
158
|
/** @internal */
|
|
175
159
|
export function getPayloadSchemas(endpoint: AnyWithProps): Array<Schema.Top> {
|
|
176
160
|
const result: Array<Schema.Top> = []
|
|
@@ -830,9 +814,9 @@ function makeProto<
|
|
|
830
814
|
readonly name: Name
|
|
831
815
|
readonly path: Path
|
|
832
816
|
readonly method: Method
|
|
833
|
-
readonly params: Schema.
|
|
834
|
-
readonly query: Schema.
|
|
835
|
-
readonly headers: Schema.
|
|
817
|
+
readonly params: Schema.Top | undefined
|
|
818
|
+
readonly query: Schema.Top | undefined
|
|
819
|
+
readonly headers: Schema.Top | undefined
|
|
836
820
|
readonly payload: PayloadMap
|
|
837
821
|
readonly success: ReadonlySet<Schema.Top>
|
|
838
822
|
readonly error: ReadonlySet<Schema.Top>
|
|
@@ -855,32 +839,28 @@ function makeProto<
|
|
|
855
839
|
}
|
|
856
840
|
|
|
857
841
|
/**
|
|
858
|
-
* Params come from the router as `string` (optional params as `undefined`) and
|
|
859
|
-
* must be encodable back into the URL path.
|
|
860
|
-
*
|
|
861
|
-
* We accept "struct fields" (`Record<string, Codec<...>>`) so we can both enforce
|
|
862
|
-
* `Encoded` = `string | undefined` per field and reliably generate OpenAPI
|
|
863
|
-
* `in: path` parameters by iterating object properties.
|
|
864
|
-
*
|
|
865
842
|
* @since 4.0.0
|
|
866
843
|
* @category constraints
|
|
867
844
|
*/
|
|
868
|
-
export type ParamsConstraint =
|
|
845
|
+
export type ParamsConstraint =
|
|
846
|
+
| Record<string, Schema.Encoder<string | undefined, unknown>>
|
|
847
|
+
| Schema.Encoder<Record<string, string | undefined>, unknown>
|
|
869
848
|
|
|
870
849
|
/**
|
|
871
|
-
* URL search params can be repeated, so fields may encode to `string` or
|
|
872
|
-
* `ReadonlyArray<string>` (or be missing).
|
|
873
|
-
*
|
|
874
|
-
* Kept as "struct fields" so OpenAPI can safely expand properties into
|
|
875
|
-
* `in: query` parameters.
|
|
876
|
-
*
|
|
877
850
|
* @since 4.0.0
|
|
878
851
|
* @category constraints
|
|
879
852
|
*/
|
|
880
|
-
export type
|
|
881
|
-
string,
|
|
882
|
-
Schema.Encoder<string
|
|
883
|
-
|
|
853
|
+
export type HeadersConstraint =
|
|
854
|
+
| Record<string, Schema.Encoder<string | undefined, unknown>>
|
|
855
|
+
| Schema.Encoder<Record<string, string | undefined>, unknown>
|
|
856
|
+
|
|
857
|
+
/**
|
|
858
|
+
* @since 4.0.0
|
|
859
|
+
* @category constraints
|
|
860
|
+
*/
|
|
861
|
+
export type QueryConstraint =
|
|
862
|
+
| Record<string, Schema.Encoder<string | ReadonlyArray<string> | undefined, unknown>>
|
|
863
|
+
| Schema.Encoder<Record<string, string | ReadonlyArray<string> | undefined>, unknown>
|
|
884
864
|
|
|
885
865
|
/**
|
|
886
866
|
* Payload schema depends on the HTTP method:
|
|
@@ -893,34 +873,23 @@ export type QuerySchemaConstraint = Record<
|
|
|
893
873
|
* @since 4.0.0
|
|
894
874
|
* @category constraints
|
|
895
875
|
*/
|
|
896
|
-
export type
|
|
876
|
+
export type PayloadConstraint<Method extends HttpMethod> = Method extends HttpMethod.NoBody ? Record<
|
|
897
877
|
string,
|
|
898
878
|
Schema.Encoder<string | ReadonlyArray<string> | undefined, unknown>
|
|
899
879
|
> :
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
/**
|
|
903
|
-
* HTTP headers are string-valued (or missing).
|
|
904
|
-
*
|
|
905
|
-
* Kept as "struct fields" so OpenAPI can safely expand properties into
|
|
906
|
-
* `in: header` parameters.
|
|
907
|
-
*
|
|
908
|
-
* @since 4.0.0
|
|
909
|
-
* @category constraints
|
|
910
|
-
*/
|
|
911
|
-
export type HeadersSchemaConstraint = Record<string, Schema.Encoder<string | undefined, unknown>>
|
|
880
|
+
SuccessConstraint
|
|
912
881
|
|
|
913
882
|
/**
|
|
914
883
|
* @since 4.0.0
|
|
915
884
|
* @category constraints
|
|
916
885
|
*/
|
|
917
|
-
export type
|
|
886
|
+
export type SuccessConstraint = Schema.Top | ReadonlyArray<Schema.Top>
|
|
918
887
|
|
|
919
888
|
/**
|
|
920
889
|
* @since 4.0.0
|
|
921
890
|
* @category constraints
|
|
922
891
|
*/
|
|
923
|
-
export type
|
|
892
|
+
export type ErrorConstraint = Schema.Top | ReadonlyArray<Schema.Top>
|
|
924
893
|
|
|
925
894
|
/**
|
|
926
895
|
* @since 4.0.0
|
|
@@ -931,11 +900,11 @@ export const make = <Method extends HttpMethod>(method: Method) =>
|
|
|
931
900
|
const Name extends string,
|
|
932
901
|
const Path extends HttpRouter.PathInput,
|
|
933
902
|
Params extends ParamsConstraint = never,
|
|
934
|
-
Query extends
|
|
935
|
-
Payload extends
|
|
936
|
-
Headers extends
|
|
937
|
-
const Success extends
|
|
938
|
-
const Error extends
|
|
903
|
+
Query extends QueryConstraint = never,
|
|
904
|
+
Payload extends PayloadConstraint<Method> = never,
|
|
905
|
+
Headers extends HeadersConstraint = never,
|
|
906
|
+
const Success extends SuccessConstraint = HttpApiSchema.NoContent,
|
|
907
|
+
const Error extends ErrorConstraint = never
|
|
939
908
|
>(
|
|
940
909
|
name: Name,
|
|
941
910
|
path: Path,
|
|
@@ -964,8 +933,8 @@ export const make = <Method extends HttpMethod>(method: Method) =>
|
|
|
964
933
|
name,
|
|
965
934
|
path,
|
|
966
935
|
method,
|
|
967
|
-
params: options?.params,
|
|
968
|
-
query: options?.query,
|
|
936
|
+
params: getParams(options?.params),
|
|
937
|
+
query: getQuery(options?.query),
|
|
969
938
|
headers: getHeaders(options?.headers),
|
|
970
939
|
payload: getPayload(options?.payload),
|
|
971
940
|
success: getSuccess(options?.success),
|
|
@@ -975,17 +944,23 @@ export const make = <Method extends HttpMethod>(method: Method) =>
|
|
|
975
944
|
})
|
|
976
945
|
}
|
|
977
946
|
|
|
947
|
+
function getParams(params: ParamsConstraint | undefined): Schema.Top | undefined {
|
|
948
|
+
if (params === undefined) return undefined
|
|
949
|
+
if (Schema.isSchema(params)) return params
|
|
950
|
+
return Schema.Struct(params)
|
|
951
|
+
}
|
|
952
|
+
|
|
953
|
+
function getQuery(query: QueryConstraint | undefined): Schema.Top | undefined {
|
|
954
|
+
if (query === undefined) return undefined
|
|
955
|
+
if (Schema.isSchema(query)) return query
|
|
956
|
+
return Schema.Struct(query)
|
|
957
|
+
}
|
|
958
|
+
|
|
978
959
|
// all keys should be lowercase
|
|
979
|
-
function getHeaders(headers:
|
|
980
|
-
if (headers
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
if (key !== lowerKey) {
|
|
984
|
-
throw new Error(`Header keys must be lowercase, got ${format(key)} (use ${format(lowerKey)})`)
|
|
985
|
-
}
|
|
986
|
-
}
|
|
987
|
-
return headers
|
|
988
|
-
}
|
|
960
|
+
function getHeaders(headers: HeadersConstraint | undefined): Schema.Top | undefined {
|
|
961
|
+
if (headers === undefined) return undefined
|
|
962
|
+
if (Schema.isSchema(headers)) return headers
|
|
963
|
+
return Schema.Struct(headers)
|
|
989
964
|
}
|
|
990
965
|
|
|
991
966
|
function getPayload(
|
|
@@ -98,6 +98,12 @@ export type ScalarConfig = {
|
|
|
98
98
|
* Default: `false`
|
|
99
99
|
*/
|
|
100
100
|
defaultOpenAllTags?: boolean
|
|
101
|
+
/**
|
|
102
|
+
* Whether to display the operation ID in the operation reference.
|
|
103
|
+
*
|
|
104
|
+
* Default: `false`
|
|
105
|
+
*/
|
|
106
|
+
showOperationId?: boolean
|
|
101
107
|
}
|
|
102
108
|
|
|
103
109
|
type ScalarSource =
|
|
@@ -362,20 +362,23 @@ export function fromApi<Id extends string, Groups extends HttpApiGroup.Any>(
|
|
|
362
362
|
}
|
|
363
363
|
}
|
|
364
364
|
|
|
365
|
-
function processParameters(
|
|
366
|
-
if (
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
365
|
+
function processParameters(schema: Schema.Top | undefined, i: OpenAPISpecParameter["in"]) {
|
|
366
|
+
if (schema) {
|
|
367
|
+
const ast = AST.toEncoded(schema.ast)
|
|
368
|
+
if (AST.isObjects(ast)) {
|
|
369
|
+
for (const ps of ast.propertySignatures) {
|
|
370
|
+
op.parameters.push({
|
|
371
|
+
name: String(ps.name),
|
|
372
|
+
in: i,
|
|
373
|
+
schema: {},
|
|
374
|
+
required: i === "path" || !AST.isOptional(ps.type)
|
|
375
|
+
})
|
|
376
|
+
pathOps.push({
|
|
377
|
+
_tag: "parameter",
|
|
378
|
+
ast: ps.type,
|
|
379
|
+
path: ["paths", path, method, "parameters", String(op.parameters.length - 1), "schema"]
|
|
380
|
+
})
|
|
381
|
+
}
|
|
379
382
|
}
|
|
380
383
|
}
|
|
381
384
|
}
|
|
@@ -421,8 +424,7 @@ export function fromApi<Id extends string, Groups extends HttpApiGroup.Any>(
|
|
|
421
424
|
processParameters(endpoint.params, "path")
|
|
422
425
|
if (!hasBody && endpoint.payload.size === 1) {
|
|
423
426
|
const entry = endpoint.payload.values().next().value!
|
|
424
|
-
|
|
425
|
-
processParameters(schema.fields, "query")
|
|
427
|
+
processParameters(entry.schemas[0], "query")
|
|
426
428
|
}
|
|
427
429
|
processParameters(endpoint.headers, "header")
|
|
428
430
|
processParameters(endpoint.query, "query")
|
|
@@ -28,13 +28,13 @@ export const layer = (options: {
|
|
|
28
28
|
readonly headers?: Headers.Input | undefined
|
|
29
29
|
readonly maxBatchSize?: number | undefined
|
|
30
30
|
readonly tracerContext?: (<X>(primitive: Tracer.EffectPrimitive<X>, span: Tracer.AnySpan) => X) | undefined
|
|
31
|
-
readonly loggerExportInterval?: Duration.
|
|
31
|
+
readonly loggerExportInterval?: Duration.Input | undefined
|
|
32
32
|
readonly loggerExcludeLogSpans?: boolean | undefined
|
|
33
33
|
readonly loggerMergeWithExisting?: boolean | undefined
|
|
34
|
-
readonly metricsExportInterval?: Duration.
|
|
34
|
+
readonly metricsExportInterval?: Duration.Input | undefined
|
|
35
35
|
readonly metricsTemporality?: AggregationTemporality | undefined
|
|
36
|
-
readonly tracerExportInterval?: Duration.
|
|
37
|
-
readonly shutdownTimeout?: Duration.
|
|
36
|
+
readonly tracerExportInterval?: Duration.Input | undefined
|
|
37
|
+
readonly shutdownTimeout?: Duration.Input | undefined
|
|
38
38
|
}): Layer.Layer<never, never, HttpClient.HttpClient | OtlpSerialization.OtlpSerialization> => {
|
|
39
39
|
const base = HttpClientRequest.get(options.baseUrl)
|
|
40
40
|
const url = (path: string) => HttpClientRequest.appendUrl(base, path).url
|
|
@@ -83,13 +83,13 @@ export const layerJson: (options: {
|
|
|
83
83
|
readonly headers?: Headers.Input | undefined
|
|
84
84
|
readonly maxBatchSize?: number | undefined
|
|
85
85
|
readonly tracerContext?: (<X>(primitive: Tracer.EffectPrimitive<X>, span: Tracer.AnySpan) => X) | undefined
|
|
86
|
-
readonly loggerExportInterval?: Duration.
|
|
86
|
+
readonly loggerExportInterval?: Duration.Input | undefined
|
|
87
87
|
readonly loggerExcludeLogSpans?: boolean | undefined
|
|
88
88
|
readonly loggerMergeWithExisting?: boolean | undefined
|
|
89
|
-
readonly metricsExportInterval?: Duration.
|
|
89
|
+
readonly metricsExportInterval?: Duration.Input | undefined
|
|
90
90
|
readonly metricsTemporality?: AggregationTemporality | undefined
|
|
91
|
-
readonly tracerExportInterval?: Duration.
|
|
92
|
-
readonly shutdownTimeout?: Duration.
|
|
91
|
+
readonly tracerExportInterval?: Duration.Input | undefined
|
|
92
|
+
readonly shutdownTimeout?: Duration.Input | undefined
|
|
93
93
|
}) => Layer.Layer<never, never, HttpClient.HttpClient> = flow(layer, Layer.provide(OtlpSerialization.layerJson))
|
|
94
94
|
|
|
95
95
|
/**
|
|
@@ -106,11 +106,11 @@ export const layerProtobuf: (options: {
|
|
|
106
106
|
readonly headers?: Headers.Input | undefined
|
|
107
107
|
readonly maxBatchSize?: number | undefined
|
|
108
108
|
readonly tracerContext?: (<X>(primitive: Tracer.EffectPrimitive<X>, span: Tracer.AnySpan) => X) | undefined
|
|
109
|
-
readonly loggerExportInterval?: Duration.
|
|
109
|
+
readonly loggerExportInterval?: Duration.Input | undefined
|
|
110
110
|
readonly loggerExcludeLogSpans?: boolean | undefined
|
|
111
111
|
readonly loggerMergeWithExisting?: boolean | undefined
|
|
112
|
-
readonly metricsExportInterval?: Duration.
|
|
112
|
+
readonly metricsExportInterval?: Duration.Input | undefined
|
|
113
113
|
readonly metricsTemporality?: AggregationTemporality | undefined
|
|
114
|
-
readonly tracerExportInterval?: Duration.
|
|
115
|
-
readonly shutdownTimeout?: Duration.
|
|
114
|
+
readonly tracerExportInterval?: Duration.Input | undefined
|
|
115
|
+
readonly shutdownTimeout?: Duration.Input | undefined
|
|
116
116
|
}) => Layer.Layer<never, never, HttpClient.HttpClient> = flow(layer, Layer.provide(OtlpSerialization.layerProtobuf))
|
|
@@ -40,10 +40,10 @@ export const make: (
|
|
|
40
40
|
readonly url: string
|
|
41
41
|
readonly headers: Headers.Input | undefined
|
|
42
42
|
readonly label: string
|
|
43
|
-
readonly exportInterval: Duration.
|
|
43
|
+
readonly exportInterval: Duration.Input
|
|
44
44
|
readonly maxBatchSize: number | "disabled"
|
|
45
45
|
readonly body: (data: Array<any>) => HttpBody
|
|
46
|
-
readonly shutdownTimeout: Duration.
|
|
46
|
+
readonly shutdownTimeout: Duration.Input
|
|
47
47
|
}
|
|
48
48
|
) => Effect.Effect<
|
|
49
49
|
{ readonly push: (data: unknown) => void },
|
|
@@ -54,7 +54,7 @@ export const make: (
|
|
|
54
54
|
const clock = ServiceMap.get(services, Clock)
|
|
55
55
|
const scope = ServiceMap.get(services, Scope.Scope)
|
|
56
56
|
const runFork = Effect.runForkWith(services)
|
|
57
|
-
const exportInterval = Duration.max(Duration.
|
|
57
|
+
const exportInterval = Duration.max(Duration.fromInputUnsafe(options.exportInterval), Duration.zero)
|
|
58
58
|
let disabledUntil: number | undefined = undefined
|
|
59
59
|
|
|
60
60
|
const client = HttpClient.filterStatusOk(ServiceMap.get(services, HttpClient.HttpClient)).pipe(
|
|
@@ -30,9 +30,9 @@ export const make: (
|
|
|
30
30
|
readonly attributes?: Record<string, unknown>
|
|
31
31
|
} | undefined
|
|
32
32
|
readonly headers?: Headers.Input | undefined
|
|
33
|
-
readonly exportInterval?: Duration.
|
|
33
|
+
readonly exportInterval?: Duration.Input | undefined
|
|
34
34
|
readonly maxBatchSize?: number | undefined
|
|
35
|
-
readonly shutdownTimeout?: Duration.
|
|
35
|
+
readonly shutdownTimeout?: Duration.Input | undefined
|
|
36
36
|
readonly excludeLogSpans?: boolean | undefined
|
|
37
37
|
}
|
|
38
38
|
) => Effect.Effect<
|
|
@@ -85,9 +85,9 @@ export const layer = (options: {
|
|
|
85
85
|
readonly attributes?: Record<string, unknown>
|
|
86
86
|
} | undefined
|
|
87
87
|
readonly headers?: Headers.Input | undefined
|
|
88
|
-
readonly exportInterval?: Duration.
|
|
88
|
+
readonly exportInterval?: Duration.Input | undefined
|
|
89
89
|
readonly maxBatchSize?: number | undefined
|
|
90
|
-
readonly shutdownTimeout?: Duration.
|
|
90
|
+
readonly shutdownTimeout?: Duration.Input | undefined
|
|
91
91
|
readonly excludeLogSpans?: boolean | undefined
|
|
92
92
|
readonly mergeWithExisting?: boolean | undefined
|
|
93
93
|
}): Layer.Layer<never, never, HttpClient.HttpClient | OtlpSerialization> =>
|
|
@@ -60,8 +60,8 @@ export const make: (options: {
|
|
|
60
60
|
readonly attributes?: Record<string, unknown>
|
|
61
61
|
} | undefined
|
|
62
62
|
readonly headers?: Headers.Input | undefined
|
|
63
|
-
readonly exportInterval?: Duration.
|
|
64
|
-
readonly shutdownTimeout?: Duration.
|
|
63
|
+
readonly exportInterval?: Duration.Input | undefined
|
|
64
|
+
readonly shutdownTimeout?: Duration.Input | undefined
|
|
65
65
|
readonly temporality?: AggregationTemporality | undefined
|
|
66
66
|
}) => Effect.Effect<
|
|
67
67
|
void,
|
|
@@ -440,8 +440,8 @@ export const layer = (options: {
|
|
|
440
440
|
readonly attributes?: Record<string, unknown>
|
|
441
441
|
} | undefined
|
|
442
442
|
readonly headers?: Headers.Input | undefined
|
|
443
|
-
readonly exportInterval?: Duration.
|
|
444
|
-
readonly shutdownTimeout?: Duration.
|
|
443
|
+
readonly exportInterval?: Duration.Input | undefined
|
|
444
|
+
readonly shutdownTimeout?: Duration.Input | undefined
|
|
445
445
|
readonly temporality?: AggregationTemporality | undefined
|
|
446
446
|
}): Layer.Layer<never, never, HttpClient.HttpClient | OtlpSerialization> => Layer.effectDiscard(make(options))
|
|
447
447
|
|
|
@@ -32,10 +32,10 @@ export const make: (
|
|
|
32
32
|
readonly attributes?: Record<string, unknown>
|
|
33
33
|
} | undefined
|
|
34
34
|
readonly headers?: Headers.Input | undefined
|
|
35
|
-
readonly exportInterval?: Duration.
|
|
35
|
+
readonly exportInterval?: Duration.Input | undefined
|
|
36
36
|
readonly maxBatchSize?: number | undefined
|
|
37
37
|
readonly context?: (<X>(primitive: Tracer.EffectPrimitive<X>, span: Tracer.AnySpan) => X) | undefined
|
|
38
|
-
readonly shutdownTimeout?: Duration.
|
|
38
|
+
readonly shutdownTimeout?: Duration.Input | undefined
|
|
39
39
|
}
|
|
40
40
|
) => Effect.Effect<
|
|
41
41
|
Tracer.Tracer,
|
|
@@ -109,10 +109,10 @@ export const layer: (options: {
|
|
|
109
109
|
readonly attributes?: Record<string, unknown>
|
|
110
110
|
} | undefined
|
|
111
111
|
readonly headers?: Headers.Input | undefined
|
|
112
|
-
readonly exportInterval?: Duration.
|
|
112
|
+
readonly exportInterval?: Duration.Input | undefined
|
|
113
113
|
readonly maxBatchSize?: number | undefined
|
|
114
114
|
readonly context?: (<X>(primitive: Tracer.EffectPrimitive<X>, span: Tracer.AnySpan) => X) | undefined
|
|
115
|
-
readonly shutdownTimeout?: Duration.
|
|
115
|
+
readonly shutdownTimeout?: Duration.Input | undefined
|
|
116
116
|
}) => Layer.Layer<never, never, OtlpSerialization | HttpClient.HttpClient> = flow(make, Layer.effect(Tracer.Tracer))
|
|
117
117
|
|
|
118
118
|
// internal
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as Data from "../../Data.ts"
|
|
5
5
|
import * as Effect from "../../Effect.ts"
|
|
6
|
-
import * as
|
|
6
|
+
import * as Encoding from "../../Encoding.ts"
|
|
7
7
|
import * as FileSystem from "../../FileSystem.ts"
|
|
8
8
|
import { dual, identity, type LazyArg } from "../../Function.ts"
|
|
9
9
|
import * as Layer from "../../Layer.ts"
|
|
@@ -225,7 +225,7 @@ export const makeStringOnly = (
|
|
|
225
225
|
getUint8Array: (key) =>
|
|
226
226
|
options.get(key).pipe(
|
|
227
227
|
Effect.map(UndefinedOr.map((value) =>
|
|
228
|
-
Result.match(
|
|
228
|
+
Result.match(Encoding.decodeBase64(value), {
|
|
229
229
|
onFailure: () => encoder.encode(value),
|
|
230
230
|
onSuccess: identity
|
|
231
231
|
})
|
|
@@ -234,7 +234,7 @@ export const makeStringOnly = (
|
|
|
234
234
|
set: (key, value) =>
|
|
235
235
|
typeof value === "string"
|
|
236
236
|
? options.set(key, value)
|
|
237
|
-
: Effect.suspend(() => options.set(key,
|
|
237
|
+
: Effect.suspend(() => options.set(key, Encoding.encodeBase64(value)))
|
|
238
238
|
})
|
|
239
239
|
}
|
|
240
240
|
|
|
@@ -276,7 +276,7 @@ export const layerMemory: Layer.Layer<KeyValueStore> = Layer.sync(KeyValueStore)
|
|
|
276
276
|
get: (key: string) =>
|
|
277
277
|
Effect.sync(() => {
|
|
278
278
|
const value = store.get(key)
|
|
279
|
-
return value === undefined ? undefined : typeof value === "string" ? value :
|
|
279
|
+
return value === undefined ? undefined : typeof value === "string" ? value : Encoding.encodeBase64(value)
|
|
280
280
|
}),
|
|
281
281
|
getUint8Array: (key: string) =>
|
|
282
282
|
Effect.sync(() => {
|
|
@@ -312,7 +312,7 @@ export const layerFileSystem = (
|
|
|
312
312
|
fs.readFileString(keyPath(key)),
|
|
313
313
|
"PlatformError",
|
|
314
314
|
(cause) =>
|
|
315
|
-
cause.reason._tag === "
|
|
315
|
+
cause.reason._tag === "NotFound" ? Effect.undefined : Effect.fail(
|
|
316
316
|
new KeyValueStoreError({
|
|
317
317
|
method: "get",
|
|
318
318
|
key,
|
|
@@ -326,7 +326,7 @@ export const layerFileSystem = (
|
|
|
326
326
|
fs.readFile(keyPath(key)),
|
|
327
327
|
"PlatformError",
|
|
328
328
|
(cause) =>
|
|
329
|
-
cause.reason._tag === "
|
|
329
|
+
cause.reason._tag === "NotFound" ? Effect.undefined : Effect.fail(
|
|
330
330
|
new KeyValueStoreError({
|
|
331
331
|
method: "getUint8Array",
|
|
332
332
|
key,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 4.0.0
|
|
3
3
|
*/
|
|
4
|
-
import type
|
|
4
|
+
import type * as Duration from "../../Duration.ts"
|
|
5
5
|
import type * as Effect from "../../Effect.ts"
|
|
6
6
|
import type * as Exit from "../../Exit.ts"
|
|
7
7
|
import * as PrimaryKey from "../../PrimaryKey.ts"
|
|
@@ -87,7 +87,7 @@ export type Services<A extends Any> =
|
|
|
87
87
|
* @since 4.0.0
|
|
88
88
|
* @category Models
|
|
89
89
|
*/
|
|
90
|
-
export type TimeToLiveFn<K extends Any> = (exit: Exit.Exit<Success<K>, Error<K>>, request: K) =>
|
|
90
|
+
export type TimeToLiveFn<K extends Any> = (exit: Exit.Exit<Success<K>, Error<K>>, request: K) => Duration.Input
|
|
91
91
|
|
|
92
92
|
/**
|
|
93
93
|
* @since 4.0.0
|
|
@@ -17,18 +17,18 @@ const TypeId = "~effect/persistence/PersistedCache" as const
|
|
|
17
17
|
* @since 4.0.0
|
|
18
18
|
* @category Models
|
|
19
19
|
*/
|
|
20
|
-
export interface PersistedCache<K extends Persistable.Any> {
|
|
20
|
+
export interface PersistedCache<K extends Persistable.Any, out R = never> {
|
|
21
21
|
readonly [TypeId]: typeof TypeId
|
|
22
22
|
readonly inMemory: Cache.Cache<
|
|
23
23
|
K,
|
|
24
24
|
Persistable.Success<K>,
|
|
25
25
|
Persistable.Error<K> | Persistence.PersistenceError | Schema.SchemaError,
|
|
26
|
-
Persistable.Services<K>
|
|
26
|
+
Persistable.Services<K> | R
|
|
27
27
|
>
|
|
28
28
|
readonly get: (key: K) => Effect.Effect<
|
|
29
29
|
Persistable.Success<K>,
|
|
30
30
|
Persistable.Error<K> | Persistence.PersistenceError | Schema.SchemaError,
|
|
31
|
-
Persistable.Services<K>
|
|
31
|
+
Persistable.Services<K> | R
|
|
32
32
|
>
|
|
33
33
|
readonly invalidate: (key: K) => Effect.Effect<void, Persistence.PersistenceError>
|
|
34
34
|
}
|
|
@@ -37,22 +37,32 @@ export interface PersistedCache<K extends Persistable.Any> {
|
|
|
37
37
|
* @since 4.0.0
|
|
38
38
|
* @category Constructors
|
|
39
39
|
*/
|
|
40
|
-
export const make: <
|
|
40
|
+
export const make: <
|
|
41
|
+
K extends Persistable.Any,
|
|
42
|
+
R = never,
|
|
43
|
+
ServiceMode extends "lookup" | "construction" = never
|
|
44
|
+
>(options: {
|
|
41
45
|
readonly storeId: string
|
|
42
46
|
readonly lookup: (key: K) => Effect.Effect<Persistable.Success<K>, Persistable.Error<K>, R>
|
|
43
47
|
readonly timeToLive: Persistable.TimeToLiveFn<K>
|
|
44
48
|
readonly inMemoryCapacity?: number | undefined
|
|
45
49
|
readonly inMemoryTTL?: Persistable.TimeToLiveFn<K> | undefined
|
|
50
|
+
readonly requireServicesAt?: ServiceMode | undefined
|
|
46
51
|
}) => Effect.Effect<
|
|
47
|
-
PersistedCache<K>,
|
|
52
|
+
PersistedCache<K, "lookup" extends ServiceMode ? R : never>,
|
|
48
53
|
never,
|
|
49
|
-
R | Persistence.Persistence | Scope.Scope
|
|
50
|
-
> = Effect.fnUntraced(function*<
|
|
54
|
+
("lookup" extends ServiceMode ? never : R) | Persistence.Persistence | Scope.Scope
|
|
55
|
+
> = Effect.fnUntraced(function*<
|
|
56
|
+
K extends Persistable.Any,
|
|
57
|
+
R = never,
|
|
58
|
+
ServiceMode extends "lookup" | "construction" = never
|
|
59
|
+
>(options: {
|
|
51
60
|
readonly storeId: string
|
|
52
61
|
readonly lookup: (key: K) => Effect.Effect<Persistable.Success<K>, Persistable.Error<K>, R>
|
|
53
62
|
readonly timeToLive: Persistable.TimeToLiveFn<K>
|
|
54
63
|
readonly inMemoryCapacity?: number | undefined
|
|
55
64
|
readonly inMemoryTTL?: Persistable.TimeToLiveFn<K> | undefined
|
|
65
|
+
readonly requireServicesAt?: ServiceMode | undefined
|
|
56
66
|
}) {
|
|
57
67
|
const store = yield* (yield* Persistence.Persistence).make({
|
|
58
68
|
storeId: options.storeId,
|
|
@@ -69,9 +79,10 @@ export const make: <K extends Persistable.Any, R>(options: {
|
|
|
69
79
|
return yield* result
|
|
70
80
|
}),
|
|
71
81
|
timeToLive: options.inMemoryTTL ?? constant(Duration.seconds(10)),
|
|
72
|
-
capacity: options.inMemoryCapacity ?? 1024
|
|
82
|
+
capacity: options.inMemoryCapacity ?? 1024,
|
|
83
|
+
requireServicesAt: options.requireServicesAt
|
|
73
84
|
})
|
|
74
|
-
return identity<PersistedCache<K>>({
|
|
85
|
+
return identity<PersistedCache<K, "lookup" extends ServiceMode ? R : never>>({
|
|
75
86
|
[TypeId]: TypeId,
|
|
76
87
|
inMemory,
|
|
77
88
|
get: (key) => Cache.get(inMemory, key),
|