effect 4.0.0-beta.4 → 4.0.0-beta.40
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Array.d.ts +213 -385
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +149 -102
- package/dist/Array.js.map +1 -1
- package/dist/BigDecimal.d.ts +46 -45
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +35 -38
- package/dist/BigDecimal.js.map +1 -1
- package/dist/BigInt.d.ts +39 -32
- package/dist/BigInt.d.ts.map +1 -1
- package/dist/BigInt.js +32 -29
- package/dist/BigInt.js.map +1 -1
- package/dist/Brand.d.ts +1 -1
- package/dist/Brand.d.ts.map +1 -1
- package/dist/Brand.js +1 -1
- package/dist/Brand.js.map +1 -1
- package/dist/Cache.d.ts +2 -2
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +6 -5
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +33 -2
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Cause.js +19 -0
- package/dist/Cause.js.map +1 -1
- package/dist/Channel.d.ts +130 -35
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +96 -45
- package/dist/Channel.js.map +1 -1
- package/dist/Chunk.d.ts +112 -304
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +56 -88
- package/dist/Chunk.js.map +1 -1
- package/dist/Combiner.d.ts +280 -13
- package/dist/Combiner.d.ts.map +1 -1
- package/dist/Combiner.js +198 -7
- package/dist/Combiner.js.map +1 -1
- package/dist/Config.d.ts +169 -9
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +69 -11
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +1 -1
- package/dist/Cron.d.ts +11 -7
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +120 -63
- package/dist/Cron.js.map +1 -1
- package/dist/Data.d.ts +535 -366
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +132 -79
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +72 -253
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +15 -60
- package/dist/DateTime.js.map +1 -1
- package/dist/Deferred.d.ts +7 -5
- package/dist/Deferred.d.ts.map +1 -1
- package/dist/Deferred.js +7 -5
- package/dist/Deferred.js.map +1 -1
- package/dist/Duration.d.ts +62 -32
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +108 -78
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +1224 -951
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +398 -338
- package/dist/Effect.js.map +1 -1
- package/dist/Encoding.d.ts +194 -0
- package/dist/Encoding.d.ts.map +1 -0
- package/dist/Encoding.js +352 -0
- package/dist/Encoding.js.map +1 -0
- package/dist/Equal.d.ts +276 -109
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +124 -48
- package/dist/Equal.js.map +1 -1
- package/dist/Equivalence.d.ts +60 -3
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +70 -13
- package/dist/Equivalence.js.map +1 -1
- package/dist/ErrorReporter.d.ts +374 -0
- package/dist/ErrorReporter.d.ts.map +1 -0
- package/dist/ErrorReporter.js +245 -0
- package/dist/ErrorReporter.js.map +1 -0
- package/dist/Exit.d.ts +24 -12
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js +8 -4
- package/dist/Exit.js.map +1 -1
- package/dist/Fiber.d.ts +5 -3
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js.map +1 -1
- package/dist/FiberHandle.d.ts +9 -8
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +8 -7
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +20 -19
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +6 -6
- package/dist/FiberMap.js.map +1 -1
- package/dist/FileSystem.d.ts +18 -17
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +17 -13
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts +34 -38
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +15 -13
- package/dist/Filter.js.map +1 -1
- package/dist/Formatter.d.ts +131 -47
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +229 -51
- package/dist/Formatter.js.map +1 -1
- package/dist/Function.d.ts +1 -9
- package/dist/Function.d.ts.map +1 -1
- package/dist/Function.js +2 -10
- package/dist/Function.js.map +1 -1
- package/dist/Graph.d.ts +65 -65
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +60 -62
- package/dist/Graph.js.map +1 -1
- package/dist/HashMap.d.ts +26 -19
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +7 -5
- package/dist/HashMap.js.map +1 -1
- package/dist/Iterable.d.ts +50 -50
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +106 -34
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonSchema.d.ts +299 -10
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +323 -4
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Latch.d.ts +175 -0
- package/dist/Latch.d.ts.map +1 -0
- package/dist/Latch.js +130 -0
- package/dist/Latch.js.map +1 -0
- package/dist/Layer.d.ts +306 -129
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +92 -47
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts +9 -8
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LayerMap.js +3 -3
- package/dist/LayerMap.js.map +1 -1
- package/dist/LogLevel.d.ts +32 -0
- package/dist/LogLevel.d.ts.map +1 -1
- package/dist/LogLevel.js +28 -100
- package/dist/LogLevel.js.map +1 -1
- package/dist/Logger.d.ts +29 -95
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +2 -3
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +2 -2
- package/dist/ManagedRuntime.js +2 -2
- package/dist/Metric.d.ts +4 -6
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +3 -5
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts +7 -0
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js +8 -0
- package/dist/MutableHashMap.js.map +1 -1
- package/dist/MutableHashSet.d.ts +7 -0
- package/dist/MutableHashSet.d.ts.map +1 -1
- package/dist/MutableHashSet.js +8 -0
- package/dist/MutableHashSet.js.map +1 -1
- package/dist/Newtype.d.ts +291 -0
- package/dist/Newtype.d.ts.map +1 -0
- package/dist/Newtype.js +161 -0
- package/dist/Newtype.js.map +1 -0
- package/dist/Number.d.ts +74 -18
- package/dist/Number.d.ts.map +1 -1
- package/dist/Number.js +34 -15
- package/dist/Number.js.map +1 -1
- package/dist/Optic.d.ts +947 -18
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +454 -5
- package/dist/Optic.js.map +1 -1
- package/dist/Option.d.ts +25 -16
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +15 -9
- package/dist/Option.js.map +1 -1
- package/dist/Order.d.ts +6 -1
- package/dist/Order.d.ts.map +1 -1
- package/dist/Order.js +19 -14
- package/dist/Order.js.map +1 -1
- package/dist/PartitionedSemaphore.d.ts +146 -15
- package/dist/PartitionedSemaphore.d.ts.map +1 -1
- package/dist/PartitionedSemaphore.js +174 -61
- package/dist/PartitionedSemaphore.js.map +1 -1
- package/dist/Pipeable.d.ts +17 -0
- package/dist/Pipeable.d.ts.map +1 -1
- package/dist/Pipeable.js +19 -1
- package/dist/Pipeable.js.map +1 -1
- package/dist/PlatformError.d.ts +10 -9
- package/dist/PlatformError.d.ts.map +1 -1
- package/dist/PlatformError.js +2 -2
- package/dist/PlatformError.js.map +1 -1
- package/dist/Pool.d.ts +6 -4
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +7 -5
- package/dist/Pool.js.map +1 -1
- package/dist/PubSub.d.ts +8 -6
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +18 -10
- package/dist/PubSub.js.map +1 -1
- package/dist/Pull.d.ts.map +1 -1
- package/dist/Pull.js +1 -1
- package/dist/Pull.js.map +1 -1
- package/dist/Queue.d.ts +9 -6
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +7 -5
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts +35 -1
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +46 -12
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +2 -2
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +1 -1
- package/dist/RcMap.js.map +1 -1
- package/dist/RcRef.d.ts +1 -1
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/Record.d.ts +63 -160
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +37 -56
- package/dist/Record.js.map +1 -1
- package/dist/Reducer.d.ts +166 -7
- package/dist/Reducer.d.ts.map +1 -1
- package/dist/Reducer.js +135 -1
- package/dist/Reducer.js.map +1 -1
- package/dist/References.d.ts +242 -226
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +240 -247
- package/dist/References.js.map +1 -1
- package/dist/Request.d.ts +1 -1
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js +2 -1
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +25 -45
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +10 -30
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Resource.d.ts.map +1 -1
- package/dist/Resource.js +2 -1
- package/dist/Resource.js.map +1 -1
- package/dist/Result.d.ts +1 -1
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +1 -2
- package/dist/Result.js.map +1 -1
- package/dist/Runtime.d.ts +66 -0
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +79 -6
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts +174 -291
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +160 -134
- package/dist/Schedule.js.map +1 -1
- package/dist/Scheduler.d.ts +34 -123
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +31 -123
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +2722 -247
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +1947 -224
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +7 -2
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +131 -25
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +5 -5
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +18 -18
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaParser.d.ts +44 -54
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +55 -2
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +46 -45
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +49 -24
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +107 -3
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +173 -13
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/ScopedCache.d.ts +2 -2
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +1 -1
- package/dist/ScopedCache.js.map +1 -1
- package/dist/Semaphore.d.ts +307 -0
- package/dist/Semaphore.d.ts.map +1 -0
- package/dist/Semaphore.js +222 -0
- package/dist/Semaphore.js.map +1 -0
- package/dist/ServiceMap.d.ts +67 -31
- package/dist/ServiceMap.d.ts.map +1 -1
- package/dist/ServiceMap.js +39 -24
- package/dist/ServiceMap.js.map +1 -1
- package/dist/Sink.d.ts +18 -15
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +53 -6
- package/dist/Sink.js.map +1 -1
- package/dist/Stdio.d.ts +16 -4
- package/dist/Stdio.d.ts.map +1 -1
- package/dist/Stdio.js +18 -0
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +284 -431
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +189 -88
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +114 -47
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +29 -47
- package/dist/String.js.map +1 -1
- package/dist/Struct.d.ts +23 -7
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +22 -0
- package/dist/Struct.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +3 -3
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +85 -117
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/SynchronizedRef.d.ts +2 -1
- package/dist/SynchronizedRef.d.ts.map +1 -1
- package/dist/SynchronizedRef.js +2 -1
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Terminal.d.ts +2 -1
- package/dist/Terminal.d.ts.map +1 -1
- package/dist/Terminal.js.map +1 -1
- package/dist/Tracer.d.ts +5 -4
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +2 -1
- package/dist/Tracer.js.map +1 -1
- package/dist/Trie.d.ts +44 -31
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +13 -9
- package/dist/Trie.js.map +1 -1
- package/dist/TxChunk.d.ts +37 -37
- package/dist/TxChunk.d.ts.map +1 -1
- package/dist/TxChunk.js +3 -3
- package/dist/TxChunk.js.map +1 -1
- package/dist/TxDeferred.d.ts +328 -0
- package/dist/TxDeferred.d.ts.map +1 -0
- package/dist/TxDeferred.js +197 -0
- package/dist/TxDeferred.js.map +1 -0
- package/dist/TxHashMap.d.ts +159 -140
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js +51 -44
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts +36 -36
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js +16 -15
- package/dist/TxHashSet.js.map +1 -1
- package/dist/TxPriorityQueue.d.ts +609 -0
- package/dist/TxPriorityQueue.d.ts.map +1 -0
- package/dist/TxPriorityQueue.js +416 -0
- package/dist/TxPriorityQueue.js.map +1 -0
- package/dist/TxPubSub.d.ts +585 -0
- package/dist/TxPubSub.d.ts.map +1 -0
- package/dist/TxPubSub.js +521 -0
- package/dist/TxPubSub.js.map +1 -0
- package/dist/TxQueue.d.ts +32 -32
- package/dist/TxQueue.d.ts.map +1 -1
- package/dist/TxQueue.js +26 -26
- package/dist/TxQueue.js.map +1 -1
- package/dist/TxReentrantLock.d.ts +523 -0
- package/dist/TxReentrantLock.d.ts.map +1 -0
- package/dist/TxReentrantLock.js +504 -0
- package/dist/TxReentrantLock.js.map +1 -0
- package/dist/TxRef.d.ts +34 -34
- package/dist/TxRef.d.ts.map +1 -1
- package/dist/TxRef.js +21 -14
- package/dist/TxRef.js.map +1 -1
- package/dist/TxSemaphore.d.ts +170 -10
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +23 -8
- package/dist/TxSemaphore.js.map +1 -1
- package/dist/TxSubscriptionRef.d.ts +508 -0
- package/dist/TxSubscriptionRef.d.ts.map +1 -0
- package/dist/TxSubscriptionRef.js +293 -0
- package/dist/TxSubscriptionRef.js.map +1 -0
- package/dist/Types.d.ts +80 -23
- package/dist/Types.d.ts.map +1 -1
- package/dist/Utils.d.ts +137 -65
- package/dist/Utils.d.ts.map +1 -1
- package/dist/Utils.js +38 -66
- package/dist/Utils.js.map +1 -1
- package/dist/index.d.ts +804 -53
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +804 -53
- package/dist/index.js.map +1 -1
- package/dist/internal/core.js +11 -3
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/dateTime.js +77 -71
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/effect.js +281 -201
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/hashMap.js +7 -5
- package/dist/internal/hashMap.js.map +1 -1
- package/dist/internal/option.js +6 -0
- package/dist/internal/option.js.map +1 -1
- package/dist/internal/random.d.ts +2 -0
- package/dist/internal/random.d.ts.map +1 -0
- package/dist/internal/random.js +13 -0
- package/dist/internal/random.js.map +1 -0
- package/dist/internal/rcRef.js +3 -2
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/internal/references.d.ts +2 -0
- package/dist/internal/references.d.ts.map +1 -0
- package/dist/internal/references.js +51 -0
- package/dist/internal/references.js.map +1 -0
- package/dist/internal/request.js +2 -2
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/schema/annotations.js +2 -0
- package/dist/internal/schema/annotations.js.map +1 -1
- package/dist/internal/schema/representation.js +47 -106
- package/dist/internal/schema/representation.js.map +1 -1
- package/dist/internal/schema/schema.js +1 -0
- package/dist/internal/schema/schema.js.map +1 -1
- package/dist/internal/schema/to-codec.js +7 -10
- package/dist/internal/schema/to-codec.js.map +1 -1
- package/dist/internal/trie.js +8 -7
- package/dist/internal/trie.js.map +1 -1
- package/dist/testing/TestClock.d.ts +8 -7
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +6 -4
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +266 -32
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js +296 -23
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/testing/index.d.ts +64 -1
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +64 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +136 -54
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +28 -23
- 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 +4 -0
- package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +7 -8
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +38 -44
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/EmbeddingModel.d.ts +130 -0
- package/dist/unstable/ai/EmbeddingModel.d.ts.map +1 -0
- package/dist/unstable/ai/EmbeddingModel.js +127 -0
- package/dist/unstable/ai/EmbeddingModel.js.map +1 -0
- package/dist/unstable/ai/LanguageModel.d.ts +53 -45
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +265 -143
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +183 -88
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +57 -12
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +66 -13
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +193 -51
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Model.d.ts +25 -7
- package/dist/unstable/ai/Model.d.ts.map +1 -1
- package/dist/unstable/ai/Model.js +22 -6
- package/dist/unstable/ai/Model.js.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js +4 -0
- package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +20 -20
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Response.d.ts +26 -26
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +1 -1
- package/dist/unstable/ai/Response.js.map +1 -1
- package/dist/unstable/ai/ResponseIdTracker.d.ts +38 -0
- package/dist/unstable/ai/ResponseIdTracker.d.ts.map +1 -0
- package/dist/unstable/ai/ResponseIdTracker.js +68 -0
- package/dist/unstable/ai/ResponseIdTracker.js.map +1 -0
- package/dist/unstable/ai/Tool.d.ts +34 -4
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +28 -10
- 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 +4 -11
- package/dist/unstable/ai/Toolkit.js.map +1 -1
- package/dist/unstable/ai/index.d.ts +22 -1
- package/dist/unstable/ai/index.d.ts.map +1 -1
- package/dist/unstable/ai/index.js +22 -1
- package/dist/unstable/ai/index.js.map +1 -1
- package/dist/unstable/ai/internal/codec-transformer.js +0 -5
- package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
- package/dist/unstable/cli/Argument.d.ts +2 -4
- package/dist/unstable/cli/Argument.d.ts.map +1 -1
- package/dist/unstable/cli/Argument.js +1 -3
- package/dist/unstable/cli/Argument.js.map +1 -1
- package/dist/unstable/cli/CliError.d.ts +27 -60
- package/dist/unstable/cli/CliError.d.ts.map +1 -1
- package/dist/unstable/cli/CliError.js +25 -57
- package/dist/unstable/cli/CliError.js.map +1 -1
- package/dist/unstable/cli/CliOutput.d.ts +3 -2
- package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
- package/dist/unstable/cli/CliOutput.js +65 -10
- package/dist/unstable/cli/CliOutput.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +371 -58
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +328 -67
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/Completions.d.ts +16 -0
- package/dist/unstable/cli/Completions.d.ts.map +1 -0
- package/dist/unstable/cli/Completions.js +23 -0
- package/dist/unstable/cli/Completions.js.map +1 -0
- package/dist/unstable/cli/Flag.d.ts +2 -2
- package/dist/unstable/cli/Flag.d.ts.map +1 -1
- package/dist/unstable/cli/Flag.js +1 -1
- package/dist/unstable/cli/Flag.js.map +1 -1
- package/dist/unstable/cli/GlobalFlag.d.ts +125 -0
- package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -0
- package/dist/unstable/cli/GlobalFlag.js +118 -0
- package/dist/unstable/cli/GlobalFlag.js.map +1 -0
- package/dist/unstable/cli/HelpDoc.d.ts +81 -11
- package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
- package/dist/unstable/cli/Param.d.ts +4 -4
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- package/dist/unstable/cli/Param.js +7 -7
- package/dist/unstable/cli/Param.js.map +1 -1
- package/dist/unstable/cli/Primitive.d.ts +2 -2
- package/dist/unstable/cli/Primitive.d.ts.map +1 -1
- package/dist/unstable/cli/Primitive.js +1 -1
- package/dist/unstable/cli/Primitive.js.map +1 -1
- package/dist/unstable/cli/Prompt.js +258 -84
- package/dist/unstable/cli/Prompt.js.map +1 -1
- package/dist/unstable/cli/index.d.ts +8 -0
- package/dist/unstable/cli/index.d.ts.map +1 -1
- package/dist/unstable/cli/index.js +8 -0
- package/dist/unstable/cli/index.js.map +1 -1
- package/dist/unstable/cli/internal/command.d.ts +40 -14
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.js +72 -46
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/completions/CommandDescriptor.js +16 -4
- package/dist/unstable/cli/internal/completions/CommandDescriptor.js.map +1 -1
- package/dist/unstable/cli/internal/config.js +42 -0
- package/dist/unstable/cli/internal/config.js.map +1 -1
- package/dist/unstable/cli/internal/help.d.ts +33 -0
- package/dist/unstable/cli/internal/help.d.ts.map +1 -0
- package/dist/unstable/cli/internal/help.js +125 -0
- package/dist/unstable/cli/internal/help.js.map +1 -0
- package/dist/unstable/cli/internal/parser.js +61 -43
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js +1 -1
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts +3 -2
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +29 -26
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/DeliverAt.js +1 -1
- package/dist/unstable/cluster/DeliverAt.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +10 -8
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js +7 -7
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/EntityAddress.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityAddress.js +1 -1
- package/dist/unstable/cluster/EntityAddress.js.map +1 -1
- package/dist/unstable/cluster/EntityResource.d.ts +2 -2
- package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
- package/dist/unstable/cluster/Envelope.d.ts +1 -1
- package/dist/unstable/cluster/K8sHttpClient.d.ts +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js +4 -4
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/Message.d.ts +14 -13
- package/dist/unstable/cluster/Message.d.ts.map +1 -1
- package/dist/unstable/cluster/Message.js +3 -2
- package/dist/unstable/cluster/Message.js.map +1 -1
- package/dist/unstable/cluster/MessageStorage.d.ts +10 -10
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +14 -13
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +8 -7
- package/dist/unstable/cluster/Reply.d.ts.map +1 -1
- package/dist/unstable/cluster/Reply.js +4 -3
- package/dist/unstable/cluster/Reply.js.map +1 -1
- package/dist/unstable/cluster/Runner.d.ts +1 -1
- package/dist/unstable/cluster/Runner.d.ts.map +1 -1
- package/dist/unstable/cluster/Runner.js +1 -1
- package/dist/unstable/cluster/Runner.js.map +1 -1
- package/dist/unstable/cluster/RunnerAddress.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerAddress.js +1 -1
- package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
- package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerServer.js +9 -8
- package/dist/unstable/cluster/RunnerServer.js.map +1 -1
- package/dist/unstable/cluster/Runners.d.ts +2 -1
- package/dist/unstable/cluster/Runners.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.js +11 -9
- package/dist/unstable/cluster/Runners.js.map +1 -1
- package/dist/unstable/cluster/ShardId.js +3 -3
- package/dist/unstable/cluster/ShardId.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts +2 -2
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +28 -20
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +26 -25
- package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.js +24 -24
- package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.js +19 -18
- package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +14 -14
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/cluster/internal/entityReaper.js +2 -1
- package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceRef.js +2 -1
- package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.js +4 -3
- package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.d.ts +40 -40
- package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.js +9 -2
- package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
- package/dist/unstable/encoding/Msgpack.d.ts +1 -1
- package/dist/unstable/encoding/Ndjson.d.ts +9 -9
- package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
- package/dist/unstable/encoding/Ndjson.js.map +1 -1
- package/dist/unstable/encoding/Sse.d.ts +4 -4
- package/dist/unstable/encoding/Sse.d.ts.map +1 -1
- package/dist/unstable/encoding/Sse.js +1 -1
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +2 -2
- package/dist/unstable/eventlog/EventJournal.js +2 -2
- package/dist/unstable/eventlog/EventJournal.js.map +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +3 -2
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +6 -6
- package/dist/unstable/eventlog/SqlEventLogJournal.js +2 -2
- package/dist/unstable/eventlog/SqlEventLogJournal.js.map +1 -1
- package/dist/unstable/http/Cookies.d.ts +52 -7
- package/dist/unstable/http/Cookies.d.ts.map +1 -1
- package/dist/unstable/http/Cookies.js +27 -6
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/Etag.d.ts.map +1 -1
- package/dist/unstable/http/Etag.js +5 -1
- package/dist/unstable/http/Etag.js.map +1 -1
- package/dist/unstable/http/Headers.d.ts +19 -2
- package/dist/unstable/http/Headers.d.ts.map +1 -1
- package/dist/unstable/http/Headers.js +40 -11
- package/dist/unstable/http/Headers.js.map +1 -1
- package/dist/unstable/http/HttpBody.d.ts +1 -1
- package/dist/unstable/http/HttpClient.d.ts +117 -15
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +191 -13
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientError.d.ts +7 -7
- package/dist/unstable/http/HttpClientRequest.d.ts +43 -15
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +131 -21
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpClientResponse.d.ts +2 -1
- package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientResponse.js +6 -1
- package/dist/unstable/http/HttpClientResponse.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts +7 -5
- package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
- package/dist/unstable/http/HttpEffect.js +46 -54
- package/dist/unstable/http/HttpEffect.js.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.d.ts +3 -2
- package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
- package/dist/unstable/http/HttpMethod.d.ts +4 -4
- package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
- package/dist/unstable/http/HttpMethod.js +3 -3
- package/dist/unstable/http/HttpMethod.js.map +1 -1
- package/dist/unstable/http/HttpMiddleware.d.ts +1 -6
- package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/unstable/http/HttpMiddleware.js +24 -32
- package/dist/unstable/http/HttpMiddleware.js.map +1 -1
- package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
- package/dist/unstable/http/HttpPlatform.js +3 -2
- package/dist/unstable/http/HttpPlatform.js.map +1 -1
- package/dist/unstable/http/HttpRouter.d.ts +2 -1
- package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
- package/dist/unstable/http/HttpRouter.js +7 -7
- package/dist/unstable/http/HttpRouter.js.map +1 -1
- package/dist/unstable/http/HttpServer.d.ts.map +1 -1
- package/dist/unstable/http/HttpServer.js +2 -2
- package/dist/unstable/http/HttpServer.js.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +22 -34
- package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerError.js +39 -45
- package/dist/unstable/http/HttpServerError.js.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts +15 -3
- package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRequest.js +301 -7
- package/dist/unstable/http/HttpServerRequest.js.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.d.ts +2 -2
- package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.js +5 -5
- package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts +50 -3
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +236 -1
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/HttpStaticServer.d.ts +69 -0
- package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -0
- package/dist/unstable/http/HttpStaticServer.js +353 -0
- package/dist/unstable/http/HttpStaticServer.js.map +1 -0
- package/dist/unstable/http/HttpTraceContext.d.ts +3 -2
- package/dist/unstable/http/HttpTraceContext.d.ts.map +1 -1
- package/dist/unstable/http/HttpTraceContext.js +27 -15
- package/dist/unstable/http/HttpTraceContext.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +3 -3
- package/dist/unstable/http/Url.d.ts +604 -0
- package/dist/unstable/http/Url.d.ts.map +1 -0
- package/dist/unstable/http/Url.js +256 -0
- package/dist/unstable/http/Url.js.map +1 -0
- package/dist/unstable/http/UrlParams.d.ts +19 -10
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +6 -7
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/http/index.d.ts +8 -0
- package/dist/unstable/http/index.d.ts.map +1 -1
- package/dist/unstable/http/index.js +8 -0
- package/dist/unstable/http/index.js.map +1 -1
- package/dist/unstable/http/internal/preResponseHandler.d.ts +2 -0
- package/dist/unstable/http/internal/preResponseHandler.d.ts.map +1 -0
- package/dist/unstable/http/internal/preResponseHandler.js +10 -0
- package/dist/unstable/http/internal/preResponseHandler.js.map +1 -0
- package/dist/unstable/httpapi/HttpApi.d.ts +4 -4
- package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts +11 -5
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +40 -27
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts +83 -7
- package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +78 -10
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +207 -101
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.js +49 -43
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +31 -14
- package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.js +125 -32
- package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.d.ts +4 -3
- package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +46 -15
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js +32 -3
- package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.d.ts +6 -0
- package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.d.ts +5 -0
- package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.js +20 -2
- package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts +2 -2
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +34 -26
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/observability/Otlp.d.ts +12 -12
- package/dist/unstable/observability/Otlp.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts +2 -2
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +3 -3
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.d.ts +4 -4
- package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpLogger.js +7 -4
- package/dist/unstable/observability/OtlpLogger.js.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts +4 -4
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.d.ts +4 -4
- package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.js +7 -3
- package/dist/unstable/observability/OtlpTracer.js.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.d.ts +1 -1
- package/dist/unstable/persistence/KeyValueStore.js +6 -6
- package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
- package/dist/unstable/persistence/Persistable.d.ts +2 -2
- package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistable.js +1 -1
- package/dist/unstable/persistence/Persistable.js.map +1 -1
- package/dist/unstable/persistence/PersistedCache.d.ts +6 -5
- package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedCache.js +2 -1
- package/dist/unstable/persistence/PersistedCache.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts +12 -12
- package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.js +12 -11
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/Persistence.d.ts +1 -1
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +2 -2
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +3 -3
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +1 -1
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/process/ChildProcess.d.ts +5 -128
- package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcess.js +1 -65
- package/dist/unstable/process/ChildProcess.js.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts +45 -7
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js +21 -1
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +73 -12
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +108 -25
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +17 -15
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +45 -15
- package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.d.ts +6 -0
- package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +54 -11
- package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts +9 -9
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +47 -21
- package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
- package/dist/unstable/reactivity/Hydration.d.ts +39 -0
- package/dist/unstable/reactivity/Hydration.d.ts.map +1 -0
- package/dist/unstable/reactivity/Hydration.js +76 -0
- package/dist/unstable/reactivity/Hydration.js.map +1 -0
- package/dist/unstable/reactivity/index.d.ts +4 -0
- package/dist/unstable/reactivity/index.d.ts.map +1 -1
- package/dist/unstable/reactivity/index.js +4 -0
- package/dist/unstable/reactivity/index.js.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts +5 -5
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/Rpc.js +4 -3
- package/dist/unstable/rpc/Rpc.js.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts +5 -26
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +10 -17
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcGroup.d.ts +3 -5
- package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcGroup.js.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.d.ts +8 -8
- package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
- package/dist/unstable/rpc/RpcSchema.d.ts +13 -0
- package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSchema.js +17 -2
- package/dist/unstable/rpc/RpcSchema.js.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.js +39 -11
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts +6 -10
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +20 -19
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/rpc/Utils.d.ts.map +1 -1
- package/dist/unstable/rpc/Utils.js +3 -2
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/schema/Model.d.ts +22 -1
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/Model.js +15 -0
- package/dist/unstable/schema/Model.js.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +6 -6
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.js +6 -6
- package/dist/unstable/schema/VariantSchema.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +6 -5
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +12 -9
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/socket/SocketServer.d.ts +3 -3
- package/dist/unstable/sql/Migrator.d.ts +1 -1
- package/dist/unstable/sql/Migrator.d.ts.map +1 -1
- package/dist/unstable/sql/Migrator.js +2 -2
- package/dist/unstable/sql/Migrator.js.map +1 -1
- package/dist/unstable/sql/SqlClient.d.ts +1 -1
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlClient.js +1 -1
- package/dist/unstable/sql/SqlClient.js.map +1 -1
- package/dist/unstable/sql/SqlError.d.ts +237 -17
- package/dist/unstable/sql/SqlError.d.ts.map +1 -1
- package/dist/unstable/sql/SqlError.js +260 -4
- package/dist/unstable/sql/SqlError.js.map +1 -1
- package/dist/unstable/sql/SqlModel.d.ts +2 -2
- package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
- package/dist/unstable/sql/SqlModel.js +3 -3
- package/dist/unstable/sql/SqlModel.js.map +1 -1
- package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
- package/dist/unstable/sql/SqlResolver.js +17 -8
- package/dist/unstable/sql/SqlResolver.js.map +1 -1
- package/dist/unstable/sql/SqlSchema.d.ts +17 -6
- package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
- package/dist/unstable/sql/SqlSchema.js +17 -7
- package/dist/unstable/sql/SqlSchema.js.map +1 -1
- package/dist/unstable/sql/Statement.js +0 -1
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts.map +1 -1
- package/dist/unstable/workers/Worker.js +2 -1
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts +3 -3
- package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableClock.js +3 -3
- package/dist/unstable/workflow/DurableClock.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js +8 -8
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +5 -4
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +1 -1
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +17 -5
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +153 -12
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/package.json +2 -2
- package/src/Array.ts +304 -447
- package/src/BigDecimal.ts +63 -66
- package/src/BigInt.ts +49 -41
- package/src/Brand.ts +1 -1
- package/src/Cache.ts +9 -8
- package/src/Cause.ts +37 -2
- package/src/Channel.ts +582 -154
- package/src/Chunk.ts +149 -331
- package/src/Combiner.ts +280 -13
- package/src/Config.ts +195 -25
- package/src/Cron.ts +155 -63
- package/src/Data.ts +539 -376
- package/src/DateTime.ts +75 -256
- package/src/Deferred.ts +8 -6
- package/src/Duration.ts +122 -66
- package/src/Effect.ts +1483 -1157
- package/src/Encoding.ts +879 -0
- package/src/Equal.ts +278 -111
- package/src/Equivalence.ts +114 -52
- package/src/ErrorReporter.ts +458 -0
- package/src/Exit.ts +24 -12
- package/src/Fiber.ts +12 -3
- package/src/FiberHandle.ts +10 -9
- package/src/FiberMap.ts +22 -22
- package/src/FileSystem.ts +34 -31
- package/src/Filter.ts +52 -63
- package/src/Formatter.ts +253 -51
- package/src/Function.ts +2 -10
- package/src/Graph.ts +131 -117
- package/src/HashMap.ts +26 -19
- package/src/Iterable.ts +117 -63
- package/src/JsonSchema.ts +383 -10
- package/src/Latch.ts +194 -0
- package/src/Layer.ts +393 -159
- package/src/LayerMap.ts +11 -9
- package/src/LogLevel.ts +37 -0
- package/src/Logger.ts +33 -100
- package/src/ManagedRuntime.ts +2 -2
- package/src/Metric.ts +6 -8
- package/src/MutableHashMap.ts +9 -0
- package/src/MutableHashSet.ts +9 -0
- package/src/Newtype.ts +308 -0
- package/src/Number.ts +85 -26
- package/src/Optic.ts +948 -19
- package/src/Option.ts +34 -24
- package/src/Order.ts +39 -32
- package/src/PartitionedSemaphore.ts +288 -56
- package/src/Pipeable.ts +32 -1
- package/src/PlatformError.ts +5 -5
- package/src/Pool.ts +13 -11
- package/src/PubSub.ts +30 -20
- package/src/Pull.ts +1 -1
- package/src/Queue.ts +11 -9
- package/src/Random.ts +51 -14
- package/src/RcMap.ts +5 -5
- package/src/RcRef.ts +1 -1
- package/src/Record.ts +94 -199
- package/src/Reducer.ts +166 -7
- package/src/References.ts +283 -287
- package/src/Request.ts +3 -2
- package/src/RequestResolver.ts +29 -49
- package/src/Resource.ts +2 -1
- package/src/Result.ts +2 -4
- package/src/Runtime.ts +102 -6
- package/src/Schedule.ts +458 -449
- package/src/Scheduler.ts +49 -126
- package/src/Schema.ts +3298 -392
- package/src/SchemaAST.ts +172 -33
- package/src/SchemaGetter.ts +19 -21
- package/src/SchemaParser.ts +92 -27
- package/src/SchemaRepresentation.ts +51 -26
- package/src/SchemaTransformation.ts +198 -13
- package/src/ScopedCache.ts +3 -3
- package/src/Semaphore.ts +444 -0
- package/src/ServiceMap.ts +133 -71
- package/src/Sink.ts +83 -28
- package/src/Stdio.ts +27 -4
- package/src/Stream.ts +687 -617
- package/src/String.ts +122 -69
- package/src/Struct.ts +33 -7
- package/src/SubscriptionRef.ts +101 -120
- package/src/SynchronizedRef.ts +3 -2
- package/src/Terminal.ts +2 -1
- package/src/Tracer.ts +6 -5
- package/src/Trie.ts +44 -31
- package/src/TxChunk.ts +72 -53
- package/src/TxDeferred.ts +394 -0
- package/src/TxHashMap.ts +409 -343
- package/src/TxHashSet.ts +113 -118
- package/src/TxPriorityQueue.ts +766 -0
- package/src/TxPubSub.ts +789 -0
- package/src/TxQueue.ts +241 -251
- package/src/TxReentrantLock.ts +753 -0
- package/src/TxRef.ts +50 -38
- package/src/TxSemaphore.ts +217 -44
- package/src/TxSubscriptionRef.ts +639 -0
- package/src/Types.ts +73 -19
- package/src/Utils.ts +137 -111
- package/src/index.ts +814 -54
- package/src/internal/core.ts +12 -5
- package/src/internal/dateTime.ts +91 -96
- package/src/internal/effect.ts +841 -432
- package/src/internal/hashMap.ts +12 -10
- package/src/internal/option.ts +7 -0
- package/src/internal/random.ts +20 -0
- package/src/internal/rcRef.ts +4 -3
- package/src/internal/references.ts +72 -0
- package/src/internal/request.ts +2 -2
- package/src/internal/schema/annotations.ts +2 -0
- package/src/internal/schema/representation.ts +45 -94
- package/src/internal/schema/schema.ts +1 -0
- package/src/internal/schema/to-codec.ts +7 -17
- package/src/internal/trie.ts +21 -15
- package/src/testing/TestClock.ts +13 -11
- package/src/testing/TestSchema.ts +332 -35
- package/src/testing/index.ts +64 -1
- package/src/unstable/ai/AiError.ts +111 -54
- package/src/unstable/ai/AnthropicStructuredOutput.ts +4 -0
- package/src/unstable/ai/Chat.ts +62 -74
- package/src/unstable/ai/EmbeddingModel.ts +209 -0
- package/src/unstable/ai/LanguageModel.ts +544 -230
- package/src/unstable/ai/McpSchema.ts +73 -13
- package/src/unstable/ai/McpServer.ts +271 -61
- package/src/unstable/ai/Model.ts +40 -9
- package/src/unstable/ai/OpenAiStructuredOutput.ts +4 -0
- package/src/unstable/ai/Prompt.ts +37 -37
- package/src/unstable/ai/Response.ts +25 -25
- package/src/unstable/ai/ResponseIdTracker.ts +97 -0
- package/src/unstable/ai/Tool.ts +42 -16
- package/src/unstable/ai/Toolkit.ts +5 -14
- package/src/unstable/ai/index.ts +24 -1
- package/src/unstable/ai/internal/codec-transformer.ts +0 -7
- package/src/unstable/cli/Argument.ts +2 -4
- package/src/unstable/cli/CliError.ts +47 -59
- package/src/unstable/cli/CliOutput.ts +85 -13
- package/src/unstable/cli/Command.ts +801 -192
- package/src/unstable/cli/Completions.ts +36 -0
- package/src/unstable/cli/Flag.ts +2 -2
- package/src/unstable/cli/GlobalFlag.ts +242 -0
- package/src/unstable/cli/HelpDoc.ts +91 -11
- package/src/unstable/cli/Param.ts +15 -11
- package/src/unstable/cli/Primitive.ts +2 -2
- package/src/unstable/cli/Prompt.ts +262 -100
- package/src/unstable/cli/index.ts +10 -0
- package/src/unstable/cli/internal/command.ts +109 -63
- package/src/unstable/cli/internal/completions/CommandDescriptor.ts +10 -4
- package/src/unstable/cli/internal/config.ts +49 -0
- package/src/unstable/cli/internal/help.ts +171 -0
- package/src/unstable/cli/internal/parser.ts +71 -63
- package/src/unstable/cluster/ClusterCron.ts +2 -2
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +40 -34
- package/src/unstable/cluster/DeliverAt.ts +1 -1
- package/src/unstable/cluster/Entity.ts +24 -22
- package/src/unstable/cluster/EntityAddress.ts +1 -1
- package/src/unstable/cluster/EntityResource.ts +4 -4
- package/src/unstable/cluster/Envelope.ts +1 -1
- package/src/unstable/cluster/K8sHttpClient.ts +5 -5
- package/src/unstable/cluster/Message.ts +6 -5
- package/src/unstable/cluster/MessageStorage.ts +29 -30
- package/src/unstable/cluster/Reply.ts +7 -4
- package/src/unstable/cluster/Runner.ts +1 -1
- package/src/unstable/cluster/RunnerAddress.ts +1 -1
- package/src/unstable/cluster/RunnerServer.ts +10 -13
- package/src/unstable/cluster/Runners.ts +14 -12
- package/src/unstable/cluster/ShardId.ts +2 -2
- package/src/unstable/cluster/Sharding.ts +36 -27
- package/src/unstable/cluster/ShardingConfig.ts +36 -37
- package/src/unstable/cluster/SqlMessageStorage.ts +21 -18
- package/src/unstable/cluster/SqlRunnerStorage.ts +1 -1
- package/src/unstable/cluster/internal/entityManager.ts +36 -29
- package/src/unstable/cluster/internal/entityReaper.ts +2 -1
- package/src/unstable/cluster/internal/resourceRef.ts +2 -1
- package/src/unstable/devtools/DevToolsClient.ts +23 -18
- package/src/unstable/devtools/DevToolsSchema.ts +16 -3
- package/src/unstable/encoding/Ndjson.ts +17 -17
- package/src/unstable/encoding/Sse.ts +3 -5
- package/src/unstable/eventlog/EventJournal.ts +2 -2
- package/src/unstable/eventlog/EventLog.ts +3 -2
- package/src/unstable/eventlog/SqlEventLogJournal.ts +2 -2
- package/src/unstable/http/Cookies.ts +94 -11
- package/src/unstable/http/Etag.ts +5 -3
- package/src/unstable/http/Headers.ts +68 -18
- package/src/unstable/http/HttpClient.ts +376 -34
- package/src/unstable/http/HttpClientRequest.ts +151 -39
- package/src/unstable/http/HttpClientResponse.ts +12 -6
- package/src/unstable/http/HttpEffect.ts +54 -68
- package/src/unstable/http/HttpIncomingMessage.ts +3 -2
- package/src/unstable/http/HttpMethod.ts +16 -4
- package/src/unstable/http/HttpMiddleware.ts +25 -39
- package/src/unstable/http/HttpPlatform.ts +3 -2
- package/src/unstable/http/HttpRouter.ts +9 -9
- package/src/unstable/http/HttpServer.ts +3 -9
- package/src/unstable/http/HttpServerError.ts +45 -47
- package/src/unstable/http/HttpServerRequest.ts +407 -16
- package/src/unstable/http/HttpServerRespondable.ts +6 -6
- package/src/unstable/http/HttpServerResponse.ts +345 -7
- package/src/unstable/http/HttpStaticServer.ts +456 -0
- package/src/unstable/http/HttpTraceContext.ts +31 -17
- package/src/unstable/http/Multipart.ts +2 -2
- package/src/unstable/http/Url.ts +650 -0
- package/src/unstable/http/UrlParams.ts +31 -19
- package/src/unstable/http/index.ts +10 -0
- package/src/unstable/http/internal/preResponseHandler.ts +15 -0
- package/src/unstable/httpapi/HttpApi.ts +6 -6
- package/src/unstable/httpapi/HttpApiBuilder.ts +106 -41
- package/src/unstable/httpapi/HttpApiClient.ts +180 -28
- package/src/unstable/httpapi/HttpApiEndpoint.ts +216 -104
- package/src/unstable/httpapi/HttpApiError.ts +108 -30
- package/src/unstable/httpapi/HttpApiGroup.ts +7 -6
- package/src/unstable/httpapi/HttpApiMiddleware.ts +83 -22
- package/src/unstable/httpapi/HttpApiScalar.ts +6 -0
- package/src/unstable/httpapi/HttpApiSchema.ts +20 -2
- package/src/unstable/httpapi/HttpApiSecurity.ts +3 -3
- package/src/unstable/httpapi/OpenApi.ts +43 -29
- package/src/unstable/observability/Otlp.ts +12 -12
- package/src/unstable/observability/OtlpExporter.ts +8 -5
- package/src/unstable/observability/OtlpLogger.ts +13 -9
- package/src/unstable/observability/OtlpMetrics.ts +4 -4
- package/src/unstable/observability/OtlpTracer.ts +12 -8
- package/src/unstable/persistence/KeyValueStore.ts +6 -6
- package/src/unstable/persistence/Persistable.ts +3 -3
- package/src/unstable/persistence/PersistedCache.ts +20 -9
- package/src/unstable/persistence/PersistedQueue.ts +25 -24
- package/src/unstable/persistence/Persistence.ts +3 -3
- package/src/unstable/persistence/RateLimiter.ts +4 -4
- package/src/unstable/process/ChildProcess.ts +6 -208
- package/src/unstable/process/ChildProcessSpawner.ts +75 -14
- package/src/unstable/reactivity/Atom.ts +212 -54
- package/src/unstable/reactivity/AtomHttpApi.ts +81 -41
- package/src/unstable/reactivity/AtomRegistry.ts +66 -12
- package/src/unstable/reactivity/AtomRpc.ts +51 -20
- package/src/unstable/reactivity/Hydration.ts +112 -0
- package/src/unstable/reactivity/index.ts +5 -0
- package/src/unstable/rpc/Rpc.ts +11 -12
- package/src/unstable/rpc/RpcClient.ts +22 -63
- package/src/unstable/rpc/RpcGroup.ts +7 -7
- package/src/unstable/rpc/RpcMiddleware.ts +15 -9
- package/src/unstable/rpc/RpcSchema.ts +23 -5
- package/src/unstable/rpc/RpcSerialization.ts +49 -11
- package/src/unstable/rpc/RpcServer.ts +31 -35
- package/src/unstable/rpc/Utils.ts +3 -2
- package/src/unstable/schema/Model.ts +31 -0
- package/src/unstable/schema/VariantSchema.ts +10 -10
- package/src/unstable/socket/Socket.ts +31 -27
- package/src/unstable/sql/Migrator.ts +7 -5
- package/src/unstable/sql/SqlClient.ts +6 -4
- package/src/unstable/sql/SqlError.ts +365 -11
- package/src/unstable/sql/SqlModel.ts +5 -5
- package/src/unstable/sql/SqlResolver.ts +17 -7
- package/src/unstable/sql/SqlSchema.ts +42 -26
- package/src/unstable/sql/Statement.ts +0 -1
- package/src/unstable/workers/Worker.ts +2 -1
- package/src/unstable/workflow/DurableClock.ts +8 -8
- package/src/unstable/workflow/DurableDeferred.ts +8 -8
- package/src/unstable/workflow/Workflow.ts +7 -3
- package/src/unstable/workflow/WorkflowEngine.ts +211 -19
- package/dist/NullOr.d.ts +0 -149
- package/dist/NullOr.d.ts.map +0 -1
- package/dist/NullOr.js +0 -152
- package/dist/NullOr.js.map +0 -1
- package/dist/encoding/Base64.d.ts +0 -67
- package/dist/encoding/Base64.d.ts.map +0 -1
- package/dist/encoding/Base64.js +0 -146
- package/dist/encoding/Base64.js.map +0 -1
- package/dist/encoding/Base64Url.d.ts +0 -60
- package/dist/encoding/Base64Url.d.ts.map +0 -1
- package/dist/encoding/Base64Url.js +0 -89
- package/dist/encoding/Base64Url.js.map +0 -1
- package/dist/encoding/EncodingError.d.ts +0 -31
- package/dist/encoding/EncodingError.d.ts.map +0 -1
- package/dist/encoding/EncodingError.js +0 -22
- package/dist/encoding/EncodingError.js.map +0 -1
- package/dist/encoding/Hex.d.ts +0 -61
- package/dist/encoding/Hex.d.ts.map +0 -1
- package/dist/encoding/Hex.js +0 -115
- package/dist/encoding/Hex.js.map +0 -1
- package/dist/encoding/index.d.ts +0 -26
- package/dist/encoding/index.d.ts.map +0 -1
- package/dist/encoding/index.js +0 -27
- package/dist/encoding/index.js.map +0 -1
- package/dist/unstable/cli/internal/builtInFlags.d.ts +0 -7
- package/dist/unstable/cli/internal/builtInFlags.d.ts.map +0 -1
- package/dist/unstable/cli/internal/builtInFlags.js +0 -44
- package/dist/unstable/cli/internal/builtInFlags.js.map +0 -1
- package/dist/unstable/cli/internal/completions/Completions.d.ts +0 -2
- package/dist/unstable/cli/internal/completions/Completions.d.ts.map +0 -1
- package/dist/unstable/cli/internal/completions/Completions.js +0 -23
- package/dist/unstable/cli/internal/completions/Completions.js.map +0 -1
- package/src/NullOr.ts +0 -204
- package/src/encoding/Base64.ts +0 -366
- package/src/encoding/Base64Url.ts +0 -104
- package/src/encoding/EncodingError.ts +0 -35
- package/src/encoding/Hex.ts +0 -390
- package/src/encoding/index.ts +0 -31
- package/src/unstable/cli/internal/builtInFlags.ts +0 -78
- package/src/unstable/cli/internal/completions/Completions.ts +0 -31
package/src/TxHashMap.ts
CHANGED
|
@@ -11,6 +11,8 @@ import { NodeInspectSymbol, toJson } from "./Inspectable.ts"
|
|
|
11
11
|
import * as Option from "./Option.ts"
|
|
12
12
|
import type { Pipeable } from "./Pipeable.ts"
|
|
13
13
|
import { pipeArguments } from "./Pipeable.ts"
|
|
14
|
+
import { hasProperty } from "./Predicate.ts"
|
|
15
|
+
import type { Result } from "./Result.ts"
|
|
14
16
|
import * as TxRef from "./TxRef.ts"
|
|
15
17
|
|
|
16
18
|
const TypeId = "~effect/transactions/TxHashMap"
|
|
@@ -41,7 +43,7 @@ const TxHashMapProto = {
|
|
|
41
43
|
*
|
|
42
44
|
* @example
|
|
43
45
|
* ```ts
|
|
44
|
-
* import { Effect,
|
|
46
|
+
* import { Effect, TxHashMap } from "effect"
|
|
45
47
|
*
|
|
46
48
|
* const program = Effect.gen(function*() {
|
|
47
49
|
* // Create a transactional hash map
|
|
@@ -53,10 +55,10 @@ const TxHashMapProto = {
|
|
|
53
55
|
* console.log(user) // Option.some("Alice")
|
|
54
56
|
*
|
|
55
57
|
* // Multi-step atomic operations
|
|
56
|
-
* yield* Effect.
|
|
58
|
+
* yield* Effect.transaction(
|
|
57
59
|
* Effect.gen(function*() {
|
|
58
60
|
* const currentUser = yield* TxHashMap.get(txMap, "user1")
|
|
59
|
-
* if (
|
|
61
|
+
* if (currentUser._tag === "Some") {
|
|
60
62
|
* yield* TxHashMap.set(txMap, "user1", currentUser.value + "_updated")
|
|
61
63
|
* yield* TxHashMap.remove(txMap, "user2")
|
|
62
64
|
* }
|
|
@@ -236,7 +238,7 @@ export declare namespace TxHashMap {
|
|
|
236
238
|
* @since 2.0.0
|
|
237
239
|
* @category constructors
|
|
238
240
|
*/
|
|
239
|
-
export const empty = <K, V>(): Effect.Effect<TxHashMap<K, V
|
|
241
|
+
export const empty = <K, V>(): Effect.Effect<TxHashMap<K, V>, never, Effect.Transaction> =>
|
|
240
242
|
Effect.gen(function*() {
|
|
241
243
|
const ref = yield* TxRef.make(HashMap.empty<K, V>())
|
|
242
244
|
return Object.assign(Object.create(TxHashMapProto), { ref })
|
|
@@ -273,7 +275,9 @@ export const empty = <K, V>(): Effect.Effect<TxHashMap<K, V>> =>
|
|
|
273
275
|
* @since 2.0.0
|
|
274
276
|
* @category constructors
|
|
275
277
|
*/
|
|
276
|
-
export const make = <K, V>(
|
|
278
|
+
export const make = <K, V>(
|
|
279
|
+
...entries: Array<readonly [K, V]>
|
|
280
|
+
): Effect.Effect<TxHashMap<K, V>, never, Effect.Transaction> =>
|
|
277
281
|
Effect.gen(function*() {
|
|
278
282
|
const hashMap = HashMap.make(...entries)
|
|
279
283
|
const ref = yield* TxRef.make(hashMap)
|
|
@@ -314,7 +318,9 @@ export const make = <K, V>(...entries: Array<readonly [K, V]>): Effect.Effect<Tx
|
|
|
314
318
|
* @since 2.0.0
|
|
315
319
|
* @category constructors
|
|
316
320
|
*/
|
|
317
|
-
export const fromIterable = <K, V>(
|
|
321
|
+
export const fromIterable = <K, V>(
|
|
322
|
+
entries: Iterable<readonly [K, V]>
|
|
323
|
+
): Effect.Effect<TxHashMap<K, V>, never, Effect.Transaction> =>
|
|
318
324
|
Effect.gen(function*() {
|
|
319
325
|
const hashMap = HashMap.fromIterable(entries)
|
|
320
326
|
const ref = yield* TxRef.make(hashMap)
|
|
@@ -343,7 +349,7 @@ export const fromIterable = <K, V>(entries: Iterable<readonly [K, V]>): Effect.E
|
|
|
343
349
|
*
|
|
344
350
|
* // Use with pipe syntax for type-safe access
|
|
345
351
|
* const bobRole = yield* TxHashMap.get(userMap, "bob")
|
|
346
|
-
* if (
|
|
352
|
+
* if (bobRole._tag === "Some") {
|
|
347
353
|
* console.log(bobRole.value.role) // "user"
|
|
348
354
|
* }
|
|
349
355
|
* })
|
|
@@ -375,7 +381,7 @@ export const get: {
|
|
|
375
381
|
*
|
|
376
382
|
* // Use with pipe syntax for type-safe access
|
|
377
383
|
* const bobRole = yield* TxHashMap.get(userMap, "bob")
|
|
378
|
-
* if (
|
|
384
|
+
* if (bobRole._tag === "Some") {
|
|
379
385
|
* console.log(bobRole.value.role) // "user"
|
|
380
386
|
* }
|
|
381
387
|
* })
|
|
@@ -384,7 +390,7 @@ export const get: {
|
|
|
384
390
|
* @since 2.0.0
|
|
385
391
|
* @category combinators
|
|
386
392
|
*/
|
|
387
|
-
<K1 extends K, K>(key: K1): <V>(self: TxHashMap<K, V>) => Effect.Effect<Option.Option<V
|
|
393
|
+
<K1 extends K, K>(key: K1): <V>(self: TxHashMap<K, V>) => Effect.Effect<Option.Option<V>, never, Effect.Transaction>
|
|
388
394
|
/**
|
|
389
395
|
* Safely lookup the value for the specified key in the TxHashMap.
|
|
390
396
|
*
|
|
@@ -407,7 +413,7 @@ export const get: {
|
|
|
407
413
|
*
|
|
408
414
|
* // Use with pipe syntax for type-safe access
|
|
409
415
|
* const bobRole = yield* TxHashMap.get(userMap, "bob")
|
|
410
|
-
* if (
|
|
416
|
+
* if (bobRole._tag === "Some") {
|
|
411
417
|
* console.log(bobRole.value.role) // "user"
|
|
412
418
|
* }
|
|
413
419
|
* })
|
|
@@ -416,10 +422,10 @@ export const get: {
|
|
|
416
422
|
* @since 2.0.0
|
|
417
423
|
* @category combinators
|
|
418
424
|
*/
|
|
419
|
-
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<Option.Option<V
|
|
425
|
+
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<Option.Option<V>, never, Effect.Transaction>
|
|
420
426
|
} = dual(
|
|
421
427
|
2,
|
|
422
|
-
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<Option.Option<V
|
|
428
|
+
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<Option.Option<V>, never, Effect.Transaction> =>
|
|
423
429
|
Effect.gen(function*() {
|
|
424
430
|
const map = yield* TxRef.get(self.ref)
|
|
425
431
|
return HashMap.get(map, key)
|
|
@@ -495,7 +501,7 @@ export const set: {
|
|
|
495
501
|
* @since 2.0.0
|
|
496
502
|
* @category combinators
|
|
497
503
|
*/
|
|
498
|
-
<K, V>(key: K, value: V): (self: TxHashMap<K, V>) => Effect.Effect<void>
|
|
504
|
+
<K, V>(key: K, value: V): (self: TxHashMap<K, V>) => Effect.Effect<void, never, Effect.Transaction>
|
|
499
505
|
/**
|
|
500
506
|
* Sets the value for the specified key in the TxHashMap.
|
|
501
507
|
*
|
|
@@ -530,10 +536,10 @@ export const set: {
|
|
|
530
536
|
* @since 2.0.0
|
|
531
537
|
* @category combinators
|
|
532
538
|
*/
|
|
533
|
-
<K, V>(self: TxHashMap<K, V>, key: K, value: V): Effect.Effect<void>
|
|
539
|
+
<K, V>(self: TxHashMap<K, V>, key: K, value: V): Effect.Effect<void, never, Effect.Transaction>
|
|
534
540
|
} = dual(
|
|
535
541
|
3,
|
|
536
|
-
<K, V>(self: TxHashMap<K, V>, key: K, value: V): Effect.Effect<void> =>
|
|
542
|
+
<K, V>(self: TxHashMap<K, V>, key: K, value: V): Effect.Effect<void, never, Effect.Transaction> =>
|
|
537
543
|
TxRef.update(self.ref, (map) => HashMap.set(map, key, value))
|
|
538
544
|
)
|
|
539
545
|
|
|
@@ -598,7 +604,7 @@ export const has: {
|
|
|
598
604
|
* @since 2.0.0
|
|
599
605
|
* @category combinators
|
|
600
606
|
*/
|
|
601
|
-
<K1 extends K, K>(key: K1): <V>(self: TxHashMap<K, V>) => Effect.Effect<boolean>
|
|
607
|
+
<K1 extends K, K>(key: K1): <V>(self: TxHashMap<K, V>) => Effect.Effect<boolean, never, Effect.Transaction>
|
|
602
608
|
/**
|
|
603
609
|
* Checks if the specified key exists in the TxHashMap.
|
|
604
610
|
*
|
|
@@ -629,10 +635,10 @@ export const has: {
|
|
|
629
635
|
* @since 2.0.0
|
|
630
636
|
* @category combinators
|
|
631
637
|
*/
|
|
632
|
-
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean>
|
|
638
|
+
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean, never, Effect.Transaction>
|
|
633
639
|
} = dual(
|
|
634
640
|
2,
|
|
635
|
-
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean> =>
|
|
641
|
+
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean, never, Effect.Transaction> =>
|
|
636
642
|
Effect.gen(function*() {
|
|
637
643
|
const map = yield* TxRef.get(self.ref)
|
|
638
644
|
return HashMap.has(map, key)
|
|
@@ -714,7 +720,7 @@ export const remove: {
|
|
|
714
720
|
* @since 2.0.0
|
|
715
721
|
* @category combinators
|
|
716
722
|
*/
|
|
717
|
-
<K1 extends K, K>(key: K1): <V>(self: TxHashMap<K, V>) => Effect.Effect<boolean>
|
|
723
|
+
<K1 extends K, K>(key: K1): <V>(self: TxHashMap<K, V>) => Effect.Effect<boolean, never, Effect.Transaction>
|
|
718
724
|
/**
|
|
719
725
|
* Removes the specified key from the TxHashMap.
|
|
720
726
|
*
|
|
@@ -752,20 +758,18 @@ export const remove: {
|
|
|
752
758
|
* @since 2.0.0
|
|
753
759
|
* @category combinators
|
|
754
760
|
*/
|
|
755
|
-
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean>
|
|
761
|
+
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean, never, Effect.Transaction>
|
|
756
762
|
} = dual(
|
|
757
763
|
2,
|
|
758
|
-
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean> =>
|
|
759
|
-
Effect.
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
})
|
|
768
|
-
)
|
|
764
|
+
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1): Effect.Effect<boolean, never, Effect.Transaction> =>
|
|
765
|
+
Effect.gen(function*() {
|
|
766
|
+
const currentMap = yield* TxRef.get(self.ref)
|
|
767
|
+
const existed = HashMap.has(currentMap, key)
|
|
768
|
+
if (existed) {
|
|
769
|
+
yield* TxRef.set(self.ref, HashMap.remove(currentMap, key))
|
|
770
|
+
}
|
|
771
|
+
return existed
|
|
772
|
+
})
|
|
769
773
|
)
|
|
770
774
|
|
|
771
775
|
/**
|
|
@@ -804,7 +808,8 @@ export const remove: {
|
|
|
804
808
|
* @since 2.0.0
|
|
805
809
|
* @category combinators
|
|
806
810
|
*/
|
|
807
|
-
export const clear = <K, V>(self: TxHashMap<K, V>): Effect.Effect<void
|
|
811
|
+
export const clear = <K, V>(self: TxHashMap<K, V>): Effect.Effect<void, never, Effect.Transaction> =>
|
|
812
|
+
TxRef.set(self.ref, HashMap.empty<K, V>())
|
|
808
813
|
|
|
809
814
|
/**
|
|
810
815
|
* Returns the number of entries in the TxHashMap.
|
|
@@ -838,7 +843,7 @@ export const clear = <K, V>(self: TxHashMap<K, V>): Effect.Effect<void> => TxRef
|
|
|
838
843
|
* @since 2.0.0
|
|
839
844
|
* @category combinators
|
|
840
845
|
*/
|
|
841
|
-
export const size = <K, V>(self: TxHashMap<K, V>): Effect.Effect<number> =>
|
|
846
|
+
export const size = <K, V>(self: TxHashMap<K, V>): Effect.Effect<number, never, Effect.Transaction> =>
|
|
842
847
|
Effect.gen(function*() {
|
|
843
848
|
const map = yield* TxRef.get(self.ref)
|
|
844
849
|
return HashMap.size(map)
|
|
@@ -872,7 +877,7 @@ export const size = <K, V>(self: TxHashMap<K, V>): Effect.Effect<number> =>
|
|
|
872
877
|
* @since 2.0.0
|
|
873
878
|
* @category combinators
|
|
874
879
|
*/
|
|
875
|
-
export const isEmpty = <K, V>(self: TxHashMap<K, V>): Effect.Effect<boolean> =>
|
|
880
|
+
export const isEmpty = <K, V>(self: TxHashMap<K, V>): Effect.Effect<boolean, never, Effect.Transaction> =>
|
|
876
881
|
Effect.gen(function*() {
|
|
877
882
|
const map = yield* TxRef.get(self.ref)
|
|
878
883
|
return HashMap.isEmpty(map)
|
|
@@ -901,7 +906,7 @@ export const isEmpty = <K, V>(self: TxHashMap<K, V>): Effect.Effect<boolean> =>
|
|
|
901
906
|
* @since 2.0.0
|
|
902
907
|
* @category combinators
|
|
903
908
|
*/
|
|
904
|
-
export const isNonEmpty = <K, V>(self: TxHashMap<K, V>): Effect.Effect<boolean> =>
|
|
909
|
+
export const isNonEmpty = <K, V>(self: TxHashMap<K, V>): Effect.Effect<boolean, never, Effect.Transaction> =>
|
|
905
910
|
Effect.map(isEmpty(self), (empty) => !empty)
|
|
906
911
|
|
|
907
912
|
/**
|
|
@@ -991,7 +996,7 @@ export const modify: {
|
|
|
991
996
|
* @since 2.0.0
|
|
992
997
|
* @category combinators
|
|
993
998
|
*/
|
|
994
|
-
<K, V>(key: K, f: (value: V) => V): (self: TxHashMap<K, V>) => Effect.Effect<Option.Option<V
|
|
999
|
+
<K, V>(key: K, f: (value: V) => V): (self: TxHashMap<K, V>) => Effect.Effect<Option.Option<V>, never, Effect.Transaction>
|
|
995
1000
|
/**
|
|
996
1001
|
* Updates the value for the specified key if it exists.
|
|
997
1002
|
*
|
|
@@ -1035,22 +1040,24 @@ export const modify: {
|
|
|
1035
1040
|
* @since 2.0.0
|
|
1036
1041
|
* @category combinators
|
|
1037
1042
|
*/
|
|
1038
|
-
<K, V>(self: TxHashMap<K, V>, key: K, f: (value: V) => V): Effect.Effect<Option.Option<V
|
|
1043
|
+
<K, V>(self: TxHashMap<K, V>, key: K, f: (value: V) => V): Effect.Effect<Option.Option<V>, never, Effect.Transaction>
|
|
1039
1044
|
} = dual(
|
|
1040
1045
|
3,
|
|
1041
|
-
<K, V>(
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1046
|
+
<K, V>(
|
|
1047
|
+
self: TxHashMap<K, V>,
|
|
1048
|
+
key: K,
|
|
1049
|
+
f: (value: V) => V
|
|
1050
|
+
): Effect.Effect<Option.Option<V>, never, Effect.Transaction> =>
|
|
1051
|
+
Effect.gen(function*() {
|
|
1052
|
+
const currentMap = yield* TxRef.get(self.ref)
|
|
1053
|
+
const currentValue = HashMap.get(currentMap, key)
|
|
1054
|
+
if (Option.isSome(currentValue)) {
|
|
1055
|
+
const newValue = f(currentValue.value)
|
|
1056
|
+
yield* TxRef.set(self.ref, HashMap.set(currentMap, key, newValue))
|
|
1057
|
+
return currentValue
|
|
1058
|
+
}
|
|
1059
|
+
return Option.none()
|
|
1060
|
+
})
|
|
1054
1061
|
)
|
|
1055
1062
|
|
|
1056
1063
|
/**
|
|
@@ -1062,7 +1069,7 @@ export const modify: {
|
|
|
1062
1069
|
*
|
|
1063
1070
|
* @example
|
|
1064
1071
|
* ```ts
|
|
1065
|
-
* import { Effect,
|
|
1072
|
+
* import { Effect, TxHashMap } from "effect"
|
|
1066
1073
|
*
|
|
1067
1074
|
* const program = Effect.gen(function*() {
|
|
1068
1075
|
* const storage = yield* TxHashMap.make<string, string | number>([
|
|
@@ -1070,26 +1077,32 @@ export const modify: {
|
|
|
1070
1077
|
* "content1"
|
|
1071
1078
|
* ], ["access_count", 0])
|
|
1072
1079
|
*
|
|
1073
|
-
* // Increment counter or initialize to 1
|
|
1074
|
-
* const updateFn = (opt: Option.Option<string | number>) =>
|
|
1075
|
-
* Option.isSome(opt) && typeof opt.value === "number"
|
|
1076
|
-
* ? Option.some(opt.value + 1)
|
|
1077
|
-
* : Option.some(1)
|
|
1078
|
-
*
|
|
1079
1080
|
* // Increment existing counter
|
|
1080
|
-
* yield* TxHashMap.modifyAt(storage, "access_count",
|
|
1081
|
+
* yield* TxHashMap.modifyAt(storage, "access_count", (current) =>
|
|
1082
|
+
* current._tag === "Some" && typeof current.value === "number"
|
|
1083
|
+
* ? { ...current, value: current.value + 1 }
|
|
1084
|
+
* : current
|
|
1085
|
+
* )
|
|
1081
1086
|
* const count1 = yield* TxHashMap.get(storage, "access_count")
|
|
1082
1087
|
* console.log(count1) // Option.some(1)
|
|
1083
1088
|
*
|
|
1084
1089
|
* // Increment existing counter again
|
|
1085
|
-
* yield* TxHashMap.modifyAt(storage, "access_count",
|
|
1090
|
+
* yield* TxHashMap.modifyAt(storage, "access_count", (current) =>
|
|
1091
|
+
* current._tag === "Some" && typeof current.value === "number"
|
|
1092
|
+
* ? { ...current, value: current.value + 1 }
|
|
1093
|
+
* : current
|
|
1094
|
+
* )
|
|
1086
1095
|
* const count2 = yield* TxHashMap.get(storage, "access_count")
|
|
1087
1096
|
* console.log(count2) // Option.some(2)
|
|
1088
1097
|
*
|
|
1089
|
-
* //
|
|
1090
|
-
* yield* TxHashMap.modifyAt(storage, "file1.txt", () =>
|
|
1091
|
-
*
|
|
1092
|
-
*
|
|
1098
|
+
* // Update an existing string entry
|
|
1099
|
+
* yield* TxHashMap.modifyAt(storage, "file1.txt", (current) =>
|
|
1100
|
+
* current._tag === "Some" && typeof current.value === "string"
|
|
1101
|
+
* ? { ...current, value: `${current.value}.bak` }
|
|
1102
|
+
* : current
|
|
1103
|
+
* )
|
|
1104
|
+
* const backup = yield* TxHashMap.get(storage, "file1.txt")
|
|
1105
|
+
* console.log(backup) // Option.some("content1.bak")
|
|
1093
1106
|
* })
|
|
1094
1107
|
* ```
|
|
1095
1108
|
*
|
|
@@ -1106,7 +1119,7 @@ export const modifyAt: {
|
|
|
1106
1119
|
*
|
|
1107
1120
|
* @example
|
|
1108
1121
|
* ```ts
|
|
1109
|
-
* import { Effect,
|
|
1122
|
+
* import { Effect, TxHashMap } from "effect"
|
|
1110
1123
|
*
|
|
1111
1124
|
* const program = Effect.gen(function*() {
|
|
1112
1125
|
* const storage = yield* TxHashMap.make<string, string | number>([
|
|
@@ -1114,33 +1127,39 @@ export const modifyAt: {
|
|
|
1114
1127
|
* "content1"
|
|
1115
1128
|
* ], ["access_count", 0])
|
|
1116
1129
|
*
|
|
1117
|
-
* // Increment counter or initialize to 1
|
|
1118
|
-
* const updateFn = (opt: Option.Option<string | number>) =>
|
|
1119
|
-
* Option.isSome(opt) && typeof opt.value === "number"
|
|
1120
|
-
* ? Option.some(opt.value + 1)
|
|
1121
|
-
* : Option.some(1)
|
|
1122
|
-
*
|
|
1123
1130
|
* // Increment existing counter
|
|
1124
|
-
* yield* TxHashMap.modifyAt(storage, "access_count",
|
|
1131
|
+
* yield* TxHashMap.modifyAt(storage, "access_count", (current) =>
|
|
1132
|
+
* current._tag === "Some" && typeof current.value === "number"
|
|
1133
|
+
* ? { ...current, value: current.value + 1 }
|
|
1134
|
+
* : current
|
|
1135
|
+
* )
|
|
1125
1136
|
* const count1 = yield* TxHashMap.get(storage, "access_count")
|
|
1126
1137
|
* console.log(count1) // Option.some(1)
|
|
1127
1138
|
*
|
|
1128
1139
|
* // Increment existing counter again
|
|
1129
|
-
* yield* TxHashMap.modifyAt(storage, "access_count",
|
|
1140
|
+
* yield* TxHashMap.modifyAt(storage, "access_count", (current) =>
|
|
1141
|
+
* current._tag === "Some" && typeof current.value === "number"
|
|
1142
|
+
* ? { ...current, value: current.value + 1 }
|
|
1143
|
+
* : current
|
|
1144
|
+
* )
|
|
1130
1145
|
* const count2 = yield* TxHashMap.get(storage, "access_count")
|
|
1131
1146
|
* console.log(count2) // Option.some(2)
|
|
1132
1147
|
*
|
|
1133
|
-
* //
|
|
1134
|
-
* yield* TxHashMap.modifyAt(storage, "file1.txt", () =>
|
|
1135
|
-
*
|
|
1136
|
-
*
|
|
1148
|
+
* // Update an existing string entry
|
|
1149
|
+
* yield* TxHashMap.modifyAt(storage, "file1.txt", (current) =>
|
|
1150
|
+
* current._tag === "Some" && typeof current.value === "string"
|
|
1151
|
+
* ? { ...current, value: `${current.value}.bak` }
|
|
1152
|
+
* : current
|
|
1153
|
+
* )
|
|
1154
|
+
* const backup = yield* TxHashMap.get(storage, "file1.txt")
|
|
1155
|
+
* console.log(backup) // Option.some("content1.bak")
|
|
1137
1156
|
* })
|
|
1138
1157
|
* ```
|
|
1139
1158
|
*
|
|
1140
1159
|
* @since 2.0.0
|
|
1141
1160
|
* @category combinators
|
|
1142
1161
|
*/
|
|
1143
|
-
<K, V>(key: K, f: (value: Option.Option<V>) => Option.Option<V>): (self: TxHashMap<K, V>) => Effect.Effect<void>
|
|
1162
|
+
<K, V>(key: K, f: (value: Option.Option<V>) => Option.Option<V>): (self: TxHashMap<K, V>) => Effect.Effect<void, never, Effect.Transaction>
|
|
1144
1163
|
/**
|
|
1145
1164
|
* Updates the value for the specified key using an Option-based update function.
|
|
1146
1165
|
*
|
|
@@ -1150,7 +1169,7 @@ export const modifyAt: {
|
|
|
1150
1169
|
*
|
|
1151
1170
|
* @example
|
|
1152
1171
|
* ```ts
|
|
1153
|
-
* import { Effect,
|
|
1172
|
+
* import { Effect, TxHashMap } from "effect"
|
|
1154
1173
|
*
|
|
1155
1174
|
* const program = Effect.gen(function*() {
|
|
1156
1175
|
* const storage = yield* TxHashMap.make<string, string | number>([
|
|
@@ -1158,26 +1177,32 @@ export const modifyAt: {
|
|
|
1158
1177
|
* "content1"
|
|
1159
1178
|
* ], ["access_count", 0])
|
|
1160
1179
|
*
|
|
1161
|
-
* // Increment counter or initialize to 1
|
|
1162
|
-
* const updateFn = (opt: Option.Option<string | number>) =>
|
|
1163
|
-
* Option.isSome(opt) && typeof opt.value === "number"
|
|
1164
|
-
* ? Option.some(opt.value + 1)
|
|
1165
|
-
* : Option.some(1)
|
|
1166
|
-
*
|
|
1167
1180
|
* // Increment existing counter
|
|
1168
|
-
* yield* TxHashMap.modifyAt(storage, "access_count",
|
|
1181
|
+
* yield* TxHashMap.modifyAt(storage, "access_count", (current) =>
|
|
1182
|
+
* current._tag === "Some" && typeof current.value === "number"
|
|
1183
|
+
* ? { ...current, value: current.value + 1 }
|
|
1184
|
+
* : current
|
|
1185
|
+
* )
|
|
1169
1186
|
* const count1 = yield* TxHashMap.get(storage, "access_count")
|
|
1170
1187
|
* console.log(count1) // Option.some(1)
|
|
1171
1188
|
*
|
|
1172
1189
|
* // Increment existing counter again
|
|
1173
|
-
* yield* TxHashMap.modifyAt(storage, "access_count",
|
|
1190
|
+
* yield* TxHashMap.modifyAt(storage, "access_count", (current) =>
|
|
1191
|
+
* current._tag === "Some" && typeof current.value === "number"
|
|
1192
|
+
* ? { ...current, value: current.value + 1 }
|
|
1193
|
+
* : current
|
|
1194
|
+
* )
|
|
1174
1195
|
* const count2 = yield* TxHashMap.get(storage, "access_count")
|
|
1175
1196
|
* console.log(count2) // Option.some(2)
|
|
1176
1197
|
*
|
|
1177
|
-
* //
|
|
1178
|
-
* yield* TxHashMap.modifyAt(storage, "file1.txt", () =>
|
|
1179
|
-
*
|
|
1180
|
-
*
|
|
1198
|
+
* // Update an existing string entry
|
|
1199
|
+
* yield* TxHashMap.modifyAt(storage, "file1.txt", (current) =>
|
|
1200
|
+
* current._tag === "Some" && typeof current.value === "string"
|
|
1201
|
+
* ? { ...current, value: `${current.value}.bak` }
|
|
1202
|
+
* : current
|
|
1203
|
+
* )
|
|
1204
|
+
* const backup = yield* TxHashMap.get(storage, "file1.txt")
|
|
1205
|
+
* console.log(backup) // Option.some("content1.bak")
|
|
1181
1206
|
* })
|
|
1182
1207
|
* ```
|
|
1183
1208
|
*
|
|
@@ -1188,23 +1213,25 @@ export const modifyAt: {
|
|
|
1188
1213
|
self: TxHashMap<K, V>,
|
|
1189
1214
|
key: K,
|
|
1190
1215
|
f: (value: Option.Option<V>) => Option.Option<V>
|
|
1191
|
-
): Effect.Effect<void>
|
|
1216
|
+
): Effect.Effect<void, never, Effect.Transaction>
|
|
1192
1217
|
} = dual(
|
|
1193
1218
|
3,
|
|
1194
|
-
<K, V>(
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1219
|
+
<K, V>(
|
|
1220
|
+
self: TxHashMap<K, V>,
|
|
1221
|
+
key: K,
|
|
1222
|
+
f: (value: Option.Option<V>) => Option.Option<V>
|
|
1223
|
+
): Effect.Effect<void, never, Effect.Transaction> =>
|
|
1224
|
+
Effect.gen(function*() {
|
|
1225
|
+
const currentMap = yield* TxRef.get(self.ref)
|
|
1226
|
+
const currentValue = HashMap.get(currentMap, key)
|
|
1227
|
+
const newValue = f(currentValue)
|
|
1200
1228
|
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1204
|
-
|
|
1205
|
-
|
|
1206
|
-
|
|
1207
|
-
)
|
|
1229
|
+
if (Option.isSome(newValue)) {
|
|
1230
|
+
yield* TxRef.set(self.ref, HashMap.set(currentMap, key, newValue.value))
|
|
1231
|
+
} else if (Option.isSome(currentValue)) {
|
|
1232
|
+
yield* TxRef.set(self.ref, HashMap.remove(currentMap, key))
|
|
1233
|
+
}
|
|
1234
|
+
})
|
|
1208
1235
|
)
|
|
1209
1236
|
|
|
1210
1237
|
/**
|
|
@@ -1227,7 +1254,7 @@ export const modifyAt: {
|
|
|
1227
1254
|
* // Useful for iteration
|
|
1228
1255
|
* for (const username of usernames) {
|
|
1229
1256
|
* const role = yield* TxHashMap.get(userRoles, username)
|
|
1230
|
-
* if (
|
|
1257
|
+
* if (role._tag === "Some") {
|
|
1231
1258
|
* console.log(`${username}: ${role.value}`)
|
|
1232
1259
|
* }
|
|
1233
1260
|
* }
|
|
@@ -1237,7 +1264,7 @@ export const modifyAt: {
|
|
|
1237
1264
|
* @since 2.0.0
|
|
1238
1265
|
* @category combinators
|
|
1239
1266
|
*/
|
|
1240
|
-
export const keys = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<K
|
|
1267
|
+
export const keys = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<K>, never, Effect.Transaction> =>
|
|
1241
1268
|
Effect.gen(function*() {
|
|
1242
1269
|
const map = yield* TxRef.get(self.ref)
|
|
1243
1270
|
return Array.from(HashMap.keys(map))
|
|
@@ -1274,7 +1301,7 @@ export const keys = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<K>> =>
|
|
|
1274
1301
|
* @since 2.0.0
|
|
1275
1302
|
* @category combinators
|
|
1276
1303
|
*/
|
|
1277
|
-
export const values = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<V
|
|
1304
|
+
export const values = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<V>, never, Effect.Transaction> =>
|
|
1278
1305
|
Effect.gen(function*() {
|
|
1279
1306
|
const map = yield* TxRef.get(self.ref)
|
|
1280
1307
|
return HashMap.toValues(map)
|
|
@@ -1311,7 +1338,9 @@ export const values = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<V>> =>
|
|
|
1311
1338
|
* @since 2.0.0
|
|
1312
1339
|
* @category combinators
|
|
1313
1340
|
*/
|
|
1314
|
-
export const entries = <K, V>(
|
|
1341
|
+
export const entries = <K, V>(
|
|
1342
|
+
self: TxHashMap<K, V>
|
|
1343
|
+
): Effect.Effect<Array<readonly [K, V]>, never, Effect.Transaction> =>
|
|
1315
1344
|
Effect.gen(function*() {
|
|
1316
1345
|
const map = yield* TxRef.get(self.ref)
|
|
1317
1346
|
return HashMap.toEntries(map)
|
|
@@ -1351,7 +1380,9 @@ export const entries = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<readon
|
|
|
1351
1380
|
* @since 2.0.0
|
|
1352
1381
|
* @category combinators
|
|
1353
1382
|
*/
|
|
1354
|
-
export const snapshot = <K, V>(
|
|
1383
|
+
export const snapshot = <K, V>(
|
|
1384
|
+
self: TxHashMap<K, V>
|
|
1385
|
+
): Effect.Effect<HashMap.HashMap<K, V>, never, Effect.Transaction> => TxRef.get(self.ref)
|
|
1355
1386
|
|
|
1356
1387
|
/**
|
|
1357
1388
|
* Merges another HashMap into this TxHashMap. If both maps contain the same key,
|
|
@@ -1448,7 +1479,7 @@ export const union: {
|
|
|
1448
1479
|
* @since 2.0.0
|
|
1449
1480
|
* @category combinators
|
|
1450
1481
|
*/
|
|
1451
|
-
<K1 extends K, K, V1 extends V, V>(other: HashMap.HashMap<K1, V1>): (self: TxHashMap<K, V>) => Effect.Effect<void>
|
|
1482
|
+
<K1 extends K, K, V1 extends V, V>(other: HashMap.HashMap<K1, V1>): (self: TxHashMap<K, V>) => Effect.Effect<void, never, Effect.Transaction>
|
|
1452
1483
|
/**
|
|
1453
1484
|
* Merges another HashMap into this TxHashMap. If both maps contain the same key,
|
|
1454
1485
|
* the value from the other map will be used.
|
|
@@ -1496,11 +1527,13 @@ export const union: {
|
|
|
1496
1527
|
* @since 2.0.0
|
|
1497
1528
|
* @category combinators
|
|
1498
1529
|
*/
|
|
1499
|
-
<K1 extends K, K, V1 extends V, V>(self: TxHashMap<K, V>, other: HashMap.HashMap<K1, V1>): Effect.Effect<void>
|
|
1530
|
+
<K1 extends K, K, V1 extends V, V>(self: TxHashMap<K, V>, other: HashMap.HashMap<K1, V1>): Effect.Effect<void, never, Effect.Transaction>
|
|
1500
1531
|
} = dual(
|
|
1501
1532
|
2,
|
|
1502
|
-
<K1 extends K, K, V1 extends V, V>(
|
|
1503
|
-
|
|
1533
|
+
<K1 extends K, K, V1 extends V, V>(
|
|
1534
|
+
self: TxHashMap<K, V>,
|
|
1535
|
+
other: HashMap.HashMap<K1, V1>
|
|
1536
|
+
): Effect.Effect<void, never, Effect.Transaction> => TxRef.update(self.ref, (map) => HashMap.union(map, other))
|
|
1504
1537
|
)
|
|
1505
1538
|
|
|
1506
1539
|
/**
|
|
@@ -1588,7 +1621,7 @@ export const removeMany: {
|
|
|
1588
1621
|
* @since 2.0.0
|
|
1589
1622
|
* @category combinators
|
|
1590
1623
|
*/
|
|
1591
|
-
<K1 extends K, K>(keys: Iterable<K1>): <V>(self: TxHashMap<K, V>) => Effect.Effect<void>
|
|
1624
|
+
<K1 extends K, K>(keys: Iterable<K1>): <V>(self: TxHashMap<K, V>) => Effect.Effect<void, never, Effect.Transaction>
|
|
1592
1625
|
/**
|
|
1593
1626
|
* Removes multiple keys from the TxHashMap.
|
|
1594
1627
|
*
|
|
@@ -1631,10 +1664,10 @@ export const removeMany: {
|
|
|
1631
1664
|
* @since 2.0.0
|
|
1632
1665
|
* @category combinators
|
|
1633
1666
|
*/
|
|
1634
|
-
<K1 extends K, K, V>(self: TxHashMap<K, V>, keys: Iterable<K1>): Effect.Effect<void>
|
|
1667
|
+
<K1 extends K, K, V>(self: TxHashMap<K, V>, keys: Iterable<K1>): Effect.Effect<void, never, Effect.Transaction>
|
|
1635
1668
|
} = dual(
|
|
1636
1669
|
2,
|
|
1637
|
-
<K1 extends K, K, V>(self: TxHashMap<K, V>, keys: Iterable<K1>): Effect.Effect<void> =>
|
|
1670
|
+
<K1 extends K, K, V>(self: TxHashMap<K, V>, keys: Iterable<K1>): Effect.Effect<void, never, Effect.Transaction> =>
|
|
1638
1671
|
TxRef.update(self.ref, (map) => HashMap.removeMany(map, keys))
|
|
1639
1672
|
)
|
|
1640
1673
|
|
|
@@ -1753,7 +1786,7 @@ export const setMany: {
|
|
|
1753
1786
|
* @since 2.0.0
|
|
1754
1787
|
* @category combinators
|
|
1755
1788
|
*/
|
|
1756
|
-
<K1 extends K, K, V1 extends V, V>(entries: Iterable<readonly [K1, V1]>): (self: TxHashMap<K, V>) => Effect.Effect<void>
|
|
1789
|
+
<K1 extends K, K, V1 extends V, V>(entries: Iterable<readonly [K1, V1]>): (self: TxHashMap<K, V>) => Effect.Effect<void, never, Effect.Transaction>
|
|
1757
1790
|
/**
|
|
1758
1791
|
* Sets multiple key-value pairs in the TxHashMap.
|
|
1759
1792
|
*
|
|
@@ -1811,13 +1844,13 @@ export const setMany: {
|
|
|
1811
1844
|
* @since 2.0.0
|
|
1812
1845
|
* @category combinators
|
|
1813
1846
|
*/
|
|
1814
|
-
<K1 extends K, K, V1 extends V, V>(self: TxHashMap<K, V>, entries: Iterable<readonly [K1, V1]>): Effect.Effect<void>
|
|
1847
|
+
<K1 extends K, K, V1 extends V, V>(self: TxHashMap<K, V>, entries: Iterable<readonly [K1, V1]>): Effect.Effect<void, never, Effect.Transaction>
|
|
1815
1848
|
} = dual(
|
|
1816
1849
|
2,
|
|
1817
1850
|
<K1 extends K, K, V1 extends V, V>(
|
|
1818
1851
|
self: TxHashMap<K, V>,
|
|
1819
1852
|
entries: Iterable<readonly [K1, V1]>
|
|
1820
|
-
): Effect.Effect<void> => TxRef.update(self.ref, (map) => HashMap.setMany(map, entries))
|
|
1853
|
+
): Effect.Effect<void, never, Effect.Transaction> => TxRef.update(self.ref, (map) => HashMap.setMany(map, entries))
|
|
1821
1854
|
)
|
|
1822
1855
|
|
|
1823
1856
|
/**
|
|
@@ -1850,7 +1883,7 @@ export const setMany: {
|
|
|
1850
1883
|
* @category guards
|
|
1851
1884
|
*/
|
|
1852
1885
|
export const isTxHashMap = <K, V>(value: unknown): value is TxHashMap<K, V> => {
|
|
1853
|
-
return
|
|
1886
|
+
return hasProperty(value, TypeId)
|
|
1854
1887
|
}
|
|
1855
1888
|
|
|
1856
1889
|
/**
|
|
@@ -1926,7 +1959,7 @@ export const getHash: {
|
|
|
1926
1959
|
* @since 2.0.0
|
|
1927
1960
|
* @category combinators
|
|
1928
1961
|
*/
|
|
1929
|
-
<K1 extends K, K>(key: K1, hash: number): <V>(self: TxHashMap<K, V>) => Effect.Effect<Option.Option<V
|
|
1962
|
+
<K1 extends K, K>(key: K1, hash: number): <V>(self: TxHashMap<K, V>) => Effect.Effect<Option.Option<V>, never, Effect.Transaction>
|
|
1930
1963
|
/**
|
|
1931
1964
|
* Lookup the value for the specified key in the TxHashMap using a custom hash.
|
|
1932
1965
|
* This can provide performance benefits when the hash is precomputed.
|
|
@@ -1963,10 +1996,14 @@ export const getHash: {
|
|
|
1963
1996
|
* @since 2.0.0
|
|
1964
1997
|
* @category combinators
|
|
1965
1998
|
*/
|
|
1966
|
-
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1, hash: number): Effect.Effect<Option.Option<V
|
|
1999
|
+
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1, hash: number): Effect.Effect<Option.Option<V>, never, Effect.Transaction>
|
|
1967
2000
|
} = dual(
|
|
1968
2001
|
3,
|
|
1969
|
-
<K1 extends K, K, V>(
|
|
2002
|
+
<K1 extends K, K, V>(
|
|
2003
|
+
self: TxHashMap<K, V>,
|
|
2004
|
+
key: K1,
|
|
2005
|
+
hash: number
|
|
2006
|
+
): Effect.Effect<Option.Option<V>, never, Effect.Transaction> =>
|
|
1970
2007
|
TxRef.get(self.ref).pipe(Effect.map((map) => HashMap.getHash(map, key, hash)))
|
|
1971
2008
|
)
|
|
1972
2009
|
|
|
@@ -2061,7 +2098,7 @@ export const hasHash: {
|
|
|
2061
2098
|
* @since 2.0.0
|
|
2062
2099
|
* @category combinators
|
|
2063
2100
|
*/
|
|
2064
|
-
<K1 extends K, K>(key: K1, hash: number): <V>(self: TxHashMap<K, V>) => Effect.Effect<boolean>
|
|
2101
|
+
<K1 extends K, K>(key: K1, hash: number): <V>(self: TxHashMap<K, V>) => Effect.Effect<boolean, never, Effect.Transaction>
|
|
2065
2102
|
/**
|
|
2066
2103
|
* Checks if the specified key has an entry in the TxHashMap using a custom hash.
|
|
2067
2104
|
* This can provide performance benefits when the hash is precomputed.
|
|
@@ -2107,10 +2144,14 @@ export const hasHash: {
|
|
|
2107
2144
|
* @since 2.0.0
|
|
2108
2145
|
* @category combinators
|
|
2109
2146
|
*/
|
|
2110
|
-
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1, hash: number): Effect.Effect<boolean>
|
|
2147
|
+
<K1 extends K, K, V>(self: TxHashMap<K, V>, key: K1, hash: number): Effect.Effect<boolean, never, Effect.Transaction>
|
|
2111
2148
|
} = dual(
|
|
2112
2149
|
3,
|
|
2113
|
-
<K1 extends K, K, V>(
|
|
2150
|
+
<K1 extends K, K, V>(
|
|
2151
|
+
self: TxHashMap<K, V>,
|
|
2152
|
+
key: K1,
|
|
2153
|
+
hash: number
|
|
2154
|
+
): Effect.Effect<boolean, never, Effect.Transaction> =>
|
|
2114
2155
|
TxRef.get(self.ref).pipe(Effect.map((map) => HashMap.hasHash(map, key, hash)))
|
|
2115
2156
|
)
|
|
2116
2157
|
|
|
@@ -2205,7 +2246,7 @@ export const map: {
|
|
|
2205
2246
|
* @since 2.0.0
|
|
2206
2247
|
* @category combinators
|
|
2207
2248
|
*/
|
|
2208
|
-
<A, V, K>(f: (value: V, key: K) => A): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, A
|
|
2249
|
+
<A, V, K>(f: (value: V, key: K) => A): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
|
|
2209
2250
|
/**
|
|
2210
2251
|
* Transforms all values in the TxHashMap using the provided function, preserving keys.
|
|
2211
2252
|
*
|
|
@@ -2251,17 +2292,18 @@ export const map: {
|
|
|
2251
2292
|
* @since 2.0.0
|
|
2252
2293
|
* @category combinators
|
|
2253
2294
|
*/
|
|
2254
|
-
<K, V, A>(self: TxHashMap<K, V>, f: (value: V, key: K) => A): Effect.Effect<TxHashMap<K, A
|
|
2295
|
+
<K, V, A>(self: TxHashMap<K, V>, f: (value: V, key: K) => A): Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
|
|
2255
2296
|
} = dual(
|
|
2256
2297
|
2,
|
|
2257
|
-
<K, V, A>(
|
|
2258
|
-
|
|
2259
|
-
|
|
2260
|
-
|
|
2261
|
-
|
|
2262
|
-
|
|
2263
|
-
|
|
2264
|
-
|
|
2298
|
+
<K, V, A>(
|
|
2299
|
+
self: TxHashMap<K, V>,
|
|
2300
|
+
f: (value: V, key: K) => A
|
|
2301
|
+
): Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction> =>
|
|
2302
|
+
Effect.gen(function*() {
|
|
2303
|
+
const currentMap = yield* TxRef.get(self.ref)
|
|
2304
|
+
const mappedMap = HashMap.map(currentMap, f)
|
|
2305
|
+
return yield* fromHashMap(mappedMap)
|
|
2306
|
+
})
|
|
2265
2307
|
)
|
|
2266
2308
|
|
|
2267
2309
|
/**
|
|
@@ -2361,7 +2403,7 @@ export const filter: {
|
|
|
2361
2403
|
* @since 2.0.0
|
|
2362
2404
|
* @category combinators
|
|
2363
2405
|
*/
|
|
2364
|
-
<K, V, B extends V>(predicate: (value: V, key: K) => value is B): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, B
|
|
2406
|
+
<K, V, B extends V>(predicate: (value: V, key: K) => value is B): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, B>, never, Effect.Transaction>
|
|
2365
2407
|
/**
|
|
2366
2408
|
* Filters the TxHashMap to keep only entries that satisfy the provided predicate.
|
|
2367
2409
|
*
|
|
@@ -2410,7 +2452,7 @@ export const filter: {
|
|
|
2410
2452
|
* @since 2.0.0
|
|
2411
2453
|
* @category combinators
|
|
2412
2454
|
*/
|
|
2413
|
-
<K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, V
|
|
2455
|
+
<K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, V>, never, Effect.Transaction>
|
|
2414
2456
|
/**
|
|
2415
2457
|
* Filters the TxHashMap to keep only entries that satisfy the provided predicate.
|
|
2416
2458
|
*
|
|
@@ -2459,7 +2501,7 @@ export const filter: {
|
|
|
2459
2501
|
* @since 2.0.0
|
|
2460
2502
|
* @category combinators
|
|
2461
2503
|
*/
|
|
2462
|
-
<K, V, B extends V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => value is B): Effect.Effect<TxHashMap<K, B
|
|
2504
|
+
<K, V, B extends V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => value is B): Effect.Effect<TxHashMap<K, B>, never, Effect.Transaction>
|
|
2463
2505
|
/**
|
|
2464
2506
|
* Filters the TxHashMap to keep only entries that satisfy the provided predicate.
|
|
2465
2507
|
*
|
|
@@ -2508,17 +2550,18 @@ export const filter: {
|
|
|
2508
2550
|
* @since 2.0.0
|
|
2509
2551
|
* @category combinators
|
|
2510
2552
|
*/
|
|
2511
|
-
<K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<TxHashMap<K, V
|
|
2553
|
+
<K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<TxHashMap<K, V>, never, Effect.Transaction>
|
|
2512
2554
|
} = dual(
|
|
2513
2555
|
2,
|
|
2514
|
-
<K, V>(
|
|
2515
|
-
|
|
2516
|
-
|
|
2517
|
-
|
|
2518
|
-
|
|
2519
|
-
|
|
2520
|
-
|
|
2521
|
-
|
|
2556
|
+
<K, V>(
|
|
2557
|
+
self: TxHashMap<K, V>,
|
|
2558
|
+
predicate: (value: V, key: K) => boolean
|
|
2559
|
+
): Effect.Effect<TxHashMap<K, V>, never, Effect.Transaction> =>
|
|
2560
|
+
Effect.gen(function*() {
|
|
2561
|
+
const currentMap = yield* TxRef.get(self.ref)
|
|
2562
|
+
const filteredMap = HashMap.filter(currentMap, predicate)
|
|
2563
|
+
return yield* fromHashMap(filteredMap)
|
|
2564
|
+
})
|
|
2522
2565
|
)
|
|
2523
2566
|
|
|
2524
2567
|
/**
|
|
@@ -2630,7 +2673,7 @@ export const reduce: {
|
|
|
2630
2673
|
* @since 2.0.0
|
|
2631
2674
|
* @category combinators
|
|
2632
2675
|
*/
|
|
2633
|
-
<A, V, K>(zero: A, f: (accumulator: A, value: V, key: K) => A): (self: TxHashMap<K, V>) => Effect.Effect<A>
|
|
2676
|
+
<A, V, K>(zero: A, f: (accumulator: A, value: V, key: K) => A): (self: TxHashMap<K, V>) => Effect.Effect<A, never, Effect.Transaction>
|
|
2634
2677
|
/**
|
|
2635
2678
|
* Reduces the TxHashMap entries to a single value by applying a reducer function.
|
|
2636
2679
|
* Iterates over all key-value pairs and accumulates them into a final result.
|
|
@@ -2685,23 +2728,27 @@ export const reduce: {
|
|
|
2685
2728
|
* @since 2.0.0
|
|
2686
2729
|
* @category combinators
|
|
2687
2730
|
*/
|
|
2688
|
-
<K, V, A>(self: TxHashMap<K, V>, zero: A, f: (accumulator: A, value: V, key: K) => A): Effect.Effect<A>
|
|
2731
|
+
<K, V, A>(self: TxHashMap<K, V>, zero: A, f: (accumulator: A, value: V, key: K) => A): Effect.Effect<A, never, Effect.Transaction>
|
|
2689
2732
|
} = dual(
|
|
2690
2733
|
3,
|
|
2691
|
-
<K, V, A>(
|
|
2734
|
+
<K, V, A>(
|
|
2735
|
+
self: TxHashMap<K, V>,
|
|
2736
|
+
zero: A,
|
|
2737
|
+
f: (accumulator: A, value: V, key: K) => A
|
|
2738
|
+
): Effect.Effect<A, never, Effect.Transaction> =>
|
|
2692
2739
|
TxRef.get(self.ref).pipe(Effect.map((map) => HashMap.reduce(map, zero, f)))
|
|
2693
2740
|
)
|
|
2694
2741
|
|
|
2695
2742
|
/**
|
|
2696
|
-
* Combines filtering and mapping in a single operation. Applies a
|
|
2697
|
-
*
|
|
2743
|
+
* Combines filtering and mapping in a single operation. Applies a filter to each
|
|
2744
|
+
* entry, keeping only successful results and transforming them.
|
|
2698
2745
|
*
|
|
2699
2746
|
* **Return behavior**: This function returns a new TxHashMap reference containing
|
|
2700
|
-
* only the transformed entries that
|
|
2747
|
+
* only the transformed entries that succeeded. The original TxHashMap is not modified.
|
|
2701
2748
|
*
|
|
2702
2749
|
* @example
|
|
2703
2750
|
* ```ts
|
|
2704
|
-
* import { Effect, Option, TxHashMap } from "effect"
|
|
2751
|
+
* import { Effect, Option, Result, TxHashMap } from "effect"
|
|
2705
2752
|
*
|
|
2706
2753
|
* const program = Effect.gen(function*() {
|
|
2707
2754
|
* // Create a mixed data map
|
|
@@ -2716,10 +2763,10 @@ export const reduce: {
|
|
|
2716
2763
|
* const activeAdminAges = yield* TxHashMap.filterMap(
|
|
2717
2764
|
* userData,
|
|
2718
2765
|
* (user, username) => {
|
|
2719
|
-
* if (!user.active || user.role !== "admin") return
|
|
2766
|
+
* if (!user.active || user.role !== "admin") return Result.failVoid
|
|
2720
2767
|
* const age = parseInt(user.age)
|
|
2721
|
-
* if (isNaN(age)) return
|
|
2722
|
-
* return
|
|
2768
|
+
* if (isNaN(age)) return Result.failVoid
|
|
2769
|
+
* return Result.succeed({
|
|
2723
2770
|
* username,
|
|
2724
2771
|
* age,
|
|
2725
2772
|
* seniority: age > 27 ? "senior" : "junior"
|
|
@@ -2737,7 +2784,7 @@ export const reduce: {
|
|
|
2737
2784
|
* const validAges = yield* userData.pipe(
|
|
2738
2785
|
* TxHashMap.filterMap((user) => {
|
|
2739
2786
|
* const age = parseInt(user.age)
|
|
2740
|
-
* return isNaN(age) ?
|
|
2787
|
+
* return isNaN(age) ? Result.failVoid : Result.succeed(age)
|
|
2741
2788
|
* })
|
|
2742
2789
|
* )
|
|
2743
2790
|
*
|
|
@@ -2751,15 +2798,15 @@ export const reduce: {
|
|
|
2751
2798
|
*/
|
|
2752
2799
|
export const filterMap: {
|
|
2753
2800
|
/**
|
|
2754
|
-
* Combines filtering and mapping in a single operation. Applies a
|
|
2755
|
-
*
|
|
2801
|
+
* Combines filtering and mapping in a single operation. Applies a filter to each
|
|
2802
|
+
* entry, keeping only successful results and transforming them.
|
|
2756
2803
|
*
|
|
2757
2804
|
* **Return behavior**: This function returns a new TxHashMap reference containing
|
|
2758
|
-
* only the transformed entries that
|
|
2805
|
+
* only the transformed entries that succeeded. The original TxHashMap is not modified.
|
|
2759
2806
|
*
|
|
2760
2807
|
* @example
|
|
2761
2808
|
* ```ts
|
|
2762
|
-
* import { Effect, Option, TxHashMap } from "effect"
|
|
2809
|
+
* import { Effect, Option, Result, TxHashMap } from "effect"
|
|
2763
2810
|
*
|
|
2764
2811
|
* const program = Effect.gen(function*() {
|
|
2765
2812
|
* // Create a mixed data map
|
|
@@ -2774,10 +2821,10 @@ export const filterMap: {
|
|
|
2774
2821
|
* const activeAdminAges = yield* TxHashMap.filterMap(
|
|
2775
2822
|
* userData,
|
|
2776
2823
|
* (user, username) => {
|
|
2777
|
-
* if (!user.active || user.role !== "admin") return
|
|
2824
|
+
* if (!user.active || user.role !== "admin") return Result.failVoid
|
|
2778
2825
|
* const age = parseInt(user.age)
|
|
2779
|
-
* if (isNaN(age)) return
|
|
2780
|
-
* return
|
|
2826
|
+
* if (isNaN(age)) return Result.failVoid
|
|
2827
|
+
* return Result.succeed({
|
|
2781
2828
|
* username,
|
|
2782
2829
|
* age,
|
|
2783
2830
|
* seniority: age > 27 ? "senior" : "junior"
|
|
@@ -2795,7 +2842,7 @@ export const filterMap: {
|
|
|
2795
2842
|
* const validAges = yield* userData.pipe(
|
|
2796
2843
|
* TxHashMap.filterMap((user) => {
|
|
2797
2844
|
* const age = parseInt(user.age)
|
|
2798
|
-
* return isNaN(age) ?
|
|
2845
|
+
* return isNaN(age) ? Result.failVoid : Result.succeed(age)
|
|
2799
2846
|
* })
|
|
2800
2847
|
* )
|
|
2801
2848
|
*
|
|
@@ -2807,17 +2854,17 @@ export const filterMap: {
|
|
|
2807
2854
|
* @since 2.0.0
|
|
2808
2855
|
* @category combinators
|
|
2809
2856
|
*/
|
|
2810
|
-
<
|
|
2857
|
+
<V, K, A, X>(f: (input: V, key: K) => Result<A, X>): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
|
|
2811
2858
|
/**
|
|
2812
|
-
* Combines filtering and mapping in a single operation. Applies a
|
|
2813
|
-
*
|
|
2859
|
+
* Combines filtering and mapping in a single operation. Applies a filter to each
|
|
2860
|
+
* entry, keeping only successful results and transforming them.
|
|
2814
2861
|
*
|
|
2815
2862
|
* **Return behavior**: This function returns a new TxHashMap reference containing
|
|
2816
|
-
* only the transformed entries that
|
|
2863
|
+
* only the transformed entries that succeeded. The original TxHashMap is not modified.
|
|
2817
2864
|
*
|
|
2818
2865
|
* @example
|
|
2819
2866
|
* ```ts
|
|
2820
|
-
* import { Effect, Option, TxHashMap } from "effect"
|
|
2867
|
+
* import { Effect, Option, Result, TxHashMap } from "effect"
|
|
2821
2868
|
*
|
|
2822
2869
|
* const program = Effect.gen(function*() {
|
|
2823
2870
|
* // Create a mixed data map
|
|
@@ -2832,10 +2879,10 @@ export const filterMap: {
|
|
|
2832
2879
|
* const activeAdminAges = yield* TxHashMap.filterMap(
|
|
2833
2880
|
* userData,
|
|
2834
2881
|
* (user, username) => {
|
|
2835
|
-
* if (!user.active || user.role !== "admin") return
|
|
2882
|
+
* if (!user.active || user.role !== "admin") return Result.failVoid
|
|
2836
2883
|
* const age = parseInt(user.age)
|
|
2837
|
-
* if (isNaN(age)) return
|
|
2838
|
-
* return
|
|
2884
|
+
* if (isNaN(age)) return Result.failVoid
|
|
2885
|
+
* return Result.succeed({
|
|
2839
2886
|
* username,
|
|
2840
2887
|
* age,
|
|
2841
2888
|
* seniority: age > 27 ? "senior" : "junior"
|
|
@@ -2853,7 +2900,7 @@ export const filterMap: {
|
|
|
2853
2900
|
* const validAges = yield* userData.pipe(
|
|
2854
2901
|
* TxHashMap.filterMap((user) => {
|
|
2855
2902
|
* const age = parseInt(user.age)
|
|
2856
|
-
* return isNaN(age) ?
|
|
2903
|
+
* return isNaN(age) ? Result.failVoid : Result.succeed(age)
|
|
2857
2904
|
* })
|
|
2858
2905
|
* )
|
|
2859
2906
|
*
|
|
@@ -2865,17 +2912,18 @@ export const filterMap: {
|
|
|
2865
2912
|
* @since 2.0.0
|
|
2866
2913
|
* @category combinators
|
|
2867
2914
|
*/
|
|
2868
|
-
<K, V, A>(self: TxHashMap<K, V>, f: (
|
|
2915
|
+
<K, V, A, X>(self: TxHashMap<K, V>, f: (input: V, key: K) => Result<A, X>): Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
|
|
2869
2916
|
} = dual(
|
|
2870
2917
|
2,
|
|
2871
|
-
<K, V, A
|
|
2872
|
-
|
|
2873
|
-
|
|
2874
|
-
|
|
2875
|
-
|
|
2876
|
-
|
|
2877
|
-
|
|
2878
|
-
|
|
2918
|
+
<K, V, A, X>(
|
|
2919
|
+
self: TxHashMap<K, V>,
|
|
2920
|
+
f: (input: V, key: K) => Result<A, X>
|
|
2921
|
+
): Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction> =>
|
|
2922
|
+
Effect.gen(function*() {
|
|
2923
|
+
const currentMap = yield* TxRef.get(self.ref)
|
|
2924
|
+
const filteredMap = HashMap.filterMap(currentMap, f)
|
|
2925
|
+
return yield* fromHashMap(filteredMap)
|
|
2926
|
+
})
|
|
2879
2927
|
)
|
|
2880
2928
|
|
|
2881
2929
|
/**
|
|
@@ -2959,7 +3007,7 @@ export const hasBy: {
|
|
|
2959
3007
|
* @since 2.0.0
|
|
2960
3008
|
* @category combinators
|
|
2961
3009
|
*/
|
|
2962
|
-
<K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<boolean>
|
|
3010
|
+
<K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<boolean, never, Effect.Transaction>
|
|
2963
3011
|
/**
|
|
2964
3012
|
* Checks if any entry in the TxHashMap matches the given predicate.
|
|
2965
3013
|
*
|
|
@@ -3000,10 +3048,13 @@ export const hasBy: {
|
|
|
3000
3048
|
* @since 2.0.0
|
|
3001
3049
|
* @category combinators
|
|
3002
3050
|
*/
|
|
3003
|
-
<K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean>
|
|
3051
|
+
<K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean, never, Effect.Transaction>
|
|
3004
3052
|
} = dual(
|
|
3005
3053
|
2,
|
|
3006
|
-
<K, V>(
|
|
3054
|
+
<K, V>(
|
|
3055
|
+
self: TxHashMap<K, V>,
|
|
3056
|
+
predicate: (value: V, key: K) => boolean
|
|
3057
|
+
): Effect.Effect<boolean, never, Effect.Transaction> =>
|
|
3007
3058
|
TxRef.get(self.ref).pipe(Effect.map((map) => HashMap.hasBy(map, predicate)))
|
|
3008
3059
|
)
|
|
3009
3060
|
|
|
@@ -3029,8 +3080,8 @@ export const hasBy: {
|
|
|
3029
3080
|
* (task) => task.priority >= 2 && !task.completed
|
|
3030
3081
|
* )
|
|
3031
3082
|
*
|
|
3032
|
-
* if (highPriorityTask) {
|
|
3033
|
-
* const [taskId, task] = highPriorityTask
|
|
3083
|
+
* if (highPriorityTask._tag === "Some") {
|
|
3084
|
+
* const [taskId, task] = highPriorityTask.value
|
|
3034
3085
|
* console.log(`Found task: ${taskId}, priority: ${task.priority}`)
|
|
3035
3086
|
* // "Found task: task3, priority: 2"
|
|
3036
3087
|
* }
|
|
@@ -3040,8 +3091,8 @@ export const hasBy: {
|
|
|
3040
3091
|
* TxHashMap.findFirst((task) => task.assignee === "alice")
|
|
3041
3092
|
* )
|
|
3042
3093
|
*
|
|
3043
|
-
* if (aliceTask) {
|
|
3044
|
-
* console.log(`Alice's task: ${aliceTask[0]}`)
|
|
3094
|
+
* if (aliceTask._tag === "Some") {
|
|
3095
|
+
* console.log(`Alice's task: ${aliceTask.value[0]}`)
|
|
3045
3096
|
* }
|
|
3046
3097
|
* })
|
|
3047
3098
|
* ```
|
|
@@ -3072,8 +3123,8 @@ export const findFirst: {
|
|
|
3072
3123
|
* (task) => task.priority >= 2 && !task.completed
|
|
3073
3124
|
* )
|
|
3074
3125
|
*
|
|
3075
|
-
* if (highPriorityTask) {
|
|
3076
|
-
* const [taskId, task] = highPriorityTask
|
|
3126
|
+
* if (highPriorityTask._tag === "Some") {
|
|
3127
|
+
* const [taskId, task] = highPriorityTask.value
|
|
3077
3128
|
* console.log(`Found task: ${taskId}, priority: ${task.priority}`)
|
|
3078
3129
|
* // "Found task: task3, priority: 2"
|
|
3079
3130
|
* }
|
|
@@ -3083,8 +3134,8 @@ export const findFirst: {
|
|
|
3083
3134
|
* TxHashMap.findFirst((task) => task.assignee === "alice")
|
|
3084
3135
|
* )
|
|
3085
3136
|
*
|
|
3086
|
-
* if (aliceTask) {
|
|
3087
|
-
* console.log(`Alice's task: ${aliceTask[0]}`)
|
|
3137
|
+
* if (aliceTask._tag === "Some") {
|
|
3138
|
+
* console.log(`Alice's task: ${aliceTask.value[0]}`)
|
|
3088
3139
|
* }
|
|
3089
3140
|
* })
|
|
3090
3141
|
* ```
|
|
@@ -3092,7 +3143,7 @@ export const findFirst: {
|
|
|
3092
3143
|
* @since 2.0.0
|
|
3093
3144
|
* @category combinators
|
|
3094
3145
|
*/
|
|
3095
|
-
<K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<[K, V]
|
|
3146
|
+
<K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<Option.Option<[K, V]>, never, Effect.Transaction>
|
|
3096
3147
|
/**
|
|
3097
3148
|
* Finds the first entry in the TxHashMap that matches the given predicate.
|
|
3098
3149
|
* Returns the key-value pair as a tuple wrapped in an Option.
|
|
@@ -3115,8 +3166,8 @@ export const findFirst: {
|
|
|
3115
3166
|
* (task) => task.priority >= 2 && !task.completed
|
|
3116
3167
|
* )
|
|
3117
3168
|
*
|
|
3118
|
-
* if (highPriorityTask) {
|
|
3119
|
-
* const [taskId, task] = highPriorityTask
|
|
3169
|
+
* if (highPriorityTask._tag === "Some") {
|
|
3170
|
+
* const [taskId, task] = highPriorityTask.value
|
|
3120
3171
|
* console.log(`Found task: ${taskId}, priority: ${task.priority}`)
|
|
3121
3172
|
* // "Found task: task3, priority: 2"
|
|
3122
3173
|
* }
|
|
@@ -3126,8 +3177,8 @@ export const findFirst: {
|
|
|
3126
3177
|
* TxHashMap.findFirst((task) => task.assignee === "alice")
|
|
3127
3178
|
* )
|
|
3128
3179
|
*
|
|
3129
|
-
* if (aliceTask) {
|
|
3130
|
-
* console.log(`Alice's task: ${aliceTask[0]}`)
|
|
3180
|
+
* if (aliceTask._tag === "Some") {
|
|
3181
|
+
* console.log(`Alice's task: ${aliceTask.value[0]}`)
|
|
3131
3182
|
* }
|
|
3132
3183
|
* })
|
|
3133
3184
|
* ```
|
|
@@ -3135,10 +3186,13 @@ export const findFirst: {
|
|
|
3135
3186
|
* @since 2.0.0
|
|
3136
3187
|
* @category combinators
|
|
3137
3188
|
*/
|
|
3138
|
-
<K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<[K, V]
|
|
3189
|
+
<K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<Option.Option<[K, V]>, never, Effect.Transaction>
|
|
3139
3190
|
} = dual(
|
|
3140
3191
|
2,
|
|
3141
|
-
<K, V>(
|
|
3192
|
+
<K, V>(
|
|
3193
|
+
self: TxHashMap<K, V>,
|
|
3194
|
+
predicate: (value: V, key: K) => boolean
|
|
3195
|
+
): Effect.Effect<Option.Option<[K, V]>, never, Effect.Transaction> =>
|
|
3142
3196
|
TxRef.get(self.ref).pipe(Effect.map((map) => HashMap.findFirst(map, predicate)))
|
|
3143
3197
|
)
|
|
3144
3198
|
|
|
@@ -3223,7 +3277,7 @@ export const some: {
|
|
|
3223
3277
|
* @since 2.0.0
|
|
3224
3278
|
* @category combinators
|
|
3225
3279
|
*/
|
|
3226
|
-
<K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<boolean>
|
|
3280
|
+
<K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<boolean, never, Effect.Transaction>
|
|
3227
3281
|
/**
|
|
3228
3282
|
* Checks if at least one entry in the TxHashMap satisfies the given predicate.
|
|
3229
3283
|
*
|
|
@@ -3264,10 +3318,13 @@ export const some: {
|
|
|
3264
3318
|
* @since 2.0.0
|
|
3265
3319
|
* @category combinators
|
|
3266
3320
|
*/
|
|
3267
|
-
<K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean>
|
|
3321
|
+
<K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean, never, Effect.Transaction>
|
|
3268
3322
|
} = dual(
|
|
3269
3323
|
2,
|
|
3270
|
-
<K, V>(
|
|
3324
|
+
<K, V>(
|
|
3325
|
+
self: TxHashMap<K, V>,
|
|
3326
|
+
predicate: (value: V, key: K) => boolean
|
|
3327
|
+
): Effect.Effect<boolean, never, Effect.Transaction> =>
|
|
3271
3328
|
TxRef.get(self.ref).pipe(Effect.map((map) => HashMap.some(map, predicate)))
|
|
3272
3329
|
)
|
|
3273
3330
|
|
|
@@ -3352,7 +3409,7 @@ export const every: {
|
|
|
3352
3409
|
* @since 2.0.0
|
|
3353
3410
|
* @category combinators
|
|
3354
3411
|
*/
|
|
3355
|
-
<K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<boolean>
|
|
3412
|
+
<K, V>(predicate: (value: V, key: K) => boolean): (self: TxHashMap<K, V>) => Effect.Effect<boolean, never, Effect.Transaction>
|
|
3356
3413
|
/**
|
|
3357
3414
|
* Checks if all entries in the TxHashMap satisfy the given predicate.
|
|
3358
3415
|
*
|
|
@@ -3393,10 +3450,13 @@ export const every: {
|
|
|
3393
3450
|
* @since 2.0.0
|
|
3394
3451
|
* @category combinators
|
|
3395
3452
|
*/
|
|
3396
|
-
<K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean>
|
|
3453
|
+
<K, V>(self: TxHashMap<K, V>, predicate: (value: V, key: K) => boolean): Effect.Effect<boolean, never, Effect.Transaction>
|
|
3397
3454
|
} = dual(
|
|
3398
3455
|
2,
|
|
3399
|
-
<K, V>(
|
|
3456
|
+
<K, V>(
|
|
3457
|
+
self: TxHashMap<K, V>,
|
|
3458
|
+
predicate: (value: V, key: K) => boolean
|
|
3459
|
+
): Effect.Effect<boolean, never, Effect.Transaction> =>
|
|
3400
3460
|
TxRef.get(self.ref).pipe(Effect.map((map) => HashMap.every(map, predicate)))
|
|
3401
3461
|
)
|
|
3402
3462
|
|
|
@@ -3483,7 +3543,7 @@ export const forEach: {
|
|
|
3483
3543
|
* @since 2.0.0
|
|
3484
3544
|
* @category combinators
|
|
3485
3545
|
*/
|
|
3486
|
-
<V, K, R, E>(f: (value: V, key: K) => Effect.Effect<void, E, R>): (self: TxHashMap<K, V>) => Effect.Effect<void, E, R>
|
|
3546
|
+
<V, K, R, E>(f: (value: V, key: K) => Effect.Effect<void, E, R>): (self: TxHashMap<K, V>) => Effect.Effect<void, E, R | Effect.Transaction>
|
|
3487
3547
|
/**
|
|
3488
3548
|
* Executes a side-effect function for each entry in the TxHashMap.
|
|
3489
3549
|
* The function receives the value and key as parameters and can perform effects.
|
|
@@ -3525,10 +3585,13 @@ export const forEach: {
|
|
|
3525
3585
|
* @since 2.0.0
|
|
3526
3586
|
* @category combinators
|
|
3527
3587
|
*/
|
|
3528
|
-
<K, V, R, E>(self: TxHashMap<K, V>, f: (value: V, key: K) => Effect.Effect<void, E, R>): Effect.Effect<void, E, R>
|
|
3588
|
+
<K, V, R, E>(self: TxHashMap<K, V>, f: (value: V, key: K) => Effect.Effect<void, E, R>): Effect.Effect<void, E, R | Effect.Transaction>
|
|
3529
3589
|
} = dual(
|
|
3530
3590
|
2,
|
|
3531
|
-
<K, V, R, E>(
|
|
3591
|
+
<K, V, R, E>(
|
|
3592
|
+
self: TxHashMap<K, V>,
|
|
3593
|
+
f: (value: V, key: K) => Effect.Effect<void, E, R>
|
|
3594
|
+
): Effect.Effect<void, E, R | Effect.Transaction> =>
|
|
3532
3595
|
Effect.gen(function*() {
|
|
3533
3596
|
const currentMap = yield* TxRef.get(self.ref)
|
|
3534
3597
|
const entries = HashMap.toEntries(currentMap)
|
|
@@ -3639,7 +3702,9 @@ export const flatMap: {
|
|
|
3639
3702
|
* @since 2.0.0
|
|
3640
3703
|
* @category combinators
|
|
3641
3704
|
*/
|
|
3642
|
-
<A, V, K>(
|
|
3705
|
+
<A, V, K>(
|
|
3706
|
+
f: (value: V, key: K) => Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
|
|
3707
|
+
): (self: TxHashMap<K, V>) => Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
|
|
3643
3708
|
/**
|
|
3644
3709
|
* Transforms the TxHashMap by applying a function that returns a TxHashMap to each entry,
|
|
3645
3710
|
* then flattening the results. Useful for complex transformations that require creating new maps.
|
|
@@ -3693,131 +3758,129 @@ export const flatMap: {
|
|
|
3693
3758
|
*/
|
|
3694
3759
|
<K, V, A>(
|
|
3695
3760
|
self: TxHashMap<K, V>,
|
|
3696
|
-
f: (value: V, key: K) => Effect.Effect<TxHashMap<K, A
|
|
3697
|
-
): Effect.Effect<TxHashMap<K, A
|
|
3761
|
+
f: (value: V, key: K) => Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
|
|
3762
|
+
): Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
|
|
3698
3763
|
} = dual(
|
|
3699
3764
|
2,
|
|
3700
3765
|
<K, V, A>(
|
|
3701
3766
|
self: TxHashMap<K, V>,
|
|
3702
|
-
f: (value: V, key: K) => Effect.Effect<TxHashMap<K, A
|
|
3703
|
-
): Effect.Effect<TxHashMap<K, A
|
|
3704
|
-
Effect.
|
|
3705
|
-
|
|
3706
|
-
|
|
3707
|
-
|
|
3708
|
-
|
|
3709
|
-
|
|
3710
|
-
|
|
3711
|
-
|
|
3712
|
-
|
|
3713
|
-
|
|
3714
|
-
|
|
3715
|
-
|
|
3716
|
-
|
|
3717
|
-
|
|
3718
|
-
|
|
3719
|
-
|
|
3720
|
-
|
|
3721
|
-
|
|
3722
|
-
|
|
3723
|
-
|
|
3724
|
-
|
|
3725
|
-
|
|
3726
|
-
|
|
3727
|
-
|
|
3728
|
-
|
|
3729
|
-
*
|
|
3730
|
-
|
|
3731
|
-
|
|
3732
|
-
|
|
3733
|
-
|
|
3734
|
-
|
|
3735
|
-
|
|
3736
|
-
|
|
3737
|
-
|
|
3738
|
-
|
|
3739
|
-
|
|
3740
|
-
|
|
3741
|
-
|
|
3742
|
-
|
|
3743
|
-
|
|
3744
|
-
|
|
3745
|
-
|
|
3746
|
-
|
|
3747
|
-
|
|
3748
|
-
|
|
3749
|
-
|
|
3750
|
-
|
|
3751
|
-
|
|
3752
|
-
|
|
3753
|
-
|
|
3754
|
-
|
|
3755
|
-
|
|
3756
|
-
|
|
3757
|
-
|
|
3758
|
-
|
|
3759
|
-
|
|
3760
|
-
|
|
3761
|
-
|
|
3762
|
-
|
|
3763
|
-
|
|
3764
|
-
|
|
3765
|
-
|
|
3766
|
-
|
|
3767
|
-
|
|
3768
|
-
|
|
3769
|
-
|
|
3770
|
-
|
|
3771
|
-
|
|
3772
|
-
|
|
3773
|
-
|
|
3774
|
-
|
|
3775
|
-
|
|
3776
|
-
|
|
3777
|
-
|
|
3778
|
-
|
|
3779
|
-
|
|
3780
|
-
*
|
|
3781
|
-
|
|
3782
|
-
|
|
3783
|
-
|
|
3784
|
-
|
|
3785
|
-
|
|
3786
|
-
|
|
3787
|
-
|
|
3788
|
-
|
|
3789
|
-
|
|
3790
|
-
|
|
3791
|
-
|
|
3792
|
-
|
|
3793
|
-
|
|
3794
|
-
|
|
3795
|
-
|
|
3796
|
-
|
|
3797
|
-
|
|
3798
|
-
|
|
3799
|
-
|
|
3800
|
-
|
|
3801
|
-
|
|
3802
|
-
|
|
3803
|
-
|
|
3804
|
-
|
|
3805
|
-
|
|
3806
|
-
|
|
3807
|
-
|
|
3808
|
-
|
|
3809
|
-
A>()
|
|
3767
|
+
f: (value: V, key: K) => Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction>
|
|
3768
|
+
): Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction> =>
|
|
3769
|
+
Effect.gen(function*() {
|
|
3770
|
+
const currentMap = yield* TxRef.get(self.ref)
|
|
3771
|
+
const result = yield* empty</**
|
|
3772
|
+
* Transforms the TxHashMap by applying a function that returns a TxHashMap to each entry,
|
|
3773
|
+
* then flattening the results. Useful for complex transformations that require creating new maps.
|
|
3774
|
+
*
|
|
3775
|
+
* **Return behavior**: This function returns a new TxHashMap reference with the
|
|
3776
|
+
* flattened results. The original TxHashMap is not modified.
|
|
3777
|
+
*
|
|
3778
|
+
* @example
|
|
3779
|
+
* ```ts
|
|
3780
|
+
* import { Effect, TxHashMap } from "effect"
|
|
3781
|
+
*
|
|
3782
|
+
* const program = Effect.gen(function*() {
|
|
3783
|
+
* // Create a department-employee map
|
|
3784
|
+
* const departments = yield* TxHashMap.make(
|
|
3785
|
+
* ["engineering", ["alice", "bob"]],
|
|
3786
|
+
* ["marketing", ["charlie", "diana"]]
|
|
3787
|
+
* )
|
|
3788
|
+
*
|
|
3789
|
+
* // Expand each department into individual employee entries with metadata
|
|
3790
|
+
* const employeeDetails = yield* TxHashMap.flatMap(
|
|
3791
|
+
* departments,
|
|
3792
|
+
* (employees, department) =>
|
|
3793
|
+
* Effect.gen(function*() {
|
|
3794
|
+
* const employeeMap = yield* TxHashMap.empty<
|
|
3795
|
+
* string,
|
|
3796
|
+
* { department: string; role: string }
|
|
3797
|
+
* >()
|
|
3798
|
+
* for (let i = 0; i < employees.length; i++) {
|
|
3799
|
+
* const employee = employees[i]
|
|
3800
|
+
* const role = i === 0 ? "lead" : "member"
|
|
3801
|
+
* yield* TxHashMap.set(employeeMap, employee, { department, role })
|
|
3802
|
+
* }
|
|
3803
|
+
* return employeeMap
|
|
3804
|
+
* })
|
|
3805
|
+
* )
|
|
3806
|
+
*
|
|
3807
|
+
* // Check the flattened result
|
|
3808
|
+
* const alice = yield* TxHashMap.get(employeeDetails, "alice")
|
|
3809
|
+
* console.log(alice) // Option.some({ department: "engineering", role: "lead" })
|
|
3810
|
+
*
|
|
3811
|
+
* const charlie = yield* TxHashMap.get(employeeDetails, "charlie")
|
|
3812
|
+
* console.log(charlie) // Option.some({ department: "marketing", role: "lead" })
|
|
3813
|
+
*
|
|
3814
|
+
* const size = yield* TxHashMap.size(employeeDetails)
|
|
3815
|
+
* console.log(size) // 4 (all employees)
|
|
3816
|
+
* })
|
|
3817
|
+
* ```
|
|
3818
|
+
*
|
|
3819
|
+
* @since 2.0.0
|
|
3820
|
+
* @category combinators
|
|
3821
|
+
*/
|
|
3822
|
+
K, /**
|
|
3823
|
+
* Transforms the TxHashMap by applying a function that returns a TxHashMap to each entry,
|
|
3824
|
+
* then flattening the results. Useful for complex transformations that require creating new maps.
|
|
3825
|
+
*
|
|
3826
|
+
* **Return behavior**: This function returns a new TxHashMap reference with the
|
|
3827
|
+
* flattened results. The original TxHashMap is not modified.
|
|
3828
|
+
*
|
|
3829
|
+
* @example
|
|
3830
|
+
* ```ts
|
|
3831
|
+
* import { Effect, TxHashMap } from "effect"
|
|
3832
|
+
*
|
|
3833
|
+
* const program = Effect.gen(function*() {
|
|
3834
|
+
* // Create a department-employee map
|
|
3835
|
+
* const departments = yield* TxHashMap.make(
|
|
3836
|
+
* ["engineering", ["alice", "bob"]],
|
|
3837
|
+
* ["marketing", ["charlie", "diana"]]
|
|
3838
|
+
* )
|
|
3839
|
+
*
|
|
3840
|
+
* // Expand each department into individual employee entries with metadata
|
|
3841
|
+
* const employeeDetails = yield* TxHashMap.flatMap(
|
|
3842
|
+
* departments,
|
|
3843
|
+
* (employees, department) =>
|
|
3844
|
+
* Effect.gen(function*() {
|
|
3845
|
+
* const employeeMap = yield* TxHashMap.empty<
|
|
3846
|
+
* string,
|
|
3847
|
+
* { department: string; role: string }
|
|
3848
|
+
* >()
|
|
3849
|
+
* for (let i = 0; i < employees.length; i++) {
|
|
3850
|
+
* const employee = employees[i]
|
|
3851
|
+
* const role = i === 0 ? "lead" : "member"
|
|
3852
|
+
* yield* TxHashMap.set(employeeMap, employee, { department, role })
|
|
3853
|
+
* }
|
|
3854
|
+
* return employeeMap
|
|
3855
|
+
* })
|
|
3856
|
+
* )
|
|
3857
|
+
*
|
|
3858
|
+
* // Check the flattened result
|
|
3859
|
+
* const alice = yield* TxHashMap.get(employeeDetails, "alice")
|
|
3860
|
+
* console.log(alice) // Option.some({ department: "engineering", role: "lead" })
|
|
3861
|
+
*
|
|
3862
|
+
* const charlie = yield* TxHashMap.get(employeeDetails, "charlie")
|
|
3863
|
+
* console.log(charlie) // Option.some({ department: "marketing", role: "lead" })
|
|
3864
|
+
*
|
|
3865
|
+
* const size = yield* TxHashMap.size(employeeDetails)
|
|
3866
|
+
* console.log(size) // 4 (all employees)
|
|
3867
|
+
* })
|
|
3868
|
+
* ```
|
|
3869
|
+
*
|
|
3870
|
+
* @since 2.0.0
|
|
3871
|
+
* @category combinators
|
|
3872
|
+
*/
|
|
3873
|
+
A>()
|
|
3810
3874
|
|
|
3811
|
-
|
|
3812
|
-
|
|
3813
|
-
|
|
3814
|
-
|
|
3815
|
-
|
|
3816
|
-
|
|
3875
|
+
const mapEntries = HashMap.toEntries(currentMap)
|
|
3876
|
+
for (const [key, value] of mapEntries) {
|
|
3877
|
+
const newMap = yield* f(value, key)
|
|
3878
|
+
const newEntries = yield* entries(newMap)
|
|
3879
|
+
yield* setMany(result, newEntries)
|
|
3880
|
+
}
|
|
3817
3881
|
|
|
3818
|
-
|
|
3819
|
-
|
|
3820
|
-
)
|
|
3882
|
+
return result
|
|
3883
|
+
})
|
|
3821
3884
|
)
|
|
3822
3885
|
|
|
3823
3886
|
/**
|
|
@@ -3865,14 +3928,14 @@ export const flatMap: {
|
|
|
3865
3928
|
* @since 2.0.0
|
|
3866
3929
|
* @category combinators
|
|
3867
3930
|
*/
|
|
3868
|
-
export const compact = <K, A>(
|
|
3869
|
-
|
|
3870
|
-
|
|
3871
|
-
|
|
3872
|
-
|
|
3873
|
-
|
|
3874
|
-
|
|
3875
|
-
)
|
|
3931
|
+
export const compact = <K, A>(
|
|
3932
|
+
self: TxHashMap<K, Option.Option<A>>
|
|
3933
|
+
): Effect.Effect<TxHashMap<K, A>, never, Effect.Transaction> =>
|
|
3934
|
+
Effect.gen(function*() {
|
|
3935
|
+
const currentMap = yield* TxRef.get(self.ref)
|
|
3936
|
+
const compactedMap = HashMap.compact(currentMap)
|
|
3937
|
+
return yield* fromHashMap(compactedMap)
|
|
3938
|
+
})
|
|
3876
3939
|
|
|
3877
3940
|
/**
|
|
3878
3941
|
* Returns an array of all key-value pairs in the TxHashMap.
|
|
@@ -3908,7 +3971,9 @@ export const compact = <K, A>(self: TxHashMap<K, Option.Option<A>>): Effect.Effe
|
|
|
3908
3971
|
* @since 2.0.0
|
|
3909
3972
|
* @category combinators
|
|
3910
3973
|
*/
|
|
3911
|
-
export const toEntries = <K, V>(
|
|
3974
|
+
export const toEntries = <K, V>(
|
|
3975
|
+
self: TxHashMap<K, V>
|
|
3976
|
+
): Effect.Effect<Array<readonly [K, V]>, never, Effect.Transaction> => entries(self)
|
|
3912
3977
|
|
|
3913
3978
|
/**
|
|
3914
3979
|
* Returns an array of all values in the TxHashMap.
|
|
@@ -3946,12 +4011,13 @@ export const toEntries = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<read
|
|
|
3946
4011
|
* @since 2.0.0
|
|
3947
4012
|
* @category combinators
|
|
3948
4013
|
*/
|
|
3949
|
-
export const toValues = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<V
|
|
4014
|
+
export const toValues = <K, V>(self: TxHashMap<K, V>): Effect.Effect<Array<V>, never, Effect.Transaction> =>
|
|
4015
|
+
values(self)
|
|
3950
4016
|
|
|
3951
4017
|
/**
|
|
3952
4018
|
* Helper function to create a TxHashMap from an existing HashMap
|
|
3953
4019
|
*/
|
|
3954
|
-
const fromHashMap = <K, V>(hashMap: HashMap.HashMap<K, V>): Effect.Effect<TxHashMap<K, V
|
|
4020
|
+
const fromHashMap = <K, V>(hashMap: HashMap.HashMap<K, V>): Effect.Effect<TxHashMap<K, V>, never, Effect.Transaction> =>
|
|
3955
4021
|
Effect.gen(function*() {
|
|
3956
4022
|
const ref = yield* TxRef.make(hashMap)
|
|
3957
4023
|
return Object.assign(Object.create(TxHashMapProto), { ref })
|