effect 4.0.0-beta.2 → 4.0.0-beta.21
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 +127 -299
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +102 -62
- package/dist/Array.js.map +1 -1
- package/dist/Cache.d.ts +2 -2
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +6 -5
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +1 -1
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Channel.d.ts +116 -30
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +82 -37
- package/dist/Channel.js.map +1 -1
- package/dist/Chunk.d.ts +54 -247
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +36 -67
- package/dist/Chunk.js.map +1 -1
- package/dist/Combiner.d.ts +280 -13
- package/dist/Combiner.d.ts.map +1 -1
- package/dist/Combiner.js +198 -7
- package/dist/Combiner.js.map +1 -1
- package/dist/Config.d.ts +165 -9
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +62 -7
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +1 -1
- package/dist/Cron.d.ts +1 -1
- package/dist/Data.d.ts +534 -365
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +132 -79
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +23 -161
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +6 -51
- package/dist/DateTime.js.map +1 -1
- package/dist/Duration.d.ts +12 -12
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +12 -12
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +829 -692
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +263 -251
- package/dist/Effect.js.map +1 -1
- package/dist/Encoding.d.ts +194 -0
- package/dist/Encoding.d.ts.map +1 -0
- package/dist/Encoding.js +352 -0
- package/dist/Encoding.js.map +1 -0
- package/dist/Equal.d.ts +276 -109
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +124 -48
- package/dist/Equal.js.map +1 -1
- package/dist/ErrorReporter.d.ts +376 -0
- package/dist/ErrorReporter.d.ts.map +1 -0
- package/dist/ErrorReporter.js +246 -0
- package/dist/ErrorReporter.js.map +1 -0
- package/dist/Fiber.d.ts +2 -2
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js.map +1 -1
- package/dist/FileSystem.d.ts +1 -1
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +5 -5
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts +30 -34
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +15 -13
- package/dist/Filter.js.map +1 -1
- package/dist/Formatter.d.ts +131 -47
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +229 -51
- package/dist/Formatter.js.map +1 -1
- package/dist/Graph.d.ts +1 -1
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +5 -8
- package/dist/Graph.js.map +1 -1
- package/dist/HashMap.d.ts +15 -14
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +4 -4
- package/dist/HashMap.js.map +1 -1
- package/dist/Iterable.d.ts +40 -39
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +94 -22
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonSchema.d.ts +299 -10
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +323 -4
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Latch.d.ts +109 -0
- package/dist/Latch.d.ts.map +1 -0
- package/dist/Latch.js +72 -0
- package/dist/Latch.js.map +1 -0
- package/dist/Layer.d.ts +9 -9
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts +4 -4
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LogLevel.d.ts +32 -0
- package/dist/LogLevel.d.ts.map +1 -1
- package/dist/LogLevel.js +28 -100
- package/dist/LogLevel.js.map +1 -1
- package/dist/Logger.d.ts +29 -95
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +2 -3
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +1 -1
- package/dist/ManagedRuntime.js +1 -1
- package/dist/Metric.d.ts +2 -2
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +1 -1
- package/dist/Metric.js.map +1 -1
- package/dist/Optic.d.ts +947 -18
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +454 -5
- package/dist/Optic.js.map +1 -1
- package/dist/Option.d.ts +22 -15
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +14 -7
- package/dist/Option.js.map +1 -1
- package/dist/Pipeable.d.ts +17 -0
- package/dist/Pipeable.d.ts.map +1 -1
- package/dist/Pipeable.js +19 -1
- package/dist/Pipeable.js.map +1 -1
- package/dist/PlatformError.d.ts +10 -9
- package/dist/PlatformError.d.ts.map +1 -1
- package/dist/PlatformError.js +2 -2
- package/dist/PlatformError.js.map +1 -1
- package/dist/Pool.d.ts +6 -4
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +7 -5
- package/dist/Pool.js.map +1 -1
- package/dist/PubSub.d.ts +3 -2
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +3 -2
- package/dist/PubSub.js.map +1 -1
- package/dist/Pull.d.ts.map +1 -1
- package/dist/Pull.js +1 -1
- package/dist/Pull.js.map +1 -1
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +0 -1
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts +35 -1
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +46 -12
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +2 -2
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +1 -1
- package/dist/RcMap.js.map +1 -1
- package/dist/RcRef.d.ts +1 -1
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/Record.d.ts +24 -120
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +21 -41
- package/dist/Record.js.map +1 -1
- package/dist/Reducer.d.ts +166 -7
- package/dist/Reducer.d.ts.map +1 -1
- package/dist/Reducer.js +135 -1
- package/dist/Reducer.js.map +1 -1
- package/dist/References.d.ts +3 -3
- package/dist/References.d.ts.map +1 -1
- package/dist/Request.d.ts +1 -1
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js +2 -1
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +6 -26
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +0 -20
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Result.d.ts +12 -0
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +12 -0
- package/dist/Result.js.map +1 -1
- package/dist/Schedule.d.ts +47 -20
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +94 -34
- package/dist/Schedule.js.map +1 -1
- package/dist/Schema.d.ts +266 -50
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +426 -74
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +7 -6
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +2 -2
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +12 -14
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaParser.d.ts +5 -0
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +10 -0
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +44 -43
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +43 -24
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +107 -3
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +159 -4
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/ScopedCache.d.ts +2 -2
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +1 -1
- package/dist/ScopedCache.js.map +1 -1
- package/dist/Semaphore.d.ts +211 -0
- package/dist/Semaphore.d.ts.map +1 -0
- package/dist/{PartitionedSemaphore.js → Semaphore.js} +97 -13
- package/dist/Semaphore.js.map +1 -0
- package/dist/ServiceMap.d.ts +39 -30
- package/dist/ServiceMap.d.ts.map +1 -1
- package/dist/ServiceMap.js +3 -3
- package/dist/ServiceMap.js.map +1 -1
- package/dist/Sink.d.ts +13 -13
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +53 -6
- package/dist/Sink.js.map +1 -1
- package/dist/Stream.d.ts +235 -423
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +124 -77
- package/dist/Stream.js.map +1 -1
- package/dist/Struct.d.ts +16 -0
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +22 -0
- package/dist/Struct.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +2 -1
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +2 -1
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/SynchronizedRef.d.ts +2 -1
- package/dist/SynchronizedRef.d.ts.map +1 -1
- package/dist/SynchronizedRef.js +2 -1
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Trie.d.ts +18 -17
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +5 -5
- package/dist/Trie.js.map +1 -1
- package/dist/TxChunk.d.ts +37 -37
- package/dist/TxChunk.d.ts.map +1 -1
- package/dist/TxChunk.js +3 -3
- package/dist/TxChunk.js.map +1 -1
- package/dist/TxDeferred.d.ts +328 -0
- package/dist/TxDeferred.d.ts.map +1 -0
- package/dist/TxDeferred.js +196 -0
- package/dist/TxDeferred.js.map +1 -0
- package/dist/TxHashMap.d.ts +84 -83
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js +24 -24
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts +35 -35
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js +14 -14
- package/dist/TxHashSet.js.map +1 -1
- package/dist/TxPriorityQueue.d.ts +609 -0
- package/dist/TxPriorityQueue.d.ts.map +1 -0
- package/dist/TxPriorityQueue.js +415 -0
- package/dist/TxPriorityQueue.js.map +1 -0
- package/dist/TxPubSub.d.ts +585 -0
- package/dist/TxPubSub.d.ts.map +1 -0
- package/dist/TxPubSub.js +521 -0
- package/dist/TxPubSub.js.map +1 -0
- package/dist/TxQueue.d.ts +32 -32
- package/dist/TxQueue.d.ts.map +1 -1
- package/dist/TxQueue.js +26 -26
- package/dist/TxQueue.js.map +1 -1
- package/dist/TxReentrantLock.d.ts +523 -0
- package/dist/TxReentrantLock.d.ts.map +1 -0
- package/dist/TxReentrantLock.js +504 -0
- package/dist/TxReentrantLock.js.map +1 -0
- package/dist/TxRef.d.ts +34 -34
- package/dist/TxRef.d.ts.map +1 -1
- package/dist/TxRef.js +21 -14
- package/dist/TxRef.js.map +1 -1
- package/dist/TxSemaphore.d.ts +8 -8
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +7 -7
- package/dist/TxSemaphore.js.map +1 -1
- package/dist/TxSubscriptionRef.d.ts +508 -0
- package/dist/TxSubscriptionRef.d.ts.map +1 -0
- package/dist/TxSubscriptionRef.js +293 -0
- package/dist/TxSubscriptionRef.js.map +1 -0
- package/dist/Types.d.ts +84 -6
- package/dist/Types.d.ts.map +1 -1
- package/dist/index.d.ts +591 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +591 -20
- package/dist/index.js.map +1 -1
- package/dist/internal/core.js +11 -3
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/dateTime.js +3 -11
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/effect.js +263 -99
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/hashMap.js +5 -4
- package/dist/internal/hashMap.js.map +1 -1
- package/dist/internal/random.d.ts +2 -0
- package/dist/internal/random.d.ts.map +1 -0
- package/dist/internal/random.js +13 -0
- package/dist/internal/random.js.map +1 -0
- package/dist/internal/rcRef.js +3 -2
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/internal/request.js +2 -2
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/schema/annotations.js +2 -0
- package/dist/internal/schema/annotations.js.map +1 -1
- package/dist/internal/schema/schema.js +1 -0
- package/dist/internal/schema/schema.js.map +1 -1
- package/dist/internal/trie.js +5 -4
- package/dist/internal/trie.js.map +1 -1
- package/dist/testing/TestClock.d.ts +7 -6
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +6 -4
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +8 -8
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +128 -48
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +11 -12
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +3 -3
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +4 -3
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +4 -2
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +86 -14
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +163 -87
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +49 -12
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +1 -1
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +35 -7
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Model.d.ts +25 -7
- package/dist/unstable/ai/Model.d.ts.map +1 -1
- package/dist/unstable/ai/Model.js +22 -6
- package/dist/unstable/ai/Model.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +20 -20
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Response.d.ts +26 -26
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +1 -1
- package/dist/unstable/ai/Response.js.map +1 -1
- package/dist/unstable/ai/Tool.d.ts +19 -3
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +14 -9
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/ai/index.d.ts +1 -1
- package/dist/unstable/ai/index.js +1 -1
- package/dist/unstable/cli/CliError.d.ts +5 -5
- package/dist/unstable/cli/CliOutput.js +59 -6
- package/dist/unstable/cli/CliOutput.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +276 -19
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +234 -36
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/GlobalFlag.d.ts +125 -0
- package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -0
- package/dist/unstable/cli/GlobalFlag.js +118 -0
- package/dist/unstable/cli/GlobalFlag.js.map +1 -0
- package/dist/unstable/cli/HelpDoc.d.ts +70 -2
- package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
- package/dist/unstable/cli/index.d.ts +4 -0
- package/dist/unstable/cli/index.d.ts.map +1 -1
- package/dist/unstable/cli/index.js +4 -0
- package/dist/unstable/cli/index.js.map +1 -1
- package/dist/unstable/cli/internal/command.d.ts +17 -8
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.js +32 -23
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/completions/CommandDescriptor.js +7 -2
- package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +1 -1
- package/dist/unstable/cli/internal/help.d.ts +33 -0
- package/dist/unstable/cli/internal/help.d.ts.map +1 -0
- package/dist/unstable/cli/internal/help.js +107 -0
- package/dist/unstable/cli/internal/help.js.map +1 -0
- package/dist/unstable/cli/internal/parser.js +29 -36
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js +1 -1
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +4 -3
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +7 -6
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/EntityResource.d.ts +2 -2
- package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
- package/dist/unstable/cluster/Envelope.d.ts +1 -1
- package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js +4 -4
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/Message.d.ts +10 -10
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +2 -1
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +6 -6
- package/dist/unstable/cluster/Runner.d.ts +1 -1
- package/dist/unstable/cluster/Runners.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.js +4 -3
- package/dist/unstable/cluster/Runners.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts +2 -2
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +9 -7
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +21 -21
- package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.js +20 -20
- package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +5 -4
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/cluster/internal/entityReaper.js +2 -1
- package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceRef.js +2 -1
- package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.d.ts +36 -36
- package/dist/unstable/encoding/Msgpack.d.ts +1 -1
- package/dist/unstable/encoding/Ndjson.d.ts +1 -1
- package/dist/unstable/encoding/Sse.d.ts +4 -4
- package/dist/unstable/encoding/Sse.d.ts.map +1 -1
- package/dist/unstable/encoding/Sse.js +1 -1
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +2 -1
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
- package/dist/unstable/http/Cookies.d.ts +3 -3
- package/dist/unstable/http/Cookies.d.ts.map +1 -1
- package/dist/unstable/http/Cookies.js +2 -2
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/Headers.d.ts.map +1 -1
- package/dist/unstable/http/Headers.js +27 -10
- package/dist/unstable/http/Headers.js.map +1 -1
- package/dist/unstable/http/HttpBody.d.ts +17 -2
- package/dist/unstable/http/HttpBody.d.ts.map +1 -1
- package/dist/unstable/http/HttpBody.js +28 -1
- package/dist/unstable/http/HttpBody.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +37 -13
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +4 -4
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientError.d.ts +7 -7
- package/dist/unstable/http/HttpClientRequest.d.ts +27 -11
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +15 -3
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts +3 -8
- package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
- package/dist/unstable/http/HttpEffect.js +42 -56
- package/dist/unstable/http/HttpEffect.js.map +1 -1
- package/dist/unstable/http/HttpMethod.d.ts +4 -4
- package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
- package/dist/unstable/http/HttpMethod.js +3 -3
- package/dist/unstable/http/HttpMethod.js.map +1 -1
- package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
- package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/unstable/http/HttpMiddleware.js +8 -17
- package/dist/unstable/http/HttpMiddleware.js.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +20 -33
- package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerError.js +37 -44
- package/dist/unstable/http/HttpServerError.js.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
- package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.js +5 -5
- package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts +2 -1
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +3 -1
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +3 -3
- package/dist/unstable/http/UrlParams.d.ts +14 -6
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +1 -1
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/http/internal/preResponseHandler.d.ts +2 -0
- package/dist/unstable/http/internal/preResponseHandler.d.ts.map +1 -0
- package/dist/unstable/http/internal/preResponseHandler.js +10 -0
- package/dist/unstable/http/internal/preResponseHandler.js.map +1 -0
- package/dist/unstable/httpapi/HttpApi.d.ts +3 -3
- package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts +11 -5
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +23 -12
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts +7 -2
- package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +3 -3
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +31 -44
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.js +15 -24
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +11 -0
- package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.js +29 -9
- package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.d.ts +3 -3
- package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +4 -4
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
- package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts +2 -2
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +32 -21
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/observability/Otlp.d.ts +12 -12
- package/dist/unstable/observability/Otlp.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +1 -1
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
- package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpLogger.js +7 -4
- package/dist/unstable/observability/OtlpLogger.js.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
- package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
- package/dist/unstable/persistence/KeyValueStore.js +6 -6
- package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
- package/dist/unstable/persistence/Persistable.d.ts +2 -2
- package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
- package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedCache.js +2 -1
- package/dist/unstable/persistence/PersistedCache.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
- package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.js +12 -11
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/Persistence.d.ts +1 -1
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +2 -2
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +1 -1
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/process/ChildProcess.d.ts +5 -128
- package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcess.js +1 -65
- package/dist/unstable/process/ChildProcess.js.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts +45 -7
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js +21 -1
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +10 -10
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +16 -13
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +8 -8
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +3 -3
- package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.d.ts +6 -0
- package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +24 -7
- package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +1 -1
- package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
- package/dist/unstable/reactivity/Hydration.d.ts +39 -0
- package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
- package/dist/unstable/reactivity/Hydration.js +76 -0
- package/dist/unstable/reactivity/Hydration.js.map +1 -0
- package/dist/unstable/reactivity/index.d.ts +4 -0
- package/dist/unstable/reactivity/index.d.ts.map +1 -1
- package/dist/unstable/reactivity/index.js +4 -0
- package/dist/unstable/reactivity/index.js.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts +4 -4
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/Rpc.js.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts +5 -26
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +6 -13
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcGroup.d.ts +2 -2
- package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcGroup.js.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.d.ts +3 -3
- package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
- package/dist/unstable/rpc/RpcSchema.d.ts +13 -0
- package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSchema.js +14 -0
- package/dist/unstable/rpc/RpcSchema.js.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.js +34 -9
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts +0 -7
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +15 -15
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/rpc/Utils.d.ts.map +1 -1
- package/dist/unstable/rpc/Utils.js +2 -1
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/schema/Model.d.ts +1 -1
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +3 -3
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.js +3 -3
- package/dist/unstable/schema/VariantSchema.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +4 -4
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +6 -5
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/socket/SocketServer.d.ts +3 -3
- package/dist/unstable/sql/Migrator.d.ts +1 -1
- package/dist/unstable/sql/SqlClient.d.ts +1 -1
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlError.d.ts +14 -14
- package/dist/unstable/sql/SqlError.d.ts.map +1 -1
- package/dist/unstable/sql/SqlError.js +9 -3
- package/dist/unstable/sql/SqlError.js.map +1 -1
- package/dist/unstable/sql/SqlModel.d.ts +2 -2
- package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
- package/dist/unstable/sql/SqlModel.js +3 -3
- package/dist/unstable/sql/SqlModel.js.map +1 -1
- package/dist/unstable/sql/SqlSchema.d.ts +16 -5
- package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
- package/dist/unstable/sql/SqlSchema.js +17 -7
- package/dist/unstable/sql/SqlSchema.js.map +1 -1
- package/dist/unstable/sql/Statement.js +0 -1
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts.map +1 -1
- package/dist/unstable/workers/Worker.js +2 -1
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts +3 -3
- package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableClock.js +3 -3
- package/dist/unstable/workflow/DurableClock.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js +2 -2
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +3 -3
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +1 -1
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +12 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +137 -1
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +2 -2
- package/src/Array.ts +190 -342
- package/src/Cache.ts +9 -8
- package/src/Cause.ts +1 -1
- package/src/Channel.ts +554 -138
- package/src/Chunk.ts +81 -268
- package/src/Combiner.ts +280 -13
- package/src/Config.ts +183 -21
- package/src/Data.ts +538 -374
- package/src/DateTime.ts +24 -164
- package/src/Duration.ts +15 -15
- package/src/Effect.ts +991 -800
- package/src/Encoding.ts +879 -0
- package/src/Equal.ts +278 -111
- package/src/ErrorReporter.ts +459 -0
- package/src/Fiber.ts +9 -2
- package/src/FileSystem.ts +7 -8
- package/src/Filter.ts +48 -58
- package/src/Formatter.ts +253 -51
- package/src/Graph.ts +24 -11
- package/src/HashMap.ts +15 -14
- package/src/Iterable.ts +105 -50
- package/src/JsonSchema.ts +383 -10
- package/src/Latch.ts +112 -0
- package/src/Layer.ts +11 -15
- package/src/LayerMap.ts +5 -5
- package/src/LogLevel.ts +37 -0
- package/src/Logger.ts +33 -100
- package/src/ManagedRuntime.ts +1 -1
- package/src/Metric.ts +4 -4
- package/src/Optic.ts +948 -19
- package/src/Option.ts +30 -20
- package/src/Pipeable.ts +32 -1
- package/src/PlatformError.ts +5 -5
- package/src/Pool.ts +13 -11
- package/src/PubSub.ts +10 -9
- package/src/Pull.ts +1 -1
- package/src/Queue.ts +0 -1
- package/src/Random.ts +51 -14
- package/src/RcMap.ts +5 -5
- package/src/RcRef.ts +1 -1
- package/src/Record.ts +43 -152
- package/src/Reducer.ts +166 -7
- package/src/References.ts +4 -4
- package/src/Request.ts +3 -2
- package/src/RequestResolver.ts +9 -29
- package/src/Result.ts +13 -0
- package/src/Schedule.ts +318 -160
- package/src/Schema.ts +661 -116
- package/src/SchemaAST.ts +7 -6
- package/src/SchemaGetter.ts +12 -14
- package/src/SchemaParser.ts +11 -0
- package/src/SchemaRepresentation.ts +43 -24
- package/src/SchemaTransformation.ts +189 -4
- package/src/ScopedCache.ts +3 -3
- package/src/Semaphore.ts +356 -0
- package/src/ServiceMap.ts +47 -38
- package/src/Sink.ts +78 -26
- package/src/Stream.ts +566 -601
- package/src/Struct.ts +26 -0
- package/src/SubscriptionRef.ts +3 -2
- package/src/SynchronizedRef.ts +3 -2
- package/src/Trie.ts +18 -17
- package/src/TxChunk.ts +72 -53
- package/src/TxDeferred.ts +394 -0
- package/src/TxHashMap.ts +332 -285
- package/src/TxHashSet.ts +111 -116
- package/src/TxPriorityQueue.ts +767 -0
- package/src/TxPubSub.ts +789 -0
- package/src/TxQueue.ts +241 -251
- package/src/TxReentrantLock.ts +753 -0
- package/src/TxRef.ts +50 -38
- package/src/TxSemaphore.ts +29 -32
- package/src/TxSubscriptionRef.ts +639 -0
- package/src/Types.ts +78 -2
- package/src/index.ts +600 -21
- package/src/internal/core.ts +12 -5
- package/src/internal/dateTime.ts +9 -30
- package/src/internal/effect.ts +744 -265
- package/src/internal/hashMap.ts +9 -7
- package/src/internal/random.ts +20 -0
- package/src/internal/rcRef.ts +4 -3
- package/src/internal/request.ts +2 -2
- package/src/internal/schema/annotations.ts +2 -0
- package/src/internal/schema/schema.ts +1 -0
- package/src/internal/trie.ts +16 -9
- package/src/testing/TestClock.ts +13 -11
- package/src/testing/TestSchema.ts +10 -10
- package/src/unstable/ai/AiError.ts +97 -44
- package/src/unstable/ai/Chat.ts +12 -11
- package/src/unstable/ai/LanguageModel.ts +129 -25
- package/src/unstable/ai/McpSchema.ts +59 -13
- package/src/unstable/ai/McpServer.ts +48 -9
- package/src/unstable/ai/Model.ts +40 -9
- package/src/unstable/ai/Prompt.ts +37 -37
- package/src/unstable/ai/Response.ts +25 -25
- package/src/unstable/ai/Tool.ts +19 -13
- package/src/unstable/ai/index.ts +1 -1
- package/src/unstable/cli/CliOutput.ts +75 -6
- package/src/unstable/cli/Command.ts +501 -60
- package/src/unstable/cli/GlobalFlag.ts +243 -0
- package/src/unstable/cli/HelpDoc.ts +80 -2
- package/src/unstable/cli/index.ts +5 -0
- package/src/unstable/cli/internal/command.ts +50 -34
- package/src/unstable/cli/internal/completions/CommandDescriptor.ts +7 -2
- package/src/unstable/cli/internal/help.ts +146 -0
- package/src/unstable/cli/internal/parser.ts +33 -54
- package/src/unstable/cluster/ClusterCron.ts +2 -2
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +5 -4
- package/src/unstable/cluster/Entity.ts +11 -10
- package/src/unstable/cluster/EntityResource.ts +4 -4
- package/src/unstable/cluster/Envelope.ts +1 -1
- package/src/unstable/cluster/K8sHttpClient.ts +5 -5
- package/src/unstable/cluster/MessageStorage.ts +3 -5
- package/src/unstable/cluster/Runners.ts +6 -5
- package/src/unstable/cluster/Sharding.ts +12 -10
- package/src/unstable/cluster/ShardingConfig.ts +30 -31
- package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
- package/src/unstable/cluster/internal/entityManager.ts +9 -8
- package/src/unstable/cluster/internal/entityReaper.ts +2 -1
- package/src/unstable/cluster/internal/resourceRef.ts +2 -1
- package/src/unstable/encoding/Sse.ts +3 -5
- package/src/unstable/eventlog/EventLog.ts +2 -1
- package/src/unstable/http/Cookies.ts +3 -3
- package/src/unstable/http/Headers.ts +28 -13
- package/src/unstable/http/HttpBody.ts +42 -1
- package/src/unstable/http/HttpClient.ts +58 -23
- package/src/unstable/http/HttpClientRequest.ts +38 -13
- package/src/unstable/http/HttpEffect.ts +46 -68
- package/src/unstable/http/HttpMethod.ts +16 -4
- package/src/unstable/http/HttpMiddleware.ts +9 -24
- package/src/unstable/http/HttpServerError.ts +42 -45
- package/src/unstable/http/HttpServerRequest.ts +1 -1
- package/src/unstable/http/HttpServerRespondable.ts +6 -6
- package/src/unstable/http/HttpServerResponse.ts +4 -2
- package/src/unstable/http/Multipart.ts +2 -2
- package/src/unstable/http/UrlParams.ts +20 -5
- package/src/unstable/http/internal/preResponseHandler.ts +15 -0
- package/src/unstable/httpapi/HttpApi.ts +5 -5
- package/src/unstable/httpapi/HttpApiBuilder.ts +77 -21
- package/src/unstable/httpapi/HttpApiClient.ts +14 -6
- package/src/unstable/httpapi/HttpApiEndpoint.ts +67 -83
- package/src/unstable/httpapi/HttpApiError.ts +30 -9
- package/src/unstable/httpapi/HttpApiGroup.ts +6 -6
- package/src/unstable/httpapi/HttpApiMiddleware.ts +4 -4
- package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
- package/src/unstable/httpapi/HttpApiSecurity.ts +3 -3
- package/src/unstable/httpapi/OpenApi.ts +41 -23
- package/src/unstable/observability/Otlp.ts +12 -12
- package/src/unstable/observability/OtlpExporter.ts +3 -3
- package/src/unstable/observability/OtlpLogger.ts +13 -9
- package/src/unstable/observability/OtlpMetrics.ts +4 -4
- package/src/unstable/observability/OtlpTracer.ts +4 -4
- package/src/unstable/persistence/KeyValueStore.ts +6 -6
- package/src/unstable/persistence/Persistable.ts +2 -2
- package/src/unstable/persistence/PersistedCache.ts +20 -9
- package/src/unstable/persistence/PersistedQueue.ts +25 -24
- package/src/unstable/persistence/Persistence.ts +3 -3
- package/src/unstable/persistence/RateLimiter.ts +4 -4
- package/src/unstable/process/ChildProcess.ts +6 -208
- package/src/unstable/process/ChildProcessSpawner.ts +75 -14
- package/src/unstable/reactivity/Atom.ts +27 -25
- package/src/unstable/reactivity/AtomHttpApi.ts +21 -20
- package/src/unstable/reactivity/AtomRegistry.ts +31 -7
- package/src/unstable/reactivity/AtomRpc.ts +3 -3
- package/src/unstable/reactivity/Hydration.ts +112 -0
- package/src/unstable/reactivity/index.ts +5 -0
- package/src/unstable/rpc/Rpc.ts +6 -6
- package/src/unstable/rpc/RpcClient.ts +12 -54
- package/src/unstable/rpc/RpcGroup.ts +4 -4
- package/src/unstable/rpc/RpcMiddleware.ts +3 -3
- package/src/unstable/rpc/RpcSchema.ts +17 -0
- package/src/unstable/rpc/RpcSerialization.ts +44 -9
- package/src/unstable/rpc/RpcServer.ts +21 -30
- package/src/unstable/rpc/Utils.ts +2 -1
- package/src/unstable/schema/VariantSchema.ts +6 -6
- package/src/unstable/socket/Socket.ts +16 -17
- package/src/unstable/sql/SqlClient.ts +1 -1
- package/src/unstable/sql/SqlError.ts +11 -9
- package/src/unstable/sql/SqlModel.ts +5 -5
- package/src/unstable/sql/SqlSchema.ts +41 -25
- package/src/unstable/sql/Statement.ts +0 -1
- package/src/unstable/workers/Worker.ts +2 -1
- package/src/unstable/workflow/DurableClock.ts +8 -8
- package/src/unstable/workflow/DurableDeferred.ts +2 -2
- package/src/unstable/workflow/Workflow.ts +6 -2
- package/src/unstable/workflow/WorkflowEngine.ts +185 -2
- package/dist/PartitionedSemaphore.d.ts +0 -52
- package/dist/PartitionedSemaphore.d.ts.map +0 -1
- package/dist/PartitionedSemaphore.js.map +0 -1
- package/dist/encoding/Base64.d.ts +0 -67
- package/dist/encoding/Base64.d.ts.map +0 -1
- package/dist/encoding/Base64.js +0 -146
- package/dist/encoding/Base64.js.map +0 -1
- package/dist/encoding/Base64Url.d.ts +0 -60
- package/dist/encoding/Base64Url.d.ts.map +0 -1
- package/dist/encoding/Base64Url.js +0 -89
- package/dist/encoding/Base64Url.js.map +0 -1
- package/dist/encoding/EncodingError.d.ts +0 -31
- package/dist/encoding/EncodingError.d.ts.map +0 -1
- package/dist/encoding/EncodingError.js +0 -22
- package/dist/encoding/EncodingError.js.map +0 -1
- package/dist/encoding/Hex.d.ts +0 -61
- package/dist/encoding/Hex.d.ts.map +0 -1
- package/dist/encoding/Hex.js +0 -115
- package/dist/encoding/Hex.js.map +0 -1
- package/dist/encoding/index.d.ts +0 -26
- package/dist/encoding/index.d.ts.map +0 -1
- package/dist/encoding/index.js +0 -27
- package/dist/encoding/index.js.map +0 -1
- package/dist/unstable/cli/internal/builtInFlags.d.ts +0 -7
- package/dist/unstable/cli/internal/builtInFlags.d.ts.map +0 -1
- package/dist/unstable/cli/internal/builtInFlags.js +0 -44
- package/dist/unstable/cli/internal/builtInFlags.js.map +0 -1
- package/src/PartitionedSemaphore.ts +0 -182
- package/src/encoding/Base64.ts +0 -366
- package/src/encoding/Base64Url.ts +0 -104
- package/src/encoding/EncodingError.ts +0 -35
- package/src/encoding/Hex.ts +0 -390
- package/src/encoding/index.ts +0 -31
- package/src/unstable/cli/internal/builtInFlags.ts +0 -78
package/src/JsonSchema.ts
CHANGED
|
@@ -1,4 +1,87 @@
|
|
|
1
1
|
/**
|
|
2
|
+
* Convert JSON Schema documents between dialects (Draft-07, Draft-2020-12,
|
|
3
|
+
* OpenAPI 3.0, OpenAPI 3.1). All dialects are normalized to an internal
|
|
4
|
+
* `Document<"draft-2020-12">` representation before optional conversion to
|
|
5
|
+
* an output dialect.
|
|
6
|
+
*
|
|
7
|
+
* ## Mental model
|
|
8
|
+
*
|
|
9
|
+
* - **JsonSchema** — a plain object with string keys; represents any single
|
|
10
|
+
* JSON Schema node.
|
|
11
|
+
* - **Dialect** — one of `"draft-07"`, `"draft-2020-12"`, `"openapi-3.1"`,
|
|
12
|
+
* or `"openapi-3.0"`.
|
|
13
|
+
* - **Document** — a structured container holding a root `schema`, its
|
|
14
|
+
* companion `definitions`, and the target `dialect`. Definitions are
|
|
15
|
+
* stored separately from the root schema so they can be relocated when
|
|
16
|
+
* converting between dialects.
|
|
17
|
+
* - **MultiDocument** — same as `Document` but carries multiple root
|
|
18
|
+
* schemas (at least one). Useful when generating several schemas that
|
|
19
|
+
* share a single definitions pool.
|
|
20
|
+
* - **Definitions** — a `Record<string, JsonSchema>` keyed by definition
|
|
21
|
+
* name. The ref pointer prefix depends on the dialect.
|
|
22
|
+
* - **`from*` functions** — parse a raw JSON Schema object into the
|
|
23
|
+
* canonical `Document<"draft-2020-12">`.
|
|
24
|
+
* - **`to*` functions** — convert from the canonical representation to a
|
|
25
|
+
* specific output dialect.
|
|
26
|
+
*
|
|
27
|
+
* ## Common tasks
|
|
28
|
+
*
|
|
29
|
+
* - Parse a Draft-07 schema → {@link fromSchemaDraft07}
|
|
30
|
+
* - Parse a Draft-2020-12 schema → {@link fromSchemaDraft2020_12}
|
|
31
|
+
* - Parse an OpenAPI 3.1 schema → {@link fromSchemaOpenApi3_1}
|
|
32
|
+
* - Parse an OpenAPI 3.0 schema → {@link fromSchemaOpenApi3_0}
|
|
33
|
+
* - Convert to Draft-07 output → {@link toDocumentDraft07}
|
|
34
|
+
* - Convert to OpenAPI 3.1 output → {@link toMultiDocumentOpenApi3_1}
|
|
35
|
+
* - Resolve a `$ref` against definitions → {@link resolve$ref}
|
|
36
|
+
* - Inline the root `$ref` of a document → {@link resolveTopLevel$ref}
|
|
37
|
+
*
|
|
38
|
+
* ## Gotchas
|
|
39
|
+
*
|
|
40
|
+
* - All `from*` functions normalize to `Document<"draft-2020-12">`
|
|
41
|
+
* regardless of the input dialect.
|
|
42
|
+
* - Unsupported or unrecognized JSON Schema keywords are silently dropped
|
|
43
|
+
* during conversion.
|
|
44
|
+
* - Draft-07 tuple syntax (`items` as array + `additionalItems`) is
|
|
45
|
+
* converted to 2020-12 form (`prefixItems` + `items`), and vice-versa.
|
|
46
|
+
* - OpenAPI 3.0 `nullable: true` is expanded into `type` arrays or
|
|
47
|
+
* `anyOf` unions. The `nullable` keyword is removed.
|
|
48
|
+
* - OpenAPI 3.0 singular `example` is converted to `examples` (array).
|
|
49
|
+
* - {@link resolve$ref} only looks up the last segment of the ref path in
|
|
50
|
+
* the definitions map; it does not follow arbitrary JSON Pointer paths.
|
|
51
|
+
*
|
|
52
|
+
* ## Quickstart
|
|
53
|
+
*
|
|
54
|
+
* **Example** (Parse a Draft-07 schema and convert to Draft-07 output)
|
|
55
|
+
*
|
|
56
|
+
* ```ts
|
|
57
|
+
* import { JsonSchema } from "effect"
|
|
58
|
+
*
|
|
59
|
+
* const raw: JsonSchema.JsonSchema = {
|
|
60
|
+
* type: "object",
|
|
61
|
+
* properties: {
|
|
62
|
+
* name: { type: "string" }
|
|
63
|
+
* },
|
|
64
|
+
* required: ["name"]
|
|
65
|
+
* }
|
|
66
|
+
*
|
|
67
|
+
* // Parse into canonical form
|
|
68
|
+
* const doc = JsonSchema.fromSchemaDraft07(raw)
|
|
69
|
+
*
|
|
70
|
+
* // Convert back to Draft-07
|
|
71
|
+
* const draft07 = JsonSchema.toDocumentDraft07(doc)
|
|
72
|
+
*
|
|
73
|
+
* console.log(draft07.dialect) // "draft-07"
|
|
74
|
+
* console.log(draft07.schema) // { type: "object", properties: { name: { type: "string" } }, required: ["name"] }
|
|
75
|
+
* ```
|
|
76
|
+
*
|
|
77
|
+
* ## See also
|
|
78
|
+
*
|
|
79
|
+
* - {@link Document}
|
|
80
|
+
* - {@link MultiDocument}
|
|
81
|
+
* - {@link fromSchemaDraft07}
|
|
82
|
+
* - {@link toDocumentDraft07}
|
|
83
|
+
* - {@link resolve$ref}
|
|
84
|
+
*
|
|
2
85
|
* @since 4.0.0
|
|
3
86
|
*/
|
|
4
87
|
import * as Arr from "./Array.ts"
|
|
@@ -7,6 +90,12 @@ import * as Predicate from "./Predicate.ts"
|
|
|
7
90
|
import * as Rec from "./Record.ts"
|
|
8
91
|
|
|
9
92
|
/**
|
|
93
|
+
* A plain object representing a single JSON Schema node.
|
|
94
|
+
*
|
|
95
|
+
* This is an open record type (`[x: string]: unknown`) so it can hold any
|
|
96
|
+
* JSON Schema keyword. Most functions in this module accept or return this
|
|
97
|
+
* type.
|
|
98
|
+
*
|
|
10
99
|
* @since 4.0.0
|
|
11
100
|
*/
|
|
12
101
|
export interface JsonSchema {
|
|
@@ -14,27 +103,65 @@ export interface JsonSchema {
|
|
|
14
103
|
}
|
|
15
104
|
|
|
16
105
|
/**
|
|
106
|
+
* The set of JSON Schema dialects supported by this module.
|
|
107
|
+
*
|
|
108
|
+
* - `"draft-07"` — JSON Schema Draft-07
|
|
109
|
+
* - `"draft-2020-12"` — JSON Schema Draft 2020-12 (canonical internal form)
|
|
110
|
+
* - `"openapi-3.1"` — OpenAPI 3.1 (uses Draft 2020-12 as its schema dialect)
|
|
111
|
+
* - `"openapi-3.0"` — OpenAPI 3.0 (uses a Draft-04/07 subset with extensions)
|
|
112
|
+
*
|
|
17
113
|
* @since 4.0.0
|
|
18
114
|
*/
|
|
19
115
|
export type Dialect = "draft-07" | "draft-2020-12" | "openapi-3.1" | "openapi-3.0"
|
|
20
116
|
|
|
21
117
|
/**
|
|
118
|
+
* The JSON Schema primitive type names.
|
|
119
|
+
*
|
|
22
120
|
* @since 4.0.0
|
|
23
121
|
*/
|
|
24
122
|
export type Type = "string" | "number" | "boolean" | "array" | "object" | "null" | "integer"
|
|
25
123
|
|
|
26
124
|
/**
|
|
125
|
+
* A record of named JSON Schema definitions, keyed by definition name.
|
|
126
|
+
*
|
|
27
127
|
* @since 4.0.0
|
|
28
128
|
*/
|
|
29
129
|
export interface Definitions extends Record<string, JsonSchema> {}
|
|
30
130
|
|
|
31
131
|
/**
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
132
|
+
* A structured container for a single JSON Schema and its associated
|
|
133
|
+
* definitions.
|
|
134
|
+
*
|
|
135
|
+
* - Use when you need to carry a root schema together with its
|
|
136
|
+
* shared definitions.
|
|
137
|
+
* - Use when converting between dialects via the `from*` / `to*` functions.
|
|
138
|
+
*
|
|
139
|
+
* The `schema` field holds the root schema *without* the definitions
|
|
140
|
+
* collection. Root definitions are stored separately in `definitions` and
|
|
141
|
+
* referenced via:
|
|
142
|
+
* - `#/$defs/<name>` for Draft-2020-12
|
|
143
|
+
* - `#/definitions/<name>` for Draft-07
|
|
144
|
+
* - `#/components/schemas/<name>` for OpenAPI 3.1 and OpenAPI 3.0
|
|
145
|
+
*
|
|
146
|
+
* **Example** (Inspecting a parsed document)
|
|
147
|
+
*
|
|
148
|
+
* ```ts
|
|
149
|
+
* import { JsonSchema } from "effect"
|
|
150
|
+
*
|
|
151
|
+
* const raw: JsonSchema.JsonSchema = {
|
|
152
|
+
* type: "string",
|
|
153
|
+
* $defs: { Trimmed: { type: "string", minLength: 1 } }
|
|
154
|
+
* }
|
|
155
|
+
*
|
|
156
|
+
* const doc = JsonSchema.fromSchemaDraft2020_12(raw)
|
|
157
|
+
*
|
|
158
|
+
* console.log(doc.dialect) // "draft-2020-12"
|
|
159
|
+
* console.log(doc.schema) // { type: "string" }
|
|
160
|
+
* console.log(doc.definitions) // { Trimmed: { type: "string", minLength: 1 } }
|
|
161
|
+
* ```
|
|
162
|
+
*
|
|
163
|
+
* @see {@link MultiDocument}
|
|
164
|
+
* @see {@link fromSchemaDraft2020_12}
|
|
38
165
|
*
|
|
39
166
|
* @since 4.0.0
|
|
40
167
|
*/
|
|
@@ -45,6 +172,16 @@ export interface Document<D extends Dialect> {
|
|
|
45
172
|
}
|
|
46
173
|
|
|
47
174
|
/**
|
|
175
|
+
* Like {@link Document}, but carries multiple root schemas that share a
|
|
176
|
+
* single definitions pool. The `schemas` tuple is non-empty (at least one
|
|
177
|
+
* element).
|
|
178
|
+
*
|
|
179
|
+
* - Use when generating several schemas (e.g. request body + response body)
|
|
180
|
+
* that reference the same set of definitions.
|
|
181
|
+
*
|
|
182
|
+
* @see {@link Document}
|
|
183
|
+
* @see {@link toMultiDocumentOpenApi3_1}
|
|
184
|
+
*
|
|
48
185
|
* @since 4.0.0
|
|
49
186
|
*/
|
|
50
187
|
export interface MultiDocument<D extends Dialect> {
|
|
@@ -54,11 +191,15 @@ export interface MultiDocument<D extends Dialect> {
|
|
|
54
191
|
}
|
|
55
192
|
|
|
56
193
|
/**
|
|
194
|
+
* The `$schema` meta-schema URI for JSON Schema Draft-07.
|
|
195
|
+
*
|
|
57
196
|
* @since 4.0.0
|
|
58
197
|
*/
|
|
59
198
|
export const META_SCHEMA_URI_DRAFT_07 = "http://json-schema.org/draft-07/schema"
|
|
60
199
|
|
|
61
200
|
/**
|
|
201
|
+
* The `$schema` meta-schema URI for JSON Schema Draft 2020-12.
|
|
202
|
+
*
|
|
62
203
|
* @since 4.0.0
|
|
63
204
|
*/
|
|
64
205
|
export const META_SCHEMA_URI_DRAFT_2020_12 = "https://json-schema.org/draft/2020-12/schema"
|
|
@@ -68,6 +209,40 @@ const RE_DEFS = /^#\/\$defs(?=\/|$)/
|
|
|
68
209
|
const RE_COMPONENTS_SCHEMAS = /^#\/components\/schemas(?=\/|$)/
|
|
69
210
|
|
|
70
211
|
/**
|
|
212
|
+
* Parses a raw Draft-07 JSON Schema into a `Document<"draft-2020-12">`.
|
|
213
|
+
*
|
|
214
|
+
* - Use when you have a JSON Schema that follows Draft-07 conventions.
|
|
215
|
+
* - Converts Draft-07 tuple syntax (`items` as array + `additionalItems`)
|
|
216
|
+
* to Draft-2020-12 form (`prefixItems` + `items`).
|
|
217
|
+
* - Rewrites `#/definitions/...` refs to `#/$defs/...`.
|
|
218
|
+
* - Extracts root-level `definitions` into the `definitions` field.
|
|
219
|
+
* - Does not mutate the input. Allocates a new `Document`.
|
|
220
|
+
* - Unsupported keywords (e.g. `if`/`then`/`else`, `$id`) are dropped.
|
|
221
|
+
*
|
|
222
|
+
* **Example** (Parsing a Draft-07 schema)
|
|
223
|
+
*
|
|
224
|
+
* ```ts
|
|
225
|
+
* import { JsonSchema } from "effect"
|
|
226
|
+
*
|
|
227
|
+
* const raw: JsonSchema.JsonSchema = {
|
|
228
|
+
* type: "object",
|
|
229
|
+
* properties: {
|
|
230
|
+
* tags: {
|
|
231
|
+
* type: "array",
|
|
232
|
+
* items: { type: "string" }
|
|
233
|
+
* }
|
|
234
|
+
* }
|
|
235
|
+
* }
|
|
236
|
+
*
|
|
237
|
+
* const doc = JsonSchema.fromSchemaDraft07(raw)
|
|
238
|
+
* console.log(doc.dialect) // "draft-2020-12"
|
|
239
|
+
* console.log(doc.schema.properties) // { tags: { type: "array", items: { type: "string" } } }
|
|
240
|
+
* ```
|
|
241
|
+
*
|
|
242
|
+
* @see {@link fromSchemaDraft2020_12}
|
|
243
|
+
* @see {@link fromSchemaOpenApi3_0}
|
|
244
|
+
* @see {@link toDocumentDraft07}
|
|
245
|
+
*
|
|
71
246
|
* @since 4.0.0
|
|
72
247
|
*/
|
|
73
248
|
export function fromSchemaDraft07(js: JsonSchema): Document<"draft-2020-12"> {
|
|
@@ -179,6 +354,32 @@ export function fromSchemaDraft07(js: JsonSchema): Document<"draft-2020-12"> {
|
|
|
179
354
|
}
|
|
180
355
|
|
|
181
356
|
/**
|
|
357
|
+
* Parses a raw Draft-2020-12 JSON Schema into a `Document<"draft-2020-12">`.
|
|
358
|
+
*
|
|
359
|
+
* - Use when you already have a schema in Draft-2020-12 format.
|
|
360
|
+
* - Separates `$defs` from the root schema into the `definitions` field.
|
|
361
|
+
* - Does not mutate the input. Allocates a new `Document`.
|
|
362
|
+
* - Unlike {@link fromSchemaDraft07}, this performs no keyword rewriting.
|
|
363
|
+
*
|
|
364
|
+
* **Example** (Parsing a Draft-2020-12 schema)
|
|
365
|
+
*
|
|
366
|
+
* ```ts
|
|
367
|
+
* import { JsonSchema } from "effect"
|
|
368
|
+
*
|
|
369
|
+
* const raw: JsonSchema.JsonSchema = {
|
|
370
|
+
* type: "number",
|
|
371
|
+
* minimum: 0,
|
|
372
|
+
* $defs: { PositiveInt: { type: "integer", minimum: 1 } }
|
|
373
|
+
* }
|
|
374
|
+
*
|
|
375
|
+
* const doc = JsonSchema.fromSchemaDraft2020_12(raw)
|
|
376
|
+
* console.log(doc.schema) // { type: "number", minimum: 0 }
|
|
377
|
+
* console.log(doc.definitions) // { PositiveInt: { type: "integer", minimum: 1 } }
|
|
378
|
+
* ```
|
|
379
|
+
*
|
|
380
|
+
* @see {@link fromSchemaDraft07}
|
|
381
|
+
* @see {@link fromSchemaOpenApi3_1}
|
|
382
|
+
*
|
|
182
383
|
* @since 4.0.0
|
|
183
384
|
*/
|
|
184
385
|
export function fromSchemaDraft2020_12(js: JsonSchema): Document<"draft-2020-12"> {
|
|
@@ -191,6 +392,33 @@ export function fromSchemaDraft2020_12(js: JsonSchema): Document<"draft-2020-12"
|
|
|
191
392
|
}
|
|
192
393
|
|
|
193
394
|
/**
|
|
395
|
+
* Parses a raw OpenAPI 3.1 JSON Schema into a `Document<"draft-2020-12">`.
|
|
396
|
+
*
|
|
397
|
+
* - Use when consuming schemas from an OpenAPI 3.1 specification.
|
|
398
|
+
* - Rewrites `#/components/schemas/...` refs to `#/$defs/...`.
|
|
399
|
+
* - Delegates to {@link fromSchemaDraft2020_12} after rewriting refs.
|
|
400
|
+
* - Does not mutate the input. Allocates a new `Document`.
|
|
401
|
+
*
|
|
402
|
+
* **Example** (Parsing an OpenAPI 3.1 schema)
|
|
403
|
+
*
|
|
404
|
+
* ```ts
|
|
405
|
+
* import { JsonSchema } from "effect"
|
|
406
|
+
*
|
|
407
|
+
* const raw: JsonSchema.JsonSchema = {
|
|
408
|
+
* type: "object",
|
|
409
|
+
* properties: {
|
|
410
|
+
* user: { $ref: "#/components/schemas/User" }
|
|
411
|
+
* }
|
|
412
|
+
* }
|
|
413
|
+
*
|
|
414
|
+
* const doc = JsonSchema.fromSchemaOpenApi3_1(raw)
|
|
415
|
+
* // $ref is rewritten to Draft-2020-12 form
|
|
416
|
+
* console.log(doc.schema.properties) // { user: { $ref: "#/$defs/User" } }
|
|
417
|
+
* ```
|
|
418
|
+
*
|
|
419
|
+
* @see {@link fromSchemaOpenApi3_0}
|
|
420
|
+
* @see {@link toMultiDocumentOpenApi3_1}
|
|
421
|
+
*
|
|
194
422
|
* @since 4.0.0
|
|
195
423
|
*/
|
|
196
424
|
export function fromSchemaOpenApi3_1(js: JsonSchema): Document<"draft-2020-12"> {
|
|
@@ -199,6 +427,33 @@ export function fromSchemaOpenApi3_1(js: JsonSchema): Document<"draft-2020-12">
|
|
|
199
427
|
}
|
|
200
428
|
|
|
201
429
|
/**
|
|
430
|
+
* Parses a raw OpenAPI 3.0 JSON Schema into a `Document<"draft-2020-12">`.
|
|
431
|
+
*
|
|
432
|
+
* - Use when consuming schemas from an OpenAPI 3.0 specification.
|
|
433
|
+
* - Handles OpenAPI 3.0 extensions: `nullable`, singular `example`,
|
|
434
|
+
* boolean `exclusiveMinimum`/`exclusiveMaximum`.
|
|
435
|
+
* - Normalizes the schema to Draft-07 first, then converts to
|
|
436
|
+
* Draft-2020-12 via {@link fromSchemaDraft07}.
|
|
437
|
+
* - Does not mutate the input. Allocates a new `Document`.
|
|
438
|
+
*
|
|
439
|
+
* **Example** (Parsing an OpenAPI 3.0 nullable schema)
|
|
440
|
+
*
|
|
441
|
+
* ```ts
|
|
442
|
+
* import { JsonSchema } from "effect"
|
|
443
|
+
*
|
|
444
|
+
* const raw: JsonSchema.JsonSchema = {
|
|
445
|
+
* type: "string",
|
|
446
|
+
* nullable: true
|
|
447
|
+
* }
|
|
448
|
+
*
|
|
449
|
+
* const doc = JsonSchema.fromSchemaOpenApi3_0(raw)
|
|
450
|
+
* // nullable is expanded into a type array
|
|
451
|
+
* console.log(doc.schema.type) // ["string", "null"]
|
|
452
|
+
* ```
|
|
453
|
+
*
|
|
454
|
+
* @see {@link fromSchemaOpenApi3_1}
|
|
455
|
+
* @see {@link fromSchemaDraft07}
|
|
456
|
+
*
|
|
202
457
|
* @since 4.0.0
|
|
203
458
|
*/
|
|
204
459
|
export function fromSchemaOpenApi3_0(schema: JsonSchema): Document<"draft-2020-12"> {
|
|
@@ -207,6 +462,36 @@ export function fromSchemaOpenApi3_0(schema: JsonSchema): Document<"draft-2020-1
|
|
|
207
462
|
}
|
|
208
463
|
|
|
209
464
|
/**
|
|
465
|
+
* Converts a `Document<"draft-2020-12">` to a `Document<"draft-07">`.
|
|
466
|
+
*
|
|
467
|
+
* - Use when you need to output a schema in Draft-07 format.
|
|
468
|
+
* - Rewrites `#/$defs/...` refs to `#/definitions/...`.
|
|
469
|
+
* - Converts Draft-2020-12 tuple syntax (`prefixItems` + `items`) to
|
|
470
|
+
* Draft-07 form (`items` as array + `additionalItems`).
|
|
471
|
+
* - Converts both the root schema and all definitions.
|
|
472
|
+
* - Does not mutate the input. Allocates a new `Document`.
|
|
473
|
+
* - Unsupported Draft-2020-12 keywords are dropped.
|
|
474
|
+
*
|
|
475
|
+
* **Example** (Converting to Draft-07)
|
|
476
|
+
*
|
|
477
|
+
* ```ts
|
|
478
|
+
* import { JsonSchema } from "effect"
|
|
479
|
+
*
|
|
480
|
+
* const doc = JsonSchema.fromSchemaDraft2020_12({
|
|
481
|
+
* type: "array",
|
|
482
|
+
* prefixItems: [{ type: "string" }, { type: "number" }],
|
|
483
|
+
* items: { type: "boolean" }
|
|
484
|
+
* })
|
|
485
|
+
*
|
|
486
|
+
* const draft07 = JsonSchema.toDocumentDraft07(doc)
|
|
487
|
+
* console.log(draft07.dialect) // "draft-07"
|
|
488
|
+
* console.log(draft07.schema.items) // [{ type: "string" }, { type: "number" }]
|
|
489
|
+
* console.log(draft07.schema.additionalItems) // { type: "boolean" }
|
|
490
|
+
* ```
|
|
491
|
+
*
|
|
492
|
+
* @see {@link fromSchemaDraft07}
|
|
493
|
+
* @see {@link toMultiDocumentOpenApi3_1}
|
|
494
|
+
*
|
|
210
495
|
* @since 4.0.0
|
|
211
496
|
*/
|
|
212
497
|
export function toDocumentDraft07(document: Document<"draft-2020-12">): Document<"draft-07"> {
|
|
@@ -217,10 +502,7 @@ export function toDocumentDraft07(document: Document<"draft-2020-12">): Document
|
|
|
217
502
|
}
|
|
218
503
|
}
|
|
219
504
|
|
|
220
|
-
|
|
221
|
-
* @since 4.0.0
|
|
222
|
-
*/
|
|
223
|
-
export function toSchemaDraft07(schema: JsonSchema): JsonSchema {
|
|
505
|
+
function toSchemaDraft07(schema: JsonSchema): JsonSchema {
|
|
224
506
|
return rewrite(schema)
|
|
225
507
|
|
|
226
508
|
function rewrite(node: unknown): JsonSchema {
|
|
@@ -322,6 +604,38 @@ export function toSchemaDraft07(schema: JsonSchema): JsonSchema {
|
|
|
322
604
|
}
|
|
323
605
|
|
|
324
606
|
/**
|
|
607
|
+
* Converts a `MultiDocument<"draft-2020-12">` to a
|
|
608
|
+
* `MultiDocument<"openapi-3.1">`.
|
|
609
|
+
*
|
|
610
|
+
* - Use when generating an OpenAPI 3.1 specification from internal schemas.
|
|
611
|
+
* - Rewrites `#/$defs/...` refs to `#/components/schemas/...`.
|
|
612
|
+
* - Sanitizes definition keys to match the OpenAPI component key pattern
|
|
613
|
+
* (`^[a-zA-Z0-9.\-_]+$`), replacing invalid characters with `_`.
|
|
614
|
+
* - Updates all `$ref` pointers to use the sanitized keys.
|
|
615
|
+
* - Converts all schemas and definitions in the multi-document.
|
|
616
|
+
* - Does not mutate the input. Allocates a new `MultiDocument`.
|
|
617
|
+
*
|
|
618
|
+
* **Example** (Converting to OpenAPI 3.1)
|
|
619
|
+
*
|
|
620
|
+
* ```ts
|
|
621
|
+
* import { JsonSchema } from "effect"
|
|
622
|
+
*
|
|
623
|
+
* const multi: JsonSchema.MultiDocument<"draft-2020-12"> = {
|
|
624
|
+
* dialect: "draft-2020-12",
|
|
625
|
+
* schemas: [{ $ref: "#/$defs/User" }],
|
|
626
|
+
* definitions: {
|
|
627
|
+
* User: { type: "object", properties: { name: { type: "string" } } }
|
|
628
|
+
* }
|
|
629
|
+
* }
|
|
630
|
+
*
|
|
631
|
+
* const openapi = JsonSchema.toMultiDocumentOpenApi3_1(multi)
|
|
632
|
+
* console.log(openapi.dialect) // "openapi-3.1"
|
|
633
|
+
* console.log(openapi.schemas[0]) // { $ref: "#/components/schemas/User" }
|
|
634
|
+
* ```
|
|
635
|
+
*
|
|
636
|
+
* @see {@link toDocumentDraft07}
|
|
637
|
+
* @see {@link MultiDocument}
|
|
638
|
+
*
|
|
325
639
|
* @since 4.0.0
|
|
326
640
|
*/
|
|
327
641
|
export function toMultiDocumentOpenApi3_1(multiDocument: MultiDocument<"draft-2020-12">): MultiDocument<"openapi-3.1"> {
|
|
@@ -510,6 +824,35 @@ function widen_type(node: Record<string, unknown>): Record<string, unknown> {
|
|
|
510
824
|
}
|
|
511
825
|
|
|
512
826
|
/**
|
|
827
|
+
* Resolves a `$ref` string by looking up the last path segment in a
|
|
828
|
+
* definitions map.
|
|
829
|
+
*
|
|
830
|
+
* - Use when you need to dereference a `$ref` pointer to get the
|
|
831
|
+
* actual schema it points to.
|
|
832
|
+
* - Only resolves the final segment of the ref path (e.g. `"User"` from
|
|
833
|
+
* `"#/$defs/User"`); does not follow arbitrary JSON Pointer paths.
|
|
834
|
+
* - Returns `undefined` if the definition is not found.
|
|
835
|
+
* - Does not mutate anything. Pure function.
|
|
836
|
+
*
|
|
837
|
+
* **Example** (Resolving a $ref)
|
|
838
|
+
*
|
|
839
|
+
* ```ts
|
|
840
|
+
* import { JsonSchema } from "effect"
|
|
841
|
+
*
|
|
842
|
+
* const definitions: JsonSchema.Definitions = {
|
|
843
|
+
* User: { type: "object", properties: { name: { type: "string" } } }
|
|
844
|
+
* }
|
|
845
|
+
*
|
|
846
|
+
* const result = JsonSchema.resolve$ref("#/$defs/User", definitions)
|
|
847
|
+
* console.log(result) // { type: "object", properties: { name: { type: "string" } } }
|
|
848
|
+
*
|
|
849
|
+
* const missing = JsonSchema.resolve$ref("#/$defs/Unknown", definitions)
|
|
850
|
+
* console.log(missing) // undefined
|
|
851
|
+
* ```
|
|
852
|
+
*
|
|
853
|
+
* @see {@link resolveTopLevel$ref}
|
|
854
|
+
* @see {@link Definitions}
|
|
855
|
+
*
|
|
513
856
|
* @since 4.0.0
|
|
514
857
|
*/
|
|
515
858
|
export function resolve$ref($ref: string, definitions: Definitions): JsonSchema | undefined {
|
|
@@ -524,6 +867,36 @@ export function resolve$ref($ref: string, definitions: Definitions): JsonSchema
|
|
|
524
867
|
}
|
|
525
868
|
|
|
526
869
|
/**
|
|
870
|
+
* If the root schema of a document is a `$ref`, resolves it against the
|
|
871
|
+
* document's definitions and returns a new document with the inlined
|
|
872
|
+
* schema. Returns the original document unchanged if the root schema is
|
|
873
|
+
* not a `$ref` or if the referenced definition is not found.
|
|
874
|
+
*
|
|
875
|
+
* - Use to dereference a top-level `$ref` before inspecting the root
|
|
876
|
+
* schema's properties directly.
|
|
877
|
+
* - Does not mutate the input. Returns the same object if no change is
|
|
878
|
+
* needed, or a shallow copy with the resolved schema.
|
|
879
|
+
*
|
|
880
|
+
* **Example** (Resolving a top-level $ref)
|
|
881
|
+
*
|
|
882
|
+
* ```ts
|
|
883
|
+
* import { JsonSchema } from "effect"
|
|
884
|
+
*
|
|
885
|
+
* const doc: JsonSchema.Document<"draft-2020-12"> = {
|
|
886
|
+
* dialect: "draft-2020-12",
|
|
887
|
+
* schema: { $ref: "#/$defs/User" },
|
|
888
|
+
* definitions: {
|
|
889
|
+
* User: { type: "object", properties: { name: { type: "string" } } }
|
|
890
|
+
* }
|
|
891
|
+
* }
|
|
892
|
+
*
|
|
893
|
+
* const resolved = JsonSchema.resolveTopLevel$ref(doc)
|
|
894
|
+
* console.log(resolved.schema) // { type: "object", properties: { name: { type: "string" } } }
|
|
895
|
+
* ```
|
|
896
|
+
*
|
|
897
|
+
* @see {@link resolve$ref}
|
|
898
|
+
* @see {@link Document}
|
|
899
|
+
*
|
|
527
900
|
* @since 4.0.0
|
|
528
901
|
*/
|
|
529
902
|
export function resolveTopLevel$ref(document: Document<"draft-2020-12">): Document<"draft-2020-12"> {
|
package/src/Latch.ts
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 3.8.0
|
|
3
|
+
*/
|
|
4
|
+
import type * as Effect from "./Effect.ts"
|
|
5
|
+
import * as internal from "./internal/effect.ts"
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @category models
|
|
9
|
+
* @since 3.8.0
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* import { Effect, Latch } from "effect"
|
|
13
|
+
*
|
|
14
|
+
* // Create and use a latch for coordination between fibers
|
|
15
|
+
* const program = Effect.gen(function*() {
|
|
16
|
+
* const latch = yield* Latch.make()
|
|
17
|
+
*
|
|
18
|
+
* // Wait for the latch to be opened
|
|
19
|
+
* yield* latch.await
|
|
20
|
+
*
|
|
21
|
+
* return "Latch was opened!"
|
|
22
|
+
* })
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export interface Latch {
|
|
26
|
+
/** open the latch, releasing all fibers waiting on it */
|
|
27
|
+
readonly open: Effect.Effect<boolean>
|
|
28
|
+
/** open the latch, releasing all fibers waiting on it */
|
|
29
|
+
readonly openUnsafe: () => boolean
|
|
30
|
+
/** release all fibers waiting on the latch, without opening it */
|
|
31
|
+
readonly release: Effect.Effect<boolean>
|
|
32
|
+
/** wait for the latch to be opened */
|
|
33
|
+
readonly await: Effect.Effect<void>
|
|
34
|
+
/** close the latch */
|
|
35
|
+
readonly close: Effect.Effect<boolean>
|
|
36
|
+
/** close the latch */
|
|
37
|
+
readonly closeUnsafe: () => boolean
|
|
38
|
+
/** only run the given effect when the latch is open */
|
|
39
|
+
readonly whenOpen: <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Creates a new Latch unsafely.
|
|
44
|
+
*
|
|
45
|
+
* **Previously Known As**
|
|
46
|
+
*
|
|
47
|
+
* This API replaces the following from Effect 3.x:
|
|
48
|
+
*
|
|
49
|
+
* - `Effect.makeLatchUnsafe`
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```ts
|
|
53
|
+
* import { Effect, Latch } from "effect"
|
|
54
|
+
*
|
|
55
|
+
* const latch = Latch.makeUnsafe(false)
|
|
56
|
+
*
|
|
57
|
+
* const waiter = Effect.gen(function*() {
|
|
58
|
+
* yield* Effect.log("Waiting for latch to open...")
|
|
59
|
+
* yield* latch.await
|
|
60
|
+
* yield* Effect.log("Latch opened! Continuing...")
|
|
61
|
+
* })
|
|
62
|
+
*
|
|
63
|
+
* const opener = Effect.gen(function*() {
|
|
64
|
+
* yield* Effect.sleep("2 seconds")
|
|
65
|
+
* yield* Effect.log("Opening latch...")
|
|
66
|
+
* yield* latch.open
|
|
67
|
+
* })
|
|
68
|
+
*
|
|
69
|
+
* const program = Effect.all([waiter, opener])
|
|
70
|
+
* ```
|
|
71
|
+
*
|
|
72
|
+
* @category constructors
|
|
73
|
+
* @since 3.8.0
|
|
74
|
+
*/
|
|
75
|
+
export const makeUnsafe: (open?: boolean | undefined) => Latch = internal.makeLatchUnsafe
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Creates a new Latch.
|
|
79
|
+
*
|
|
80
|
+
* **Previously Known As**
|
|
81
|
+
*
|
|
82
|
+
* This API replaces the following from Effect 3.x:
|
|
83
|
+
*
|
|
84
|
+
* - `Effect.makeLatch`
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```ts
|
|
88
|
+
* import { Effect, Latch } from "effect"
|
|
89
|
+
*
|
|
90
|
+
* const program = Effect.gen(function*() {
|
|
91
|
+
* const latch = yield* Latch.make(false)
|
|
92
|
+
*
|
|
93
|
+
* const waiter = Effect.gen(function*() {
|
|
94
|
+
* yield* Effect.log("Waiting for latch to open...")
|
|
95
|
+
* yield* latch.await
|
|
96
|
+
* yield* Effect.log("Latch opened! Continuing...")
|
|
97
|
+
* })
|
|
98
|
+
*
|
|
99
|
+
* const opener = Effect.gen(function*() {
|
|
100
|
+
* yield* Effect.sleep("2 seconds")
|
|
101
|
+
* yield* Effect.log("Opening latch...")
|
|
102
|
+
* yield* latch.open
|
|
103
|
+
* })
|
|
104
|
+
*
|
|
105
|
+
* yield* Effect.all([waiter, opener])
|
|
106
|
+
* })
|
|
107
|
+
* ```
|
|
108
|
+
*
|
|
109
|
+
* @category constructors
|
|
110
|
+
* @since 3.8.0
|
|
111
|
+
*/
|
|
112
|
+
export const make: (open?: boolean | undefined) => Effect.Effect<Latch> = internal.makeLatch
|