effect 4.0.0-beta.99 → 4.0.0-rc.108
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +381 -0
- package/CLAUDE.md +381 -0
- package/README.md +14 -19
- package/ai-docs/README.md +44 -0
- package/ai-docs/package.json +36 -0
- package/ai-docs/src/01_effect/01_basics/01_effect-gen.ts +30 -0
- package/ai-docs/src/01_effect/01_basics/02_effect-fn.ts +39 -0
- package/ai-docs/src/01_effect/01_basics/10_creating-effects.ts +74 -0
- package/ai-docs/src/01_effect/01_basics/index.md +5 -0
- package/ai-docs/src/01_effect/02_schema/10_schema-basics.ts +43 -0
- package/ai-docs/src/01_effect/02_schema/index.md +7 -0
- package/ai-docs/src/01_effect/03_services/01_service.ts +45 -0
- package/ai-docs/src/01_effect/03_services/10_reference.ts +10 -0
- package/ai-docs/src/01_effect/03_services/20_layer-composition.ts +70 -0
- package/ai-docs/src/01_effect/03_services/20_layer-unwrap.ts +66 -0
- package/ai-docs/src/01_effect/03_services/index.md +5 -0
- package/ai-docs/src/01_effect/04_errors/01_error-handling.ts +30 -0
- package/ai-docs/src/01_effect/04_errors/10_catch-tags.ts +24 -0
- package/ai-docs/src/01_effect/04_errors/20_reason-errors.ts +64 -0
- package/ai-docs/src/01_effect/04_errors/index.md +1 -0
- package/ai-docs/src/01_effect/05_resources/10_acquire-release.ts +105 -0
- package/ai-docs/src/01_effect/05_resources/20_layer-side-effects.ts +31 -0
- package/ai-docs/src/01_effect/05_resources/30_layer-map.ts +86 -0
- package/ai-docs/src/01_effect/05_resources/index.md +3 -0
- package/ai-docs/src/01_effect/06_running/10_run-main.ts +30 -0
- package/ai-docs/src/01_effect/06_running/20_layer-launch.ts +27 -0
- package/ai-docs/src/01_effect/06_running/index.md +1 -0
- package/ai-docs/src/01_effect/07_pubsub/10_pubsub.ts +56 -0
- package/ai-docs/src/01_effect/07_pubsub/index.md +3 -0
- package/ai-docs/src/03_stream/10_creating-streams.ts +103 -0
- package/ai-docs/src/03_stream/20_consuming-streams.ts +137 -0
- package/ai-docs/src/03_stream/30_encoding.ts +165 -0
- package/ai-docs/src/03_stream/index.md +4 -0
- package/ai-docs/src/04_integration/10_managed-runtime.ts +129 -0
- package/ai-docs/src/04_integration/index.md +5 -0
- package/ai-docs/src/05_batching/10_request-resolver.ts +89 -0
- package/ai-docs/src/05_batching/index.md +3 -0
- package/ai-docs/src/06_schedule/10_schedules.ts +110 -0
- package/ai-docs/src/06_schedule/index.md +3 -0
- package/ai-docs/src/07_datetime/10_creating-and-formatting.ts +30 -0
- package/ai-docs/src/07_datetime/20_time-zones.ts +44 -0
- package/ai-docs/src/07_datetime/index.md +5 -0
- package/ai-docs/src/08_observability/10_logging.ts +66 -0
- package/ai-docs/src/08_observability/20_otlp-tracing.ts +95 -0
- package/ai-docs/src/08_observability/index.md +7 -0
- package/ai-docs/src/09_testing/10_effect-tests.ts +55 -0
- package/ai-docs/src/09_testing/20_layer-tests.ts +138 -0
- package/ai-docs/src/09_testing/index.md +1 -0
- package/ai-docs/src/10_predicate/01_basics.ts +14 -0
- package/ai-docs/src/10_predicate/index.md +9 -0
- package/ai-docs/src/50_http-client/10_basics.ts +102 -0
- package/ai-docs/src/50_http-client/index.md +3 -0
- package/ai-docs/src/51_http-server/10_basics.ts +116 -0
- package/ai-docs/src/51_http-server/fixtures/api/Api.ts +14 -0
- package/ai-docs/src/51_http-server/fixtures/api/Authorization.ts +36 -0
- package/ai-docs/src/51_http-server/fixtures/api/System.ts +10 -0
- package/ai-docs/src/51_http-server/fixtures/api/Users.ts +91 -0
- package/ai-docs/src/51_http-server/fixtures/domain/User.ts +12 -0
- package/ai-docs/src/51_http-server/fixtures/domain/UserErrors.ts +22 -0
- package/ai-docs/src/51_http-server/fixtures/server/Authorization.ts +36 -0
- package/ai-docs/src/51_http-server/fixtures/server/Users/http.ts +71 -0
- package/ai-docs/src/51_http-server/fixtures/server/Users.ts +62 -0
- package/ai-docs/src/51_http-server/index.md +3 -0
- package/ai-docs/src/60_child-process/10_working-with-child-processes.ts +117 -0
- package/ai-docs/src/60_child-process/index.md +3 -0
- package/ai-docs/src/70_cli/10_basics.ts +136 -0
- package/ai-docs/src/70_cli/index.md +5 -0
- package/ai-docs/src/71_ai/10_language-model.ts +156 -0
- package/ai-docs/src/71_ai/20_tools.ts +226 -0
- package/ai-docs/src/71_ai/30_chat.ts +158 -0
- package/ai-docs/src/71_ai/fixtures/domain/LaunchPlan.ts +9 -0
- package/ai-docs/src/71_ai/index.md +5 -0
- package/ai-docs/src/80_cluster/10_entities.ts +97 -0
- package/ai-docs/src/80_cluster/index.md +4 -0
- package/ai-docs/src/index.md +10 -0
- package/ai-docs/tsconfig.json +24 -0
- package/dist/Array.d.ts +971 -1037
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +462 -412
- package/dist/Array.js.map +1 -1
- package/dist/BigDecimal.d.ts +433 -756
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +200 -325
- package/dist/BigDecimal.js.map +1 -1
- package/dist/BigInt.d.ts +207 -267
- package/dist/BigInt.d.ts.map +1 -1
- package/dist/BigInt.js +107 -135
- package/dist/BigInt.js.map +1 -1
- package/dist/Boolean.d.ts +146 -188
- package/dist/Boolean.d.ts.map +1 -1
- package/dist/Boolean.js +64 -84
- package/dist/Boolean.js.map +1 -1
- package/dist/Brand.d.ts +3 -3
- package/dist/Brand.d.ts.map +1 -1
- package/dist/Brand.js +4 -3
- package/dist/Brand.js.map +1 -1
- package/dist/Cache.d.ts +409 -256
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +213 -134
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +167 -277
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Cause.js +122 -176
- package/dist/Cause.js.map +1 -1
- package/dist/Channel.d.ts +756 -769
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +588 -449
- package/dist/Channel.js.map +1 -1
- package/dist/ChannelSchema.d.ts +1 -1
- package/dist/ChannelSchema.d.ts.map +1 -1
- package/dist/ChannelSchema.js.map +1 -1
- package/dist/Chunk.d.ts +834 -1173
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +326 -439
- package/dist/Chunk.js.map +1 -1
- package/dist/Clock.d.ts +180 -49
- package/dist/Clock.d.ts.map +1 -1
- package/dist/Clock.js +96 -31
- package/dist/Clock.js.map +1 -1
- package/dist/Combiner.d.ts +20 -33
- package/dist/Combiner.d.ts.map +1 -1
- package/dist/Combiner.js +18 -30
- package/dist/Combiner.js.map +1 -1
- package/dist/Config.d.ts +226 -174
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +361 -267
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +229 -71
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +164 -95
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Console.d.ts +233 -33
- package/dist/Console.d.ts.map +1 -1
- package/dist/Console.js +232 -32
- package/dist/Console.js.map +1 -1
- package/dist/Context.d.ts +153 -277
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +172 -236
- package/dist/Context.js.map +1 -1
- package/dist/Cron.d.ts +144 -176
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +227 -162
- package/dist/Cron.js.map +1 -1
- package/dist/Crypto.d.ts +13 -15
- package/dist/Crypto.d.ts.map +1 -1
- package/dist/Crypto.js +22 -15
- package/dist/Crypto.js.map +1 -1
- package/dist/Data.d.ts +60 -80
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js +18 -24
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +562 -660
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +307 -362
- package/dist/DateTime.js.map +1 -1
- package/dist/Deferred.d.ts +253 -256
- package/dist/Deferred.d.ts.map +1 -1
- package/dist/Deferred.js +110 -98
- package/dist/Deferred.js.map +1 -1
- package/dist/Duration.d.ts +216 -308
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +157 -188
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +3142 -3345
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +1452 -1570
- package/dist/Effect.js.map +1 -1
- package/dist/Effectable.js.map +1 -1
- package/dist/Encoding.d.ts +22 -40
- package/dist/Encoding.d.ts.map +1 -1
- package/dist/Encoding.js +22 -40
- package/dist/Encoding.js.map +1 -1
- package/dist/Equal.d.ts +33 -37
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +39 -23
- package/dist/Equal.js.map +1 -1
- package/dist/Equivalence.d.ts +103 -105
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +77 -79
- package/dist/Equivalence.js.map +1 -1
- package/dist/ErrorReporter.d.ts +51 -27
- package/dist/ErrorReporter.d.ts.map +1 -1
- package/dist/ErrorReporter.js +50 -26
- package/dist/ErrorReporter.js.map +1 -1
- package/dist/ExecutionPlan.d.ts +86 -55
- package/dist/ExecutionPlan.d.ts.map +1 -1
- package/dist/ExecutionPlan.js +8 -29
- package/dist/ExecutionPlan.js.map +1 -1
- package/dist/Exit.d.ts +116 -192
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js +82 -130
- package/dist/Exit.js.map +1 -1
- package/dist/Fiber.d.ts +83 -147
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js +48 -87
- package/dist/Fiber.js.map +1 -1
- package/dist/FiberHandle.d.ts +152 -105
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +109 -75
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +213 -168
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +114 -89
- package/dist/FiberMap.js.map +1 -1
- package/dist/FiberSet.d.ts +123 -81
- package/dist/FiberSet.d.ts.map +1 -1
- package/dist/FiberSet.js +86 -60
- package/dist/FiberSet.js.map +1 -1
- package/dist/FileSystem.d.ts +154 -265
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +42 -147
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts +61 -33
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +26 -15
- package/dist/Filter.js.map +1 -1
- package/dist/Formatter.d.ts +24 -32
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +55 -60
- package/dist/Formatter.js.map +1 -1
- package/dist/Function.d.ts +106 -148
- package/dist/Function.d.ts.map +1 -1
- package/dist/Function.js +81 -62
- package/dist/Function.js.map +1 -1
- package/dist/Graph.d.ts +360 -714
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +168 -297
- package/dist/Graph.js.map +1 -1
- package/dist/HKT.d.ts +12 -6
- package/dist/HKT.d.ts.map +1 -1
- package/dist/Hash.d.ts +47 -83
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +46 -68
- package/dist/Hash.js.map +1 -1
- package/dist/HashMap.d.ts +319 -411
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +122 -166
- package/dist/HashMap.js.map +1 -1
- package/dist/HashRing.d.ts.map +1 -1
- package/dist/HashRing.js +1 -0
- package/dist/HashRing.js.map +1 -1
- package/dist/HashSet.d.ts +177 -284
- package/dist/HashSet.d.ts.map +1 -1
- package/dist/HashSet.js +68 -109
- package/dist/HashSet.js.map +1 -1
- package/dist/Inspectable.d.ts +19 -18
- package/dist/Inspectable.d.ts.map +1 -1
- package/dist/Inspectable.js +20 -16
- package/dist/Inspectable.js.map +1 -1
- package/dist/Iterable.d.ts +620 -786
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +241 -317
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonPatch.d.ts +11 -13
- package/dist/JsonPatch.d.ts.map +1 -1
- package/dist/JsonPatch.js +46 -103
- package/dist/JsonPatch.js.map +1 -1
- package/dist/JsonPointer.d.ts +8 -8
- package/dist/JsonPointer.js +8 -8
- package/dist/JsonPointer.js.map +1 -1
- package/dist/JsonSchema.d.ts +98 -44
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +319 -241
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Latch.d.ts +23 -35
- package/dist/Latch.d.ts.map +1 -1
- package/dist/Latch.js +16 -28
- package/dist/Latch.js.map +1 -1
- package/dist/Layer.d.ts +359 -260
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +202 -180
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts +42 -29
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LayerMap.js +31 -21
- package/dist/LayerMap.js.map +1 -1
- package/dist/LayerRef.d.ts +6 -2
- package/dist/LayerRef.d.ts.map +1 -1
- package/dist/LayerRef.js +6 -2
- package/dist/LayerRef.js.map +1 -1
- package/dist/LogLevel.d.ts +114 -214
- package/dist/LogLevel.d.ts.map +1 -1
- package/dist/LogLevel.js +41 -76
- package/dist/LogLevel.js.map +1 -1
- package/dist/Logger.d.ts +218 -467
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +208 -453
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +16 -5
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +10 -5
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Match.d.ts +217 -252
- package/dist/Match.d.ts.map +1 -1
- package/dist/Match.js +150 -183
- package/dist/Match.js.map +1 -1
- package/dist/Metric.d.ts +442 -993
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +202 -645
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts +144 -173
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js +68 -79
- package/dist/MutableHashMap.js.map +1 -1
- package/dist/MutableHashSet.d.ts +84 -89
- package/dist/MutableHashSet.d.ts.map +1 -1
- package/dist/MutableHashSet.js +44 -47
- package/dist/MutableHashSet.js.map +1 -1
- package/dist/MutableList.d.ts +71 -370
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +63 -284
- package/dist/MutableList.js.map +1 -1
- package/dist/MutableRef.d.ts +420 -243
- package/dist/MutableRef.d.ts.map +1 -1
- package/dist/MutableRef.js +209 -120
- package/dist/MutableRef.js.map +1 -1
- package/dist/Newtype.d.ts +21 -14
- package/dist/Newtype.d.ts.map +1 -1
- package/dist/Newtype.js +15 -13
- package/dist/Newtype.js.map +1 -1
- package/dist/NonEmptyIterable.d.ts +7 -137
- package/dist/NonEmptyIterable.d.ts.map +1 -1
- package/dist/NonEmptyIterable.js +5 -93
- package/dist/NonEmptyIterable.js.map +1 -1
- package/dist/Number.d.ts +196 -233
- package/dist/Number.d.ts.map +1 -1
- package/dist/Number.js +90 -109
- package/dist/Number.js.map +1 -1
- package/dist/Optic.d.ts +132 -210
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +221 -324
- package/dist/Optic.js.map +1 -1
- package/dist/Option.d.ts +447 -812
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +213 -393
- package/dist/Option.js.map +1 -1
- package/dist/Order.d.ts +109 -109
- package/dist/Order.js +91 -91
- package/dist/Order.js.map +1 -1
- package/dist/Ordering.d.ts +20 -23
- package/dist/Ordering.d.ts.map +1 -1
- package/dist/Ordering.js +8 -9
- package/dist/Ordering.js.map +1 -1
- package/dist/PartitionedSemaphore.d.ts.map +1 -1
- package/dist/PartitionedSemaphore.js +1 -4
- package/dist/PartitionedSemaphore.js.map +1 -1
- package/dist/Path.d.ts +38 -41
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +3 -4
- package/dist/Path.js.map +1 -1
- package/dist/Pipeable.d.ts +6 -5
- package/dist/Pipeable.d.ts.map +1 -1
- package/dist/Pipeable.js +2 -2
- package/dist/Pipeable.js.map +1 -1
- package/dist/PlatformError.d.ts +4 -4
- package/dist/PlatformError.js +3 -3
- package/dist/PlatformError.js.map +1 -1
- package/dist/Pool.d.ts +4 -2
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +4 -2
- package/dist/Pool.js.map +1 -1
- package/dist/Predicate.d.ts +200 -181
- package/dist/Predicate.d.ts.map +1 -1
- package/dist/Predicate.js +100 -108
- package/dist/Predicate.js.map +1 -1
- package/dist/PrimaryKey.d.ts +7 -7
- package/dist/PrimaryKey.js +5 -5
- package/dist/PrimaryKey.js.map +1 -1
- package/dist/PubSub.d.ts +425 -494
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +373 -362
- package/dist/PubSub.js.map +1 -1
- package/dist/Pull.d.ts +24 -18
- package/dist/Pull.d.ts.map +1 -1
- package/dist/Pull.js +11 -9
- package/dist/Pull.js.map +1 -1
- package/dist/Queue.d.ts +200 -159
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +166 -138
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts +49 -74
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +35 -54
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +121 -63
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +42 -21
- package/dist/RcMap.js.map +1 -1
- package/dist/RcRef.d.ts +24 -13
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/RcRef.js +15 -9
- package/dist/RcRef.js.map +1 -1
- package/dist/Record.d.ts +361 -466
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +163 -216
- package/dist/Record.js.map +1 -1
- package/dist/Redactable.d.ts +6 -2
- package/dist/Redactable.d.ts.map +1 -1
- package/dist/Redactable.js +7 -2
- package/dist/Redactable.js.map +1 -1
- package/dist/Redacted.d.ts +25 -25
- package/dist/Redacted.d.ts.map +1 -1
- package/dist/Redacted.js +19 -20
- package/dist/Redacted.js.map +1 -1
- package/dist/Reducer.d.ts +8 -15
- package/dist/Reducer.d.ts.map +1 -1
- package/dist/Reducer.js +6 -12
- package/dist/Reducer.js.map +1 -1
- package/dist/Ref.d.ts +95 -165
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +75 -122
- package/dist/Ref.js.map +1 -1
- package/dist/References.d.ts +102 -213
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +102 -213
- package/dist/References.js.map +1 -1
- package/dist/RegExp.d.ts +10 -14
- package/dist/RegExp.d.ts.map +1 -1
- package/dist/RegExp.js +10 -14
- package/dist/RegExp.js.map +1 -1
- package/dist/Request.d.ts +31 -21
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js +25 -19
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +201 -90
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +87 -41
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Resource.js.map +1 -1
- package/dist/Result.d.ts +302 -470
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +135 -218
- package/dist/Result.js.map +1 -1
- package/dist/Runtime.d.ts +50 -75
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +39 -60
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts +292 -1638
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +164 -805
- package/dist/Schedule.js.map +1 -1
- package/dist/Scheduler.d.ts +5 -5
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +18 -6
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +2056 -1269
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +2868 -1135
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +64 -72
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +698 -468
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +236 -188
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +281 -234
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts +219 -190
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +303 -309
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts +32 -2
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +170 -118
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +433 -1511
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +301 -2854
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +117 -77
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +139 -104
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/Scope.d.ts +123 -151
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +72 -92
- package/dist/Scope.js.map +1 -1
- package/dist/ScopedCache.js +1 -1
- package/dist/ScopedCache.js.map +1 -1
- package/dist/ScopedRef.d.ts +3 -3
- package/dist/ScopedRef.d.ts.map +1 -1
- package/dist/ScopedRef.js +2 -2
- package/dist/ScopedRef.js.map +1 -1
- package/dist/Semaphore.d.ts +101 -13
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +78 -39
- package/dist/Semaphore.js.map +1 -1
- package/dist/Sink.d.ts +118 -108
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +107 -100
- package/dist/Sink.js.map +1 -1
- package/dist/Stdio.d.ts +18 -5
- package/dist/Stdio.d.ts.map +1 -1
- package/dist/Stdio.js +6 -3
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +2467 -2962
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +1154 -1413
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +262 -308
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +184 -215
- package/dist/String.js.map +1 -1
- package/dist/Struct.d.ts +109 -114
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +46 -54
- package/dist/Struct.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +282 -250
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +104 -92
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/Symbol.d.ts +3 -3
- package/dist/Symbol.js +3 -3
- package/dist/Symbol.js.map +1 -1
- package/dist/SynchronizedRef.js +1 -1
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Take.js.map +1 -1
- package/dist/Terminal.d.ts +2 -2
- package/dist/Terminal.js +2 -2
- package/dist/Terminal.js.map +1 -1
- package/dist/Tracer.d.ts +100 -54
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +41 -24
- package/dist/Tracer.js.map +1 -1
- package/dist/Trie.d.ts +287 -679
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +109 -251
- package/dist/Trie.js.map +1 -1
- package/dist/Tuple.d.ts +98 -131
- package/dist/Tuple.d.ts.map +1 -1
- package/dist/Tuple.js +42 -57
- package/dist/Tuple.js.map +1 -1
- package/dist/TxChunk.d.ts +201 -121
- package/dist/TxChunk.d.ts.map +1 -1
- package/dist/TxChunk.js +85 -56
- package/dist/TxChunk.js.map +1 -1
- package/dist/TxDeferred.d.ts +62 -46
- package/dist/TxDeferred.d.ts.map +1 -1
- package/dist/TxDeferred.js +30 -22
- package/dist/TxDeferred.js.map +1 -1
- package/dist/TxHashMap.d.ts +631 -779
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js +268 -330
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts +297 -236
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js +130 -100
- package/dist/TxHashSet.js.map +1 -1
- package/dist/TxPriorityQueue.d.ts +126 -95
- package/dist/TxPriorityQueue.d.ts.map +1 -1
- package/dist/TxPriorityQueue.js +74 -56
- package/dist/TxPriorityQueue.js.map +1 -1
- package/dist/TxPubSub.d.ts +101 -88
- package/dist/TxPubSub.d.ts.map +1 -1
- package/dist/TxPubSub.js +87 -66
- package/dist/TxPubSub.js.map +1 -1
- package/dist/TxQueue.d.ts +200 -180
- package/dist/TxQueue.d.ts.map +1 -1
- package/dist/TxQueue.js +161 -137
- package/dist/TxQueue.js.map +1 -1
- package/dist/TxReentrantLock.d.ts +89 -114
- package/dist/TxReentrantLock.d.ts.map +1 -1
- package/dist/TxReentrantLock.js +75 -53
- package/dist/TxReentrantLock.js.map +1 -1
- package/dist/TxRef.d.ts +51 -32
- package/dist/TxRef.d.ts.map +1 -1
- package/dist/TxRef.js +23 -15
- package/dist/TxRef.js.map +1 -1
- package/dist/TxSemaphore.d.ts +129 -95
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +85 -70
- package/dist/TxSemaphore.js.map +1 -1
- package/dist/TxSubscriptionRef.d.ts +97 -70
- package/dist/TxSubscriptionRef.d.ts.map +1 -1
- package/dist/TxSubscriptionRef.js +44 -34
- package/dist/TxSubscriptionRef.js.map +1 -1
- package/dist/Types.d.ts +127 -70
- package/dist/Types.d.ts.map +1 -1
- package/dist/UndefinedOr.js.map +1 -1
- package/dist/Unify.d.ts +45 -65
- package/dist/Unify.d.ts.map +1 -1
- package/dist/Unify.js +6 -9
- package/dist/Unify.js.map +1 -1
- package/dist/Utils.d.ts +23 -16
- package/dist/Utils.d.ts.map +1 -1
- package/dist/Utils.js +3 -7
- package/dist/Utils.js.map +1 -1
- package/dist/index.d.ts +0 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -8
- package/dist/index.js.map +1 -1
- package/dist/internal/array.js.map +1 -1
- package/dist/internal/core.js +4 -3
- package/dist/internal/core.js.map +1 -1
- package/dist/internal/dateTime.js +5 -1
- package/dist/internal/dateTime.js.map +1 -1
- package/dist/internal/doNotation.js.map +1 -1
- package/dist/internal/effect.js +252 -108
- package/dist/internal/effect.js.map +1 -1
- package/dist/internal/equal.js.map +1 -1
- package/dist/internal/errors.js.map +1 -1
- package/dist/internal/executionPlan.js +52 -3
- package/dist/internal/executionPlan.js.map +1 -1
- package/dist/internal/hashMap.js +12 -8
- package/dist/internal/hashMap.js.map +1 -1
- package/dist/internal/hashSet.js.map +1 -1
- package/dist/internal/layer.js.map +1 -1
- package/dist/internal/matcher.js +2 -2
- package/dist/internal/matcher.js.map +1 -1
- package/dist/internal/metric.js.map +1 -1
- package/dist/internal/option.js.map +1 -1
- package/dist/internal/persistence.d.ts +2 -0
- package/dist/internal/persistence.d.ts.map +1 -0
- package/dist/internal/persistence.js +3 -0
- package/dist/internal/persistence.js.map +1 -0
- package/dist/internal/random.js.map +1 -1
- package/dist/internal/rcRef.js +18 -13
- package/dist/internal/rcRef.js.map +1 -1
- package/dist/internal/record.d.ts +0 -3
- package/dist/internal/record.d.ts.map +1 -1
- package/dist/internal/record.js +10 -5
- package/dist/internal/record.js.map +1 -1
- package/dist/internal/redacted.js.map +1 -1
- package/dist/internal/references.js +3 -4
- package/dist/internal/references.js.map +1 -1
- package/dist/internal/request.js.map +1 -1
- package/dist/internal/result.js.map +1 -1
- package/dist/internal/schedule.js.map +1 -1
- package/dist/internal/schema/annotations.js +15 -1
- package/dist/internal/schema/annotations.js.map +1 -1
- package/dist/internal/schema/cause.js.map +1 -1
- package/dist/internal/schema/fromJsonSchemaDocument.d.ts +2 -0
- package/dist/internal/schema/fromJsonSchemaDocument.d.ts.map +1 -0
- package/dist/internal/schema/fromJsonSchemaDocument.js +761 -0
- package/dist/internal/schema/fromJsonSchemaDocument.js.map +1 -0
- package/dist/internal/schema/fromRepresentation.d.ts +2 -0
- package/dist/internal/schema/fromRepresentation.d.ts.map +1 -0
- package/dist/internal/schema/fromRepresentation.js +245 -0
- package/dist/internal/schema/fromRepresentation.js.map +1 -0
- package/dist/internal/schema/parser.d.ts +14 -0
- package/dist/internal/schema/parser.d.ts.map +1 -0
- package/dist/internal/schema/parser.js +13 -0
- package/dist/internal/schema/parser.js.map +1 -0
- package/dist/internal/schema/schema.js +29 -49
- package/dist/internal/schema/schema.js.map +1 -1
- package/dist/internal/schema/toArbitrary.d.ts +2 -0
- package/dist/internal/schema/toArbitrary.d.ts.map +1 -0
- package/dist/internal/schema/{arbitrary.js → toArbitrary.js} +8 -83
- package/dist/internal/schema/toArbitrary.js.map +1 -0
- package/dist/internal/schema/toCodeDocument.d.ts +2 -0
- package/dist/internal/schema/toCodeDocument.d.ts.map +1 -0
- package/dist/internal/schema/toCodeDocument.js +438 -0
- package/dist/internal/schema/toCodeDocument.js.map +1 -0
- package/dist/internal/schema/toEquivalence.d.ts +2 -0
- package/dist/internal/schema/toEquivalence.d.ts.map +1 -0
- package/dist/internal/schema/{equivalence.js → toEquivalence.js} +15 -13
- package/dist/internal/schema/toEquivalence.js.map +1 -0
- package/dist/internal/schema/toJsonSchemaDocument.d.ts +2 -0
- package/dist/internal/schema/toJsonSchemaDocument.d.ts.map +1 -0
- package/dist/internal/schema/toJsonSchemaDocument.js +522 -0
- package/dist/internal/schema/toJsonSchemaDocument.js.map +1 -0
- package/dist/internal/schema/toRepresentation.d.ts +2 -0
- package/dist/internal/schema/toRepresentation.d.ts.map +1 -0
- package/dist/internal/schema/toRepresentation.js +351 -0
- package/dist/internal/schema/toRepresentation.js.map +1 -0
- package/dist/internal/stackTraceLimit.js +3 -6
- package/dist/internal/stackTraceLimit.js.map +1 -1
- package/dist/internal/stream.js.map +1 -1
- package/dist/internal/tracer.js.map +1 -1
- package/dist/internal/trie.js +24 -10
- package/dist/internal/trie.js.map +1 -1
- package/dist/testing/FastCheck.d.ts +8 -7
- package/dist/testing/FastCheck.d.ts.map +1 -1
- package/dist/testing/FastCheck.js +8 -7
- package/dist/testing/FastCheck.js.map +1 -1
- package/dist/testing/TestClock.d.ts +57 -28
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +65 -20
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestConsole.d.ts +32 -31
- package/dist/testing/TestConsole.d.ts.map +1 -1
- package/dist/testing/TestConsole.js +24 -22
- package/dist/testing/TestConsole.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +31 -31
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js +35 -34
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +121 -144
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +118 -140
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +22 -7
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.js +87 -317
- package/dist/unstable/ai/AnthropicStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Chat.d.ts +132 -97
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +56 -52
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/EmbeddingModel.d.ts +1 -1
- package/dist/unstable/ai/EmbeddingModel.js +1 -1
- package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
- package/dist/unstable/ai/IdGenerator.d.ts +32 -28
- package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
- package/dist/unstable/ai/IdGenerator.js +26 -21
- package/dist/unstable/ai/IdGenerator.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +111 -68
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +127 -83
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpProtocol.d.ts +30 -0
- package/dist/unstable/ai/McpProtocol.d.ts.map +1 -0
- package/dist/unstable/ai/McpProtocol.js +20 -0
- package/dist/unstable/ai/McpProtocol.js.map +1 -0
- package/dist/unstable/ai/McpSchema.d.ts +320 -254
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +79 -71
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +71 -62
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +777 -245
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Model.d.ts +8 -19
- package/dist/unstable/ai/Model.d.ts.map +1 -1
- package/dist/unstable/ai/Model.js +9 -20
- package/dist/unstable/ai/Model.js.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +33 -11
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js +194 -378
- package/dist/unstable/ai/OpenAiStructuredOutput.js.map +1 -1
- package/dist/unstable/ai/Prompt.d.ts +131 -44
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Prompt.js +100 -36
- package/dist/unstable/ai/Prompt.js.map +1 -1
- package/dist/unstable/ai/Response.d.ts +47 -33
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +23 -18
- package/dist/unstable/ai/Response.js.map +1 -1
- package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
- package/dist/unstable/ai/Telemetry.d.ts +46 -13
- package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
- package/dist/unstable/ai/Telemetry.js +18 -7
- package/dist/unstable/ai/Telemetry.js.map +1 -1
- package/dist/unstable/ai/Tokenizer.d.ts +14 -3
- package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
- package/dist/unstable/ai/Tokenizer.js +10 -2
- package/dist/unstable/ai/Tokenizer.js.map +1 -1
- package/dist/unstable/ai/Tool.d.ts +63 -44
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +59 -42
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/ai/Toolkit.d.ts +35 -9
- package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
- package/dist/unstable/ai/Toolkit.js +32 -14
- package/dist/unstable/ai/Toolkit.js.map +1 -1
- package/dist/unstable/ai/index.d.ts +4 -0
- package/dist/unstable/ai/index.d.ts.map +1 -1
- package/dist/unstable/ai/index.js +4 -0
- package/dist/unstable/ai/index.js.map +1 -1
- package/dist/unstable/ai/internal/codec-transformer.js +15 -12
- package/dist/unstable/ai/internal/codec-transformer.js.map +1 -1
- package/dist/unstable/ai/internal/mcpProtocol.d.ts +21 -0
- package/dist/unstable/ai/internal/mcpProtocol.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocol.js +22 -0
- package/dist/unstable/ai/internal/mcpProtocol.js.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts +2 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.js +32 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.js.map +1 -0
- package/dist/unstable/ai/internal/structured-output.d.ts +2 -0
- package/dist/unstable/ai/internal/structured-output.d.ts.map +1 -0
- package/dist/unstable/ai/internal/structured-output.js +315 -0
- package/dist/unstable/ai/internal/structured-output.js.map +1 -0
- package/dist/unstable/cli/Argument.d.ts +279 -72
- package/dist/unstable/cli/Argument.d.ts.map +1 -1
- package/dist/unstable/cli/Argument.js +113 -34
- package/dist/unstable/cli/Argument.js.map +1 -1
- package/dist/unstable/cli/CliConfig.js.map +1 -1
- package/dist/unstable/cli/CliError.d.ts +126 -76
- package/dist/unstable/cli/CliError.d.ts.map +1 -1
- package/dist/unstable/cli/CliError.js +136 -76
- package/dist/unstable/cli/CliError.js.map +1 -1
- package/dist/unstable/cli/CliOutput.d.ts +35 -54
- package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
- package/dist/unstable/cli/CliOutput.js +26 -42
- package/dist/unstable/cli/CliOutput.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +736 -115
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +282 -56
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/Completions.js.map +1 -1
- package/dist/unstable/cli/Flag.d.ts +418 -138
- package/dist/unstable/cli/Flag.d.ts.map +1 -1
- package/dist/unstable/cli/Flag.js +197 -71
- package/dist/unstable/cli/Flag.js.map +1 -1
- package/dist/unstable/cli/GlobalFlag.d.ts +1 -1
- package/dist/unstable/cli/GlobalFlag.js.map +1 -1
- package/dist/unstable/cli/HelpDoc.d.ts +12 -4
- package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
- package/dist/unstable/cli/Param.d.ts +299 -83
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- package/dist/unstable/cli/Param.js +146 -60
- package/dist/unstable/cli/Param.js.map +1 -1
- package/dist/unstable/cli/Primitive.d.ts +370 -149
- package/dist/unstable/cli/Primitive.d.ts.map +1 -1
- package/dist/unstable/cli/Primitive.js +377 -162
- package/dist/unstable/cli/Primitive.js.map +1 -1
- package/dist/unstable/cli/Prompt.d.ts +23 -14
- package/dist/unstable/cli/Prompt.d.ts.map +1 -1
- package/dist/unstable/cli/Prompt.js +54 -31
- package/dist/unstable/cli/Prompt.js.map +1 -1
- package/dist/unstable/cli/index.js.map +1 -1
- package/dist/unstable/cli/internal/ansi.js +2 -2
- package/dist/unstable/cli/internal/ansi.js.map +1 -1
- package/dist/unstable/cli/internal/auto-suggest.js.map +1 -1
- package/dist/unstable/cli/internal/command.d.ts +5 -3
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.js +21 -13
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/completions/bash.js +69 -9
- package/dist/unstable/cli/internal/completions/bash.js.map +1 -1
- package/dist/unstable/cli/internal/completions/descriptor.js +24 -18
- package/dist/unstable/cli/internal/completions/descriptor.js.map +1 -1
- package/dist/unstable/cli/internal/completions/fish.js +5 -5
- 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.d.ts +0 -48
- package/dist/unstable/cli/internal/config.d.ts.map +1 -1
- package/dist/unstable/cli/internal/config.js +8 -10
- package/dist/unstable/cli/internal/config.js.map +1 -1
- package/dist/unstable/cli/internal/help.d.ts.map +1 -1
- package/dist/unstable/cli/internal/help.js +4 -2
- package/dist/unstable/cli/internal/help.js.map +1 -1
- package/dist/unstable/cli/internal/lexer.js +17 -7
- package/dist/unstable/cli/internal/lexer.js.map +1 -1
- package/dist/unstable/cli/internal/parser.js +5 -5
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- package/dist/unstable/cli/internal/wizard.js +2 -2
- package/dist/unstable/cli/internal/wizard.js.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/ClusterError.js +7 -7
- package/dist/unstable/cluster/ClusterError.js.map +1 -1
- package/dist/unstable/cluster/ClusterMetrics.js.map +1 -1
- package/dist/unstable/cluster/ClusterSchema.d.ts +8 -8
- package/dist/unstable/cluster/ClusterSchema.js +8 -8
- package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +32 -16
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/DeliverAt.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +12 -12
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js +9 -9
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/EntityAddress.js.map +1 -1
- package/dist/unstable/cluster/EntityId.js.map +1 -1
- package/dist/unstable/cluster/EntityProxy.d.ts +7 -5
- package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityProxy.js +8 -5
- package/dist/unstable/cluster/EntityProxy.js.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
- package/dist/unstable/cluster/EntityResource.d.ts +2 -2
- package/dist/unstable/cluster/EntityResource.js +2 -2
- package/dist/unstable/cluster/EntityResource.js.map +1 -1
- package/dist/unstable/cluster/EntityType.js.map +1 -1
- package/dist/unstable/cluster/Envelope.d.ts +3 -3
- package/dist/unstable/cluster/Envelope.d.ts.map +1 -1
- package/dist/unstable/cluster/Envelope.js +5 -4
- package/dist/unstable/cluster/Envelope.js.map +1 -1
- package/dist/unstable/cluster/HttpRunner.d.ts +2 -2
- package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
- package/dist/unstable/cluster/HttpRunner.js +6 -4
- package/dist/unstable/cluster/HttpRunner.js.map +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/MachineId.js.map +1 -1
- package/dist/unstable/cluster/Message.d.ts +9 -9
- package/dist/unstable/cluster/Message.js +6 -6
- package/dist/unstable/cluster/Message.js.map +1 -1
- package/dist/unstable/cluster/MessageStorage.d.ts +15 -15
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +13 -6
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +8 -0
- package/dist/unstable/cluster/Reply.d.ts.map +1 -1
- package/dist/unstable/cluster/Reply.js +17 -5
- package/dist/unstable/cluster/Reply.js.map +1 -1
- package/dist/unstable/cluster/Runner.d.ts +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.js +1 -1
- package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
- package/dist/unstable/cluster/RunnerHealth.d.ts +1 -1
- package/dist/unstable/cluster/RunnerHealth.js +1 -1
- package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
- package/dist/unstable/cluster/RunnerServer.d.ts +2 -1
- package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerServer.js +29 -23
- package/dist/unstable/cluster/RunnerServer.js.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.d.ts +3 -4
- package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.js +8 -7
- package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/Runners.d.ts +11 -15
- package/dist/unstable/cluster/Runners.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.js +32 -22
- package/dist/unstable/cluster/Runners.js.map +1 -1
- package/dist/unstable/cluster/ShardId.js +1 -1
- package/dist/unstable/cluster/ShardId.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts +2 -2
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +164 -31
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +13 -5
- package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.js +3 -3
- package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
- package/dist/unstable/cluster/ShardingRegistrationEvent.js.map +1 -1
- package/dist/unstable/cluster/SingleRunner.d.ts +4 -2
- package/dist/unstable/cluster/SingleRunner.d.ts.map +1 -1
- package/dist/unstable/cluster/SingleRunner.js +2 -1
- package/dist/unstable/cluster/SingleRunner.js.map +1 -1
- package/dist/unstable/cluster/Singleton.js.map +1 -1
- package/dist/unstable/cluster/SingletonAddress.d.ts +1 -1
- package/dist/unstable/cluster/SingletonAddress.js +1 -1
- package/dist/unstable/cluster/SingletonAddress.js.map +1 -1
- package/dist/unstable/cluster/Snowflake.d.ts +8 -8
- package/dist/unstable/cluster/Snowflake.js +8 -8
- package/dist/unstable/cluster/Snowflake.js.map +1 -1
- package/dist/unstable/cluster/SocketRunner.js.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.d.ts +7 -4
- package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.js +56 -25
- 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 +141 -79
- package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/TestRunner.js.map +1 -1
- package/dist/unstable/cluster/index.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +25 -13
- package/dist/unstable/cluster/internal/entityManager.js.map +1 -1
- package/dist/unstable/cluster/internal/entityReaper.js.map +1 -1
- package/dist/unstable/cluster/internal/hash.js.map +1 -1
- package/dist/unstable/cluster/internal/interruptors.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceMap.js +2 -2
- package/dist/unstable/cluster/internal/resourceMap.js.map +1 -1
- package/dist/unstable/cluster/internal/resourceRef.js +17 -0
- package/dist/unstable/cluster/internal/resourceRef.js.map +1 -1
- package/dist/unstable/cluster/internal/shardLock.d.ts +2 -0
- package/dist/unstable/cluster/internal/shardLock.d.ts.map +1 -0
- package/dist/unstable/cluster/internal/shardLock.js +4 -0
- package/dist/unstable/cluster/internal/shardLock.js.map +1 -0
- package/dist/unstable/devtools/DevTools.js.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.js +7 -2
- package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.d.ts +20 -20
- package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.js +8 -5
- package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
- package/dist/unstable/devtools/DevToolsServer.js.map +1 -1
- package/dist/unstable/devtools/index.js.map +1 -1
- package/dist/unstable/encoding/Ini.d.ts +20 -0
- package/dist/unstable/encoding/Ini.d.ts.map +1 -0
- package/dist/unstable/encoding/Ini.js +153 -0
- package/dist/unstable/encoding/Ini.js.map +1 -0
- package/dist/unstable/encoding/Msgpack.d.ts +2 -1
- package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
- package/dist/unstable/encoding/Msgpack.js +31 -19
- package/dist/unstable/encoding/Msgpack.js.map +1 -1
- package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
- package/dist/unstable/encoding/Ndjson.js +7 -1
- package/dist/unstable/encoding/Ndjson.js.map +1 -1
- package/dist/unstable/encoding/Sse.d.ts +72 -8
- package/dist/unstable/encoding/Sse.d.ts.map +1 -1
- package/dist/unstable/encoding/Sse.js +72 -31
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/encoding/Toml.d.ts +19 -0
- package/dist/unstable/encoding/Toml.d.ts.map +1 -0
- package/dist/unstable/encoding/Toml.js +434 -0
- package/dist/unstable/encoding/Toml.js.map +1 -0
- package/dist/unstable/encoding/Yaml.d.ts +19 -0
- package/dist/unstable/encoding/Yaml.d.ts.map +1 -0
- package/dist/unstable/encoding/Yaml.js +461 -0
- package/dist/unstable/encoding/Yaml.js.map +1 -0
- package/dist/unstable/encoding/index.d.ts +12 -0
- package/dist/unstable/encoding/index.d.ts.map +1 -1
- package/dist/unstable/encoding/index.js +12 -0
- package/dist/unstable/encoding/index.js.map +1 -1
- package/dist/unstable/eventlog/Event.d.ts +20 -20
- package/dist/unstable/eventlog/Event.js.map +1 -1
- package/dist/unstable/eventlog/EventGroup.d.ts +4 -4
- package/dist/unstable/eventlog/EventGroup.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +17 -17
- package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventJournal.js +27 -19
- package/dist/unstable/eventlog/EventJournal.js.map +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts +3 -3
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +18 -14
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.d.ts +8 -7
- package/dist/unstable/eventlog/EventLogEncryption.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.js +16 -14
- package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.d.ts +31 -31
- package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.js +12 -8
- package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +15 -15
- package/dist/unstable/eventlog/EventLogRemote.js +5 -5
- package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.d.ts +11 -2
- package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.js +45 -21
- package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +4 -4
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.js +16 -7
- package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +5 -5
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js +15 -7
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.js +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/SqlEventJournal.js +3 -6
- package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +3 -3
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
- package/dist/unstable/eventlog/index.js.map +1 -1
- package/dist/unstable/eventlog/internal/identityRootSecretDerivation.js.map +1 -1
- package/dist/unstable/http/Cookies.d.ts +2 -2
- package/dist/unstable/http/Cookies.d.ts.map +1 -1
- package/dist/unstable/http/Cookies.js +54 -40
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/Etag.d.ts +1 -1
- package/dist/unstable/http/Etag.js +1 -1
- package/dist/unstable/http/Etag.js.map +1 -1
- package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/unstable/http/FetchHttpClient.js.map +1 -1
- package/dist/unstable/http/FindMyWay/internal/queryString.d.ts +11 -0
- package/dist/unstable/http/FindMyWay/internal/queryString.d.ts.map +1 -0
- package/dist/unstable/http/FindMyWay/internal/queryString.js +259 -0
- package/dist/unstable/http/FindMyWay/internal/queryString.js.map +1 -0
- package/dist/unstable/http/FindMyWay/internal/router.d.ts +2 -0
- package/dist/unstable/http/FindMyWay/internal/router.d.ts.map +1 -0
- package/dist/unstable/http/FindMyWay/internal/router.js +665 -0
- package/dist/unstable/http/FindMyWay/internal/router.js.map +1 -0
- package/dist/unstable/http/FindMyWay.d.ts +33 -8
- package/dist/unstable/http/FindMyWay.d.ts.map +1 -1
- package/dist/unstable/http/FindMyWay.js +4 -7
- package/dist/unstable/http/FindMyWay.js.map +1 -1
- package/dist/unstable/http/Headers.d.ts +2 -2
- package/dist/unstable/http/Headers.js +10 -10
- package/dist/unstable/http/Headers.js.map +1 -1
- package/dist/unstable/http/HttpBody.d.ts +5 -3
- package/dist/unstable/http/HttpBody.d.ts.map +1 -1
- package/dist/unstable/http/HttpBody.js +11 -5
- package/dist/unstable/http/HttpBody.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +110 -47
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +79 -36
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientError.js +1 -1
- package/dist/unstable/http/HttpClientError.js.map +1 -1
- package/dist/unstable/http/HttpClientRequest.d.ts +44 -0
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +16 -12
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpClientResponse.d.ts +4 -4
- package/dist/unstable/http/HttpClientResponse.js +3 -18
- package/dist/unstable/http/HttpClientResponse.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts +7 -9
- package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
- package/dist/unstable/http/HttpEffect.js +7 -8
- package/dist/unstable/http/HttpEffect.js.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
- package/dist/unstable/http/HttpMethod.d.ts +6 -9
- package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
- package/dist/unstable/http/HttpMethod.js +6 -9
- package/dist/unstable/http/HttpMethod.js.map +1 -1
- package/dist/unstable/http/HttpMiddleware.d.ts +75 -9
- package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/unstable/http/HttpMiddleware.js +164 -39
- package/dist/unstable/http/HttpMiddleware.js.map +1 -1
- package/dist/unstable/http/HttpPlatform.d.ts +76 -0
- package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
- package/dist/unstable/http/HttpPlatform.js +53 -3
- package/dist/unstable/http/HttpPlatform.js.map +1 -1
- package/dist/unstable/http/HttpRouter.d.ts +91 -92
- package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
- package/dist/unstable/http/HttpRouter.js +78 -79
- package/dist/unstable/http/HttpRouter.js.map +1 -1
- package/dist/unstable/http/HttpServer.d.ts +13 -13
- package/dist/unstable/http/HttpServer.js +6 -6
- package/dist/unstable/http/HttpServer.js.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +2 -2
- package/dist/unstable/http/HttpServerError.js +2 -2
- package/dist/unstable/http/HttpServerError.js.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts +4 -4
- package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRequest.js +23 -15
- package/dist/unstable/http/HttpServerRequest.js.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts +22 -0
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +17 -5
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/HttpStaticServer.d.ts +35 -7
- package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
- package/dist/unstable/http/HttpStaticServer.js +35 -7
- package/dist/unstable/http/HttpStaticServer.js.map +1 -1
- package/dist/unstable/http/HttpTraceContext.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +28 -9
- package/dist/unstable/http/Multipart.d.ts.map +1 -1
- package/dist/unstable/http/Multipart.js +65 -35
- package/dist/unstable/http/Multipart.js.map +1 -1
- package/dist/unstable/http/MultipartParser/HeadersParser.d.ts +53 -0
- package/dist/unstable/http/MultipartParser/HeadersParser.d.ts.map +1 -0
- package/dist/unstable/http/MultipartParser/HeadersParser.js +14 -0
- package/dist/unstable/http/MultipartParser/HeadersParser.js.map +1 -0
- package/dist/unstable/http/MultipartParser/Search.d.ts +11 -0
- package/dist/unstable/http/MultipartParser/Search.d.ts.map +1 -0
- package/dist/unstable/http/MultipartParser/Search.js +14 -0
- package/dist/unstable/http/MultipartParser/Search.js.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/contentType.d.ts +5 -0
- package/dist/unstable/http/MultipartParser/internal/contentType.d.ts.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/contentType.js +82 -0
- package/dist/unstable/http/MultipartParser/internal/contentType.js.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/headers.d.ts +3 -0
- package/dist/unstable/http/MultipartParser/internal/headers.d.ts.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/headers.js +208 -0
- package/dist/unstable/http/MultipartParser/internal/headers.js.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/multipart.d.ts +8 -0
- package/dist/unstable/http/MultipartParser/internal/multipart.d.ts.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/multipart.js +241 -0
- package/dist/unstable/http/MultipartParser/internal/multipart.js.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/search.d.ts +5 -0
- package/dist/unstable/http/MultipartParser/internal/search.d.ts.map +1 -0
- package/dist/unstable/http/MultipartParser/internal/search.js +120 -0
- package/dist/unstable/http/MultipartParser/internal/search.js.map +1 -0
- package/dist/unstable/http/MultipartParser.d.ts +98 -0
- package/dist/unstable/http/MultipartParser.d.ts.map +1 -0
- package/dist/unstable/http/MultipartParser.js +23 -0
- package/dist/unstable/http/MultipartParser.js.map +1 -0
- package/dist/unstable/http/Template.d.ts.map +1 -1
- package/dist/unstable/http/Template.js +3 -3
- package/dist/unstable/http/Template.js.map +1 -1
- package/dist/unstable/http/Url.d.ts +33 -63
- package/dist/unstable/http/Url.d.ts.map +1 -1
- package/dist/unstable/http/Url.js +14 -28
- package/dist/unstable/http/Url.js.map +1 -1
- package/dist/unstable/http/UrlParams.d.ts +10 -18
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +26 -31
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/http/index.d.ts +1 -1
- package/dist/unstable/http/index.d.ts.map +1 -1
- package/dist/unstable/http/index.js +1 -1
- package/dist/unstable/http/index.js.map +1 -1
- package/dist/unstable/http/internal/compression.d.ts +2 -0
- package/dist/unstable/http/internal/compression.d.ts.map +1 -0
- package/dist/unstable/http/internal/compression.js +155 -0
- package/dist/unstable/http/internal/compression.js.map +1 -0
- package/dist/unstable/http/internal/httpBody.d.ts +2 -0
- package/dist/unstable/http/internal/httpBody.d.ts.map +1 -0
- package/dist/unstable/http/internal/httpBody.js +10 -0
- package/dist/unstable/http/internal/httpBody.js.map +1 -0
- package/dist/unstable/http/internal/preResponseHandler.js.map +1 -1
- package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js +9 -9
- package/dist/unstable/httpapi/HttpApi.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +82 -30
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts +4 -5
- package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +89 -51
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +48 -46
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.js +73 -16
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +18 -18
- package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.js +30 -30
- package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.d.ts +15 -15
- package/dist/unstable/httpapi/HttpApiGroup.js +2 -2
- package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +71 -24
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js +57 -10
- package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.d.ts +0 -12
- package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.d.ts +225 -6
- package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.js +174 -4
- package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts +21 -13
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +110 -57
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/httpapi/index.js.map +1 -1
- package/dist/unstable/httpapi/internal/html.js.map +1 -1
- package/dist/unstable/httpapi/internal/httpApiScalar.js.map +1 -1
- package/dist/unstable/httpapi/internal/httpApiSwagger.js.map +1 -1
- package/dist/unstable/httpapi/internal/mediaType.js.map +1 -1
- package/dist/unstable/observability/Otlp.js.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts +71 -2
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +86 -7
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.d.ts +4 -3
- package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpLogger.js +4 -4
- package/dist/unstable/observability/OtlpLogger.js.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts +11 -4
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.js +31 -15
- package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
- package/dist/unstable/observability/OtlpResource.d.ts +16 -7
- package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpResource.js +21 -12
- package/dist/unstable/observability/OtlpResource.js.map +1 -1
- package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
- package/dist/unstable/observability/OtlpTracer.d.ts +4 -3
- package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.js +3 -3
- package/dist/unstable/observability/OtlpTracer.js.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.d.ts +13 -4
- package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.js +10 -3
- package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
- package/dist/unstable/observability/index.js.map +1 -1
- package/dist/unstable/observability/internal/otlpEnv.js +1 -1
- package/dist/unstable/observability/internal/otlpEnv.js.map +1 -1
- package/dist/unstable/observability/internal/otlpProtobuf.js.map +1 -1
- package/dist/unstable/observability/internal/protobuf.js +3 -0
- package/dist/unstable/observability/internal/protobuf.js.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.d.ts +8 -3
- package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.js +22 -13
- package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
- package/dist/unstable/persistence/Persistable.d.ts +8 -8
- package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistable.js +2 -1
- package/dist/unstable/persistence/Persistable.js.map +1 -1
- package/dist/unstable/persistence/PersistedCache.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts +6 -6
- package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.js +15 -15
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/Persistence.d.ts +3 -3
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +108 -22
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +47 -26
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +31 -47
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/persistence/Redis.d.ts +2 -2
- package/dist/unstable/persistence/Redis.d.ts.map +1 -1
- package/dist/unstable/persistence/Redis.js +4 -4
- package/dist/unstable/persistence/Redis.js.map +1 -1
- package/dist/unstable/persistence/index.js.map +1 -1
- package/dist/unstable/process/ChildProcess.d.ts +72 -21
- package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcess.js +14 -5
- package/dist/unstable/process/ChildProcess.js.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts +21 -10
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js +4 -2
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/process/index.js.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.d.ts +8 -8
- package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.js +14 -13
- package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +131 -30
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +53 -34
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +4 -1
- package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/unstable/reactivity/AtomRef.js.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +25 -4
- package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +4 -1
- package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
- package/dist/unstable/reactivity/Hydration.d.ts +1 -1
- package/dist/unstable/reactivity/Hydration.js +1 -1
- package/dist/unstable/reactivity/Hydration.js.map +1 -1
- package/dist/unstable/reactivity/Reactivity.js.map +1 -1
- package/dist/unstable/reactivity/index.js.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts +35 -33
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/Rpc.js +4 -2
- package/dist/unstable/rpc/Rpc.js.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts +26 -12
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +40 -22
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcClientError.js +2 -2
- package/dist/unstable/rpc/RpcClientError.js.map +1 -1
- package/dist/unstable/rpc/RpcGroup.d.ts +8 -8
- package/dist/unstable/rpc/RpcGroup.js +1 -1
- package/dist/unstable/rpc/RpcGroup.js.map +1 -1
- package/dist/unstable/rpc/RpcMessage.d.ts +31 -30
- package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcMessage.js +6 -6
- package/dist/unstable/rpc/RpcMessage.js.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.d.ts +10 -10
- package/dist/unstable/rpc/RpcMiddleware.js +1 -1
- package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
- package/dist/unstable/rpc/RpcSchema.d.ts +4 -4
- package/dist/unstable/rpc/RpcSchema.js +3 -3
- package/dist/unstable/rpc/RpcSchema.js.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.d.ts +58 -7
- package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.js +177 -96
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts +13 -13
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +20 -15
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/rpc/RpcTest.js.map +1 -1
- package/dist/unstable/rpc/RpcWorker.d.ts +5 -5
- package/dist/unstable/rpc/RpcWorker.js +4 -4
- package/dist/unstable/rpc/RpcWorker.js.map +1 -1
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/rpc/index.js.map +1 -1
- package/dist/unstable/schema/Model.d.ts +53 -51
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/Model.js +35 -33
- package/dist/unstable/schema/Model.js.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +11 -12
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.js +28 -17
- package/dist/unstable/schema/VariantSchema.js.map +1 -1
- package/dist/unstable/schema/index.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +12 -4
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +38 -17
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/socket/SocketServer.js.map +1 -1
- package/dist/unstable/socket/index.js.map +1 -1
- package/dist/unstable/sql/Migrator.d.ts +9 -1
- package/dist/unstable/sql/Migrator.d.ts.map +1 -1
- package/dist/unstable/sql/Migrator.js +15 -2
- package/dist/unstable/sql/Migrator.js.map +1 -1
- package/dist/unstable/sql/SqlClient.d.ts +1 -1
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlClient.js +8 -4
- package/dist/unstable/sql/SqlClient.js.map +1 -1
- package/dist/unstable/sql/SqlConnection.js.map +1 -1
- package/dist/unstable/sql/SqlError.d.ts +2 -2
- package/dist/unstable/sql/SqlError.js +15 -15
- package/dist/unstable/sql/SqlError.js.map +1 -1
- package/dist/unstable/sql/SqlModel.d.ts +2 -2
- package/dist/unstable/sql/SqlModel.js +2 -2
- package/dist/unstable/sql/SqlModel.js.map +1 -1
- package/dist/unstable/sql/SqlResolver.d.ts +5 -5
- package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
- package/dist/unstable/sql/SqlResolver.js +30 -24
- package/dist/unstable/sql/SqlResolver.js.map +1 -1
- package/dist/unstable/sql/SqlSchema.js.map +1 -1
- package/dist/unstable/sql/SqlStream.js.map +1 -1
- package/dist/unstable/sql/Statement.d.ts +6 -6
- package/dist/unstable/sql/Statement.d.ts.map +1 -1
- package/dist/unstable/sql/Statement.js +30 -27
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/sql/index.js.map +1 -1
- package/dist/unstable/workers/Transferable.d.ts +1 -1
- package/dist/unstable/workers/Transferable.js +1 -1
- package/dist/unstable/workers/Transferable.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts +2 -2
- package/dist/unstable/workers/Worker.d.ts.map +1 -1
- package/dist/unstable/workers/Worker.js +13 -14
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workers/WorkerError.d.ts +7 -7
- package/dist/unstable/workers/WorkerError.js +11 -11
- package/dist/unstable/workers/WorkerError.js.map +1 -1
- package/dist/unstable/workers/WorkerRunner.d.ts +1 -1
- package/dist/unstable/workers/WorkerRunner.js +1 -1
- package/dist/unstable/workers/WorkerRunner.js.map +1 -1
- package/dist/unstable/workers/index.js.map +1 -1
- package/dist/unstable/workflow/Activity.d.ts +2 -2
- package/dist/unstable/workflow/Activity.js +2 -2
- package/dist/unstable/workflow/Activity.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts +1 -1
- package/dist/unstable/workflow/DurableClock.js +1 -1
- package/dist/unstable/workflow/DurableClock.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.d.ts +10 -10
- package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js +13 -8
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/DurableQueue.d.ts +22 -20
- package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableQueue.js +22 -20
- package/dist/unstable/workflow/DurableQueue.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +21 -21
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +13 -14
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +26 -3
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +72 -6
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxy.d.ts +4 -2
- package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowProxy.js +4 -2
- package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
- package/dist/unstable/workflow/index.js.map +1 -1
- package/dist/unstable/workflow/internal/crypto.js.map +1 -1
- package/package.json +10 -14
- package/src/Array.ts +1068 -1070
- package/src/BigDecimal.ts +433 -756
- package/src/BigInt.ts +213 -269
- package/src/Boolean.ts +146 -188
- package/src/Brand.ts +4 -4
- package/src/Cache.ts +469 -851
- package/src/Cause.ts +167 -277
- package/src/Channel.ts +982 -831
- package/src/ChannelSchema.ts +1 -1
- package/src/Chunk.ts +841 -1181
- package/src/Clock.ts +181 -49
- package/src/Combiner.ts +20 -33
- package/src/Config.ts +642 -335
- package/src/ConfigProvider.ts +267 -135
- package/src/Console.ts +289 -39
- package/src/Context.ts +323 -404
- package/src/Cron.ts +271 -219
- package/src/Crypto.ts +30 -23
- package/src/Data.ts +63 -82
- package/src/DateTime.ts +564 -660
- package/src/Deferred.ts +259 -258
- package/src/Duration.ts +244 -311
- package/src/Effect.ts +3215 -3394
- package/src/Encoding.ts +22 -40
- package/src/Equal.ts +59 -41
- package/src/Equivalence.ts +103 -105
- package/src/ErrorReporter.ts +51 -27
- package/src/ExecutionPlan.ts +91 -56
- package/src/Exit.ts +116 -192
- package/src/Fiber.ts +82 -149
- package/src/FiberHandle.ts +155 -107
- package/src/FiberMap.ts +225 -174
- package/src/FiberSet.ts +125 -83
- package/src/FileSystem.ts +156 -264
- package/src/Filter.ts +61 -33
- package/src/Formatter.ts +69 -76
- package/src/Function.ts +119 -151
- package/src/Graph.ts +416 -770
- package/src/HKT.ts +12 -6
- package/src/Hash.ts +52 -83
- package/src/HashMap.ts +319 -411
- package/src/HashRing.ts +1 -0
- package/src/HashSet.ts +177 -284
- package/src/Inspectable.ts +22 -20
- package/src/Iterable.ts +633 -797
- package/src/JsonPatch.ts +60 -113
- package/src/JsonPointer.ts +8 -8
- package/src/JsonSchema.ts +408 -251
- package/src/Latch.ts +23 -35
- package/src/Layer.ts +366 -265
- package/src/LayerMap.ts +49 -29
- package/src/LayerRef.ts +6 -2
- package/src/LogLevel.ts +114 -214
- package/src/Logger.ts +348 -700
- package/src/ManagedRuntime.ts +20 -5
- package/src/Match.ts +217 -252
- package/src/Metric.ts +520 -1092
- package/src/MutableHashMap.ts +218 -255
- package/src/MutableHashSet.ts +84 -89
- package/src/MutableList.ts +77 -370
- package/src/MutableRef.ts +420 -243
- package/src/Newtype.ts +21 -14
- package/src/NonEmptyIterable.ts +7 -137
- package/src/Number.ts +196 -233
- package/src/Optic.ts +303 -441
- package/src/Option.ts +449 -813
- package/src/Order.ts +109 -109
- package/src/Ordering.ts +20 -23
- package/src/PartitionedSemaphore.ts +1 -4
- package/src/Path.ts +38 -41
- package/src/Pipeable.ts +6 -5
- package/src/PlatformError.ts +4 -4
- package/src/Pool.ts +4 -2
- package/src/Predicate.ts +200 -181
- package/src/PrimaryKey.ts +7 -7
- package/src/PubSub.ts +526 -552
- package/src/Pull.ts +24 -18
- package/src/Queue.ts +204 -165
- package/src/Random.ts +49 -74
- package/src/RcMap.ts +121 -63
- package/src/RcRef.ts +24 -13
- package/src/Record.ts +387 -487
- package/src/Redactable.ts +10 -3
- package/src/Redacted.ts +25 -25
- package/src/Reducer.ts +8 -15
- package/src/Ref.ts +221 -361
- package/src/References.ts +102 -214
- package/src/RegExp.ts +10 -14
- package/src/Request.ts +36 -28
- package/src/RequestResolver.ts +202 -91
- package/src/Result.ts +314 -485
- package/src/Runtime.ts +50 -75
- package/src/Schedule.ts +311 -1737
- package/src/Scheduler.ts +20 -7
- package/src/Schema.ts +3475 -1913
- package/src/SchemaAST.ts +902 -573
- package/src/SchemaGetter.ts +351 -233
- package/src/SchemaIssue.ts +367 -334
- package/src/SchemaParser.ts +254 -148
- package/src/SchemaRepresentation.ts +732 -3414
- package/src/SchemaTransformation.ts +186 -97
- package/src/Scope.ts +123 -151
- package/src/ScopedCache.ts +1 -1
- package/src/ScopedRef.ts +6 -4
- package/src/Semaphore.ts +157 -54
- package/src/Sink.ts +129 -114
- package/src/Stdio.ts +24 -5
- package/src/Stream.ts +2745 -3173
- package/src/String.ts +275 -312
- package/src/Struct.ts +114 -118
- package/src/SubscriptionRef.ts +284 -252
- package/src/Symbol.ts +3 -3
- package/src/SynchronizedRef.ts +1 -1
- package/src/Terminal.ts +3 -3
- package/src/Tracer.ts +102 -55
- package/src/Trie.ts +287 -679
- package/src/Tuple.ts +99 -131
- package/src/TxChunk.ts +201 -121
- package/src/TxDeferred.ts +62 -46
- package/src/TxHashMap.ts +645 -799
- package/src/TxHashSet.ts +443 -356
- package/src/TxPriorityQueue.ts +130 -98
- package/src/TxPubSub.ts +107 -80
- package/src/TxQueue.ts +215 -184
- package/src/TxReentrantLock.ts +136 -101
- package/src/TxRef.ts +51 -32
- package/src/TxSemaphore.ts +129 -95
- package/src/TxSubscriptionRef.ts +97 -70
- package/src/Types.ts +127 -70
- package/src/Unify.ts +45 -65
- package/src/Utils.ts +23 -16
- package/src/index.ts +0 -10
- package/src/internal/core.ts +6 -5
- package/src/internal/dateTime.ts +7 -1
- package/src/internal/effect.ts +304 -134
- package/src/internal/executionPlan.ts +106 -10
- package/src/internal/hashMap.ts +20 -14
- package/src/internal/matcher.ts +3 -3
- package/src/internal/persistence.ts +2 -0
- package/src/internal/rcRef.ts +24 -16
- package/src/internal/record.ts +11 -7
- package/src/internal/references.ts +3 -7
- package/src/internal/schedule.ts +4 -4
- package/src/internal/schema/annotations.ts +48 -1
- package/src/internal/schema/fromJsonSchemaDocument.ts +977 -0
- package/src/internal/schema/fromRepresentation.ts +339 -0
- package/src/internal/schema/parser.ts +22 -0
- package/src/internal/schema/schema.ts +46 -63
- package/src/internal/schema/{arbitrary.ts → toArbitrary.ts} +9 -81
- package/src/internal/schema/toCodeDocument.ts +572 -0
- package/src/internal/schema/{equivalence.ts → toEquivalence.ts} +12 -7
- package/src/internal/schema/toJsonSchemaDocument.ts +549 -0
- package/src/internal/schema/toRepresentation.ts +404 -0
- package/src/internal/stackTraceLimit.ts +3 -7
- package/src/internal/trie.ts +21 -12
- package/src/testing/FastCheck.ts +8 -7
- package/src/testing/TestClock.ts +86 -32
- package/src/testing/TestConsole.ts +32 -31
- package/src/testing/TestSchema.ts +40 -40
- package/src/unstable/ai/AiError.ts +119 -141
- package/src/unstable/ai/AnthropicStructuredOutput.ts +103 -334
- package/src/unstable/ai/Chat.ts +133 -98
- package/src/unstable/ai/EmbeddingModel.ts +1 -1
- package/src/unstable/ai/IdGenerator.ts +32 -28
- package/src/unstable/ai/LanguageModel.ts +141 -97
- package/src/unstable/ai/McpProtocol.ts +48 -0
- package/src/unstable/ai/McpSchema.ts +92 -81
- package/src/unstable/ai/McpServer.ts +1057 -303
- package/src/unstable/ai/Model.ts +9 -20
- package/src/unstable/ai/OpenAiStructuredOutput.ts +231 -396
- package/src/unstable/ai/Prompt.ts +212 -63
- package/src/unstable/ai/Response.ts +52 -38
- package/src/unstable/ai/Telemetry.ts +46 -13
- package/src/unstable/ai/Tokenizer.ts +14 -3
- package/src/unstable/ai/Tool.ts +81 -48
- package/src/unstable/ai/Toolkit.ts +45 -15
- package/src/unstable/ai/index.ts +5 -0
- package/src/unstable/ai/internal/codec-transformer.ts +13 -7
- package/src/unstable/ai/internal/mcpProtocol.ts +85 -0
- package/src/unstable/ai/internal/mcpProtocolRegistry.ts +70 -0
- package/src/unstable/ai/internal/structured-output.ts +453 -0
- package/src/unstable/cli/Argument.ts +279 -72
- package/src/unstable/cli/CliError.ts +159 -91
- package/src/unstable/cli/CliOutput.ts +44 -58
- package/src/unstable/cli/Command.ts +764 -124
- package/src/unstable/cli/Flag.ts +418 -138
- package/src/unstable/cli/GlobalFlag.ts +1 -1
- package/src/unstable/cli/HelpDoc.ts +12 -4
- package/src/unstable/cli/Param.ts +336 -100
- package/src/unstable/cli/Primitive.ts +383 -156
- package/src/unstable/cli/Prompt.ts +64 -34
- package/src/unstable/cli/internal/ansi.ts +2 -2
- package/src/unstable/cli/internal/command.ts +28 -15
- package/src/unstable/cli/internal/completions/bash.ts +59 -9
- package/src/unstable/cli/internal/completions/descriptor.ts +14 -20
- package/src/unstable/cli/internal/completions/fish.ts +5 -7
- package/src/unstable/cli/internal/config.ts +8 -10
- package/src/unstable/cli/internal/help.ts +4 -2
- package/src/unstable/cli/internal/lexer.ts +8 -2
- package/src/unstable/cli/internal/parser.ts +5 -5
- package/src/unstable/cli/internal/wizard.ts +2 -2
- package/src/unstable/cluster/ClusterError.ts +7 -7
- package/src/unstable/cluster/ClusterSchema.ts +8 -8
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +36 -20
- package/src/unstable/cluster/Entity.ts +23 -19
- package/src/unstable/cluster/EntityProxy.ts +16 -7
- package/src/unstable/cluster/EntityResource.ts +2 -2
- package/src/unstable/cluster/Envelope.ts +5 -4
- package/src/unstable/cluster/HttpRunner.ts +6 -4
- package/src/unstable/cluster/Message.ts +9 -9
- package/src/unstable/cluster/MessageStorage.ts +24 -20
- package/src/unstable/cluster/Reply.ts +26 -7
- package/src/unstable/cluster/Runner.ts +1 -1
- package/src/unstable/cluster/RunnerAddress.ts +1 -1
- package/src/unstable/cluster/RunnerHealth.ts +1 -1
- package/src/unstable/cluster/RunnerServer.ts +45 -18
- package/src/unstable/cluster/RunnerStorage.ts +11 -9
- package/src/unstable/cluster/Runners.ts +48 -26
- package/src/unstable/cluster/ShardId.ts +1 -1
- package/src/unstable/cluster/Sharding.ts +223 -55
- package/src/unstable/cluster/ShardingConfig.ts +8 -4
- package/src/unstable/cluster/SingleRunner.ts +4 -2
- package/src/unstable/cluster/SingletonAddress.ts +1 -1
- package/src/unstable/cluster/Snowflake.ts +8 -8
- package/src/unstable/cluster/SqlMessageStorage.ts +84 -36
- package/src/unstable/cluster/SqlRunnerStorage.ts +223 -133
- package/src/unstable/cluster/internal/entityManager.ts +43 -26
- package/src/unstable/cluster/internal/resourceMap.ts +5 -2
- package/src/unstable/cluster/internal/resourceRef.ts +27 -5
- package/src/unstable/cluster/internal/shardLock.ts +9 -0
- package/src/unstable/devtools/DevToolsClient.ts +3 -2
- package/src/unstable/devtools/DevToolsSchema.ts +10 -5
- package/src/unstable/encoding/Ini.ts +174 -0
- package/src/unstable/encoding/Msgpack.ts +61 -40
- package/src/unstable/encoding/Ndjson.ts +9 -1
- package/src/unstable/encoding/Sse.ts +109 -37
- package/src/unstable/encoding/Toml.ts +504 -0
- package/src/unstable/encoding/Yaml.ts +541 -0
- package/src/unstable/encoding/index.ts +15 -0
- package/src/unstable/eventlog/Event.ts +20 -20
- package/src/unstable/eventlog/EventGroup.ts +4 -4
- package/src/unstable/eventlog/EventJournal.ts +30 -22
- package/src/unstable/eventlog/EventLog.ts +24 -14
- package/src/unstable/eventlog/EventLogEncryption.ts +17 -18
- package/src/unstable/eventlog/EventLogMessage.ts +15 -9
- package/src/unstable/eventlog/EventLogRemote.ts +5 -5
- package/src/unstable/eventlog/EventLogServer.ts +41 -7
- package/src/unstable/eventlog/EventLogServerEncrypted.ts +15 -7
- package/src/unstable/eventlog/EventLogServerUnencrypted.ts +15 -7
- package/src/unstable/eventlog/EventLogSessionAuth.ts +1 -1
- package/src/unstable/eventlog/SqlEventJournal.ts +8 -6
- package/src/unstable/eventlog/SqlEventLogServerEncrypted.ts +1 -1
- package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +6 -3
- package/src/unstable/http/Cookies.ts +64 -45
- package/src/unstable/http/Etag.ts +1 -1
- package/src/unstable/http/FetchHttpClient.ts +3 -1
- package/src/unstable/http/FindMyWay/internal/queryString.ts +420 -0
- package/src/unstable/http/FindMyWay/internal/router.ts +950 -0
- package/src/unstable/http/FindMyWay.ts +65 -6
- package/src/unstable/http/Headers.ts +10 -10
- package/src/unstable/http/HttpBody.ts +20 -5
- package/src/unstable/http/HttpClient.ts +215 -78
- package/src/unstable/http/HttpClientError.ts +1 -1
- package/src/unstable/http/HttpClientRequest.ts +59 -12
- package/src/unstable/http/HttpClientResponse.ts +5 -21
- package/src/unstable/http/HttpEffect.ts +20 -19
- package/src/unstable/http/HttpMethod.ts +6 -9
- package/src/unstable/http/HttpMiddleware.ts +202 -39
- package/src/unstable/http/HttpPlatform.ts +129 -6
- package/src/unstable/http/HttpRouter.ts +109 -101
- package/src/unstable/http/HttpServer.ts +13 -13
- package/src/unstable/http/HttpServerError.ts +2 -2
- package/src/unstable/http/HttpServerRequest.ts +31 -17
- package/src/unstable/http/HttpServerResponse.ts +38 -6
- package/src/unstable/http/HttpStaticServer.ts +35 -7
- package/src/unstable/http/Multipart.ts +67 -36
- package/src/unstable/http/MultipartParser/HeadersParser.ts +68 -0
- package/src/unstable/http/MultipartParser/Search.ts +17 -0
- package/src/unstable/http/MultipartParser/internal/contentType.ts +103 -0
- package/src/unstable/http/MultipartParser/internal/headers.ts +244 -0
- package/src/unstable/http/MultipartParser/internal/multipart.ts +279 -0
- package/src/unstable/http/MultipartParser/internal/search.ts +167 -0
- package/src/unstable/http/MultipartParser.ts +115 -0
- package/src/unstable/http/Template.ts +7 -6
- package/src/unstable/http/Url.ts +33 -63
- package/src/unstable/http/UrlParams.ts +27 -32
- package/src/unstable/http/index.ts +1 -1
- package/src/unstable/http/internal/compression.ts +196 -0
- package/src/unstable/http/internal/httpBody.ts +15 -0
- package/src/unstable/httpapi/HttpApi.ts +10 -11
- package/src/unstable/httpapi/HttpApiBuilder.ts +154 -33
- package/src/unstable/httpapi/HttpApiClient.ts +142 -61
- package/src/unstable/httpapi/HttpApiEndpoint.ts +159 -71
- package/src/unstable/httpapi/HttpApiError.ts +46 -52
- package/src/unstable/httpapi/HttpApiGroup.ts +17 -17
- package/src/unstable/httpapi/HttpApiMiddleware.ts +71 -24
- package/src/unstable/httpapi/HttpApiScalar.ts +0 -12
- package/src/unstable/httpapi/HttpApiSchema.ts +359 -6
- package/src/unstable/httpapi/OpenApi.ts +153 -62
- package/src/unstable/observability/OtlpExporter.ts +130 -12
- package/src/unstable/observability/OtlpLogger.ts +8 -6
- package/src/unstable/observability/OtlpMetrics.ts +42 -21
- package/src/unstable/observability/OtlpResource.ts +26 -17
- package/src/unstable/observability/OtlpTracer.ts +9 -5
- package/src/unstable/observability/PrometheusMetrics.ts +13 -4
- package/src/unstable/observability/internal/otlpEnv.ts +1 -1
- package/src/unstable/observability/internal/protobuf.ts +3 -0
- package/src/unstable/persistence/KeyValueStore.ts +72 -49
- package/src/unstable/persistence/Persistable.ts +11 -10
- package/src/unstable/persistence/PersistedQueue.ts +18 -15
- package/src/unstable/persistence/Persistence.ts +153 -26
- package/src/unstable/persistence/RateLimiter.ts +79 -45
- package/src/unstable/persistence/Redis.ts +5 -5
- package/src/unstable/process/ChildProcess.ts +72 -21
- package/src/unstable/process/ChildProcessSpawner.ts +22 -11
- package/src/unstable/reactivity/AsyncResult.ts +23 -18
- package/src/unstable/reactivity/Atom.ts +161 -47
- package/src/unstable/reactivity/AtomHttpApi.ts +5 -4
- package/src/unstable/reactivity/AtomRegistry.ts +25 -4
- package/src/unstable/reactivity/AtomRpc.ts +5 -4
- package/src/unstable/reactivity/Hydration.ts +1 -1
- package/src/unstable/rpc/Rpc.ts +35 -33
- package/src/unstable/rpc/RpcClient.ts +65 -29
- package/src/unstable/rpc/RpcClientError.ts +2 -2
- package/src/unstable/rpc/RpcGroup.ts +8 -8
- package/src/unstable/rpc/RpcMessage.ts +31 -30
- package/src/unstable/rpc/RpcMiddleware.ts +10 -10
- package/src/unstable/rpc/RpcSchema.ts +4 -4
- package/src/unstable/rpc/RpcSerialization.ts +167 -68
- package/src/unstable/rpc/RpcServer.ts +22 -17
- package/src/unstable/rpc/RpcWorker.ts +5 -5
- package/src/unstable/schema/Model.ts +52 -50
- package/src/unstable/schema/VariantSchema.ts +51 -43
- package/src/unstable/socket/Socket.ts +42 -19
- package/src/unstable/sql/Migrator.ts +22 -9
- package/src/unstable/sql/SqlClient.ts +64 -56
- package/src/unstable/sql/SqlError.ts +15 -15
- package/src/unstable/sql/SqlModel.ts +2 -2
- package/src/unstable/sql/SqlResolver.ts +41 -31
- package/src/unstable/sql/Statement.ts +44 -37
- package/src/unstable/workers/Transferable.ts +1 -1
- package/src/unstable/workers/Worker.ts +15 -16
- package/src/unstable/workers/WorkerError.ts +12 -12
- package/src/unstable/workers/WorkerRunner.ts +1 -1
- package/src/unstable/workflow/Activity.ts +2 -2
- package/src/unstable/workflow/DurableClock.ts +1 -1
- package/src/unstable/workflow/DurableDeferred.ts +18 -13
- package/src/unstable/workflow/DurableQueue.ts +22 -20
- package/src/unstable/workflow/Workflow.ts +23 -26
- package/src/unstable/workflow/WorkflowEngine.ts +111 -8
- package/src/unstable/workflow/WorkflowProxy.ts +4 -2
- package/dist/SchemaError.d.ts +0 -53
- package/dist/SchemaError.d.ts.map +0 -1
- package/dist/SchemaError.js +0 -61
- package/dist/SchemaError.js.map +0 -1
- package/dist/SchemaUtils.d.ts +0 -28
- package/dist/SchemaUtils.d.ts.map +0 -1
- package/dist/SchemaUtils.js +0 -45
- package/dist/SchemaUtils.js.map +0 -1
- package/dist/internal/schema/arbitrary.d.ts +0 -5
- package/dist/internal/schema/arbitrary.d.ts.map +0 -1
- package/dist/internal/schema/arbitrary.js.map +0 -1
- package/dist/internal/schema/equivalence.d.ts +0 -2
- package/dist/internal/schema/equivalence.d.ts.map +0 -1
- package/dist/internal/schema/equivalence.js.map +0 -1
- package/dist/internal/schema/representation.d.ts +0 -2
- package/dist/internal/schema/representation.d.ts.map +0 -1
- package/dist/internal/schema/representation.js +0 -865
- package/dist/internal/schema/representation.js.map +0 -1
- package/dist/internal/version.d.ts +0 -3
- package/dist/internal/version.d.ts.map +0 -1
- package/dist/internal/version.js +0 -2
- package/dist/internal/version.js.map +0 -1
- package/dist/unstable/http/Multipasta/HeadersParser.d.ts +0 -14
- package/dist/unstable/http/Multipasta/HeadersParser.d.ts.map +0 -1
- package/dist/unstable/http/Multipasta/HeadersParser.js +0 -14
- package/dist/unstable/http/Multipasta/HeadersParser.js.map +0 -1
- package/dist/unstable/http/Multipasta/Node.d.ts +0 -14
- package/dist/unstable/http/Multipasta/Node.d.ts.map +0 -1
- package/dist/unstable/http/Multipasta/Node.js +0 -14
- package/dist/unstable/http/Multipasta/Node.js.map +0 -1
- package/dist/unstable/http/Multipasta/Search.d.ts +0 -14
- package/dist/unstable/http/Multipasta/Search.d.ts.map +0 -1
- package/dist/unstable/http/Multipasta/Search.js +0 -14
- package/dist/unstable/http/Multipasta/Search.js.map +0 -1
- package/dist/unstable/http/Multipasta/Web.d.ts +0 -14
- package/dist/unstable/http/Multipasta/Web.d.ts.map +0 -1
- package/dist/unstable/http/Multipasta/Web.js +0 -14
- package/dist/unstable/http/Multipasta/Web.js.map +0 -1
- package/dist/unstable/http/Multipasta.d.ts +0 -15
- package/dist/unstable/http/Multipasta.d.ts.map +0 -1
- package/dist/unstable/http/Multipasta.js +0 -15
- package/dist/unstable/http/Multipasta.js.map +0 -1
- package/src/SchemaError.ts +0 -64
- package/src/SchemaUtils.ts +0 -51
- package/src/internal/schema/representation.ts +0 -795
- package/src/internal/version.ts +0 -2
- package/src/unstable/http/Multipasta/HeadersParser.ts +0 -14
- package/src/unstable/http/Multipasta/Node.ts +0 -14
- package/src/unstable/http/Multipasta/Search.ts +0 -14
- package/src/unstable/http/Multipasta/Web.ts +0 -14
- package/src/unstable/http/Multipasta.ts +0 -15
package/src/Optic.ts
CHANGED
|
@@ -12,14 +12,14 @@
|
|
|
12
12
|
* @since 4.0.0
|
|
13
13
|
*/
|
|
14
14
|
|
|
15
|
-
import {
|
|
16
|
-
import
|
|
15
|
+
import { identity } from "./Function.ts"
|
|
16
|
+
import * as InternalRecord from "./internal/record.ts"
|
|
17
17
|
import * as Option from "./Option.ts"
|
|
18
18
|
import * as Predicate from "./Predicate.ts"
|
|
19
19
|
import * as Result from "./Result.ts"
|
|
20
20
|
import type * as Schema from "./Schema.ts"
|
|
21
21
|
import * as SchemaAST from "./SchemaAST.ts"
|
|
22
|
-
import
|
|
22
|
+
import * as SchemaIssue from "./SchemaIssue.ts"
|
|
23
23
|
import * as Struct from "./Struct.ts"
|
|
24
24
|
import type { IsUnion } from "./Types.ts"
|
|
25
25
|
|
|
@@ -41,7 +41,7 @@ import type { IsUnion } from "./Types.ts"
|
|
|
41
41
|
*
|
|
42
42
|
* **Example** (Converting between Celsius and Fahrenheit)
|
|
43
43
|
*
|
|
44
|
-
* ```ts
|
|
44
|
+
* ```ts import.meta.vitest
|
|
45
45
|
* import { Optic } from "effect"
|
|
46
46
|
*
|
|
47
47
|
* const fahrenheit = Optic.makeIso<number, number>(
|
|
@@ -49,18 +49,16 @@ import type { IsUnion } from "./Types.ts"
|
|
|
49
49
|
* (f) => (f - 32) * 5 / 9
|
|
50
50
|
* )
|
|
51
51
|
*
|
|
52
|
-
*
|
|
53
|
-
* // Output: 212
|
|
52
|
+
* fahrenheit.get(100) // => 212
|
|
54
53
|
*
|
|
55
|
-
*
|
|
56
|
-
* // Output: 0
|
|
54
|
+
* fahrenheit.set(32) // => 0
|
|
57
55
|
* ```
|
|
58
56
|
*
|
|
59
57
|
* @see {@link makeIso} — constructor
|
|
60
58
|
* @see {@link Lens} — when you only need a one-directional focus into a whole
|
|
61
59
|
* @see {@link Prism} — when the focus may not be present
|
|
62
60
|
*
|
|
63
|
-
* @category
|
|
61
|
+
* @category models
|
|
64
62
|
* @since 4.0.0
|
|
65
63
|
*/
|
|
66
64
|
export interface Iso<in out S, in out A> extends Lens<S, A>, Prism<S, A> {}
|
|
@@ -79,7 +77,7 @@ export interface Iso<in out S, in out A> extends Lens<S, A>, Prism<S, A> {}
|
|
|
79
77
|
*
|
|
80
78
|
* **Example** (Wrapping and unwrapping a branded type)
|
|
81
79
|
*
|
|
82
|
-
* ```ts
|
|
80
|
+
* ```ts import.meta.vitest
|
|
83
81
|
* import { Optic } from "effect"
|
|
84
82
|
*
|
|
85
83
|
* type Meters = { readonly value: number }
|
|
@@ -88,11 +86,9 @@ export interface Iso<in out S, in out A> extends Lens<S, A>, Prism<S, A> {}
|
|
|
88
86
|
* (n) => ({ value: n })
|
|
89
87
|
* )
|
|
90
88
|
*
|
|
91
|
-
*
|
|
92
|
-
* // Output: 100
|
|
89
|
+
* meters.get({ value: 100 }) // => 100
|
|
93
90
|
*
|
|
94
|
-
*
|
|
95
|
-
* // Output: { value: 42 }
|
|
91
|
+
* meters.set(42) // => { value: 42 }
|
|
96
92
|
* ```
|
|
97
93
|
*
|
|
98
94
|
* @see {@link Iso} — the type this function returns
|
|
@@ -102,7 +98,7 @@ export interface Iso<in out S, in out A> extends Lens<S, A>, Prism<S, A> {}
|
|
|
102
98
|
* @since 4.0.0
|
|
103
99
|
*/
|
|
104
100
|
export function makeIso<S, A>(get: (s: S) => A, set: (a: A) => S): Iso<S, A> {
|
|
105
|
-
return make(
|
|
101
|
+
return make(primitiveNode("Iso", get, set))
|
|
106
102
|
}
|
|
107
103
|
|
|
108
104
|
/**
|
|
@@ -123,22 +119,21 @@ export function makeIso<S, A>(get: (s: S) => A, set: (a: A) => S): Iso<S, A> {
|
|
|
123
119
|
*
|
|
124
120
|
* **Example** (Focusing on a struct field)
|
|
125
121
|
*
|
|
126
|
-
* ```ts
|
|
122
|
+
* ```ts import.meta.vitest
|
|
127
123
|
* import { Optic } from "effect"
|
|
128
124
|
*
|
|
129
125
|
* type Person = { readonly name: string; readonly age: number }
|
|
130
126
|
*
|
|
131
127
|
* const _name = Optic.id<Person>().key("name")
|
|
132
128
|
*
|
|
133
|
-
*
|
|
134
|
-
* // Output: "Alice"
|
|
129
|
+
* _name.get({ name: "Alice", age: 30 }) // => "Alice"
|
|
135
130
|
* ```
|
|
136
131
|
*
|
|
137
132
|
* @see {@link makeLens} — constructor
|
|
138
133
|
* @see {@link Iso} — when conversion is lossless in both directions
|
|
139
134
|
* @see {@link Optional} — when reading can also fail
|
|
140
135
|
*
|
|
141
|
-
* @category
|
|
136
|
+
* @category models
|
|
142
137
|
* @since 4.0.0
|
|
143
138
|
*/
|
|
144
139
|
export interface Lens<in out S, in out A> extends Optional<S, A> {
|
|
@@ -160,7 +155,7 @@ export interface Lens<in out S, in out A> extends Optional<S, A> {
|
|
|
160
155
|
*
|
|
161
156
|
* **Example** (Focusing on the first element of a pair)
|
|
162
157
|
*
|
|
163
|
-
* ```ts
|
|
158
|
+
* ```ts import.meta.vitest
|
|
164
159
|
* import { Optic } from "effect"
|
|
165
160
|
*
|
|
166
161
|
* const _first = Optic.makeLens<readonly [string, number], string>(
|
|
@@ -168,11 +163,9 @@ export interface Lens<in out S, in out A> extends Optional<S, A> {
|
|
|
168
163
|
* (s, pair) => [s, pair[1]]
|
|
169
164
|
* )
|
|
170
165
|
*
|
|
171
|
-
*
|
|
172
|
-
* // Output: "hello"
|
|
166
|
+
* _first.get(["hello", 42]) // => "hello"
|
|
173
167
|
*
|
|
174
|
-
*
|
|
175
|
-
* // Output: ["world", 42]
|
|
168
|
+
* _first.replace("world", ["hello", 42]) // => ["world", 42]
|
|
176
169
|
* ```
|
|
177
170
|
*
|
|
178
171
|
* @see {@link Lens} — the type this function returns
|
|
@@ -182,7 +175,7 @@ export interface Lens<in out S, in out A> extends Optional<S, A> {
|
|
|
182
175
|
* @since 4.0.0
|
|
183
176
|
*/
|
|
184
177
|
export function makeLens<S, A>(get: (s: S) => A, replace: (a: A, s: S) => S): Lens<S, A> {
|
|
185
|
-
return make(
|
|
178
|
+
return make(primitiveNode("Lens", get, replace))
|
|
186
179
|
}
|
|
187
180
|
|
|
188
181
|
/**
|
|
@@ -198,7 +191,7 @@ export function makeLens<S, A>(get: (s: S) => A, replace: (a: A, s: S) => S): Le
|
|
|
198
191
|
* **Details**
|
|
199
192
|
*
|
|
200
193
|
* - `getResult(s)` returns `Result.Success<A>` when the focus matches, or
|
|
201
|
-
* `Result.Failure<
|
|
194
|
+
* `Result.Failure<SchemaIssue.Issue>` with a structured issue.
|
|
202
195
|
* - `set(a)` always succeeds and returns a new `S`.
|
|
203
196
|
* - Extends {@link Optional}.
|
|
204
197
|
* - Composing two Prisms produces a Prism; composing a Prism with a
|
|
@@ -206,7 +199,7 @@ export function makeLens<S, A>(get: (s: S) => A, replace: (a: A, s: S) => S): Le
|
|
|
206
199
|
*
|
|
207
200
|
* **Example** (Narrowing a tagged union)
|
|
208
201
|
*
|
|
209
|
-
* ```ts
|
|
202
|
+
* ```ts import.meta.vitest
|
|
210
203
|
* import { Optic, Result } from "effect"
|
|
211
204
|
*
|
|
212
205
|
* type Shape =
|
|
@@ -215,18 +208,16 @@ export function makeLens<S, A>(get: (s: S) => A, replace: (a: A, s: S) => S): Le
|
|
|
215
208
|
*
|
|
216
209
|
* const _circle = Optic.id<Shape>().tag("Circle")
|
|
217
210
|
*
|
|
218
|
-
*
|
|
219
|
-
* // Output: true
|
|
211
|
+
* _circle.getResult({ _tag: "Circle", radius: 5 }) // => Result.succeed({ _tag: "Circle", radius: 5 })
|
|
220
212
|
*
|
|
221
|
-
*
|
|
222
|
-
* // Output: true
|
|
213
|
+
* Result.isFailure(_circle.getResult({ _tag: "Rect", width: 10 })) // => true
|
|
223
214
|
* ```
|
|
224
215
|
*
|
|
225
216
|
* @see {@link makePrism} — constructor
|
|
226
217
|
* @see {@link fromChecks} — build a Prism from schema checks
|
|
227
218
|
* @see {@link Lens} — when reading always succeeds
|
|
228
219
|
*
|
|
229
|
-
* @category
|
|
220
|
+
* @category models
|
|
230
221
|
* @since 4.0.0
|
|
231
222
|
*/
|
|
232
223
|
export interface Prism<in out S, in out A> extends Optional<S, A> {
|
|
@@ -243,26 +234,27 @@ export interface Prism<in out S, in out A> extends Optional<S, A> {
|
|
|
243
234
|
*
|
|
244
235
|
* **Details**
|
|
245
236
|
*
|
|
246
|
-
* - `getResult` should return `Result.fail(
|
|
237
|
+
* - `getResult` should return `Result.fail(issue)` on mismatch.
|
|
238
|
+
* - Issues are not formatted automatically; callers choose how to render them.
|
|
247
239
|
*
|
|
248
240
|
* **Example** (Parsing a string to a number)
|
|
249
241
|
*
|
|
250
|
-
* ```ts
|
|
251
|
-
* import { Optic, Result } from "effect"
|
|
242
|
+
* ```ts import.meta.vitest
|
|
243
|
+
* import { Optic, Result, SchemaIssue } from "effect"
|
|
252
244
|
*
|
|
253
245
|
* const numeric = Optic.makePrism<string, number>(
|
|
254
246
|
* (s) => {
|
|
255
247
|
* const n = Number(s)
|
|
256
|
-
* return Number.isNaN(n)
|
|
248
|
+
* return Number.isNaN(n)
|
|
249
|
+
* ? Result.fail(new SchemaIssue.InvalidValue({ message: "not a number" }))
|
|
250
|
+
* : Result.succeed(n)
|
|
257
251
|
* },
|
|
258
252
|
* String
|
|
259
253
|
* )
|
|
260
254
|
*
|
|
261
|
-
*
|
|
262
|
-
* // Output: true
|
|
255
|
+
* numeric.getResult("42") // => Result.succeed(42)
|
|
263
256
|
*
|
|
264
|
-
*
|
|
265
|
-
* // Output: "42"
|
|
257
|
+
* numeric.set(42) // => "42"
|
|
266
258
|
* ```
|
|
267
259
|
*
|
|
268
260
|
* @see {@link Prism} — the type this function returns
|
|
@@ -271,8 +263,11 @@ export interface Prism<in out S, in out A> extends Optional<S, A> {
|
|
|
271
263
|
* @category constructors
|
|
272
264
|
* @since 4.0.0
|
|
273
265
|
*/
|
|
274
|
-
export function makePrism<S, A>(
|
|
275
|
-
|
|
266
|
+
export function makePrism<S, A>(
|
|
267
|
+
getResult: (s: S) => Result.Result<A, SchemaIssue.Issue>,
|
|
268
|
+
set: (a: A) => S
|
|
269
|
+
): Prism<S, A> {
|
|
270
|
+
return make(primitiveNode("Prism", getResult, set))
|
|
276
271
|
}
|
|
277
272
|
|
|
278
273
|
/**
|
|
@@ -286,13 +281,13 @@ export function makePrism<S, A>(getResult: (s: S) => Result.Result<A, string>, s
|
|
|
286
281
|
*
|
|
287
282
|
* **Details**
|
|
288
283
|
*
|
|
289
|
-
* - `getResult` runs all checks
|
|
284
|
+
* - `getResult` runs all checks and preserves their structured issues when
|
|
290
285
|
* any check fails.
|
|
291
286
|
* - `set` is identity — the value passes through unchanged.
|
|
292
287
|
*
|
|
293
288
|
* **Example** (Creating a positive integer prism)
|
|
294
289
|
*
|
|
295
|
-
* ```ts
|
|
290
|
+
* ```ts import.meta.vitest
|
|
296
291
|
* import { Optic, Result, Schema } from "effect"
|
|
297
292
|
*
|
|
298
293
|
* const posInt = Optic.fromChecks<number>(
|
|
@@ -300,11 +295,9 @@ export function makePrism<S, A>(getResult: (s: S) => Result.Result<A, string>, s
|
|
|
300
295
|
* Schema.isInt()
|
|
301
296
|
* )
|
|
302
297
|
*
|
|
303
|
-
*
|
|
304
|
-
* // Output: true
|
|
298
|
+
* posInt.getResult(3) // => Result.succeed(3)
|
|
305
299
|
*
|
|
306
|
-
*
|
|
307
|
-
* // Output: true
|
|
300
|
+
* Result.isFailure(posInt.getResult(-1)) // => true
|
|
308
301
|
* ```
|
|
309
302
|
*
|
|
310
303
|
* @see {@link makePrism} — constructor with custom getter/setter
|
|
@@ -314,142 +307,95 @@ export function makePrism<S, A>(getResult: (s: S) => Result.Result<A, string>, s
|
|
|
314
307
|
* @since 4.0.0
|
|
315
308
|
*/
|
|
316
309
|
export function fromChecks<T>(...checks: readonly [SchemaAST.Check<T>, ...Array<SchemaAST.Check<T>>]): Prism<T, T> {
|
|
317
|
-
return make(new CheckNode(checks))
|
|
310
|
+
return make([new CheckNode(checks)])
|
|
318
311
|
}
|
|
319
312
|
|
|
320
|
-
type
|
|
321
|
-
| IdentityNode
|
|
322
|
-
| IsoNode<any, any>
|
|
323
|
-
| LensNode<any, any>
|
|
324
|
-
| PrismNode<any, any>
|
|
325
|
-
| OptionalNode<any, any>
|
|
326
|
-
| PathNode
|
|
327
|
-
| CheckNode<any>
|
|
328
|
-
| CompositionNode
|
|
329
|
-
|
|
330
|
-
class IdentityNode {
|
|
331
|
-
readonly _tag = "IdentityNode"
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
const identityNode = new IdentityNode()
|
|
335
|
-
|
|
336
|
-
class CompositionNode {
|
|
337
|
-
readonly _tag = "CompositionNode"
|
|
338
|
-
readonly nodes: readonly [Node, ...Array<Node>]
|
|
313
|
+
type Kind = "Iso" | "Lens" | "Prism" | "Optional"
|
|
339
314
|
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
315
|
+
type Operation = {
|
|
316
|
+
readonly kind: Kind
|
|
317
|
+
readonly get: (s: any) => any
|
|
318
|
+
readonly set: (a: any, s?: any) => any
|
|
343
319
|
}
|
|
344
320
|
|
|
345
|
-
|
|
346
|
-
readonly _tag
|
|
347
|
-
readonly get: (s: S) => A
|
|
348
|
-
readonly set: (a: A) => S
|
|
349
|
-
|
|
350
|
-
constructor(get: (s: S) => A, set: (a: A) => S) {
|
|
351
|
-
this.get = get
|
|
352
|
-
this.set = set
|
|
353
|
-
}
|
|
321
|
+
type PrimitiveStep = Operation & {
|
|
322
|
+
readonly _tag: "PrimitiveNode"
|
|
354
323
|
}
|
|
355
324
|
|
|
356
|
-
|
|
357
|
-
readonly _tag = "LensNode"
|
|
358
|
-
readonly get: (s: S) => A
|
|
359
|
-
readonly set: (a: A, s: S) => S
|
|
360
|
-
|
|
361
|
-
constructor(get: (s: S) => A, set: (a: A, s: S) => S) {
|
|
362
|
-
this.get = get
|
|
363
|
-
this.set = set
|
|
364
|
-
}
|
|
365
|
-
}
|
|
325
|
+
type Step = PrimitiveStep | PathNode | CheckNode<any>
|
|
366
326
|
|
|
367
|
-
|
|
368
|
-
readonly _tag = "PrismNode"
|
|
369
|
-
readonly get: (s: S) => Result.Result<A, string>
|
|
370
|
-
readonly set: (a: A) => S
|
|
327
|
+
type Node = ReadonlyArray<Step>
|
|
371
328
|
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
this.set = set
|
|
375
|
-
}
|
|
329
|
+
function primitiveNode(kind: Kind, get: (s: any) => any, set: (a: any, s?: any) => any): Node {
|
|
330
|
+
return [{ _tag: "PrimitiveNode", kind, get, set }]
|
|
376
331
|
}
|
|
377
332
|
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
constructor(get: (s: S) => Result.Result<A, string>, set: (a: A, s: S) => Result.Result<S, string>) {
|
|
384
|
-
this.get = get
|
|
385
|
-
this.set = set
|
|
386
|
-
}
|
|
333
|
+
const identityOperation: Operation = {
|
|
334
|
+
kind: "Iso",
|
|
335
|
+
get: identity,
|
|
336
|
+
set: identity
|
|
387
337
|
}
|
|
388
338
|
|
|
389
339
|
class PathNode {
|
|
390
340
|
readonly _tag = "PathNode"
|
|
341
|
+
readonly kind = "Lens"
|
|
391
342
|
readonly path: ReadonlyArray<PropertyKey>
|
|
343
|
+
readonly get: (s: any) => any
|
|
344
|
+
readonly set: (a: any, s?: any) => any
|
|
392
345
|
|
|
393
346
|
constructor(path: ReadonlyArray<PropertyKey>) {
|
|
394
347
|
this.path = path
|
|
348
|
+
this.get = (s) => {
|
|
349
|
+
let out = s
|
|
350
|
+
for (let i = 0; i < path.length; i++) {
|
|
351
|
+
out = out[path[i]]
|
|
352
|
+
}
|
|
353
|
+
return out
|
|
354
|
+
}
|
|
355
|
+
this.set = (a, s) => {
|
|
356
|
+
const out = cloneShallow(s)
|
|
357
|
+
let current = out
|
|
358
|
+
let i = 0
|
|
359
|
+
for (; i < path.length - 1; i++) {
|
|
360
|
+
const key = path[i]
|
|
361
|
+
InternalRecord.assignProperty(current, key, cloneShallow(current[key]))
|
|
362
|
+
current = current[key]
|
|
363
|
+
}
|
|
364
|
+
InternalRecord.assignProperty(current, path[i], a)
|
|
365
|
+
return out
|
|
366
|
+
}
|
|
395
367
|
}
|
|
396
368
|
}
|
|
397
369
|
|
|
398
370
|
class CheckNode<T> {
|
|
399
371
|
readonly _tag = "CheckNode"
|
|
372
|
+
readonly kind = "Prism"
|
|
400
373
|
readonly checks: readonly [SchemaAST.Check<T>, ...Array<SchemaAST.Check<T>>]
|
|
374
|
+
readonly get: (s: T) => Result.Result<T, SchemaIssue.Issue>
|
|
375
|
+
readonly set = identity
|
|
401
376
|
|
|
402
377
|
constructor(checks: readonly [SchemaAST.Check<T>, ...Array<SchemaAST.Check<T>>]) {
|
|
403
378
|
this.checks = checks
|
|
379
|
+
this.get = (s) => SchemaAST.runChecks(checks, s)
|
|
404
380
|
}
|
|
405
381
|
}
|
|
406
382
|
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
383
|
+
function compose(a: Node, b: Node): Node {
|
|
384
|
+
if (a.length === 0) return b
|
|
385
|
+
if (b.length === 0) return a
|
|
386
|
+
const nodes = a.slice()
|
|
387
|
+
for (let i = 0; i < b.length; i++) {
|
|
388
|
+
const node = b[i]
|
|
389
|
+
const last = nodes[nodes.length - 1]
|
|
414
390
|
if (last._tag === "PathNode" && node._tag === "PathNode") {
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
}
|
|
419
|
-
|
|
420
|
-
// fuse Checks
|
|
421
|
-
acc[acc.length - 1] = new CheckNode<any>([...last.checks, ...node.checks])
|
|
422
|
-
return
|
|
391
|
+
nodes[nodes.length - 1] = new PathNode([...last.path, ...node.path])
|
|
392
|
+
} else if (last._tag === "CheckNode" && node._tag === "CheckNode") {
|
|
393
|
+
nodes[nodes.length - 1] = new CheckNode<any>([...last.checks, ...node.checks])
|
|
394
|
+
} else {
|
|
395
|
+
nodes.push(node)
|
|
423
396
|
}
|
|
424
397
|
}
|
|
425
|
-
|
|
426
|
-
}
|
|
427
|
-
|
|
428
|
-
// Collect nodes from a node into `acc`, flattening & normalizing on the fly.
|
|
429
|
-
function collect(node: Node, acc: Array<NormalizedNode>): void {
|
|
430
|
-
if (node._tag === "IdentityNode") return
|
|
431
|
-
if (node._tag === "CompositionNode") {
|
|
432
|
-
// flatten without extra arrays
|
|
433
|
-
for (let i = 0; i < node.nodes.length; i++) collect(node.nodes[i], acc)
|
|
434
|
-
return
|
|
435
|
-
}
|
|
436
|
-
// primitive node
|
|
437
|
-
pushNormalized(acc, node)
|
|
438
|
-
}
|
|
439
|
-
|
|
440
|
-
function compose(a: Node, b: Node): Node {
|
|
441
|
-
const nodes: Array<NormalizedNode> = []
|
|
442
|
-
collect(a, nodes)
|
|
443
|
-
collect(b, nodes)
|
|
444
|
-
|
|
445
|
-
switch (nodes.length) {
|
|
446
|
-
case 0:
|
|
447
|
-
return identityNode
|
|
448
|
-
case 1:
|
|
449
|
-
return nodes[0]
|
|
450
|
-
default:
|
|
451
|
-
return new CompositionNode(nodes as [Node, ...Array<Node>])
|
|
452
|
-
}
|
|
398
|
+
return nodes
|
|
453
399
|
}
|
|
454
400
|
|
|
455
401
|
type ForbidUnion<A, Message extends string> = IsUnion<A> extends true ? [Message] : []
|
|
@@ -466,47 +412,43 @@ type ForbidUnion<A, Message extends string> = IsUnion<A> extends true ? [Message
|
|
|
466
412
|
*
|
|
467
413
|
* **Details**
|
|
468
414
|
*
|
|
469
|
-
* - `getResult(s)` returns `Result.Success<A>` or `Result.Failure<
|
|
415
|
+
* - `getResult(s)` returns `Result.Success<A>` or `Result.Failure<SchemaIssue.Issue>`.
|
|
470
416
|
* - `replaceResult(a, s)` returns `Result.Success<S>` or
|
|
471
|
-
* `Result.Failure<
|
|
417
|
+
* `Result.Failure<SchemaIssue.Issue>`.
|
|
472
418
|
* - `replace(a, s)` returns the original `s` on failure (never throws).
|
|
473
419
|
* - `modify(f)` returns the original `s` on failure (never throws).
|
|
474
420
|
* - All operations are pure; inputs are never mutated.
|
|
475
421
|
*
|
|
476
422
|
* **Example** (Focusing on an optional record key)
|
|
477
423
|
*
|
|
478
|
-
* ```ts
|
|
424
|
+
* ```ts import.meta.vitest
|
|
479
425
|
* import { Optic, Result } from "effect"
|
|
480
426
|
*
|
|
481
427
|
* type Env = { [key: string]: string }
|
|
482
428
|
* const _home = Optic.id<Env>().at("HOME")
|
|
483
429
|
*
|
|
484
|
-
*
|
|
485
|
-
* // Output: true
|
|
430
|
+
* _home.getResult({ HOME: "/root" }) // => Result.succeed("/root")
|
|
486
431
|
*
|
|
487
|
-
*
|
|
488
|
-
* // Output: true
|
|
432
|
+
* Result.isFailure(_home.getResult({ PATH: "/bin" })) // => true
|
|
489
433
|
*
|
|
490
434
|
* // replace returns original on failure
|
|
491
|
-
*
|
|
492
|
-
* // Output: { PATH: "/bin" }
|
|
435
|
+
* _home.replace("/new", { PATH: "/bin" }) // => { PATH: "/bin" }
|
|
493
436
|
* ```
|
|
494
437
|
*
|
|
495
438
|
* @see {@link makeOptional} — constructor
|
|
496
439
|
* @see {@link Lens} — when reading always succeeds
|
|
497
440
|
* @see {@link Prism} — when writing always succeeds
|
|
498
441
|
*
|
|
499
|
-
* @category
|
|
442
|
+
* @category models
|
|
500
443
|
* @since 4.0.0
|
|
501
444
|
*/
|
|
502
445
|
export interface Optional<in out S, in out A> {
|
|
503
|
-
readonly node: Node
|
|
504
446
|
/**
|
|
505
447
|
* Attempts to read the focus `A` from the whole `S`. Returns
|
|
506
448
|
* `Result.Success<A>` when the focus exists, or
|
|
507
|
-
* `Result.Failure<
|
|
449
|
+
* `Result.Failure<SchemaIssue.Issue>` with a structured issue otherwise.
|
|
508
450
|
*/
|
|
509
|
-
readonly getResult: (s: S) => Result.Result<A,
|
|
451
|
+
readonly getResult: (s: S) => Result.Result<A, SchemaIssue.Issue>
|
|
510
452
|
/**
|
|
511
453
|
* Replaces the focus in `S` with a new `A`. Returns the original `s`
|
|
512
454
|
* unchanged when the optic cannot focus (never throws).
|
|
@@ -516,20 +458,21 @@ export interface Optional<in out S, in out A> {
|
|
|
516
458
|
* Like {@link replace}, but returns an explicit `Result` so callers can
|
|
517
459
|
* detect and handle failure.
|
|
518
460
|
*/
|
|
519
|
-
readonly replaceResult: (a: A, s: S) => Result.Result<S,
|
|
461
|
+
readonly replaceResult: (a: A, s: S) => Result.Result<S, SchemaIssue.Issue>
|
|
520
462
|
/**
|
|
521
463
|
* Composes this optic with another. The result type is the weakest of
|
|
522
464
|
* the two: Iso + Iso = Iso, Lens + Prism = Optional, etc.
|
|
523
465
|
*
|
|
524
466
|
* **Example** (Composing a lens with a prism)
|
|
525
467
|
*
|
|
526
|
-
* ```ts
|
|
527
|
-
* import { Optic, Option } from "effect"
|
|
468
|
+
* ```ts import.meta.vitest
|
|
469
|
+
* import { Optic, Option, Result } from "effect"
|
|
528
470
|
*
|
|
529
471
|
* type State = { value: Option.Option<number> }
|
|
530
472
|
*
|
|
531
473
|
* const _inner = Optic.id<State>().key("value").compose(Optic.some())
|
|
532
474
|
* // _inner is Optional<State, number>
|
|
475
|
+
* _inner.getResult({ value: Option.some(1) }) // => Result.succeed(1)
|
|
533
476
|
* ```
|
|
534
477
|
*
|
|
535
478
|
* @see {@link id} — start a composition chain
|
|
@@ -545,15 +488,14 @@ export interface Optional<in out S, in out A> {
|
|
|
545
488
|
*
|
|
546
489
|
* **Example** (Incrementing a nested field)
|
|
547
490
|
*
|
|
548
|
-
* ```ts
|
|
491
|
+
* ```ts import.meta.vitest
|
|
549
492
|
* import { Optic } from "effect"
|
|
550
493
|
*
|
|
551
494
|
* type S = { readonly a: { readonly b: number } }
|
|
552
495
|
* const _b = Optic.id<S>().key("a").key("b")
|
|
553
496
|
*
|
|
554
497
|
* const inc = _b.modify((n) => n + 1)
|
|
555
|
-
*
|
|
556
|
-
* // Output: { a: { b: 2 } }
|
|
498
|
+
* inc({ a: { b: 1 } }) // => { a: { b: 2 } }
|
|
557
499
|
* ```
|
|
558
500
|
*/
|
|
559
501
|
modify(f: (a: A) => A): (s: S) => S
|
|
@@ -569,14 +511,13 @@ export interface Optional<in out S, in out A> {
|
|
|
569
511
|
*
|
|
570
512
|
* **Example** (Drilling into nested structs)
|
|
571
513
|
*
|
|
572
|
-
* ```ts
|
|
514
|
+
* ```ts import.meta.vitest
|
|
573
515
|
* import { Optic } from "effect"
|
|
574
516
|
*
|
|
575
517
|
* type S = { readonly a: { readonly b: number } }
|
|
576
518
|
* const _b = Optic.id<S>().key("a").key("b")
|
|
577
519
|
*
|
|
578
|
-
*
|
|
579
|
-
* // Output: 42
|
|
520
|
+
* _b.get({ a: { b: 42 } }) // => 42
|
|
580
521
|
* ```
|
|
581
522
|
*/
|
|
582
523
|
key<S, A extends object, Key extends keyof A>(
|
|
@@ -601,17 +542,15 @@ export interface Optional<in out S, in out A> {
|
|
|
601
542
|
*
|
|
602
543
|
* **Example** (Deleting an optional key)
|
|
603
544
|
*
|
|
604
|
-
* ```ts
|
|
545
|
+
* ```ts import.meta.vitest
|
|
605
546
|
* import { Optic } from "effect"
|
|
606
547
|
*
|
|
607
548
|
* type S = { readonly a?: number }
|
|
608
549
|
* const _a = Optic.id<S>().optionalKey("a")
|
|
609
550
|
*
|
|
610
|
-
*
|
|
611
|
-
* // Output: {}
|
|
551
|
+
* _a.replace(undefined, { a: 1 }) // => {}
|
|
612
552
|
*
|
|
613
|
-
*
|
|
614
|
-
* // Output: { a: 2 }
|
|
553
|
+
* _a.replace(2, {}) // => { a: 2 }
|
|
615
554
|
* ```
|
|
616
555
|
*/
|
|
617
556
|
optionalKey<S, A extends object, Key extends keyof A>(
|
|
@@ -636,16 +575,14 @@ export interface Optional<in out S, in out A> {
|
|
|
636
575
|
*
|
|
637
576
|
* **Example** (Focusing only on positive numbers)
|
|
638
577
|
*
|
|
639
|
-
* ```ts
|
|
578
|
+
* ```ts import.meta.vitest
|
|
640
579
|
* import { Optic, Result, Schema } from "effect"
|
|
641
580
|
*
|
|
642
581
|
* const _pos = Optic.id<number>().check(Schema.isGreaterThan(0))
|
|
643
582
|
*
|
|
644
|
-
*
|
|
645
|
-
* // Output: true
|
|
583
|
+
* _pos.getResult(5) // => Result.succeed(5)
|
|
646
584
|
*
|
|
647
|
-
*
|
|
648
|
-
* // Output: true
|
|
585
|
+
* Result.isFailure(_pos.getResult(-1)) // => true
|
|
649
586
|
* ```
|
|
650
587
|
*
|
|
651
588
|
* @see {@link fromChecks} — standalone prism from checks
|
|
@@ -667,7 +604,7 @@ export interface Optional<in out S, in out A> {
|
|
|
667
604
|
*
|
|
668
605
|
* **Example** (Narrowing a union)
|
|
669
606
|
*
|
|
670
|
-
* ```ts
|
|
607
|
+
* ```ts import.meta.vitest
|
|
671
608
|
* import { Optic, Result } from "effect"
|
|
672
609
|
*
|
|
673
610
|
* type B = { readonly _tag: "b"; readonly b: number }
|
|
@@ -678,8 +615,7 @@ export interface Optional<in out S, in out A> {
|
|
|
678
615
|
* { expected: `"b" tag` }
|
|
679
616
|
* )
|
|
680
617
|
*
|
|
681
|
-
*
|
|
682
|
-
* // Output: true
|
|
618
|
+
* _b.getResult({ _tag: "b", b: 1 }) // => Result.succeed({ _tag: "b", b: 1 })
|
|
683
619
|
* ```
|
|
684
620
|
*
|
|
685
621
|
* @see `.tag()` — shorthand for narrowing by `_tag`
|
|
@@ -704,10 +640,12 @@ export interface Optional<in out S, in out A> {
|
|
|
704
640
|
* - On a {@link Prism}, returns a Prism.
|
|
705
641
|
* - On an {@link Optional}, returns an Optional.
|
|
706
642
|
* - Shorthand for `.refine(s => s._tag === tag)`.
|
|
643
|
+
* - A non-matching value fails with {@link SchemaIssue.InvalidValue} whose
|
|
644
|
+
* `expected` annotation is `"<tag> tag"`.
|
|
707
645
|
*
|
|
708
646
|
* **Example** (Focusing a tagged variant)
|
|
709
647
|
*
|
|
710
|
-
* ```ts
|
|
648
|
+
* ```ts import.meta.vitest
|
|
711
649
|
* import { Optic, Result } from "effect"
|
|
712
650
|
*
|
|
713
651
|
* type Shape =
|
|
@@ -716,11 +654,9 @@ export interface Optional<in out S, in out A> {
|
|
|
716
654
|
*
|
|
717
655
|
* const _radius = Optic.id<Shape>().tag("Circle").key("radius")
|
|
718
656
|
*
|
|
719
|
-
*
|
|
720
|
-
* // Output: true
|
|
657
|
+
* _radius.getResult({ _tag: "Circle", radius: 5 }) // => Result.succeed(5)
|
|
721
658
|
*
|
|
722
|
-
*
|
|
723
|
-
* // Output: true
|
|
659
|
+
* Result.isFailure(_radius.getResult({ _tag: "Rect", width: 10 })) // => true
|
|
724
660
|
* ```
|
|
725
661
|
*
|
|
726
662
|
* @see `.refine()` — for arbitrary type guards
|
|
@@ -745,20 +681,21 @@ export interface Optional<in out S, in out A> {
|
|
|
745
681
|
*
|
|
746
682
|
* - Always returns an {@link Optional}.
|
|
747
683
|
* - Does **not** work on union types (compile error).
|
|
684
|
+
* - A missing key fails with a {@link SchemaIssue.Pointer} at that key whose
|
|
685
|
+
* inner issue is {@link SchemaIssue.MissingKey}, for both `getResult` and
|
|
686
|
+
* `replaceResult`.
|
|
748
687
|
*
|
|
749
688
|
* **Example** (Accessing records safely)
|
|
750
689
|
*
|
|
751
|
-
* ```ts
|
|
690
|
+
* ```ts import.meta.vitest
|
|
752
691
|
* import { Optic, Result } from "effect"
|
|
753
692
|
*
|
|
754
693
|
* type Env = { [key: string]: number }
|
|
755
694
|
* const _x = Optic.id<Env>().at("x")
|
|
756
695
|
*
|
|
757
|
-
*
|
|
758
|
-
* // Output: true
|
|
696
|
+
* _x.getResult({ x: 1 }) // => Result.succeed(1)
|
|
759
697
|
*
|
|
760
|
-
*
|
|
761
|
-
* // Output: true
|
|
698
|
+
* Result.isFailure(_x.getResult({ y: 2 })) // => true
|
|
762
699
|
* ```
|
|
763
700
|
*
|
|
764
701
|
* @see `.key()` — when the key is always present
|
|
@@ -780,15 +717,14 @@ export interface Optional<in out S, in out A> {
|
|
|
780
717
|
*
|
|
781
718
|
* **Example** (Picking keys)
|
|
782
719
|
*
|
|
783
|
-
* ```ts
|
|
720
|
+
* ```ts import.meta.vitest
|
|
784
721
|
* import { Optic } from "effect"
|
|
785
722
|
*
|
|
786
723
|
* type S = { readonly a: string; readonly b: number; readonly c: boolean }
|
|
787
724
|
*
|
|
788
725
|
* const _ac = Optic.id<S>().pick(["a", "c"])
|
|
789
726
|
*
|
|
790
|
-
*
|
|
791
|
-
* // Output: { a: "hi", c: true }
|
|
727
|
+
* _ac.get({ a: "hi", b: 1, c: true }) // => { a: "hi", c: true }
|
|
792
728
|
* ```
|
|
793
729
|
*
|
|
794
730
|
* @see `.omit()` — the inverse operation
|
|
@@ -815,15 +751,14 @@ export interface Optional<in out S, in out A> {
|
|
|
815
751
|
*
|
|
816
752
|
* **Example** (Omitting keys)
|
|
817
753
|
*
|
|
818
|
-
* ```ts
|
|
754
|
+
* ```ts import.meta.vitest
|
|
819
755
|
* import { Optic } from "effect"
|
|
820
756
|
*
|
|
821
757
|
* type S = { readonly a: string; readonly b: number; readonly c: boolean }
|
|
822
758
|
*
|
|
823
759
|
* const _ac = Optic.id<S>().omit(["b"])
|
|
824
760
|
*
|
|
825
|
-
*
|
|
826
|
-
* // Output: { a: "hi", c: true }
|
|
761
|
+
* _ac.get({ a: "hi", b: 1, c: true }) // => { a: "hi", c: true }
|
|
827
762
|
* ```
|
|
828
763
|
*
|
|
829
764
|
* @see `.pick()` — the inverse operation
|
|
@@ -847,22 +782,20 @@ export interface Optional<in out S, in out A> {
|
|
|
847
782
|
*
|
|
848
783
|
* **Example** (Filtering undefined values)
|
|
849
784
|
*
|
|
850
|
-
* ```ts
|
|
785
|
+
* ```ts import.meta.vitest
|
|
851
786
|
* import { Optic, Result } from "effect"
|
|
852
787
|
*
|
|
853
788
|
* const _defined = Optic.id<number | undefined>().notUndefined()
|
|
854
789
|
*
|
|
855
|
-
*
|
|
856
|
-
* // Output: true
|
|
790
|
+
* _defined.getResult(42) // => Result.succeed(42)
|
|
857
791
|
*
|
|
858
|
-
*
|
|
859
|
-
* // Output: true
|
|
792
|
+
* Result.isFailure(_defined.getResult(undefined)) // => true
|
|
860
793
|
* ```
|
|
861
794
|
*
|
|
862
795
|
* @since 4.0.0
|
|
863
796
|
*/
|
|
864
|
-
notUndefined(): Prism<S, Exclude<A, undefined>>
|
|
865
|
-
notUndefined(): Optional<S, Exclude<A, undefined>>
|
|
797
|
+
notUndefined<S, A>(this: Prism<S, A>): Prism<S, Exclude<A, undefined>>
|
|
798
|
+
notUndefined<S, A>(this: Optional<S, A>): Optional<S, Exclude<A, undefined>>
|
|
866
799
|
|
|
867
800
|
/**
|
|
868
801
|
* Focuses **all elements** of an array-like focus and optionally narrows
|
|
@@ -877,11 +810,13 @@ export interface Optional<in out S, in out A> {
|
|
|
877
810
|
* element. Non-focusable elements are skipped.
|
|
878
811
|
* - **replaceResult** expects exactly as many values as were collected by
|
|
879
812
|
* `getResult` and writes them back in order. Fails with a
|
|
880
|
-
*
|
|
813
|
+
* {@link SchemaIssue.InvalidValue} if counts differ. If an inner replacement
|
|
814
|
+
* fails, its issue is wrapped in a {@link SchemaIssue.Pointer} at the element
|
|
815
|
+
* index.
|
|
881
816
|
*
|
|
882
817
|
* **Example** (Incrementing liked posts)
|
|
883
818
|
*
|
|
884
|
-
* ```ts
|
|
819
|
+
* ```ts import.meta.vitest
|
|
885
820
|
* import { Optic, Schema } from "effect"
|
|
886
821
|
*
|
|
887
822
|
* type Post = { title: string; likes: number }
|
|
@@ -894,12 +829,10 @@ export interface Optional<in out S, in out A> {
|
|
|
894
829
|
*
|
|
895
830
|
* const addLike = _likes.modifyAll((n) => n + 1)
|
|
896
831
|
*
|
|
897
|
-
*
|
|
898
|
-
*
|
|
899
|
-
*
|
|
900
|
-
*
|
|
901
|
-
* )
|
|
902
|
-
* // Output: { user: { posts: [{ title: "a", likes: 0 }, { title: "b", likes: 2 }] } }
|
|
832
|
+
* const result = addLike({
|
|
833
|
+
* user: { posts: [{ title: "a", likes: 0 }, { title: "b", likes: 1 }] }
|
|
834
|
+
* })
|
|
835
|
+
* result.user.posts // => [{ title: "a", likes: 0 }, { title: "b", likes: 2 }]
|
|
903
836
|
* ```
|
|
904
837
|
*
|
|
905
838
|
* @see {@link getAll} — extract all focused elements as an array
|
|
@@ -920,7 +853,7 @@ export interface Optional<in out S, in out A> {
|
|
|
920
853
|
*
|
|
921
854
|
* **Example** (Doubling all focused values)
|
|
922
855
|
*
|
|
923
|
-
* ```ts
|
|
856
|
+
* ```ts import.meta.vitest
|
|
924
857
|
* import { Optic, Schema } from "effect"
|
|
925
858
|
*
|
|
926
859
|
* type S = { readonly items: ReadonlyArray<number> }
|
|
@@ -931,8 +864,7 @@ export interface Optional<in out S, in out A> {
|
|
|
931
864
|
*
|
|
932
865
|
* const doubled = _positive.modifyAll((n) => n * 2)
|
|
933
866
|
*
|
|
934
|
-
*
|
|
935
|
-
* // Output: { items: [2, -2, 6] }
|
|
867
|
+
* doubled({ items: [1, -2, 3] }) // => { items: [2, -2, 6] }
|
|
936
868
|
* ```
|
|
937
869
|
*
|
|
938
870
|
* @see `.forEach()` — create a sub-traversal
|
|
@@ -951,29 +883,31 @@ export interface Optional<in out S, in out A> {
|
|
|
951
883
|
*
|
|
952
884
|
* **Details**
|
|
953
885
|
*
|
|
954
|
-
* - `getResult` should return `Result.fail(
|
|
955
|
-
* - `set` should return `Result.fail(
|
|
886
|
+
* - `getResult` should return `Result.fail(issue)` on mismatch.
|
|
887
|
+
* - `set` should return `Result.fail(issue)` when the update cannot be
|
|
956
888
|
* applied.
|
|
889
|
+
* - Issues are not formatted automatically; callers choose how to render them.
|
|
957
890
|
*
|
|
958
891
|
* **Example** (Accessing record keys safely)
|
|
959
892
|
*
|
|
960
|
-
* ```ts
|
|
961
|
-
* import { Optic, Result } from "effect"
|
|
893
|
+
* ```ts import.meta.vitest
|
|
894
|
+
* import { Optic, Result, SchemaIssue } from "effect"
|
|
962
895
|
*
|
|
963
|
-
* const atKey = (key: string) =>
|
|
964
|
-
*
|
|
896
|
+
* const atKey = (key: string) => {
|
|
897
|
+
* const issue = new SchemaIssue.Pointer([key], new SchemaIssue.MissingKey(undefined))
|
|
898
|
+
* return Optic.makeOptional<Record<string, number>, number>(
|
|
965
899
|
* (s) =>
|
|
966
900
|
* Object.hasOwn(s, key)
|
|
967
901
|
* ? Result.succeed(s[key])
|
|
968
|
-
* : Result.fail(
|
|
902
|
+
* : Result.fail(issue),
|
|
969
903
|
* (a, s) =>
|
|
970
904
|
* Object.hasOwn(s, key)
|
|
971
905
|
* ? Result.succeed({ ...s, [key]: a })
|
|
972
|
-
* : Result.fail(
|
|
906
|
+
* : Result.fail(issue)
|
|
973
907
|
* )
|
|
908
|
+
* }
|
|
974
909
|
*
|
|
975
|
-
*
|
|
976
|
-
* // Output: true
|
|
910
|
+
* atKey("x").getResult({ x: 1 }) // => Result.succeed(1)
|
|
977
911
|
* ```
|
|
978
912
|
*
|
|
979
913
|
* @see {@link Optional} — the type this function returns
|
|
@@ -984,10 +918,10 @@ export interface Optional<in out S, in out A> {
|
|
|
984
918
|
* @since 4.0.0
|
|
985
919
|
*/
|
|
986
920
|
export function makeOptional<S, A>(
|
|
987
|
-
getResult: (s: S) => Result.Result<A,
|
|
988
|
-
set: (a: A, s: S) => Result.Result<S,
|
|
921
|
+
getResult: (s: S) => Result.Result<A, SchemaIssue.Issue>,
|
|
922
|
+
set: (a: A, s: S) => Result.Result<S, SchemaIssue.Issue>
|
|
989
923
|
): Optional<S, A> {
|
|
990
|
-
return make(
|
|
924
|
+
return make(primitiveNode("Optional", getResult, set))
|
|
991
925
|
}
|
|
992
926
|
|
|
993
927
|
/**
|
|
@@ -1009,7 +943,7 @@ export function makeOptional<S, A>(
|
|
|
1009
943
|
*
|
|
1010
944
|
* **Example** (Traversing array elements with a filter)
|
|
1011
945
|
*
|
|
1012
|
-
* ```ts
|
|
946
|
+
* ```ts import.meta.vitest
|
|
1013
947
|
* import { Optic, Schema } from "effect"
|
|
1014
948
|
*
|
|
1015
949
|
* type S = { readonly items: ReadonlyArray<number> }
|
|
@@ -1020,26 +954,26 @@ export function makeOptional<S, A>(
|
|
|
1020
954
|
*
|
|
1021
955
|
* const getPositive = Optic.getAll(_positive)
|
|
1022
956
|
*
|
|
1023
|
-
*
|
|
1024
|
-
* // Output: [1, 3]
|
|
957
|
+
* getPositive({ items: [1, -2, 3] }) // => [1, 3]
|
|
1025
958
|
* ```
|
|
1026
959
|
*
|
|
1027
960
|
* @see {@link getAll} — extract focused elements
|
|
1028
961
|
* @see {@link Optional} — the base type
|
|
1029
962
|
*
|
|
1030
|
-
* @category
|
|
963
|
+
* @category models
|
|
1031
964
|
* @since 4.0.0
|
|
1032
965
|
*/
|
|
1033
966
|
export interface Traversal<in out S, in out A> extends Optional<S, ReadonlyArray<A>> {}
|
|
1034
967
|
|
|
1035
968
|
class OptionalImpl<S, A> implements Optional<S, A> {
|
|
969
|
+
/** @internal */
|
|
1036
970
|
readonly node: Node
|
|
1037
|
-
readonly getResult: (s: S) => Result.Result<A,
|
|
1038
|
-
readonly replaceResult: (a: A, s: S) => Result.Result<S,
|
|
971
|
+
readonly getResult: (s: S) => Result.Result<A, SchemaIssue.Issue>
|
|
972
|
+
readonly replaceResult: (a: A, s: S) => Result.Result<S, SchemaIssue.Issue>
|
|
1039
973
|
constructor(
|
|
1040
974
|
node: Node,
|
|
1041
|
-
getResult: (s: S) => Result.Result<A,
|
|
1042
|
-
replaceResult: (a: A, s: S) => Result.Result<S,
|
|
975
|
+
getResult: (s: S) => Result.Result<A, SchemaIssue.Issue>,
|
|
976
|
+
replaceResult: (a: A, s: S) => Result.Result<S, SchemaIssue.Issue>
|
|
1043
977
|
) {
|
|
1044
978
|
this.node = node
|
|
1045
979
|
this.getResult = getResult
|
|
@@ -1055,13 +989,14 @@ class OptionalImpl<S, A> implements Optional<S, A> {
|
|
|
1055
989
|
return make(compose(this.node, that.node))
|
|
1056
990
|
}
|
|
1057
991
|
key(key: PropertyKey): any {
|
|
1058
|
-
return make(compose(this.node, new PathNode([key])))
|
|
992
|
+
return make(compose(this.node, [new PathNode([key])]))
|
|
1059
993
|
}
|
|
1060
994
|
optionalKey(key: PropertyKey): any {
|
|
1061
995
|
return make(
|
|
1062
996
|
compose(
|
|
1063
997
|
this.node,
|
|
1064
|
-
|
|
998
|
+
primitiveNode(
|
|
999
|
+
"Lens",
|
|
1065
1000
|
(s) => s[key],
|
|
1066
1001
|
(a, s) => {
|
|
1067
1002
|
const copy = cloneShallow(s)
|
|
@@ -1072,7 +1007,7 @@ class OptionalImpl<S, A> implements Optional<S, A> {
|
|
|
1072
1007
|
delete copy[key]
|
|
1073
1008
|
}
|
|
1074
1009
|
} else {
|
|
1075
|
-
copy
|
|
1010
|
+
InternalRecord.assignProperty(copy, key, a)
|
|
1076
1011
|
}
|
|
1077
1012
|
return copy
|
|
1078
1013
|
}
|
|
@@ -1081,36 +1016,38 @@ class OptionalImpl<S, A> implements Optional<S, A> {
|
|
|
1081
1016
|
)
|
|
1082
1017
|
}
|
|
1083
1018
|
check(...checks: readonly [SchemaAST.Check<any>, ...Array<SchemaAST.Check<any>>]): any {
|
|
1084
|
-
return make(compose(this.node, new CheckNode(checks)))
|
|
1019
|
+
return make(compose(this.node, [new CheckNode(checks)]))
|
|
1085
1020
|
}
|
|
1086
1021
|
refine<B extends A>(refinement: (a: A) => a is B, annotations?: Schema.Annotations.Filter): any {
|
|
1087
|
-
return make(compose(this.node, new CheckNode([SchemaAST.makeFilterByGuard(refinement, annotations)])))
|
|
1022
|
+
return make(compose(this.node, [new CheckNode([SchemaAST.makeFilterByGuard(refinement, annotations)])]))
|
|
1088
1023
|
}
|
|
1089
1024
|
tag(tag: string): any {
|
|
1025
|
+
const err = Result.fail(new SchemaIssue.InvalidValue({ expected: `${JSON.stringify(tag)} tag` }))
|
|
1090
1026
|
return make(
|
|
1091
1027
|
compose(
|
|
1092
1028
|
this.node,
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
? Result.succeed(s)
|
|
1097
|
-
: Result.fail(`Expected ${format(tag)} tag, got ${format(s._tag)}`),
|
|
1029
|
+
primitiveNode(
|
|
1030
|
+
"Prism",
|
|
1031
|
+
(s) => s._tag === tag ? Result.succeed(s) : err,
|
|
1098
1032
|
identity
|
|
1099
1033
|
)
|
|
1100
1034
|
)
|
|
1101
1035
|
)
|
|
1102
1036
|
}
|
|
1103
1037
|
at(key: PropertyKey, ..._rest: Array<any>): any {
|
|
1104
|
-
const err = Result.fail(
|
|
1038
|
+
const err = Result.fail(
|
|
1039
|
+
new SchemaIssue.Pointer([key], new SchemaIssue.MissingKey(undefined))
|
|
1040
|
+
)
|
|
1105
1041
|
return make(
|
|
1106
1042
|
compose(
|
|
1107
1043
|
this.node,
|
|
1108
|
-
|
|
1044
|
+
primitiveNode(
|
|
1045
|
+
"Optional",
|
|
1109
1046
|
(s) => Object.hasOwn(s, key) ? Result.succeed(s[key]) : err,
|
|
1110
1047
|
(a, s) => {
|
|
1111
1048
|
if (Object.hasOwn(s, key)) {
|
|
1112
1049
|
const copy = cloneShallow(s)
|
|
1113
|
-
copy
|
|
1050
|
+
InternalRecord.assignProperty(copy, key, a)
|
|
1114
1051
|
return Result.succeed(copy)
|
|
1115
1052
|
} else {
|
|
1116
1053
|
return err
|
|
@@ -1126,7 +1063,7 @@ class OptionalImpl<S, A> implements Optional<S, A> {
|
|
|
1126
1063
|
omit(keys: any) {
|
|
1127
1064
|
return this.compose(makeLens(Struct.omit(keys), (o, a) => ({ ...a, ...o })))
|
|
1128
1065
|
}
|
|
1129
|
-
notUndefined():
|
|
1066
|
+
notUndefined(): any {
|
|
1130
1067
|
return this.refine(Predicate.isNotUndefined, { expected: "a value other than `undefined`" })
|
|
1131
1068
|
}
|
|
1132
1069
|
forEach<S, A, B>(this: Traversal<S, A>, f: (iso: Iso<A, A>) => Optional<A, B>): Traversal<S, B> {
|
|
@@ -1154,7 +1091,9 @@ class OptionalImpl<S, A> implements Optional<S, A> {
|
|
|
1154
1091
|
// 2) arity check
|
|
1155
1092
|
if (bs.length !== idxs.length) {
|
|
1156
1093
|
return Result.fail(
|
|
1157
|
-
|
|
1094
|
+
new SchemaIssue.InvalidValue({
|
|
1095
|
+
message: `each: replacement length mismatch: ${bs.length} !== ${idxs.length}`
|
|
1096
|
+
})
|
|
1158
1097
|
)
|
|
1159
1098
|
}
|
|
1160
1099
|
|
|
@@ -1164,7 +1103,7 @@ class OptionalImpl<S, A> implements Optional<S, A> {
|
|
|
1164
1103
|
const i = idxs[k]
|
|
1165
1104
|
const r = inner.replaceResult(bs[k], as[i])
|
|
1166
1105
|
if (Result.isFailure(r)) {
|
|
1167
|
-
return Result.fail(
|
|
1106
|
+
return Result.fail(new SchemaIssue.Pointer([i], r.failure))
|
|
1168
1107
|
}
|
|
1169
1108
|
out[i] = r.success
|
|
1170
1109
|
}
|
|
@@ -1211,7 +1150,7 @@ class LensImpl<S, A> extends OptionalImpl<S, A> implements Lens<S, A> {
|
|
|
1211
1150
|
|
|
1212
1151
|
class PrismImpl<S, A> extends OptionalImpl<S, A> implements Prism<S, A> {
|
|
1213
1152
|
readonly set: (a: A) => S
|
|
1214
|
-
constructor(node: Node, getResult: (s: S) => Result.Result<A,
|
|
1153
|
+
constructor(node: Node, getResult: (s: S) => Result.Result<A, SchemaIssue.Issue>, set: (a: A) => S) {
|
|
1215
1154
|
super(node, getResult, (a, _) => Result.succeed(set(a)))
|
|
1216
1155
|
this.set = set
|
|
1217
1156
|
}
|
|
@@ -1224,15 +1163,23 @@ class PrismImpl<S, A> extends OptionalImpl<S, A> implements Prism<S, A> {
|
|
|
1224
1163
|
}
|
|
1225
1164
|
|
|
1226
1165
|
function make(node: Node): any {
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1166
|
+
let op: Operation = node[0] ?? identityOperation
|
|
1167
|
+
if (node.length > 1) {
|
|
1168
|
+
const kind = node.reduce<Kind>((kind, step) => composeKind(kind, step.kind), "Iso")
|
|
1169
|
+
op = {
|
|
1170
|
+
kind,
|
|
1171
|
+
get: compileGet(node, kind),
|
|
1172
|
+
set: compileSet(node, kind)
|
|
1173
|
+
}
|
|
1174
|
+
}
|
|
1175
|
+
switch (op.kind) {
|
|
1176
|
+
case "Iso":
|
|
1230
1177
|
return new IsoImpl(node, op.get, op.set)
|
|
1231
|
-
case "
|
|
1178
|
+
case "Lens":
|
|
1232
1179
|
return new LensImpl(node, op.get, op.set)
|
|
1233
|
-
case "
|
|
1180
|
+
case "Prism":
|
|
1234
1181
|
return new PrismImpl(node, op.get, op.set)
|
|
1235
|
-
case "
|
|
1182
|
+
case "Optional":
|
|
1236
1183
|
return new OptionalImpl(node, op.get, op.set)
|
|
1237
1184
|
}
|
|
1238
1185
|
}
|
|
@@ -1249,135 +1196,79 @@ function cloneShallow<T>(pojo: T): T {
|
|
|
1249
1196
|
return pojo
|
|
1250
1197
|
}
|
|
1251
1198
|
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1199
|
+
function compileGet(nodes: Node, kind: Kind): (s: any) => any {
|
|
1200
|
+
return (s) => {
|
|
1201
|
+
for (let i = 0; i < nodes.length; i++) {
|
|
1202
|
+
const op = nodes[i]
|
|
1203
|
+
const result = op.get(s)
|
|
1204
|
+
if (hasFailingGet(op.kind)) {
|
|
1205
|
+
if (Result.isFailure(result)) {
|
|
1206
|
+
return result
|
|
1207
|
+
}
|
|
1208
|
+
s = result.success
|
|
1209
|
+
} else {
|
|
1210
|
+
s = result
|
|
1211
|
+
}
|
|
1212
|
+
}
|
|
1213
|
+
return hasFailingGet(kind) ? Result.succeed(s) : s
|
|
1214
|
+
}
|
|
1256
1215
|
}
|
|
1257
1216
|
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
case "LensNode":
|
|
1264
|
-
case "PrismNode":
|
|
1265
|
-
case "OptionalNode":
|
|
1266
|
-
return { _tag: node._tag, get: node.get, set: node.set }
|
|
1267
|
-
case "PathNode": {
|
|
1268
|
-
return {
|
|
1269
|
-
_tag: "LensNode",
|
|
1270
|
-
get: (s: any) => {
|
|
1271
|
-
const path = node.path
|
|
1272
|
-
let out: any = s
|
|
1273
|
-
for (let i = 0, n = path.length; i < n; i++) {
|
|
1274
|
-
out = out[path[i]]
|
|
1275
|
-
}
|
|
1276
|
-
return out
|
|
1277
|
-
},
|
|
1278
|
-
set: (a: any, s: any) => {
|
|
1279
|
-
const path = node.path
|
|
1280
|
-
const out = cloneShallow(s)
|
|
1281
|
-
|
|
1282
|
-
let current = out
|
|
1283
|
-
let i = 0
|
|
1284
|
-
for (; i < path.length - 1; i++) {
|
|
1285
|
-
const key = path[i]
|
|
1286
|
-
current[key] = cloneShallow(current[key])
|
|
1287
|
-
current = current[key]
|
|
1288
|
-
}
|
|
1289
|
-
|
|
1290
|
-
const finalKey = path[i]
|
|
1291
|
-
current[finalKey] = a
|
|
1292
|
-
|
|
1293
|
-
return out
|
|
1294
|
-
}
|
|
1217
|
+
function compileSet(nodes: Node, kind: Kind): (a: any, s: any) => any {
|
|
1218
|
+
if (hasSourceFreeSet(kind)) {
|
|
1219
|
+
return (a) => {
|
|
1220
|
+
for (let i = nodes.length - 1; i >= 0; i--) {
|
|
1221
|
+
a = nodes[i].set(a)
|
|
1295
1222
|
}
|
|
1223
|
+
return a
|
|
1296
1224
|
}
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1225
|
+
}
|
|
1226
|
+
return (a, s) => {
|
|
1227
|
+
const len = nodes.length
|
|
1228
|
+
const sources = new Array(len)
|
|
1229
|
+
for (let i = 0; i < len; i++) {
|
|
1230
|
+
sources[i] = s
|
|
1231
|
+
const op = nodes[i]
|
|
1232
|
+
if (hasFailingGet(op.kind)) {
|
|
1233
|
+
const result = op.get(s)
|
|
1234
|
+
if (Result.isFailure(result)) {
|
|
1235
|
+
return result
|
|
1236
|
+
}
|
|
1237
|
+
s = result.success
|
|
1238
|
+
} else {
|
|
1239
|
+
s = op.get(s)
|
|
1302
1240
|
}
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
const
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
return result
|
|
1315
|
-
}
|
|
1316
|
-
s = result.success
|
|
1317
|
-
} else {
|
|
1318
|
-
s = result
|
|
1319
|
-
}
|
|
1320
|
-
}
|
|
1321
|
-
return hasFailingGet(_tag) ? Result.succeed(s) : s
|
|
1322
|
-
},
|
|
1323
|
-
set: (a: any, s: any) => {
|
|
1324
|
-
const source = s
|
|
1325
|
-
const len = ops.length
|
|
1326
|
-
const ss = new Array(len + 1)
|
|
1327
|
-
ss[0] = s
|
|
1328
|
-
for (let i = 0; i < len; i++) {
|
|
1329
|
-
const op = ops[i]
|
|
1330
|
-
if (hasFailingGet(op._tag)) {
|
|
1331
|
-
const result = op.get(s)
|
|
1332
|
-
if (Result.isFailure(result)) {
|
|
1333
|
-
return _tag === "OptionalNode" ? result : source
|
|
1334
|
-
}
|
|
1335
|
-
s = result.success
|
|
1336
|
-
} else {
|
|
1337
|
-
s = op.get(s)
|
|
1338
|
-
}
|
|
1339
|
-
ss[i + 1] = s
|
|
1340
|
-
}
|
|
1341
|
-
for (let i = len - 1; i >= 0; i--) {
|
|
1342
|
-
const op = ops[i]
|
|
1343
|
-
if (hasSet(op._tag)) {
|
|
1344
|
-
a = op.set(a)
|
|
1345
|
-
} else if (op._tag === "LensNode") {
|
|
1346
|
-
a = op.set(a, ss[i])
|
|
1347
|
-
} else {
|
|
1348
|
-
const result = op.set(a, ss[i])
|
|
1349
|
-
if (Result.isFailure(result)) {
|
|
1350
|
-
return result
|
|
1351
|
-
}
|
|
1352
|
-
a = result.success
|
|
1353
|
-
}
|
|
1354
|
-
}
|
|
1355
|
-
return _tag === "OptionalNode" ? Result.succeed(a) : a
|
|
1241
|
+
}
|
|
1242
|
+
for (let i = len - 1; i >= 0; i--) {
|
|
1243
|
+
const op = nodes[i]
|
|
1244
|
+
if (hasSourceFreeSet(op.kind)) {
|
|
1245
|
+
a = op.set(a)
|
|
1246
|
+
} else if (op.kind === "Lens") {
|
|
1247
|
+
a = op.set(a, sources[i])
|
|
1248
|
+
} else {
|
|
1249
|
+
const result = op.set(a, sources[i])
|
|
1250
|
+
if (Result.isFailure(result)) {
|
|
1251
|
+
return result
|
|
1356
1252
|
}
|
|
1253
|
+
a = result.success
|
|
1357
1254
|
}
|
|
1358
1255
|
}
|
|
1256
|
+
return kind === "Optional" ? Result.succeed(a) : a
|
|
1359
1257
|
}
|
|
1360
|
-
}
|
|
1258
|
+
}
|
|
1361
1259
|
|
|
1362
|
-
function hasFailingGet(
|
|
1363
|
-
return
|
|
1260
|
+
function hasFailingGet(kind: Kind): boolean {
|
|
1261
|
+
return kind === "Prism" || kind === "Optional"
|
|
1364
1262
|
}
|
|
1365
1263
|
|
|
1366
|
-
function
|
|
1367
|
-
return
|
|
1264
|
+
function hasSourceFreeSet(kind: Kind): boolean {
|
|
1265
|
+
return kind === "Iso" || kind === "Prism"
|
|
1368
1266
|
}
|
|
1369
1267
|
|
|
1370
|
-
function
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
case "LensNode":
|
|
1375
|
-
return hasFailingGet(b) ? "OptionalNode" : "LensNode"
|
|
1376
|
-
case "PrismNode":
|
|
1377
|
-
return hasSet(b) ? "PrismNode" : "OptionalNode"
|
|
1378
|
-
case "OptionalNode":
|
|
1379
|
-
return "OptionalNode"
|
|
1380
|
-
}
|
|
1268
|
+
function composeKind(a: Kind, b: Kind): Kind {
|
|
1269
|
+
if (a === "Iso") return b
|
|
1270
|
+
if (b === "Iso" || a === b) return a
|
|
1271
|
+
return "Optional"
|
|
1381
1272
|
}
|
|
1382
1273
|
// ---------------------------------------------
|
|
1383
1274
|
// Derived APIs
|
|
@@ -1399,7 +1290,7 @@ function getCompositionTag(a: Op["_tag"], b: Op["_tag"]): Op["_tag"] {
|
|
|
1399
1290
|
*
|
|
1400
1291
|
* **Example** (Collecting positive numbers)
|
|
1401
1292
|
*
|
|
1402
|
-
* ```ts
|
|
1293
|
+
* ```ts import.meta.vitest
|
|
1403
1294
|
* import { Optic, Schema } from "effect"
|
|
1404
1295
|
*
|
|
1405
1296
|
* type S = { readonly values: ReadonlyArray<number> }
|
|
@@ -1410,16 +1301,14 @@ function getCompositionTag(a: Op["_tag"], b: Op["_tag"]): Op["_tag"] {
|
|
|
1410
1301
|
*
|
|
1411
1302
|
* const getPositive = Optic.getAll(_pos)
|
|
1412
1303
|
*
|
|
1413
|
-
*
|
|
1414
|
-
* // Output: [3, 5]
|
|
1304
|
+
* getPositive({ values: [3, -1, 5] }) // => [3, 5]
|
|
1415
1305
|
*
|
|
1416
|
-
*
|
|
1417
|
-
* // Output: []
|
|
1306
|
+
* getPositive({ values: [-1, -2] }) // => []
|
|
1418
1307
|
* ```
|
|
1419
1308
|
*
|
|
1420
1309
|
* @see {@link Traversal} — the optic type this operates on
|
|
1421
1310
|
*
|
|
1422
|
-
* @category
|
|
1311
|
+
* @category getters
|
|
1423
1312
|
* @since 4.0.0
|
|
1424
1313
|
*/
|
|
1425
1314
|
export function getAll<S, A>(traversal: Traversal<S, A>): (s: S) => Array<A> {
|
|
@@ -1434,7 +1323,7 @@ export function getAll<S, A>(traversal: Traversal<S, A>): (s: S) => Array<A> {
|
|
|
1434
1323
|
// Built-in Optics
|
|
1435
1324
|
// ---------------------------------------------
|
|
1436
1325
|
|
|
1437
|
-
const identityIso = make(
|
|
1326
|
+
const identityIso = make([])
|
|
1438
1327
|
|
|
1439
1328
|
/**
|
|
1440
1329
|
* Iso that focuses on the whole value unchanged.
|
|
@@ -1451,20 +1340,19 @@ const identityIso = make(identityNode)
|
|
|
1451
1340
|
*
|
|
1452
1341
|
* **Example** (Starting an optic chain)
|
|
1453
1342
|
*
|
|
1454
|
-
* ```ts
|
|
1343
|
+
* ```ts import.meta.vitest
|
|
1455
1344
|
* import { Optic } from "effect"
|
|
1456
1345
|
*
|
|
1457
1346
|
* type S = { readonly x: number }
|
|
1458
1347
|
*
|
|
1459
1348
|
* const _x = Optic.id<S>().key("x")
|
|
1460
1349
|
*
|
|
1461
|
-
*
|
|
1462
|
-
* // Output: 42
|
|
1350
|
+
* _x.get({ x: 42 }) // => 42
|
|
1463
1351
|
* ```
|
|
1464
1352
|
*
|
|
1465
1353
|
* @see {@link Iso} — the type this function returns
|
|
1466
1354
|
*
|
|
1467
|
-
* @category
|
|
1355
|
+
* @category constructors
|
|
1468
1356
|
* @since 4.0.0
|
|
1469
1357
|
*/
|
|
1470
1358
|
export function id<S>(): Iso<S, S> {
|
|
@@ -1488,7 +1376,7 @@ export function id<S>(): Iso<S, S> {
|
|
|
1488
1376
|
*
|
|
1489
1377
|
* **Example** (Traversing record values)
|
|
1490
1378
|
*
|
|
1491
|
-
* ```ts
|
|
1379
|
+
* ```ts import.meta.vitest
|
|
1492
1380
|
* import { Optic, Schema } from "effect"
|
|
1493
1381
|
*
|
|
1494
1382
|
* const _positiveValues = Optic.entries<number>()
|
|
@@ -1496,18 +1384,17 @@ export function id<S>(): Iso<S, S> {
|
|
|
1496
1384
|
*
|
|
1497
1385
|
* const inc = _positiveValues.modifyAll((n) => n + 1)
|
|
1498
1386
|
*
|
|
1499
|
-
*
|
|
1500
|
-
* // Output: { a: 0, b: 4, c: -1 }
|
|
1387
|
+
* inc({ a: 0, b: 3, c: -1 }) // => { a: 0, b: 4, c: -1 }
|
|
1501
1388
|
* ```
|
|
1502
1389
|
*
|
|
1503
1390
|
* @see {@link Iso} — the type this function returns
|
|
1504
1391
|
* @see {@link id} — identity iso
|
|
1505
1392
|
*
|
|
1506
|
-
* @category
|
|
1393
|
+
* @category constructors
|
|
1507
1394
|
* @since 4.0.0
|
|
1508
1395
|
*/
|
|
1509
1396
|
export function entries<A>(): Iso<Record<string, A>, ReadonlyArray<readonly [string, A]>> {
|
|
1510
|
-
return make(
|
|
1397
|
+
return make(primitiveNode("Iso", Object.entries, Object.fromEntries))
|
|
1511
1398
|
}
|
|
1512
1399
|
|
|
1513
1400
|
/**
|
|
@@ -1520,40 +1407,33 @@ export function entries<A>(): Iso<Record<string, A>, ReadonlyArray<readonly [str
|
|
|
1520
1407
|
*
|
|
1521
1408
|
* **Details**
|
|
1522
1409
|
*
|
|
1523
|
-
* - `getResult` fails with
|
|
1410
|
+
* - `getResult` fails with a structured issue when the option is `None`.
|
|
1524
1411
|
* - `set(a)` wraps `a` in `Option.some(a)`.
|
|
1525
1412
|
*
|
|
1526
1413
|
* **Example** (Accessing Some value)
|
|
1527
1414
|
*
|
|
1528
|
-
* ```ts
|
|
1415
|
+
* ```ts import.meta.vitest
|
|
1529
1416
|
* import { Optic, Option, Result } from "effect"
|
|
1530
1417
|
*
|
|
1531
1418
|
* const _some = Optic.id<Option.Option<number>>().compose(Optic.some())
|
|
1532
1419
|
*
|
|
1533
|
-
*
|
|
1534
|
-
* // Output: true
|
|
1420
|
+
* _some.getResult(Option.some(42)) // => Result.succeed(42)
|
|
1535
1421
|
*
|
|
1536
|
-
*
|
|
1537
|
-
* // Output: true
|
|
1422
|
+
* Result.isFailure(_some.getResult(Option.none())) // => true
|
|
1538
1423
|
*
|
|
1539
|
-
*
|
|
1540
|
-
* // Output: { _tag: "Some", value: 10 }
|
|
1424
|
+
* _some.set(10) // => Option.some(10)
|
|
1541
1425
|
* ```
|
|
1542
1426
|
*
|
|
1543
1427
|
* @see {@link none} — focuses on `None` instead
|
|
1544
1428
|
* @see {@link Prism} — the type this function returns
|
|
1545
1429
|
*
|
|
1546
|
-
* @category
|
|
1430
|
+
* @category constructors
|
|
1547
1431
|
* @since 4.0.0
|
|
1548
1432
|
*/
|
|
1549
1433
|
export function some<A>(): Prism<Option.Option<A>, A> {
|
|
1550
1434
|
const run = runRefinement(Option.isSome, { expected: "a Some value" })
|
|
1551
1435
|
return makePrism(
|
|
1552
|
-
(s) =>
|
|
1553
|
-
Result.mapBoth(run(s), {
|
|
1554
|
-
onFailure: String,
|
|
1555
|
-
onSuccess: (s) => s.value
|
|
1556
|
-
}),
|
|
1436
|
+
(s) => Result.map(run(s), (s) => s.value),
|
|
1557
1437
|
Option.some
|
|
1558
1438
|
)
|
|
1559
1439
|
}
|
|
@@ -1573,32 +1453,26 @@ export function some<A>(): Prism<Option.Option<A>, A> {
|
|
|
1573
1453
|
*
|
|
1574
1454
|
* **Example** (Matching None)
|
|
1575
1455
|
*
|
|
1576
|
-
* ```ts
|
|
1456
|
+
* ```ts import.meta.vitest
|
|
1577
1457
|
* import { Optic, Option, Result } from "effect"
|
|
1578
1458
|
*
|
|
1579
1459
|
* const _none = Optic.id<Option.Option<number>>().compose(Optic.none())
|
|
1580
1460
|
*
|
|
1581
|
-
*
|
|
1582
|
-
* // Output: true
|
|
1461
|
+
* _none.getResult(Option.none()) // => Result.succeed(undefined)
|
|
1583
1462
|
*
|
|
1584
|
-
*
|
|
1585
|
-
* // Output: true
|
|
1463
|
+
* Result.isFailure(_none.getResult(Option.some(1))) // => true
|
|
1586
1464
|
* ```
|
|
1587
1465
|
*
|
|
1588
1466
|
* @see {@link some} — focuses on `Some` instead
|
|
1589
1467
|
* @see {@link Prism} — the type this function returns
|
|
1590
1468
|
*
|
|
1591
|
-
* @category
|
|
1469
|
+
* @category constructors
|
|
1592
1470
|
* @since 4.0.0
|
|
1593
1471
|
*/
|
|
1594
1472
|
export function none<A>(): Prism<Option.Option<A>, undefined> {
|
|
1595
1473
|
const run = runRefinement(Option.isNone, { expected: "a None value" })
|
|
1596
1474
|
return makePrism(
|
|
1597
|
-
(s) =>
|
|
1598
|
-
Result.mapBoth(run(s), {
|
|
1599
|
-
onFailure: String,
|
|
1600
|
-
onSuccess: () => undefined
|
|
1601
|
-
}),
|
|
1475
|
+
(s) => Result.map(run(s), () => undefined),
|
|
1602
1476
|
() => Option.none()
|
|
1603
1477
|
)
|
|
1604
1478
|
}
|
|
@@ -1618,32 +1492,26 @@ export function none<A>(): Prism<Option.Option<A>, undefined> {
|
|
|
1618
1492
|
*
|
|
1619
1493
|
* **Example** (Accessing success)
|
|
1620
1494
|
*
|
|
1621
|
-
* ```ts
|
|
1495
|
+
* ```ts import.meta.vitest
|
|
1622
1496
|
* import { Optic, Result } from "effect"
|
|
1623
1497
|
*
|
|
1624
1498
|
* const _ok = Optic.id<Result.Result<number, string>>().compose(Optic.success())
|
|
1625
1499
|
*
|
|
1626
|
-
*
|
|
1627
|
-
* // Output: true
|
|
1500
|
+
* _ok.getResult(Result.succeed(42)) // => Result.succeed(42)
|
|
1628
1501
|
*
|
|
1629
|
-
*
|
|
1630
|
-
* // Output: true
|
|
1502
|
+
* Result.isFailure(_ok.getResult(Result.fail("err"))) // => true
|
|
1631
1503
|
* ```
|
|
1632
1504
|
*
|
|
1633
1505
|
* @see {@link failure} — focuses on the failure side
|
|
1634
1506
|
* @see {@link Prism} — the type this function returns
|
|
1635
1507
|
*
|
|
1636
|
-
* @category
|
|
1508
|
+
* @category constructors
|
|
1637
1509
|
* @since 4.0.0
|
|
1638
1510
|
*/
|
|
1639
1511
|
export function success<A, E>(): Prism<Result.Result<A, E>, A> {
|
|
1640
1512
|
const run = runRefinement(Result.isSuccess, { expected: "a Result.Success value" })
|
|
1641
1513
|
return makePrism(
|
|
1642
|
-
(s) =>
|
|
1643
|
-
Result.mapBoth(run(s), {
|
|
1644
|
-
onFailure: String,
|
|
1645
|
-
onSuccess: (s) => s.success
|
|
1646
|
-
}),
|
|
1514
|
+
(s) => Result.map(run(s), (s) => s.success),
|
|
1647
1515
|
Result.succeed
|
|
1648
1516
|
)
|
|
1649
1517
|
}
|
|
@@ -1663,32 +1531,26 @@ export function success<A, E>(): Prism<Result.Result<A, E>, A> {
|
|
|
1663
1531
|
*
|
|
1664
1532
|
* **Example** (Accessing failure)
|
|
1665
1533
|
*
|
|
1666
|
-
* ```ts
|
|
1534
|
+
* ```ts import.meta.vitest
|
|
1667
1535
|
* import { Optic, Result } from "effect"
|
|
1668
1536
|
*
|
|
1669
1537
|
* const _err = Optic.id<Result.Result<number, string>>().compose(Optic.failure())
|
|
1670
1538
|
*
|
|
1671
|
-
*
|
|
1672
|
-
* // Output: true
|
|
1539
|
+
* _err.getResult(Result.fail("oops")) // => Result.succeed("oops")
|
|
1673
1540
|
*
|
|
1674
|
-
*
|
|
1675
|
-
* // Output: true
|
|
1541
|
+
* Result.isFailure(_err.getResult(Result.succeed(42))) // => true
|
|
1676
1542
|
* ```
|
|
1677
1543
|
*
|
|
1678
1544
|
* @see {@link success} — focuses on the success side
|
|
1679
1545
|
* @see {@link Prism} — the type this function returns
|
|
1680
1546
|
*
|
|
1681
|
-
* @category
|
|
1547
|
+
* @category constructors
|
|
1682
1548
|
* @since 4.0.0
|
|
1683
1549
|
*/
|
|
1684
1550
|
export function failure<A, E>(): Prism<Result.Result<A, E>, E> {
|
|
1685
1551
|
const run = runRefinement(Result.isFailure, { expected: "a Result.Failure value" })
|
|
1686
1552
|
return makePrism(
|
|
1687
|
-
(s) =>
|
|
1688
|
-
Result.mapBoth(run(s), {
|
|
1689
|
-
onFailure: String,
|
|
1690
|
-
onSuccess: (s) => s.failure
|
|
1691
|
-
}),
|
|
1553
|
+
(s) => Result.map(run(s), (s) => s.failure),
|
|
1692
1554
|
Result.fail
|
|
1693
1555
|
)
|
|
1694
1556
|
}
|