effect 4.0.0-beta.6 → 4.0.0-beta.60
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 +82 -45
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +105 -52
- 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 +36 -33
- package/dist/BigInt.js.map +1 -1
- package/dist/Brand.d.ts +3 -5
- 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 +14 -45
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +21 -47
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +53 -22
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Cause.js +108 -10
- package/dist/Cause.js.map +1 -1
- package/dist/Channel.d.ts +166 -48
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +176 -87
- 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/Clock.d.ts +2 -2
- package/dist/Clock.d.ts.map +1 -1
- package/dist/Clock.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 +189 -29
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +85 -35
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +6 -6
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +5 -5
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Console.d.ts +2 -2
- package/dist/Console.d.ts.map +1 -1
- package/dist/Console.js.map +1 -1
- package/dist/Context.d.ts +1150 -0
- package/dist/Context.d.ts.map +1 -0
- package/dist/{ServiceMap.js → Context.js} +181 -165
- package/dist/Context.js.map +1 -0
- 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 +533 -365
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +125 -73
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +74 -255
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +17 -62
- package/dist/DateTime.js.map +1 -1
- package/dist/Deferred.d.ts +12 -5
- package/dist/Deferred.d.ts.map +1 -1
- package/dist/Deferred.js +13 -5
- package/dist/Deferred.js.map +1 -1
- package/dist/Duration.d.ts +74 -40
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +126 -87
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +1391 -927
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +472 -328
- package/dist/Effect.js.map +1 -1
- package/dist/Effectable.d.ts +29 -0
- package/dist/Effectable.d.ts.map +1 -0
- package/dist/Effectable.js +31 -0
- package/dist/Effectable.js.map +1 -0
- package/dist/Encoding.d.ts +1 -1
- package/dist/Equal.d.ts +276 -109
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +140 -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/ExecutionPlan.d.ts +6 -6
- package/dist/ExecutionPlan.d.ts.map +1 -1
- package/dist/ExecutionPlan.js +4 -4
- package/dist/ExecutionPlan.js.map +1 -1
- 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 +10 -8
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js.map +1 -1
- package/dist/FiberHandle.d.ts +11 -10
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +12 -11
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +22 -21
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +10 -10
- package/dist/FiberMap.js.map +1 -1
- package/dist/FiberSet.d.ts +2 -2
- package/dist/FiberSet.d.ts.map +1 -1
- package/dist/FiberSet.js +4 -4
- package/dist/FiberSet.js.map +1 -1
- package/dist/FileSystem.d.ts +20 -19
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +15 -11
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts +4 -37
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +0 -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 +243 -55
- 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 +58 -60
- package/dist/Graph.js.map +1 -1
- package/dist/Hash.js +1 -1
- package/dist/Hash.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/Inspectable.d.ts +0 -4
- package/dist/Inspectable.d.ts.map +1 -1
- package/dist/Inspectable.js +4 -13
- package/dist/Inspectable.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 +69 -3
- package/dist/Latch.d.ts.map +1 -1
- package/dist/Latch.js +58 -0
- package/dist/Latch.js.map +1 -1
- package/dist/Layer.d.ts +599 -379
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +249 -180
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts +27 -26
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LayerMap.js +21 -18
- 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 +31 -97
- 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 +8 -8
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +34 -25
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Metric.d.ts +23 -25
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +24 -26
- 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/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +3 -0
- package/dist/MutableList.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 +46 -18
- 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 +183 -0
- package/dist/PartitionedSemaphore.d.ts.map +1 -0
- package/dist/PartitionedSemaphore.js +231 -0
- package/dist/PartitionedSemaphore.js.map +1 -0
- package/dist/Path.d.ts +2 -2
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +2 -2
- package/dist/Path.js.map +1 -1
- package/dist/PlatformError.d.ts +2 -2
- package/dist/Pool.d.ts +1 -1
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +5 -5
- package/dist/Pool.js.map +1 -1
- package/dist/Predicate.d.ts +1 -1
- package/dist/Predicate.d.ts.map +1 -1
- package/dist/PubSub.d.ts +5 -4
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +15 -8
- 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 +36 -2
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +46 -35
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +4 -4
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +13 -13
- 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/Redactable.d.ts +139 -62
- package/dist/Redactable.d.ts.map +1 -1
- package/dist/Redactable.js +59 -55
- package/dist/Redactable.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 +257 -229
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +240 -259
- package/dist/References.js.map +1 -1
- package/dist/Request.d.ts +5 -5
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +25 -25
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +15 -16
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Resource.d.ts +0 -3
- package/dist/Resource.d.ts.map +1 -1
- package/dist/Resource.js +5 -4
- 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 +132 -120
- package/dist/Schedule.js.map +1 -1
- package/dist/Scheduler.d.ts +36 -125
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +37 -126
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +3213 -392
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +2058 -252
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +13 -2
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +340 -257
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +55 -13
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +73 -11
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +29 -11
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts +44 -54
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +69 -4
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +2 -2
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +63 -39
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +245 -3
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +297 -33
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/Scope.d.ts +2 -2
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js.map +1 -1
- package/dist/ScopedCache.d.ts +2 -2
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +5 -5
- package/dist/ScopedCache.js.map +1 -1
- package/dist/Semaphore.d.ts +148 -52
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +135 -117
- package/dist/Semaphore.js.map +1 -1
- package/dist/Sink.d.ts +22 -19
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +54 -7
- package/dist/Sink.js.map +1 -1
- package/dist/Stdio.d.ts +18 -6
- package/dist/Stdio.d.ts.map +1 -1
- package/dist/Stdio.js +20 -2
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +465 -542
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +329 -145
- 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 +7 -7
- package/dist/Struct.d.ts.map +1 -1
- package/dist/SubscriptionRef.d.ts +1 -2
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +83 -116
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/Terminal.d.ts +5 -4
- package/dist/Terminal.d.ts.map +1 -1
- package/dist/Terminal.js +2 -2
- package/dist/Terminal.js.map +1 -1
- package/dist/Tracer.d.ts +21 -20
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +13 -9
- 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 +4 -4
- package/dist/TxChunk.d.ts.map +1 -1
- package/dist/TxChunk.js +4 -4
- 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 +105 -86
- 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 +2 -2
- 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 +1 -1
- package/dist/TxQueue.d.ts.map +1 -1
- package/dist/TxQueue.js +42 -57
- package/dist/TxQueue.js.map +1 -1
- package/dist/TxReentrantLock.d.ts +500 -0
- package/dist/TxReentrantLock.d.ts.map +1 -0
- package/dist/TxReentrantLock.js +481 -0
- package/dist/TxReentrantLock.js.map +1 -0
- package/dist/TxRef.d.ts +14 -20
- package/dist/TxRef.d.ts.map +1 -1
- package/dist/TxRef.js +8 -10
- package/dist/TxRef.js.map +1 -1
- package/dist/TxSemaphore.d.ts +162 -2
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +25 -10
- 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 -22
- package/dist/Types.d.ts.map +1 -1
- package/dist/Unify.d.ts +8 -2
- package/dist/Unify.d.ts.map +1 -1
- package/dist/Unify.js.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 +886 -71
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +886 -71
- package/dist/index.js.map +1 -1
- 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 +488 -326
- 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/layer.js +3 -3
- package/dist/internal/layer.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 +9 -9
- 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 +6 -6
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/schedule.js +1 -1
- package/dist/internal/schedule.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 +87 -109
- package/dist/internal/schema/representation.js.map +1 -1
- package/dist/internal/schema/schema.d.ts +10 -1
- package/dist/internal/schema/schema.d.ts.map +1 -1
- package/dist/internal/schema/schema.js +59 -1
- package/dist/internal/schema/schema.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 +5 -5
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +2 -2
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +267 -33
- 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 +127 -45
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +29 -23
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.js +9 -2
- package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +39 -11
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +40 -47
- 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/IdGenerator.d.ts +2 -2
- package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
- package/dist/unstable/ai/IdGenerator.js +2 -2
- package/dist/unstable/ai/IdGenerator.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +119 -49
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +260 -61
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +207 -112
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +71 -19
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +68 -15
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +225 -73
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Model.d.ts +27 -9
- package/dist/unstable/ai/Model.d.ts.map +1 -1
- package/dist/unstable/ai/Model.js +25 -9
- package/dist/unstable/ai/Model.js.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js +9 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +17 -17
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Prompt.js +6 -9
- package/dist/unstable/ai/Prompt.js.map +1 -1
- package/dist/unstable/ai/Response.d.ts +24 -24
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +7 -8
- 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/Telemetry.d.ts +35 -2
- package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
- package/dist/unstable/ai/Telemetry.js +2 -2
- package/dist/unstable/ai/Telemetry.js.map +1 -1
- package/dist/unstable/ai/Tokenizer.d.ts +2 -2
- package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
- package/dist/unstable/ai/Tokenizer.js +2 -2
- package/dist/unstable/ai/Tokenizer.js.map +1 -1
- package/dist/unstable/ai/Tool.d.ts +46 -16
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +68 -22
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/ai/Toolkit.d.ts +4 -4
- package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
- package/dist/unstable/ai/Toolkit.js +14 -21
- 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 +5 -7
- package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
- package/dist/unstable/cli/Argument.d.ts +4 -7
- 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 +51 -63
- package/dist/unstable/cli/CliError.d.ts.map +1 -1
- package/dist/unstable/cli/CliError.js +32 -57
- package/dist/unstable/cli/CliError.js.map +1 -1
- package/dist/unstable/cli/CliOutput.d.ts +5 -4
- package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
- package/dist/unstable/cli/CliOutput.js +67 -12
- package/dist/unstable/cli/CliOutput.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +372 -59
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +328 -66
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/Completions.d.ts +97 -0
- package/dist/unstable/cli/Completions.d.ts.map +1 -0
- package/dist/unstable/cli/Completions.js +25 -0
- package/dist/unstable/cli/Completions.js.map +1 -0
- package/dist/unstable/cli/Flag.d.ts +4 -5
- 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 +34 -6
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- package/dist/unstable/cli/Param.js +24 -14
- 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 +266 -86
- package/dist/unstable/cli/Prompt.js.map +1 -1
- package/dist/unstable/cli/index.d.ts +10 -0
- package/dist/unstable/cli/index.d.ts.map +1 -1
- package/dist/unstable/cli/index.js +10 -0
- package/dist/unstable/cli/index.js.map +1 -1
- package/dist/unstable/cli/internal/command.d.ts +41 -15
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.js +84 -47
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/completions/bash.js.map +1 -1
- package/dist/unstable/cli/internal/completions/descriptor.d.ts +2 -0
- package/dist/unstable/cli/internal/completions/descriptor.d.ts.map +1 -0
- package/dist/unstable/cli/internal/completions/{CommandDescriptor.js → descriptor.js} +17 -5
- package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -0
- package/dist/unstable/cli/internal/completions/fish.js.map +1 -1
- package/dist/unstable/cli/internal/completions/zsh.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 +155 -58
- 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/ClusterError.d.ts +7 -7
- package/dist/unstable/cluster/ClusterSchema.d.ts +28 -7
- package/dist/unstable/cluster/ClusterSchema.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterSchema.js +28 -8
- package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts +4 -2
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +96 -63
- 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 +17 -16
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js +31 -25
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/EntityAddress.d.ts +2 -2
- 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/EntityProxy.js +3 -3
- package/dist/unstable/cluster/EntityProxy.js.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.js +6 -6
- package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
- package/dist/unstable/cluster/EntityResource.d.ts +4 -4
- package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityResource.js +2 -2
- package/dist/unstable/cluster/EntityResource.js.map +1 -1
- package/dist/unstable/cluster/Envelope.d.ts +3 -3
- package/dist/unstable/cluster/HttpRunner.js +2 -2
- package/dist/unstable/cluster/HttpRunner.js.map +1 -1
- package/dist/unstable/cluster/K8sHttpClient.d.ts +4 -4
- package/dist/unstable/cluster/K8sHttpClient.d.ts.map +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js +6 -6
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/Message.d.ts +16 -10
- package/dist/unstable/cluster/Message.d.ts.map +1 -1
- package/dist/unstable/cluster/Message.js +16 -8
- package/dist/unstable/cluster/Message.js.map +1 -1
- package/dist/unstable/cluster/MessageStorage.d.ts +46 -23
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +40 -25
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +7 -6
- package/dist/unstable/cluster/Reply.d.ts.map +1 -1
- package/dist/unstable/cluster/Reply.js +8 -7
- 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 +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/RunnerHealth.d.ts +2 -2
- package/dist/unstable/cluster/RunnerHealth.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerHealth.js +2 -2
- package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
- package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerServer.js +10 -9
- package/dist/unstable/cluster/RunnerServer.js.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.d.ts +12 -12
- package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.js +3 -3
- package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/Runners.d.ts +5 -4
- package/dist/unstable/cluster/Runners.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.js +16 -14
- package/dist/unstable/cluster/Runners.js.map +1 -1
- package/dist/unstable/cluster/ShardId.d.ts +35 -49
- package/dist/unstable/cluster/ShardId.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardId.js +65 -67
- package/dist/unstable/cluster/ShardId.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts +4 -4
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +59 -49
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +28 -27
- package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.js +27 -27
- package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
- package/dist/unstable/cluster/SingletonAddress.d.ts +2 -2
- package/dist/unstable/cluster/Snowflake.d.ts +2 -2
- package/dist/unstable/cluster/Snowflake.d.ts.map +1 -1
- package/dist/unstable/cluster/Snowflake.js +2 -2
- package/dist/unstable/cluster/Snowflake.js.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.js +24 -20
- package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js +7 -7
- package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +30 -24
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/cluster/internal/entityReaper.js +2 -2
- package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceMap.js +3 -3
- package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.d.ts +2 -2
- package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.js +9 -8
- package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.d.ts +4 -4
- 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 +3 -3
- 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/Event.d.ts +0 -6
- package/dist/unstable/eventlog/Event.d.ts.map +1 -1
- package/dist/unstable/eventlog/Event.js +0 -5
- package/dist/unstable/eventlog/Event.js.map +1 -1
- package/dist/unstable/eventlog/EventGroup.d.ts +0 -2
- package/dist/unstable/eventlog/EventGroup.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventGroup.js +0 -2
- package/dist/unstable/eventlog/EventGroup.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +27 -10
- package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventJournal.js +130 -71
- package/dist/unstable/eventlog/EventJournal.js.map +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts +94 -37
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +225 -151
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.d.ts +11 -9
- package/dist/unstable/eventlog/EventLogEncryption.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.js +15 -17
- package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.d.ts +228 -0
- package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -0
- package/dist/unstable/eventlog/EventLogMessage.js +214 -0
- package/dist/unstable/eventlog/EventLogMessage.js.map +1 -0
- package/dist/unstable/eventlog/EventLogRemote.d.ts +112 -194
- package/dist/unstable/eventlog/EventLogRemote.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.js +168 -322
- package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.d.ts +26 -48
- package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.js +128 -199
- package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +60 -0
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -0
- package/dist/unstable/eventlog/EventLogServerEncrypted.js +166 -0
- package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -0
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +183 -0
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -0
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js +461 -0
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -0
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +117 -0
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts.map +1 -0
- package/dist/unstable/eventlog/EventLogSessionAuth.js +284 -0
- package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -0
- package/dist/unstable/eventlog/{SqlEventLogJournal.d.ts → SqlEventJournal.d.ts} +2 -2
- package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -0
- package/dist/unstable/eventlog/{SqlEventLogJournal.js → SqlEventJournal.js} +28 -21
- package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -0
- package/dist/unstable/eventlog/{SqlEventLogServer.d.ts → SqlEventLogServerEncrypted.d.ts} +5 -5
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -0
- package/dist/unstable/eventlog/{SqlEventLogServer.js → SqlEventLogServerEncrypted.js} +69 -27
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -0
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts +25 -0
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -0
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +355 -0
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -0
- package/dist/unstable/eventlog/index.d.ts +22 -2
- package/dist/unstable/eventlog/index.d.ts.map +1 -1
- package/dist/unstable/eventlog/index.js +22 -2
- package/dist/unstable/eventlog/index.js.map +1 -1
- package/dist/unstable/eventlog/internal/identityRootSecretDerivation.d.ts +2 -0
- package/dist/unstable/eventlog/internal/identityRootSecretDerivation.d.ts.map +1 -0
- package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js +89 -0
- package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js.map +1 -0
- package/dist/unstable/http/Cookies.d.ts +51 -6
- 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 +2 -2
- package/dist/unstable/http/Etag.d.ts.map +1 -1
- package/dist/unstable/http/Etag.js +7 -3
- package/dist/unstable/http/Etag.js.map +1 -1
- package/dist/unstable/http/FetchHttpClient.d.ts +6 -3
- package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/unstable/http/FetchHttpClient.js +5 -5
- package/dist/unstable/http/FetchHttpClient.js.map +1 -1
- package/dist/unstable/http/Headers.d.ts +24 -4
- package/dist/unstable/http/Headers.d.ts.map +1 -1
- package/dist/unstable/http/Headers.js +42 -13
- 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 +125 -21
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +197 -19
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientError.d.ts +8 -8
- 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 +18 -3
- package/dist/unstable/http/HttpClientResponse.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts +13 -11
- package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
- package/dist/unstable/http/HttpEffect.js +51 -51
- package/dist/unstable/http/HttpEffect.js.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.d.ts +5 -4
- package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.js +6 -10
- 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 +4 -9
- package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/unstable/http/HttpMiddleware.js +47 -43
- package/dist/unstable/http/HttpMiddleware.js.map +1 -1
- package/dist/unstable/http/HttpPlatform.d.ts +2 -2
- package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
- package/dist/unstable/http/HttpPlatform.js +5 -4
- package/dist/unstable/http/HttpPlatform.js.map +1 -1
- package/dist/unstable/http/HttpRouter.d.ts +9 -8
- package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
- package/dist/unstable/http/HttpRouter.js +36 -36
- package/dist/unstable/http/HttpRouter.js.map +1 -1
- package/dist/unstable/http/HttpServer.d.ts +2 -2
- package/dist/unstable/http/HttpServer.d.ts.map +1 -1
- package/dist/unstable/http/HttpServer.js +4 -4
- 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 +19 -7
- package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRequest.js +307 -13
- 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 +52 -5
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +240 -5
- 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 +7 -7
- package/dist/unstable/http/Multipart.d.ts.map +1 -1
- package/dist/unstable/http/Multipart.js +7 -7
- package/dist/unstable/http/Multipart.js.map +1 -1
- 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 +18 -9
- 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 +11 -11
- package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js +8 -8
- package/dist/unstable/httpapi/HttpApi.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts +12 -9
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +59 -40
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts +82 -7
- package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +79 -11
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +210 -105
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.js +52 -47
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +66 -29
- package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.js +138 -32
- package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.d.ts +9 -8
- package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.js +4 -4
- package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +49 -17
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js +38 -8
- package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.d.ts +88 -9
- package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.js +86 -11
- package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts +9 -6
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.js +6 -6
- package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts +17 -25
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +59 -60
- 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 +8 -8
- 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/OtlpMetrics.js +2 -2
- package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
- package/dist/unstable/observability/OtlpSerialization.d.ts +2 -2
- package/dist/unstable/observability/OtlpSerialization.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpSerialization.js +2 -2
- package/dist/unstable/observability/OtlpSerialization.js.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/observability/PrometheusMetrics.d.ts +3 -3
- package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.js +4 -33
- package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
- package/dist/unstable/observability/internal/protobuf.js +4 -4
- package/dist/unstable/observability/internal/protobuf.js.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.d.ts +24 -3
- package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.js +144 -2
- 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 +1 -2
- package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedCache.js +10 -11
- package/dist/unstable/persistence/PersistedCache.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts +16 -16
- package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.js +9 -9
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/Persistence.d.ts +5 -5
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +5 -5
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +9 -9
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +4 -4
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/persistence/Redis.d.ts +3 -3
- package/dist/unstable/persistence/Redis.d.ts.map +1 -1
- package/dist/unstable/persistence/Redis.js +2 -2
- package/dist/unstable/persistence/Redis.js.map +1 -1
- package/dist/unstable/process/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 +83 -8
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js +22 -2
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.d.ts +37 -17
- package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.js +9 -0
- package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +108 -47
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +105 -25
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +25 -20
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +58 -26
- package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.d.ts +8 -2
- package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +57 -14
- package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts +12 -12
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +59 -31
- package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
- package/dist/unstable/reactivity/Reactivity.d.ts +2 -2
- package/dist/unstable/reactivity/Reactivity.d.ts.map +1 -1
- package/dist/unstable/reactivity/Reactivity.js +6 -6
- package/dist/unstable/reactivity/Reactivity.js.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts +137 -19
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/Rpc.js +99 -7
- package/dist/unstable/rpc/Rpc.js.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts +26 -47
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +117 -75
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcClientError.d.ts +2 -2
- package/dist/unstable/rpc/RpcGroup.d.ts +15 -11
- package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcGroup.js +30 -20
- package/dist/unstable/rpc/RpcGroup.js.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.d.ts +12 -12
- package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.js +5 -5
- package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
- package/dist/unstable/rpc/RpcSchema.d.ts +14 -1
- 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 +13 -2
- package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.js +60 -27
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts +8 -12
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +73 -43
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/rpc/RpcWorker.d.ts +2 -2
- package/dist/unstable/rpc/RpcWorker.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcWorker.js +4 -4
- package/dist/unstable/rpc/RpcWorker.js.map +1 -1
- package/dist/unstable/rpc/Utils.d.ts +6 -3
- package/dist/unstable/rpc/Utils.d.ts.map +1 -1
- package/dist/unstable/rpc/Utils.js +46 -5
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/schema/Model.d.ts +24 -3
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/Model.js +17 -4
- package/dist/unstable/schema/Model.js.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +7 -7
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.js +7 -18
- package/dist/unstable/schema/VariantSchema.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +35 -15
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +34 -27
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/socket/SocketServer.d.ts +8 -5
- package/dist/unstable/socket/SocketServer.d.ts.map +1 -1
- package/dist/unstable/socket/SocketServer.js +2 -2
- package/dist/unstable/socket/SocketServer.js.map +1 -1
- 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 +24 -6
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlClient.js +37 -32
- package/dist/unstable/sql/SqlClient.js.map +1 -1
- package/dist/unstable/sql/SqlConnection.d.ts +2 -2
- package/dist/unstable/sql/SqlConnection.d.ts.map +1 -1
- package/dist/unstable/sql/SqlConnection.js +5 -2
- package/dist/unstable/sql/SqlConnection.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 +8 -9
- package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
- package/dist/unstable/sql/SqlModel.js +12 -38
- package/dist/unstable/sql/SqlModel.js.map +1 -1
- package/dist/unstable/sql/SqlResolver.js +24 -17
- 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.d.ts +3 -5
- package/dist/unstable/sql/Statement.d.ts.map +1 -1
- package/dist/unstable/sql/Statement.js +14 -13
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/workers/Transferable.d.ts +4 -4
- package/dist/unstable/workers/Transferable.d.ts.map +1 -1
- package/dist/unstable/workers/Transferable.js +7 -7
- package/dist/unstable/workers/Transferable.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts +3 -3
- package/dist/unstable/workers/Worker.d.ts.map +1 -1
- package/dist/unstable/workers/Worker.js +6 -3
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workers/WorkerError.d.ts +5 -5
- package/dist/unstable/workers/WorkerRunner.d.ts +2 -2
- package/dist/unstable/workers/WorkerRunner.d.ts.map +1 -1
- package/dist/unstable/workers/WorkerRunner.js +5 -2
- package/dist/unstable/workers/WorkerRunner.js.map +1 -1
- package/dist/unstable/workflow/Activity.d.ts +8 -3
- package/dist/unstable/workflow/Activity.d.ts.map +1 -1
- package/dist/unstable/workflow/Activity.js +25 -11
- package/dist/unstable/workflow/Activity.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts +3 -6
- package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableClock.js +6 -6
- package/dist/unstable/workflow/DurableClock.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.d.ts +2 -5
- package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js +33 -15
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +12 -14
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +30 -26
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +24 -7
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +165 -16
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxyServer.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowProxyServer.js +4 -4
- package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
- package/package.json +11 -10
- package/src/Array.ts +304 -447
- package/src/BigDecimal.ts +137 -82
- package/src/BigInt.ts +53 -45
- package/src/Brand.ts +3 -5
- package/src/Cache.ts +27 -54
- package/src/Cause.ts +57 -22
- package/src/Channel.ts +687 -220
- package/src/Chunk.ts +149 -331
- package/src/Clock.ts +2 -2
- package/src/Combiner.ts +280 -13
- package/src/Config.ts +214 -52
- package/src/ConfigProvider.ts +5 -5
- package/src/Console.ts +2 -2
- package/src/Context.ts +1454 -0
- package/src/Cron.ts +155 -63
- package/src/Data.ts +530 -368
- package/src/DateTime.ts +77 -258
- package/src/Deferred.ts +15 -6
- package/src/Duration.ts +151 -81
- package/src/Effect.ts +1581 -1050
- package/src/Effectable.ts +47 -0
- package/src/Equal.ts +293 -109
- package/src/Equivalence.ts +114 -52
- package/src/ErrorReporter.ts +458 -0
- package/src/ExecutionPlan.ts +8 -9
- package/src/Exit.ts +24 -12
- package/src/Fiber.ts +17 -8
- package/src/FiberHandle.ts +15 -14
- package/src/FiberMap.ts +27 -27
- package/src/FiberSet.ts +5 -5
- package/src/FileSystem.ts +30 -26
- package/src/Filter.ts +4 -62
- package/src/Formatter.ts +268 -60
- package/src/Function.ts +2 -10
- package/src/Graph.ts +123 -112
- package/src/Hash.ts +2 -2
- package/src/HashMap.ts +26 -19
- package/src/Inspectable.ts +2 -22
- package/src/Iterable.ts +117 -63
- package/src/JsonSchema.ts +383 -10
- package/src/Latch.ts +85 -3
- package/src/Layer.ts +728 -441
- package/src/LayerMap.ts +38 -35
- package/src/LogLevel.ts +37 -0
- package/src/Logger.ts +35 -102
- package/src/ManagedRuntime.ts +61 -48
- package/src/Metric.ts +64 -66
- package/src/MutableHashMap.ts +9 -0
- package/src/MutableHashSet.ts +9 -0
- package/src/MutableList.ts +3 -0
- package/src/Newtype.ts +308 -0
- package/src/Number.ts +98 -29
- package/src/Optic.ts +948 -19
- package/src/Option.ts +34 -24
- package/src/Order.ts +39 -32
- package/src/PartitionedSemaphore.ts +414 -0
- package/src/Path.ts +2 -2
- package/src/Pool.ts +9 -9
- package/src/Predicate.ts +1 -1
- package/src/PubSub.ts +20 -11
- package/src/Pull.ts +1 -1
- package/src/Queue.ts +11 -9
- package/src/Random.ts +51 -14
- package/src/RcMap.ts +19 -19
- package/src/RcRef.ts +1 -1
- package/src/Record.ts +94 -199
- package/src/Redactable.ts +146 -72
- package/src/Reducer.ts +166 -7
- package/src/References.ts +283 -287
- package/src/Request.ts +5 -5
- package/src/RequestResolver.ts +34 -35
- package/src/Resource.ts +6 -5
- package/src/Result.ts +2 -4
- package/src/Runtime.ts +102 -6
- package/src/Schedule.ts +243 -336
- package/src/Scheduler.ts +52 -129
- package/src/Schema.ts +3769 -597
- package/src/SchemaAST.ts +480 -302
- package/src/SchemaGetter.ts +80 -24
- package/src/SchemaIssue.ts +28 -15
- package/src/SchemaParser.ts +100 -29
- package/src/SchemaRepresentation.ts +57 -33
- package/src/SchemaTransformation.ts +321 -32
- package/src/Scope.ts +2 -2
- package/src/ScopedCache.ts +8 -8
- package/src/Semaphore.ts +268 -182
- package/src/Sink.ts +89 -34
- package/src/Stdio.ts +29 -6
- package/src/Stream.ts +908 -752
- package/src/String.ts +122 -69
- package/src/Struct.ts +7 -7
- package/src/SubscriptionRef.ts +98 -118
- package/src/Terminal.ts +5 -4
- package/src/Tracer.ts +23 -22
- package/src/Trie.ts +44 -31
- package/src/TxChunk.ts +26 -16
- package/src/TxDeferred.ts +391 -0
- package/src/TxHashMap.ts +347 -291
- package/src/TxHashSet.ts +54 -61
- package/src/TxPriorityQueue.ts +762 -0
- package/src/TxPubSub.ts +787 -0
- package/src/TxQueue.ts +221 -245
- package/src/TxReentrantLock.ts +729 -0
- package/src/TxRef.ts +31 -31
- package/src/TxSemaphore.ts +203 -31
- package/src/TxSubscriptionRef.ts +637 -0
- package/src/Types.ts +75 -23
- package/src/Unify.ts +26 -2
- package/src/Utils.ts +137 -111
- package/src/index.ts +896 -73
- package/src/internal/core.ts +9 -10
- package/src/internal/dateTime.ts +91 -96
- package/src/internal/effect.ts +1168 -621
- package/src/internal/hashMap.ts +12 -10
- package/src/internal/layer.ts +7 -7
- package/src/internal/option.ts +7 -0
- package/src/internal/random.ts +20 -0
- package/src/internal/rcRef.ts +12 -12
- package/src/internal/references.ts +72 -0
- package/src/internal/request.ts +8 -8
- package/src/internal/schedule.ts +3 -1
- package/src/internal/schema/annotations.ts +2 -0
- package/src/internal/schema/representation.ts +82 -97
- package/src/internal/schema/schema.ts +68 -1
- package/src/internal/trie.ts +21 -15
- package/src/testing/TestClock.ts +6 -6
- package/src/testing/TestSchema.ts +333 -36
- package/src/testing/index.ts +64 -1
- package/src/unstable/ai/AiError.ts +111 -53
- package/src/unstable/ai/AnthropicStructuredOutput.ts +7 -3
- package/src/unstable/ai/Chat.ts +136 -88
- package/src/unstable/ai/EmbeddingModel.ts +209 -0
- package/src/unstable/ai/IdGenerator.ts +2 -2
- package/src/unstable/ai/LanguageModel.ts +685 -255
- package/src/unstable/ai/McpSchema.ts +84 -22
- package/src/unstable/ai/McpServer.ts +307 -87
- package/src/unstable/ai/Model.ts +44 -13
- package/src/unstable/ai/OpenAiStructuredOutput.ts +9 -2
- package/src/unstable/ai/Prompt.ts +23 -29
- package/src/unstable/ai/Response.ts +29 -31
- package/src/unstable/ai/ResponseIdTracker.ts +95 -0
- package/src/unstable/ai/Telemetry.ts +2 -2
- package/src/unstable/ai/Tokenizer.ts +2 -2
- package/src/unstable/ai/Tool.ts +62 -36
- package/src/unstable/ai/Toolkit.ts +17 -26
- package/src/unstable/ai/index.ts +24 -1
- package/src/unstable/ai/internal/codec-transformer.ts +3 -9
- package/src/unstable/cli/Argument.ts +5 -8
- package/src/unstable/cli/CliError.ts +67 -66
- package/src/unstable/cli/CliOutput.ts +87 -15
- package/src/unstable/cli/Command.ts +808 -193
- package/src/unstable/cli/Completions.ts +107 -0
- package/src/unstable/cli/Flag.ts +5 -6
- package/src/unstable/cli/GlobalFlag.ts +242 -0
- package/src/unstable/cli/HelpDoc.ts +91 -11
- package/src/unstable/cli/Param.ts +54 -27
- package/src/unstable/cli/Primitive.ts +2 -2
- package/src/unstable/cli/Prompt.ts +275 -104
- package/src/unstable/cli/index.ts +12 -0
- package/src/unstable/cli/internal/command.ts +125 -64
- package/src/unstable/cli/internal/completions/bash.ts +7 -7
- package/src/unstable/cli/internal/completions/{CommandDescriptor.ts → descriptor.ts} +16 -58
- package/src/unstable/cli/internal/completions/fish.ts +7 -7
- package/src/unstable/cli/internal/completions/zsh.ts +8 -14
- 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 +201 -84
- package/src/unstable/cluster/ClusterCron.ts +2 -2
- package/src/unstable/cluster/ClusterSchema.ts +38 -10
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +142 -80
- package/src/unstable/cluster/DeliverAt.ts +1 -1
- package/src/unstable/cluster/Entity.ts +58 -45
- package/src/unstable/cluster/EntityAddress.ts +1 -1
- package/src/unstable/cluster/EntityProxy.ts +3 -3
- package/src/unstable/cluster/EntityProxyServer.ts +6 -6
- package/src/unstable/cluster/EntityResource.ts +6 -6
- package/src/unstable/cluster/HttpRunner.ts +2 -2
- package/src/unstable/cluster/K8sHttpClient.ts +7 -7
- package/src/unstable/cluster/Message.ts +30 -17
- package/src/unstable/cluster/MessageStorage.ts +74 -45
- package/src/unstable/cluster/Reply.ts +13 -10
- package/src/unstable/cluster/Runner.ts +1 -1
- package/src/unstable/cluster/RunnerAddress.ts +1 -1
- package/src/unstable/cluster/RunnerHealth.ts +2 -2
- package/src/unstable/cluster/RunnerServer.ts +11 -14
- package/src/unstable/cluster/RunnerStorage.ts +9 -9
- package/src/unstable/cluster/Runners.ts +22 -18
- package/src/unstable/cluster/ShardId.ts +84 -74
- package/src/unstable/cluster/Sharding.ts +75 -60
- package/src/unstable/cluster/ShardingConfig.ts +39 -40
- package/src/unstable/cluster/Snowflake.ts +2 -2
- package/src/unstable/cluster/SqlMessageStorage.ts +29 -20
- package/src/unstable/cluster/SqlRunnerStorage.ts +13 -7
- package/src/unstable/cluster/internal/entityManager.ts +60 -41
- package/src/unstable/cluster/internal/entityReaper.ts +2 -2
- package/src/unstable/cluster/internal/resourceMap.ts +3 -3
- package/src/unstable/devtools/DevToolsClient.ts +26 -21
- 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/Event.ts +0 -8
- package/src/unstable/eventlog/EventGroup.ts +0 -4
- package/src/unstable/eventlog/EventJournal.ts +148 -80
- package/src/unstable/eventlog/EventLog.ts +360 -234
- package/src/unstable/eventlog/EventLogEncryption.ts +18 -32
- package/src/unstable/eventlog/EventLogMessage.ts +277 -0
- package/src/unstable/eventlog/EventLogRemote.ts +264 -410
- package/src/unstable/eventlog/EventLogServer.ts +183 -275
- package/src/unstable/eventlog/EventLogServerEncrypted.ts +206 -0
- package/src/unstable/eventlog/EventLogServerUnencrypted.ts +749 -0
- package/src/unstable/eventlog/EventLogSessionAuth.ts +437 -0
- package/src/unstable/eventlog/{SqlEventLogJournal.ts → SqlEventJournal.ts} +38 -22
- package/src/unstable/eventlog/{SqlEventLogServer.ts → SqlEventLogServerEncrypted.ts} +110 -43
- package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +506 -0
- package/src/unstable/eventlog/index.ts +27 -2
- package/src/unstable/eventlog/internal/identityRootSecretDerivation.ts +153 -0
- package/src/unstable/http/Cookies.ts +94 -11
- package/src/unstable/http/Etag.ts +7 -5
- package/src/unstable/http/FetchHttpClient.ts +5 -5
- package/src/unstable/http/Headers.ts +70 -20
- package/src/unstable/http/HttpClient.ts +385 -42
- package/src/unstable/http/HttpClientRequest.ts +151 -39
- package/src/unstable/http/HttpClientResponse.ts +24 -8
- package/src/unstable/http/HttpEffect.ts +71 -77
- package/src/unstable/http/HttpIncomingMessage.ts +9 -8
- package/src/unstable/http/HttpMethod.ts +16 -4
- package/src/unstable/http/HttpMiddleware.ts +50 -50
- package/src/unstable/http/HttpPlatform.ts +5 -4
- package/src/unstable/http/HttpRouter.ts +46 -46
- package/src/unstable/http/HttpServer.ts +5 -11
- package/src/unstable/http/HttpServerError.ts +45 -47
- package/src/unstable/http/HttpServerRequest.ts +414 -23
- package/src/unstable/http/HttpServerRespondable.ts +6 -6
- package/src/unstable/http/HttpServerResponse.ts +351 -13
- package/src/unstable/http/HttpStaticServer.ts +456 -0
- package/src/unstable/http/HttpTraceContext.ts +31 -17
- package/src/unstable/http/Multipart.ts +8 -8
- package/src/unstable/http/Url.ts +650 -0
- package/src/unstable/http/UrlParams.ts +30 -18
- package/src/unstable/http/index.ts +10 -0
- package/src/unstable/http/internal/preResponseHandler.ts +15 -0
- package/src/unstable/httpapi/HttpApi.ts +22 -22
- package/src/unstable/httpapi/HttpApiBuilder.ts +134 -54
- package/src/unstable/httpapi/HttpApiClient.ts +185 -34
- package/src/unstable/httpapi/HttpApiEndpoint.ts +225 -114
- package/src/unstable/httpapi/HttpApiError.ts +129 -30
- package/src/unstable/httpapi/HttpApiGroup.ts +18 -17
- package/src/unstable/httpapi/HttpApiMiddleware.ts +95 -32
- package/src/unstable/httpapi/HttpApiSchema.ts +106 -11
- package/src/unstable/httpapi/HttpApiSecurity.ts +13 -13
- package/src/unstable/httpapi/OpenApi.ts +74 -73
- package/src/unstable/observability/Otlp.ts +12 -12
- package/src/unstable/observability/OtlpExporter.ts +14 -10
- package/src/unstable/observability/OtlpLogger.ts +13 -9
- package/src/unstable/observability/OtlpMetrics.ts +6 -6
- package/src/unstable/observability/OtlpSerialization.ts +2 -2
- package/src/unstable/observability/OtlpTracer.ts +14 -10
- package/src/unstable/observability/PrometheusMetrics.ts +5 -5
- package/src/unstable/observability/internal/protobuf.ts +4 -4
- package/src/unstable/persistence/KeyValueStore.ts +226 -3
- package/src/unstable/persistence/Persistable.ts +3 -3
- package/src/unstable/persistence/PersistedCache.ts +20 -17
- package/src/unstable/persistence/PersistedQueue.ts +21 -21
- package/src/unstable/persistence/Persistence.ts +7 -7
- package/src/unstable/persistence/RateLimiter.ts +7 -7
- package/src/unstable/persistence/Redis.ts +2 -2
- package/src/unstable/process/ChildProcess.ts +6 -208
- package/src/unstable/process/ChildProcessSpawner.ts +114 -15
- package/src/unstable/reactivity/AsyncResult.ts +59 -17
- package/src/unstable/reactivity/Atom.ts +280 -124
- package/src/unstable/reactivity/AtomHttpApi.ts +127 -61
- package/src/unstable/reactivity/AtomRegistry.ts +70 -16
- package/src/unstable/reactivity/AtomRpc.ts +82 -37
- package/src/unstable/reactivity/Reactivity.ts +6 -6
- package/src/unstable/rpc/Rpc.ts +212 -32
- package/src/unstable/rpc/RpcClient.ts +161 -142
- package/src/unstable/rpc/RpcGroup.ts +51 -34
- package/src/unstable/rpc/RpcMiddleware.ts +28 -22
- package/src/unstable/rpc/RpcSchema.ts +24 -6
- package/src/unstable/rpc/RpcSerialization.ts +97 -54
- package/src/unstable/rpc/RpcServer.ts +91 -65
- package/src/unstable/rpc/RpcWorker.ts +5 -5
- package/src/unstable/rpc/Utils.ts +63 -4
- package/src/unstable/schema/Model.ts +35 -6
- package/src/unstable/schema/VariantSchema.ts +14 -27
- package/src/unstable/socket/Socket.ts +102 -62
- package/src/unstable/socket/SocketServer.ts +2 -2
- package/src/unstable/sql/Migrator.ts +7 -5
- package/src/unstable/sql/SqlClient.ts +48 -19
- package/src/unstable/sql/SqlConnection.ts +2 -2
- package/src/unstable/sql/SqlError.ts +365 -11
- package/src/unstable/sql/SqlModel.ts +57 -85
- package/src/unstable/sql/SqlResolver.ts +28 -20
- package/src/unstable/sql/SqlSchema.ts +42 -26
- package/src/unstable/sql/Statement.ts +21 -25
- package/src/unstable/workers/Transferable.ts +17 -19
- package/src/unstable/workers/Worker.ts +4 -4
- package/src/unstable/workers/WorkerRunner.ts +2 -2
- package/src/unstable/workflow/Activity.ts +36 -13
- package/src/unstable/workflow/DurableClock.ts +11 -11
- package/src/unstable/workflow/DurableDeferred.ts +36 -18
- package/src/unstable/workflow/Workflow.ts +46 -35
- package/src/unstable/workflow/WorkflowEngine.ts +236 -23
- package/src/unstable/workflow/WorkflowProxyServer.ts +4 -4
- 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/ServiceMap.d.ts +0 -1126
- package/dist/ServiceMap.d.ts.map +0 -1
- package/dist/ServiceMap.js.map +0 -1
- package/dist/internal/schema/to-codec.d.ts +0 -2
- package/dist/internal/schema/to-codec.d.ts.map +0 -1
- package/dist/internal/schema/to-codec.js +0 -129
- package/dist/internal/schema/to-codec.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/CommandDescriptor.d.ts +0 -2
- package/dist/unstable/cli/internal/completions/CommandDescriptor.d.ts.map +0 -1
- package/dist/unstable/cli/internal/completions/CommandDescriptor.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/dist/unstable/eventlog/SqlEventLogJournal.d.ts.map +0 -1
- package/dist/unstable/eventlog/SqlEventLogJournal.js.map +0 -1
- package/dist/unstable/eventlog/SqlEventLogServer.d.ts.map +0 -1
- package/dist/unstable/eventlog/SqlEventLogServer.js.map +0 -1
- package/src/NullOr.ts +0 -204
- package/src/ServiceMap.ts +0 -1410
- package/src/internal/schema/to-codec.ts +0 -148
- package/src/unstable/cli/internal/builtInFlags.ts +0 -78
- package/src/unstable/cli/internal/completions/Completions.ts +0 -31
package/src/Optic.ts
CHANGED
|
@@ -1,9 +1,98 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* Composable, immutable accessors for reading and updating nested data
|
|
3
|
+
* structures without mutation.
|
|
4
|
+
*
|
|
5
|
+
* **Mental model**
|
|
6
|
+
*
|
|
7
|
+
* - **Optic** — a first-class reference to a piece inside a larger structure.
|
|
8
|
+
* Compose optics to reach deeply nested values.
|
|
9
|
+
* - **Iso** — lossless two-way conversion (`get`/`set`) between `S` and `A`.
|
|
10
|
+
* Extends both {@link Lens} and {@link Prism}.
|
|
11
|
+
* - **Lens** — focuses on exactly one part of `S`. `get` always succeeds;
|
|
12
|
+
* `replace` needs the original `S` to produce the updated whole.
|
|
13
|
+
* - **Prism** — focuses on a part that may not be present (e.g. a union
|
|
14
|
+
* variant). `getResult` can fail; `set` builds a new `S` from `A` alone.
|
|
15
|
+
* - **Optional** — the most general optic: both reading and writing can fail.
|
|
16
|
+
* - **Traversal** — focuses on zero or more elements of an array-like
|
|
17
|
+
* structure. Technically `Optional<S, ReadonlyArray<A>>`.
|
|
18
|
+
* - **Hierarchy** (strongest → weakest):
|
|
19
|
+
* `Iso > Lens | Prism > Optional`. Composing a weaker optic with any other
|
|
20
|
+
* produces the weaker kind.
|
|
21
|
+
*
|
|
22
|
+
* **Common tasks**
|
|
23
|
+
*
|
|
24
|
+
* - Start a chain → {@link id} (identity iso)
|
|
25
|
+
* - Drill into a struct key → `.key("name")` / `.optionalKey("name")`
|
|
26
|
+
* - Drill into a key that may not exist → `.at("name")`
|
|
27
|
+
* - Narrow a tagged union → `.tag("MyVariant")`
|
|
28
|
+
* - Narrow by type guard → `.refine(guard)`
|
|
29
|
+
* - Add validation → `.check(Schema.isGreaterThan(0))`
|
|
30
|
+
* - Filter out `undefined` → `.notUndefined()`
|
|
31
|
+
* - Pick/omit struct keys → `.pick(["a","b"])` / `.omit(["c"])`
|
|
32
|
+
* - Traverse array elements → `.forEach(el => el.key("field"))`
|
|
33
|
+
* - Build an iso → {@link makeIso}
|
|
34
|
+
* - Build a lens → {@link makeLens}
|
|
35
|
+
* - Build a prism → {@link makePrism}, {@link fromChecks}
|
|
36
|
+
* - Build an optional → {@link makeOptional}
|
|
37
|
+
* - Focus into `Option.Some` → {@link some}
|
|
38
|
+
* - Focus into `Result.Success`/`Failure` → {@link success}, {@link failure}
|
|
39
|
+
* - Convert record ↔ entries → {@link entries}
|
|
40
|
+
* - Extract all traversal elements → {@link getAll}
|
|
41
|
+
*
|
|
42
|
+
* **Gotchas**
|
|
43
|
+
*
|
|
44
|
+
* - Updates are structurally persistent: only nodes on the path are cloned.
|
|
45
|
+
* Unrelated branches keep referential identity. However, **no-op updates
|
|
46
|
+
* may still allocate** a new root — do not rely on reference identity to
|
|
47
|
+
* detect no-ops.
|
|
48
|
+
* - `replace` silently returns the original `S` when the optic cannot focus
|
|
49
|
+
* (e.g. wrong tag). Use `replaceResult` for explicit failure.
|
|
50
|
+
* - `modify` also returns the original `S` on focus failure — it never throws.
|
|
51
|
+
* - `.key()` and `.optionalKey()` do not work on union types (compile error).
|
|
52
|
+
* - Only plain objects (`Object.prototype` or `null` prototype) and arrays can
|
|
53
|
+
* be cloned. Class instances cause a runtime error on `replace`/`modify`.
|
|
54
|
+
*
|
|
55
|
+
* **Quickstart**
|
|
56
|
+
*
|
|
57
|
+
* **Example** (reading and updating nested state)
|
|
58
|
+
*
|
|
59
|
+
* ```ts
|
|
60
|
+
* import { Optic } from "effect"
|
|
61
|
+
*
|
|
62
|
+
* type State = { user: { name: string; age: number } }
|
|
63
|
+
*
|
|
64
|
+
* const _age = Optic.id<State>().key("user").key("age")
|
|
65
|
+
*
|
|
66
|
+
* const s1: State = { user: { name: "Alice", age: 30 } }
|
|
67
|
+
*
|
|
68
|
+
* // Read
|
|
69
|
+
* console.log(_age.get(s1))
|
|
70
|
+
* // Output: 30
|
|
71
|
+
*
|
|
72
|
+
* // Update immutably
|
|
73
|
+
* const s2 = _age.replace(31, s1)
|
|
74
|
+
* console.log(s2)
|
|
75
|
+
* // Output: { user: { name: "Alice", age: 31 } }
|
|
76
|
+
*
|
|
77
|
+
* // Modify with a function
|
|
78
|
+
* const s3 = _age.modify((n) => n + 1)(s1)
|
|
79
|
+
* console.log(s3)
|
|
80
|
+
* // Output: { user: { name: "Alice", age: 31 } }
|
|
81
|
+
*
|
|
82
|
+
* // Referential identity is preserved for unrelated branches
|
|
83
|
+
* console.log(s2.user !== s1.user)
|
|
84
|
+
* // Output: true (on the path)
|
|
85
|
+
* ```
|
|
86
|
+
*
|
|
87
|
+
* **See also**
|
|
88
|
+
*
|
|
89
|
+
* - {@link id} — entry point for optic chains
|
|
90
|
+
* - {@link Lens} / {@link Prism} / {@link Optional} — core optic types
|
|
91
|
+
* - {@link Traversal} / {@link getAll} — multi-focus optics
|
|
92
|
+
* - {@link some} / {@link success} / {@link failure} — built-in prisms
|
|
5
93
|
*
|
|
6
94
|
* @since 4.0.0
|
|
95
|
+
* @module
|
|
7
96
|
*/
|
|
8
97
|
|
|
9
98
|
import { format } from "./Formatter.ts"
|
|
@@ -18,12 +107,77 @@ import * as Struct from "./Struct.ts"
|
|
|
18
107
|
import type { IsUnion } from "./Types.ts"
|
|
19
108
|
|
|
20
109
|
/**
|
|
110
|
+
* A lossless, reversible conversion between types `S` and `A`.
|
|
111
|
+
*
|
|
112
|
+
* When to use:
|
|
113
|
+
* - You have a pair of functions that convert back and forth without losing
|
|
114
|
+
* information (e.g. `Record ↔ entries`, `Celsius ↔ Fahrenheit`).
|
|
115
|
+
* - You want the strongest optic that can be composed with any other.
|
|
116
|
+
*
|
|
117
|
+
* Behavior:
|
|
118
|
+
* - `get(s)` always succeeds and returns an `A`.
|
|
119
|
+
* - `set(a)` always succeeds and returns an `S`.
|
|
120
|
+
* - `get(set(a)) === a` and `set(get(s))` equals `s` (round-trip laws).
|
|
121
|
+
* - Extends both {@link Lens} and {@link Prism}.
|
|
122
|
+
*
|
|
123
|
+
* **Example** (Celsius ↔ Fahrenheit)
|
|
124
|
+
*
|
|
125
|
+
* ```ts
|
|
126
|
+
* import { Optic } from "effect"
|
|
127
|
+
*
|
|
128
|
+
* const fahrenheit = Optic.makeIso<number, number>(
|
|
129
|
+
* (c) => c * 9 / 5 + 32,
|
|
130
|
+
* (f) => (f - 32) * 5 / 9
|
|
131
|
+
* )
|
|
132
|
+
*
|
|
133
|
+
* console.log(fahrenheit.get(100))
|
|
134
|
+
* // Output: 212
|
|
135
|
+
*
|
|
136
|
+
* console.log(fahrenheit.set(32))
|
|
137
|
+
* // Output: 0
|
|
138
|
+
* ```
|
|
139
|
+
*
|
|
140
|
+
* @see {@link makeIso} — constructor
|
|
141
|
+
* @see {@link Lens} — when you only need a one-directional focus into a whole
|
|
142
|
+
* @see {@link Prism} — when the focus may not be present
|
|
143
|
+
*
|
|
21
144
|
* @category Iso
|
|
22
145
|
* @since 4.0.0
|
|
23
146
|
*/
|
|
24
147
|
export interface Iso<in out S, in out A> extends Lens<S, A>, Prism<S, A> {}
|
|
25
148
|
|
|
26
149
|
/**
|
|
150
|
+
* Creates an {@link Iso} from a pair of conversion functions.
|
|
151
|
+
*
|
|
152
|
+
* When to use:
|
|
153
|
+
* - You have two pure functions that form a lossless round-trip between `S`
|
|
154
|
+
* and `A`.
|
|
155
|
+
*
|
|
156
|
+
* Behavior:
|
|
157
|
+
* - Does not mutate inputs.
|
|
158
|
+
* - The returned optic can be composed with any other optic.
|
|
159
|
+
*
|
|
160
|
+
* **Example** (wrapping/unwrapping a branded type)
|
|
161
|
+
*
|
|
162
|
+
* ```ts
|
|
163
|
+
* import { Optic } from "effect"
|
|
164
|
+
*
|
|
165
|
+
* type Meters = { readonly value: number }
|
|
166
|
+
* const meters = Optic.makeIso<Meters, number>(
|
|
167
|
+
* (m) => m.value,
|
|
168
|
+
* (n) => ({ value: n })
|
|
169
|
+
* )
|
|
170
|
+
*
|
|
171
|
+
* console.log(meters.get({ value: 100 }))
|
|
172
|
+
* // Output: 100
|
|
173
|
+
*
|
|
174
|
+
* console.log(meters.set(42))
|
|
175
|
+
* // Output: { value: 42 }
|
|
176
|
+
* ```
|
|
177
|
+
*
|
|
178
|
+
* @see {@link Iso} — the type this function returns
|
|
179
|
+
* @see {@link id} — identity iso (no conversion)
|
|
180
|
+
*
|
|
27
181
|
* @category Constructors
|
|
28
182
|
* @since 4.0.0
|
|
29
183
|
*/
|
|
@@ -32,6 +186,37 @@ export function makeIso<S, A>(get: (s: S) => A, set: (a: A) => S): Iso<S, A> {
|
|
|
32
186
|
}
|
|
33
187
|
|
|
34
188
|
/**
|
|
189
|
+
* Focuses on exactly one part `A` inside a whole `S`.
|
|
190
|
+
*
|
|
191
|
+
* When to use:
|
|
192
|
+
* - You always have a value to read (the part exists unconditionally).
|
|
193
|
+
* - You need the original `S` to produce the updated whole (unlike
|
|
194
|
+
* {@link Iso}).
|
|
195
|
+
*
|
|
196
|
+
* Behavior:
|
|
197
|
+
* - `get(s)` always succeeds and returns `A`.
|
|
198
|
+
* - `replace(a, s)` returns a new `S` with the focused part replaced.
|
|
199
|
+
* - Extends {@link Optional}.
|
|
200
|
+
* - Composing a Lens with a {@link Prism} or {@link Optional} produces an
|
|
201
|
+
* {@link Optional}.
|
|
202
|
+
*
|
|
203
|
+
* **Example** (focusing on a struct field)
|
|
204
|
+
*
|
|
205
|
+
* ```ts
|
|
206
|
+
* import { Optic } from "effect"
|
|
207
|
+
*
|
|
208
|
+
* type Person = { readonly name: string; readonly age: number }
|
|
209
|
+
*
|
|
210
|
+
* const _name = Optic.id<Person>().key("name")
|
|
211
|
+
*
|
|
212
|
+
* console.log(_name.get({ name: "Alice", age: 30 }))
|
|
213
|
+
* // Output: "Alice"
|
|
214
|
+
* ```
|
|
215
|
+
*
|
|
216
|
+
* @see {@link makeLens} — constructor
|
|
217
|
+
* @see {@link Iso} — when conversion is lossless in both directions
|
|
218
|
+
* @see {@link Optional} — when reading can also fail
|
|
219
|
+
*
|
|
35
220
|
* @category Lens
|
|
36
221
|
* @since 4.0.0
|
|
37
222
|
*/
|
|
@@ -40,6 +225,37 @@ export interface Lens<in out S, in out A> extends Optional<S, A> {
|
|
|
40
225
|
}
|
|
41
226
|
|
|
42
227
|
/**
|
|
228
|
+
* Creates a {@link Lens} from a getter and a replacer.
|
|
229
|
+
*
|
|
230
|
+
* When to use:
|
|
231
|
+
* - You can always extract `A` from `S` and produce a new `S` by
|
|
232
|
+
* substituting a new `A`.
|
|
233
|
+
*
|
|
234
|
+
* Behavior:
|
|
235
|
+
* - Does not mutate inputs.
|
|
236
|
+
* - `replace(a, s)` should return a structurally new `S` with `a` in place
|
|
237
|
+
* of the old focus.
|
|
238
|
+
*
|
|
239
|
+
* **Example** (lens into the first element of a pair)
|
|
240
|
+
*
|
|
241
|
+
* ```ts
|
|
242
|
+
* import { Optic } from "effect"
|
|
243
|
+
*
|
|
244
|
+
* const _first = Optic.makeLens<readonly [string, number], string>(
|
|
245
|
+
* (pair) => pair[0],
|
|
246
|
+
* (s, pair) => [s, pair[1]]
|
|
247
|
+
* )
|
|
248
|
+
*
|
|
249
|
+
* console.log(_first.get(["hello", 42]))
|
|
250
|
+
* // Output: "hello"
|
|
251
|
+
*
|
|
252
|
+
* console.log(_first.replace("world", ["hello", 42]))
|
|
253
|
+
* // Output: ["world", 42]
|
|
254
|
+
* ```
|
|
255
|
+
*
|
|
256
|
+
* @see {@link Lens} — the type this function returns
|
|
257
|
+
* @see {@link makeIso} — when no original `S` is needed for `set`
|
|
258
|
+
*
|
|
43
259
|
* @category Constructors
|
|
44
260
|
* @since 4.0.0
|
|
45
261
|
*/
|
|
@@ -48,6 +264,44 @@ export function makeLens<S, A>(get: (s: S) => A, replace: (a: A, s: S) => S): Le
|
|
|
48
264
|
}
|
|
49
265
|
|
|
50
266
|
/**
|
|
267
|
+
* Focuses on a part `A` of `S` that may not be present (e.g. a union
|
|
268
|
+
* variant or a validated subset).
|
|
269
|
+
*
|
|
270
|
+
* When to use:
|
|
271
|
+
* - The focus is conditional — reading can fail (wrong variant, failed
|
|
272
|
+
* validation).
|
|
273
|
+
* - Building a new `S` from `A` does **not** require the original `S`.
|
|
274
|
+
*
|
|
275
|
+
* Behavior:
|
|
276
|
+
* - `getResult(s)` returns `Result.Success<A>` when the focus matches, or
|
|
277
|
+
* `Result.Failure<string>` with an error message.
|
|
278
|
+
* - `set(a)` always succeeds and returns a new `S`.
|
|
279
|
+
* - Extends {@link Optional}.
|
|
280
|
+
* - Composing two Prisms produces a Prism; composing a Prism with a
|
|
281
|
+
* {@link Lens} produces an {@link Optional}.
|
|
282
|
+
*
|
|
283
|
+
* **Example** (narrowing a tagged union)
|
|
284
|
+
*
|
|
285
|
+
* ```ts
|
|
286
|
+
* import { Optic, Result } from "effect"
|
|
287
|
+
*
|
|
288
|
+
* type Shape =
|
|
289
|
+
* | { readonly _tag: "Circle"; readonly radius: number }
|
|
290
|
+
* | { readonly _tag: "Rect"; readonly width: number }
|
|
291
|
+
*
|
|
292
|
+
* const _circle = Optic.id<Shape>().tag("Circle")
|
|
293
|
+
*
|
|
294
|
+
* console.log(Result.isSuccess(_circle.getResult({ _tag: "Circle", radius: 5 })))
|
|
295
|
+
* // Output: true
|
|
296
|
+
*
|
|
297
|
+
* console.log(Result.isFailure(_circle.getResult({ _tag: "Rect", width: 10 })))
|
|
298
|
+
* // Output: true
|
|
299
|
+
* ```
|
|
300
|
+
*
|
|
301
|
+
* @see {@link makePrism} — constructor
|
|
302
|
+
* @see {@link fromChecks} — build a Prism from schema checks
|
|
303
|
+
* @see {@link Lens} — when reading always succeeds
|
|
304
|
+
*
|
|
51
305
|
* @category Prism
|
|
52
306
|
* @since 4.0.0
|
|
53
307
|
*/
|
|
@@ -56,6 +310,39 @@ export interface Prism<in out S, in out A> extends Optional<S, A> {
|
|
|
56
310
|
}
|
|
57
311
|
|
|
58
312
|
/**
|
|
313
|
+
* Creates a {@link Prism} from a fallible getter and an infallible setter.
|
|
314
|
+
*
|
|
315
|
+
* When to use:
|
|
316
|
+
* - Reading can fail (the part may not exist in `S`), but building `S`
|
|
317
|
+
* from `A` always succeeds.
|
|
318
|
+
*
|
|
319
|
+
* Behavior:
|
|
320
|
+
* - Does not mutate inputs.
|
|
321
|
+
* - `getResult` should return `Result.fail(message)` on mismatch.
|
|
322
|
+
*
|
|
323
|
+
* **Example** (parsing a string to a number)
|
|
324
|
+
*
|
|
325
|
+
* ```ts
|
|
326
|
+
* import { Optic, Result } from "effect"
|
|
327
|
+
*
|
|
328
|
+
* const numeric = Optic.makePrism<string, number>(
|
|
329
|
+
* (s) => {
|
|
330
|
+
* const n = Number(s)
|
|
331
|
+
* return Number.isNaN(n) ? Result.fail("not a number") : Result.succeed(n)
|
|
332
|
+
* },
|
|
333
|
+
* String
|
|
334
|
+
* )
|
|
335
|
+
*
|
|
336
|
+
* console.log(Result.isSuccess(numeric.getResult("42")))
|
|
337
|
+
* // Output: true
|
|
338
|
+
*
|
|
339
|
+
* console.log(numeric.set(42))
|
|
340
|
+
* // Output: "42"
|
|
341
|
+
* ```
|
|
342
|
+
*
|
|
343
|
+
* @see {@link Prism} — the type this function returns
|
|
344
|
+
* @see {@link fromChecks} — build from `Schema` checks instead
|
|
345
|
+
*
|
|
59
346
|
* @category Constructors
|
|
60
347
|
* @since 4.0.0
|
|
61
348
|
*/
|
|
@@ -64,6 +351,39 @@ export function makePrism<S, A>(getResult: (s: S) => Result.Result<A, string>, s
|
|
|
64
351
|
}
|
|
65
352
|
|
|
66
353
|
/**
|
|
354
|
+
* Creates a {@link Prism} from one or more `Schema` validation checks.
|
|
355
|
+
*
|
|
356
|
+
* When to use:
|
|
357
|
+
* - You want to narrow `T` to the subset that passes certain validation
|
|
358
|
+
* rules (e.g. positive integer).
|
|
359
|
+
* - You already have `Schema.isGreaterThan`, `Schema.isInt`, etc.
|
|
360
|
+
*
|
|
361
|
+
* Behavior:
|
|
362
|
+
* - `getResult` runs all checks; fails with a combined error message when
|
|
363
|
+
* any check fails.
|
|
364
|
+
* - `set` is identity — the value passes through unchanged.
|
|
365
|
+
* - Does not mutate inputs.
|
|
366
|
+
*
|
|
367
|
+
* **Example** (positive integer prism)
|
|
368
|
+
*
|
|
369
|
+
* ```ts
|
|
370
|
+
* import { Optic, Result, Schema } from "effect"
|
|
371
|
+
*
|
|
372
|
+
* const posInt = Optic.fromChecks<number>(
|
|
373
|
+
* Schema.isGreaterThan(0),
|
|
374
|
+
* Schema.isInt()
|
|
375
|
+
* )
|
|
376
|
+
*
|
|
377
|
+
* console.log(Result.isSuccess(posInt.getResult(3)))
|
|
378
|
+
* // Output: true
|
|
379
|
+
*
|
|
380
|
+
* console.log(Result.isFailure(posInt.getResult(-1)))
|
|
381
|
+
* // Output: true
|
|
382
|
+
* ```
|
|
383
|
+
*
|
|
384
|
+
* @see {@link makePrism} — constructor with custom getter/setter
|
|
385
|
+
* @see {@link Prism} — the type this function returns
|
|
386
|
+
*
|
|
67
387
|
* @category Constructors
|
|
68
388
|
* @since 4.0.0
|
|
69
389
|
*/
|
|
@@ -209,21 +529,127 @@ function compose(a: Node, b: Node): Node {
|
|
|
209
529
|
type ForbidUnion<A, Message extends string> = IsUnion<A> extends true ? [Message] : []
|
|
210
530
|
|
|
211
531
|
/**
|
|
532
|
+
* The most general optic — both reading and writing can fail.
|
|
533
|
+
*
|
|
534
|
+
* When to use:
|
|
535
|
+
* - The focus may not exist in `S` **and** writing a new `A` back may also
|
|
536
|
+
* fail (e.g. the source no longer matches the expected shape).
|
|
537
|
+
* - As the base type: every optic ({@link Iso}, {@link Lens}, {@link Prism},
|
|
538
|
+
* {@link Traversal}) extends `Optional`.
|
|
539
|
+
*
|
|
540
|
+
* Behavior:
|
|
541
|
+
* - `getResult(s)` returns `Result.Success<A>` or `Result.Failure<string>`.
|
|
542
|
+
* - `replaceResult(a, s)` returns `Result.Success<S>` or
|
|
543
|
+
* `Result.Failure<string>`.
|
|
544
|
+
* - `replace(a, s)` returns the original `s` on failure (never throws).
|
|
545
|
+
* - `modify(f)` returns the original `s` on failure (never throws).
|
|
546
|
+
* - All operations are pure; inputs are never mutated.
|
|
547
|
+
*
|
|
548
|
+
* **Example** (record key that may be absent)
|
|
549
|
+
*
|
|
550
|
+
* ```ts
|
|
551
|
+
* import { Optic, Result } from "effect"
|
|
552
|
+
*
|
|
553
|
+
* type Env = { [key: string]: string }
|
|
554
|
+
* const _home = Optic.id<Env>().at("HOME")
|
|
555
|
+
*
|
|
556
|
+
* console.log(Result.isSuccess(_home.getResult({ HOME: "/root" })))
|
|
557
|
+
* // Output: true
|
|
558
|
+
*
|
|
559
|
+
* console.log(Result.isFailure(_home.getResult({ PATH: "/bin" })))
|
|
560
|
+
* // Output: true
|
|
561
|
+
*
|
|
562
|
+
* // replace returns original on failure
|
|
563
|
+
* console.log(_home.replace("/new", { PATH: "/bin" }))
|
|
564
|
+
* // Output: { PATH: "/bin" }
|
|
565
|
+
* ```
|
|
566
|
+
*
|
|
567
|
+
* @see {@link makeOptional} — constructor
|
|
568
|
+
* @see {@link Lens} — when reading always succeeds
|
|
569
|
+
* @see {@link Prism} — when writing always succeeds
|
|
570
|
+
*
|
|
212
571
|
* @category Optional
|
|
213
572
|
* @since 4.0.0
|
|
214
573
|
*/
|
|
215
574
|
export interface Optional<in out S, in out A> {
|
|
216
575
|
readonly node: Node
|
|
576
|
+
/**
|
|
577
|
+
* Attempts to read the focus `A` from the whole `S`.
|
|
578
|
+
*
|
|
579
|
+
* Returns `Result.Success<A>` when the focus exists, or
|
|
580
|
+
* `Result.Failure<string>` with a descriptive error otherwise.
|
|
581
|
+
*/
|
|
217
582
|
readonly getResult: (s: S) => Result.Result<A, string>
|
|
583
|
+
/**
|
|
584
|
+
* Replaces the focus in `S` with a new `A`. Returns the original `s`
|
|
585
|
+
* unchanged when the optic cannot focus (never throws).
|
|
586
|
+
*/
|
|
218
587
|
readonly replace: (a: A, s: S) => S
|
|
588
|
+
/**
|
|
589
|
+
* Like {@link replace}, but returns an explicit `Result` so callers can
|
|
590
|
+
* detect and handle failure.
|
|
591
|
+
*/
|
|
219
592
|
readonly replaceResult: (a: A, s: S) => Result.Result<S, string>
|
|
593
|
+
/**
|
|
594
|
+
* Composes this optic with another. The result type is the weakest of
|
|
595
|
+
* the two: Iso + Iso = Iso, Lens + Prism = Optional, etc.
|
|
596
|
+
*
|
|
597
|
+
* **Example** (composing a lens with a prism)
|
|
598
|
+
*
|
|
599
|
+
* ```ts
|
|
600
|
+
* import { Optic, Option } from "effect"
|
|
601
|
+
*
|
|
602
|
+
* type State = { value: Option.Option<number> }
|
|
603
|
+
*
|
|
604
|
+
* const _inner = Optic.id<State>().key("value").compose(Optic.some())
|
|
605
|
+
* // _inner is Optional<State, number>
|
|
606
|
+
* ```
|
|
607
|
+
*
|
|
608
|
+
* @see {@link id} — start a composition chain
|
|
609
|
+
*/
|
|
220
610
|
compose<B>(this: Iso<S, A>, that: Iso<A, B>): Iso<S, B>
|
|
221
611
|
compose<B>(this: Lens<S, A>, that: Lens<A, B>): Lens<S, B>
|
|
222
612
|
compose<B>(this: Prism<S, A>, that: Prism<A, B>): Prism<S, B>
|
|
223
613
|
compose<B>(this: Optional<S, A>, that: Optional<A, B>): Optional<S, B>
|
|
224
614
|
|
|
615
|
+
/**
|
|
616
|
+
* Returns a function `(s: S) => S` that applies `f` to the focused value.
|
|
617
|
+
* If the optic cannot focus, the original `s` is returned unchanged.
|
|
618
|
+
*
|
|
619
|
+
* **Example** (incrementing a nested field)
|
|
620
|
+
*
|
|
621
|
+
* ```ts
|
|
622
|
+
* import { Optic } from "effect"
|
|
623
|
+
*
|
|
624
|
+
* type S = { readonly a: { readonly b: number } }
|
|
625
|
+
* const _b = Optic.id<S>().key("a").key("b")
|
|
626
|
+
*
|
|
627
|
+
* const inc = _b.modify((n) => n + 1)
|
|
628
|
+
* console.log(inc({ a: { b: 1 } }))
|
|
629
|
+
* // Output: { a: { b: 2 } }
|
|
630
|
+
* ```
|
|
631
|
+
*/
|
|
225
632
|
modify(f: (a: A) => A): (s: S) => S
|
|
226
633
|
|
|
634
|
+
/**
|
|
635
|
+
* Focuses on a property of the current struct/tuple focus.
|
|
636
|
+
*
|
|
637
|
+
* - On a {@link Lens}, returns a Lens.
|
|
638
|
+
* - On an {@link Optional}, returns an Optional.
|
|
639
|
+
* - Does **not** work on union types (compile error).
|
|
640
|
+
*
|
|
641
|
+
* **Example** (drilling into nested structs)
|
|
642
|
+
*
|
|
643
|
+
* ```ts
|
|
644
|
+
* import { Optic } from "effect"
|
|
645
|
+
*
|
|
646
|
+
* type S = { readonly a: { readonly b: number } }
|
|
647
|
+
* const _b = Optic.id<S>().key("a").key("b")
|
|
648
|
+
*
|
|
649
|
+
* console.log(_b.get({ a: { b: 42 } }))
|
|
650
|
+
* // Output: 42
|
|
651
|
+
* ```
|
|
652
|
+
*/
|
|
227
653
|
key<S, A extends object, Key extends keyof A>(
|
|
228
654
|
this: Lens<S, A>,
|
|
229
655
|
key: Key,
|
|
@@ -235,6 +661,28 @@ export interface Optional<in out S, in out A> {
|
|
|
235
661
|
..._err: ForbidUnion<A, "cannot use `key` on a union type">
|
|
236
662
|
): Optional<S, A[Key]>
|
|
237
663
|
|
|
664
|
+
/**
|
|
665
|
+
* Focuses on a key where setting `undefined` **removes** the key from the
|
|
666
|
+
* struct (or splices the element from an array/tuple).
|
|
667
|
+
*
|
|
668
|
+
* - The focus type becomes `A[Key] | undefined`.
|
|
669
|
+
* - Does **not** work on union types (compile error).
|
|
670
|
+
*
|
|
671
|
+
* **Example** (deleting an optional key)
|
|
672
|
+
*
|
|
673
|
+
* ```ts
|
|
674
|
+
* import { Optic } from "effect"
|
|
675
|
+
*
|
|
676
|
+
* type S = { readonly a?: number }
|
|
677
|
+
* const _a = Optic.id<S>().optionalKey("a")
|
|
678
|
+
*
|
|
679
|
+
* console.log(_a.replace(undefined, { a: 1 }))
|
|
680
|
+
* // Output: {}
|
|
681
|
+
*
|
|
682
|
+
* console.log(_a.replace(2, {}))
|
|
683
|
+
* // Output: { a: 2 }
|
|
684
|
+
* ```
|
|
685
|
+
*/
|
|
238
686
|
optionalKey<S, A extends object, Key extends keyof A>(
|
|
239
687
|
this: Lens<S, A>,
|
|
240
688
|
key: Key,
|
|
@@ -246,9 +694,58 @@ export interface Optional<in out S, in out A> {
|
|
|
246
694
|
..._err: ForbidUnion<A, "cannot use `optionalKey` on a union type">
|
|
247
695
|
): Optional<S, A[Key] | undefined>
|
|
248
696
|
|
|
697
|
+
/**
|
|
698
|
+
* Adds one or more `Schema` validation checks to the optic chain.
|
|
699
|
+
* `getResult` fails when any check fails; `set` passes through unchanged.
|
|
700
|
+
*
|
|
701
|
+
* - On a {@link Prism}, returns a Prism.
|
|
702
|
+
* - On an {@link Optional}, returns an Optional.
|
|
703
|
+
*
|
|
704
|
+
* **Example** (only focus positive numbers)
|
|
705
|
+
*
|
|
706
|
+
* ```ts
|
|
707
|
+
* import { Optic, Result, Schema } from "effect"
|
|
708
|
+
*
|
|
709
|
+
* const _pos = Optic.id<number>().check(Schema.isGreaterThan(0))
|
|
710
|
+
*
|
|
711
|
+
* console.log(Result.isSuccess(_pos.getResult(5)))
|
|
712
|
+
* // Output: true
|
|
713
|
+
*
|
|
714
|
+
* console.log(Result.isFailure(_pos.getResult(-1)))
|
|
715
|
+
* // Output: true
|
|
716
|
+
* ```
|
|
717
|
+
*
|
|
718
|
+
* @see {@link fromChecks} — standalone prism from checks
|
|
719
|
+
*/
|
|
249
720
|
check<S, A>(this: Prism<S, A>, ...checks: readonly [AST.Check<A>, ...Array<AST.Check<A>>]): Prism<S, A>
|
|
250
721
|
check<S, A>(this: Optional<S, A>, ...checks: readonly [AST.Check<A>, ...Array<AST.Check<A>>]): Optional<S, A>
|
|
251
722
|
|
|
723
|
+
/**
|
|
724
|
+
* Narrows the focus to a subtype `B` using a type guard.
|
|
725
|
+
*
|
|
726
|
+
* - On a {@link Prism}, returns a Prism.
|
|
727
|
+
* - On an {@link Optional}, returns an Optional.
|
|
728
|
+
* - Pass optional `annotations` to customize the error message.
|
|
729
|
+
*
|
|
730
|
+
* **Example** (narrowing a union)
|
|
731
|
+
*
|
|
732
|
+
* ```ts
|
|
733
|
+
* import { Optic, Result } from "effect"
|
|
734
|
+
*
|
|
735
|
+
* type B = { readonly _tag: "b"; readonly b: number }
|
|
736
|
+
* type S = { readonly _tag: "a"; readonly a: string } | B
|
|
737
|
+
*
|
|
738
|
+
* const _b = Optic.id<S>().refine(
|
|
739
|
+
* (s: S): s is B => s._tag === "b",
|
|
740
|
+
* { expected: `"b" tag` }
|
|
741
|
+
* )
|
|
742
|
+
*
|
|
743
|
+
* console.log(Result.isSuccess(_b.getResult({ _tag: "b", b: 1 })))
|
|
744
|
+
* // Output: true
|
|
745
|
+
* ```
|
|
746
|
+
*
|
|
747
|
+
* @see `.tag()` — shorthand for narrowing by `_tag`
|
|
748
|
+
*/
|
|
252
749
|
refine<S, A, B extends A>(
|
|
253
750
|
this: Prism<S, A>,
|
|
254
751
|
refinement: (a: A) => a is B,
|
|
@@ -260,6 +757,34 @@ export interface Optional<in out S, in out A> {
|
|
|
260
757
|
annotations?: Schema.Annotations.Filter
|
|
261
758
|
): Optional<S, B>
|
|
262
759
|
|
|
760
|
+
/**
|
|
761
|
+
* Narrows the focus to the variant of a tagged union with the given
|
|
762
|
+
* `_tag` value.
|
|
763
|
+
*
|
|
764
|
+
* - On a {@link Prism}, returns a Prism.
|
|
765
|
+
* - On an {@link Optional}, returns an Optional.
|
|
766
|
+
* - Shorthand for `.refine(s => s._tag === tag)`.
|
|
767
|
+
*
|
|
768
|
+
* **Example** (focusing a tagged variant)
|
|
769
|
+
*
|
|
770
|
+
* ```ts
|
|
771
|
+
* import { Optic, Result } from "effect"
|
|
772
|
+
*
|
|
773
|
+
* type Shape =
|
|
774
|
+
* | { readonly _tag: "Circle"; readonly radius: number }
|
|
775
|
+
* | { readonly _tag: "Rect"; readonly width: number }
|
|
776
|
+
*
|
|
777
|
+
* const _radius = Optic.id<Shape>().tag("Circle").key("radius")
|
|
778
|
+
*
|
|
779
|
+
* console.log(Result.isSuccess(_radius.getResult({ _tag: "Circle", radius: 5 })))
|
|
780
|
+
* // Output: true
|
|
781
|
+
*
|
|
782
|
+
* console.log(Result.isFailure(_radius.getResult({ _tag: "Rect", width: 10 })))
|
|
783
|
+
* // Output: true
|
|
784
|
+
* ```
|
|
785
|
+
*
|
|
786
|
+
* @see `.refine()` — for arbitrary type guards
|
|
787
|
+
*/
|
|
263
788
|
tag<S, A extends { readonly _tag: AST.LiteralValue }, Tag extends A["_tag"]>(
|
|
264
789
|
this: Prism<S, A>,
|
|
265
790
|
tag: Tag
|
|
@@ -269,6 +794,33 @@ export interface Optional<in out S, in out A> {
|
|
|
269
794
|
tag: Tag
|
|
270
795
|
): Optional<S, Extract<A, { readonly _tag: Tag }>>
|
|
271
796
|
|
|
797
|
+
/**
|
|
798
|
+
* Focuses on a key only if it exists (`Object.hasOwn`). Both
|
|
799
|
+
* `getResult` and `replaceResult` fail when the key is absent.
|
|
800
|
+
*
|
|
801
|
+
* Unlike `.key()`, which always succeeds on the read side, `.at()` is
|
|
802
|
+
* useful for Records or arrays where the key/index may not be present.
|
|
803
|
+
*
|
|
804
|
+
* - Always returns an {@link Optional}.
|
|
805
|
+
* - Does **not** work on union types (compile error).
|
|
806
|
+
*
|
|
807
|
+
* **Example** (safe record access)
|
|
808
|
+
*
|
|
809
|
+
* ```ts
|
|
810
|
+
* import { Optic, Result } from "effect"
|
|
811
|
+
*
|
|
812
|
+
* type Env = { [key: string]: number }
|
|
813
|
+
* const _x = Optic.id<Env>().at("x")
|
|
814
|
+
*
|
|
815
|
+
* console.log(Result.isSuccess(_x.getResult({ x: 1 })))
|
|
816
|
+
* // Output: true
|
|
817
|
+
*
|
|
818
|
+
* console.log(Result.isFailure(_x.getResult({ y: 2 })))
|
|
819
|
+
* // Output: true
|
|
820
|
+
* ```
|
|
821
|
+
*
|
|
822
|
+
* @see `.key()` — when the key is always present
|
|
823
|
+
*/
|
|
272
824
|
at<S, A extends object, Key extends keyof A>(
|
|
273
825
|
this: Optional<S, A>,
|
|
274
826
|
key: Key,
|
|
@@ -276,7 +828,26 @@ export interface Optional<in out S, in out A> {
|
|
|
276
828
|
): Optional<S, A[Key]>
|
|
277
829
|
|
|
278
830
|
/**
|
|
279
|
-
*
|
|
831
|
+
* Focuses on a subset of keys of the current struct focus.
|
|
832
|
+
*
|
|
833
|
+
* - On a {@link Lens}, returns a Lens.
|
|
834
|
+
* - On an {@link Optional}, returns an Optional.
|
|
835
|
+
* - Does **not** work on union types (compile error).
|
|
836
|
+
*
|
|
837
|
+
* **Example** (picking keys)
|
|
838
|
+
*
|
|
839
|
+
* ```ts
|
|
840
|
+
* import { Optic } from "effect"
|
|
841
|
+
*
|
|
842
|
+
* type S = { readonly a: string; readonly b: number; readonly c: boolean }
|
|
843
|
+
*
|
|
844
|
+
* const _ac = Optic.id<S>().pick(["a", "c"])
|
|
845
|
+
*
|
|
846
|
+
* console.log(_ac.get({ a: "hi", b: 1, c: true }))
|
|
847
|
+
* // Output: { a: "hi", c: true }
|
|
848
|
+
* ```
|
|
849
|
+
*
|
|
850
|
+
* @see `.omit()` — the inverse operation
|
|
280
851
|
*/
|
|
281
852
|
pick<S, A, Keys extends ReadonlyArray<keyof A>>(
|
|
282
853
|
this: Lens<S, A>,
|
|
@@ -290,7 +861,26 @@ export interface Optional<in out S, in out A> {
|
|
|
290
861
|
): Optional<S, Pick<A, Keys[number]>>
|
|
291
862
|
|
|
292
863
|
/**
|
|
293
|
-
*
|
|
864
|
+
* Focuses on all keys **except** the specified ones.
|
|
865
|
+
*
|
|
866
|
+
* - On a {@link Lens}, returns a Lens.
|
|
867
|
+
* - On an {@link Optional}, returns an Optional.
|
|
868
|
+
* - Does **not** work on union types (compile error).
|
|
869
|
+
*
|
|
870
|
+
* **Example** (omitting keys)
|
|
871
|
+
*
|
|
872
|
+
* ```ts
|
|
873
|
+
* import { Optic } from "effect"
|
|
874
|
+
*
|
|
875
|
+
* type S = { readonly a: string; readonly b: number; readonly c: boolean }
|
|
876
|
+
*
|
|
877
|
+
* const _ac = Optic.id<S>().omit(["b"])
|
|
878
|
+
*
|
|
879
|
+
* console.log(_ac.get({ a: "hi", b: 1, c: true }))
|
|
880
|
+
* // Output: { a: "hi", c: true }
|
|
881
|
+
* ```
|
|
882
|
+
*
|
|
883
|
+
* @see `.pick()` — the inverse operation
|
|
294
884
|
*
|
|
295
885
|
* @since 1.0.0
|
|
296
886
|
*/
|
|
@@ -306,7 +896,23 @@ export interface Optional<in out S, in out A> {
|
|
|
306
896
|
): Optional<S, Omit<A, Keys[number]>>
|
|
307
897
|
|
|
308
898
|
/**
|
|
309
|
-
*
|
|
899
|
+
* Filters out `undefined` from the focus, producing a {@link Prism}.
|
|
900
|
+
*
|
|
901
|
+
* `getResult` fails when the focus is `undefined`.
|
|
902
|
+
*
|
|
903
|
+
* **Example** (filtering undefined)
|
|
904
|
+
*
|
|
905
|
+
* ```ts
|
|
906
|
+
* import { Optic, Result } from "effect"
|
|
907
|
+
*
|
|
908
|
+
* const _defined = Optic.id<number | undefined>().notUndefined()
|
|
909
|
+
*
|
|
910
|
+
* console.log(Result.isSuccess(_defined.getResult(42)))
|
|
911
|
+
* // Output: true
|
|
912
|
+
*
|
|
913
|
+
* console.log(Result.isFailure(_defined.getResult(undefined)))
|
|
914
|
+
* // Output: true
|
|
915
|
+
* ```
|
|
310
916
|
*
|
|
311
917
|
* @since 4.0.0
|
|
312
918
|
*/
|
|
@@ -314,24 +920,117 @@ export interface Optional<in out S, in out A> {
|
|
|
314
920
|
notUndefined(): Optional<S, Exclude<A, undefined>>
|
|
315
921
|
|
|
316
922
|
/**
|
|
317
|
-
* Focuses **all elements** of an array-like focus and
|
|
318
|
-
*
|
|
319
|
-
*
|
|
320
|
-
*
|
|
321
|
-
*
|
|
322
|
-
*
|
|
323
|
-
*
|
|
324
|
-
*
|
|
325
|
-
*
|
|
326
|
-
*
|
|
327
|
-
*
|
|
923
|
+
* Focuses **all elements** of an array-like focus and optionally narrows
|
|
924
|
+
* to a subset using an element-level optic.
|
|
925
|
+
*
|
|
926
|
+
* Available only on {@link Traversal} (i.e. when `A` is
|
|
927
|
+
* `ReadonlyArray<Element>`). Returns a new Traversal focused on the
|
|
928
|
+
* selected elements.
|
|
929
|
+
*
|
|
930
|
+
* Behavior:
|
|
931
|
+
* - **getResult** collects the values focused by `f(id<A>())` for each
|
|
932
|
+
* element. Non-focusable elements are skipped.
|
|
933
|
+
* - **replaceResult** expects exactly as many values as were collected by
|
|
934
|
+
* `getResult` and writes them back in order. Fails with a
|
|
935
|
+
* length-mismatch error if counts differ.
|
|
936
|
+
*
|
|
937
|
+
* **Example** (incrementing liked posts)
|
|
938
|
+
*
|
|
939
|
+
* ```ts
|
|
940
|
+
* import { Optic, Schema } from "effect"
|
|
941
|
+
*
|
|
942
|
+
* type Post = { title: string; likes: number }
|
|
943
|
+
* type S = { user: { posts: ReadonlyArray<Post> } }
|
|
944
|
+
*
|
|
945
|
+
* const _likes = Optic.id<S>()
|
|
946
|
+
* .key("user")
|
|
947
|
+
* .key("posts")
|
|
948
|
+
* .forEach((post) => post.key("likes").check(Schema.isGreaterThan(0)))
|
|
949
|
+
*
|
|
950
|
+
* const addLike = _likes.modifyAll((n) => n + 1)
|
|
951
|
+
*
|
|
952
|
+
* console.log(
|
|
953
|
+
* addLike({
|
|
954
|
+
* user: { posts: [{ title: "a", likes: 0 }, { title: "b", likes: 1 }] }
|
|
955
|
+
* })
|
|
956
|
+
* )
|
|
957
|
+
* // Output: { user: { posts: [{ title: "a", likes: 0 }, { title: "b", likes: 2 }] } }
|
|
958
|
+
* ```
|
|
959
|
+
*
|
|
960
|
+
* @see {@link getAll} — extract all focused elements as an array
|
|
961
|
+
* @see `.modifyAll()` — apply a function to every focused element
|
|
328
962
|
*/
|
|
329
963
|
forEach<S, A, B>(this: Traversal<S, A>, f: (iso: Iso<A, A>) => Optional<A, B>): Traversal<S, B>
|
|
330
964
|
|
|
965
|
+
/**
|
|
966
|
+
* Applies a function to **every** element focused by the traversal.
|
|
967
|
+
*
|
|
968
|
+
* Available only on {@link Traversal}. Returns a function `(s: S) => S`.
|
|
969
|
+
* If the traversal cannot focus, the original `s` is returned unchanged.
|
|
970
|
+
*
|
|
971
|
+
* Unlike `.modify()`, which operates on the whole array, `modifyAll`
|
|
972
|
+
* maps `f` over each individual element.
|
|
973
|
+
*
|
|
974
|
+
* **Example** (doubling all focused values)
|
|
975
|
+
*
|
|
976
|
+
* ```ts
|
|
977
|
+
* import { Optic, Schema } from "effect"
|
|
978
|
+
*
|
|
979
|
+
* type S = { readonly items: ReadonlyArray<number> }
|
|
980
|
+
*
|
|
981
|
+
* const _positive = Optic.id<S>()
|
|
982
|
+
* .key("items")
|
|
983
|
+
* .forEach((n) => n.check(Schema.isGreaterThan(0)))
|
|
984
|
+
*
|
|
985
|
+
* const doubled = _positive.modifyAll((n) => n * 2)
|
|
986
|
+
*
|
|
987
|
+
* console.log(doubled({ items: [1, -2, 3] }))
|
|
988
|
+
* // Output: { items: [2, -2, 6] }
|
|
989
|
+
* ```
|
|
990
|
+
*
|
|
991
|
+
* @see `.forEach()` — create a sub-traversal
|
|
992
|
+
* @see {@link getAll} — extract focused elements
|
|
993
|
+
*/
|
|
331
994
|
modifyAll<S, A>(this: Traversal<S, A>, f: (a: A) => A): (s: S) => S
|
|
332
995
|
}
|
|
333
996
|
|
|
334
997
|
/**
|
|
998
|
+
* Creates an {@link Optional} from a fallible getter and a fallible setter.
|
|
999
|
+
*
|
|
1000
|
+
* When to use:
|
|
1001
|
+
* - Both reading and writing can fail.
|
|
1002
|
+
*
|
|
1003
|
+
* Behavior:
|
|
1004
|
+
* - Does not mutate inputs.
|
|
1005
|
+
* - `getResult` should return `Result.fail(message)` on mismatch.
|
|
1006
|
+
* - `set` should return `Result.fail(message)` when the update cannot be
|
|
1007
|
+
* applied.
|
|
1008
|
+
*
|
|
1009
|
+
* **Example** (safe record key access)
|
|
1010
|
+
*
|
|
1011
|
+
* ```ts
|
|
1012
|
+
* import { Optic, Result } from "effect"
|
|
1013
|
+
*
|
|
1014
|
+
* const atKey = (key: string) =>
|
|
1015
|
+
* Optic.makeOptional<Record<string, number>, number>(
|
|
1016
|
+
* (s) =>
|
|
1017
|
+
* Object.hasOwn(s, key)
|
|
1018
|
+
* ? Result.succeed(s[key])
|
|
1019
|
+
* : Result.fail(`Key "${key}" not found`),
|
|
1020
|
+
* (a, s) =>
|
|
1021
|
+
* Object.hasOwn(s, key)
|
|
1022
|
+
* ? Result.succeed({ ...s, [key]: a })
|
|
1023
|
+
* : Result.fail(`Key "${key}" not found`)
|
|
1024
|
+
* )
|
|
1025
|
+
*
|
|
1026
|
+
* console.log(Result.isSuccess(atKey("x").getResult({ x: 1 })))
|
|
1027
|
+
* // Output: true
|
|
1028
|
+
* ```
|
|
1029
|
+
*
|
|
1030
|
+
* @see {@link Optional} — the type this function returns
|
|
1031
|
+
* @see {@link makeLens} — when reading always succeeds
|
|
1032
|
+
* @see {@link makePrism} — when writing always succeeds
|
|
1033
|
+
*
|
|
335
1034
|
* @category Constructors
|
|
336
1035
|
* @since 4.0.0
|
|
337
1036
|
*/
|
|
@@ -343,6 +1042,40 @@ export function makeOptional<S, A>(
|
|
|
343
1042
|
}
|
|
344
1043
|
|
|
345
1044
|
/**
|
|
1045
|
+
* An optic that focuses on **zero or more** elements of type `A` inside `S`.
|
|
1046
|
+
*
|
|
1047
|
+
* When to use:
|
|
1048
|
+
* - You want to read/update multiple elements at once (e.g. all items in
|
|
1049
|
+
* an array, or a filtered subset).
|
|
1050
|
+
*
|
|
1051
|
+
* Behavior:
|
|
1052
|
+
* - Technically `Optional<S, ReadonlyArray<A>>` — the focused value is an
|
|
1053
|
+
* array of all matched elements.
|
|
1054
|
+
* - Use `.forEach()` to add per-element sub-optics (filtering, drilling
|
|
1055
|
+
* deeper).
|
|
1056
|
+
* - Use `.modifyAll(f)` to map a function over every focused element.
|
|
1057
|
+
* - Use {@link getAll} to extract all focused elements as a plain array.
|
|
1058
|
+
*
|
|
1059
|
+
* **Example** (traversing array elements with a filter)
|
|
1060
|
+
*
|
|
1061
|
+
* ```ts
|
|
1062
|
+
* import { Optic, Schema } from "effect"
|
|
1063
|
+
*
|
|
1064
|
+
* type S = { readonly items: ReadonlyArray<number> }
|
|
1065
|
+
*
|
|
1066
|
+
* const _positive = Optic.id<S>()
|
|
1067
|
+
* .key("items")
|
|
1068
|
+
* .forEach((n) => n.check(Schema.isGreaterThan(0)))
|
|
1069
|
+
*
|
|
1070
|
+
* const getPositive = Optic.getAll(_positive)
|
|
1071
|
+
*
|
|
1072
|
+
* console.log(getPositive({ items: [1, -2, 3] }))
|
|
1073
|
+
* // Output: [1, 3]
|
|
1074
|
+
* ```
|
|
1075
|
+
*
|
|
1076
|
+
* @see {@link getAll} — extract focused elements
|
|
1077
|
+
* @see {@link Optional} — the base type
|
|
1078
|
+
*
|
|
346
1079
|
* @category Traversal
|
|
347
1080
|
* @since 4.0.0
|
|
348
1081
|
*/
|
|
@@ -700,7 +1433,39 @@ function getCompositionTag(a: Op["_tag"], b: Op["_tag"]): Op["_tag"] {
|
|
|
700
1433
|
// ---------------------------------------------
|
|
701
1434
|
|
|
702
1435
|
/**
|
|
703
|
-
* Returns all
|
|
1436
|
+
* Returns a function that extracts all elements focused by a
|
|
1437
|
+
* {@link Traversal} as a plain mutable array.
|
|
1438
|
+
*
|
|
1439
|
+
* When to use:
|
|
1440
|
+
* - You need the focused values as a simple `Array<A>` for further
|
|
1441
|
+
* processing.
|
|
1442
|
+
*
|
|
1443
|
+
* Behavior:
|
|
1444
|
+
* - Returns an empty array when the traversal cannot focus.
|
|
1445
|
+
* - Always returns a fresh array (safe to mutate).
|
|
1446
|
+
* - Does not mutate the source.
|
|
1447
|
+
*
|
|
1448
|
+
* **Example** (collecting positive numbers)
|
|
1449
|
+
*
|
|
1450
|
+
* ```ts
|
|
1451
|
+
* import { Optic, Schema } from "effect"
|
|
1452
|
+
*
|
|
1453
|
+
* type S = { readonly values: ReadonlyArray<number> }
|
|
1454
|
+
*
|
|
1455
|
+
* const _pos = Optic.id<S>()
|
|
1456
|
+
* .key("values")
|
|
1457
|
+
* .forEach((n) => n.check(Schema.isGreaterThan(0)))
|
|
1458
|
+
*
|
|
1459
|
+
* const getPositive = Optic.getAll(_pos)
|
|
1460
|
+
*
|
|
1461
|
+
* console.log(getPositive({ values: [3, -1, 5] }))
|
|
1462
|
+
* // Output: [3, 5]
|
|
1463
|
+
*
|
|
1464
|
+
* console.log(getPositive({ values: [-1, -2] }))
|
|
1465
|
+
* // Output: []
|
|
1466
|
+
* ```
|
|
1467
|
+
*
|
|
1468
|
+
* @see {@link Traversal} — the optic type this operates on
|
|
704
1469
|
*
|
|
705
1470
|
* @category Traversal
|
|
706
1471
|
* @since 4.0.0
|
|
@@ -720,7 +1485,31 @@ export function getAll<S, A>(traversal: Traversal<S, A>): (s: S) => Array<A> {
|
|
|
720
1485
|
const identityIso = make(identityNode)
|
|
721
1486
|
|
|
722
1487
|
/**
|
|
723
|
-
* The identity
|
|
1488
|
+
* The identity {@link Iso}. Focuses on the whole value unchanged.
|
|
1489
|
+
*
|
|
1490
|
+
* When to use:
|
|
1491
|
+
* - As the starting point of an optic chain: `Optic.id<S>().key("x")...`
|
|
1492
|
+
* - Anywhere an `Iso<S, S>` is needed.
|
|
1493
|
+
*
|
|
1494
|
+
* Behavior:
|
|
1495
|
+
* - `get(s)` returns `s`.
|
|
1496
|
+
* - `set(a)` returns `a`.
|
|
1497
|
+
* - Singleton — every call returns the same instance.
|
|
1498
|
+
*
|
|
1499
|
+
* **Example** (starting an optic chain)
|
|
1500
|
+
*
|
|
1501
|
+
* ```ts
|
|
1502
|
+
* import { Optic } from "effect"
|
|
1503
|
+
*
|
|
1504
|
+
* type S = { readonly x: number }
|
|
1505
|
+
*
|
|
1506
|
+
* const _x = Optic.id<S>().key("x")
|
|
1507
|
+
*
|
|
1508
|
+
* console.log(_x.get({ x: 42 }))
|
|
1509
|
+
* // Output: 42
|
|
1510
|
+
* ```
|
|
1511
|
+
*
|
|
1512
|
+
* @see {@link Iso} — the type this function returns
|
|
724
1513
|
*
|
|
725
1514
|
* @category Iso
|
|
726
1515
|
* @since 4.0.0
|
|
@@ -730,6 +1519,35 @@ export function id<S>(): Iso<S, S> {
|
|
|
730
1519
|
}
|
|
731
1520
|
|
|
732
1521
|
/**
|
|
1522
|
+
* An {@link Iso} that converts a `Record<string, A>` to an array of
|
|
1523
|
+
* `[key, value]` entries and back.
|
|
1524
|
+
*
|
|
1525
|
+
* When to use:
|
|
1526
|
+
* - You want to traverse or manipulate record entries as an array (e.g.
|
|
1527
|
+
* with `.forEach()`).
|
|
1528
|
+
*
|
|
1529
|
+
* Behavior:
|
|
1530
|
+
* - `get` uses `Object.entries`.
|
|
1531
|
+
* - `set` uses `Object.fromEntries`.
|
|
1532
|
+
* - Round-trip is lossless for `Record<string, A>`.
|
|
1533
|
+
*
|
|
1534
|
+
* **Example** (traversing record values)
|
|
1535
|
+
*
|
|
1536
|
+
* ```ts
|
|
1537
|
+
* import { Optic, Schema } from "effect"
|
|
1538
|
+
*
|
|
1539
|
+
* const _positiveValues = Optic.entries<number>()
|
|
1540
|
+
* .forEach((entry) => entry.key(1).check(Schema.isGreaterThan(0)))
|
|
1541
|
+
*
|
|
1542
|
+
* const inc = _positiveValues.modifyAll((n) => n + 1)
|
|
1543
|
+
*
|
|
1544
|
+
* console.log(inc({ a: 0, b: 3, c: -1 }))
|
|
1545
|
+
* // Output: { a: 0, b: 4, c: -1 }
|
|
1546
|
+
* ```
|
|
1547
|
+
*
|
|
1548
|
+
* @see {@link Iso} — the type this function returns
|
|
1549
|
+
* @see {@link id} — identity iso
|
|
1550
|
+
*
|
|
733
1551
|
* @category Iso
|
|
734
1552
|
* @since 4.0.0
|
|
735
1553
|
*/
|
|
@@ -738,6 +1556,36 @@ export function entries<A>(): Iso<Record<string, A>, ReadonlyArray<readonly [str
|
|
|
738
1556
|
}
|
|
739
1557
|
|
|
740
1558
|
/**
|
|
1559
|
+
* A {@link Prism} that focuses on the value inside `Option.Some`.
|
|
1560
|
+
*
|
|
1561
|
+
* When to use:
|
|
1562
|
+
* - You have an `Option<A>` and want to read/update the inner value only
|
|
1563
|
+
* when it is `Some`.
|
|
1564
|
+
*
|
|
1565
|
+
* Behavior:
|
|
1566
|
+
* - `getResult` fails with an error message when the option is `None`.
|
|
1567
|
+
* - `set(a)` wraps `a` in `Option.some(a)`.
|
|
1568
|
+
*
|
|
1569
|
+
* **Example** (accessing Some value)
|
|
1570
|
+
*
|
|
1571
|
+
* ```ts
|
|
1572
|
+
* import { Optic, Option, Result } from "effect"
|
|
1573
|
+
*
|
|
1574
|
+
* const _some = Optic.id<Option.Option<number>>().compose(Optic.some())
|
|
1575
|
+
*
|
|
1576
|
+
* console.log(Result.isSuccess(_some.getResult(Option.some(42))))
|
|
1577
|
+
* // Output: true
|
|
1578
|
+
*
|
|
1579
|
+
* console.log(Result.isFailure(_some.getResult(Option.none())))
|
|
1580
|
+
* // Output: true
|
|
1581
|
+
*
|
|
1582
|
+
* console.log(_some.set(10))
|
|
1583
|
+
* // Output: { _tag: "Some", value: 10 }
|
|
1584
|
+
* ```
|
|
1585
|
+
*
|
|
1586
|
+
* @see {@link none} — focuses on `None` instead
|
|
1587
|
+
* @see {@link Prism} — the type this function returns
|
|
1588
|
+
*
|
|
741
1589
|
* @category Prism
|
|
742
1590
|
* @since 4.0.0
|
|
743
1591
|
*/
|
|
@@ -754,6 +1602,33 @@ export function some<A>(): Prism<Option.Option<A>, A> {
|
|
|
754
1602
|
}
|
|
755
1603
|
|
|
756
1604
|
/**
|
|
1605
|
+
* A {@link Prism} that focuses on `Option.None`, exposing `undefined`.
|
|
1606
|
+
*
|
|
1607
|
+
* When to use:
|
|
1608
|
+
* - You want to match or construct `None` values within an optic chain.
|
|
1609
|
+
*
|
|
1610
|
+
* Behavior:
|
|
1611
|
+
* - `getResult` succeeds with `undefined` when the option is `None`.
|
|
1612
|
+
* - `getResult` fails when the option is `Some`.
|
|
1613
|
+
* - `set(undefined)` produces `Option.none()`.
|
|
1614
|
+
*
|
|
1615
|
+
* **Example** (matching None)
|
|
1616
|
+
*
|
|
1617
|
+
* ```ts
|
|
1618
|
+
* import { Optic, Option, Result } from "effect"
|
|
1619
|
+
*
|
|
1620
|
+
* const _none = Optic.id<Option.Option<number>>().compose(Optic.none())
|
|
1621
|
+
*
|
|
1622
|
+
* console.log(Result.isSuccess(_none.getResult(Option.none())))
|
|
1623
|
+
* // Output: true
|
|
1624
|
+
*
|
|
1625
|
+
* console.log(Result.isFailure(_none.getResult(Option.some(1))))
|
|
1626
|
+
* // Output: true
|
|
1627
|
+
* ```
|
|
1628
|
+
*
|
|
1629
|
+
* @see {@link some} — focuses on `Some` instead
|
|
1630
|
+
* @see {@link Prism} — the type this function returns
|
|
1631
|
+
*
|
|
757
1632
|
* @category Prism
|
|
758
1633
|
* @since 4.0.0
|
|
759
1634
|
*/
|
|
@@ -770,6 +1645,33 @@ export function none<A>(): Prism<Option.Option<A>, undefined> {
|
|
|
770
1645
|
}
|
|
771
1646
|
|
|
772
1647
|
/**
|
|
1648
|
+
* A {@link Prism} that focuses on the success value of a `Result`.
|
|
1649
|
+
*
|
|
1650
|
+
* When to use:
|
|
1651
|
+
* - You have a `Result<A, E>` and want to read/update `A` only when it
|
|
1652
|
+
* is a `Success`.
|
|
1653
|
+
*
|
|
1654
|
+
* Behavior:
|
|
1655
|
+
* - `getResult` fails when the result is a `Failure`.
|
|
1656
|
+
* - `set(a)` produces `Result.succeed(a)`.
|
|
1657
|
+
*
|
|
1658
|
+
* **Example** (accessing success)
|
|
1659
|
+
*
|
|
1660
|
+
* ```ts
|
|
1661
|
+
* import { Optic, Result } from "effect"
|
|
1662
|
+
*
|
|
1663
|
+
* const _ok = Optic.id<Result.Result<number, string>>().compose(Optic.success())
|
|
1664
|
+
*
|
|
1665
|
+
* console.log(Result.isSuccess(_ok.getResult(Result.succeed(42))))
|
|
1666
|
+
* // Output: true
|
|
1667
|
+
*
|
|
1668
|
+
* console.log(Result.isFailure(_ok.getResult(Result.fail("err"))))
|
|
1669
|
+
* // Output: true
|
|
1670
|
+
* ```
|
|
1671
|
+
*
|
|
1672
|
+
* @see {@link failure} — focuses on the failure side
|
|
1673
|
+
* @see {@link Prism} — the type this function returns
|
|
1674
|
+
*
|
|
773
1675
|
* @category Prism
|
|
774
1676
|
* @since 4.0.0
|
|
775
1677
|
*/
|
|
@@ -786,6 +1688,33 @@ export function success<A, E>(): Prism<Result.Result<A, E>, A> {
|
|
|
786
1688
|
}
|
|
787
1689
|
|
|
788
1690
|
/**
|
|
1691
|
+
* A {@link Prism} that focuses on the failure value of a `Result`.
|
|
1692
|
+
*
|
|
1693
|
+
* When to use:
|
|
1694
|
+
* - You have a `Result<A, E>` and want to read/update `E` only when it
|
|
1695
|
+
* is a `Failure`.
|
|
1696
|
+
*
|
|
1697
|
+
* Behavior:
|
|
1698
|
+
* - `getResult` fails when the result is a `Success`.
|
|
1699
|
+
* - `set(e)` produces `Result.fail(e)`.
|
|
1700
|
+
*
|
|
1701
|
+
* **Example** (accessing failure)
|
|
1702
|
+
*
|
|
1703
|
+
* ```ts
|
|
1704
|
+
* import { Optic, Result } from "effect"
|
|
1705
|
+
*
|
|
1706
|
+
* const _err = Optic.id<Result.Result<number, string>>().compose(Optic.failure())
|
|
1707
|
+
*
|
|
1708
|
+
* console.log(Result.isSuccess(_err.getResult(Result.fail("oops"))))
|
|
1709
|
+
* // Output: true
|
|
1710
|
+
*
|
|
1711
|
+
* console.log(Result.isFailure(_err.getResult(Result.succeed(42))))
|
|
1712
|
+
* // Output: true
|
|
1713
|
+
* ```
|
|
1714
|
+
*
|
|
1715
|
+
* @see {@link success} — focuses on the success side
|
|
1716
|
+
* @see {@link Prism} — the type this function returns
|
|
1717
|
+
*
|
|
789
1718
|
* @category Prism
|
|
790
1719
|
* @since 4.0.0
|
|
791
1720
|
*/
|