effect 4.0.0-rc.112 → 4.0.0-rc.113
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/AGENTS.md +24 -9
- package/CLAUDE.md +24 -9
- package/ai-docs/package.json +2 -2
- package/ai-docs/src/01_effect/01_basics/02_effect-fn.ts +18 -5
- package/ai-docs/src/01_effect/01_basics/index.md +5 -3
- package/ai-docs/src/01_effect/03_services/20_layer-composition.ts +1 -1
- package/ai-docs/src/01_effect/03_services/20_layer-unwrap.ts +2 -2
- package/ai-docs/src/01_effect/05_resources/10_acquire-release.ts +2 -2
- package/ai-docs/src/03_stream/30_encoding.ts +5 -7
- package/ai-docs/src/08_observability/10_logging.ts +1 -1
- package/ai-docs/src/70_cli/10_basics.ts +7 -7
- package/ai-docs/src/71_ai/10_language-model.ts +2 -2
- package/ai-docs/src/71_ai/20_tools.ts +1 -1
- package/ai-docs/src/71_ai/30_chat.ts +1 -1
- package/dist/Array.d.ts +86 -50
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +58 -32
- package/dist/Array.js.map +1 -1
- package/dist/BigDecimal.d.ts +5 -1
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +40 -23
- package/dist/BigDecimal.js.map +1 -1
- package/dist/ByteSize.d.ts +633 -0
- package/dist/ByteSize.d.ts.map +1 -0
- package/dist/ByteSize.js +524 -0
- package/dist/ByteSize.js.map +1 -0
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +17 -3
- 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 +97 -24
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +66 -39
- package/dist/Channel.js.map +1 -1
- package/dist/Chunk.d.ts +49 -28
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +27 -18
- package/dist/Chunk.js.map +1 -1
- package/dist/Config.d.ts +162 -201
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +103 -212
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +4 -4
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +7 -7
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Context.d.ts +31 -0
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js.map +1 -1
- package/dist/Cron.d.ts +2 -2
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +2 -2
- package/dist/Cron.js.map +1 -1
- package/dist/Crypto.d.ts +1 -1
- package/dist/Crypto.d.ts.map +1 -1
- package/dist/Crypto.js +3 -2
- package/dist/Crypto.js.map +1 -1
- package/dist/DateTime.d.ts +2 -2
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/Deferred.d.ts.map +1 -1
- package/dist/Deferred.js +6 -6
- package/dist/Deferred.js.map +1 -1
- package/dist/Duration.d.ts +1 -1
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +1 -1
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +220 -113
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +27 -26
- package/dist/Effect.js.map +1 -1
- package/dist/Effectable.d.ts +58 -2
- package/dist/Effectable.d.ts.map +1 -1
- package/dist/Effectable.js +58 -6
- package/dist/Effectable.js.map +1 -1
- package/dist/Encoding.d.ts +3 -1
- package/dist/Encoding.d.ts.map +1 -1
- package/dist/Encoding.js +40 -10
- package/dist/Encoding.js.map +1 -1
- package/dist/Equal.d.ts +1 -1
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +1 -1
- package/dist/Equal.js.map +1 -1
- package/dist/ExecutionPlan.d.ts.map +1 -1
- package/dist/ExecutionPlan.js +1 -0
- package/dist/ExecutionPlan.js.map +1 -1
- package/dist/Fiber.d.ts +32 -8
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js.map +1 -1
- package/dist/FiberHandle.js +3 -3
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +12 -6
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +11 -6
- package/dist/FiberMap.js.map +1 -1
- package/dist/FileSystem.d.ts +42 -210
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +16 -148
- package/dist/FileSystem.js.map +1 -1
- package/dist/Formatter.d.ts +1 -0
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +19 -3
- package/dist/Formatter.js.map +1 -1
- package/dist/Graph.d.ts +48 -20
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +20 -5
- package/dist/Graph.js.map +1 -1
- package/dist/Hash.d.ts +1 -1
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +5 -14
- package/dist/Hash.js.map +1 -1
- package/dist/HashMap.d.ts +1 -1
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashRing.d.ts +6 -1
- package/dist/HashRing.d.ts.map +1 -1
- package/dist/HashRing.js +9 -2
- package/dist/HashRing.js.map +1 -1
- package/dist/HashSet.d.ts +1 -1
- package/dist/HashSet.d.ts.map +1 -1
- package/dist/HashSet.js.map +1 -1
- package/dist/Iterable.d.ts +33 -15
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +58 -45
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonPatch.js +4 -4
- package/dist/JsonPatch.js.map +1 -1
- package/dist/JsonPointer.d.ts +68 -4
- package/dist/JsonPointer.d.ts.map +1 -1
- package/dist/JsonPointer.js +90 -4
- package/dist/JsonPointer.js.map +1 -1
- package/dist/JsonSchema.js +8 -22
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Layer.d.ts +47 -4
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +4 -6
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts +1 -3
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LayerMap.js +7 -5
- package/dist/LayerMap.js.map +1 -1
- package/dist/LayerRef.d.ts.map +1 -1
- package/dist/LayerRef.js +7 -5
- package/dist/LayerRef.js.map +1 -1
- package/dist/Logger.d.ts +114 -9
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +109 -9
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.js +1 -1
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Match.d.ts +43 -31
- package/dist/Match.d.ts.map +1 -1
- package/dist/Match.js +5 -2
- package/dist/Match.js.map +1 -1
- package/dist/Metric.d.ts +11 -4
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +14 -18
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts +1 -1
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js +1 -1
- package/dist/MutableHashMap.js.map +1 -1
- package/dist/MutableHashSet.d.ts +1 -1
- package/dist/MutableHashSet.d.ts.map +1 -1
- package/dist/MutableHashSet.js +1 -1
- package/dist/MutableHashSet.js.map +1 -1
- package/dist/MutableList.d.ts +13 -2
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +18 -2
- package/dist/MutableList.js.map +1 -1
- package/dist/Number.d.ts +6 -0
- package/dist/Number.d.ts.map +1 -1
- package/dist/Number.js +3 -1
- package/dist/Number.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 +1 -1
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +1 -1
- package/dist/Option.js.map +1 -1
- package/dist/Order.d.ts +1 -0
- package/dist/Order.d.ts.map +1 -1
- package/dist/Order.js +3 -1
- package/dist/Order.js.map +1 -1
- package/dist/PartitionedSemaphore.d.ts.map +1 -1
- package/dist/PartitionedSemaphore.js +1 -2
- package/dist/PartitionedSemaphore.js.map +1 -1
- package/dist/Path.d.ts +1 -1
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +1 -1
- package/dist/Path.js.map +1 -1
- package/dist/PlatformError.d.ts +1 -1
- package/dist/PlatformError.d.ts.map +1 -1
- package/dist/PlatformError.js +1 -1
- package/dist/PlatformError.js.map +1 -1
- package/dist/Pool.d.ts +38 -1
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +81 -5
- package/dist/Pool.js.map +1 -1
- package/dist/PrimaryKey.d.ts +1 -1
- package/dist/PrimaryKey.d.ts.map +1 -1
- package/dist/PrimaryKey.js +1 -1
- package/dist/PrimaryKey.js.map +1 -1
- package/dist/PubSub.d.ts +21 -9
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +18 -14
- package/dist/PubSub.js.map +1 -1
- package/dist/Queue.d.ts +82 -6
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +116 -27
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts +17 -4
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +1 -1
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +15 -9
- package/dist/RcMap.js.map +1 -1
- package/dist/Redacted.d.ts +1 -1
- package/dist/Redacted.d.ts.map +1 -1
- package/dist/Redacted.js +1 -1
- package/dist/Redacted.js.map +1 -1
- package/dist/RequestResolver.d.ts +15 -9
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +33 -15
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Result.d.ts +1 -1
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +1 -1
- package/dist/Result.js.map +1 -1
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +19 -10
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +2155 -2415
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +2755 -4174
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +354 -183
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +277 -601
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +46 -22
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +56 -53
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts +122 -188
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +48 -263
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.js +2 -9
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +1099 -16
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +1341 -20
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +49 -16
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +75 -98
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +10 -3
- package/dist/ScopedCache.js.map +1 -1
- package/dist/Sink.d.ts +9 -4
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +49 -31
- package/dist/Sink.js.map +1 -1
- package/dist/Stream.d.ts +221 -35
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +168 -84
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +16 -6
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +12 -5
- package/dist/String.js.map +1 -1
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +7 -4
- package/dist/Struct.js.map +1 -1
- package/dist/SynchronizedRef.d.ts +3 -2
- package/dist/SynchronizedRef.d.ts.map +1 -1
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Terminal.d.ts +3 -3
- package/dist/Terminal.d.ts.map +1 -1
- package/dist/Terminal.js +3 -3
- package/dist/Terminal.js.map +1 -1
- package/dist/Tracer.d.ts +27 -7
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +38 -13
- package/dist/Tracer.js.map +1 -1
- package/dist/Trie.d.ts +1 -1
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Tuple.d.ts +2 -1
- package/dist/Tuple.d.ts.map +1 -1
- package/dist/Tuple.js.map +1 -1
- package/dist/TxChunk.d.ts +1 -1
- package/dist/TxChunk.d.ts.map +1 -1
- package/dist/TxChunk.js +1 -1
- package/dist/TxChunk.js.map +1 -1
- package/dist/TxDeferred.d.ts +1 -1
- package/dist/TxDeferred.d.ts.map +1 -1
- package/dist/TxDeferred.js +1 -1
- package/dist/TxDeferred.js.map +1 -1
- package/dist/TxHashMap.d.ts +1 -1
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js +1 -1
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts +1 -1
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js +1 -1
- package/dist/TxHashSet.js.map +1 -1
- package/dist/TxPriorityQueue.d.ts +1 -1
- package/dist/TxPriorityQueue.d.ts.map +1 -1
- package/dist/TxPriorityQueue.js +1 -1
- package/dist/TxPriorityQueue.js.map +1 -1
- package/dist/TxPubSub.d.ts +1 -1
- package/dist/TxPubSub.d.ts.map +1 -1
- package/dist/TxPubSub.js +1 -1
- package/dist/TxPubSub.js.map +1 -1
- package/dist/TxQueue.d.ts +9 -9
- package/dist/TxQueue.d.ts.map +1 -1
- package/dist/TxQueue.js +93 -86
- package/dist/TxQueue.js.map +1 -1
- package/dist/TxReentrantLock.d.ts +29 -1
- package/dist/TxReentrantLock.d.ts.map +1 -1
- package/dist/TxReentrantLock.js +29 -1
- package/dist/TxReentrantLock.js.map +1 -1
- package/dist/TxRef.d.ts +1 -1
- package/dist/TxRef.d.ts.map +1 -1
- package/dist/TxRef.js +1 -1
- package/dist/TxRef.js.map +1 -1
- package/dist/TxSemaphore.d.ts +1 -1
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +1 -1
- package/dist/TxSemaphore.js.map +1 -1
- package/dist/TxSubscriptionRef.d.ts +1 -1
- package/dist/TxSubscriptionRef.d.ts.map +1 -1
- package/dist/TxSubscriptionRef.js +1 -1
- package/dist/TxSubscriptionRef.js.map +1 -1
- package/dist/Types.d.ts +33 -19
- package/dist/Types.d.ts.map +1 -1
- package/dist/Utils.d.ts.map +1 -1
- package/dist/Utils.js +2 -1
- package/dist/Utils.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/internal/arbitrary/model.d.ts +2 -0
- package/dist/internal/arbitrary/model.d.ts.map +1 -0
- package/dist/internal/arbitrary/model.js +495 -0
- package/dist/internal/arbitrary/model.js.map +1 -0
- package/dist/internal/arbitrary/regexp.d.ts +2 -0
- package/dist/internal/arbitrary/regexp.d.ts.map +1 -0
- package/dist/internal/arbitrary/regexp.js +789 -0
- package/dist/internal/arbitrary/regexp.js.map +1 -0
- package/dist/internal/arbitrary/runner.d.ts +2 -0
- package/dist/internal/arbitrary/runner.d.ts.map +1 -0
- package/dist/internal/arbitrary/runner.js +496 -0
- package/dist/internal/arbitrary/runner.js.map +1 -0
- package/dist/internal/arbitrary/schema.d.ts.map +1 -0
- package/dist/internal/arbitrary/schema.js +1340 -0
- package/dist/internal/arbitrary/schema.js.map +1 -0
- package/dist/internal/core.js +27 -13
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/count.d.ts +2 -0
- package/dist/internal/count.d.ts.map +1 -0
- package/dist/internal/count.js +14 -0
- package/dist/internal/count.js.map +1 -0
- package/dist/internal/dateTime.js +4 -10
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/effect.js +386 -251
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/graph.js +3 -1
- package/dist/internal/graph.js.map +1 -1
- package/dist/internal/hashMap.js +5 -3
- package/dist/internal/hashMap.js.map +1 -1
- package/dist/internal/hashSet.js +1 -1
- package/dist/internal/hashSet.js.map +1 -1
- package/dist/internal/matcher.js +1 -1
- package/dist/internal/matcher.js.map +1 -1
- package/dist/internal/metric.js +1 -1
- package/dist/internal/metric.js.map +1 -1
- package/dist/internal/option.js +6 -5
- package/dist/internal/option.js.map +1 -1
- package/dist/internal/random.js +17 -0
- package/dist/internal/random.js.map +1 -1
- package/dist/internal/rcRef.js +10 -7
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/internal/references.js +1 -0
- package/dist/internal/references.js.map +1 -1
- package/dist/internal/request.js +13 -6
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/result.js +11 -9
- package/dist/internal/result.js.map +1 -1
- package/dist/internal/schema/annotations.js +1 -1
- package/dist/internal/schema/annotations.js.map +1 -1
- package/dist/internal/schema/fromJsonSchemaDocument.js +14 -12
- package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/fromRepresentation.js +5 -5
- package/dist/internal/schema/fromRepresentation.js.map +1 -1
- package/dist/internal/schema/make.d.ts +2 -0
- package/dist/internal/schema/make.d.ts.map +1 -0
- package/dist/internal/schema/{schema.js → make.js} +1 -25
- package/dist/internal/schema/make.js.map +1 -0
- package/dist/internal/schema/parser.d.ts +0 -12
- package/dist/internal/schema/parser.d.ts.map +1 -1
- package/dist/internal/schema/parser.js +7 -0
- package/dist/internal/schema/parser.js.map +1 -1
- package/dist/internal/schema/standardSchema.d.ts +2 -0
- package/dist/internal/schema/standardSchema.d.ts.map +1 -0
- package/dist/internal/schema/standardSchema.js +112 -0
- package/dist/internal/schema/standardSchema.js.map +1 -0
- package/dist/internal/schema/toCodeDocument.js +34 -22
- package/dist/internal/schema/toCodeDocument.js.map +1 -1
- package/dist/internal/schema/toCodec.d.ts +2 -0
- package/dist/internal/schema/toCodec.d.ts.map +1 -0
- package/dist/internal/schema/toCodec.js +242 -0
- package/dist/internal/schema/toCodec.js.map +1 -0
- package/dist/internal/schema/toDifferJsonPatch.d.ts +2 -0
- package/dist/internal/schema/toDifferJsonPatch.d.ts.map +1 -0
- package/dist/internal/schema/toDifferJsonPatch.js +20 -0
- package/dist/internal/schema/toDifferJsonPatch.js.map +1 -0
- package/dist/internal/schema/toEncoderXml.d.ts +2 -0
- package/dist/internal/schema/toEncoderXml.d.ts.map +1 -0
- package/dist/internal/schema/toEncoderXml.js +104 -0
- package/dist/internal/schema/toEncoderXml.js.map +1 -0
- package/dist/internal/schema/toEquivalence.js +66 -0
- package/dist/internal/schema/toEquivalence.js.map +1 -1
- package/dist/internal/schema/toFormatter.d.ts +2 -0
- package/dist/internal/schema/toFormatter.d.ts.map +1 -0
- package/dist/internal/schema/toFormatter.js +227 -0
- package/dist/internal/schema/toFormatter.js.map +1 -0
- package/dist/internal/schema/toIso.d.ts +2 -0
- package/dist/internal/schema/toIso.d.ts.map +1 -0
- package/dist/internal/schema/toIso.js +17 -0
- package/dist/internal/schema/toIso.js.map +1 -0
- package/dist/internal/schema/toJsonSchemaDocument.js +122 -71
- package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -1
- package/dist/internal/schema/toRepresentation.js +3 -1
- package/dist/internal/schema/toRepresentation.js.map +1 -1
- package/dist/internal/schemaError.d.ts +4 -0
- package/dist/internal/schemaError.d.ts.map +1 -0
- package/dist/internal/schemaError.js +6 -0
- package/dist/internal/schemaError.js.map +1 -0
- package/dist/internal/stream.js +5 -6
- package/dist/internal/stream.js.map +1 -1
- package/dist/internal/tracer.d.ts +1 -3
- package/dist/internal/tracer.d.ts.map +1 -1
- package/dist/internal/tracer.js +6 -0
- package/dist/internal/tracer.js.map +1 -1
- package/dist/internal/trie.js +2 -2
- package/dist/internal/trie.js.map +1 -1
- package/dist/internal/uuid.d.ts +1 -2
- package/dist/internal/uuid.d.ts.map +1 -1
- package/dist/internal/uuid.js +2 -0
- package/dist/internal/uuid.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +9 -11
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js +20 -18
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/testing/index.d.ts +0 -4
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +0 -4
- package/dist/testing/index.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +74 -23
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +59 -5
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.js +2 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +27 -32
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +10 -13
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/EmbeddingModel.d.ts +23 -16
- package/dist/unstable/ai/EmbeddingModel.d.ts.map +1 -1
- package/dist/unstable/ai/EmbeddingModel.js +13 -11
- package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +48 -37
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +150 -47
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +2 -2
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +21 -12
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js +2 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +1 -1
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Prompt.js +15 -4
- package/dist/unstable/ai/Prompt.js.map +1 -1
- package/dist/unstable/ai/Response.d.ts +37 -94
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +46 -96
- package/dist/unstable/ai/Response.js.map +1 -1
- package/dist/unstable/ai/Tokenizer.js +4 -5
- package/dist/unstable/ai/Tokenizer.js.map +1 -1
- package/dist/unstable/ai/Tool.d.ts +38 -20
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +27 -1
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/ai/Toolkit.d.ts +1 -1
- package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
- package/dist/unstable/ai/Toolkit.js +30 -18
- package/dist/unstable/ai/Toolkit.js.map +1 -1
- package/dist/unstable/ai/internal/structured-output.js +8 -5
- package/dist/unstable/ai/internal/structured-output.js.map +1 -1
- package/dist/unstable/arbitrary/Arbitrary.d.ts +626 -0
- package/dist/unstable/arbitrary/Arbitrary.d.ts.map +1 -0
- package/dist/unstable/arbitrary/Arbitrary.js +238 -0
- package/dist/unstable/arbitrary/Arbitrary.js.map +1 -0
- package/dist/unstable/arbitrary/index.d.ts +8 -0
- package/dist/unstable/arbitrary/index.d.ts.map +1 -0
- package/dist/unstable/arbitrary/index.js +9 -0
- package/dist/unstable/arbitrary/index.js.map +1 -0
- package/dist/unstable/cli/Argument.d.ts +104 -108
- package/dist/unstable/cli/Argument.d.ts.map +1 -1
- package/dist/unstable/cli/Argument.js +56 -57
- package/dist/unstable/cli/Argument.js.map +1 -1
- package/dist/unstable/cli/CliError.d.ts +2 -0
- package/dist/unstable/cli/CliError.d.ts.map +1 -1
- package/dist/unstable/cli/CliError.js +2 -0
- package/dist/unstable/cli/CliError.js.map +1 -1
- package/dist/unstable/cli/CliOutput.js +26 -3
- package/dist/unstable/cli/CliOutput.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +73 -73
- package/dist/unstable/cli/Command.js +18 -18
- package/dist/unstable/cli/Completions.d.ts +4 -4
- package/dist/unstable/cli/Completions.d.ts.map +1 -1
- package/dist/unstable/cli/Flag.d.ts +150 -161
- package/dist/unstable/cli/Flag.d.ts.map +1 -1
- package/dist/unstable/cli/Flag.js +79 -90
- package/dist/unstable/cli/Flag.js.map +1 -1
- package/dist/unstable/cli/GlobalFlag.d.ts +3 -3
- package/dist/unstable/cli/GlobalFlag.js +13 -13
- package/dist/unstable/cli/GlobalFlag.js.map +1 -1
- package/dist/unstable/cli/Param.d.ts +118 -126
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- package/dist/unstable/cli/Param.js +104 -113
- package/dist/unstable/cli/Param.js.map +1 -1
- package/dist/unstable/cli/Primitive.d.ts +69 -58
- package/dist/unstable/cli/Primitive.d.ts.map +1 -1
- package/dist/unstable/cli/Primitive.js +65 -66
- package/dist/unstable/cli/Primitive.js.map +1 -1
- package/dist/unstable/cli/Prompt.d.ts +23 -24
- package/dist/unstable/cli/Prompt.d.ts.map +1 -1
- package/dist/unstable/cli/Prompt.js +68 -63
- package/dist/unstable/cli/Prompt.js.map +1 -1
- package/dist/unstable/cli/internal/completions/descriptor.js +23 -11
- package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
- package/dist/unstable/cli/internal/completions/zsh.js +2 -2
- package/dist/unstable/cli/internal/completions/zsh.js.map +1 -1
- package/dist/unstable/cli/internal/config.js +4 -4
- package/dist/unstable/cli/internal/parser.js +1 -1
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- package/dist/unstable/cli/internal/wizard.d.ts.map +1 -1
- package/dist/unstable/cli/internal/wizard.js +14 -13
- package/dist/unstable/cli/internal/wizard.js.map +1 -1
- package/dist/unstable/cluster/ClusterSchema.d.ts +13 -0
- package/dist/unstable/cluster/ClusterSchema.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterSchema.js +16 -1
- package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +57 -14
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js +2 -0
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.d.ts +2 -2
- package/dist/unstable/cluster/EntityProxyServer.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
- package/dist/unstable/cluster/Envelope.d.ts +4 -4
- package/dist/unstable/cluster/Envelope.d.ts.map +1 -1
- package/dist/unstable/cluster/Envelope.js +2 -3
- package/dist/unstable/cluster/Envelope.js.map +1 -1
- package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
- package/dist/unstable/cluster/HttpRunner.js +5 -2
- package/dist/unstable/cluster/HttpRunner.js.map +1 -1
- package/dist/unstable/cluster/MessageStorage.d.ts +34 -4
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +28 -9
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +1 -1
- package/dist/unstable/cluster/Sharding.d.ts +1 -1
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +32 -17
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.js +23 -23
- package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
- package/dist/unstable/cluster/SocketRunner.d.ts +2 -2
- package/dist/unstable/cluster/SocketRunner.d.ts.map +1 -1
- package/dist/unstable/cluster/SocketRunner.js +4 -3
- package/dist/unstable/cluster/SocketRunner.js.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.js +11 -8
- 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 +11 -4
- package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/internal/clusterAbandon.d.ts +5 -0
- package/dist/unstable/cluster/internal/clusterAbandon.d.ts.map +1 -0
- package/dist/unstable/cluster/internal/clusterAbandon.js +9 -0
- package/dist/unstable/cluster/internal/clusterAbandon.js.map +1 -0
- package/dist/unstable/cluster/internal/entityManager.js +7 -4
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/cluster/internal/interruptors.js +30 -1
- package/dist/unstable/cluster/internal/interruptors.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceRef.js +12 -7
- package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.js +12 -7
- package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
- package/dist/unstable/encoding/Ini.d.ts +2 -0
- package/dist/unstable/encoding/Ini.d.ts.map +1 -1
- package/dist/unstable/encoding/Ini.js +2 -0
- package/dist/unstable/encoding/Ini.js.map +1 -1
- package/dist/unstable/encoding/SchemaBinary.d.ts +27 -3
- package/dist/unstable/encoding/SchemaBinary.d.ts.map +1 -1
- package/dist/unstable/encoding/SchemaBinary.js +108 -39
- package/dist/unstable/encoding/SchemaBinary.js.map +1 -1
- package/dist/unstable/encoding/Sse.js +1 -1
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/encoding/Toml.d.ts +2 -0
- package/dist/unstable/encoding/Toml.d.ts.map +1 -1
- package/dist/unstable/encoding/Toml.js +6 -4
- package/dist/unstable/encoding/Toml.js.map +1 -1
- package/dist/unstable/encoding/Yaml.d.ts +2 -0
- package/dist/unstable/encoding/Yaml.d.ts.map +1 -1
- package/dist/unstable/encoding/Yaml.js +16 -5
- package/dist/unstable/encoding/Yaml.js.map +1 -1
- package/dist/unstable/encoding/index.d.ts +0 -4
- package/dist/unstable/encoding/index.d.ts.map +1 -1
- package/dist/unstable/encoding/index.js +0 -4
- package/dist/unstable/encoding/index.js.map +1 -1
- package/dist/unstable/eventlog/Event.d.ts +5 -5
- package/dist/unstable/eventlog/Event.d.ts.map +1 -1
- package/dist/unstable/eventlog/Event.js +3 -3
- package/dist/unstable/eventlog/Event.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +7 -7
- package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventJournal.js +9 -9
- package/dist/unstable/eventlog/EventJournal.js.map +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +4 -4
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.d.ts +11 -5
- package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.js +25 -15
- package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +7 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.js +13 -3
- package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js +2 -2
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/SqlEventJournal.js +26 -13
- package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +5 -1
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
- package/dist/unstable/http/Cookies.d.ts +1 -45
- package/dist/unstable/http/Cookies.d.ts.map +1 -1
- package/dist/unstable/http/Cookies.js +2 -64
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/FetchHttpClient.js +1 -1
- package/dist/unstable/http/FetchHttpClient.js.map +1 -1
- package/dist/unstable/http/FindMyWay/internal/router.js +124 -33
- package/dist/unstable/http/FindMyWay/internal/router.js.map +1 -1
- package/dist/unstable/http/FindMyWay.d.ts +15 -5
- package/dist/unstable/http/FindMyWay.d.ts.map +1 -1
- package/dist/unstable/http/FindMyWay.js +3 -1
- package/dist/unstable/http/FindMyWay.js.map +1 -1
- package/dist/unstable/http/Headers.d.ts +0 -22
- package/dist/unstable/http/Headers.d.ts.map +1 -1
- package/dist/unstable/http/Headers.js +3 -34
- package/dist/unstable/http/Headers.js.map +1 -1
- package/dist/unstable/http/HttpBody.d.ts +41 -10
- package/dist/unstable/http/HttpBody.d.ts.map +1 -1
- package/dist/unstable/http/HttpBody.js +64 -10
- package/dist/unstable/http/HttpBody.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +1 -1
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +28 -18
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientRequest.d.ts +28 -6
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +8 -19
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpClientResponse.d.ts +6 -1
- package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientResponse.js +10 -6
- package/dist/unstable/http/HttpClientResponse.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts +16 -0
- package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
- package/dist/unstable/http/HttpEffect.js +121 -65
- package/dist/unstable/http/HttpEffect.js.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.d.ts +3 -3
- package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.js +1 -13
- package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
- package/dist/unstable/http/HttpMiddleware.d.ts +1 -1
- package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/unstable/http/HttpMiddleware.js +29 -21
- package/dist/unstable/http/HttpMiddleware.js.map +1 -1
- package/dist/unstable/http/HttpPlatform.d.ts +12 -11
- package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
- package/dist/unstable/http/HttpPlatform.js +36 -10
- package/dist/unstable/http/HttpPlatform.js.map +1 -1
- package/dist/unstable/http/HttpRouter.d.ts +5 -1
- package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
- package/dist/unstable/http/HttpRouter.js +22 -8
- package/dist/unstable/http/HttpRouter.js.map +1 -1
- package/dist/unstable/http/HttpServer.d.ts +11 -42
- package/dist/unstable/http/HttpServer.d.ts.map +1 -1
- package/dist/unstable/http/HttpServer.js +16 -20
- package/dist/unstable/http/HttpServer.js.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRequest.js +11 -11
- package/dist/unstable/http/HttpServerRequest.js.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.js +1 -1
- package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts +9 -13
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +34 -44
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/HttpStaticServer.d.ts +2 -2
- package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
- package/dist/unstable/http/HttpStaticServer.js +19 -19
- package/dist/unstable/http/HttpStaticServer.js.map +1 -1
- package/dist/unstable/http/Mime.d.ts +28 -0
- package/dist/unstable/http/Mime.d.ts.map +1 -0
- package/dist/unstable/http/Mime.js +72 -0
- package/dist/unstable/http/Mime.js.map +1 -0
- package/dist/unstable/http/Multipart.d.ts +22 -9
- package/dist/unstable/http/Multipart.d.ts.map +1 -1
- package/dist/unstable/http/Multipart.js +26 -10
- package/dist/unstable/http/Multipart.js.map +1 -1
- package/dist/unstable/http/MultipartParser/internal/multipart.d.ts +1 -1
- package/dist/unstable/http/MultipartParser/internal/multipart.d.ts.map +1 -1
- package/dist/unstable/http/MultipartParser/internal/multipart.js +8 -3
- package/dist/unstable/http/MultipartParser/internal/multipart.js.map +1 -1
- package/dist/unstable/http/MultipartParser.d.ts +4 -3
- package/dist/unstable/http/MultipartParser.d.ts.map +1 -1
- package/dist/unstable/http/MultipartParser.js.map +1 -1
- package/dist/unstable/http/UrlParams.d.ts +0 -97
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +3 -104
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/http/index.d.ts +4 -0
- package/dist/unstable/http/index.d.ts.map +1 -1
- package/dist/unstable/http/index.js +4 -0
- package/dist/unstable/http/index.js.map +1 -1
- package/dist/unstable/http/internal/compression.js +8 -11
- package/dist/unstable/http/internal/compression.js.map +1 -1
- package/dist/unstable/http/internal/headers.d.ts +2 -0
- package/dist/unstable/http/internal/headers.d.ts.map +1 -0
- package/dist/unstable/http/internal/headers.js +5 -0
- package/dist/unstable/http/internal/headers.js.map +1 -0
- package/dist/unstable/http/internal/httpBody.js +8 -0
- package/dist/unstable/http/internal/httpBody.js.map +1 -1
- package/dist/unstable/http/internal/mimeTypes.d.ts +361 -0
- package/dist/unstable/http/internal/mimeTypes.d.ts.map +1 -0
- package/dist/unstable/http/internal/mimeTypes.js +363 -0
- package/dist/unstable/http/internal/mimeTypes.js.map +1 -0
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts +13 -0
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +23 -6
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts +4 -3
- package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +25 -13
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +8 -3
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.js +9 -6
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.js +3 -1
- package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js +7 -5
- package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.d.ts +12 -0
- package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.js +8 -10
- package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiTest.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiTest.js +8 -2
- package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +31 -20
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/net/IpInterface.d.ts +140 -0
- package/dist/unstable/net/IpInterface.d.ts.map +1 -0
- package/dist/unstable/net/IpInterface.js +149 -0
- package/dist/unstable/net/IpInterface.js.map +1 -0
- package/dist/unstable/net/IpNetwork.d.ts +227 -0
- package/dist/unstable/net/IpNetwork.d.ts.map +1 -0
- package/dist/unstable/net/IpNetwork.js +239 -0
- package/dist/unstable/net/IpNetwork.js.map +1 -0
- package/dist/unstable/net/NetAddress.d.ts +705 -0
- package/dist/unstable/net/NetAddress.d.ts.map +1 -0
- package/dist/unstable/net/NetAddress.js +956 -0
- package/dist/unstable/net/NetAddress.js.map +1 -0
- package/dist/unstable/net/index.d.ts +16 -0
- package/dist/unstable/net/index.d.ts.map +1 -0
- package/dist/unstable/net/index.js +17 -0
- package/dist/unstable/net/index.js.map +1 -0
- package/dist/unstable/observability/OtlpExporter.d.ts +1 -0
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +4 -6
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.js +9 -9
- package/dist/unstable/observability/OtlpLogger.js.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.js +9 -8
- package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
- package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpResource.js +2 -2
- package/dist/unstable/observability/OtlpResource.js.map +1 -1
- package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.js +82 -55
- package/dist/unstable/observability/OtlpTracer.js.map +1 -1
- package/dist/unstable/observability/internal/otlpEnv.d.ts +1 -1
- package/dist/unstable/observability/internal/otlpEnv.d.ts.map +1 -1
- package/dist/unstable/observability/internal/otlpEnv.js +5 -9
- package/dist/unstable/observability/internal/otlpEnv.js.map +1 -1
- package/dist/unstable/persistence/PersistedCache.js +1 -1
- package/dist/unstable/persistence/PersistedCache.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts +114 -14
- package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.js +799 -234
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +28 -15
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +33 -41
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/process/ChildProcess.d.ts +8 -2
- package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcess.js +7 -2
- package/dist/unstable/process/ChildProcess.js.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +6 -3
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +3 -6
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +6 -3
- package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +2 -3
- package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts +2 -2
- 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 +6 -4
- package/dist/unstable/reactivity/Hydration.d.ts.map +1 -1
- package/dist/unstable/reactivity/Hydration.js +20 -6
- package/dist/unstable/reactivity/Hydration.js.map +1 -1
- package/dist/unstable/reactivity/Reactivity.d.ts +26 -26
- package/dist/unstable/reactivity/Reactivity.d.ts.map +1 -1
- package/dist/unstable/reactivity/Reactivity.js +10 -12
- package/dist/unstable/reactivity/Reactivity.js.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +64 -64
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcClientError.d.ts +1 -1
- package/dist/unstable/rpc/RpcMessage.d.ts +3 -1
- package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcMessage.js +1 -1
- package/dist/unstable/rpc/RpcMessage.js.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.js +7 -5
- package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.d.ts +5 -39
- package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.js +22 -115
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +104 -57
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/Model.js +7 -6
- package/dist/unstable/schema/Model.js.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.js +3 -0
- package/dist/unstable/schema/VariantSchema.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +287 -102
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +408 -215
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/socket/SocketServer.d.ts +5 -32
- package/dist/unstable/socket/SocketServer.d.ts.map +1 -1
- package/dist/unstable/socket/SocketServer.js +3 -3
- package/dist/unstable/socket/SocketServer.js.map +1 -1
- package/dist/unstable/sql/SqlClient.d.ts +20 -0
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlClient.js +14 -7
- package/dist/unstable/sql/SqlClient.js.map +1 -1
- package/dist/unstable/sql/SqlConnection.d.ts +15 -0
- package/dist/unstable/sql/SqlConnection.d.ts.map +1 -1
- package/dist/unstable/sql/SqlConnection.js.map +1 -1
- package/dist/unstable/sql/SqlModel.d.ts +1 -1
- package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
- package/dist/unstable/sql/Statement.d.ts +13 -5
- package/dist/unstable/sql/Statement.d.ts.map +1 -1
- package/dist/unstable/sql/Statement.js +29 -15
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/workers/Transferable.js +1 -1
- package/dist/unstable/workers/Worker.d.ts.map +1 -1
- package/dist/unstable/workers/Worker.js +3 -1
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workflow/Activity.d.ts +7 -0
- package/dist/unstable/workflow/Activity.d.ts.map +1 -1
- package/dist/unstable/workflow/Activity.js +14 -4
- package/dist/unstable/workflow/Activity.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.js +1 -1
- package/dist/unstable/workflow/DurableClock.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.d.ts +2 -2
- package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/DurableQueue.d.ts +8 -0
- package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableQueue.js +8 -0
- package/dist/unstable/workflow/DurableQueue.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +5 -0
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +70 -12
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +6 -0
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +11 -0
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +7 -9
- package/src/Array.ts +118 -67
- package/src/BigDecimal.ts +50 -28
- package/src/ByteSize.ts +838 -0
- package/src/Cache.ts +17 -3
- package/src/Cause.ts +1 -1
- package/src/Channel.ts +183 -48
- package/src/Chunk.ts +65 -36
- package/src/Config.ts +237 -248
- package/src/ConfigProvider.ts +7 -8
- package/src/Context.ts +31 -0
- package/src/Cron.ts +2 -2
- package/src/Crypto.ts +3 -2
- package/src/Deferred.ts +7 -6
- package/src/Duration.ts +1 -1
- package/src/Effect.ts +226 -122
- package/src/Effectable.ts +78 -9
- package/src/Encoding.ts +101 -11
- package/src/Equal.ts +1 -1
- package/src/ExecutionPlan.ts +3 -0
- package/src/Fiber.ts +33 -8
- package/src/FiberHandle.ts +3 -3
- package/src/FiberMap.ts +19 -10
- package/src/FileSystem.ts +55 -230
- package/src/Formatter.ts +21 -3
- package/src/Graph.ts +55 -25
- package/src/Hash.ts +5 -16
- package/src/HashRing.ts +9 -2
- package/src/HashSet.ts +56 -0
- package/src/Iterable.ts +66 -41
- package/src/JsonPatch.ts +4 -4
- package/src/JsonPointer.ts +97 -4
- package/src/JsonSchema.ts +8 -26
- package/src/Layer.ts +59 -18
- package/src/LayerMap.ts +8 -6
- package/src/LayerRef.ts +7 -5
- package/src/Logger.ts +125 -18
- package/src/ManagedRuntime.ts +1 -1
- package/src/Match.ts +33 -14
- package/src/Metric.ts +24 -21
- package/src/MutableHashMap.ts +1 -1
- package/src/MutableHashSet.ts +1 -1
- package/src/MutableList.ts +18 -2
- package/src/Number.ts +7 -1
- package/src/Optic.ts +8 -4
- package/src/Option.ts +1 -1
- package/src/Order.ts +3 -1
- package/src/PartitionedSemaphore.ts +1 -2
- package/src/Path.ts +1 -1
- package/src/PlatformError.ts +1 -1
- package/src/Pool.ts +125 -8
- package/src/PrimaryKey.ts +1 -1
- package/src/PubSub.ts +32 -20
- package/src/Queue.ts +119 -28
- package/src/Random.ts +20 -6
- package/src/RcMap.ts +20 -13
- package/src/Redacted.ts +1 -1
- package/src/RequestResolver.ts +49 -26
- package/src/Result.ts +1 -1
- package/src/Scheduler.ts +21 -11
- package/src/Schema.ts +4809 -6368
- package/src/SchemaAST.ts +1031 -284
- package/src/SchemaGetter.ts +75 -21
- package/src/SchemaIssue.ts +259 -15
- package/src/SchemaParser.ts +2 -12
- package/src/SchemaRepresentation.ts +1593 -29
- package/src/SchemaTransformation.ts +145 -22
- package/src/ScopedCache.ts +10 -3
- package/src/Sink.ts +31 -15
- package/src/Stream.ts +294 -76
- package/src/String.ts +20 -9
- package/src/Struct.ts +8 -4
- package/src/SynchronizedRef.ts +3 -5
- package/src/Terminal.ts +3 -3
- package/src/Tracer.ts +43 -14
- package/src/Tuple.ts +3 -1
- package/src/TxChunk.ts +1 -1
- package/src/TxDeferred.ts +1 -1
- package/src/TxHashMap.ts +1 -1
- package/src/TxHashSet.ts +92 -11
- package/src/TxPriorityQueue.ts +1 -1
- package/src/TxPubSub.ts +1 -1
- package/src/TxQueue.ts +22 -17
- package/src/TxReentrantLock.ts +29 -1
- package/src/TxRef.ts +1 -1
- package/src/TxSemaphore.ts +1 -1
- package/src/TxSubscriptionRef.ts +1 -1
- package/src/Types.ts +40 -17
- package/src/Utils.ts +3 -1
- package/src/index.ts +5 -0
- package/src/internal/arbitrary/model.ts +701 -0
- package/src/internal/arbitrary/regexp.ts +855 -0
- package/src/internal/arbitrary/runner.ts +608 -0
- package/src/internal/arbitrary/schema.ts +1800 -0
- package/src/internal/core.ts +48 -22
- package/src/internal/count.ts +14 -0
- package/src/internal/dateTime.ts +8 -10
- package/src/internal/effect.ts +475 -295
- package/src/internal/graph.ts +6 -1
- package/src/internal/hashMap.ts +5 -3
- package/src/internal/hashSet.ts +1 -1
- package/src/internal/matcher.ts +34 -19
- package/src/internal/metric.ts +1 -1
- package/src/internal/option.ts +8 -6
- package/src/internal/random.ts +20 -7
- package/src/internal/rcRef.ts +10 -7
- package/src/internal/references.ts +1 -0
- package/src/internal/request.ts +12 -7
- package/src/internal/result.ts +15 -11
- package/src/internal/schema/annotations.ts +3 -3
- package/src/internal/schema/fromJsonSchemaDocument.ts +14 -29
- package/src/internal/schema/fromRepresentation.ts +5 -3
- package/src/internal/schema/{schema.ts → make.ts} +0 -40
- package/src/internal/schema/parser.ts +8 -0
- package/src/internal/schema/standardSchema.ts +125 -0
- package/src/internal/schema/toCodeDocument.ts +58 -44
- package/src/internal/schema/toCodec.ts +312 -0
- package/src/internal/schema/toDifferJsonPatch.ts +24 -0
- package/src/internal/schema/toEncoderXml.ts +110 -0
- package/src/internal/schema/toEquivalence.ts +76 -0
- package/src/internal/schema/toFormatter.ts +230 -0
- package/src/internal/schema/toIso.ts +20 -0
- package/src/internal/schema/toJsonSchemaDocument.ts +125 -67
- package/src/internal/schema/toRepresentation.ts +1 -1
- package/src/internal/schemaError.ts +8 -0
- package/src/internal/stream.ts +14 -6
- package/src/internal/tracer.ts +4 -0
- package/src/internal/trie.ts +5 -2
- package/src/internal/uuid.ts +4 -0
- package/src/testing/TestSchema.ts +36 -30
- package/src/testing/index.ts +0 -5
- package/src/unstable/ai/AiError.ts +69 -5
- package/src/unstable/ai/AnthropicStructuredOutput.ts +4 -1
- package/src/unstable/ai/Chat.ts +35 -36
- package/src/unstable/ai/EmbeddingModel.ts +27 -15
- package/src/unstable/ai/LanguageModel.ts +283 -100
- package/src/unstable/ai/McpServer.ts +36 -20
- package/src/unstable/ai/OpenAiStructuredOutput.ts +4 -1
- package/src/unstable/ai/Prompt.ts +19 -4
- package/src/unstable/ai/Response.ts +107 -189
- package/src/unstable/ai/Tokenizer.ts +4 -5
- package/src/unstable/ai/Tool.ts +58 -35
- package/src/unstable/ai/Toolkit.ts +43 -37
- package/src/unstable/ai/internal/structured-output.ts +5 -5
- package/src/unstable/arbitrary/Arbitrary.ts +715 -0
- package/src/unstable/arbitrary/index.ts +10 -0
- package/src/unstable/cli/Argument.ts +111 -115
- package/src/unstable/cli/CliError.ts +2 -0
- package/src/unstable/cli/CliOutput.ts +40 -3
- package/src/unstable/cli/Command.ts +74 -74
- package/src/unstable/cli/Completions.ts +4 -4
- package/src/unstable/cli/Flag.ts +158 -169
- package/src/unstable/cli/GlobalFlag.ts +13 -13
- package/src/unstable/cli/Param.ts +150 -159
- package/src/unstable/cli/Primitive.ts +75 -76
- package/src/unstable/cli/Prompt.ts +88 -87
- package/src/unstable/cli/internal/completions/descriptor.ts +23 -11
- package/src/unstable/cli/internal/completions/zsh.ts +2 -2
- package/src/unstable/cli/internal/config.ts +4 -4
- package/src/unstable/cli/internal/parser.ts +1 -1
- package/src/unstable/cli/internal/wizard.ts +18 -13
- package/src/unstable/cluster/ClusterSchema.ts +19 -1
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +66 -16
- package/src/unstable/cluster/Entity.ts +3 -0
- package/src/unstable/cluster/EntityProxyServer.ts +6 -2
- package/src/unstable/cluster/Envelope.ts +3 -3
- package/src/unstable/cluster/HttpRunner.ts +7 -2
- package/src/unstable/cluster/MessageStorage.ts +62 -21
- package/src/unstable/cluster/Reply.ts +2 -2
- package/src/unstable/cluster/Sharding.ts +44 -19
- package/src/unstable/cluster/ShardingConfig.ts +23 -23
- package/src/unstable/cluster/SocketRunner.ts +5 -4
- package/src/unstable/cluster/SqlMessageStorage.ts +12 -8
- package/src/unstable/cluster/SqlRunnerStorage.ts +18 -10
- package/src/unstable/cluster/internal/clusterAbandon.ts +14 -0
- package/src/unstable/cluster/internal/entityManager.ts +12 -4
- package/src/unstable/cluster/internal/interruptors.ts +58 -1
- package/src/unstable/cluster/internal/resourceRef.ts +15 -7
- package/src/unstable/devtools/DevToolsClient.ts +13 -3
- package/src/unstable/encoding/Ini.ts +2 -0
- package/src/unstable/encoding/SchemaBinary.ts +150 -44
- package/src/unstable/encoding/Sse.ts +1 -1
- package/src/unstable/encoding/Toml.ts +7 -5
- package/src/unstable/encoding/Yaml.ts +18 -5
- package/src/unstable/encoding/index.ts +0 -5
- package/src/unstable/eventlog/Event.ts +7 -7
- package/src/unstable/eventlog/EventJournal.ts +9 -9
- package/src/unstable/eventlog/EventLog.ts +5 -5
- package/src/unstable/eventlog/EventLogMessage.ts +25 -15
- package/src/unstable/eventlog/EventLogRemote.ts +15 -4
- package/src/unstable/eventlog/EventLogServerUnencrypted.ts +2 -2
- package/src/unstable/eventlog/SqlEventJournal.ts +32 -9
- package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +11 -1
- package/src/unstable/http/Cookies.ts +2 -102
- package/src/unstable/http/FetchHttpClient.ts +1 -1
- package/src/unstable/http/FindMyWay/internal/router.ts +139 -33
- package/src/unstable/http/FindMyWay.ts +15 -5
- package/src/unstable/http/Headers.ts +3 -48
- package/src/unstable/http/HttpBody.ts +107 -36
- package/src/unstable/http/HttpClient.ts +41 -30
- package/src/unstable/http/HttpClientRequest.ts +32 -18
- package/src/unstable/http/HttpClientResponse.ts +16 -3
- package/src/unstable/http/HttpEffect.ts +145 -73
- package/src/unstable/http/HttpIncomingMessage.ts +4 -4
- package/src/unstable/http/HttpMiddleware.ts +43 -24
- package/src/unstable/http/HttpPlatform.ts +62 -20
- package/src/unstable/http/HttpRouter.ts +27 -16
- package/src/unstable/http/HttpServer.ts +18 -57
- package/src/unstable/http/HttpServerRequest.ts +17 -15
- package/src/unstable/http/HttpServerRespondable.ts +1 -1
- package/src/unstable/http/HttpServerResponse.ts +49 -40
- package/src/unstable/http/HttpStaticServer.ts +30 -28
- package/src/unstable/http/Mime.ts +76 -0
- package/src/unstable/http/Multipart.ts +35 -18
- package/src/unstable/http/MultipartParser/internal/multipart.ts +10 -3
- package/src/unstable/http/MultipartParser.ts +4 -3
- package/src/unstable/http/UrlParams.ts +3 -161
- package/src/unstable/http/index.ts +5 -0
- package/src/unstable/http/internal/compression.ts +11 -12
- package/src/unstable/http/internal/headers.ts +7 -0
- package/src/unstable/http/internal/httpBody.ts +9 -0
- package/src/unstable/http/internal/mimeTypes.ts +395 -0
- package/src/unstable/httpapi/HttpApiBuilder.ts +52 -6
- package/src/unstable/httpapi/HttpApiClient.ts +44 -24
- package/src/unstable/httpapi/HttpApiEndpoint.ts +24 -11
- package/src/unstable/httpapi/HttpApiError.ts +3 -1
- package/src/unstable/httpapi/HttpApiMiddleware.ts +7 -5
- package/src/unstable/httpapi/HttpApiSchema.ts +14 -7
- package/src/unstable/httpapi/HttpApiTest.ts +6 -1
- package/src/unstable/httpapi/OpenApi.ts +32 -22
- package/src/unstable/net/IpInterface.ts +242 -0
- package/src/unstable/net/IpNetwork.ts +357 -0
- package/src/unstable/net/NetAddress.ts +1271 -0
- package/src/unstable/net/index.ts +20 -0
- package/src/unstable/observability/OtlpExporter.ts +5 -6
- package/src/unstable/observability/OtlpLogger.ts +9 -9
- package/src/unstable/observability/OtlpMetrics.ts +9 -8
- package/src/unstable/observability/OtlpResource.ts +5 -4
- package/src/unstable/observability/OtlpTracer.ts +103 -81
- package/src/unstable/observability/internal/otlpEnv.ts +10 -13
- package/src/unstable/persistence/PersistedCache.ts +1 -1
- package/src/unstable/persistence/PersistedQueue.ts +1100 -291
- package/src/unstable/persistence/RateLimiter.ts +64 -58
- package/src/unstable/process/ChildProcess.ts +15 -4
- package/src/unstable/process/ChildProcessSpawner.ts +1 -1
- package/src/unstable/reactivity/Atom.ts +6 -3
- package/src/unstable/reactivity/AtomHttpApi.ts +21 -10
- package/src/unstable/reactivity/AtomRegistry.ts +2 -4
- package/src/unstable/reactivity/AtomRpc.ts +6 -5
- package/src/unstable/reactivity/Hydration.ts +26 -7
- package/src/unstable/reactivity/Reactivity.ts +49 -36
- package/src/unstable/rpc/RpcClient.ts +62 -59
- package/src/unstable/rpc/RpcMessage.ts +3 -1
- package/src/unstable/rpc/RpcMiddleware.ts +7 -5
- package/src/unstable/rpc/RpcSerialization.ts +27 -117
- package/src/unstable/rpc/RpcServer.ts +143 -80
- package/src/unstable/schema/Model.ts +8 -7
- package/src/unstable/schema/VariantSchema.ts +3 -0
- package/src/unstable/socket/Socket.ts +714 -383
- package/src/unstable/socket/SocketServer.ts +5 -35
- package/src/unstable/sql/SqlClient.ts +42 -7
- package/src/unstable/sql/SqlConnection.ts +18 -0
- package/src/unstable/sql/SqlModel.ts +1 -1
- package/src/unstable/sql/Statement.ts +46 -20
- package/src/unstable/workers/Transferable.ts +1 -1
- package/src/unstable/workers/Worker.ts +3 -1
- package/src/unstable/workflow/Activity.ts +20 -9
- package/src/unstable/workflow/DurableClock.ts +1 -1
- package/src/unstable/workflow/DurableDeferred.ts +6 -0
- package/src/unstable/workflow/DurableQueue.ts +8 -0
- package/src/unstable/workflow/Workflow.ts +105 -28
- package/src/unstable/workflow/WorkflowEngine.ts +22 -0
- package/dist/internal/schema/schema.d.ts.map +0 -1
- package/dist/internal/schema/schema.js.map +0 -1
- package/dist/internal/schema/toArbitrary.d.ts +0 -2
- package/dist/internal/schema/toArbitrary.d.ts.map +0 -1
- package/dist/internal/schema/toArbitrary.js +0 -705
- package/dist/internal/schema/toArbitrary.js.map +0 -1
- package/dist/testing/FastCheck.d.ts +0 -90
- package/dist/testing/FastCheck.d.ts.map +0 -1
- package/dist/testing/FastCheck.js +0 -90
- package/dist/testing/FastCheck.js.map +0 -1
- package/dist/unstable/encoding/Msgpack.d.ts +0 -185
- package/dist/unstable/encoding/Msgpack.d.ts.map +0 -1
- package/dist/unstable/encoding/Msgpack.js +0 -227
- package/dist/unstable/encoding/Msgpack.js.map +0 -1
- package/src/internal/schema/toArbitrary.ts +0 -843
- package/src/testing/FastCheck.ts +0 -90
- package/src/unstable/encoding/Msgpack.ts +0 -432
- /package/dist/internal/{schema → arbitrary}/schema.d.ts +0 -0
|
@@ -1,843 +0,0 @@
|
|
|
1
|
-
import * as Array from "../../Array.ts"
|
|
2
|
-
import * as Boolean from "../../Boolean.ts"
|
|
3
|
-
import type * as Combiner from "../../Combiner.ts"
|
|
4
|
-
import * as Equal from "../../Equal.ts"
|
|
5
|
-
import { memoize } from "../../Function.ts"
|
|
6
|
-
import * as Number from "../../Number.ts"
|
|
7
|
-
import * as Option from "../../Option.ts"
|
|
8
|
-
import * as Order from "../../Order.ts"
|
|
9
|
-
import * as Predicate from "../../Predicate.ts"
|
|
10
|
-
import type * as Schema from "../../Schema.ts"
|
|
11
|
-
import * as SchemaAST from "../../SchemaAST.ts"
|
|
12
|
-
import * as Struct from "../../Struct.ts"
|
|
13
|
-
import type * as FastCheck from "../../testing/FastCheck.ts"
|
|
14
|
-
import * as UndefinedOr from "../../UndefinedOr.ts"
|
|
15
|
-
import { errorWithPath } from "../errors.ts"
|
|
16
|
-
import * as InternalRecord from "../record.ts"
|
|
17
|
-
import * as InternalAnnotations from "./annotations.ts"
|
|
18
|
-
|
|
19
|
-
const arbitraryMemoMap = new WeakMap<SchemaAST.AST, LazyArbitraryWithContext<any>>()
|
|
20
|
-
const suspendDepthIdentifierMap = new WeakMap<SchemaAST.Suspend, FastCheck.DepthIdentifier>()
|
|
21
|
-
const emptyRecursionStack: RecursionStack = []
|
|
22
|
-
|
|
23
|
-
type RecursionStack = ReadonlyArray<SchemaAST.Suspend>
|
|
24
|
-
|
|
25
|
-
type Context = Schema.Annotations.ToArbitrary.Context
|
|
26
|
-
type Constraint = Schema.Annotations.ToArbitrary.GenerationConstraint
|
|
27
|
-
type OrderedConstraint = Schema.Annotations.ToArbitrary.OrderedConstraint<any>
|
|
28
|
-
type ArbitraryFilter = Schema.Annotations.ToArbitrary.Filter
|
|
29
|
-
|
|
30
|
-
type Lazy<T> = (fc: typeof FastCheck, ctx: Context, recursionStack: RecursionStack) => FastCheck.Arbitrary<T>
|
|
31
|
-
type LazyOption<T> = (
|
|
32
|
-
fc: typeof FastCheck,
|
|
33
|
-
ctx: Context,
|
|
34
|
-
recursionStack: RecursionStack
|
|
35
|
-
) => FastCheck.Arbitrary<T> | undefined
|
|
36
|
-
|
|
37
|
-
function arbitraryError(what: string) {
|
|
38
|
-
return new Error(`Unable to derive an arbitrary for ${what}`)
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
const entryComparator = ([a]: readonly [any, any], [b]: readonly [any, any]) => Equal.equals(a, b)
|
|
42
|
-
|
|
43
|
-
function applyChecks(ast: SchemaAST.AST, filters: Array<SchemaAST.Filter<any>>, arbitrary: FastCheck.Arbitrary<any>) {
|
|
44
|
-
return filters.reduce(
|
|
45
|
-
(acc, filter) => acc.filter((a) => filter.run(a, ast, SchemaAST.defaultParseOptions) === undefined),
|
|
46
|
-
arbitrary
|
|
47
|
-
)
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
function validateArrayConstraints(constraint: FastCheck.ArrayConstraints | undefined, label: string) {
|
|
51
|
-
if (
|
|
52
|
-
constraint?.minLength !== undefined && constraint.maxLength !== undefined &&
|
|
53
|
-
constraint.minLength > constraint.maxLength
|
|
54
|
-
) {
|
|
55
|
-
throw arbitraryError(`${label} constraints`)
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
function lengthToFastCheckConstraints(
|
|
60
|
-
constraint: { readonly minLength?: number | undefined; readonly maxLength?: number | undefined } | undefined
|
|
61
|
-
) {
|
|
62
|
-
return constraint === undefined || (constraint.minLength === undefined && constraint.maxLength === undefined)
|
|
63
|
-
? undefined
|
|
64
|
-
: {
|
|
65
|
-
...(constraint.minLength !== undefined ? { minLength: constraint.minLength } : {}),
|
|
66
|
-
...(constraint.maxLength !== undefined ? { maxLength: constraint.maxLength } : {})
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
function arrayWithConstraints(
|
|
71
|
-
fc: typeof FastCheck,
|
|
72
|
-
item: FastCheck.Arbitrary<any>,
|
|
73
|
-
constraint: FastCheck.ArrayConstraints | undefined,
|
|
74
|
-
comparator?: ((a: any, b: any) => boolean) | undefined
|
|
75
|
-
) {
|
|
76
|
-
return comparator
|
|
77
|
-
? fc.uniqueArray(item, { ...constraint, comparator })
|
|
78
|
-
: fc.array(item, constraint)
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
function array(fc: typeof FastCheck, ctx: Context, item: FastCheck.Arbitrary<any>, terminal = false) {
|
|
82
|
-
const constraint = ctx.constraint
|
|
83
|
-
const arrayConstraints = lengthToFastCheckConstraints(constraint)
|
|
84
|
-
validateArrayConstraints(arrayConstraints, "array")
|
|
85
|
-
return arrayWithConstraints(
|
|
86
|
-
fc,
|
|
87
|
-
item,
|
|
88
|
-
terminal ? { ...arrayConstraints, maxLength: arrayConstraints?.minLength ?? 0 } : arrayConstraints,
|
|
89
|
-
constraint?.unique ? Equal.equals : undefined
|
|
90
|
-
)
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
function appendArray(
|
|
94
|
-
fc: typeof FastCheck,
|
|
95
|
-
out: FastCheck.Arbitrary<Array<any>>,
|
|
96
|
-
len: number,
|
|
97
|
-
rest: FastCheck.Arbitrary<ReadonlyArray<any>>
|
|
98
|
-
) {
|
|
99
|
-
return out.chain((as) => as.length < len ? fc.constant(as) : rest.map((rest) => [...as, ...rest]))
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
function appendObjectEntries(
|
|
103
|
-
out: FastCheck.Arbitrary<any>,
|
|
104
|
-
entries: FastCheck.Arbitrary<Array<readonly [PropertyKey, any]>>
|
|
105
|
-
) {
|
|
106
|
-
return out.chain((o) => entries.map((entries) => ({ ...Object.fromEntries(entries), ...o })))
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
const max = UndefinedOr.makeReducer(Number.ReducerMax)
|
|
110
|
-
const min = UndefinedOr.makeReducer(Number.ReducerMin)
|
|
111
|
-
const or = UndefinedOr.makeReducer(Boolean.ReducerOr)
|
|
112
|
-
const concat = UndefinedOr.makeReducer(Array.makeReducerConcat())
|
|
113
|
-
|
|
114
|
-
const combiner: Combiner.Combiner<any> = Struct.makeCombiner({
|
|
115
|
-
integer: or,
|
|
116
|
-
maxLength: min,
|
|
117
|
-
minLength: max,
|
|
118
|
-
noInfinity: or,
|
|
119
|
-
noNaN: or,
|
|
120
|
-
patterns: concat,
|
|
121
|
-
unique: or
|
|
122
|
-
}, {
|
|
123
|
-
omitKeyWhen: Predicate.isUndefined
|
|
124
|
-
})
|
|
125
|
-
|
|
126
|
-
function mergeOrderedBound<T>(
|
|
127
|
-
order: Order.Order<T>,
|
|
128
|
-
self: T | undefined,
|
|
129
|
-
selfExclusive: boolean | undefined,
|
|
130
|
-
that: T | undefined,
|
|
131
|
-
thatExclusive: boolean | undefined,
|
|
132
|
-
takeComparison: -1 | 1
|
|
133
|
-
): readonly [T | undefined, boolean | undefined] {
|
|
134
|
-
if (that === undefined || self === undefined) {
|
|
135
|
-
return that === undefined ? [self, selfExclusive] : [that, thatExclusive]
|
|
136
|
-
}
|
|
137
|
-
const comparison = order(self, that)
|
|
138
|
-
return comparison === takeComparison
|
|
139
|
-
? [that, thatExclusive]
|
|
140
|
-
: comparison === 0
|
|
141
|
-
? [self, selfExclusive || thatExclusive]
|
|
142
|
-
: [self, selfExclusive]
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
function mergeOrderedConstraints(self: OrderedConstraint | undefined, that: OrderedConstraint) {
|
|
146
|
-
if (self === undefined) {
|
|
147
|
-
return that
|
|
148
|
-
}
|
|
149
|
-
if (self.order !== that.order) {
|
|
150
|
-
throw new Error("Cannot merge ordered arbitrary constraints with different Order instances")
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
const [minimum, exclusiveMinimum] = mergeOrderedBound(
|
|
154
|
-
self.order,
|
|
155
|
-
self.minimum,
|
|
156
|
-
self.exclusiveMinimum,
|
|
157
|
-
that.minimum,
|
|
158
|
-
that.exclusiveMinimum,
|
|
159
|
-
-1
|
|
160
|
-
)
|
|
161
|
-
const [maximum, exclusiveMaximum] = mergeOrderedBound(
|
|
162
|
-
self.order,
|
|
163
|
-
self.maximum,
|
|
164
|
-
self.exclusiveMaximum,
|
|
165
|
-
that.maximum,
|
|
166
|
-
that.exclusiveMaximum,
|
|
167
|
-
1
|
|
168
|
-
)
|
|
169
|
-
|
|
170
|
-
return {
|
|
171
|
-
order: self.order,
|
|
172
|
-
...(minimum !== undefined ? { minimum } : {}),
|
|
173
|
-
...(exclusiveMinimum !== undefined ? { exclusiveMinimum } : {}),
|
|
174
|
-
...(maximum !== undefined ? { maximum } : {}),
|
|
175
|
-
...(exclusiveMaximum !== undefined ? { exclusiveMaximum } : {})
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
function mergeConstraint(self: Constraint | undefined, that: Constraint): Constraint {
|
|
180
|
-
const { ordered: selfOrdered, ...selfRest } = self ?? {}
|
|
181
|
-
const { ordered: thatOrdered, ...thatRest } = that
|
|
182
|
-
const ordered = thatOrdered === undefined
|
|
183
|
-
? selfOrdered
|
|
184
|
-
: mergeOrderedConstraints(selfOrdered, thatOrdered)
|
|
185
|
-
const out = combiner.combine(selfRest, thatRest)
|
|
186
|
-
return {
|
|
187
|
-
...out,
|
|
188
|
-
...(ordered === undefined ? {} : { ordered })
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
function collectChecks(checks: SchemaAST.Checks | undefined) {
|
|
193
|
-
const filters: Array<SchemaAST.Filter<any>> = []
|
|
194
|
-
const arbitraries: Array<ArbitraryFilter> = []
|
|
195
|
-
function visit(check: SchemaAST.Check<any>) {
|
|
196
|
-
if (check.annotations?.arbitrary) {
|
|
197
|
-
arbitraries.push(check.annotations.arbitrary)
|
|
198
|
-
}
|
|
199
|
-
if (check._tag !== "Filter") {
|
|
200
|
-
for (const child of check.checks) {
|
|
201
|
-
visit(child)
|
|
202
|
-
}
|
|
203
|
-
} else {
|
|
204
|
-
filters.push(check)
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
checks?.forEach(visit)
|
|
208
|
-
return { filters, arbitraries }
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
function constraintContext(arbitraries: Array<ArbitraryFilter>): (ctx: Context) => Context {
|
|
212
|
-
const constraintAnnotations = arbitraries.map(({ constraint }) => constraint).filter(Predicate.isNotUndefined)
|
|
213
|
-
return (ctx) => {
|
|
214
|
-
const constraint = constraintAnnotations.reduce(
|
|
215
|
-
(acc: Constraint | undefined, c) => mergeConstraint(acc, c),
|
|
216
|
-
ctx.constraint
|
|
217
|
-
)
|
|
218
|
-
return { ...ctx, constraint }
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
function resetContext(ctx: Context) {
|
|
223
|
-
return { ...ctx, constraint: undefined }
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
function objectEntriesConstraints(ast: SchemaAST.Objects, constraint: Constraint | undefined, requiredKeys: number) {
|
|
227
|
-
if (constraint === undefined || (constraint.minLength === undefined && constraint.maxLength === undefined)) {
|
|
228
|
-
return undefined
|
|
229
|
-
}
|
|
230
|
-
if (
|
|
231
|
-
constraint.minLength !== undefined &&
|
|
232
|
-
ast.indexSignatures.length === 0 &&
|
|
233
|
-
constraint.minLength > ast.propertySignatures.length
|
|
234
|
-
) {
|
|
235
|
-
throw arbitraryError("object property constraints")
|
|
236
|
-
}
|
|
237
|
-
const out: FastCheck.ArrayConstraints = {}
|
|
238
|
-
if (constraint.minLength !== undefined) {
|
|
239
|
-
out.minLength = Math.max(0, constraint.minLength - requiredKeys)
|
|
240
|
-
}
|
|
241
|
-
if (constraint.maxLength !== undefined) {
|
|
242
|
-
out.maxLength = constraint.maxLength - requiredKeys
|
|
243
|
-
if (out.maxLength < 0) {
|
|
244
|
-
throw arbitraryError("object property constraints")
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
validateArrayConstraints(out, "object property")
|
|
248
|
-
return out
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
function objectWithOptionalCount(
|
|
252
|
-
fc: typeof FastCheck,
|
|
253
|
-
pss: Record<PropertyKey, FastCheck.Arbitrary<any>>,
|
|
254
|
-
orderedNames: ReadonlyArray<PropertyKey>,
|
|
255
|
-
requiredKeys: ReadonlyArray<PropertyKey>,
|
|
256
|
-
optionalNames: ReadonlyArray<PropertyKey>,
|
|
257
|
-
constraint: Constraint
|
|
258
|
-
) {
|
|
259
|
-
const requiredCount = requiredKeys.length
|
|
260
|
-
if (constraint.maxLength !== undefined && constraint.maxLength < requiredCount) {
|
|
261
|
-
throw arbitraryError("object property constraints")
|
|
262
|
-
}
|
|
263
|
-
const minOptional = constraint.minLength === undefined ? 0 : Math.max(0, constraint.minLength - requiredCount)
|
|
264
|
-
const maxOptional = constraint.maxLength === undefined
|
|
265
|
-
? optionalNames.length
|
|
266
|
-
: Math.min(optionalNames.length, constraint.maxLength - requiredCount)
|
|
267
|
-
if (minOptional > maxOptional) {
|
|
268
|
-
throw arbitraryError("object property constraints")
|
|
269
|
-
}
|
|
270
|
-
const full = fc.record<any>(pss, { requiredKeys: [...requiredKeys, ...optionalNames] })
|
|
271
|
-
const chosen = fc.shuffledSubarray([...optionalNames], { minLength: minOptional, maxLength: maxOptional })
|
|
272
|
-
return fc.tuple(full, chosen).map(([base, names]) => {
|
|
273
|
-
const keep = new Set<PropertyKey>([...requiredKeys, ...names])
|
|
274
|
-
const out: Record<PropertyKey, any> = {}
|
|
275
|
-
for (const name of orderedNames) {
|
|
276
|
-
if (keep.has(name)) {
|
|
277
|
-
InternalRecord.assignProperty(out, name, base[name])
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
return out
|
|
281
|
-
})
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
function toRangeConstraints<T extends number | bigint>(
|
|
285
|
-
ordered: OrderedConstraint | undefined,
|
|
286
|
-
min: (value: T, excluded: boolean) => T,
|
|
287
|
-
max: (value: T, excluded: boolean) => T,
|
|
288
|
-
error: string
|
|
289
|
-
) {
|
|
290
|
-
const out: { min?: T; max?: T } = {}
|
|
291
|
-
if (ordered?.minimum !== undefined) {
|
|
292
|
-
out.min = min(ordered.minimum as T, ordered.exclusiveMinimum === true)
|
|
293
|
-
}
|
|
294
|
-
if (ordered?.maximum !== undefined) {
|
|
295
|
-
out.max = max(ordered.maximum as T, ordered.exclusiveMaximum === true)
|
|
296
|
-
}
|
|
297
|
-
if (out.min !== undefined && out.max !== undefined && out.min > out.max) {
|
|
298
|
-
throw arbitraryError(error)
|
|
299
|
-
}
|
|
300
|
-
return out
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
function toIntegerConstraints(ordered: OrderedConstraint | undefined) {
|
|
304
|
-
return toRangeConstraints<number>(
|
|
305
|
-
ordered,
|
|
306
|
-
(minimum, excluded) => excluded ? Math.floor(minimum) + 1 : Math.ceil(minimum),
|
|
307
|
-
(maximum, excluded) => excluded ? Math.ceil(maximum) - 1 : Math.floor(maximum),
|
|
308
|
-
"integer constraints"
|
|
309
|
-
)
|
|
310
|
-
}
|
|
311
|
-
|
|
312
|
-
function toFloatConstraints(constraint: Constraint | undefined, ordered: OrderedConstraint | undefined) {
|
|
313
|
-
const out: FastCheck.FloatConstraints = {
|
|
314
|
-
...(constraint?.noInfinity ? { noDefaultInfinity: true } : {}),
|
|
315
|
-
...(constraint?.noNaN ? { noNaN: true } : {}),
|
|
316
|
-
...(ordered?.minimum !== undefined ? { min: ordered.minimum as number } : {}),
|
|
317
|
-
...(ordered?.exclusiveMinimum !== undefined ? { minExcluded: ordered.exclusiveMinimum } : {}),
|
|
318
|
-
...(ordered?.maximum !== undefined ? { max: ordered.maximum as number } : {}),
|
|
319
|
-
...(ordered?.exclusiveMaximum !== undefined ? { maxExcluded: ordered.exclusiveMaximum } : {})
|
|
320
|
-
}
|
|
321
|
-
if (
|
|
322
|
-
out.min !== undefined &&
|
|
323
|
-
out.max !== undefined &&
|
|
324
|
-
(out.min > out.max || (out.min === out.max && (out.minExcluded || out.maxExcluded)))
|
|
325
|
-
) {
|
|
326
|
-
throw arbitraryError("number constraints")
|
|
327
|
-
}
|
|
328
|
-
return out
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
function toBigIntConstraints(ordered: OrderedConstraint | undefined) {
|
|
332
|
-
return toRangeConstraints<bigint>(
|
|
333
|
-
ordered,
|
|
334
|
-
(minimum, excluded) => excluded ? minimum + BigInt(1) : minimum,
|
|
335
|
-
(maximum, excluded) => excluded ? maximum - BigInt(1) : maximum,
|
|
336
|
-
"the ordered bigint constraints"
|
|
337
|
-
)
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
interface LazyArbitraryWithContext<T> {
|
|
341
|
-
(fc: typeof FastCheck, ctx: Context, recursionStack?: RecursionStack): FastCheck.Arbitrary<T>
|
|
342
|
-
readonly terminal: (
|
|
343
|
-
fc: typeof FastCheck,
|
|
344
|
-
ctx: Context,
|
|
345
|
-
recursionStack?: RecursionStack
|
|
346
|
-
) => FastCheck.Arbitrary<T> | undefined
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
function makeLazy<T>(normal: Lazy<T>, terminal: LazyOption<T>): LazyArbitraryWithContext<T> {
|
|
350
|
-
const out =
|
|
351
|
-
((fc, ctx, recursionStack = emptyRecursionStack) => normal(fc, ctx, recursionStack)) as LazyArbitraryWithContext<T>
|
|
352
|
-
;(out as { terminal: LazyOption<T> }).terminal = (fc, ctx, recursionStack = emptyRecursionStack) =>
|
|
353
|
-
terminal(fc, ctx, recursionStack)
|
|
354
|
-
return out
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
function same<T>(f: Lazy<T>) {
|
|
358
|
-
return makeLazy(f, f)
|
|
359
|
-
}
|
|
360
|
-
|
|
361
|
-
function getSuspendRecursion(fc: typeof FastCheck, ast: SchemaAST.Suspend) {
|
|
362
|
-
const depthIdentifier = suspendDepthIdentifierMap.get(ast) ?? fc.createDepthIdentifier()
|
|
363
|
-
suspendDepthIdentifierMap.set(ast, depthIdentifier)
|
|
364
|
-
return { maxDepth: 2, depthIdentifier }
|
|
365
|
-
}
|
|
366
|
-
|
|
367
|
-
function oneOf<T>(fc: typeof FastCheck, arbitraries: ReadonlyArray<FastCheck.Arbitrary<T>>) {
|
|
368
|
-
return arbitraries.length === 0 ? undefined : arbitraries.length === 1 ? arbitraries[0] : fc.oneof(...arbitraries)
|
|
369
|
-
}
|
|
370
|
-
|
|
371
|
-
const finiteNumberConstraint: Constraint = {
|
|
372
|
-
noInfinity: true,
|
|
373
|
-
noNaN: true
|
|
374
|
-
}
|
|
375
|
-
|
|
376
|
-
function finiteNumberContext(ctx: Context): Context {
|
|
377
|
-
return {
|
|
378
|
-
...ctx,
|
|
379
|
-
constraint: finiteNumberConstraint
|
|
380
|
-
}
|
|
381
|
-
}
|
|
382
|
-
|
|
383
|
-
function applyCandidates(
|
|
384
|
-
fc: typeof FastCheck,
|
|
385
|
-
ctx: Context,
|
|
386
|
-
arbitraries: Array<ArbitraryFilter>,
|
|
387
|
-
base: FastCheck.Arbitrary<any> | undefined
|
|
388
|
-
) {
|
|
389
|
-
const weighted: Array<FastCheck.WeightedArbitrary<any>> = base === undefined
|
|
390
|
-
? []
|
|
391
|
-
: [{ arbitrary: base, weight: 1 }]
|
|
392
|
-
for (const { candidate } of arbitraries) {
|
|
393
|
-
if (!candidate) {
|
|
394
|
-
continue
|
|
395
|
-
}
|
|
396
|
-
const arbitrary = candidate.make(fc, ctx)
|
|
397
|
-
if (arbitrary === undefined) {
|
|
398
|
-
continue
|
|
399
|
-
}
|
|
400
|
-
const weight = candidate.weight ?? 1
|
|
401
|
-
if (!globalThis.Number.isInteger(weight) || weight <= 0) {
|
|
402
|
-
throw arbitraryError("a candidate with an invalid weight")
|
|
403
|
-
}
|
|
404
|
-
weighted.push({ arbitrary, weight })
|
|
405
|
-
}
|
|
406
|
-
return weighted.length === 0 ? undefined : weighted.length === 1 ? weighted[0].arbitrary : fc.oneof(...weighted)
|
|
407
|
-
}
|
|
408
|
-
|
|
409
|
-
function applyFilterLayer(
|
|
410
|
-
ast: SchemaAST.AST,
|
|
411
|
-
checks: ReturnType<typeof collectChecks>,
|
|
412
|
-
fc: typeof FastCheck,
|
|
413
|
-
ctx: Context,
|
|
414
|
-
base: FastCheck.Arbitrary<any> | undefined
|
|
415
|
-
) {
|
|
416
|
-
const out = applyCandidates(fc, ctx, checks.arbitraries, base)
|
|
417
|
-
return out === undefined ? undefined : applyChecks(ast, checks.filters, out)
|
|
418
|
-
}
|
|
419
|
-
|
|
420
|
-
function normalizeDerivation<T>(
|
|
421
|
-
output: Schema.Annotations.ToArbitrary.Output<T>,
|
|
422
|
-
hasTypeParameters: boolean
|
|
423
|
-
) {
|
|
424
|
-
if (!(typeof output === "object" && output !== null && "arbitrary" in output)) {
|
|
425
|
-
return { arbitrary: output, terminal: hasTypeParameters ? undefined : output }
|
|
426
|
-
}
|
|
427
|
-
const terminal = "terminal" in output ? output.terminal : hasTypeParameters ? undefined : output.arbitrary
|
|
428
|
-
return {
|
|
429
|
-
arbitrary: output.arbitrary,
|
|
430
|
-
terminal
|
|
431
|
-
}
|
|
432
|
-
}
|
|
433
|
-
|
|
434
|
-
function makeTypeParameters(
|
|
435
|
-
typeParameters: ReadonlyArray<LazyArbitraryWithContext<any>>,
|
|
436
|
-
fc: typeof FastCheck,
|
|
437
|
-
ctx: Context,
|
|
438
|
-
recursionStack: RecursionStack,
|
|
439
|
-
lazyNormal: boolean
|
|
440
|
-
) {
|
|
441
|
-
return typeParameters.map((tp) => ({
|
|
442
|
-
arbitrary: lazyNormal ? fc.constant(null).chain(() => tp(fc, ctx, recursionStack)) : tp(fc, ctx, recursionStack),
|
|
443
|
-
terminal: tp.terminal(fc, ctx, recursionStack)
|
|
444
|
-
}))
|
|
445
|
-
}
|
|
446
|
-
|
|
447
|
-
type BaseBuilder = (
|
|
448
|
-
fc: typeof FastCheck,
|
|
449
|
-
ctx: Context,
|
|
450
|
-
nextCtx: Context,
|
|
451
|
-
recursionStack: RecursionStack
|
|
452
|
-
) => FastCheck.Arbitrary<any> | undefined
|
|
453
|
-
|
|
454
|
-
function filterLayer(
|
|
455
|
-
ast: SchemaAST.AST,
|
|
456
|
-
checks: ReturnType<typeof collectChecks>,
|
|
457
|
-
normalBase: BaseBuilder,
|
|
458
|
-
terminalBase: BaseBuilder
|
|
459
|
-
): LazyArbitraryWithContext<any> {
|
|
460
|
-
const f = constraintContext(checks.arbitraries)
|
|
461
|
-
return makeLazy((fc, ctx, recursionStack) => {
|
|
462
|
-
const nextCtx = f(ctx)
|
|
463
|
-
return applyFilterLayer(ast, checks, fc, nextCtx, normalBase(fc, ctx, nextCtx, recursionStack))!
|
|
464
|
-
}, (fc, ctx, recursionStack) => {
|
|
465
|
-
const nextCtx = f(ctx)
|
|
466
|
-
return applyFilterLayer(ast, checks, fc, nextCtx, terminalBase(fc, ctx, nextCtx, recursionStack))
|
|
467
|
-
})
|
|
468
|
-
}
|
|
469
|
-
|
|
470
|
-
/** @internal */
|
|
471
|
-
export const memoized = memoize((ast: SchemaAST.AST) => recur(ast, []))
|
|
472
|
-
|
|
473
|
-
function recur(ast: SchemaAST.AST, path: ReadonlyArray<PropertyKey>): LazyArbitraryWithContext<any> {
|
|
474
|
-
// ---------------------------------------------
|
|
475
|
-
// handle annotations
|
|
476
|
-
// ---------------------------------------------
|
|
477
|
-
const annotation = InternalAnnotations.resolve(ast)?.toArbitrary as
|
|
478
|
-
| Schema.Annotations.ToArbitrary.Declaration<any, ReadonlyArray<Schema.Top>>
|
|
479
|
-
| undefined
|
|
480
|
-
if (annotation) {
|
|
481
|
-
const typeParameters = SchemaAST.isDeclaration(ast) ? ast.typeParameters.map((tp) => recur(tp, path)) : []
|
|
482
|
-
const checks = collectChecks(ast.checks)
|
|
483
|
-
const derive = (lazyNormal: boolean): BaseBuilder => (fc, ctx, nextCtx, recursionStack) =>
|
|
484
|
-
normalizeDerivation(
|
|
485
|
-
annotation(makeTypeParameters(typeParameters, fc, resetContext(ctx), recursionStack, lazyNormal))(fc, nextCtx),
|
|
486
|
-
typeParameters.length > 0
|
|
487
|
-
)[lazyNormal ? "terminal" : "arbitrary"]
|
|
488
|
-
return filterLayer(ast, checks, derive(false), derive(true))
|
|
489
|
-
}
|
|
490
|
-
if (ast.checks) {
|
|
491
|
-
const checks = collectChecks(ast.checks)
|
|
492
|
-
const lawc = recur(SchemaAST.replaceChecks(ast, undefined), path)
|
|
493
|
-
return filterLayer(
|
|
494
|
-
ast,
|
|
495
|
-
checks,
|
|
496
|
-
(fc, _ctx, nextCtx, recursionStack) => lawc(fc, nextCtx, recursionStack),
|
|
497
|
-
(fc, _ctx, nextCtx, recursionStack) => lawc.terminal(fc, nextCtx, recursionStack)
|
|
498
|
-
)
|
|
499
|
-
}
|
|
500
|
-
return base(ast, path)
|
|
501
|
-
}
|
|
502
|
-
|
|
503
|
-
function base(ast: SchemaAST.AST, path: ReadonlyArray<PropertyKey>): LazyArbitraryWithContext<any> {
|
|
504
|
-
switch (ast._tag) {
|
|
505
|
-
case "Never":
|
|
506
|
-
case "Declaration":
|
|
507
|
-
throw errorWithPath(`Unsupported AST ${ast._tag}`, path)
|
|
508
|
-
case "Null":
|
|
509
|
-
return same((fc) => fc.constant(null))
|
|
510
|
-
case "Void":
|
|
511
|
-
case "Undefined":
|
|
512
|
-
return same((fc) => fc.constant(undefined))
|
|
513
|
-
case "Unknown":
|
|
514
|
-
case "Any":
|
|
515
|
-
return same((fc) => fc.anything())
|
|
516
|
-
case "String":
|
|
517
|
-
return same((fc, ctx) => {
|
|
518
|
-
const constraint = ctx.constraint
|
|
519
|
-
const patterns = constraint?.patterns
|
|
520
|
-
return patterns
|
|
521
|
-
? fc.oneof(...patterns.map((pattern) => fc.stringMatching(new RegExp(pattern))))
|
|
522
|
-
: fc.string(lengthToFastCheckConstraints(constraint))
|
|
523
|
-
})
|
|
524
|
-
case "Number":
|
|
525
|
-
return same((fc, ctx) => {
|
|
526
|
-
const constraint = ctx.constraint
|
|
527
|
-
const ordered = constraint?.ordered?.order === Order.Number ? constraint.ordered : undefined
|
|
528
|
-
return constraint?.integer
|
|
529
|
-
? fc.integer(toIntegerConstraints(ordered))
|
|
530
|
-
: fc.float(toFloatConstraints(constraint, ordered))
|
|
531
|
-
})
|
|
532
|
-
case "Boolean":
|
|
533
|
-
return same((fc) => fc.boolean())
|
|
534
|
-
case "BigInt":
|
|
535
|
-
return same((fc, ctx) => {
|
|
536
|
-
const ordered = ctx.constraint?.ordered?.order === Order.BigInt ? ctx.constraint.ordered : undefined
|
|
537
|
-
return fc.bigInt(toBigIntConstraints(ordered))
|
|
538
|
-
})
|
|
539
|
-
case "Symbol":
|
|
540
|
-
return same((fc) => fc.string().map(Symbol.for))
|
|
541
|
-
case "Literal":
|
|
542
|
-
return same((fc) => fc.constant(ast.literal))
|
|
543
|
-
case "UniqueSymbol":
|
|
544
|
-
return same((fc) => fc.constant(ast.symbol))
|
|
545
|
-
case "ObjectKeyword":
|
|
546
|
-
return same((fc) => fc.oneof(fc.object(), fc.array(fc.anything())))
|
|
547
|
-
case "Enum":
|
|
548
|
-
return recur(SchemaAST.enumsToLiterals(ast), path)
|
|
549
|
-
case "TemplateLiteral": {
|
|
550
|
-
const parts = ast.parts.map((part, i) => recur(SchemaAST.toEncoded(part), [...path, i]))
|
|
551
|
-
return same((fc, ctx, recursionStack) =>
|
|
552
|
-
fc.tuple(...parts.map((part) => part(fc, finiteNumberContext(ctx), recursionStack))).map((segments) =>
|
|
553
|
-
segments.map((segment) => globalThis.String(segment)).join("")
|
|
554
|
-
)
|
|
555
|
-
)
|
|
556
|
-
}
|
|
557
|
-
case "Arrays": {
|
|
558
|
-
const elements = ast.elements.map((ast, i) => ({
|
|
559
|
-
ast,
|
|
560
|
-
arbitrary: recur(ast, [...path, i])
|
|
561
|
-
}))
|
|
562
|
-
const len = ast.elements.length
|
|
563
|
-
const rest = ast.rest.map((ast, i) => ({
|
|
564
|
-
ast,
|
|
565
|
-
arbitrary: recur(ast, [...path, len + i])
|
|
566
|
-
}))
|
|
567
|
-
const terminal: LazyOption<any> = (fc, ctx, recursionStack) => {
|
|
568
|
-
const reset = resetContext(ctx)
|
|
569
|
-
const elementArbitraries: Array<FastCheck.Arbitrary<Option.Option<any>>> = []
|
|
570
|
-
const optionals: Array<FastCheck.Arbitrary<any> | undefined> = []
|
|
571
|
-
let length = 0
|
|
572
|
-
for (const element of elements) {
|
|
573
|
-
const out = element.arbitrary.terminal(fc, reset, recursionStack)
|
|
574
|
-
if (SchemaAST.isOptional(element.ast)) {
|
|
575
|
-
optionals.push(out)
|
|
576
|
-
continue
|
|
577
|
-
}
|
|
578
|
-
if (out === undefined) {
|
|
579
|
-
return undefined
|
|
580
|
-
}
|
|
581
|
-
length++
|
|
582
|
-
elementArbitraries.push(out.map(Option.some))
|
|
583
|
-
}
|
|
584
|
-
const minLength = ctx.constraint?.minLength ?? 0
|
|
585
|
-
const needsRest = Array.isReadonlyArrayNonEmpty(rest) && minLength > length + optionals.length
|
|
586
|
-
const optionalTarget = needsRest ? optionals.length : Math.max(0, minLength - length)
|
|
587
|
-
let includedOptionals = 0
|
|
588
|
-
for (const out of optionals) {
|
|
589
|
-
if (includedOptionals >= optionalTarget || out === undefined) {
|
|
590
|
-
elementArbitraries.push(fc.constant(Option.none()))
|
|
591
|
-
continue
|
|
592
|
-
}
|
|
593
|
-
includedOptionals++
|
|
594
|
-
length++
|
|
595
|
-
elementArbitraries.push(out.map(Option.some))
|
|
596
|
-
}
|
|
597
|
-
if (includedOptionals < optionalTarget) {
|
|
598
|
-
return undefined
|
|
599
|
-
}
|
|
600
|
-
let out = fc.tuple(...elementArbitraries).map(Array.getSomes)
|
|
601
|
-
if (Array.isReadonlyArrayNonEmpty(rest)) {
|
|
602
|
-
const [head, ...tail] = rest
|
|
603
|
-
const restCtx = ast.elements.length === 0 ? ctx : reset
|
|
604
|
-
const minRestLength = Math.max(0, minLength - length - tail.length)
|
|
605
|
-
const headArbitrary = minRestLength === 0
|
|
606
|
-
? undefined
|
|
607
|
-
: head.arbitrary.terminal(fc, reset, recursionStack)
|
|
608
|
-
if (minRestLength > 0 && headArbitrary === undefined) {
|
|
609
|
-
return undefined
|
|
610
|
-
}
|
|
611
|
-
const restArbitrary = minRestLength === 0
|
|
612
|
-
? fc.constant([])
|
|
613
|
-
: array(
|
|
614
|
-
fc,
|
|
615
|
-
{ ...restCtx, constraint: { ...restCtx.constraint, minLength: minRestLength } },
|
|
616
|
-
headArbitrary!,
|
|
617
|
-
true
|
|
618
|
-
)
|
|
619
|
-
out = appendArray(fc, out, len, restArbitrary)
|
|
620
|
-
if (tail.length > 0) {
|
|
621
|
-
const tailArbitraries: Array<FastCheck.Arbitrary<any>> = []
|
|
622
|
-
for (const element of tail) {
|
|
623
|
-
const out = element.arbitrary.terminal(fc, reset, recursionStack)
|
|
624
|
-
if (out === undefined) {
|
|
625
|
-
return undefined
|
|
626
|
-
}
|
|
627
|
-
tailArbitraries.push(out)
|
|
628
|
-
}
|
|
629
|
-
const t = fc.tuple(...tailArbitraries)
|
|
630
|
-
out = appendArray(fc, out, len, t)
|
|
631
|
-
}
|
|
632
|
-
}
|
|
633
|
-
return out
|
|
634
|
-
}
|
|
635
|
-
return makeLazy((fc, ctx, recursionStack) => {
|
|
636
|
-
const reset = resetContext(ctx)
|
|
637
|
-
// ---------------------------------------------
|
|
638
|
-
// handle elements
|
|
639
|
-
// ---------------------------------------------
|
|
640
|
-
const elementArbitraries: Array<FastCheck.Arbitrary<Option.Option<any>>> = elements.map(
|
|
641
|
-
({ ast, arbitrary }) => {
|
|
642
|
-
const out = arbitrary(fc, reset, recursionStack)
|
|
643
|
-
return SchemaAST.isOptional(ast)
|
|
644
|
-
? out.chain((a) => fc.boolean().map((b) => b ? Option.some(a) : Option.none()))
|
|
645
|
-
: out.map(Option.some)
|
|
646
|
-
}
|
|
647
|
-
)
|
|
648
|
-
let out = fc.tuple(...elementArbitraries).map((elements) =>
|
|
649
|
-
Array.getSomes(Array.takeWhile(elements, Option.isSome))
|
|
650
|
-
)
|
|
651
|
-
// ---------------------------------------------
|
|
652
|
-
// handle rest element
|
|
653
|
-
// ---------------------------------------------
|
|
654
|
-
if (Array.isReadonlyArrayNonEmpty(rest)) {
|
|
655
|
-
const [head, ...tail] = rest.map(({ arbitrary }) => arbitrary(fc, reset, recursionStack))
|
|
656
|
-
|
|
657
|
-
const restArbitrary = array(fc, ast.elements.length === 0 ? ctx : reset, head)
|
|
658
|
-
out = appendArray(fc, out, len, restArbitrary)
|
|
659
|
-
// ---------------------------------------------
|
|
660
|
-
// handle post rest elements
|
|
661
|
-
// ---------------------------------------------
|
|
662
|
-
if (tail.length > 0) {
|
|
663
|
-
const t = fc.tuple(...tail)
|
|
664
|
-
out = appendArray(fc, out, len, t)
|
|
665
|
-
}
|
|
666
|
-
}
|
|
667
|
-
if (ctx.recursion) {
|
|
668
|
-
const terminalOut = terminal(fc, ctx, recursionStack)
|
|
669
|
-
if (terminalOut !== undefined) {
|
|
670
|
-
return fc.oneof(ctx.recursion, terminalOut, out)
|
|
671
|
-
}
|
|
672
|
-
}
|
|
673
|
-
return out
|
|
674
|
-
}, terminal)
|
|
675
|
-
}
|
|
676
|
-
case "Objects": {
|
|
677
|
-
const propertySignatures = ast.propertySignatures.map((ps) => ({
|
|
678
|
-
ps,
|
|
679
|
-
arbitrary: recur(ps.type, [...path, ps.name])
|
|
680
|
-
}))
|
|
681
|
-
const indexSignatures = ast.indexSignatures.map((is) => ({
|
|
682
|
-
is,
|
|
683
|
-
parameter: recur(is.parameter, path),
|
|
684
|
-
type: recur(is.type, path)
|
|
685
|
-
}))
|
|
686
|
-
const terminal: LazyOption<any> = (fc, ctx, recursionStack) => {
|
|
687
|
-
const reset = resetContext(ctx)
|
|
688
|
-
const pss: any = {}
|
|
689
|
-
const requiredKeys: Array<PropertyKey> = []
|
|
690
|
-
const optionals: Array<readonly [PropertyKey, FastCheck.Arbitrary<any>]> = []
|
|
691
|
-
for (const { ps, arbitrary } of propertySignatures) {
|
|
692
|
-
const name = ps.name
|
|
693
|
-
const out = arbitrary.terminal(fc, reset, recursionStack)
|
|
694
|
-
if (SchemaAST.isOptional(ps.type)) {
|
|
695
|
-
if (out !== undefined) {
|
|
696
|
-
optionals.push([name, out])
|
|
697
|
-
}
|
|
698
|
-
continue
|
|
699
|
-
}
|
|
700
|
-
if (out === undefined) {
|
|
701
|
-
return undefined
|
|
702
|
-
}
|
|
703
|
-
requiredKeys.push(name)
|
|
704
|
-
InternalRecord.assignProperty(pss, name, out)
|
|
705
|
-
}
|
|
706
|
-
let optionalCount = Math.max(0, (ctx.constraint?.minLength ?? 0) - requiredKeys.length)
|
|
707
|
-
for (const [name, out] of optionals) {
|
|
708
|
-
if (optionalCount === 0) {
|
|
709
|
-
break
|
|
710
|
-
}
|
|
711
|
-
optionalCount--
|
|
712
|
-
requiredKeys.push(name)
|
|
713
|
-
InternalRecord.assignProperty(pss, name, out)
|
|
714
|
-
}
|
|
715
|
-
if (optionalCount > 0 && ast.indexSignatures.length === 0) {
|
|
716
|
-
return undefined
|
|
717
|
-
}
|
|
718
|
-
let out = fc.record<any>(pss, { requiredKeys })
|
|
719
|
-
const entriesConstraints = objectEntriesConstraints(ast, ctx.constraint, requiredKeys.length)
|
|
720
|
-
const minEntries = entriesConstraints?.minLength ?? 0
|
|
721
|
-
for (const { parameter, type } of indexSignatures) {
|
|
722
|
-
let entries: FastCheck.Arbitrary<Array<readonly [PropertyKey, any]>>
|
|
723
|
-
if (minEntries === 0) {
|
|
724
|
-
entries = fc.constant([])
|
|
725
|
-
} else {
|
|
726
|
-
const key = parameter.terminal(fc, reset, recursionStack)
|
|
727
|
-
const value = type.terminal(fc, reset, recursionStack)
|
|
728
|
-
if (key === undefined || value === undefined) {
|
|
729
|
-
return undefined
|
|
730
|
-
}
|
|
731
|
-
entries = arrayWithConstraints(
|
|
732
|
-
fc,
|
|
733
|
-
fc.tuple(key, value),
|
|
734
|
-
{ ...entriesConstraints, maxLength: minEntries },
|
|
735
|
-
entryComparator
|
|
736
|
-
)
|
|
737
|
-
}
|
|
738
|
-
out = appendObjectEntries(out, entries)
|
|
739
|
-
}
|
|
740
|
-
return out
|
|
741
|
-
}
|
|
742
|
-
return makeLazy((fc, ctx, recursionStack) => {
|
|
743
|
-
const reset = resetContext(ctx)
|
|
744
|
-
// ---------------------------------------------
|
|
745
|
-
// handle property signatures
|
|
746
|
-
// ---------------------------------------------
|
|
747
|
-
const pss: any = {}
|
|
748
|
-
const orderedNames: Array<PropertyKey> = []
|
|
749
|
-
const requiredKeys: Array<PropertyKey> = []
|
|
750
|
-
const optionalNames: Array<PropertyKey> = []
|
|
751
|
-
for (const { ps, arbitrary } of propertySignatures) {
|
|
752
|
-
const name = ps.name
|
|
753
|
-
orderedNames.push(name)
|
|
754
|
-
if (SchemaAST.isOptional(ps.type)) {
|
|
755
|
-
optionalNames.push(name)
|
|
756
|
-
} else {
|
|
757
|
-
requiredKeys.push(name)
|
|
758
|
-
}
|
|
759
|
-
InternalRecord.assignProperty(pss, name, arbitrary(fc, reset, recursionStack))
|
|
760
|
-
}
|
|
761
|
-
// When property-count constraints must be satisfied by selecting
|
|
762
|
-
// optional keys (no index signatures are available to fill the gap),
|
|
763
|
-
// generate a count-controlled subset of optional keys instead of
|
|
764
|
-
// relying on fast-check's independent inclusion plus discards. This
|
|
765
|
-
// enforces both bounds precisely while still varying which optionals
|
|
766
|
-
// appear.
|
|
767
|
-
const constraint = ctx.constraint
|
|
768
|
-
if (
|
|
769
|
-
optionalNames.length > 0 &&
|
|
770
|
-
indexSignatures.length === 0 &&
|
|
771
|
-
constraint !== undefined &&
|
|
772
|
-
(constraint.minLength !== undefined || constraint.maxLength !== undefined)
|
|
773
|
-
) {
|
|
774
|
-
return objectWithOptionalCount(fc, pss, orderedNames, requiredKeys, optionalNames, constraint)
|
|
775
|
-
}
|
|
776
|
-
let out = fc.record<any>(pss, { requiredKeys })
|
|
777
|
-
const entriesConstraints = objectEntriesConstraints(ast, ctx.constraint, requiredKeys.length)
|
|
778
|
-
// ---------------------------------------------
|
|
779
|
-
// handle index signatures
|
|
780
|
-
// ---------------------------------------------
|
|
781
|
-
for (const { parameter, type } of indexSignatures) {
|
|
782
|
-
const entry = fc.tuple(parameter(fc, reset, recursionStack), type(fc, reset, recursionStack))
|
|
783
|
-
const entries = arrayWithConstraints(fc, entry, entriesConstraints, entryComparator)
|
|
784
|
-
out = appendObjectEntries(out, entries)
|
|
785
|
-
}
|
|
786
|
-
return out
|
|
787
|
-
}, terminal)
|
|
788
|
-
}
|
|
789
|
-
case "Union": {
|
|
790
|
-
const types = ast.types.map((ast) => recur(ast, path))
|
|
791
|
-
const terminal: LazyOption<any> = (fc, ctx, recursionStack) =>
|
|
792
|
-
oneOf(fc, types.map((type) => type.terminal(fc, ctx, recursionStack)).filter(Predicate.isNotUndefined))
|
|
793
|
-
return makeLazy((fc, ctx, recursionStack) => {
|
|
794
|
-
const arbitraries = types.map((type) => type(fc, ctx, recursionStack))
|
|
795
|
-
if (ctx.recursion) {
|
|
796
|
-
const terminalOut = terminal(fc, ctx, recursionStack)
|
|
797
|
-
if (terminalOut !== undefined) {
|
|
798
|
-
return fc.oneof(ctx.recursion, terminalOut, ...arbitraries)
|
|
799
|
-
}
|
|
800
|
-
}
|
|
801
|
-
const out = oneOf(fc, arbitraries)
|
|
802
|
-
if (out === undefined) {
|
|
803
|
-
throw arbitraryError("a union with no members")
|
|
804
|
-
}
|
|
805
|
-
return out
|
|
806
|
-
}, terminal)
|
|
807
|
-
}
|
|
808
|
-
case "Suspend": {
|
|
809
|
-
const memo = arbitraryMemoMap.get(ast)
|
|
810
|
-
|
|
811
|
-
if (memo) return memo
|
|
812
|
-
|
|
813
|
-
const get = SchemaAST.memoizeThunk(() => recur(ast.thunk(), path))
|
|
814
|
-
const out = makeLazy((fc, ctx, recursionStack) => {
|
|
815
|
-
const recursion = getSuspendRecursion(fc, ast)
|
|
816
|
-
const nextCtx = { ...ctx, recursion }
|
|
817
|
-
const nextStack = recursionStack.includes(ast) ? recursionStack : [...recursionStack, ast]
|
|
818
|
-
const terminal = get().terminal(fc, nextCtx, nextStack)
|
|
819
|
-
if (terminal === undefined) {
|
|
820
|
-
throw errorWithPath(
|
|
821
|
-
"Unable to derive an arbitrary for a recursive schema without a finite generation path",
|
|
822
|
-
path
|
|
823
|
-
)
|
|
824
|
-
}
|
|
825
|
-
return fc.oneof(
|
|
826
|
-
recursion,
|
|
827
|
-
terminal,
|
|
828
|
-
fc.constant(null).chain(() => get()(fc, nextCtx, nextStack))
|
|
829
|
-
)
|
|
830
|
-
}, (fc, ctx, recursionStack) => {
|
|
831
|
-
if (recursionStack.includes(ast)) {
|
|
832
|
-
return undefined
|
|
833
|
-
}
|
|
834
|
-
const recursion = getSuspendRecursion(fc, ast)
|
|
835
|
-
return get().terminal(fc, { ...ctx, recursion }, [...recursionStack, ast])
|
|
836
|
-
})
|
|
837
|
-
|
|
838
|
-
arbitraryMemoMap.set(ast, out)
|
|
839
|
-
|
|
840
|
-
return out
|
|
841
|
-
}
|
|
842
|
-
}
|
|
843
|
-
}
|