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,18 +1,15 @@
|
|
|
1
1
|
import * as Channel from "../../Channel.js";
|
|
2
2
|
import * as Context from "../../Context.js";
|
|
3
|
-
import * as Deferred from "../../Deferred.js";
|
|
4
3
|
import * as Effect from "../../Effect.js";
|
|
5
4
|
import * as Exit from "../../Exit.js";
|
|
6
|
-
import * as FiberSet from "../../FiberSet.js";
|
|
7
5
|
import { constVoid, dual, flow } from "../../Function.js";
|
|
8
6
|
import * as Latch from "../../Latch.js";
|
|
9
7
|
import * as Layer from "../../Layer.js";
|
|
10
8
|
import * as Predicate from "../../Predicate.js";
|
|
11
9
|
import * as Pull from "../../Pull.js";
|
|
12
|
-
import * as Queue from "../../Queue.js";
|
|
13
|
-
import * as Result from "../../Result.js";
|
|
14
10
|
import * as Schema from "../../Schema.js";
|
|
15
11
|
import * as Scope from "../../Scope.js";
|
|
12
|
+
import * as Stream from "../../Stream.js";
|
|
16
13
|
/**
|
|
17
14
|
* Runtime type identifier attached to `Socket` services.
|
|
18
15
|
*
|
|
@@ -40,21 +37,74 @@ export const isSocket = u => Predicate.hasProperty(u, TypeId);
|
|
|
40
37
|
*/
|
|
41
38
|
export const Socket = /*#__PURE__*/Context.Service("effect/socket/Socket");
|
|
42
39
|
/**
|
|
43
|
-
* Constructs a `Socket` from a
|
|
44
|
-
*
|
|
40
|
+
* Constructs a `Socket` from a reader acquisition and a scoped writer.
|
|
41
|
+
*
|
|
42
|
+
* **Details**
|
|
43
|
+
*
|
|
44
|
+
* The reader must fail a suspended pull when its acquisition scope closes; see
|
|
45
|
+
* `Socket` for why. A reader that leaves a pull blocked forever will hang any
|
|
46
|
+
* consumer that shuts the socket down by closing that scope.
|
|
45
47
|
*
|
|
46
48
|
* @category constructors
|
|
47
49
|
* @since 4.0.0
|
|
48
50
|
*/
|
|
49
51
|
export const make = options => Socket.of({
|
|
50
52
|
[TypeId]: TypeId,
|
|
51
|
-
|
|
52
|
-
run: options.run ?? ((handler, opts) => options.runRaw(data => typeof data === "string" ? handler(encoder.encode(data)) : data instanceof Uint8Array ? handler(data) : handler(new Uint8Array(data)), opts)),
|
|
53
|
-
runString: options.runString ?? (options.run ? (handler, opts) => options.run(data => handler(decoder.decode(data)), opts) : (handler, opts) => options.runRaw(data => typeof data === "string" ? handler(data) : data instanceof Uint8Array ? handler(decoder.decode(data)) : handler(decoder.decode(new Uint8Array(data))), opts)),
|
|
53
|
+
reader: options.reader,
|
|
54
54
|
writer: options.writer
|
|
55
55
|
});
|
|
56
56
|
const encoder = /*#__PURE__*/new TextEncoder();
|
|
57
|
-
|
|
57
|
+
/**
|
|
58
|
+
* Acquires the socket's binary `pull`, encoding any string frames as UTF-8
|
|
59
|
+
* bytes.
|
|
60
|
+
*
|
|
61
|
+
* **Details**
|
|
62
|
+
*
|
|
63
|
+
* When a pulled batch contains no string frames it is returned as-is, so
|
|
64
|
+
* transports that only emit bytes (TCP) pay no per-chunk cost.
|
|
65
|
+
*
|
|
66
|
+
* @category combinators
|
|
67
|
+
* @since 4.0.0
|
|
68
|
+
*/
|
|
69
|
+
export const readerBytes = self => Effect.map(self.reader, ({
|
|
70
|
+
pull
|
|
71
|
+
}) => Effect.map(pull, chunk => {
|
|
72
|
+
for (let i = 0; i < chunk.length; i++) {
|
|
73
|
+
if (typeof chunk[i] === "string") {
|
|
74
|
+
const out = new Array(chunk.length);
|
|
75
|
+
for (let j = 0; j < chunk.length; j++) {
|
|
76
|
+
const item = chunk[j];
|
|
77
|
+
out[j] = typeof item === "string" ? encoder.encode(item) : item;
|
|
78
|
+
}
|
|
79
|
+
return out;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return chunk;
|
|
83
|
+
}));
|
|
84
|
+
/**
|
|
85
|
+
* Acquires the socket's string `pull`, decoding binary frames with the optional
|
|
86
|
+
* text encoding.
|
|
87
|
+
*
|
|
88
|
+
* **Details**
|
|
89
|
+
*
|
|
90
|
+
* The `TextDecoder` is created once per acquisition.
|
|
91
|
+
*
|
|
92
|
+
* @category combinators
|
|
93
|
+
* @since 4.0.0
|
|
94
|
+
*/
|
|
95
|
+
export const readerString = (self, encoding) => Effect.map(self.reader, ({
|
|
96
|
+
pull
|
|
97
|
+
}) => {
|
|
98
|
+
const decoder = new TextDecoder(encoding);
|
|
99
|
+
return Effect.map(pull, chunk => {
|
|
100
|
+
const out = new Array(chunk.length);
|
|
101
|
+
for (let i = 0; i < chunk.length; i++) {
|
|
102
|
+
const item = chunk[i];
|
|
103
|
+
out[i] = typeof item === "string" ? item : decoder.decode(item);
|
|
104
|
+
}
|
|
105
|
+
return out;
|
|
106
|
+
});
|
|
107
|
+
});
|
|
58
108
|
const CloseEventTypeId = "~effect/socket/Socket/CloseEvent";
|
|
59
109
|
/**
|
|
60
110
|
* Represents a socket close event value carrying a close code and optional
|
|
@@ -163,27 +213,46 @@ export class SocketOpenError extends /*#__PURE__*/Schema.Error("effect/socket/So
|
|
|
163
213
|
}
|
|
164
214
|
}
|
|
165
215
|
/**
|
|
166
|
-
* Typed error for
|
|
167
|
-
* close reason.
|
|
216
|
+
* Typed error for an unsupported or failed in-place TLS upgrade.
|
|
168
217
|
*
|
|
169
218
|
* @category errors
|
|
170
219
|
* @since 4.0.0
|
|
171
220
|
*/
|
|
172
|
-
export class
|
|
173
|
-
_tag: /*#__PURE__*/Schema.tag("
|
|
174
|
-
|
|
175
|
-
closeReason: /*#__PURE__*/Schema.optional(Schema.String)
|
|
221
|
+
export class SocketUpgradeError extends /*#__PURE__*/Schema.Error("effect/socket/Socket/SocketUpgradeError")({
|
|
222
|
+
_tag: /*#__PURE__*/Schema.tag("SocketUpgradeError"),
|
|
223
|
+
cause: /*#__PURE__*/Schema.optional(/*#__PURE__*/Schema.Defect())
|
|
176
224
|
}) {
|
|
177
225
|
/**
|
|
178
|
-
*
|
|
226
|
+
* An upgrade implementation for transports that cannot wrap the connection
|
|
227
|
+
* with TLS.
|
|
179
228
|
*
|
|
180
229
|
* @since 4.0.0
|
|
181
230
|
*/
|
|
182
|
-
static
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
231
|
+
static unsupported = () => Effect.fail(new SocketError({
|
|
232
|
+
reason: new SocketUpgradeError({})
|
|
233
|
+
}));
|
|
234
|
+
get message() {
|
|
235
|
+
return this.cause === undefined ? `Socket does not support TLS upgrade` : `An error occurred during TLS upgrade`;
|
|
186
236
|
}
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Typed error for a socket close, carrying the close code and optional close
|
|
240
|
+
* reason.
|
|
241
|
+
*
|
|
242
|
+
* **Details**
|
|
243
|
+
*
|
|
244
|
+
* Sockets never classify closes: any close, whatever the code, fails the
|
|
245
|
+
* reader with a `SocketError` wrapping this reason. Consumers that treat a
|
|
246
|
+
* close as normal catch it.
|
|
247
|
+
*
|
|
248
|
+
* @category errors
|
|
249
|
+
* @since 4.0.0
|
|
250
|
+
*/
|
|
251
|
+
export class SocketCloseError extends /*#__PURE__*/Schema.Error("effect/socket/Socket/SocketCloseError")({
|
|
252
|
+
_tag: /*#__PURE__*/Schema.tag("SocketCloseError"),
|
|
253
|
+
code: Schema.Int,
|
|
254
|
+
closeReason: /*#__PURE__*/Schema.optional(Schema.String)
|
|
255
|
+
}) {
|
|
187
256
|
get message() {
|
|
188
257
|
if (this.closeReason) {
|
|
189
258
|
return `${this.code}: ${this.closeReason}`;
|
|
@@ -197,10 +266,10 @@ export class SocketCloseError extends /*#__PURE__*/Schema.Error("effect/socket/S
|
|
|
197
266
|
* @category errors
|
|
198
267
|
* @since 4.0.0
|
|
199
268
|
*/
|
|
200
|
-
export const SocketErrorReason = /*#__PURE__*/Schema.Union([SocketReadError, SocketWriteError, SocketOpenError, SocketCloseError]);
|
|
269
|
+
export const SocketErrorReason = /*#__PURE__*/Schema.Union([SocketReadError, SocketWriteError, SocketOpenError, SocketUpgradeError, SocketCloseError]);
|
|
201
270
|
/**
|
|
202
|
-
* Tagged error that wraps socket read, write, open, and close failures
|
|
203
|
-
* preserving the underlying reason.
|
|
271
|
+
* Tagged error that wraps socket read, write, open, upgrade, and close failures
|
|
272
|
+
* while preserving the underlying reason.
|
|
204
273
|
*
|
|
205
274
|
* @category errors
|
|
206
275
|
* @since 4.0.0
|
|
@@ -236,60 +305,63 @@ export class SocketError extends /*#__PURE__*/Schema.TaggedError(SocketErrorType
|
|
|
236
305
|
}
|
|
237
306
|
message = this.reason.message;
|
|
238
307
|
}
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
308
|
+
const closeError = (code, closeReason) => new SocketError({
|
|
309
|
+
reason: new SocketCloseError({
|
|
310
|
+
code,
|
|
311
|
+
closeReason
|
|
312
|
+
})
|
|
313
|
+
});
|
|
314
|
+
const writeChunk = (writer, chunk) => {
|
|
315
|
+
for (let i = 0; i < chunk.length; i++) {
|
|
316
|
+
if (isCloseEvent(chunk[i])) {
|
|
317
|
+
return Effect.gen(function* () {
|
|
318
|
+
for (let index = 0; index <= i; index++) {
|
|
319
|
+
yield* writer.write(chunk[index]);
|
|
320
|
+
}
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
return writer.writeAll(chunk);
|
|
325
|
+
};
|
|
326
|
+
const toChannelWithReader = (self, reader) => Channel.fromTransform(Effect.fnUntraced(function* (upstream, scope) {
|
|
327
|
+
const readScope = yield* Scope.fork(scope);
|
|
328
|
+
const pull = yield* Scope.provide(reader, readScope);
|
|
248
329
|
const writeScope = yield* Scope.fork(scope);
|
|
249
|
-
const
|
|
250
|
-
let
|
|
251
|
-
|
|
252
|
-
const writeChunk = Effect.whileLoop({
|
|
253
|
-
while: () => index < chunk.length,
|
|
254
|
-
body: () => write(chunk[index++]),
|
|
255
|
-
step: constVoid
|
|
256
|
-
});
|
|
257
|
-
yield* upstream.pipe(Effect.flatMap(arr => {
|
|
258
|
-
if (arr.length === 1) return write(arr[0]);
|
|
259
|
-
chunk = arr;
|
|
260
|
-
index = 0;
|
|
261
|
-
return writeChunk;
|
|
262
|
-
}), Effect.forever({
|
|
330
|
+
const writer = yield* Scope.provide(self.writer, writeScope);
|
|
331
|
+
let writeFailure;
|
|
332
|
+
yield* upstream.pipe(Effect.flatMap(chunk => writeChunk(writer, chunk)), Effect.forever({
|
|
263
333
|
disableYield: true
|
|
264
|
-
}), Effect.catchCauseFilter(Pull.filterNoDone, cause =>
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
334
|
+
}), Effect.catchCauseFilter(Pull.filterNoDone, cause => Effect.suspend(() => {
|
|
335
|
+
writeFailure = cause;
|
|
336
|
+
// closing the read scope fails a suspended pull, which is the
|
|
337
|
+
// reader contract, so the read side needs no per-pull failure race
|
|
338
|
+
return Scope.close(readScope, Exit.void);
|
|
339
|
+
})), Effect.ensuring(Scope.close(writeScope, Exit.void)), Effect.forkIn(scope));
|
|
268
340
|
// @effect-diagnostics-next-line returnEffectInGen:off
|
|
269
|
-
return
|
|
341
|
+
return Effect.catchCause(Effect.suspend(() => writeFailure !== undefined ? Effect.failCause(writeFailure) : pull), cause => Effect.failCause(writeFailure ?? cause));
|
|
270
342
|
}));
|
|
271
343
|
/**
|
|
272
|
-
* Converts a `Socket` into a binary `Channel`, encoding
|
|
273
|
-
* as UTF-8 bytes
|
|
344
|
+
* Converts a `Socket` into a bidirectional binary `Channel`, encoding
|
|
345
|
+
* incoming string frames as UTF-8 bytes and writing outgoing frame batches to
|
|
346
|
+
* the socket.
|
|
347
|
+
*
|
|
348
|
+
* **Details**
|
|
349
|
+
*
|
|
350
|
+
* The read side is the socket's pull, so the channel is backpressured
|
|
351
|
+
* end-to-end.
|
|
274
352
|
*
|
|
275
353
|
* @category combinators
|
|
276
354
|
* @since 4.0.0
|
|
277
355
|
*/
|
|
278
|
-
export const toChannel = self =>
|
|
279
|
-
const encoder = new TextEncoder();
|
|
280
|
-
return toChannelMap(self, data => typeof data === "string" ? encoder.encode(data) : data);
|
|
281
|
-
};
|
|
356
|
+
export const toChannel = self => toChannelWithReader(self, readerBytes(self));
|
|
282
357
|
/**
|
|
283
|
-
* Converts a `Socket` into a string `Channel`, decoding binary
|
|
284
|
-
* optional text encoding.
|
|
358
|
+
* Converts a `Socket` into a bidirectional string `Channel`, decoding binary
|
|
359
|
+
* frames with the optional text encoding.
|
|
285
360
|
*
|
|
286
361
|
* @category combinators
|
|
287
362
|
* @since 4.0.0
|
|
288
363
|
*/
|
|
289
|
-
export const toChannelString = /*#__PURE__*/dual(args => isSocket(args[0]), (self, encoding) =>
|
|
290
|
-
const decoder = new TextDecoder(encoding);
|
|
291
|
-
return toChannelMap(self, data => typeof data === "string" ? data : decoder.decode(data));
|
|
292
|
-
});
|
|
364
|
+
export const toChannelString = /*#__PURE__*/dual(args => isSocket(args[0]), (self, encoding) => toChannelWithReader(self, readerString(self, encoding)));
|
|
293
365
|
/**
|
|
294
366
|
* Creates a `Socket` to binary `Channel` adapter with a fixed upstream error
|
|
295
367
|
* type.
|
|
@@ -299,24 +371,23 @@ export const toChannelString = /*#__PURE__*/dual(args => isSocket(args[0]), (sel
|
|
|
299
371
|
*/
|
|
300
372
|
export const toChannelWith = () => self => toChannel(self);
|
|
301
373
|
/**
|
|
302
|
-
*
|
|
303
|
-
*
|
|
374
|
+
* Converts a `Socket` into a read-only binary `Stream` backed by the socket's
|
|
375
|
+
* pull, so consumption is backpressured end-to-end.
|
|
304
376
|
*
|
|
305
|
-
* @category
|
|
377
|
+
* @category combinators
|
|
306
378
|
* @since 4.0.0
|
|
307
379
|
*/
|
|
308
|
-
export const
|
|
380
|
+
export const toStream = self => Stream.fromChannel(Channel.fromTransform((_, scope) => Scope.provide(readerBytes(self), scope)));
|
|
309
381
|
/**
|
|
310
|
-
*
|
|
311
|
-
*
|
|
382
|
+
* Creates a binary socket `Channel` from the `Socket` service in the
|
|
383
|
+
* environment.
|
|
312
384
|
*
|
|
313
|
-
* @category
|
|
385
|
+
* @category constructors
|
|
314
386
|
* @since 4.0.0
|
|
315
387
|
*/
|
|
316
|
-
export const
|
|
388
|
+
export const makeChannel = () => Channel.unwrap(Effect.map(Socket, toChannelWith()));
|
|
317
389
|
/**
|
|
318
|
-
* Context service for the active `WebSocket` instance
|
|
319
|
-
* WebSocket-backed socket run is handling events.
|
|
390
|
+
* Context service for the active `WebSocket` instance.
|
|
320
391
|
*
|
|
321
392
|
* @category services
|
|
322
393
|
* @since 4.0.0
|
|
@@ -324,7 +395,7 @@ export const defaultCloseCodeIsError = _code => true;
|
|
|
324
395
|
export class WebSocket extends /*#__PURE__*/Context.Service()("~effect/socket/Socket/WebSocket") {}
|
|
325
396
|
/**
|
|
326
397
|
* Context service for constructing `WebSocket` instances from a URL and
|
|
327
|
-
* optional protocols.
|
|
398
|
+
* optional protocols or platform-specific options.
|
|
328
399
|
*
|
|
329
400
|
* @category services
|
|
330
401
|
* @since 4.0.0
|
|
@@ -336,87 +407,191 @@ export class WebSocketConstructor extends /*#__PURE__*/Context.Service()("@effec
|
|
|
336
407
|
* @category layers
|
|
337
408
|
* @since 4.0.0
|
|
338
409
|
*/
|
|
339
|
-
export const layerWebSocketConstructorGlobal = /*#__PURE__*/Layer.succeed(WebSocketConstructor)((url,
|
|
410
|
+
export const layerWebSocketConstructorGlobal = /*#__PURE__*/Layer.succeed(WebSocketConstructor)((url, options) => {
|
|
411
|
+
if (options !== undefined && typeof options !== "string" && !Array.isArray(options)) {
|
|
412
|
+
throw new TypeError("WebSocket client options are not supported by the global WebSocket constructor");
|
|
413
|
+
}
|
|
414
|
+
return new globalThis.WebSocket(url, options);
|
|
415
|
+
});
|
|
340
416
|
/**
|
|
341
|
-
* Creates a `Socket` backed by a `WebSocketConstructor`,
|
|
342
|
-
* WebSocket for each
|
|
343
|
-
* closes fail the run.
|
|
417
|
+
* Creates a `Socket` backed by a `WebSocketConstructor`, dialing the
|
|
418
|
+
* WebSocket for each reader acquisition.
|
|
344
419
|
*
|
|
345
420
|
* @category constructors
|
|
346
421
|
* @since 4.0.0
|
|
347
422
|
*/
|
|
348
423
|
export const makeWebSocket = (url, options) => WebSocketConstructor.use(makeWs => fromWebSocket(Effect.acquireRelease((typeof url === "string" ? Effect.succeed(url) : url).pipe(Effect.map(url => makeWs(url, options?.protocols))), ws => Effect.sync(() => ws.close(1000))), options));
|
|
424
|
+
const isPausable = ws => "pause" in ws && typeof ws.pause === "function";
|
|
349
425
|
/**
|
|
350
|
-
* Builds a `Socket` from a scoped WebSocket acquisition effect
|
|
351
|
-
*
|
|
352
|
-
*
|
|
426
|
+
* Builds a `Socket` from a scoped WebSocket acquisition effect.
|
|
427
|
+
*
|
|
428
|
+
* **Details**
|
|
429
|
+
*
|
|
430
|
+
* Reader acquisition runs `acquire`, attaches event listeners, then waits for
|
|
431
|
+
* the socket to open. Implementations exposing `pause`/`resume` (the `ws`
|
|
432
|
+
* package) remain flowing until buffered frames reach the configured
|
|
433
|
+
* `highWaterMark` (64 KiB by default). Draining the buffer resumes the
|
|
434
|
+
* transport. Incoming frames that arrive in the same tick are coalesced into
|
|
435
|
+
* one batch. Implementations without pause (browsers) buffer incoming frames,
|
|
436
|
+
* optionally failing the socket with a `SocketReadError` when `highWaterMark`
|
|
437
|
+
* bytes are exceeded (default unbounded). Message boundaries survive: each
|
|
438
|
+
* pulled batch contains one element per frame.
|
|
353
439
|
*
|
|
354
440
|
* @category constructors
|
|
355
441
|
* @since 4.0.0
|
|
356
442
|
*/
|
|
357
443
|
export const fromWebSocket = (acquire, options) => Effect.withFiber(fiber => {
|
|
358
444
|
let currentWS;
|
|
359
|
-
let initial = true;
|
|
360
445
|
const latch = Latch.makeUnsafe(false);
|
|
361
446
|
const acquireContext = fiber.context;
|
|
362
|
-
const
|
|
363
|
-
|
|
364
|
-
const fiberSet = yield* FiberSet.make().pipe(Scope.provide(scope));
|
|
447
|
+
const reader = Effect.gen(function* () {
|
|
448
|
+
const scope = yield* Effect.scope;
|
|
365
449
|
const ws = yield* Scope.provide(acquire, scope);
|
|
366
|
-
|
|
367
|
-
|
|
450
|
+
if ("binaryType" in ws) {
|
|
451
|
+
;
|
|
452
|
+
ws.binaryType = "arraybuffer";
|
|
453
|
+
}
|
|
454
|
+
const pausable = isPausable(ws);
|
|
455
|
+
const highWaterMark = options?.highWaterMark ?? (pausable ? defaultHighWaterMark : undefined);
|
|
456
|
+
let open = ws.readyState === 1;
|
|
457
|
+
let paused = pausable && "isPaused" in ws && ws.isPaused === true;
|
|
458
|
+
let buffer = [];
|
|
459
|
+
let bufferSize = 0;
|
|
460
|
+
let error;
|
|
461
|
+
let waiter;
|
|
462
|
+
let openWaiter;
|
|
463
|
+
function pauseWebSocket() {
|
|
464
|
+
if (!pausable || paused) return;
|
|
465
|
+
ws.pause();
|
|
466
|
+
paused = true;
|
|
467
|
+
}
|
|
468
|
+
function resumeWebSocket() {
|
|
469
|
+
if (!pausable || !paused) return;
|
|
470
|
+
ws.resume();
|
|
471
|
+
paused = false;
|
|
472
|
+
}
|
|
473
|
+
function takeBuffer() {
|
|
474
|
+
const chunk = buffer;
|
|
475
|
+
buffer = [];
|
|
476
|
+
bufferSize = 0;
|
|
477
|
+
if (error === undefined) resumeWebSocket();
|
|
478
|
+
return chunk;
|
|
479
|
+
}
|
|
480
|
+
function deliver() {
|
|
481
|
+
if (waiter === undefined || buffer.length === 0) return;
|
|
482
|
+
const resume = waiter;
|
|
483
|
+
waiter = undefined;
|
|
484
|
+
resume(Effect.succeed(takeBuffer()));
|
|
485
|
+
}
|
|
486
|
+
function push(data) {
|
|
487
|
+
buffer.push(data);
|
|
488
|
+
if (highWaterMark !== undefined) {
|
|
489
|
+
bufferSize += typeof data === "string" ? encoder.encode(data).byteLength : data.byteLength;
|
|
490
|
+
}
|
|
491
|
+
if (waiter !== undefined) deliver();
|
|
492
|
+
if (pausable && bufferSize >= highWaterMark) {
|
|
493
|
+
pauseWebSocket();
|
|
494
|
+
} else if (!pausable && !waiter && highWaterMark !== undefined && bufferSize > highWaterMark) {
|
|
495
|
+
fail(new SocketError({
|
|
496
|
+
reason: new SocketReadError({
|
|
497
|
+
cause: new Error(`Socket highWaterMark of ${highWaterMark} bytes exceeded`)
|
|
498
|
+
})
|
|
499
|
+
}));
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
function fail(err) {
|
|
503
|
+
if (error === undefined) error = err;
|
|
504
|
+
if (openWaiter !== undefined) {
|
|
505
|
+
const {
|
|
506
|
+
cleanup,
|
|
507
|
+
resume
|
|
508
|
+
} = openWaiter;
|
|
509
|
+
openWaiter = undefined;
|
|
510
|
+
cleanup();
|
|
511
|
+
resume(Effect.fail(error));
|
|
512
|
+
}
|
|
513
|
+
if (waiter !== undefined) {
|
|
514
|
+
const resume = waiter;
|
|
515
|
+
waiter = undefined;
|
|
516
|
+
resume(buffer.length > 0 ? Effect.succeed(takeBuffer()) : Effect.fail(error));
|
|
517
|
+
}
|
|
518
|
+
}
|
|
368
519
|
function onMessage(event) {
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
520
|
+
const data = event.data;
|
|
521
|
+
if (typeof Blob !== "undefined" && data instanceof Blob) {
|
|
522
|
+
data.arrayBuffer().then(buf => push(new Uint8Array(buf)), cause => {
|
|
523
|
+
fail(new SocketError({
|
|
524
|
+
reason: new SocketReadError({
|
|
525
|
+
cause
|
|
526
|
+
})
|
|
527
|
+
}));
|
|
373
528
|
});
|
|
374
|
-
return
|
|
375
|
-
}
|
|
376
|
-
const result = handler(event.data instanceof ArrayBuffer ? new Uint8Array(event.data) : event.data);
|
|
377
|
-
if (Effect.isEffect(result)) {
|
|
378
|
-
run(result);
|
|
529
|
+
return;
|
|
379
530
|
}
|
|
531
|
+
push(data instanceof ArrayBuffer ? new Uint8Array(data) : data);
|
|
380
532
|
}
|
|
381
|
-
function onError(
|
|
382
|
-
|
|
383
|
-
ws.removeEventListener("close", onClose);
|
|
384
|
-
Deferred.doneUnsafe(fiberSet.deferred, Effect.fail(new SocketError({
|
|
533
|
+
function onError(event) {
|
|
534
|
+
fail(new SocketError({
|
|
385
535
|
reason: open ? new SocketReadError({
|
|
386
|
-
cause
|
|
536
|
+
cause: event
|
|
387
537
|
}) : new SocketOpenError({
|
|
388
538
|
kind: "Unknown",
|
|
389
|
-
cause
|
|
539
|
+
cause: event
|
|
390
540
|
})
|
|
391
|
-
}))
|
|
541
|
+
}));
|
|
392
542
|
}
|
|
393
543
|
function onClose(event) {
|
|
394
|
-
|
|
395
|
-
ws.removeEventListener("message", onMessage);
|
|
396
|
-
ws.removeEventListener("error", onError);
|
|
397
|
-
Deferred.doneUnsafe(fiberSet.deferred, Effect.fail(new SocketError({
|
|
398
|
-
reason: new SocketCloseError({
|
|
399
|
-
code,
|
|
400
|
-
closeReason: event.reason
|
|
401
|
-
})
|
|
402
|
-
})));
|
|
544
|
+
fail(closeError(typeof event.code === "number" ? event.code : 1006, event.reason));
|
|
403
545
|
}
|
|
404
|
-
ws.addEventListener("
|
|
546
|
+
ws.addEventListener("message", onMessage);
|
|
547
|
+
ws.addEventListener("error", onError, {
|
|
405
548
|
once: true
|
|
406
549
|
});
|
|
407
|
-
ws.addEventListener("
|
|
550
|
+
ws.addEventListener("close", onClose, {
|
|
408
551
|
once: true
|
|
409
552
|
});
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
ws.
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
553
|
+
yield* Scope.addFinalizer(scope, Effect.sync(() => {
|
|
554
|
+
// resume a pull blocked in another fiber before detaching
|
|
555
|
+
fail(closeError(1006));
|
|
556
|
+
ws.removeEventListener("message", onMessage);
|
|
557
|
+
ws.removeEventListener("error", onError);
|
|
558
|
+
ws.removeEventListener("close", onClose);
|
|
559
|
+
// let the close handshake proceed once nothing is pulling
|
|
560
|
+
if (pausable) {
|
|
561
|
+
try {
|
|
562
|
+
resumeWebSocket();
|
|
563
|
+
} catch {
|
|
564
|
+
// the underlying stream may already be gone
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
latch.closeUnsafe();
|
|
568
|
+
currentWS = undefined;
|
|
569
|
+
}));
|
|
570
|
+
if (ws.readyState >= 2) {
|
|
571
|
+
// @effect-diagnostics-next-line unnecessaryFailYieldableError:off
|
|
572
|
+
return yield* Effect.fail(error ?? closeError(1006));
|
|
573
|
+
}
|
|
574
|
+
if (!open) {
|
|
575
|
+
yield* Effect.callback(resume => {
|
|
576
|
+
const onOpen = () => {
|
|
577
|
+
if (openWaiter?.resume !== resume) return;
|
|
578
|
+
openWaiter = undefined;
|
|
579
|
+
ws.removeEventListener("open", onOpen);
|
|
580
|
+
resume(Effect.void);
|
|
581
|
+
};
|
|
582
|
+
const cleanup = () => ws.removeEventListener("open", onOpen);
|
|
583
|
+
openWaiter = {
|
|
584
|
+
resume,
|
|
585
|
+
cleanup
|
|
586
|
+
};
|
|
587
|
+
ws.addEventListener("open", onOpen, {
|
|
588
|
+
once: true
|
|
589
|
+
});
|
|
590
|
+
return Effect.sync(() => {
|
|
591
|
+
if (openWaiter?.resume === resume) openWaiter = undefined;
|
|
592
|
+
cleanup();
|
|
593
|
+
});
|
|
594
|
+
}).pipe(Effect.timeoutOrElse({
|
|
420
595
|
duration: options?.openTimeout ?? 10000,
|
|
421
596
|
orElse: () => Effect.fail(new SocketError({
|
|
422
597
|
reason: new SocketOpenError({
|
|
@@ -424,24 +599,28 @@ export const fromWebSocket = (acquire, options) => Effect.withFiber(fiber => {
|
|
|
424
599
|
cause: new Error("timeout waiting for \"open\"")
|
|
425
600
|
})
|
|
426
601
|
}))
|
|
427
|
-
})
|
|
602
|
+
}));
|
|
603
|
+
open = true;
|
|
428
604
|
}
|
|
429
|
-
|
|
605
|
+
if (error === undefined && bufferSize < highWaterMark) resumeWebSocket();
|
|
430
606
|
currentWS = ws;
|
|
431
607
|
latch.openUnsafe();
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
608
|
+
return {
|
|
609
|
+
pull: Effect.callback(resume => {
|
|
610
|
+
if (buffer.length > 0) return resume(Effect.succeed(takeBuffer()));
|
|
611
|
+
if (error !== undefined) return resume(Effect.fail(error));
|
|
612
|
+
waiter = resume;
|
|
613
|
+
return Effect.sync(() => {
|
|
614
|
+
if (waiter === resume) waiter = undefined;
|
|
615
|
+
});
|
|
616
|
+
}),
|
|
617
|
+
upgrade: SocketUpgradeError.unsupported
|
|
618
|
+
};
|
|
619
|
+
}).pipe(Effect.updateContext(input => Context.merge(acquireContext, input)));
|
|
620
|
+
const write = chunk => Effect.suspend(() => {
|
|
621
|
+
const ws = currentWS;
|
|
622
|
+
if (ws === undefined) return latch.whenOpen(write(chunk));
|
|
443
623
|
try {
|
|
444
|
-
const ws = currentWS;
|
|
445
624
|
if (isCloseEvent(chunk)) {
|
|
446
625
|
ws.close(chunk.code, chunk.reason);
|
|
447
626
|
} else {
|
|
@@ -455,13 +634,33 @@ export const fromWebSocket = (acquire, options) => Effect.withFiber(fiber => {
|
|
|
455
634
|
})
|
|
456
635
|
}));
|
|
457
636
|
}
|
|
458
|
-
})
|
|
459
|
-
const
|
|
637
|
+
});
|
|
638
|
+
const writeAll = chunks => Effect.suspend(() => {
|
|
639
|
+
const ws = currentWS;
|
|
640
|
+
if (ws === undefined) return latch.whenOpen(writeAll(chunks));
|
|
641
|
+
try {
|
|
642
|
+
for (let i = 0; i < chunks.length; i++) {
|
|
643
|
+
ws.send(chunks[i]);
|
|
644
|
+
}
|
|
645
|
+
return Effect.void;
|
|
646
|
+
} catch (cause) {
|
|
647
|
+
return Effect.fail(new SocketError({
|
|
648
|
+
reason: new SocketWriteError({
|
|
649
|
+
cause
|
|
650
|
+
})
|
|
651
|
+
}));
|
|
652
|
+
}
|
|
653
|
+
});
|
|
654
|
+
const writer = Effect.succeed({
|
|
655
|
+
write,
|
|
656
|
+
writeAll
|
|
657
|
+
});
|
|
460
658
|
return Effect.succeed(make({
|
|
461
|
-
|
|
659
|
+
reader,
|
|
462
660
|
writer
|
|
463
661
|
}));
|
|
464
662
|
});
|
|
663
|
+
const defaultHighWaterMark = 64 * 1024;
|
|
465
664
|
/**
|
|
466
665
|
* Creates a binary `Channel` backed by a WebSocket URL, requiring a
|
|
467
666
|
* `WebSocketConstructor` service.
|
|
@@ -479,71 +678,17 @@ export const makeWebSocketChannel = (url, options) => Channel.unwrap(Effect.map(
|
|
|
479
678
|
*/
|
|
480
679
|
export const layerWebSocket = /*#__PURE__*/flow(makeWebSocket, /*#__PURE__*/Layer.effect(Socket));
|
|
481
680
|
/**
|
|
482
|
-
*
|
|
483
|
-
*
|
|
484
|
-
*
|
|
485
|
-
* @since 4.0.0
|
|
486
|
-
*/
|
|
487
|
-
export const SendQueueCapacity = /*#__PURE__*/Context.Reference("~effect/socket/Socket/SendQueueCapacity", {
|
|
488
|
-
defaultValue: () => 16
|
|
489
|
-
});
|
|
490
|
-
/**
|
|
491
|
-
* Builds a `Socket` from a scoped `InputTransformStream`, reading incoming
|
|
492
|
-
* chunks through socket handlers and writing outgoing chunks to the writable
|
|
493
|
-
* stream, encoding strings as UTF-8 and using close-code classification for
|
|
494
|
-
* `CloseEvent` values.
|
|
681
|
+
* Builds a `Socket` from a scoped `InputTransformStream`, pulling incoming
|
|
682
|
+
* chunks from the readable side and writing outgoing chunks to the writable
|
|
683
|
+
* stream, encoding strings as UTF-8.
|
|
495
684
|
*
|
|
496
685
|
* @category constructors
|
|
497
686
|
* @since 4.0.0
|
|
498
687
|
*/
|
|
499
|
-
export const fromTransformStream =
|
|
688
|
+
export const fromTransformStream = acquire => Effect.withFiber(fiber => {
|
|
500
689
|
const latch = Latch.makeUnsafe(false);
|
|
501
690
|
let currentStream;
|
|
502
|
-
const
|
|
503
|
-
const closeCodeIsError = options?.closeCodeIsError ?? defaultCloseCodeIsError;
|
|
504
|
-
const runRaw = (handler, opts) => Effect.scopedWith(Effect.fnUntraced(function* (scope) {
|
|
505
|
-
const stream = yield* Scope.provide(acquire, scope);
|
|
506
|
-
const reader = stream.readable.getReader();
|
|
507
|
-
yield* Scope.addFinalizer(scope, Effect.promise(() => reader.cancel()));
|
|
508
|
-
const fiberSet = yield* FiberSet.make().pipe(Scope.provide(scope));
|
|
509
|
-
const runFork = yield* FiberSet.runtime(fiberSet)();
|
|
510
|
-
yield* Effect.tryPromise({
|
|
511
|
-
try: async () => {
|
|
512
|
-
while (true) {
|
|
513
|
-
const {
|
|
514
|
-
done,
|
|
515
|
-
value
|
|
516
|
-
} = await reader.read();
|
|
517
|
-
if (done) {
|
|
518
|
-
throw new SocketError({
|
|
519
|
-
reason: new SocketCloseError({
|
|
520
|
-
code: 1000
|
|
521
|
-
})
|
|
522
|
-
});
|
|
523
|
-
}
|
|
524
|
-
const result = handler(value);
|
|
525
|
-
if (Effect.isEffect(result)) {
|
|
526
|
-
runFork(result);
|
|
527
|
-
}
|
|
528
|
-
}
|
|
529
|
-
},
|
|
530
|
-
catch: cause => isSocketError(cause) ? cause : new SocketError({
|
|
531
|
-
reason: new SocketReadError({
|
|
532
|
-
cause
|
|
533
|
-
})
|
|
534
|
-
})
|
|
535
|
-
}).pipe(FiberSet.run(fiberSet));
|
|
536
|
-
currentStream = {
|
|
537
|
-
stream,
|
|
538
|
-
fiberSet
|
|
539
|
-
};
|
|
540
|
-
yield* latch.open;
|
|
541
|
-
if (opts?.onOpen) yield* opts.onOpen;
|
|
542
|
-
return yield* Effect.catchFilter(FiberSet.join(fiberSet), SocketCloseError.filterClean(_ => !closeCodeIsError(_)), () => Effect.void);
|
|
543
|
-
})).pipe(_ => _, Effect.updateContext(input => Context.merge(acquireServices, input)), Effect.ensuring(Effect.sync(() => {
|
|
544
|
-
latch.closeUnsafe();
|
|
545
|
-
currentStream = undefined;
|
|
546
|
-
})));
|
|
691
|
+
const acquireContext = fiber.context;
|
|
547
692
|
const writers = new WeakMap();
|
|
548
693
|
const getWriter = stream => {
|
|
549
694
|
let writer = writers.get(stream);
|
|
@@ -553,21 +698,52 @@ export const fromTransformStream = (acquire, options) => Effect.withFiber(fiber
|
|
|
553
698
|
}
|
|
554
699
|
return writer;
|
|
555
700
|
};
|
|
701
|
+
const reader = Effect.gen(function* () {
|
|
702
|
+
const scope = yield* Effect.scope;
|
|
703
|
+
const stream = yield* Scope.provide(acquire, scope);
|
|
704
|
+
const readerHandle = stream.readable.getReader();
|
|
705
|
+
let error;
|
|
706
|
+
yield* Scope.addFinalizer(scope, Effect.suspend(() => {
|
|
707
|
+
latch.closeUnsafe();
|
|
708
|
+
currentStream = undefined;
|
|
709
|
+
return Effect.promise(() => readerHandle.cancel().catch(constVoid));
|
|
710
|
+
}));
|
|
711
|
+
currentStream = {
|
|
712
|
+
stream,
|
|
713
|
+
fail(err) {
|
|
714
|
+
if (error === undefined) error = err;
|
|
715
|
+
readerHandle.cancel().catch(constVoid);
|
|
716
|
+
}
|
|
717
|
+
};
|
|
718
|
+
latch.openUnsafe();
|
|
719
|
+
const read = Effect.tryPromise({
|
|
720
|
+
try: () => readerHandle.read(),
|
|
721
|
+
catch: cause => error ?? new SocketError({
|
|
722
|
+
reason: new SocketReadError({
|
|
723
|
+
cause
|
|
724
|
+
})
|
|
725
|
+
})
|
|
726
|
+
});
|
|
727
|
+
return {
|
|
728
|
+
pull: Effect.suspend(() => {
|
|
729
|
+
if (error !== undefined) return Effect.fail(error);
|
|
730
|
+
return Effect.flatMap(read, ({
|
|
731
|
+
done,
|
|
732
|
+
value
|
|
733
|
+
}) => done ? Effect.fail(error ?? closeError(1000)) : Effect.succeed([value]));
|
|
734
|
+
}),
|
|
735
|
+
upgrade: SocketUpgradeError.unsupported
|
|
736
|
+
};
|
|
737
|
+
}).pipe(Effect.updateContext(input => Context.merge(acquireContext, input)));
|
|
556
738
|
const write = chunk => latch.whenOpen(Effect.suspend(() => {
|
|
557
|
-
const
|
|
558
|
-
fiberSet,
|
|
559
|
-
stream
|
|
560
|
-
} = currentStream;
|
|
739
|
+
const current = currentStream;
|
|
561
740
|
if (isCloseEvent(chunk)) {
|
|
562
|
-
return
|
|
563
|
-
reason
|
|
564
|
-
|
|
565
|
-
closeReason: chunk.reason
|
|
566
|
-
})
|
|
567
|
-
}));
|
|
741
|
+
return Effect.sync(() => {
|
|
742
|
+
current.fail(closeError(chunk.code, chunk.reason));
|
|
743
|
+
});
|
|
568
744
|
}
|
|
569
745
|
return Effect.tryPromise({
|
|
570
|
-
try: () => getWriter(stream).write(typeof chunk === "string" ? encoder.encode(chunk) : chunk),
|
|
746
|
+
try: () => getWriter(current.stream).write(typeof chunk === "string" ? encoder.encode(chunk) : chunk),
|
|
571
747
|
catch: cause => new SocketError({
|
|
572
748
|
reason: new SocketWriteError({
|
|
573
749
|
cause
|
|
@@ -575,12 +751,29 @@ export const fromTransformStream = (acquire, options) => Effect.withFiber(fiber
|
|
|
575
751
|
})
|
|
576
752
|
});
|
|
577
753
|
}));
|
|
578
|
-
const
|
|
754
|
+
const writeAll = chunks => latch.whenOpen(Effect.tryPromise({
|
|
755
|
+
try: async () => {
|
|
756
|
+
const writer = getWriter(currentStream.stream);
|
|
757
|
+
for (let i = 0; i < chunks.length; i++) {
|
|
758
|
+
const chunk = chunks[i];
|
|
759
|
+
await writer.write(typeof chunk === "string" ? encoder.encode(chunk) : chunk);
|
|
760
|
+
}
|
|
761
|
+
},
|
|
762
|
+
catch: cause => new SocketError({
|
|
763
|
+
reason: new SocketWriteError({
|
|
764
|
+
cause
|
|
765
|
+
})
|
|
766
|
+
})
|
|
767
|
+
}));
|
|
768
|
+
const writer = Effect.acquireRelease(Effect.succeed({
|
|
769
|
+
write,
|
|
770
|
+
writeAll
|
|
771
|
+
}), () => Effect.promise(async () => {
|
|
579
772
|
if (!currentStream) return;
|
|
580
|
-
await getWriter(currentStream.stream).close();
|
|
773
|
+
await getWriter(currentStream.stream).close().catch(constVoid);
|
|
581
774
|
}));
|
|
582
775
|
return Effect.succeed(make({
|
|
583
|
-
|
|
776
|
+
reader,
|
|
584
777
|
writer
|
|
585
778
|
}));
|
|
586
779
|
});
|