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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toArbitrary.js","names":["Array","Boolean","Equal","memoize","Number","Option","Order","Predicate","SchemaAST","Struct","UndefinedOr","errorWithPath","InternalRecord","InternalAnnotations","arbitraryMemoMap","WeakMap","suspendDepthIdentifierMap","emptyRecursionStack","makeReport","warnings","toReport","report","slice","arbitraryError","what","Error","entryComparator","a","b","equals","applyChecks","ast","filters","arbitrary","reduce","acc","filter","run","defaultParseOptions","undefined","validateArrayConstraints","constraint","label","minLength","maxLength","lengthToFastCheckConstraints","arrayWithConstraints","fc","item","comparator","uniqueArray","array","ctx","terminal","arrayConstraints","unique","appendArray","out","len","rest","chain","as","length","constant","map","appendObjectEntries","entries","o","Object","fromEntries","max","makeReducer","ReducerMax","min","ReducerMin","or","ReducerOr","concat","makeReducerConcat","combiner","makeCombiner","integer","noInfinity","noNaN","patterns","omitKeyWhen","isUndefined","mergeOrderedBound","order","self","selfExclusive","that","thatExclusive","takeComparison","comparison","mergeOrderedConstraints","minimum","exclusiveMinimum","maximum","exclusiveMaximum","mergeConstraint","ordered","selfOrdered","selfRest","thatOrdered","thatRest","combine","collectChecks","checks","arbitraries","visit","check","annotations","push","_tag","child","forEach","constraintContext","constraintAnnotations","isNotUndefined","c","resetContext","objectEntriesConstraints","requiredKeys","indexSignatures","propertySignatures","Math","objectWithOptionalCount","pss","orderedNames","optionalNames","requiredCount","minOptional","maxOptional","full","record","chosen","shuffledSubarray","tuple","base","names","keep","Set","name","has","assignProperty","toRangeConstraints","error","toIntegerConstraints","excluded","floor","ceil","toFloatConstraints","noDefaultInfinity","minExcluded","maxExcluded","toBigIntConstraints","BigInt","makeLazy","normal","recursionStack","same","f","getSuspendRecursion","depthIdentifier","get","createDepthIdentifier","set","maxDepth","oneOf","oneof","finiteNumberConstraint","finiteNumberContext","reportChecks","path","covered","nextCovered","candidate","description","representation","id","identifier","expected","collectReport","stack","WeakSet","add","typeParameters","tp","i","type","elements","ps","is","parameter","types","parts","part","toEncoded","thunk","delete","applyCandidates","weighted","weight","make","globalThis","isInteger","applyFilterLayer","normalizeDerivation","output","hasTypeParameters","makeTypeParameters","lazyNormal","filterLayer","normalBase","terminalBase","nextCtx","memoized","recur","annotation","resolve","toArbitrary","isDeclaration","derive","lawc","replaceChecks","_ctx","anything","pattern","stringMatching","RegExp","string","float","boolean","bigInt","Symbol","for","literal","symbol","object","enumsToLiterals","segments","segment","String","join","reset","elementArbitraries","optionals","element","isOptional","some","needsRest","isReadonlyArrayNonEmpty","optionalTarget","includedOptionals","none","getSomes","head","tail","restCtx","minRestLength","headArbitrary","restArbitrary","tailArbitraries","t","recursion","terminalOut","optionalCount","entriesConstraints","minEntries","key","value","entry","memo","memoizeThunk","nextStack","includes"],"sources":["../../../src/internal/schema/toArbitrary.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toCodeDocument.d.ts","sourceRoot":"","sources":["../../../src/internal/schema/toCodeDocument.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,438 @@
|
|
|
1
|
+
import * as Arr from "../../Array.js";
|
|
2
|
+
import { format, formatPropertyKey } from "../../Formatter.js";
|
|
3
|
+
import { errorWithPath } from "../errors.js";
|
|
4
|
+
import * as InternalRecord from "../record.js";
|
|
5
|
+
import * as InternalAnnotations from "./annotations.js";
|
|
6
|
+
/** @internal */
|
|
7
|
+
export function makeCode(runtime, Type) {
|
|
8
|
+
return {
|
|
9
|
+
runtime,
|
|
10
|
+
Type
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
function renderEmittableAnnotation(input) {
|
|
14
|
+
if (input === null || typeof input === "string" || typeof input === "boolean" || typeof input === "number" || typeof input === "bigint") return format(input);
|
|
15
|
+
if (typeof input === "symbol") {
|
|
16
|
+
const key = globalThis.Symbol.keyFor(input);
|
|
17
|
+
return key === undefined ? undefined : `Symbol.for(${format(key)})`;
|
|
18
|
+
}
|
|
19
|
+
if (typeof input !== "object") return undefined;
|
|
20
|
+
if (Array.isArray(input)) {
|
|
21
|
+
const values = [];
|
|
22
|
+
for (const value of input) {
|
|
23
|
+
const rendered = renderEmittableAnnotation(value);
|
|
24
|
+
if (rendered === undefined) return undefined;
|
|
25
|
+
values.push(rendered);
|
|
26
|
+
}
|
|
27
|
+
return `[${values.join(", ")}]`;
|
|
28
|
+
}
|
|
29
|
+
const entries = [];
|
|
30
|
+
for (const [key, value] of Object.entries(input)) {
|
|
31
|
+
const rendered = renderEmittableAnnotation(value);
|
|
32
|
+
if (rendered === undefined) return undefined;
|
|
33
|
+
entries.push(`${formatPropertyKey(key)}: ${rendered}`);
|
|
34
|
+
}
|
|
35
|
+
return `{ ${entries.join(", ")} }`;
|
|
36
|
+
}
|
|
37
|
+
function renderAnnotations(annotations) {
|
|
38
|
+
if (annotations === undefined) return undefined;
|
|
39
|
+
const entries = [];
|
|
40
|
+
for (const [key, value] of Object.entries(annotations)) {
|
|
41
|
+
if (InternalAnnotations.annotationExcludedKeys.has(key)) continue;
|
|
42
|
+
const rendered = renderEmittableAnnotation(value);
|
|
43
|
+
if (rendered !== undefined) entries.push(`${formatPropertyKey(key)}: ${rendered}`);
|
|
44
|
+
}
|
|
45
|
+
return entries.length === 0 ? undefined : `{ ${entries.join(", ")} }`;
|
|
46
|
+
}
|
|
47
|
+
/** @internal */
|
|
48
|
+
export function sanitizeJavaScriptIdentifier(input) {
|
|
49
|
+
if (input.length === 0) return "_";
|
|
50
|
+
const out = input.replace(/[^A-Za-z0-9_$]/gu, "_");
|
|
51
|
+
const first = out[0];
|
|
52
|
+
return first >= "a" && first <= "z" ? first.toUpperCase() + out.slice(1) : first >= "0" && first <= "9" ? `_${out}` : out;
|
|
53
|
+
}
|
|
54
|
+
function isSimpleLiveLiteral(representation) {
|
|
55
|
+
return representation._tag === "Literal" && representation.checks.length === 0 && representation.annotations === undefined;
|
|
56
|
+
}
|
|
57
|
+
/** @internal */
|
|
58
|
+
export function topologicalSort(references) {
|
|
59
|
+
const identifiers = Object.keys(references);
|
|
60
|
+
const identifierSet = new Set(identifiers);
|
|
61
|
+
function collectRefs(root) {
|
|
62
|
+
const refs = new Set();
|
|
63
|
+
const visited = new WeakSet();
|
|
64
|
+
const stack = [root];
|
|
65
|
+
function pushRepresentationSchemas(representation) {
|
|
66
|
+
if (representation?.schemas !== undefined) stack.push(...representation.schemas);
|
|
67
|
+
}
|
|
68
|
+
function pushChecks(checks) {
|
|
69
|
+
for (const check of checks) {
|
|
70
|
+
pushRepresentationSchemas(check.representation);
|
|
71
|
+
if (check._tag === "FilterGroup") pushChecks(check.checks);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
while (stack.length > 0) {
|
|
75
|
+
const representation = stack.pop();
|
|
76
|
+
if (visited.has(representation)) continue;
|
|
77
|
+
visited.add(representation);
|
|
78
|
+
if (representation._tag === "Reference") {
|
|
79
|
+
if (identifierSet.has(representation.$ref)) refs.add(representation.$ref);
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
pushChecks(representation.checks);
|
|
83
|
+
switch (representation._tag) {
|
|
84
|
+
case "Declaration":
|
|
85
|
+
pushRepresentationSchemas(representation.representation);
|
|
86
|
+
stack.push(...representation.typeParameters);
|
|
87
|
+
break;
|
|
88
|
+
case "Suspend":
|
|
89
|
+
stack.push(representation.thunk);
|
|
90
|
+
break;
|
|
91
|
+
case "TemplateLiteral":
|
|
92
|
+
stack.push(...representation.parts);
|
|
93
|
+
break;
|
|
94
|
+
case "Arrays":
|
|
95
|
+
for (const element of representation.elements) stack.push(element.type);
|
|
96
|
+
stack.push(...representation.rest);
|
|
97
|
+
break;
|
|
98
|
+
case "Objects":
|
|
99
|
+
for (const property of representation.propertySignatures) stack.push(property.type);
|
|
100
|
+
for (const signature of representation.indexSignatures) {
|
|
101
|
+
stack.push(signature.parameter, signature.type);
|
|
102
|
+
}
|
|
103
|
+
break;
|
|
104
|
+
case "Union":
|
|
105
|
+
stack.push(...representation.types);
|
|
106
|
+
break;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return refs;
|
|
110
|
+
}
|
|
111
|
+
const dependencies = new Map(identifiers.map(identifier => [identifier, collectRefs(references[identifier])]));
|
|
112
|
+
const recursive = new Set();
|
|
113
|
+
const state = new Map();
|
|
114
|
+
const stack = [];
|
|
115
|
+
function visit(identifier) {
|
|
116
|
+
const current = state.get(identifier) ?? 0;
|
|
117
|
+
if (current === 1) {
|
|
118
|
+
const start = stack.indexOf(identifier);
|
|
119
|
+
for (let index = start; index < stack.length; index++) recursive.add(stack[index]);
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
if (current === 2) return;
|
|
123
|
+
state.set(identifier, 1);
|
|
124
|
+
stack.push(identifier);
|
|
125
|
+
for (const dependency of dependencies.get(identifier)) visit(dependency);
|
|
126
|
+
stack.pop();
|
|
127
|
+
state.set(identifier, 2);
|
|
128
|
+
}
|
|
129
|
+
for (const identifier of identifiers) visit(identifier);
|
|
130
|
+
const inDegree = new Map();
|
|
131
|
+
const dependents = new Map();
|
|
132
|
+
for (const identifier of identifiers) {
|
|
133
|
+
if (!recursive.has(identifier)) {
|
|
134
|
+
inDegree.set(identifier, 0);
|
|
135
|
+
dependents.set(identifier, new Set());
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
for (const [identifier, internalDependencies] of dependencies) {
|
|
139
|
+
if (recursive.has(identifier)) continue;
|
|
140
|
+
for (const dependency of internalDependencies) {
|
|
141
|
+
if (recursive.has(dependency)) continue;
|
|
142
|
+
inDegree.set(identifier, inDegree.get(identifier) + 1);
|
|
143
|
+
dependents.get(dependency).add(identifier);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
const queue = [];
|
|
147
|
+
for (const [identifier, degree] of inDegree) {
|
|
148
|
+
if (degree === 0) queue.push(identifier);
|
|
149
|
+
}
|
|
150
|
+
const nonRecursives = [];
|
|
151
|
+
for (let index = 0; index < queue.length; index++) {
|
|
152
|
+
const $ref = queue[index];
|
|
153
|
+
nonRecursives.push({
|
|
154
|
+
$ref,
|
|
155
|
+
representation: references[$ref]
|
|
156
|
+
});
|
|
157
|
+
for (const dependent of dependents.get($ref)) {
|
|
158
|
+
const degree = inDegree.get(dependent) - 1;
|
|
159
|
+
inDegree.set(dependent, degree);
|
|
160
|
+
if (degree === 0) queue.push(dependent);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
const recursives = {};
|
|
164
|
+
for (const identifier of recursive) InternalRecord.assignProperty(recursives, identifier, references[identifier]);
|
|
165
|
+
return {
|
|
166
|
+
nonRecursives,
|
|
167
|
+
recursives
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
/** @internal */
|
|
171
|
+
export function toCodeDocument(document) {
|
|
172
|
+
const artifacts = [];
|
|
173
|
+
const sorted = topologicalSort(document.references);
|
|
174
|
+
const sanitizedReferences = new Map();
|
|
175
|
+
const uniqueIdentifiers = new Set();
|
|
176
|
+
let compilingRecursiveDefinition = false;
|
|
177
|
+
let explicitSuspendDepth = 0;
|
|
178
|
+
for (const {
|
|
179
|
+
$ref
|
|
180
|
+
} of sorted.nonRecursives) ensureUniqueIdentifier($ref);
|
|
181
|
+
for (const $ref of Object.keys(sorted.recursives)) ensureUniqueIdentifier($ref);
|
|
182
|
+
const nonRecursives = sorted.nonRecursives.map(({
|
|
183
|
+
$ref,
|
|
184
|
+
representation
|
|
185
|
+
}) => ({
|
|
186
|
+
$ref: ensureUniqueIdentifier($ref),
|
|
187
|
+
code: recur(representation, ["references", $ref])
|
|
188
|
+
}));
|
|
189
|
+
const recursives = {};
|
|
190
|
+
for (const [$ref, representation] of Object.entries(sorted.recursives)) {
|
|
191
|
+
compilingRecursiveDefinition = true;
|
|
192
|
+
InternalRecord.assignProperty(recursives, ensureUniqueIdentifier($ref), recur(representation, ["references", $ref]));
|
|
193
|
+
compilingRecursiveDefinition = false;
|
|
194
|
+
}
|
|
195
|
+
const codes = document.representations.map((representation, index) => recur(representation, ["representations", index]));
|
|
196
|
+
return {
|
|
197
|
+
codes,
|
|
198
|
+
references: {
|
|
199
|
+
nonRecursives,
|
|
200
|
+
recursives
|
|
201
|
+
},
|
|
202
|
+
artifacts
|
|
203
|
+
};
|
|
204
|
+
function ensureUniqueIdentifier(original) {
|
|
205
|
+
const existing = sanitizedReferences.get(original);
|
|
206
|
+
if (existing !== undefined) return existing;
|
|
207
|
+
const candidate = freshIdentifier(original);
|
|
208
|
+
sanitizedReferences.set(original, candidate);
|
|
209
|
+
return candidate;
|
|
210
|
+
}
|
|
211
|
+
function freshIdentifier(seed) {
|
|
212
|
+
const sanitized = sanitizeJavaScriptIdentifier(seed);
|
|
213
|
+
let candidate = sanitized;
|
|
214
|
+
let suffix = 0;
|
|
215
|
+
while (uniqueIdentifiers.has(candidate)) candidate = `${sanitized}${++suffix}`;
|
|
216
|
+
uniqueIdentifiers.add(candidate);
|
|
217
|
+
return candidate;
|
|
218
|
+
}
|
|
219
|
+
function addImport(importDeclaration) {
|
|
220
|
+
if (!artifacts.some(artifact => artifact._tag === "Import" && artifact.importDeclaration === importDeclaration)) {
|
|
221
|
+
artifacts.push({
|
|
222
|
+
_tag: "Import",
|
|
223
|
+
importDeclaration
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
function addSymbol(symbol) {
|
|
228
|
+
const identifier = freshIdentifier("_symbol");
|
|
229
|
+
const key = globalThis.Symbol.keyFor(symbol);
|
|
230
|
+
const description = symbol.description;
|
|
231
|
+
artifacts.push({
|
|
232
|
+
_tag: "Symbol",
|
|
233
|
+
identifier,
|
|
234
|
+
code: makeCode(key === undefined ? `Symbol(${description === undefined ? "" : format(description)})` : `Symbol.for(${format(key)})`, `typeof ${identifier}`)
|
|
235
|
+
});
|
|
236
|
+
return identifier;
|
|
237
|
+
}
|
|
238
|
+
function annotationSchemas(representation, path) {
|
|
239
|
+
return representation?.schemas?.map((schema, index) => recur(schema, [...path, "schemas", index])) ?? [];
|
|
240
|
+
}
|
|
241
|
+
function checkBrands(check) {
|
|
242
|
+
const own = InternalAnnotations.collectBrands(check.annotations);
|
|
243
|
+
if (check._tag === "FilterGroup" && check.annotations?.toCode === undefined) {
|
|
244
|
+
return [...own, ...check.checks.flatMap(checkBrands)];
|
|
245
|
+
}
|
|
246
|
+
return own;
|
|
247
|
+
}
|
|
248
|
+
function runtimeBrands(brands) {
|
|
249
|
+
return brands.length === 0 ? "" : `.pipe(${brands.map(brand => `Schema.brand(${format(brand)})`).join(", ")})`;
|
|
250
|
+
}
|
|
251
|
+
function typeBrands(brands) {
|
|
252
|
+
if (brands.length === 0) return "";
|
|
253
|
+
addImport(`import type * as Brand from "effect/Brand"`);
|
|
254
|
+
return brands.map(brand => ` & Brand.Brand<${format(brand)}>`).join("");
|
|
255
|
+
}
|
|
256
|
+
function runtimeAnnotate(annotations, method = "annotate") {
|
|
257
|
+
const rendered = renderAnnotations(annotations);
|
|
258
|
+
return rendered === undefined ? "" : `.${method}(${rendered})`;
|
|
259
|
+
}
|
|
260
|
+
function compileCheck(check, path) {
|
|
261
|
+
const callback = check.annotations?.toCode;
|
|
262
|
+
let runtime;
|
|
263
|
+
if (callback !== undefined) {
|
|
264
|
+
const schemas = annotationSchemas(check.representation, [...path, "representation"]);
|
|
265
|
+
const output = callback({
|
|
266
|
+
schemas
|
|
267
|
+
});
|
|
268
|
+
for (const importDeclaration of output.importDeclarations ?? []) addImport(importDeclaration);
|
|
269
|
+
runtime = output.runtime;
|
|
270
|
+
} else if (check._tag === "Filter") {
|
|
271
|
+
throw errorWithPath("Missing toCode callback", [...path, "annotations", "toCode"]);
|
|
272
|
+
} else {
|
|
273
|
+
runtime = `Schema.makeFilterGroup([${check.checks.map((child, index) => compileCheck(child, [...path, "checks", index])).join(", ")}])`;
|
|
274
|
+
}
|
|
275
|
+
runtime += runtimeAnnotate(check.annotations);
|
|
276
|
+
if (check._tag === "Filter" && check.aborted) runtime += ".abort()";
|
|
277
|
+
return runtime;
|
|
278
|
+
}
|
|
279
|
+
function applyNode(base, representation, path, includeTypeBrands = true) {
|
|
280
|
+
const nodeBrands = InternalAnnotations.collectBrands(representation.annotations);
|
|
281
|
+
let runtime = base.runtime + runtimeAnnotate(representation.annotations) + runtimeBrands(nodeBrands);
|
|
282
|
+
let Type = base.Type + (includeTypeBrands ? typeBrands(nodeBrands) : "");
|
|
283
|
+
for (let index = 0; index < representation.checks.length; index++) {
|
|
284
|
+
const check = representation.checks[index];
|
|
285
|
+
const brands = checkBrands(check);
|
|
286
|
+
runtime += `.check(${compileCheck(check, [...path, "checks", index])})${runtimeBrands(brands)}`;
|
|
287
|
+
if (includeTypeBrands) Type += typeBrands(brands);
|
|
288
|
+
}
|
|
289
|
+
return makeCode(runtime, Type);
|
|
290
|
+
}
|
|
291
|
+
function recur(representation, path, includeTypeBrands = true) {
|
|
292
|
+
if (representation._tag === "Reference") {
|
|
293
|
+
if (!Object.hasOwn(document.references, representation.$ref)) {
|
|
294
|
+
throw errorWithPath(`Invalid reference ${representation.$ref}`, [...path, "$ref"]);
|
|
295
|
+
}
|
|
296
|
+
const identifier = ensureUniqueIdentifier(representation.$ref);
|
|
297
|
+
if (compilingRecursiveDefinition && explicitSuspendDepth === 0 && Object.hasOwn(sorted.recursives, representation.$ref)) {
|
|
298
|
+
return makeCode(`Schema.suspend((): Schema.Codec<${identifier}> => ${identifier})`, identifier);
|
|
299
|
+
}
|
|
300
|
+
const Type = includeTypeBrands ? identifier : recur(document.references[representation.$ref], ["references", representation.$ref], false).Type;
|
|
301
|
+
return makeCode(identifier, Type);
|
|
302
|
+
}
|
|
303
|
+
return applyNode(on(representation, path, includeTypeBrands), representation, path, includeTypeBrands);
|
|
304
|
+
}
|
|
305
|
+
function on(representation, path, includeTypeBrands) {
|
|
306
|
+
switch (representation._tag) {
|
|
307
|
+
case "Declaration":
|
|
308
|
+
{
|
|
309
|
+
const callback = representation.annotations?.toCode;
|
|
310
|
+
if (callback === undefined) {
|
|
311
|
+
throw errorWithPath("Missing toCode callback", [...path, "annotations", "toCode"]);
|
|
312
|
+
}
|
|
313
|
+
const typeParameters = representation.typeParameters.map((typeParameter, index) => recur(typeParameter, [...path, "typeParameters", index]));
|
|
314
|
+
const output = callback({
|
|
315
|
+
typeParameters
|
|
316
|
+
});
|
|
317
|
+
for (const importDeclaration of output.importDeclarations ?? []) addImport(importDeclaration);
|
|
318
|
+
return makeCode(output.runtime, output.Type);
|
|
319
|
+
}
|
|
320
|
+
case "Suspend":
|
|
321
|
+
{
|
|
322
|
+
explicitSuspendDepth++;
|
|
323
|
+
const thunk = recur(representation.thunk, [...path, "thunk"]);
|
|
324
|
+
explicitSuspendDepth--;
|
|
325
|
+
return makeCode(`Schema.suspend((): Schema.Codec<${thunk.Type}> => ${thunk.runtime})`, thunk.Type);
|
|
326
|
+
}
|
|
327
|
+
case "Null":
|
|
328
|
+
return makeCode("Schema.Null", "null");
|
|
329
|
+
case "Undefined":
|
|
330
|
+
return makeCode("Schema.Undefined", "undefined");
|
|
331
|
+
case "Void":
|
|
332
|
+
return makeCode("Schema.Void", "void");
|
|
333
|
+
case "Never":
|
|
334
|
+
return makeCode("Schema.Never", "never");
|
|
335
|
+
case "Unknown":
|
|
336
|
+
return makeCode("Schema.Unknown", "unknown");
|
|
337
|
+
case "Any":
|
|
338
|
+
return makeCode("Schema.Any", "any");
|
|
339
|
+
case "String":
|
|
340
|
+
return makeCode("Schema.String", "string");
|
|
341
|
+
case "Number":
|
|
342
|
+
return makeCode("Schema.Number", "number");
|
|
343
|
+
case "Boolean":
|
|
344
|
+
return makeCode("Schema.Boolean", "boolean");
|
|
345
|
+
case "BigInt":
|
|
346
|
+
return makeCode("Schema.BigInt", "bigint");
|
|
347
|
+
case "Symbol":
|
|
348
|
+
return makeCode("Schema.Symbol", "symbol");
|
|
349
|
+
case "Literal":
|
|
350
|
+
{
|
|
351
|
+
const literal = format(representation.literal);
|
|
352
|
+
return makeCode(`Schema.Literal(${literal})`, literal);
|
|
353
|
+
}
|
|
354
|
+
case "UniqueSymbol":
|
|
355
|
+
{
|
|
356
|
+
const identifier = addSymbol(representation.symbol);
|
|
357
|
+
return makeCode(`Schema.UniqueSymbol(${identifier})`, `typeof ${identifier}`);
|
|
358
|
+
}
|
|
359
|
+
case "ObjectKeyword":
|
|
360
|
+
return makeCode("Schema.ObjectKeyword", "object");
|
|
361
|
+
case "Enum":
|
|
362
|
+
{
|
|
363
|
+
const identifier = freshIdentifier("_Enum");
|
|
364
|
+
artifacts.push({
|
|
365
|
+
_tag: "Enum",
|
|
366
|
+
identifier,
|
|
367
|
+
code: makeCode(`enum ${identifier} { ${representation.enums.map(([name, value]) => `${format(name)} = ${format(value)}`).join(", ")} }`, `typeof ${identifier}`)
|
|
368
|
+
});
|
|
369
|
+
return makeCode(`Schema.Enum(${identifier})`, identifier);
|
|
370
|
+
}
|
|
371
|
+
case "TemplateLiteral":
|
|
372
|
+
{
|
|
373
|
+
const parts = representation.parts.map((part, index) => recur(part, [...path, "parts", index], false));
|
|
374
|
+
const Type = `\`${parts.map(part => `\${${part.Type}}`).join("")}\``;
|
|
375
|
+
return makeCode(`Schema.TemplateLiteral([${parts.map(part => part.runtime).join(", ")}])`, Type);
|
|
376
|
+
}
|
|
377
|
+
case "Arrays":
|
|
378
|
+
{
|
|
379
|
+
const elements = representation.elements.map((element, index) => {
|
|
380
|
+
const type = recur(element.type, [...path, "elements", index, "type"]);
|
|
381
|
+
return makeCode(`${element.isOptional ? "Schema.optionalKey(" : ""}${type.runtime}${element.isOptional ? ")" : ""}${runtimeAnnotate(element.annotations, "annotateKey")}`, `${type.Type}${element.isOptional ? "?" : ""}`);
|
|
382
|
+
});
|
|
383
|
+
const rest = representation.rest.map((item, index) => recur(item, [...path, "rest", index]));
|
|
384
|
+
if (Arr.isArrayNonEmpty(rest)) {
|
|
385
|
+
const item = rest[0];
|
|
386
|
+
if (elements.length === 0 && rest.length === 1) {
|
|
387
|
+
return makeCode(`Schema.Array(${item.runtime})`, `ReadonlyArray<${item.Type}>`);
|
|
388
|
+
}
|
|
389
|
+
const post = rest.slice(1);
|
|
390
|
+
return makeCode(`Schema.TupleWithRest(Schema.Tuple([${elements.map(element => element.runtime).join(", ")}]), [${rest.map(item => item.runtime).join(", ")}])`, `readonly [${elements.map(element => element.Type).join(", ")}, ...Array<${item.Type}>${post.length > 0 ? `, ${post.map(item => item.Type).join(", ")}` : ""}]`);
|
|
391
|
+
}
|
|
392
|
+
return makeCode(`Schema.Tuple([${elements.map(element => element.runtime).join(", ")}])`, `readonly [${elements.map(element => element.Type).join(", ")}]`);
|
|
393
|
+
}
|
|
394
|
+
case "Objects":
|
|
395
|
+
{
|
|
396
|
+
const properties = representation.propertySignatures.map((property, index) => {
|
|
397
|
+
const isSymbol = typeof property.name === "symbol";
|
|
398
|
+
const name = isSymbol ? addSymbol(property.name) : formatPropertyKey(property.name);
|
|
399
|
+
const type = recur(property.type, [...path, "propertySignatures", index, "type"]);
|
|
400
|
+
let runtime = type.runtime;
|
|
401
|
+
if (property.isMutable) runtime = `Schema.mutableKey(${runtime})`;
|
|
402
|
+
if (property.isOptional) runtime = `Schema.optionalKey(${runtime})`;
|
|
403
|
+
const runtimeName = isSymbol ? `[${name}]` : name;
|
|
404
|
+
const typeName = `${property.isMutable ? "" : "readonly "}${runtimeName}${property.isOptional ? "?" : ""}`;
|
|
405
|
+
return makeCode(`${runtimeName}: ${runtime}${runtimeAnnotate(property.annotations, "annotateKey")}`, `${typeName}: ${type.Type}`);
|
|
406
|
+
});
|
|
407
|
+
const indexSignatures = representation.indexSignatures.map((signature, index) => ({
|
|
408
|
+
parameter: recur(signature.parameter, [...path, "indexSignatures", index, "parameter"]),
|
|
409
|
+
type: recur(signature.type, [...path, "indexSignatures", index, "type"])
|
|
410
|
+
}));
|
|
411
|
+
const propertyRuntimes = properties.map(property => property.runtime).join(", ");
|
|
412
|
+
const propertyTypes = properties.map(property => property.Type).join(", ");
|
|
413
|
+
if (indexSignatures.length === 0) {
|
|
414
|
+
return makeCode(`Schema.Struct({ ${propertyRuntimes} })`, `{ ${propertyTypes} }`);
|
|
415
|
+
}
|
|
416
|
+
if (properties.length === 0 && indexSignatures.length === 1) {
|
|
417
|
+
const signature = indexSignatures[0];
|
|
418
|
+
return makeCode(`Schema.Record(${signature.parameter.runtime}, ${signature.type.runtime})`, `{ readonly [x: ${signature.parameter.Type}]: ${signature.type.Type} }`);
|
|
419
|
+
}
|
|
420
|
+
const indexRuntimes = indexSignatures.map(signature => `Schema.Record(${signature.parameter.runtime}, ${signature.type.runtime})`).join(", ");
|
|
421
|
+
const indexTypes = indexSignatures.map(signature => `readonly [x: ${signature.parameter.Type}]: ${signature.type.Type}`).join(", ");
|
|
422
|
+
return makeCode(`Schema.StructWithRest(Schema.Struct({ ${propertyRuntimes} }), [${indexRuntimes}])`, `{ ${propertyTypes}${properties.length > 0 ? ", " : ""}${indexTypes} }`);
|
|
423
|
+
}
|
|
424
|
+
case "Union":
|
|
425
|
+
{
|
|
426
|
+
if (representation.types.length === 0) return makeCode("Schema.Never", "never");
|
|
427
|
+
if (representation.types.every(isSimpleLiveLiteral)) {
|
|
428
|
+
const literals = representation.types.map(literal => format(literal.literal));
|
|
429
|
+
return literals.length === 1 ? makeCode(`Schema.Literal(${literals[0]})`, literals[0]) : makeCode(`Schema.Literals([${literals.join(", ")}])`, literals.join(" | "));
|
|
430
|
+
}
|
|
431
|
+
const types = representation.types.map((type, index) => recur(type, [...path, "types", index], includeTypeBrands));
|
|
432
|
+
const mode = representation.mode === "anyOf" ? "" : `, { mode: "oneOf" }`;
|
|
433
|
+
return makeCode(`Schema.Union([${types.map(type => type.runtime).join(", ")}]${mode})`, types.map(type => type.Type).join(" | "));
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
//# sourceMappingURL=toCodeDocument.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toCodeDocument.js","names":["Arr","format","formatPropertyKey","errorWithPath","InternalRecord","InternalAnnotations","makeCode","runtime","Type","renderEmittableAnnotation","input","key","globalThis","Symbol","keyFor","undefined","Array","isArray","values","value","rendered","push","join","entries","Object","renderAnnotations","annotations","annotationExcludedKeys","has","length","sanitizeJavaScriptIdentifier","out","replace","first","toUpperCase","slice","isSimpleLiveLiteral","representation","_tag","checks","topologicalSort","references","identifiers","keys","identifierSet","Set","collectRefs","root","refs","visited","WeakSet","stack","pushRepresentationSchemas","schemas","pushChecks","check","pop","add","$ref","typeParameters","thunk","parts","element","elements","type","rest","property","propertySignatures","signature","indexSignatures","parameter","types","dependencies","Map","map","identifier","recursive","state","visit","current","get","start","indexOf","index","set","dependency","inDegree","dependents","internalDependencies","queue","degree","nonRecursives","dependent","recursives","assignProperty","toCodeDocument","document","artifacts","sorted","sanitizedReferences","uniqueIdentifiers","compilingRecursiveDefinition","explicitSuspendDepth","ensureUniqueIdentifier","code","recur","codes","representations","original","existing","candidate","freshIdentifier","seed","sanitized","suffix","addImport","importDeclaration","some","artifact","addSymbol","symbol","description","annotationSchemas","path","schema","checkBrands","own","collectBrands","toCode","flatMap","runtimeBrands","brands","brand","typeBrands","runtimeAnnotate","method","compileCheck","callback","output","importDeclarations","child","aborted","applyNode","base","includeTypeBrands","nodeBrands","hasOwn","on","typeParameter","literal","enums","name","part","isOptional","item","isArrayNonEmpty","post","properties","isSymbol","isMutable","runtimeName","typeName","propertyRuntimes","propertyTypes","indexRuntimes","indexTypes","every","literals","mode"],"sources":["../../../src/internal/schema/toCodeDocument.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toEquivalence.d.ts","sourceRoot":"","sources":["../../../src/internal/schema/toEquivalence.ts"],"names":[],"mappings":""}
|
|
@@ -4,7 +4,6 @@ import { memoize } from "../../Function.js";
|
|
|
4
4
|
import * as Predicate from "../../Predicate.js";
|
|
5
5
|
import * as SchemaAST from "../../SchemaAST.js";
|
|
6
6
|
import * as SchemaParser from "../../SchemaParser.js";
|
|
7
|
-
import { errorWithPath } from "../errors.js";
|
|
8
7
|
import * as InternalAnnotations from "./annotations.js";
|
|
9
8
|
/** @internal */
|
|
10
9
|
export const toEquivalence = /*#__PURE__*/memoize(ast => {
|
|
@@ -20,7 +19,7 @@ function recur(ast, path) {
|
|
|
20
19
|
}
|
|
21
20
|
switch (ast._tag) {
|
|
22
21
|
case "Never":
|
|
23
|
-
|
|
22
|
+
return Equivalence.strictEqual();
|
|
24
23
|
case "Declaration":
|
|
25
24
|
case "Null":
|
|
26
25
|
case "Undefined":
|
|
@@ -129,17 +128,20 @@ function recur(ast, path) {
|
|
|
129
128
|
});
|
|
130
129
|
}
|
|
131
130
|
case "Union":
|
|
132
|
-
|
|
133
|
-
const
|
|
134
|
-
const
|
|
135
|
-
|
|
136
|
-
const
|
|
137
|
-
|
|
138
|
-
|
|
131
|
+
{
|
|
132
|
+
const types = SchemaAST.toType(ast).types;
|
|
133
|
+
const compiled = new Map(types.map((candidate, i) => [candidate, [SchemaParser._is(candidate), recur(ast.types[i], path)]]));
|
|
134
|
+
return Equivalence.make((a, b) => {
|
|
135
|
+
const candidates = SchemaAST.getCandidates(a, types);
|
|
136
|
+
for (let i = 0; i < candidates.length; i++) {
|
|
137
|
+
const [is, equivalence] = compiled.get(candidates[i]);
|
|
138
|
+
if (is(a) && is(b)) {
|
|
139
|
+
return equivalence(a, b);
|
|
140
|
+
}
|
|
139
141
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
}
|
|
142
|
+
return false;
|
|
143
|
+
});
|
|
144
|
+
}
|
|
143
145
|
case "Suspend":
|
|
144
146
|
{
|
|
145
147
|
const get = SchemaAST.memoizeThunk(() => recur(ast.thunk(), path));
|
|
@@ -147,4 +149,4 @@ function recur(ast, path) {
|
|
|
147
149
|
}
|
|
148
150
|
}
|
|
149
151
|
}
|
|
150
|
-
//# sourceMappingURL=
|
|
152
|
+
//# sourceMappingURL=toEquivalence.js.map
|