effect 4.0.0-beta.101 → 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/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 +1268 -495
- 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 +2 -1
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/effect.js +64 -21
- 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 +4 -4
- 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/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/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 +2537 -986
- 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 +3 -2
- package/src/internal/effect.ts +67 -31
- 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/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
|
@@ -2135,7 +2135,7 @@ export const HttpRequestDetails = Schema.Struct({
|
|
|
2135
2135
|
method: Schema.Literals(["GET", "POST", "PATCH", "PUT", "DELETE", "HEAD", "OPTIONS", "TRACE"]),
|
|
2136
2136
|
url: Schema.String,
|
|
2137
2137
|
urlParams: Schema.Array(Schema.Tuple([Schema.String, Schema.String])),
|
|
2138
|
-
hash: Schema.
|
|
2138
|
+
hash: Schema.optional(Schema.String),
|
|
2139
2139
|
headers: Schema.Record(
|
|
2140
2140
|
Schema.String,
|
|
2141
2141
|
Schema.Union([
|
|
@@ -2172,7 +2172,7 @@ export const HttpRequestDetails = Schema.Struct({
|
|
|
2172
2172
|
* @since 4.0.0
|
|
2173
2173
|
*/
|
|
2174
2174
|
export const HttpResponseDetails = Schema.Struct({
|
|
2175
|
-
status: Schema.
|
|
2175
|
+
status: Schema.Int,
|
|
2176
2176
|
headers: Schema.Record(
|
|
2177
2177
|
Schema.String,
|
|
2178
2178
|
Schema.Union([
|
|
@@ -2213,19 +2213,19 @@ export interface ResponseMetadataPart extends BasePart<"response-metadata", Resp
|
|
|
2213
2213
|
/**
|
|
2214
2214
|
* Optional unique identifier for this specific response.
|
|
2215
2215
|
*/
|
|
2216
|
-
readonly id
|
|
2216
|
+
readonly id?: string | undefined
|
|
2217
2217
|
/**
|
|
2218
2218
|
* Optional identifier of the AI model that generated the response.
|
|
2219
2219
|
*/
|
|
2220
|
-
readonly modelId
|
|
2220
|
+
readonly modelId?: string | undefined
|
|
2221
2221
|
/**
|
|
2222
2222
|
* Optional timestamp when the response was generated.
|
|
2223
2223
|
*/
|
|
2224
|
-
readonly timestamp
|
|
2224
|
+
readonly timestamp?: DateTime.Utc | undefined
|
|
2225
2225
|
/**
|
|
2226
2226
|
* Optional HTTP request details for the request made to the AI provider.
|
|
2227
2227
|
*/
|
|
2228
|
-
readonly request
|
|
2228
|
+
readonly request?: typeof HttpRequestDetails.Type | undefined
|
|
2229
2229
|
}
|
|
2230
2230
|
|
|
2231
2231
|
/**
|
|
@@ -2272,10 +2272,10 @@ export interface ResponseMetadataPartMetadata extends ProviderMetadata {}
|
|
|
2272
2272
|
*/
|
|
2273
2273
|
export const ResponseMetadataPart: Schema.Struct<{
|
|
2274
2274
|
readonly type: Schema.tag<"response-metadata">
|
|
2275
|
-
readonly id: Schema.
|
|
2276
|
-
readonly modelId: Schema.
|
|
2277
|
-
readonly timestamp: Schema.
|
|
2278
|
-
readonly request: Schema.
|
|
2275
|
+
readonly id: Schema.optional<Schema.String>
|
|
2276
|
+
readonly modelId: Schema.optional<Schema.String>
|
|
2277
|
+
readonly timestamp: Schema.optional<Schema.DateTimeUtcFromString>
|
|
2278
|
+
readonly request: Schema.optional<typeof HttpRequestDetails>
|
|
2279
2279
|
readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
|
|
2280
2280
|
readonly metadata: Schema.withDecodingDefault<
|
|
2281
2281
|
Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
|
|
@@ -2283,10 +2283,10 @@ export const ResponseMetadataPart: Schema.Struct<{
|
|
|
2283
2283
|
}> = Schema.Struct({
|
|
2284
2284
|
...BasePart.fields,
|
|
2285
2285
|
type: Schema.tag("response-metadata"),
|
|
2286
|
-
id: Schema.
|
|
2287
|
-
modelId: Schema.
|
|
2288
|
-
timestamp: Schema.
|
|
2289
|
-
request: Schema.
|
|
2286
|
+
id: Schema.optional(Schema.String),
|
|
2287
|
+
modelId: Schema.optional(Schema.String),
|
|
2288
|
+
timestamp: Schema.optional(Schema.DateTimeUtcFromString),
|
|
2289
|
+
request: Schema.optional(HttpRequestDetails)
|
|
2290
2290
|
}).annotate({ identifier: "ResponseMetadataPart" }) satisfies Schema.Codec<
|
|
2291
2291
|
ResponseMetadataPart,
|
|
2292
2292
|
ResponseMetadataPartEncoded
|
|
@@ -2368,19 +2368,19 @@ export class Usage extends Schema.Class<Usage>("effect/ai/AiResponse/Usage")({
|
|
|
2368
2368
|
/**
|
|
2369
2369
|
* The number of non-cached input (i.e. prompt) tokens used.
|
|
2370
2370
|
*/
|
|
2371
|
-
uncached: Schema.
|
|
2371
|
+
uncached: Schema.optional(Schema.Int),
|
|
2372
2372
|
/**
|
|
2373
2373
|
* The total of number of input (i.e. prompt) tokens used.
|
|
2374
2374
|
*/
|
|
2375
|
-
total: Schema.
|
|
2375
|
+
total: Schema.optional(Schema.Int),
|
|
2376
2376
|
/**
|
|
2377
2377
|
* The number of cached input (i.e. prompt) tokens read.
|
|
2378
2378
|
*/
|
|
2379
|
-
cacheRead: Schema.
|
|
2379
|
+
cacheRead: Schema.optional(Schema.Int),
|
|
2380
2380
|
/**
|
|
2381
2381
|
* The number of cached input (i.e. prompt) tokens written.
|
|
2382
2382
|
*/
|
|
2383
|
-
cacheWrite: Schema.
|
|
2383
|
+
cacheWrite: Schema.optional(Schema.Int)
|
|
2384
2384
|
}),
|
|
2385
2385
|
/**
|
|
2386
2386
|
* Information about the output (i.e. response) tokens used.
|
|
@@ -2389,15 +2389,15 @@ export class Usage extends Schema.Class<Usage>("effect/ai/AiResponse/Usage")({
|
|
|
2389
2389
|
/**
|
|
2390
2390
|
* The total of number of output (i.e. response) tokens used.
|
|
2391
2391
|
*/
|
|
2392
|
-
total: Schema.
|
|
2392
|
+
total: Schema.optional(Schema.Int),
|
|
2393
2393
|
/**
|
|
2394
2394
|
* The number of text tokens used.
|
|
2395
2395
|
*/
|
|
2396
|
-
text: Schema.
|
|
2396
|
+
text: Schema.optional(Schema.Int),
|
|
2397
2397
|
/**
|
|
2398
2398
|
* The number of reasoning tokens used.
|
|
2399
2399
|
*/
|
|
2400
|
-
reasoning: Schema.
|
|
2400
|
+
reasoning: Schema.optional(Schema.Int)
|
|
2401
2401
|
})
|
|
2402
2402
|
}) {}
|
|
2403
2403
|
|
|
@@ -2443,7 +2443,7 @@ export interface FinishPart extends BasePart<"finish", FinishPartMetadata> {
|
|
|
2443
2443
|
/**
|
|
2444
2444
|
* Optional HTTP response details from the AI provider.
|
|
2445
2445
|
*/
|
|
2446
|
-
readonly response
|
|
2446
|
+
readonly response?: typeof HttpResponseDetails.Type | undefined
|
|
2447
2447
|
}
|
|
2448
2448
|
|
|
2449
2449
|
/**
|
|
@@ -2500,7 +2500,7 @@ export const FinishPart: Schema.Struct<{
|
|
|
2500
2500
|
"unknown"
|
|
2501
2501
|
]>
|
|
2502
2502
|
readonly usage: typeof Usage
|
|
2503
|
-
readonly response: Schema.
|
|
2503
|
+
readonly response: Schema.optional<typeof HttpResponseDetails>
|
|
2504
2504
|
readonly "~effect/ai/Content/Part": Schema.withDecodingDefaultKey<Schema.tag<"~effect/ai/Content/Part">>
|
|
2505
2505
|
readonly metadata: Schema.withDecodingDefault<
|
|
2506
2506
|
Schema.$Record<Schema.String, Schema.Codec<Schema.Json>>
|
|
@@ -2510,7 +2510,7 @@ export const FinishPart: Schema.Struct<{
|
|
|
2510
2510
|
type: Schema.tag("finish"),
|
|
2511
2511
|
reason: FinishReason,
|
|
2512
2512
|
usage: Usage,
|
|
2513
|
-
response: Schema.
|
|
2513
|
+
response: Schema.optional(HttpResponseDetails)
|
|
2514
2514
|
}).annotate({ identifier: "FinishPart" }) satisfies Schema.Codec<FinishPart, FinishPartEncoded>
|
|
2515
2515
|
|
|
2516
2516
|
// =============================================================================
|
package/src/unstable/ai/Tool.ts
CHANGED
|
@@ -273,6 +273,13 @@ export interface Tool<
|
|
|
273
273
|
*/
|
|
274
274
|
readonly needsApproval?: boolean | NeedsApprovalFunction<any> | undefined
|
|
275
275
|
|
|
276
|
+
/**
|
|
277
|
+
* Set whether user approval is required before executing this tool.
|
|
278
|
+
*/
|
|
279
|
+
setNeedsApproval(
|
|
280
|
+
needsApproval: NeedsApproval<Config["parameters"]>
|
|
281
|
+
): Tool<Name, Config, Requirements>
|
|
282
|
+
|
|
276
283
|
/**
|
|
277
284
|
* Adds a _request-level_ dependency which must be provided before the tool
|
|
278
285
|
* call handler can be executed.
|
|
@@ -1051,6 +1058,9 @@ const Proto = {
|
|
|
1051
1058
|
setFailure(this: Any, failureSchema: Schema.Constraint) {
|
|
1052
1059
|
return clone(this, { failureSchema })
|
|
1053
1060
|
},
|
|
1061
|
+
setNeedsApproval(this: Any, needsApproval: NeedsApproval<any>) {
|
|
1062
|
+
return clone(this, { needsApproval })
|
|
1063
|
+
},
|
|
1054
1064
|
annotate<I, S>(this: Any, tag: Context.Key<I, S>, value: S) {
|
|
1055
1065
|
return clone(this, { annotations: Context.add(this.annotations, tag, value) })
|
|
1056
1066
|
},
|
|
@@ -1707,10 +1717,18 @@ export const getJsonSchema = <Tool extends Any>(tool: Tool, options?: {
|
|
|
1707
1717
|
export const getJsonSchemaFromSchema = <S extends Schema.Constraint>(schema: S, options?: {
|
|
1708
1718
|
readonly transformer?: CodecTransformer
|
|
1709
1719
|
}): JsonSchema.JsonSchema => {
|
|
1720
|
+
return getJsonSchemaFromSchemaWith(schema, Schema.toJsonSchemaDocument, options)
|
|
1721
|
+
}
|
|
1722
|
+
|
|
1723
|
+
const getJsonSchemaFromSchemaWith = <S extends Schema.Constraint>(
|
|
1724
|
+
schema: S,
|
|
1725
|
+
toJsonSchemaDocument: (schema: Schema.Constraint) => JsonSchema.Document<"draft-2020-12">,
|
|
1726
|
+
options?: { readonly transformer?: CodecTransformer }
|
|
1727
|
+
): JsonSchema.JsonSchema => {
|
|
1710
1728
|
if (Predicate.isNotUndefined(options?.transformer)) {
|
|
1711
1729
|
return options.transformer(schema).jsonSchema
|
|
1712
1730
|
}
|
|
1713
|
-
const document =
|
|
1731
|
+
const document = toJsonSchemaDocument(schema)
|
|
1714
1732
|
if (Object.keys(document.definitions).length > 0) {
|
|
1715
1733
|
document.schema.$defs = document.definitions
|
|
1716
1734
|
}
|
|
@@ -1956,13 +1974,13 @@ function filter(obj: any) {
|
|
|
1956
1974
|
next = []
|
|
1957
1975
|
|
|
1958
1976
|
for (const node of nodes) {
|
|
1959
|
-
if (Object.
|
|
1977
|
+
if (Object.hasOwn(node, "__proto__")) {
|
|
1960
1978
|
throw new SyntaxError("Object contains forbidden prototype property")
|
|
1961
1979
|
}
|
|
1962
1980
|
|
|
1963
1981
|
if (
|
|
1964
|
-
Object.
|
|
1965
|
-
Object.
|
|
1982
|
+
Object.hasOwn(node, "constructor") &&
|
|
1983
|
+
Object.hasOwn(node.constructor, "prototype")
|
|
1966
1984
|
) {
|
|
1967
1985
|
throw new SyntaxError("Object contains forbidden prototype property")
|
|
1968
1986
|
}
|
|
@@ -15,6 +15,7 @@ import * as Effect from "../../Effect.ts"
|
|
|
15
15
|
import * as Effectable from "../../Effectable.ts"
|
|
16
16
|
import * as Fiber from "../../Fiber.ts"
|
|
17
17
|
import { identity } from "../../Function.ts"
|
|
18
|
+
import * as InternalRecord from "../../internal/record.ts"
|
|
18
19
|
import * as Layer from "../../Layer.ts"
|
|
19
20
|
import * as Predicate from "../../Predicate.ts"
|
|
20
21
|
import * as Queue from "../../Queue.ts"
|
|
@@ -105,6 +106,10 @@ export interface Toolkit<in out Tools extends Record<string, Tool.Any>> extends
|
|
|
105
106
|
* @since 4.0.0
|
|
106
107
|
*/
|
|
107
108
|
export interface HandlerContext<Tool extends Tool.Any> {
|
|
109
|
+
/**
|
|
110
|
+
* The unique identifier of the tool call, when available.
|
|
111
|
+
*/
|
|
112
|
+
readonly toolCallId?: string | undefined
|
|
108
113
|
/**
|
|
109
114
|
* Emit a preliminary result during long-running tool calls.
|
|
110
115
|
*
|
|
@@ -199,7 +204,11 @@ export interface WithHandler<in out Tools extends Record<string, Tool.Any>> {
|
|
|
199
204
|
/**
|
|
200
205
|
* Parameters to pass to the tool handler.
|
|
201
206
|
*/
|
|
202
|
-
params: Tool.Parameters<Tools[Name]
|
|
207
|
+
params: Tool.Parameters<Tools[Name]>,
|
|
208
|
+
/**
|
|
209
|
+
* The unique identifier of the tool call.
|
|
210
|
+
*/
|
|
211
|
+
toolCallId?: string
|
|
203
212
|
) => Effect.Effect<
|
|
204
213
|
Stream.Stream<
|
|
205
214
|
Tool.HandlerResult<Tools[Name]>,
|
|
@@ -257,8 +266,8 @@ const Proto = {
|
|
|
257
266
|
return schemas
|
|
258
267
|
}
|
|
259
268
|
|
|
260
|
-
const handle = Effect.fnUntraced(function*(name: string, params: unknown) {
|
|
261
|
-
const tool = tools[name]
|
|
269
|
+
const handle = Effect.fnUntraced(function*(name: string, params: unknown, toolCallId?: string) {
|
|
270
|
+
const tool = Object.hasOwn(tools, name) ? tools[name] : undefined
|
|
262
271
|
|
|
263
272
|
yield* Effect.annotateCurrentSpan({
|
|
264
273
|
tool: name,
|
|
@@ -302,6 +311,7 @@ const Proto = {
|
|
|
302
311
|
readonly preliminary: boolean
|
|
303
312
|
}, Cause.Done>()
|
|
304
313
|
const context: HandlerContext<any> = {
|
|
314
|
+
toolCallId,
|
|
305
315
|
preliminary: (result) =>
|
|
306
316
|
Effect.asVoid(Queue.offer(queue, {
|
|
307
317
|
result,
|
|
@@ -390,8 +400,10 @@ const Proto = {
|
|
|
390
400
|
const handlers = Effect.isEffect(build) ? yield* build : build
|
|
391
401
|
const context = new Map<string, unknown>()
|
|
392
402
|
for (const [name, handler] of Object.entries(handlers)) {
|
|
393
|
-
const tool = this.tools[name]
|
|
394
|
-
|
|
403
|
+
const tool = Object.hasOwn(this.tools, name) ? this.tools[name] : undefined
|
|
404
|
+
if (tool !== undefined) {
|
|
405
|
+
context.set(tool.id, { name, handler, context: services })
|
|
406
|
+
}
|
|
395
407
|
}
|
|
396
408
|
return Context.makeUnsafe(context)
|
|
397
409
|
})
|
|
@@ -418,7 +430,7 @@ const resolveInput = <Tools extends ReadonlyArray<Tool.Any>>(
|
|
|
418
430
|
): Record<string, Tools[number]> => {
|
|
419
431
|
const output = {} as Record<string, Tools[number]>
|
|
420
432
|
for (const tool of tools) {
|
|
421
|
-
output
|
|
433
|
+
InternalRecord.assignProperty(output, tool.name, tool)
|
|
422
434
|
}
|
|
423
435
|
return output
|
|
424
436
|
}
|
|
@@ -547,7 +559,7 @@ export const merge = <const Toolkits extends ReadonlyArray<Any>>(
|
|
|
547
559
|
const tools = {} as Record<string, any>
|
|
548
560
|
for (const toolkit of toolkits) {
|
|
549
561
|
for (const [name, tool] of Object.entries(toolkit.tools)) {
|
|
550
|
-
tools
|
|
562
|
+
InternalRecord.assignProperty(tools, name, tool)
|
|
551
563
|
}
|
|
552
564
|
}
|
|
553
565
|
return makeProto(tools) as any
|
|
@@ -2,12 +2,18 @@ import * as JsonSchema from "../../../JsonSchema.ts"
|
|
|
2
2
|
import * as Schema from "../../../Schema.ts"
|
|
3
3
|
import type { CodecTransformer } from "../LanguageModel.ts"
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
jsonSchema
|
|
5
|
+
const makeDefaultCodecTransformer = (
|
|
6
|
+
toJsonSchemaDocument: (schema: Schema.Constraint) => JsonSchema.Document<"draft-2020-12">
|
|
7
|
+
): CodecTransformer => {
|
|
8
|
+
return (codec) => {
|
|
9
|
+
const document = JsonSchema.resolveTopLevel$ref(toJsonSchemaDocument(codec))
|
|
10
|
+
const jsonSchema = { ...document.schema }
|
|
11
|
+
if (Object.keys(document.definitions).length > 0) {
|
|
12
|
+
jsonSchema.$defs = document.definitions
|
|
13
|
+
}
|
|
14
|
+
return { codec, jsonSchema }
|
|
11
15
|
}
|
|
12
|
-
return { codec, jsonSchema }
|
|
13
16
|
}
|
|
17
|
+
|
|
18
|
+
/** @internal */
|
|
19
|
+
export const defaultCodecTransformer = makeDefaultCodecTransformer(Schema.toJsonSchemaDocument)
|