effect 4.0.0-beta.100 → 4.0.0-beta.102
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/Array.d.ts.map +1 -1
- package/dist/Array.js +81 -5
- package/dist/Array.js.map +1 -1
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +27 -9
- package/dist/Channel.js.map +1 -1
- package/dist/Config.d.ts +1 -1
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +6 -5
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.js +7 -7
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +2 -1
- package/dist/Data.js.map +1 -1
- package/dist/Effect.d.ts +61 -100
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +66 -39
- package/dist/Effect.js.map +1 -1
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +3 -2
- package/dist/FiberHandle.js.map +1 -1
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +2 -1
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonPatch.d.ts.map +1 -1
- package/dist/JsonPatch.js +4 -3
- package/dist/JsonPatch.js.map +1 -1
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +9 -11
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +3 -2
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +9 -0
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +3 -0
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +4 -3
- package/dist/Metric.js.map +1 -1
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +4 -0
- package/dist/MutableList.js.map +1 -1
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +5 -4
- package/dist/Optic.js.map +1 -1
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +2 -1
- package/dist/Option.js.map +1 -1
- package/dist/PartitionedSemaphore.d.ts.map +1 -1
- package/dist/PartitionedSemaphore.js +1 -4
- package/dist/PartitionedSemaphore.js.map +1 -1
- package/dist/Record.d.ts +93 -1
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +57 -19
- package/dist/Record.js.map +1 -1
- package/dist/References.d.ts +0 -45
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +0 -45
- package/dist/References.js.map +1 -1
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js +9 -6
- package/dist/Request.js.map +1 -1
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +2 -1
- package/dist/Result.js.map +1 -1
- package/dist/Schema.d.ts +1269 -496
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +2308 -614
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +2 -2
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +189 -130
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaError.js +1 -1
- package/dist/SchemaError.js.map +1 -1
- package/dist/SchemaGetter.d.ts +13 -11
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +34 -24
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.js +1 -1
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +1 -12
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +403 -1504
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +294 -2852
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +2 -2
- package/dist/SchemaTransformation.js +3 -3
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/Semaphore.d.ts +5 -3
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js.map +1 -1
- package/dist/Stream.d.ts +15 -9
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +46 -16
- package/dist/Stream.js.map +1 -1
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +5 -4
- package/dist/Struct.js.map +1 -1
- package/dist/Types.d.ts +1 -3
- package/dist/Types.d.ts.map +1 -1
- package/dist/index.d.ts +0 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -4
- package/dist/index.js.map +1 -1
- package/dist/internal/core.js +3 -2
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/effect.js +119 -53
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/matcher.js +1 -1
- package/dist/internal/matcher.js.map +1 -1
- package/dist/internal/record.d.ts +0 -3
- package/dist/internal/record.d.ts.map +1 -1
- package/dist/internal/record.js +10 -5
- package/dist/internal/record.js.map +1 -1
- package/dist/internal/references.js +0 -4
- package/dist/internal/references.js.map +1 -1
- package/dist/internal/schema/annotations.js +12 -0
- package/dist/internal/schema/annotations.js.map +1 -1
- package/dist/internal/schema/fromJsonSchemaDocument.d.ts +2 -0
- package/dist/internal/schema/fromJsonSchemaDocument.d.ts.map +1 -0
- package/dist/internal/schema/fromJsonSchemaDocument.js +743 -0
- package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -0
- package/dist/internal/schema/fromRepresentation.d.ts +2 -0
- package/dist/internal/schema/fromRepresentation.d.ts.map +1 -0
- package/dist/internal/schema/fromRepresentation.js +252 -0
- package/dist/internal/schema/fromRepresentation.js.map +1 -0
- package/dist/internal/schema/schema.js +28 -40
- package/dist/internal/schema/schema.js.map +1 -1
- package/dist/internal/schema/{arbitrary.d.ts → toArbitrary.d.ts} +1 -1
- package/dist/internal/schema/toArbitrary.d.ts.map +1 -0
- package/dist/internal/schema/{arbitrary.js → toArbitrary.js} +8 -9
- package/dist/internal/schema/toArbitrary.js.map +1 -0
- package/dist/internal/schema/toCodeDocument.d.ts +2 -0
- package/dist/internal/schema/toCodeDocument.d.ts.map +1 -0
- package/dist/internal/schema/toCodeDocument.js +438 -0
- package/dist/internal/schema/toCodeDocument.js.map +1 -0
- package/dist/internal/schema/toEquivalence.d.ts +2 -0
- package/dist/internal/schema/toEquivalence.d.ts.map +1 -0
- package/dist/internal/schema/{equivalence.js → toEquivalence.js} +15 -13
- package/dist/internal/schema/toEquivalence.js.map +1 -0
- package/dist/internal/schema/toJsonSchemaDocument.d.ts +2 -0
- package/dist/internal/schema/toJsonSchemaDocument.d.ts.map +1 -0
- package/dist/internal/schema/toJsonSchemaDocument.js +466 -0
- package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -0
- package/dist/internal/schema/toRepresentation.d.ts +2 -0
- package/dist/internal/schema/toRepresentation.d.ts.map +1 -0
- package/dist/internal/schema/toRepresentation.js +369 -0
- package/dist/internal/schema/toRepresentation.js.map +1 -0
- package/dist/internal/stackTraceLimit.js +3 -6
- package/dist/internal/stackTraceLimit.js.map +1 -1
- package/dist/testing/TestClock.js +4 -1
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +26 -26
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +5 -4
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +21 -6
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.js +86 -316
- package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/EmbeddingModel.d.ts +1 -1
- package/dist/unstable/ai/EmbeddingModel.js +1 -1
- package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +4 -1
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +19 -17
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +197 -197
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +13 -13
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +4 -4
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +116 -49
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +32 -10
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js +193 -377
- package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Response.d.ts +19 -19
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +14 -14
- package/dist/unstable/ai/Response.js.map +1 -1
- package/dist/unstable/ai/Tool.d.ts +4 -0
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +11 -3
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/ai/Toolkit.d.ts +9 -1
- package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
- package/dist/unstable/ai/Toolkit.js +14 -10
- package/dist/unstable/ai/Toolkit.js.map +1 -1
- package/dist/unstable/ai/internal/codec-transformer.js +15 -12
- package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
- package/dist/unstable/ai/internal/structured-output.d.ts +2 -0
- package/dist/unstable/ai/internal/structured-output.d.ts.map +1 -0
- package/dist/unstable/ai/internal/structured-output.js +316 -0
- package/dist/unstable/ai/internal/structured-output.js.map +1 -0
- package/dist/unstable/cli/CliError.d.ts +40 -2
- package/dist/unstable/cli/CliError.d.ts.map +1 -1
- package/dist/unstable/cli/CliError.js +45 -6
- package/dist/unstable/cli/CliError.js.map +1 -1
- package/dist/unstable/cli/Command.js +14 -5
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/Param.js +3 -3
- package/dist/unstable/cli/Param.js.map +1 -1
- package/dist/unstable/cli/Primitive.js +1 -1
- package/dist/unstable/cli/Primitive.js.map +1 -1
- package/dist/unstable/cli/internal/command.d.ts +3 -1
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.js +11 -4
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/config.d.ts +0 -48
- package/dist/unstable/cli/internal/config.d.ts.map +1 -1
- package/dist/unstable/cli/internal/config.js +8 -10
- package/dist/unstable/cli/internal/config.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/Entity.js +1 -1
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/Envelope.d.ts.map +1 -1
- package/dist/unstable/cluster/Envelope.js +2 -1
- package/dist/unstable/cluster/Envelope.js.map +1 -1
- package/dist/unstable/cluster/Reply.js +1 -1
- package/dist/unstable/cluster/Reply.js.map +1 -1
- package/dist/unstable/cluster/Runner.d.ts +1 -1
- package/dist/unstable/cluster/Runner.js +1 -1
- package/dist/unstable/cluster/Runner.js.map +1 -1
- package/dist/unstable/cluster/RunnerAddress.d.ts +1 -1
- package/dist/unstable/cluster/RunnerAddress.js +1 -1
- package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
- package/dist/unstable/cluster/ShardId.js +1 -1
- package/dist/unstable/cluster/ShardId.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +125 -24
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +10 -2
- package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
- package/dist/unstable/cluster/SingleRunner.d.ts +4 -2
- package/dist/unstable/cluster/SingleRunner.d.ts.map +1 -1
- package/dist/unstable/cluster/SingleRunner.js +2 -1
- package/dist/unstable/cluster/SingleRunner.js.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.d.ts +7 -4
- package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.js +55 -24
- package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js +109 -62
- package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +19 -7
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/cluster/internal/shardLock.d.ts +2 -0
- package/dist/unstable/cluster/internal/shardLock.d.ts.map +1 -0
- package/dist/unstable/cluster/internal/shardLock.js +4 -0
- package/dist/unstable/cluster/internal/shardLock.js.map +1 -0
- package/dist/unstable/devtools/DevToolsSchema.d.ts +20 -20
- package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.js +8 -5
- package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +1 -1
- package/dist/unstable/eventlog/EventJournal.js +1 -1
- package/dist/unstable/eventlog/EventJournal.js.map +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +15 -11
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.d.ts +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.js +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.d.ts +26 -26
- package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.js +8 -3
- package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +1 -1
- package/dist/unstable/eventlog/SqlEventJournal.js +2 -2
- package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +3 -3
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
- package/dist/unstable/http/Cookies.d.ts.map +1 -1
- package/dist/unstable/http/Cookies.js +24 -22
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/Headers.js +8 -8
- package/dist/unstable/http/Headers.js.map +1 -1
- package/dist/unstable/http/HttpClientRequest.d.ts +44 -0
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +14 -0
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpRouter.d.ts +2 -2
- package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
- package/dist/unstable/http/HttpRouter.js.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRequest.js +5 -4
- package/dist/unstable/http/HttpServerRequest.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts.map +1 -1
- package/dist/unstable/http/Multipart.js +17 -15
- package/dist/unstable/http/Multipart.js.map +1 -1
- package/dist/unstable/http/Template.js +1 -1
- package/dist/unstable/http/Template.js.map +1 -1
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +17 -14
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js +3 -3
- package/dist/unstable/httpapi/HttpApi.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +5 -5
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.js +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +37 -24
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts +72 -1
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +69 -4
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.d.ts +4 -3
- package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpLogger.js +2 -2
- package/dist/unstable/observability/OtlpLogger.js.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts +7 -3
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.js +5 -2
- package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
- package/dist/unstable/observability/OtlpTracer.d.ts +4 -3
- package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.js +2 -2
- package/dist/unstable/observability/OtlpTracer.js.map +1 -1
- package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistable.js +2 -1
- package/dist/unstable/persistence/Persistable.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +2 -2
- package/dist/unstable/persistence/RateLimiter.js +2 -2
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/persistence/Redis.d.ts.map +1 -1
- package/dist/unstable/persistence/Redis.js +2 -2
- package/dist/unstable/persistence/Redis.js.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js +3 -1
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.js +4 -3
- package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +83 -0
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +31 -0
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +2 -1
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +1 -2
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.js +13 -10
- package/dist/unstable/schema/VariantSchema.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +1 -1
- package/dist/unstable/socket/Socket.js +1 -1
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/sql/SqlError.d.ts +2 -2
- package/dist/unstable/sql/SqlError.js +2 -2
- package/dist/unstable/sql/SqlError.js.map +1 -1
- package/dist/unstable/sql/Statement.d.ts.map +1 -1
- package/dist/unstable/sql/Statement.js +7 -6
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/package.json +1 -1
- package/src/Array.ts +86 -25
- package/src/Channel.ts +32 -14
- package/src/Config.ts +6 -5
- package/src/ConfigProvider.ts +7 -7
- package/src/Data.ts +3 -2
- package/src/Effect.ts +70 -116
- package/src/FiberHandle.ts +3 -2
- package/src/Iterable.ts +2 -1
- package/src/JsonPatch.ts +4 -3
- package/src/JsonSchema.ts +9 -11
- package/src/Logger.ts +3 -2
- package/src/ManagedRuntime.ts +13 -0
- package/src/Metric.ts +4 -3
- package/src/MutableList.ts +4 -0
- package/src/Optic.ts +5 -4
- package/src/Option.ts +2 -1
- package/src/PartitionedSemaphore.ts +1 -4
- package/src/Record.ts +119 -22
- package/src/References.ts +0 -46
- package/src/Request.ts +5 -7
- package/src/Result.ts +2 -1
- package/src/Schema.ts +2538 -987
- package/src/SchemaAST.ts +228 -149
- package/src/SchemaError.ts +1 -1
- package/src/SchemaGetter.ts +36 -29
- package/src/SchemaIssue.ts +1 -1
- package/src/SchemaParser.ts +1 -25
- package/src/SchemaRepresentation.ts +697 -3398
- package/src/SchemaTransformation.ts +3 -3
- package/src/Semaphore.ts +5 -3
- package/src/Stream.ts +63 -19
- package/src/Struct.ts +5 -4
- package/src/Types.ts +1 -3
- package/src/index.ts +0 -5
- package/src/internal/core.ts +4 -3
- package/src/internal/effect.ts +132 -70
- package/src/internal/matcher.ts +1 -1
- package/src/internal/record.ts +11 -7
- package/src/internal/references.ts +0 -5
- package/src/internal/schema/annotations.ts +44 -0
- package/src/internal/schema/fromJsonSchemaDocument.ts +957 -0
- package/src/internal/schema/fromRepresentation.ts +345 -0
- package/src/internal/schema/schema.ts +45 -46
- package/src/internal/schema/{arbitrary.ts → toArbitrary.ts} +8 -10
- package/src/internal/schema/toCodeDocument.ts +572 -0
- package/src/internal/schema/{equivalence.ts → toEquivalence.ts} +12 -7
- package/src/internal/schema/toJsonSchemaDocument.ts +475 -0
- package/src/internal/schema/toRepresentation.ts +401 -0
- package/src/internal/stackTraceLimit.ts +3 -7
- package/src/testing/TestClock.ts +1 -1
- package/src/unstable/ai/AiError.ts +5 -4
- package/src/unstable/ai/AnthropicStructuredOutput.ts +102 -333
- package/src/unstable/ai/EmbeddingModel.ts +1 -1
- package/src/unstable/ai/LanguageModel.ts +30 -28
- package/src/unstable/ai/McpSchema.ts +15 -15
- package/src/unstable/ai/McpServer.ts +172 -56
- package/src/unstable/ai/OpenAiStructuredOutput.ts +230 -395
- package/src/unstable/ai/Response.ts +24 -24
- package/src/unstable/ai/Tool.ts +22 -4
- package/src/unstable/ai/Toolkit.ts +19 -7
- package/src/unstable/ai/internal/codec-transformer.ts +13 -7
- package/src/unstable/ai/internal/structured-output.ts +458 -0
- package/src/unstable/cli/CliError.ts +51 -5
- package/src/unstable/cli/Command.ts +4 -4
- package/src/unstable/cli/Param.ts +3 -3
- package/src/unstable/cli/Primitive.ts +1 -1
- package/src/unstable/cli/internal/command.ts +13 -5
- package/src/unstable/cli/internal/config.ts +8 -10
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +3 -3
- package/src/unstable/cluster/Entity.ts +1 -1
- package/src/unstable/cluster/Envelope.ts +2 -1
- package/src/unstable/cluster/Reply.ts +1 -1
- package/src/unstable/cluster/Runner.ts +1 -1
- package/src/unstable/cluster/RunnerAddress.ts +1 -1
- package/src/unstable/cluster/ShardId.ts +1 -1
- package/src/unstable/cluster/Sharding.ts +161 -34
- package/src/unstable/cluster/ShardingConfig.ts +5 -1
- package/src/unstable/cluster/SingleRunner.ts +4 -2
- package/src/unstable/cluster/SqlMessageStorage.ts +83 -35
- package/src/unstable/cluster/SqlRunnerStorage.ts +186 -116
- package/src/unstable/cluster/internal/entityManager.ts +31 -10
- package/src/unstable/cluster/internal/shardLock.ts +9 -0
- package/src/unstable/devtools/DevToolsSchema.ts +10 -5
- package/src/unstable/eventlog/EventJournal.ts +1 -1
- package/src/unstable/eventlog/EventLog.ts +21 -11
- package/src/unstable/eventlog/EventLogEncryption.ts +1 -1
- package/src/unstable/eventlog/EventLogMessage.ts +10 -3
- package/src/unstable/eventlog/SqlEventJournal.ts +2 -2
- package/src/unstable/eventlog/SqlEventLogServerEncrypted.ts +1 -1
- package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +6 -3
- package/src/unstable/http/Cookies.ts +29 -24
- package/src/unstable/http/Headers.ts +8 -8
- package/src/unstable/http/HttpClientRequest.ts +57 -0
- package/src/unstable/http/HttpRouter.ts +6 -3
- package/src/unstable/http/HttpServerRequest.ts +5 -4
- package/src/unstable/http/Multipart.ts +16 -13
- package/src/unstable/http/Template.ts +1 -1
- package/src/unstable/http/UrlParams.ts +17 -14
- package/src/unstable/httpapi/HttpApi.ts +3 -3
- package/src/unstable/httpapi/HttpApiClient.ts +5 -5
- package/src/unstable/httpapi/HttpApiGroup.ts +1 -1
- package/src/unstable/httpapi/OpenApi.ts +52 -28
- package/src/unstable/observability/OtlpExporter.ts +109 -5
- package/src/unstable/observability/OtlpLogger.ts +5 -5
- package/src/unstable/observability/OtlpMetrics.ts +8 -4
- package/src/unstable/observability/OtlpTracer.ts +8 -4
- package/src/unstable/persistence/Persistable.ts +3 -2
- package/src/unstable/persistence/RateLimiter.ts +2 -2
- package/src/unstable/persistence/Redis.ts +2 -2
- package/src/unstable/process/ChildProcessSpawner.ts +1 -1
- package/src/unstable/reactivity/AsyncResult.ts +4 -3
- package/src/unstable/reactivity/Atom.ts +92 -0
- package/src/unstable/reactivity/AtomRegistry.ts +1 -1
- package/src/unstable/rpc/RpcClient.ts +2 -1
- package/src/unstable/schema/VariantSchema.ts +14 -24
- package/src/unstable/socket/Socket.ts +1 -1
- package/src/unstable/sql/SqlError.ts +2 -2
- package/src/unstable/sql/Statement.ts +7 -6
- package/dist/SchemaUtils.d.ts +0 -28
- package/dist/SchemaUtils.d.ts.map +0 -1
- package/dist/SchemaUtils.js +0 -45
- package/dist/SchemaUtils.js.map +0 -1
- package/dist/internal/schema/arbitrary.d.ts.map +0 -1
- package/dist/internal/schema/arbitrary.js.map +0 -1
- package/dist/internal/schema/equivalence.d.ts +0 -2
- package/dist/internal/schema/equivalence.d.ts.map +0 -1
- package/dist/internal/schema/equivalence.js.map +0 -1
- package/dist/internal/schema/representation.d.ts +0 -2
- package/dist/internal/schema/representation.d.ts.map +0 -1
- package/dist/internal/schema/representation.js +0 -865
- package/dist/internal/schema/representation.js.map +0 -1
- package/src/SchemaUtils.ts +0 -51
- package/src/internal/schema/representation.ts +0 -795
package/src/internal/effect.ts
CHANGED
|
@@ -83,8 +83,8 @@ import {
|
|
|
83
83
|
} from "./core.ts"
|
|
84
84
|
import * as doNotation from "./doNotation.ts"
|
|
85
85
|
import * as InternalMetric from "./metric.ts"
|
|
86
|
+
import * as InternalRecord from "./record.ts"
|
|
86
87
|
import {
|
|
87
|
-
CurrentConcurrency,
|
|
88
88
|
CurrentErrorReporters,
|
|
89
89
|
CurrentLogAnnotations,
|
|
90
90
|
CurrentLogLevel,
|
|
@@ -746,7 +746,7 @@ const fiberMiddleware = {
|
|
|
746
746
|
const fiberStackAnnotations = (fiber: Fiber.Fiber<any, any>) => {
|
|
747
747
|
if (!fiber.currentStackFrame) return undefined
|
|
748
748
|
const annotations = new Map<string, unknown>()
|
|
749
|
-
annotations.set(
|
|
749
|
+
annotations.set(InterruptorStackTrace.key, fiber.currentStackFrame)
|
|
750
750
|
return Context.makeUnsafe(annotations)
|
|
751
751
|
}
|
|
752
752
|
|
|
@@ -841,6 +841,10 @@ export const fiberJoinAll = <A extends Iterable<Fiber.Fiber<any, any>>>(self: A)
|
|
|
841
841
|
}
|
|
842
842
|
}))
|
|
843
843
|
}
|
|
844
|
+
return sync(() => {
|
|
845
|
+
failed = true
|
|
846
|
+
cancels.forEach((cancel) => cancel())
|
|
847
|
+
})
|
|
844
848
|
})
|
|
845
849
|
|
|
846
850
|
/** @internal */
|
|
@@ -2107,6 +2111,32 @@ export const updateService: {
|
|
|
2107
2111
|
})
|
|
2108
2112
|
)
|
|
2109
2113
|
|
|
2114
|
+
/** @internal */
|
|
2115
|
+
export const updateServiceScoped = <I, A>(
|
|
2116
|
+
service: Context.Key<I, A>,
|
|
2117
|
+
update: (value: A) => A,
|
|
2118
|
+
options?: {
|
|
2119
|
+
readonly reset?: ((original: A, updated: A, current: A) => A) | undefined
|
|
2120
|
+
} | undefined
|
|
2121
|
+
): Effect.Effect<void, never, I | Scope.Scope> =>
|
|
2122
|
+
uninterruptible(withFiber((fiber) => {
|
|
2123
|
+
const original = Context.getUnsafe(fiber.context, service)
|
|
2124
|
+
const updated = update(original)
|
|
2125
|
+
fiber.setContext(Context.add(fiber.context, service, updated))
|
|
2126
|
+
return scopeAddFinalizerExit(Context.getUnsafe(fiber.context, scopeTag), (_) => {
|
|
2127
|
+
const current = Context.getUnsafe(fiber.context, service)
|
|
2128
|
+
let next: A
|
|
2129
|
+
if (options?.reset === undefined) {
|
|
2130
|
+
if (current !== updated) return void_
|
|
2131
|
+
next = original
|
|
2132
|
+
} else {
|
|
2133
|
+
next = options.reset(original, updated, current)
|
|
2134
|
+
}
|
|
2135
|
+
fiber.setContext(Context.add(fiber.context, service, next))
|
|
2136
|
+
return void_
|
|
2137
|
+
})
|
|
2138
|
+
}))
|
|
2139
|
+
|
|
2110
2140
|
/** @internal */
|
|
2111
2141
|
export const context = <R = never>(): Effect.Effect<Context.Context<R>> => getContext as any
|
|
2112
2142
|
const getContext = withFiber((fiber) => succeed(fiber.context))
|
|
@@ -2218,17 +2248,6 @@ export const provideServiceEffect: {
|
|
|
2218
2248
|
flatMap(acquire, (implementation) => provideService(self, service, implementation))
|
|
2219
2249
|
)
|
|
2220
2250
|
|
|
2221
|
-
/** @internal */
|
|
2222
|
-
export const withConcurrency: {
|
|
2223
|
-
(
|
|
2224
|
-
concurrency: "unbounded" | number
|
|
2225
|
-
): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
|
|
2226
|
-
<A, E, R>(
|
|
2227
|
-
self: Effect.Effect<A, E, R>,
|
|
2228
|
-
concurrency: "unbounded" | number
|
|
2229
|
-
): Effect.Effect<A, E, R>
|
|
2230
|
-
} = provideService(CurrentConcurrency)
|
|
2231
|
-
|
|
2232
2251
|
// ----------------------------------------------------------------------------
|
|
2233
2252
|
// zipping
|
|
2234
2253
|
// ----------------------------------------------------------------------------
|
|
@@ -4261,16 +4280,19 @@ const setInterruptible: (interruptible: boolean) => Primitive = makePrimitive({
|
|
|
4261
4280
|
const setInterruptibleTrue = setInterruptible(true)
|
|
4262
4281
|
const setInterruptibleFalse = setInterruptible(false)
|
|
4263
4282
|
|
|
4283
|
+
const setFiberInterruptible = (fiber: FiberImpl): Effect.Effect<never> | undefined => {
|
|
4284
|
+
fiber.interruptible = true
|
|
4285
|
+
fiber._stack.push(setInterruptibleFalse)
|
|
4286
|
+
if (fiber._interruptedCause) return failCause(fiber._interruptedCause)
|
|
4287
|
+
}
|
|
4288
|
+
|
|
4264
4289
|
/** @internal */
|
|
4265
4290
|
export const interruptible = <A, E, R>(
|
|
4266
4291
|
self: Effect.Effect<A, E, R>
|
|
4267
4292
|
): Effect.Effect<A, E, R> =>
|
|
4268
4293
|
withFiber((fiber) => {
|
|
4269
4294
|
if (fiber.interruptible) return self
|
|
4270
|
-
fiber
|
|
4271
|
-
fiber._stack.push(setInterruptibleFalse)
|
|
4272
|
-
if (fiber._interruptedCause) return failCause(fiber._interruptedCause)
|
|
4273
|
-
return self
|
|
4295
|
+
return setFiberInterruptible(fiber) ?? self
|
|
4274
4296
|
})
|
|
4275
4297
|
|
|
4276
4298
|
/** @internal */
|
|
@@ -4298,9 +4320,9 @@ export const interruptibleMask = <A, E, R>(
|
|
|
4298
4320
|
): Effect.Effect<A, E, R> =>
|
|
4299
4321
|
withFiber((fiber) => {
|
|
4300
4322
|
if (fiber.interruptible) return f(identity)
|
|
4301
|
-
|
|
4302
|
-
|
|
4303
|
-
return
|
|
4323
|
+
const interrupted = setFiberInterruptible(fiber)
|
|
4324
|
+
const effect = f(uninterruptible)
|
|
4325
|
+
return interrupted ?? effect
|
|
4304
4326
|
})
|
|
4305
4327
|
|
|
4306
4328
|
/** @internal */
|
|
@@ -4346,7 +4368,7 @@ export const all = <
|
|
|
4346
4368
|
Object.entries(arg),
|
|
4347
4369
|
([key, effect]) =>
|
|
4348
4370
|
map(options?.mode === "result" ? result(effect) : effect, (value) => {
|
|
4349
|
-
out
|
|
4371
|
+
InternalRecord.assignProperty(out, key, value)
|
|
4350
4372
|
}),
|
|
4351
4373
|
{
|
|
4352
4374
|
discard: true,
|
|
@@ -4608,10 +4630,8 @@ export const forEach: {
|
|
|
4608
4630
|
readonly discard?: boolean | undefined
|
|
4609
4631
|
}
|
|
4610
4632
|
): Effect.Effect<any, E, R> =>
|
|
4611
|
-
|
|
4612
|
-
const concurrencyOption = options?.concurrency
|
|
4613
|
-
? parent.getRef(CurrentConcurrency)
|
|
4614
|
-
: (options?.concurrency ?? 1)
|
|
4633
|
+
suspend(() => {
|
|
4634
|
+
const concurrencyOption = options?.concurrency ?? 1
|
|
4615
4635
|
const concurrency = concurrencyOption === "unbounded"
|
|
4616
4636
|
? Number.POSITIVE_INFINITY
|
|
4617
4637
|
: Math.max(1, concurrencyOption)
|
|
@@ -4695,6 +4715,16 @@ const iterateEagerImpl = <S, A, X, E, R, E2>(options: {
|
|
|
4695
4715
|
let nextIndex = index
|
|
4696
4716
|
const exits: Array<Exit.Exit<X, E> | undefined> | undefined = orderedStep ? new Array(end) : undefined
|
|
4697
4717
|
|
|
4718
|
+
const failDefect = (error: unknown): Effect.Effect<void, E | E2, R> => {
|
|
4719
|
+
const defect = exitDie(error)
|
|
4720
|
+
terminal = defect
|
|
4721
|
+
done = true
|
|
4722
|
+
interrupted = true
|
|
4723
|
+
return fibers && fibers.size > 0
|
|
4724
|
+
? flatMap(uninterruptible(fiberInterruptAll(Array.from(fibers))), () => defect)
|
|
4725
|
+
: defect
|
|
4726
|
+
}
|
|
4727
|
+
|
|
4698
4728
|
const runStep = (item: A, exit: Exit.Exit<X, E>, currentIndex: number): Exit.Exit<void, E | E2> | void => {
|
|
4699
4729
|
if (!orderedStep) return step(state, item, exit, currentIndex)
|
|
4700
4730
|
if (terminal) return terminal
|
|
@@ -4732,9 +4762,15 @@ const iterateEagerImpl = <S, A, X, E, R, E2>(options: {
|
|
|
4732
4762
|
} else if (!parentFiber) {
|
|
4733
4763
|
return callback((cb) => {
|
|
4734
4764
|
parentFiber = getCurrentFiber()!
|
|
4765
|
+
fibers = new Set()
|
|
4735
4766
|
effect = eff
|
|
4736
4767
|
resume = cb
|
|
4737
|
-
|
|
4768
|
+
let result: Effect.Effect<void, E | E2, R> | undefined
|
|
4769
|
+
try {
|
|
4770
|
+
result = go()
|
|
4771
|
+
} catch (error) {
|
|
4772
|
+
return cb(failDefect(error))
|
|
4773
|
+
}
|
|
4738
4774
|
if (result) return cb(result)
|
|
4739
4775
|
return suspend(() => {
|
|
4740
4776
|
terminal = exitVoid
|
|
@@ -4756,43 +4792,46 @@ const iterateEagerImpl = <S, A, X, E, R, E2>(options: {
|
|
|
4756
4792
|
}
|
|
4757
4793
|
|
|
4758
4794
|
// Add the fiber to the Set
|
|
4759
|
-
|
|
4760
|
-
else fibers = new Set([fiber])
|
|
4795
|
+
fibers!.add(fiber)
|
|
4761
4796
|
|
|
4762
4797
|
const currentIndex = index
|
|
4763
4798
|
fiber.addObserver((exit) => {
|
|
4764
4799
|
fibers!.delete(fiber)
|
|
4765
|
-
|
|
4766
|
-
if (
|
|
4767
|
-
|
|
4768
|
-
|
|
4769
|
-
|
|
4770
|
-
|
|
4771
|
-
|
|
4772
|
-
|
|
4800
|
+
try {
|
|
4801
|
+
if (terminal) {
|
|
4802
|
+
if (!interrupted && exit._tag === "Failure") {
|
|
4803
|
+
for (const reason of exit.cause.reasons) {
|
|
4804
|
+
if (reason._tag === "Interrupt") continue
|
|
4805
|
+
else if (terminal._tag === "Failure") {
|
|
4806
|
+
;(terminal.cause.reasons as Array<any>).push(reason)
|
|
4807
|
+
} else {
|
|
4808
|
+
terminal = exitFailCause(causeFromReasons([reason]))
|
|
4809
|
+
}
|
|
4773
4810
|
}
|
|
4774
4811
|
}
|
|
4812
|
+
} else {
|
|
4813
|
+
const result = runStep(item, exit, currentIndex)
|
|
4814
|
+
if (result) {
|
|
4815
|
+
terminal = result._tag === "Failure"
|
|
4816
|
+
? exitFailCause(causeFromReasons(result.cause.reasons.slice()))
|
|
4817
|
+
: result
|
|
4818
|
+
go()
|
|
4819
|
+
}
|
|
4775
4820
|
}
|
|
4776
|
-
} else {
|
|
4777
|
-
const result = runStep(item, exit, currentIndex)
|
|
4778
|
-
if (result) {
|
|
4779
|
-
terminal = result._tag === "Failure"
|
|
4780
|
-
? exitFailCause(causeFromReasons(result.cause.reasons.slice()))
|
|
4781
|
-
: result
|
|
4782
|
-
go()
|
|
4783
|
-
}
|
|
4784
|
-
}
|
|
4785
4821
|
|
|
4786
|
-
|
|
4787
|
-
|
|
4788
|
-
|
|
4789
|
-
|
|
4790
|
-
|
|
4822
|
+
if (paused) {
|
|
4823
|
+
const eff = go()
|
|
4824
|
+
if (eff) resume!(eff)
|
|
4825
|
+
} else if (done && fibers!.size === 0) {
|
|
4826
|
+
resume!(terminal ?? void_)
|
|
4827
|
+
}
|
|
4828
|
+
} catch (error) {
|
|
4829
|
+
resume!(failDefect(error))
|
|
4791
4830
|
}
|
|
4792
4831
|
})
|
|
4793
4832
|
|
|
4794
4833
|
// Check if we have reached the concurrency limit
|
|
4795
|
-
if (fibers
|
|
4834
|
+
if (fibers!.size < concurrency) continue
|
|
4796
4835
|
paused = true
|
|
4797
4836
|
index++
|
|
4798
4837
|
return
|
|
@@ -5211,7 +5250,7 @@ export const awaitAllChildren = <A, E, R>(
|
|
|
5211
5250
|
self: Effect.Effect<A, E, R>
|
|
5212
5251
|
): Effect.Effect<A, E, R> =>
|
|
5213
5252
|
withFiber((fiber) => {
|
|
5214
|
-
const initialChildren = fiber._children &&
|
|
5253
|
+
const initialChildren = fiber._children && new Set(fiber._children)
|
|
5215
5254
|
return onExit(
|
|
5216
5255
|
self,
|
|
5217
5256
|
(_) => {
|
|
@@ -5221,7 +5260,7 @@ export const awaitAllChildren = <A, E, R>(
|
|
|
5221
5260
|
} else if (initialChildren) {
|
|
5222
5261
|
children = Iterable.filter(
|
|
5223
5262
|
children,
|
|
5224
|
-
(child: FiberImpl<any, any>) => !initialChildren.
|
|
5263
|
+
(child: FiberImpl<any, any>) => !initialChildren.has(child)
|
|
5225
5264
|
) as Set<FiberImpl<any, any>>
|
|
5226
5265
|
}
|
|
5227
5266
|
return asVoid(fiberAwaitAll(children))
|
|
@@ -5434,9 +5473,9 @@ export const runSyncExitWith = <R>(context: Context.Context<R>) => {
|
|
|
5434
5473
|
return <A, E>(effect: Effect.Effect<A, E, R>): Exit.Exit<A, E> => {
|
|
5435
5474
|
if (effectIsExit(effect)) return effect
|
|
5436
5475
|
const scheduler = new Scheduler.MixedScheduler("sync")
|
|
5437
|
-
const fiber = runFork(effect, { scheduler })
|
|
5438
|
-
fiber.
|
|
5439
|
-
return
|
|
5476
|
+
const fiber = runFork(effect, { scheduler }) as FiberImpl<A, E>
|
|
5477
|
+
fiber._dispatcher?.flush()
|
|
5478
|
+
return fiber._exit ?? exitDie(new AsyncFiberError(fiber))
|
|
5440
5479
|
}
|
|
5441
5480
|
}
|
|
5442
5481
|
|
|
@@ -5463,7 +5502,7 @@ const succeedFalse = succeed(false)
|
|
|
5463
5502
|
|
|
5464
5503
|
class Latch implements _Latch.Latch {
|
|
5465
5504
|
waiters: Array<(_: Effect.Effect<void>) => void> = []
|
|
5466
|
-
scheduled =
|
|
5505
|
+
scheduled: Array<(_: Effect.Effect<void>) => void> | undefined = undefined
|
|
5467
5506
|
private _isOpen: boolean
|
|
5468
5507
|
|
|
5469
5508
|
constructor(isOpen: boolean) {
|
|
@@ -5471,17 +5510,35 @@ class Latch implements _Latch.Latch {
|
|
|
5471
5510
|
}
|
|
5472
5511
|
|
|
5473
5512
|
private scheduleUnsafe(fiber: Fiber.Fiber<unknown, unknown>) {
|
|
5474
|
-
if (this.
|
|
5513
|
+
if (this.waiters.length === 0) {
|
|
5475
5514
|
return succeedTrue
|
|
5476
5515
|
}
|
|
5477
|
-
this.scheduled
|
|
5478
|
-
|
|
5516
|
+
if (this.scheduled === undefined) {
|
|
5517
|
+
this.scheduled = this.waiters
|
|
5518
|
+
fiber.currentDispatcher.scheduleTask(this.flushScheduled, 0)
|
|
5519
|
+
} else {
|
|
5520
|
+
for (let i = 0; i < this.waiters.length; i++) {
|
|
5521
|
+
this.scheduled.push(this.waiters[i])
|
|
5522
|
+
}
|
|
5523
|
+
}
|
|
5524
|
+
this.waiters = []
|
|
5479
5525
|
return succeedTrue
|
|
5480
5526
|
}
|
|
5481
|
-
private
|
|
5482
|
-
this.scheduled
|
|
5527
|
+
private flushScheduled = () => {
|
|
5528
|
+
if (this.scheduled === undefined) return
|
|
5529
|
+
const waiters = this.scheduled
|
|
5530
|
+
this.scheduled = undefined
|
|
5531
|
+
for (let i = 0; i < waiters.length; i++) {
|
|
5532
|
+
waiters[i](exitVoid)
|
|
5533
|
+
}
|
|
5534
|
+
}
|
|
5535
|
+
private flushWaiters() {
|
|
5536
|
+
// swap both arrays out before any resume runs: a resumed waiter can
|
|
5537
|
+
// reentrantly close the latch and register new waiters, which must not
|
|
5538
|
+
// be drained by this flush
|
|
5483
5539
|
const waiters = this.waiters
|
|
5484
5540
|
this.waiters = []
|
|
5541
|
+
this.flushScheduled()
|
|
5485
5542
|
for (let i = 0; i < waiters.length; i++) {
|
|
5486
5543
|
waiters[i](exitVoid)
|
|
5487
5544
|
}
|
|
@@ -5505,9 +5562,14 @@ class Latch implements _Latch.Latch {
|
|
|
5505
5562
|
}
|
|
5506
5563
|
this.waiters.push(resume)
|
|
5507
5564
|
return sync(() => {
|
|
5508
|
-
|
|
5565
|
+
let index = this.waiters.indexOf(resume)
|
|
5509
5566
|
if (index !== -1) {
|
|
5510
5567
|
this.waiters.splice(index, 1)
|
|
5568
|
+
} else if (this.scheduled !== undefined) {
|
|
5569
|
+
index = this.scheduled.indexOf(resume)
|
|
5570
|
+
if (index !== -1) {
|
|
5571
|
+
this.scheduled.splice(index, 1)
|
|
5572
|
+
}
|
|
5511
5573
|
}
|
|
5512
5574
|
})
|
|
5513
5575
|
})
|
|
@@ -5859,11 +5921,11 @@ export const annotateSpans: {
|
|
|
5859
5921
|
...args: [Record<string, unknown>] | [key: string, value: unknown]
|
|
5860
5922
|
): Effect.Effect<A, E, R> =>
|
|
5861
5923
|
updateService(effect, TracerSpanAnnotations, (annotations) => {
|
|
5862
|
-
const newAnnotations = { ...annotations }
|
|
5924
|
+
const newAnnotations = args.length === 1 ? { ...annotations, ...args[0] } : { ...annotations }
|
|
5863
5925
|
if (args.length === 1) {
|
|
5864
|
-
|
|
5926
|
+
return newAnnotations
|
|
5865
5927
|
} else {
|
|
5866
|
-
newAnnotations
|
|
5928
|
+
InternalRecord.assignProperty(newAnnotations, args[0], args[1])
|
|
5867
5929
|
}
|
|
5868
5930
|
return newAnnotations
|
|
5869
5931
|
})
|
|
@@ -6134,7 +6196,7 @@ export const annotateLogsScoped: {
|
|
|
6134
6196
|
const next = { ...prev }
|
|
6135
6197
|
for (let i = 0; i < entries.length; i++) {
|
|
6136
6198
|
const [key, value] = entries[i]
|
|
6137
|
-
next
|
|
6199
|
+
InternalRecord.assignProperty(next, key, value)
|
|
6138
6200
|
}
|
|
6139
6201
|
fiber.setContext(Context.add(fiber.context, CurrentLogAnnotations, next))
|
|
6140
6202
|
return scopeAddFinalizerExit(Context.getUnsafe(fiber.context, scopeTag), (_) => {
|
|
@@ -6143,8 +6205,8 @@ export const annotateLogsScoped: {
|
|
|
6143
6205
|
for (let i = 0; i < entries.length; i++) {
|
|
6144
6206
|
const [key, value] = entries[i]
|
|
6145
6207
|
if (current[key] !== value) continue
|
|
6146
|
-
if (key
|
|
6147
|
-
next
|
|
6208
|
+
if (Object.hasOwn(prev, key)) {
|
|
6209
|
+
InternalRecord.assignProperty(next, key, prev[key])
|
|
6148
6210
|
} else {
|
|
6149
6211
|
delete next[key]
|
|
6150
6212
|
}
|
|
@@ -6488,7 +6550,7 @@ export const tracerLogger = loggerMake<unknown, void>(({ cause, fiber, logLevel,
|
|
|
6488
6550
|
if (span === undefined || span._tag === "ExternalSpan") return
|
|
6489
6551
|
const attributes: Record<string, unknown> = {}
|
|
6490
6552
|
for (const [key, value] of Object.entries(annotations)) {
|
|
6491
|
-
attributes
|
|
6553
|
+
InternalRecord.assignProperty(attributes, key, value)
|
|
6492
6554
|
}
|
|
6493
6555
|
attributes["effect.fiberId"] = fiber.id
|
|
6494
6556
|
attributes["effect.logLevel"] = logLevel.toUpperCase()
|
package/src/internal/matcher.ts
CHANGED
|
@@ -396,7 +396,7 @@ export const discriminators = <D extends string>(field: D) =>
|
|
|
396
396
|
fields: P
|
|
397
397
|
) => {
|
|
398
398
|
const predicate = makeWhen(
|
|
399
|
-
(arg: any) => arg != null && arg[field]
|
|
399
|
+
(arg: any) => arg != null && Object.hasOwn(fields, arg[field]),
|
|
400
400
|
(data: any) => (fields as any)[data[field]](data)
|
|
401
401
|
)
|
|
402
402
|
|
package/src/internal/record.ts
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @since 4.0.0
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
1
|
/** @internal */
|
|
6
|
-
export function
|
|
2
|
+
export function assignProperty(self: object, key: PropertyKey, value: unknown): void {
|
|
7
3
|
if (key === "__proto__") {
|
|
8
4
|
Object.defineProperty(self, key, {
|
|
9
5
|
value,
|
|
@@ -12,7 +8,15 @@ export function set<K extends PropertyKey, A>(self: Record<K, A>, key: K, value:
|
|
|
12
8
|
configurable: true
|
|
13
9
|
})
|
|
14
10
|
} else {
|
|
15
|
-
self[key] = value
|
|
11
|
+
;(self as any)[key] = value
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/** @internal */
|
|
16
|
+
export function assignProperties(self: object, source: object): void {
|
|
17
|
+
for (const key of Reflect.ownKeys(source)) {
|
|
18
|
+
if (Object.prototype.propertyIsEnumerable.call(source, key)) {
|
|
19
|
+
assignProperty(self, key, (source as any)[key])
|
|
20
|
+
}
|
|
16
21
|
}
|
|
17
|
-
return self
|
|
18
22
|
}
|
|
@@ -6,11 +6,6 @@ import type { ReadonlyRecord } from "../Record.ts"
|
|
|
6
6
|
import type { StackFrame } from "../References.ts"
|
|
7
7
|
import type { SpanLink } from "../Tracer.ts"
|
|
8
8
|
|
|
9
|
-
/** @internal */
|
|
10
|
-
export const CurrentConcurrency = Context.Reference<"unbounded" | number>("effect/References/CurrentConcurrency", {
|
|
11
|
-
defaultValue: () => "unbounded"
|
|
12
|
-
})
|
|
13
|
-
|
|
14
9
|
/** @internal */
|
|
15
10
|
export const CurrentErrorReporters = Context.Reference<ReadonlySet<ErrorReporter>>(
|
|
16
11
|
"effect/ErrorReporter/CurrentErrorReporters",
|
|
@@ -12,9 +12,35 @@ export function resolveAt<A>(key: string) {
|
|
|
12
12
|
return (ast: SchemaAST.AST): A | undefined => resolve(ast)?.[key] as A | undefined
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
+
/** @internal */
|
|
16
|
+
export const STRUCTURAL_ANNOTATION_KEY = "~structural"
|
|
17
|
+
|
|
18
|
+
/** @internal */
|
|
19
|
+
export const IDENTIFIER_FALLBACK_KEY = "~identifier"
|
|
20
|
+
|
|
21
|
+
/** @internal */
|
|
22
|
+
export const SENTINELS_ANNOTATION_KEY = "~sentinels"
|
|
23
|
+
|
|
24
|
+
/** @internal */
|
|
25
|
+
export const jsonSchemaAnnotationKeys = [
|
|
26
|
+
"title",
|
|
27
|
+
"description",
|
|
28
|
+
"default",
|
|
29
|
+
"examples",
|
|
30
|
+
"readOnly",
|
|
31
|
+
"writeOnly",
|
|
32
|
+
"format",
|
|
33
|
+
"contentEncoding",
|
|
34
|
+
"contentMediaType",
|
|
35
|
+
"contentSchema"
|
|
36
|
+
] as const
|
|
37
|
+
|
|
15
38
|
/** @internal */
|
|
16
39
|
export const resolveIdentifier = resolveAt<string>("identifier")
|
|
17
40
|
|
|
41
|
+
/** @internal */
|
|
42
|
+
export const resolveIdentifierFallback = resolveAt<string>(IDENTIFIER_FALLBACK_KEY)
|
|
43
|
+
|
|
18
44
|
/** @internal */
|
|
19
45
|
export const resolveTitle = resolveAt<string>("title")
|
|
20
46
|
|
|
@@ -35,3 +61,21 @@ export const getExpected = memoize((ast: SchemaAST.AST): string => {
|
|
|
35
61
|
export function collectBrands(annotations: Schema.Annotations.Annotations | undefined): ReadonlyArray<string> {
|
|
36
62
|
return annotations !== undefined && Array.isArray(annotations.brands) ? annotations.brands : []
|
|
37
63
|
}
|
|
64
|
+
|
|
65
|
+
/** @internal */
|
|
66
|
+
export const annotationExcludedKeys = new Set([
|
|
67
|
+
SENTINELS_ANNOTATION_KEY,
|
|
68
|
+
STRUCTURAL_ANNOTATION_KEY,
|
|
69
|
+
"representation",
|
|
70
|
+
"arbitrary",
|
|
71
|
+
"brands",
|
|
72
|
+
"toJsonSchema",
|
|
73
|
+
"toCode",
|
|
74
|
+
"toArbitrary",
|
|
75
|
+
"toEquivalence",
|
|
76
|
+
"toFormatter",
|
|
77
|
+
"toCodec",
|
|
78
|
+
"toCodecJson",
|
|
79
|
+
"toCodecStringTree",
|
|
80
|
+
"toCodecIso"
|
|
81
|
+
])
|