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/Config.ts
CHANGED
|
@@ -11,11 +11,13 @@ import type { Path, SourceError } from "./ConfigProvider.ts"
|
|
|
11
11
|
import * as ConfigProvider from "./ConfigProvider.ts"
|
|
12
12
|
import * as Effect from "./Effect.ts"
|
|
13
13
|
import * as Effectable from "./Effectable.ts"
|
|
14
|
-
import { dual } from "./Function.ts"
|
|
14
|
+
import { dual, memoize } from "./Function.ts"
|
|
15
|
+
import * as InternalRecord from "./internal/record.ts"
|
|
15
16
|
import * as LogLevel_ from "./LogLevel.ts"
|
|
16
17
|
import * as Option from "./Option.ts"
|
|
17
18
|
import * as Predicate from "./Predicate.ts"
|
|
18
19
|
import * as Rec from "./Record.ts"
|
|
20
|
+
import * as Result from "./Result.ts"
|
|
19
21
|
import * as Schema from "./Schema.ts"
|
|
20
22
|
import * as SchemaAST from "./SchemaAST.ts"
|
|
21
23
|
import * as SchemaGetter from "./SchemaGetter.ts"
|
|
@@ -35,11 +37,11 @@ const TypeId = "~effect/Config"
|
|
|
35
37
|
*
|
|
36
38
|
* **Example** (Checking Config values)
|
|
37
39
|
*
|
|
38
|
-
* ```ts
|
|
40
|
+
* ```ts import.meta.vitest
|
|
39
41
|
* import { Config } from "effect"
|
|
40
42
|
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
+
* Config.isConfig(Config.string("HOST")) // => true
|
|
44
|
+
* Config.isConfig("not a config") // => false
|
|
43
45
|
* ```
|
|
44
46
|
*
|
|
45
47
|
* @category guards
|
|
@@ -62,7 +64,7 @@ export const isConfig = (u: unknown): u is Config<unknown> => Predicate.hasPrope
|
|
|
62
64
|
* (wrong type, out of range, missing key, etc.).
|
|
63
65
|
*
|
|
64
66
|
* @see {@link orElse} – recover from a ConfigError
|
|
65
|
-
* @see {@link withDefault} – provide a fallback
|
|
67
|
+
* @see {@link withDefault} – provide a fallback when relevant input is absent
|
|
66
68
|
*
|
|
67
69
|
* @category errors
|
|
68
70
|
* @since 4.0.0
|
|
@@ -93,9 +95,7 @@ export class ConfigError {
|
|
|
93
95
|
* **Details**
|
|
94
96
|
*
|
|
95
97
|
* Key members:
|
|
96
|
-
* - `parse(provider
|
|
97
|
-
* The optional path prefix is the logical scope accumulated from outer
|
|
98
|
-
* `Config.nested` calls.
|
|
98
|
+
* - `parse(provider)` – runs the config against a specific provider.
|
|
99
99
|
* - Yieldable – can be yielded inside `Effect.gen`, which automatically
|
|
100
100
|
* resolves the current `ConfigProvider` from the context.
|
|
101
101
|
* - Pipeable – supports `.pipe(Config.map(...))` etc.
|
|
@@ -107,10 +107,39 @@ export class ConfigError {
|
|
|
107
107
|
*/
|
|
108
108
|
export interface Config<out T> extends Effect.Effect<T, ConfigError> {
|
|
109
109
|
readonly [TypeId]: typeof TypeId
|
|
110
|
-
readonly parse: (
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
110
|
+
readonly parse: (provider: ConfigProvider.ConfigProvider) => Effect.Effect<T, ConfigError>
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
// Config composition needs to distinguish an absent recipe from a hard failure
|
|
114
|
+
// before the public Effect error channel is finalized. `hasInput` records
|
|
115
|
+
// provider evidence separately from the value, because successful values such
|
|
116
|
+
// as `undefined` and values supplied by defaults are not evidence of input.
|
|
117
|
+
// Hard failures carry the same evidence so recovery cannot erase it.
|
|
118
|
+
interface Resolved<out T> {
|
|
119
|
+
readonly _tag: "Resolved"
|
|
120
|
+
readonly value: T
|
|
121
|
+
readonly hasInput: boolean
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
interface Absent {
|
|
125
|
+
readonly _tag: "Absent"
|
|
126
|
+
readonly error: ConfigError
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
type Resolution<T> = Resolved<T> | Absent
|
|
130
|
+
|
|
131
|
+
interface EvaluationFailure {
|
|
132
|
+
readonly error: ConfigError
|
|
133
|
+
readonly hasInput: boolean
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
type Evaluator<T> = (
|
|
137
|
+
provider: ConfigProvider.ConfigProvider,
|
|
138
|
+
pathPrefix: Path
|
|
139
|
+
) => Effect.Effect<Resolution<T>, EvaluationFailure>
|
|
140
|
+
|
|
141
|
+
interface ConfigImpl<out T> extends Config<T> {
|
|
142
|
+
readonly evaluator: Evaluator<T>
|
|
114
143
|
}
|
|
115
144
|
|
|
116
145
|
const Proto = {
|
|
@@ -129,13 +158,71 @@ const Proto = {
|
|
|
129
158
|
}
|
|
130
159
|
|
|
131
160
|
function make<T>(
|
|
132
|
-
|
|
161
|
+
evaluator: Evaluator<T>
|
|
133
162
|
): Config<T> {
|
|
134
163
|
const self = Object.create(Proto)
|
|
135
|
-
self.
|
|
164
|
+
self.evaluator = evaluator
|
|
165
|
+
self.parse = (provider: ConfigProvider.ConfigProvider) =>
|
|
166
|
+
evaluator(provider, []).pipe(
|
|
167
|
+
Effect.mapErrorEager((failure) => failure.error),
|
|
168
|
+
Effect.flatMapEager((resolution) =>
|
|
169
|
+
resolution._tag === "Resolved" ? Effect.succeed(resolution.value) : Effect.fail(resolution.error)
|
|
170
|
+
)
|
|
171
|
+
)
|
|
136
172
|
return self
|
|
137
173
|
}
|
|
138
174
|
|
|
175
|
+
const evaluateAt = <T>(
|
|
176
|
+
self: Config<T>,
|
|
177
|
+
provider: ConfigProvider.ConfigProvider,
|
|
178
|
+
pathPrefix: Path
|
|
179
|
+
): Effect.Effect<Resolution<T>, EvaluationFailure> => (self as ConfigImpl<T>).evaluator(provider, pathPrefix)
|
|
180
|
+
|
|
181
|
+
const resolved = <T>(value: T, hasInput: boolean): Resolution<T> => ({
|
|
182
|
+
_tag: "Resolved",
|
|
183
|
+
value,
|
|
184
|
+
hasInput
|
|
185
|
+
})
|
|
186
|
+
|
|
187
|
+
const absent = (error: ConfigError): Absent => ({
|
|
188
|
+
_tag: "Absent",
|
|
189
|
+
error
|
|
190
|
+
})
|
|
191
|
+
|
|
192
|
+
const evaluationFailure = (error: ConfigError, hasInput: boolean): EvaluationFailure => ({
|
|
193
|
+
error,
|
|
194
|
+
hasInput
|
|
195
|
+
})
|
|
196
|
+
|
|
197
|
+
const isSourceError = (u: unknown): u is ConfigProvider.SourceError => Predicate.isTagged(u, "SourceError")
|
|
198
|
+
|
|
199
|
+
const catchSourceError = <A, E, R>(
|
|
200
|
+
self: Effect.Effect<A, E, R>,
|
|
201
|
+
hasInput: boolean
|
|
202
|
+
): Effect.Effect<A, E | EvaluationFailure, R> =>
|
|
203
|
+
self.pipe(
|
|
204
|
+
Effect.catchDefect((defect) =>
|
|
205
|
+
isSourceError(defect)
|
|
206
|
+
? Effect.fail(evaluationFailure(new ConfigError(defect), hasInput))
|
|
207
|
+
: Effect.die(defect)
|
|
208
|
+
)
|
|
209
|
+
)
|
|
210
|
+
|
|
211
|
+
const preserveInputEvidence = <T>(
|
|
212
|
+
self: Effect.Effect<Resolution<T>, EvaluationFailure>,
|
|
213
|
+
hasInput: boolean
|
|
214
|
+
): Effect.Effect<Resolution<T>, EvaluationFailure> => {
|
|
215
|
+
if (!hasInput) return self
|
|
216
|
+
return self.pipe(
|
|
217
|
+
Effect.mapErrorEager((failure) => evaluationFailure(failure.error, true)),
|
|
218
|
+
Effect.flatMapEager((resolution) =>
|
|
219
|
+
resolution._tag === "Resolved"
|
|
220
|
+
? Effect.succeed(resolved(resolution.value, true))
|
|
221
|
+
: Effect.fail(evaluationFailure(resolution.error, true))
|
|
222
|
+
)
|
|
223
|
+
)
|
|
224
|
+
}
|
|
225
|
+
|
|
139
226
|
/**
|
|
140
227
|
* Transforms the parsed value of a config with a pure function.
|
|
141
228
|
*
|
|
@@ -146,7 +233,7 @@ function make<T>(
|
|
|
146
233
|
*
|
|
147
234
|
* **Example** (Uppercasing a string config)
|
|
148
235
|
*
|
|
149
|
-
* ```ts
|
|
236
|
+
* ```ts import.meta.vitest
|
|
150
237
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
151
238
|
*
|
|
152
239
|
* const upper = Config.string("name").pipe(
|
|
@@ -154,7 +241,7 @@ function make<T>(
|
|
|
154
241
|
* )
|
|
155
242
|
*
|
|
156
243
|
* const provider = ConfigProvider.fromUnknown({ name: "alice" })
|
|
157
|
-
*
|
|
244
|
+
* Effect.runSync(upper.parse(provider)) // => "ALICE"
|
|
158
245
|
* ```
|
|
159
246
|
*
|
|
160
247
|
* @see {@link mapOrFail} – when the transformation can fail
|
|
@@ -173,7 +260,7 @@ export const map: {
|
|
|
173
260
|
*
|
|
174
261
|
* **Example** (Uppercasing a string config)
|
|
175
262
|
*
|
|
176
|
-
* ```ts
|
|
263
|
+
* ```ts import.meta.vitest
|
|
177
264
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
178
265
|
*
|
|
179
266
|
* const upper = Config.string("name").pipe(
|
|
@@ -181,7 +268,7 @@ export const map: {
|
|
|
181
268
|
* )
|
|
182
269
|
*
|
|
183
270
|
* const provider = ConfigProvider.fromUnknown({ name: "alice" })
|
|
184
|
-
*
|
|
271
|
+
* Effect.runSync(upper.parse(provider)) // => "ALICE"
|
|
185
272
|
* ```
|
|
186
273
|
*
|
|
187
274
|
* @see {@link mapOrFail} – when the transformation can fail
|
|
@@ -200,7 +287,7 @@ export const map: {
|
|
|
200
287
|
*
|
|
201
288
|
* **Example** (Uppercasing a string config)
|
|
202
289
|
*
|
|
203
|
-
* ```ts
|
|
290
|
+
* ```ts import.meta.vitest
|
|
204
291
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
205
292
|
*
|
|
206
293
|
* const upper = Config.string("name").pipe(
|
|
@@ -208,7 +295,7 @@ export const map: {
|
|
|
208
295
|
* )
|
|
209
296
|
*
|
|
210
297
|
* const provider = ConfigProvider.fromUnknown({ name: "alice" })
|
|
211
|
-
*
|
|
298
|
+
* Effect.runSync(upper.parse(provider)) // => "ALICE"
|
|
212
299
|
* ```
|
|
213
300
|
*
|
|
214
301
|
* @see {@link mapOrFail} – when the transformation can fail
|
|
@@ -218,7 +305,12 @@ export const map: {
|
|
|
218
305
|
*/
|
|
219
306
|
<A, B>(self: Config<A>, f: (a: A) => B): Config<B>
|
|
220
307
|
} = dual(2, <A, B>(self: Config<A>, f: (a: A) => B): Config<B> => {
|
|
221
|
-
return make((provider, pathPrefix) =>
|
|
308
|
+
return make((provider, pathPrefix) =>
|
|
309
|
+
Effect.map(evaluateAt(self, provider, pathPrefix), (resolution) =>
|
|
310
|
+
resolution._tag === "Resolved"
|
|
311
|
+
? resolved(f(resolution.value), resolution.hasInput)
|
|
312
|
+
: resolution)
|
|
313
|
+
)
|
|
222
314
|
})
|
|
223
315
|
|
|
224
316
|
/**
|
|
@@ -231,12 +323,14 @@ export const map: {
|
|
|
231
323
|
*
|
|
232
324
|
* **Example** (Wrapping a value in an effectful transformation)
|
|
233
325
|
*
|
|
234
|
-
* ```ts
|
|
235
|
-
* import { Config, Effect } from "effect"
|
|
326
|
+
* ```ts import.meta.vitest
|
|
327
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
236
328
|
*
|
|
237
329
|
* const trimmed = Config.string("name").pipe(
|
|
238
330
|
* Config.mapOrFail((s) => Effect.succeed(s.trim()))
|
|
239
331
|
* )
|
|
332
|
+
* const provider = ConfigProvider.fromUnknown({ name: " Alice " })
|
|
333
|
+
* Effect.runSync(trimmed.parse(provider)) // => "Alice"
|
|
240
334
|
* ```
|
|
241
335
|
*
|
|
242
336
|
* @see {@link map} – when the transformation cannot fail
|
|
@@ -255,12 +349,14 @@ export const mapOrFail: {
|
|
|
255
349
|
*
|
|
256
350
|
* **Example** (Wrapping a value in an effectful transformation)
|
|
257
351
|
*
|
|
258
|
-
* ```ts
|
|
259
|
-
* import { Config, Effect } from "effect"
|
|
352
|
+
* ```ts import.meta.vitest
|
|
353
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
260
354
|
*
|
|
261
355
|
* const trimmed = Config.string("name").pipe(
|
|
262
356
|
* Config.mapOrFail((s) => Effect.succeed(s.trim()))
|
|
263
357
|
* )
|
|
358
|
+
* const provider = ConfigProvider.fromUnknown({ name: " Alice " })
|
|
359
|
+
* Effect.runSync(trimmed.parse(provider)) // => "Alice"
|
|
264
360
|
* ```
|
|
265
361
|
*
|
|
266
362
|
* @see {@link map} – when the transformation cannot fail
|
|
@@ -279,12 +375,14 @@ export const mapOrFail: {
|
|
|
279
375
|
*
|
|
280
376
|
* **Example** (Wrapping a value in an effectful transformation)
|
|
281
377
|
*
|
|
282
|
-
* ```ts
|
|
283
|
-
* import { Config, Effect } from "effect"
|
|
378
|
+
* ```ts import.meta.vitest
|
|
379
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
284
380
|
*
|
|
285
381
|
* const trimmed = Config.string("name").pipe(
|
|
286
382
|
* Config.mapOrFail((s) => Effect.succeed(s.trim()))
|
|
287
383
|
* )
|
|
384
|
+
* const provider = ConfigProvider.fromUnknown({ name: " Alice " })
|
|
385
|
+
* Effect.runSync(trimmed.parse(provider)) // => "Alice"
|
|
288
386
|
* ```
|
|
289
387
|
*
|
|
290
388
|
* @see {@link map} – when the transformation cannot fail
|
|
@@ -294,7 +392,15 @@ export const mapOrFail: {
|
|
|
294
392
|
*/
|
|
295
393
|
<A, B>(self: Config<A>, f: (a: A) => Effect.Effect<B, ConfigError>): Config<B>
|
|
296
394
|
} = dual(2, <A, B>(self: Config<A>, f: (a: A) => Effect.Effect<B, ConfigError>): Config<B> => {
|
|
297
|
-
return make((provider, pathPrefix) =>
|
|
395
|
+
return make((provider, pathPrefix) =>
|
|
396
|
+
Effect.flatMap(evaluateAt(self, provider, pathPrefix), (resolution) =>
|
|
397
|
+
resolution._tag === "Resolved"
|
|
398
|
+
? f(resolution.value).pipe(
|
|
399
|
+
Effect.mapEager((value) => resolved(value, resolution.hasInput)),
|
|
400
|
+
Effect.mapErrorEager((error) => evaluationFailure(error, resolution.hasInput))
|
|
401
|
+
)
|
|
402
|
+
: Effect.succeed(resolution))
|
|
403
|
+
)
|
|
298
404
|
})
|
|
299
405
|
|
|
300
406
|
/**
|
|
@@ -307,21 +413,30 @@ export const mapOrFail: {
|
|
|
307
413
|
*
|
|
308
414
|
* **Details**
|
|
309
415
|
*
|
|
310
|
-
* Unlike {@link withDefault}, this
|
|
311
|
-
*
|
|
416
|
+
* Unlike {@link withDefault}, this handles both semantic absence and **all**
|
|
417
|
+
* `ConfigError`s. The fallback function receives the error and returns a new
|
|
312
418
|
* `Config`.
|
|
313
419
|
*
|
|
420
|
+
* **Gotchas**
|
|
421
|
+
*
|
|
422
|
+
* Recovery preserves whether the primary config read provider input. When the
|
|
423
|
+
* recovered config is composed with {@link all}, invalid input in the primary
|
|
424
|
+
* branch still makes the enclosing group partially supplied, so an outer
|
|
425
|
+
* {@link withDefault} or {@link option} does not replace the whole group.
|
|
426
|
+
*
|
|
314
427
|
* **Example** (Falling back to a literal)
|
|
315
428
|
*
|
|
316
|
-
* ```ts
|
|
317
|
-
* import { Config } from "effect"
|
|
429
|
+
* ```ts import.meta.vitest
|
|
430
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
318
431
|
*
|
|
319
432
|
* const hostConfig = Config.string("HOST").pipe(
|
|
320
433
|
* Config.orElse(() => Config.succeed("localhost"))
|
|
321
434
|
* )
|
|
435
|
+
* const provider = ConfigProvider.fromUnknown({})
|
|
436
|
+
* Effect.runSync(hostConfig.parse(provider)) // => "localhost"
|
|
322
437
|
* ```
|
|
323
438
|
*
|
|
324
|
-
* @see {@link withDefault} – fallback only on
|
|
439
|
+
* @see {@link withDefault} – fallback only on semantic absence
|
|
325
440
|
*
|
|
326
441
|
* @category combinators
|
|
327
442
|
* @since 2.0.0
|
|
@@ -337,21 +452,30 @@ export const orElse: {
|
|
|
337
452
|
*
|
|
338
453
|
* **Details**
|
|
339
454
|
*
|
|
340
|
-
* Unlike {@link withDefault}, this
|
|
341
|
-
*
|
|
455
|
+
* Unlike {@link withDefault}, this handles both semantic absence and **all**
|
|
456
|
+
* `ConfigError`s. The fallback function receives the error and returns a new
|
|
342
457
|
* `Config`.
|
|
343
458
|
*
|
|
459
|
+
* **Gotchas**
|
|
460
|
+
*
|
|
461
|
+
* Recovery preserves whether the primary config read provider input. When the
|
|
462
|
+
* recovered config is composed with {@link all}, invalid input in the primary
|
|
463
|
+
* branch still makes the enclosing group partially supplied, so an outer
|
|
464
|
+
* {@link withDefault} or {@link option} does not replace the whole group.
|
|
465
|
+
*
|
|
344
466
|
* **Example** (Falling back to a literal)
|
|
345
467
|
*
|
|
346
|
-
* ```ts
|
|
347
|
-
* import { Config } from "effect"
|
|
468
|
+
* ```ts import.meta.vitest
|
|
469
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
348
470
|
*
|
|
349
471
|
* const hostConfig = Config.string("HOST").pipe(
|
|
350
472
|
* Config.orElse(() => Config.succeed("localhost"))
|
|
351
473
|
* )
|
|
474
|
+
* const provider = ConfigProvider.fromUnknown({})
|
|
475
|
+
* Effect.runSync(hostConfig.parse(provider)) // => "localhost"
|
|
352
476
|
* ```
|
|
353
477
|
*
|
|
354
|
-
* @see {@link withDefault} – fallback only on
|
|
478
|
+
* @see {@link withDefault} – fallback only on semantic absence
|
|
355
479
|
*
|
|
356
480
|
* @category combinators
|
|
357
481
|
* @since 2.0.0
|
|
@@ -367,30 +491,87 @@ export const orElse: {
|
|
|
367
491
|
*
|
|
368
492
|
* **Details**
|
|
369
493
|
*
|
|
370
|
-
* Unlike {@link withDefault}, this
|
|
371
|
-
*
|
|
494
|
+
* Unlike {@link withDefault}, this handles both semantic absence and **all**
|
|
495
|
+
* `ConfigError`s. The fallback function receives the error and returns a new
|
|
372
496
|
* `Config`.
|
|
373
497
|
*
|
|
498
|
+
* **Gotchas**
|
|
499
|
+
*
|
|
500
|
+
* Recovery preserves whether the primary config read provider input. When the
|
|
501
|
+
* recovered config is composed with {@link all}, invalid input in the primary
|
|
502
|
+
* branch still makes the enclosing group partially supplied, so an outer
|
|
503
|
+
* {@link withDefault} or {@link option} does not replace the whole group.
|
|
504
|
+
*
|
|
374
505
|
* **Example** (Falling back to a literal)
|
|
375
506
|
*
|
|
376
|
-
* ```ts
|
|
377
|
-
* import { Config } from "effect"
|
|
507
|
+
* ```ts import.meta.vitest
|
|
508
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
378
509
|
*
|
|
379
510
|
* const hostConfig = Config.string("HOST").pipe(
|
|
380
511
|
* Config.orElse(() => Config.succeed("localhost"))
|
|
381
512
|
* )
|
|
513
|
+
* const provider = ConfigProvider.fromUnknown({})
|
|
514
|
+
* Effect.runSync(hostConfig.parse(provider)) // => "localhost"
|
|
382
515
|
* ```
|
|
383
516
|
*
|
|
384
|
-
* @see {@link withDefault} – fallback only on
|
|
517
|
+
* @see {@link withDefault} – fallback only on semantic absence
|
|
385
518
|
*
|
|
386
519
|
* @category combinators
|
|
387
520
|
* @since 2.0.0
|
|
388
521
|
*/
|
|
389
522
|
<A, A2>(self: Config<A>, that: (error: ConfigError) => Config<A2>): Config<A | A2>
|
|
390
523
|
} = dual(2, <A, A2>(self: Config<A>, that: (error: ConfigError) => Config<A2>): Config<A | A2> => {
|
|
391
|
-
return make
|
|
392
|
-
|
|
393
|
-
|
|
524
|
+
return make</**
|
|
525
|
+
* Provides a fallback config when parsing fails with a `ConfigError`.
|
|
526
|
+
*
|
|
527
|
+
* **When to use**
|
|
528
|
+
*
|
|
529
|
+
* Use when you need to try an alternative config source after the primary one
|
|
530
|
+
* fails.
|
|
531
|
+
*
|
|
532
|
+
* **Details**
|
|
533
|
+
*
|
|
534
|
+
* Unlike {@link withDefault}, this handles both semantic absence and **all**
|
|
535
|
+
* `ConfigError`s. The fallback function receives the error and returns a new
|
|
536
|
+
* `Config`.
|
|
537
|
+
*
|
|
538
|
+
* **Gotchas**
|
|
539
|
+
*
|
|
540
|
+
* Recovery preserves whether the primary config read provider input. When the
|
|
541
|
+
* recovered config is composed with {@link all}, invalid input in the primary
|
|
542
|
+
* branch still makes the enclosing group partially supplied, so an outer
|
|
543
|
+
* {@link withDefault} or {@link option} does not replace the whole group.
|
|
544
|
+
*
|
|
545
|
+
* **Example** (Falling back to a literal)
|
|
546
|
+
*
|
|
547
|
+
* ```ts import.meta.vitest
|
|
548
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
549
|
+
*
|
|
550
|
+
* const hostConfig = Config.string("HOST").pipe(
|
|
551
|
+
* Config.orElse(() => Config.succeed("localhost"))
|
|
552
|
+
* )
|
|
553
|
+
* const provider = ConfigProvider.fromUnknown({})
|
|
554
|
+
* Effect.runSync(hostConfig.parse(provider)) // => "localhost"
|
|
555
|
+
* ```
|
|
556
|
+
*
|
|
557
|
+
* @see {@link withDefault} – fallback only on semantic absence
|
|
558
|
+
*
|
|
559
|
+
* @category combinators
|
|
560
|
+
* @since 2.0.0
|
|
561
|
+
*/
|
|
562
|
+
A | A2>((provider, pathPrefix) =>
|
|
563
|
+
Effect.matchEffect(evaluateAt(self, provider, pathPrefix), {
|
|
564
|
+
onFailure: (failure) =>
|
|
565
|
+
preserveInputEvidence(
|
|
566
|
+
evaluateAt(that(failure.error), provider, pathPrefix),
|
|
567
|
+
failure.hasInput
|
|
568
|
+
),
|
|
569
|
+
onSuccess: (resolution): Effect.Effect<Resolution<A | A2>, EvaluationFailure> =>
|
|
570
|
+
resolution._tag === "Absent"
|
|
571
|
+
? evaluateAt(that(resolution.error), provider, pathPrefix)
|
|
572
|
+
: Effect.succeed(resolution)
|
|
573
|
+
})
|
|
574
|
+
);
|
|
394
575
|
})
|
|
395
576
|
|
|
396
577
|
/**
|
|
@@ -405,9 +586,19 @@ export const orElse: {
|
|
|
405
586
|
* Accepts a tuple (preserves positions), an iterable, or a record of configs.
|
|
406
587
|
* Returns a config whose parsed value mirrors the input shape.
|
|
407
588
|
*
|
|
589
|
+
* A combined config is absent when at least one child cannot resolve and none
|
|
590
|
+
* of the other children read provider input. This lets {@link withDefault} and
|
|
591
|
+
* {@link option} handle a wholly absent group. Once any child reads input, a
|
|
592
|
+
* missing sibling makes the group incomplete and parsing fails. Values supplied
|
|
593
|
+
* by child defaults do not count as provider input.
|
|
594
|
+
*
|
|
595
|
+
* Unlike a `Schema.Struct` passed to {@link schema}, `all` only considers input
|
|
596
|
+
* read by its children. An explicitly present but empty parent container does
|
|
597
|
+
* not by itself make the group present.
|
|
598
|
+
*
|
|
408
599
|
* **Example** (Combining configs as a struct)
|
|
409
600
|
*
|
|
410
|
-
* ```ts
|
|
601
|
+
* ```ts import.meta.vitest
|
|
411
602
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
412
603
|
*
|
|
413
604
|
* const dbConfig = Config.all({
|
|
@@ -416,8 +607,7 @@ export const orElse: {
|
|
|
416
607
|
* })
|
|
417
608
|
*
|
|
418
609
|
* const provider = ConfigProvider.fromUnknown({ host: "localhost", port: 5432 })
|
|
419
|
-
*
|
|
420
|
-
* // { host: "localhost", port: 5432 }
|
|
610
|
+
* Effect.runSync(dbConfig.parse(provider)) // => { host: "localhost", port: 5432 }
|
|
421
611
|
* ```
|
|
422
612
|
*
|
|
423
613
|
* @category combinators
|
|
@@ -442,46 +632,85 @@ export function all<const Arg extends Iterable<Config<any>> | Record<string, Con
|
|
|
442
632
|
: arg
|
|
443
633
|
if (Array.isArray(configs)) {
|
|
444
634
|
return make((provider, pathPrefix) =>
|
|
445
|
-
Effect.
|
|
635
|
+
Effect.flatMapEager(
|
|
636
|
+
Effect.all(configs.map((config) => Effect.result(evaluateAt(config, provider, pathPrefix)))),
|
|
637
|
+
resolveArray
|
|
638
|
+
)
|
|
446
639
|
) as any
|
|
447
640
|
} else {
|
|
448
641
|
return make((provider, pathPrefix) =>
|
|
449
|
-
Effect.
|
|
642
|
+
Effect.flatMapEager(
|
|
643
|
+
Effect.all(Rec.map(configs, (config) => Effect.result(evaluateAt(config, provider, pathPrefix)))),
|
|
644
|
+
resolveRecord
|
|
645
|
+
)
|
|
450
646
|
) as any
|
|
451
647
|
}
|
|
452
648
|
}
|
|
453
649
|
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
650
|
+
const resolveArray = (
|
|
651
|
+
results: ReadonlyArray<Result.Result<Resolution<any>, EvaluationFailure>>
|
|
652
|
+
): Effect.Effect<Resolution<Array<any>>, EvaluationFailure> => {
|
|
653
|
+
const values: Array<any> = []
|
|
654
|
+
let firstFailure: EvaluationFailure | undefined
|
|
655
|
+
let firstAbsent: Absent | undefined
|
|
656
|
+
let hasInput = false
|
|
657
|
+
for (const result of results) {
|
|
658
|
+
if (Result.isFailure(result)) {
|
|
659
|
+
firstFailure ??= result.failure
|
|
660
|
+
hasInput = hasInput || result.failure.hasInput
|
|
661
|
+
continue
|
|
662
|
+
}
|
|
663
|
+
const resolution = result.success
|
|
664
|
+
if (resolution._tag === "Absent") {
|
|
665
|
+
firstAbsent ??= resolution
|
|
666
|
+
} else {
|
|
667
|
+
values.push(resolution.value)
|
|
668
|
+
hasInput = hasInput || resolution.hasInput
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
if (firstFailure !== undefined) {
|
|
672
|
+
return Effect.fail(evaluationFailure(firstFailure.error, hasInput))
|
|
673
|
+
}
|
|
674
|
+
if (firstAbsent !== undefined) {
|
|
675
|
+
return hasInput ? Effect.fail(evaluationFailure(firstAbsent.error, true)) : Effect.succeed(firstAbsent)
|
|
676
|
+
}
|
|
677
|
+
return Effect.succeed(resolved(values, hasInput))
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
const resolveRecord = (
|
|
681
|
+
results: Record<string, Result.Result<Resolution<any>, EvaluationFailure>>
|
|
682
|
+
): Effect.Effect<Resolution<Record<string, any>>, EvaluationFailure> => {
|
|
683
|
+
const values: Record<string, any> = {}
|
|
684
|
+
let firstFailure: EvaluationFailure | undefined
|
|
685
|
+
let firstAbsent: Absent | undefined
|
|
686
|
+
let hasInput = false
|
|
687
|
+
for (const key in results) {
|
|
688
|
+
const result = results[key]
|
|
689
|
+
if (Result.isFailure(result)) {
|
|
690
|
+
firstFailure ??= result.failure
|
|
691
|
+
hasInput = hasInput || result.failure.hasInput
|
|
692
|
+
continue
|
|
693
|
+
}
|
|
694
|
+
const resolution = result.success
|
|
695
|
+
if (resolution._tag === "Absent") {
|
|
696
|
+
firstAbsent ??= resolution
|
|
697
|
+
} else {
|
|
698
|
+
InternalRecord.assignProperty(values, key, resolution.value)
|
|
699
|
+
hasInput = hasInput || resolution.hasInput
|
|
700
|
+
}
|
|
701
|
+
}
|
|
702
|
+
if (firstFailure !== undefined) {
|
|
703
|
+
return Effect.fail(evaluationFailure(firstFailure.error, hasInput))
|
|
480
704
|
}
|
|
705
|
+
if (firstAbsent !== undefined) {
|
|
706
|
+
return hasInput ? Effect.fail(evaluationFailure(firstAbsent.error, true)) : Effect.succeed(firstAbsent)
|
|
707
|
+
}
|
|
708
|
+
return Effect.succeed(resolved(values, hasInput))
|
|
481
709
|
}
|
|
482
710
|
|
|
483
711
|
/**
|
|
484
|
-
* Provides a fallback value when the config
|
|
712
|
+
* Provides a fallback value when the config cannot resolve because none of its
|
|
713
|
+
* relevant input is present.
|
|
485
714
|
*
|
|
486
715
|
* **When to use**
|
|
487
716
|
*
|
|
@@ -489,30 +718,33 @@ function isMissingDataOnly(issue: SchemaIssue.Issue): boolean {
|
|
|
489
718
|
*
|
|
490
719
|
* **Gotchas**
|
|
491
720
|
*
|
|
492
|
-
*
|
|
493
|
-
*
|
|
494
|
-
*
|
|
721
|
+
* Validation errors and partially supplied groups still propagate. A schema
|
|
722
|
+
* that successfully decodes absent input also keeps its decoded value instead
|
|
723
|
+
* of using the default. Schema configs first represent a missing or
|
|
724
|
+
* incompatible provider shape as `undefined`; the default is used only when
|
|
725
|
+
* the schema rejects that value and no relevant input was found.
|
|
495
726
|
*
|
|
496
727
|
* **Example** (Defaulting a missing port)
|
|
497
728
|
*
|
|
498
|
-
* ```ts
|
|
729
|
+
* ```ts import.meta.vitest
|
|
499
730
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
500
731
|
*
|
|
501
732
|
* const port = Config.number("port").pipe(Config.withDefault(3000))
|
|
502
733
|
*
|
|
503
734
|
* const provider = ConfigProvider.fromUnknown({})
|
|
504
|
-
*
|
|
735
|
+
* Effect.runSync(port.parse(provider)) // => 3000
|
|
505
736
|
* ```
|
|
506
737
|
*
|
|
507
738
|
* @see {@link option} – returns `Option` instead of a default value
|
|
508
|
-
* @see {@link orElse} – catches all errors, not just
|
|
739
|
+
* @see {@link orElse} – catches all errors, not just absent input
|
|
509
740
|
*
|
|
510
741
|
* @category combinators
|
|
511
742
|
* @since 2.0.0
|
|
512
743
|
*/
|
|
513
744
|
export const withDefault: {
|
|
514
745
|
/**
|
|
515
|
-
* Provides a fallback value when the config
|
|
746
|
+
* Provides a fallback value when the config cannot resolve because none of its
|
|
747
|
+
* relevant input is present.
|
|
516
748
|
*
|
|
517
749
|
* **When to use**
|
|
518
750
|
*
|
|
@@ -520,30 +752,33 @@ export const withDefault: {
|
|
|
520
752
|
*
|
|
521
753
|
* **Gotchas**
|
|
522
754
|
*
|
|
523
|
-
*
|
|
524
|
-
*
|
|
525
|
-
*
|
|
755
|
+
* Validation errors and partially supplied groups still propagate. A schema
|
|
756
|
+
* that successfully decodes absent input also keeps its decoded value instead
|
|
757
|
+
* of using the default. Schema configs first represent a missing or
|
|
758
|
+
* incompatible provider shape as `undefined`; the default is used only when
|
|
759
|
+
* the schema rejects that value and no relevant input was found.
|
|
526
760
|
*
|
|
527
761
|
* **Example** (Defaulting a missing port)
|
|
528
762
|
*
|
|
529
|
-
* ```ts
|
|
763
|
+
* ```ts import.meta.vitest
|
|
530
764
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
531
765
|
*
|
|
532
766
|
* const port = Config.number("port").pipe(Config.withDefault(3000))
|
|
533
767
|
*
|
|
534
768
|
* const provider = ConfigProvider.fromUnknown({})
|
|
535
|
-
*
|
|
769
|
+
* Effect.runSync(port.parse(provider)) // => 3000
|
|
536
770
|
* ```
|
|
537
771
|
*
|
|
538
772
|
* @see {@link option} – returns `Option` instead of a default value
|
|
539
|
-
* @see {@link orElse} – catches all errors, not just
|
|
773
|
+
* @see {@link orElse} – catches all errors, not just absent input
|
|
540
774
|
*
|
|
541
775
|
* @category combinators
|
|
542
776
|
* @since 2.0.0
|
|
543
777
|
*/
|
|
544
778
|
<const A2>(defaultValue: A2): <A>(self: Config<A>) => Config<A2 | A>
|
|
545
779
|
/**
|
|
546
|
-
* Provides a fallback value when the config
|
|
780
|
+
* Provides a fallback value when the config cannot resolve because none of its
|
|
781
|
+
* relevant input is present.
|
|
547
782
|
*
|
|
548
783
|
* **When to use**
|
|
549
784
|
*
|
|
@@ -551,43 +786,75 @@ export const withDefault: {
|
|
|
551
786
|
*
|
|
552
787
|
* **Gotchas**
|
|
553
788
|
*
|
|
554
|
-
*
|
|
555
|
-
*
|
|
556
|
-
*
|
|
789
|
+
* Validation errors and partially supplied groups still propagate. A schema
|
|
790
|
+
* that successfully decodes absent input also keeps its decoded value instead
|
|
791
|
+
* of using the default. Schema configs first represent a missing or
|
|
792
|
+
* incompatible provider shape as `undefined`; the default is used only when
|
|
793
|
+
* the schema rejects that value and no relevant input was found.
|
|
557
794
|
*
|
|
558
795
|
* **Example** (Defaulting a missing port)
|
|
559
796
|
*
|
|
560
|
-
* ```ts
|
|
797
|
+
* ```ts import.meta.vitest
|
|
561
798
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
562
799
|
*
|
|
563
800
|
* const port = Config.number("port").pipe(Config.withDefault(3000))
|
|
564
801
|
*
|
|
565
802
|
* const provider = ConfigProvider.fromUnknown({})
|
|
566
|
-
*
|
|
803
|
+
* Effect.runSync(port.parse(provider)) // => 3000
|
|
567
804
|
* ```
|
|
568
805
|
*
|
|
569
806
|
* @see {@link option} – returns `Option` instead of a default value
|
|
570
|
-
* @see {@link orElse} – catches all errors, not just
|
|
807
|
+
* @see {@link orElse} – catches all errors, not just absent input
|
|
571
808
|
*
|
|
572
809
|
* @category combinators
|
|
573
810
|
* @since 2.0.0
|
|
574
811
|
*/
|
|
575
812
|
<A, const A2>(self: Config<A>, defaultValue: A2): Config<A | A2>
|
|
576
813
|
} = dual(2, <A, const A2>(self: Config<A>, defaultValue: A2): Config<A | A2> => {
|
|
577
|
-
return
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
814
|
+
return make</**
|
|
815
|
+
* Provides a fallback value when the config cannot resolve because none of its
|
|
816
|
+
* relevant input is present.
|
|
817
|
+
*
|
|
818
|
+
* **When to use**
|
|
819
|
+
*
|
|
820
|
+
* Use when you need to make a config key optional with a sensible default.
|
|
821
|
+
*
|
|
822
|
+
* **Gotchas**
|
|
823
|
+
*
|
|
824
|
+
* Validation errors and partially supplied groups still propagate. A schema
|
|
825
|
+
* that successfully decodes absent input also keeps its decoded value instead
|
|
826
|
+
* of using the default. Schema configs first represent a missing or
|
|
827
|
+
* incompatible provider shape as `undefined`; the default is used only when
|
|
828
|
+
* the schema rejects that value and no relevant input was found.
|
|
829
|
+
*
|
|
830
|
+
* **Example** (Defaulting a missing port)
|
|
831
|
+
*
|
|
832
|
+
* ```ts import.meta.vitest
|
|
833
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
834
|
+
*
|
|
835
|
+
* const port = Config.number("port").pipe(Config.withDefault(3000))
|
|
836
|
+
*
|
|
837
|
+
* const provider = ConfigProvider.fromUnknown({})
|
|
838
|
+
* Effect.runSync(port.parse(provider)) // => 3000
|
|
839
|
+
* ```
|
|
840
|
+
*
|
|
841
|
+
* @see {@link option} – returns `Option` instead of a default value
|
|
842
|
+
* @see {@link orElse} – catches all errors, not just absent input
|
|
843
|
+
*
|
|
844
|
+
* @category combinators
|
|
845
|
+
* @since 2.0.0
|
|
846
|
+
*/
|
|
847
|
+
A | A2>((provider, pathPrefix) =>
|
|
848
|
+
Effect.mapEager(
|
|
849
|
+
evaluateAt(self, provider, pathPrefix),
|
|
850
|
+
(resolution) => resolution._tag === "Absent" ? resolved(defaultValue, false) : resolution
|
|
851
|
+
)
|
|
852
|
+
);
|
|
586
853
|
})
|
|
587
854
|
|
|
588
855
|
/**
|
|
589
|
-
* Makes a config optional: returns `Some(value)` on success and `None` when
|
|
590
|
-
*
|
|
856
|
+
* Makes a config optional: returns `Some(value)` on success and `None` when the
|
|
857
|
+
* config cannot resolve because none of its relevant input is present.
|
|
591
858
|
*
|
|
592
859
|
* **When to use**
|
|
593
860
|
*
|
|
@@ -595,18 +862,21 @@ export const withDefault: {
|
|
|
595
862
|
*
|
|
596
863
|
* **Gotchas**
|
|
597
864
|
*
|
|
598
|
-
*
|
|
599
|
-
*
|
|
865
|
+
* Validation errors and partially supplied groups still propagate. Successful
|
|
866
|
+
* values are always wrapped in `Some`, including `undefined` when the schema
|
|
867
|
+
* explicitly accepts it. Schema configs first represent a missing or
|
|
868
|
+
* incompatible provider shape as `undefined`; `None` is returned only when the
|
|
869
|
+
* schema rejects that value and no relevant input was found.
|
|
600
870
|
*
|
|
601
871
|
* **Example** (Reading optional config)
|
|
602
872
|
*
|
|
603
|
-
* ```ts
|
|
604
|
-
* import { Config, ConfigProvider, Effect } from "effect"
|
|
873
|
+
* ```ts import.meta.vitest
|
|
874
|
+
* import { Config, ConfigProvider, Effect, Option } from "effect"
|
|
605
875
|
*
|
|
606
876
|
* const maybePort = Config.option(Config.number("port"))
|
|
607
877
|
*
|
|
608
878
|
* const provider = ConfigProvider.fromUnknown({})
|
|
609
|
-
*
|
|
879
|
+
* Effect.runSync(maybePort.parse(provider)) // => Option.none()
|
|
610
880
|
* ```
|
|
611
881
|
*
|
|
612
882
|
* @see {@link withDefault} – provide a concrete fallback value instead
|
|
@@ -648,7 +918,7 @@ export type Success<T> = [T] extends [Config<infer A>] ? A : never
|
|
|
648
918
|
*
|
|
649
919
|
* @see {@link unwrap} – construct a `Config` from a `Wrap<T>`
|
|
650
920
|
*
|
|
651
|
-
* @category
|
|
921
|
+
* @category utility types
|
|
652
922
|
* @since 2.0.0
|
|
653
923
|
*/
|
|
654
924
|
export type Wrap<A> = [NonNullable<A>] extends [infer T] ? [IsPlainObject<T>] extends [true] ?
|
|
@@ -676,8 +946,8 @@ type IsPlainObject<A> = [A] extends [Record<string, any>]
|
|
|
676
946
|
*
|
|
677
947
|
* **Example** (Unwrapping a record of configs)
|
|
678
948
|
*
|
|
679
|
-
* ```ts
|
|
680
|
-
* import { Config } from "effect"
|
|
949
|
+
* ```ts import.meta.vitest
|
|
950
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
681
951
|
*
|
|
682
952
|
* interface Options {
|
|
683
953
|
* key: string
|
|
@@ -685,128 +955,158 @@ type IsPlainObject<A> = [A] extends [Record<string, any>]
|
|
|
685
955
|
*
|
|
686
956
|
* const makeConfig = (config: Config.Wrap<Options>): Config.Config<Options> =>
|
|
687
957
|
* Config.unwrap(config)
|
|
958
|
+
*
|
|
959
|
+
* const config = makeConfig({ key: Config.string("key") })
|
|
960
|
+
* const provider = ConfigProvider.fromUnknown({ key: "value" })
|
|
961
|
+
* Effect.runSync(config.parse(provider)) // => { key: "value" }
|
|
688
962
|
* ```
|
|
689
963
|
*
|
|
690
964
|
* @see {@link Wrap} – the utility type accepted by this function
|
|
691
965
|
*
|
|
692
|
-
* @category
|
|
966
|
+
* @category converting
|
|
693
967
|
* @since 2.0.0
|
|
694
968
|
*/
|
|
695
969
|
export const unwrap = <T>(wrapped: Wrap<T>): Config<T> => {
|
|
696
970
|
if (isConfig(wrapped)) return wrapped
|
|
697
|
-
return
|
|
698
|
-
const entries = Object.entries(wrapped)
|
|
699
|
-
const configs = entries.map(([key, config]) =>
|
|
700
|
-
unwrap(config as any).parse(provider, pathPrefix).pipe(Effect.map((value) => [key, value] as const))
|
|
701
|
-
)
|
|
702
|
-
return Effect.all(configs).pipe(Effect.map(Object.fromEntries))
|
|
703
|
-
})
|
|
971
|
+
return all(Rec.map(wrapped as Record<string, Wrap<any>>, (config) => unwrap(config))) as Config<T>
|
|
704
972
|
}
|
|
705
973
|
|
|
706
974
|
// -----------------------------------------------------------------------------
|
|
707
975
|
// schema
|
|
708
976
|
// -----------------------------------------------------------------------------
|
|
709
977
|
|
|
710
|
-
|
|
978
|
+
interface ConfigCursor {
|
|
979
|
+
readonly provider: ConfigProvider.ConfigProvider
|
|
980
|
+
readonly path: Path
|
|
981
|
+
readonly node: ConfigProvider.Node | undefined
|
|
982
|
+
readonly toString: () => string
|
|
983
|
+
}
|
|
984
|
+
|
|
985
|
+
const cursorToString = (): string => "<configuration>"
|
|
986
|
+
|
|
987
|
+
const loadCursor: (
|
|
711
988
|
provider: ConfigProvider.ConfigProvider,
|
|
712
989
|
path: Path
|
|
713
|
-
) => Effect.Effect<
|
|
714
|
-
provider
|
|
715
|
-
|
|
716
|
-
) {
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
990
|
+
) => Effect.Effect<ConfigCursor> = (provider, path) =>
|
|
991
|
+
provider.load(path).pipe(
|
|
992
|
+
Effect.orDie,
|
|
993
|
+
Effect.mapEager((node) => ({ provider, path, node, toString: cursorToString }))
|
|
994
|
+
)
|
|
995
|
+
|
|
996
|
+
const loadChildCursor = (cursor: ConfigCursor, segment: string | number): Effect.Effect<ConfigCursor> =>
|
|
997
|
+
loadCursor(cursor.provider, [...cursor.path, segment])
|
|
998
|
+
|
|
999
|
+
const getScalar = (node: ConfigProvider.Node | undefined): string | undefined => node?.value
|
|
1000
|
+
|
|
1001
|
+
const decodeFromCursor = (
|
|
1002
|
+
ast: SchemaAST.AST,
|
|
1003
|
+
decode: (cursor: ConfigCursor) => Effect.Effect<unknown, SchemaIssue.Issue>
|
|
1004
|
+
): SchemaAST.AST =>
|
|
1005
|
+
SchemaAST.decodeTo(
|
|
1006
|
+
SchemaAST.unknown,
|
|
1007
|
+
ast,
|
|
1008
|
+
new SchemaTransformation.Transformation(
|
|
1009
|
+
SchemaGetter.transformOrFail((input: unknown) => decode(input as ConfigCursor)),
|
|
1010
|
+
SchemaGetter.passthrough()
|
|
1011
|
+
)
|
|
1012
|
+
)
|
|
1013
|
+
|
|
1014
|
+
const isScalarInput = (ast: SchemaAST.AST): boolean => {
|
|
1015
|
+
switch (ast._tag) {
|
|
1016
|
+
case "Union":
|
|
1017
|
+
return ast.types.every(isScalarInput)
|
|
1018
|
+
case "Objects":
|
|
1019
|
+
case "Arrays":
|
|
1020
|
+
case "Suspend":
|
|
1021
|
+
return false
|
|
1022
|
+
default:
|
|
1023
|
+
return true
|
|
739
1024
|
}
|
|
740
|
-
}
|
|
1025
|
+
}
|
|
741
1026
|
|
|
742
|
-
const
|
|
1027
|
+
const hasProviderInput = (
|
|
743
1028
|
ast: SchemaAST.AST,
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
1029
|
+
node: ConfigProvider.Node | undefined
|
|
1030
|
+
): boolean => {
|
|
1031
|
+
switch (ast._tag) {
|
|
1032
|
+
case "Objects":
|
|
1033
|
+
return node?._tag === "Record"
|
|
1034
|
+
case "Arrays":
|
|
1035
|
+
return node?._tag === "Array"
|
|
1036
|
+
case "Union":
|
|
1037
|
+
return ast.types.some((ast) => hasProviderInput(ast, node))
|
|
1038
|
+
case "Suspend":
|
|
1039
|
+
return hasProviderInput(ast.thunk(), node)
|
|
1040
|
+
default:
|
|
1041
|
+
return getScalar(node) !== undefined
|
|
1042
|
+
}
|
|
1043
|
+
}
|
|
1044
|
+
|
|
1045
|
+
const toConfigCursorAST = memoize((root: SchemaAST.AST): SchemaAST.AST => {
|
|
1046
|
+
const seen = new WeakSet<SchemaAST.AST>()
|
|
1047
|
+
const recur = SchemaAST.applyToSelfOrLastLinkEncoding((ast) => {
|
|
1048
|
+
seen.add(ast)
|
|
748
1049
|
switch (ast._tag) {
|
|
749
1050
|
case "Objects": {
|
|
750
|
-
const
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
const name = ps.name
|
|
755
|
-
if (typeof name === "string") {
|
|
756
|
-
const value = yield* recur(ps.type, provider, [...path, name])
|
|
757
|
-
if (value !== undefined) out[name] = value
|
|
1051
|
+
const matchesIndex = ast.indexSignatures.map((is) => SchemaParser._is(is.parameter))
|
|
1052
|
+
const materialize = Effect.fnUntraced(function*(cursor: ConfigCursor) {
|
|
1053
|
+
if (cursor.node?._tag !== "Record") {
|
|
1054
|
+
return undefined
|
|
758
1055
|
}
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
if (value !== undefined) out[key] = value
|
|
768
|
-
}
|
|
769
|
-
}
|
|
1056
|
+
const node = cursor.node
|
|
1057
|
+
const keys = new Set<string>()
|
|
1058
|
+
for (const property of ast.propertySignatures) {
|
|
1059
|
+
if (typeof property.name === "string") keys.add(property.name)
|
|
1060
|
+
}
|
|
1061
|
+
if (matchesIndex.length > 0) {
|
|
1062
|
+
for (const key of node.keys) {
|
|
1063
|
+
if (matchesIndex.some((matches) => matches(key))) keys.add(key)
|
|
770
1064
|
}
|
|
771
1065
|
}
|
|
772
|
-
|
|
773
|
-
|
|
1066
|
+
const out: Record<string, ConfigCursor> = {}
|
|
1067
|
+
for (const key of keys) {
|
|
1068
|
+
const child = yield* loadChildCursor(cursor, key)
|
|
1069
|
+
if (child.node !== undefined) InternalRecord.assignProperty(out, key, child)
|
|
1070
|
+
}
|
|
1071
|
+
return out
|
|
1072
|
+
})
|
|
1073
|
+
return decodeFromCursor(ast.recur(recur, (ast) => ast), materialize)
|
|
774
1074
|
}
|
|
775
1075
|
case "Arrays": {
|
|
776
|
-
const
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
if (stat && stat._tag === "Array" && stat.value !== undefined) {
|
|
780
|
-
return stat.value === "" ? [] : stat.value.split(",")
|
|
781
|
-
}
|
|
782
|
-
const out: Array<Schema.StringTree> = []
|
|
783
|
-
const length = stat && stat._tag === "Array" ? stat.length : ast.elements.length
|
|
784
|
-
for (let i = 0; i < length; i++) {
|
|
785
|
-
const element = ast.elements[i] ?? ast.rest[0]
|
|
786
|
-
if (element !== undefined) {
|
|
787
|
-
out.push(yield* recur(element, provider, [...path, i]))
|
|
1076
|
+
const materialize = Effect.fnUntraced(function*(cursor: ConfigCursor) {
|
|
1077
|
+
if (cursor.node?._tag !== "Array") {
|
|
1078
|
+
return undefined
|
|
788
1079
|
}
|
|
789
|
-
|
|
790
|
-
|
|
1080
|
+
const out: Array<ConfigCursor> = []
|
|
1081
|
+
for (let i = 0; i < cursor.node.length; i++) {
|
|
1082
|
+
out.push(yield* loadChildCursor(cursor, i))
|
|
1083
|
+
}
|
|
1084
|
+
return out
|
|
1085
|
+
})
|
|
1086
|
+
return decodeFromCursor(ast.recur(recur), materialize)
|
|
791
1087
|
}
|
|
792
1088
|
case "Union":
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
return
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
if (
|
|
803
|
-
|
|
804
|
-
// Container without a co-located value cannot satisfy a scalar request.
|
|
805
|
-
return undefined
|
|
1089
|
+
for (const member of ast.types) {
|
|
1090
|
+
recur(member)
|
|
1091
|
+
}
|
|
1092
|
+
return isScalarInput(ast)
|
|
1093
|
+
? decodeFromCursor(ast, (cursor) => Effect.succeed(getScalar(cursor.node)))
|
|
1094
|
+
: ast.recur(recur)
|
|
1095
|
+
case "Suspend": {
|
|
1096
|
+
const target = ast.thunk()
|
|
1097
|
+
// Force new branches so opaque encodings fail when the Config is constructed.
|
|
1098
|
+
if (!seen.has(target)) recur(target)
|
|
1099
|
+
return ast.recur(recur)
|
|
806
1100
|
}
|
|
1101
|
+
case "Declaration":
|
|
1102
|
+
case "Any":
|
|
1103
|
+
throw new globalThis.Error("Config.schema does not support opaque StringTree encodings", { cause: ast })
|
|
1104
|
+
default:
|
|
1105
|
+
return decodeFromCursor(ast, (cursor) => Effect.succeed(getScalar(cursor.node)))
|
|
807
1106
|
}
|
|
808
|
-
}
|
|
809
|
-
)
|
|
1107
|
+
})
|
|
1108
|
+
return recur(root)
|
|
1109
|
+
})
|
|
810
1110
|
|
|
811
1111
|
/**
|
|
812
1112
|
* Creates a `Config<T>` from a `Schema.Codec`.
|
|
@@ -825,12 +1125,47 @@ const recur: (
|
|
|
825
1125
|
* Convenience constructors such as `string`, `number`, and `boolean` delegate
|
|
826
1126
|
* to this API.
|
|
827
1127
|
*
|
|
828
|
-
* The codec is
|
|
829
|
-
*
|
|
1128
|
+
* The codec is converted to its canonical `StringTree` form. Its encoded shape
|
|
1129
|
+
* determines how provider data is loaded: scalar schemas read a co-located
|
|
1130
|
+
* scalar value, object schemas read declared properties and matching record
|
|
1131
|
+
* keys, and array schemas read indexed children. A mixed-shape union loads each
|
|
1132
|
+
* member according to that member's shape before applying the union's mode and
|
|
1133
|
+
* checks.
|
|
1134
|
+
*
|
|
1135
|
+
* At the config's lookup path, a missing node or a node that cannot provide the
|
|
1136
|
+
* representation required by the schema is decoded as `undefined`. Missing
|
|
1137
|
+
* object properties remain omitted so the schema's property semantics still
|
|
1138
|
+
* apply. Decoding success always wins, even when no provider input was found.
|
|
1139
|
+
* For example,
|
|
1140
|
+
* `Schema.UndefinedOr(Schema.String)` decodes to `undefined` and is not replaced
|
|
1141
|
+
* by {@link withDefault}. If decoding fails and no relevant representation was
|
|
1142
|
+
* found, the config is absent. Invalid data in a relevant representation is a
|
|
1143
|
+
* validation failure. Provider `SourceError`s are always failures.
|
|
1144
|
+
*
|
|
1145
|
+
* **Gotchas**
|
|
1146
|
+
*
|
|
1147
|
+
* Plain `Schema.Array` and `Schema.Record` schemas use structural provider
|
|
1148
|
+
* input. Use {@link Array} or {@link Record} when a flat separated string must
|
|
1149
|
+
* also be accepted.
|
|
1150
|
+
*
|
|
1151
|
+
* `Schema.Struct` and {@link all} describe different lookup models. An
|
|
1152
|
+
* explicitly present empty object is relevant input for a struct and required
|
|
1153
|
+
* fields are validated. The same empty parent container does not make an
|
|
1154
|
+
* `all` group present when all of its child configs are absent.
|
|
1155
|
+
*
|
|
1156
|
+
* The canonical `StringTree` encoding must expose a concrete scalar, object,
|
|
1157
|
+
* array, or union shape. Opaque encodings such as `Schema.Any`,
|
|
1158
|
+
* `Schema.Unknown`, `Schema.ObjectKeyword`, `Schema.Json`, and
|
|
1159
|
+
* `Schema.MutableJson` are rejected synchronously when this config is
|
|
1160
|
+
* constructed, including when they are nested in another schema. Suspended
|
|
1161
|
+
* recursive schemas remain supported when their eventual shape is concrete.
|
|
1162
|
+
* Declarations such as `Schema.URL` also remain supported when their canonical
|
|
1163
|
+
* encoding has a concrete shape. To read arbitrary JSON from one scalar value,
|
|
1164
|
+
* use `Schema.fromJsonString(Schema.Json)`.
|
|
830
1165
|
*
|
|
831
1166
|
* **Example** (Reading a structured config)
|
|
832
1167
|
*
|
|
833
|
-
* ```ts
|
|
1168
|
+
* ```ts import.meta.vitest
|
|
834
1169
|
* import { Config, ConfigProvider, Effect, Schema } from "effect"
|
|
835
1170
|
*
|
|
836
1171
|
* const DbConfig = Config.schema(
|
|
@@ -845,8 +1180,7 @@ const recur: (
|
|
|
845
1180
|
* db: { host: "localhost", port: 5432 }
|
|
846
1181
|
* })
|
|
847
1182
|
*
|
|
848
|
-
*
|
|
849
|
-
* // { host: "localhost", port: 5432 }
|
|
1183
|
+
* Effect.runSync(DbConfig.parse(provider)) // => { host: "localhost", port: 5432 }
|
|
850
1184
|
* ```
|
|
851
1185
|
*
|
|
852
1186
|
* @see {@link string} / {@link number} / {@link boolean} – shortcuts for
|
|
@@ -857,20 +1191,31 @@ const recur: (
|
|
|
857
1191
|
*/
|
|
858
1192
|
export function schema<T>(codec: Schema.ConstraintCodec<T, unknown>, path?: string | ConfigProvider.Path): Config<T> {
|
|
859
1193
|
const codecStringTree = Schema.toCodecStringTree(codec)
|
|
860
|
-
const
|
|
861
|
-
const
|
|
1194
|
+
const encodedAst = SchemaAST.toEncoded(codecStringTree.ast)
|
|
1195
|
+
const decodeCursor = SchemaParser.decodeUnknownEffect(
|
|
1196
|
+
Schema.make<Schema.Codec<T, ConfigCursor>>(toConfigCursorAST(codecStringTree.ast))
|
|
1197
|
+
)
|
|
862
1198
|
const localPath = typeof path === "string" ? [path] : path ?? []
|
|
863
1199
|
return make((provider, pathPrefix) => {
|
|
864
1200
|
const fullPath = [...pathPrefix, ...localPath]
|
|
865
|
-
return
|
|
866
|
-
Effect.flatMapEager((
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
1201
|
+
return catchSourceError(loadCursor(provider, fullPath), false).pipe(
|
|
1202
|
+
Effect.flatMapEager((cursor) => {
|
|
1203
|
+
const hasInput = hasProviderInput(encodedAst, cursor.node)
|
|
1204
|
+
return catchSourceError(
|
|
1205
|
+
decodeCursor(cursor).pipe(
|
|
1206
|
+
Effect.mapEager((value) => resolved(value, hasInput)),
|
|
1207
|
+
Effect.catchEager((issue) => {
|
|
1208
|
+
const error = new ConfigError(
|
|
1209
|
+
new Schema.SchemaError(fullPath.length > 0 ? new SchemaIssue.Pointer(fullPath, issue) : issue)
|
|
1210
|
+
)
|
|
1211
|
+
return hasInput
|
|
1212
|
+
? Effect.fail(evaluationFailure(error, true))
|
|
1213
|
+
: Effect.succeed(absent(error))
|
|
1214
|
+
})
|
|
1215
|
+
),
|
|
1216
|
+
hasInput
|
|
871
1217
|
)
|
|
872
|
-
)
|
|
873
|
-
Effect.mapErrorEager((cause) => new ConfigError(cause))
|
|
1218
|
+
})
|
|
874
1219
|
)
|
|
875
1220
|
})
|
|
876
1221
|
}
|
|
@@ -961,7 +1306,7 @@ export const LogLevel = Schema.Literals(LogLevel_.values)
|
|
|
961
1306
|
*
|
|
962
1307
|
* **Example** (Parsing a comma-separated record)
|
|
963
1308
|
*
|
|
964
|
-
* ```ts
|
|
1309
|
+
* ```ts import.meta.vitest
|
|
965
1310
|
* import { Config, ConfigProvider, Effect, Schema } from "effect"
|
|
966
1311
|
*
|
|
967
1312
|
* const schema = Config.Record(Schema.String, Schema.String)
|
|
@@ -974,14 +1319,14 @@ export const LogLevel = Schema.Literals(LogLevel_.values)
|
|
|
974
1319
|
* }
|
|
975
1320
|
* })
|
|
976
1321
|
*
|
|
977
|
-
*
|
|
978
|
-
* //
|
|
979
|
-
*
|
|
980
|
-
*
|
|
981
|
-
* // 'custom.attribute': 'value'
|
|
982
|
-
* // }
|
|
1322
|
+
* const result = Effect.runSync(config.parse(provider))
|
|
1323
|
+
* result["service.name"] // => "my-service"
|
|
1324
|
+
* result["service.version"] // => "1.0.0"
|
|
1325
|
+
* result["custom.attribute"] // => "value"
|
|
983
1326
|
* ```
|
|
984
1327
|
*
|
|
1328
|
+
* @see {@link Array} for separated or structural array input
|
|
1329
|
+
*
|
|
985
1330
|
* @category schemas
|
|
986
1331
|
* @since 4.0.0
|
|
987
1332
|
*/
|
|
@@ -990,35 +1335,31 @@ export const Record = <K extends Schema.Record.Key, V extends Schema.Constraint>
|
|
|
990
1335
|
readonly keyValueSeparator?: string | undefined
|
|
991
1336
|
}) => {
|
|
992
1337
|
const record = Schema.Record(key, value)
|
|
1338
|
+
const split = SchemaTransformation.splitKeyValue(options)
|
|
993
1339
|
const recordString = Schema.String.pipe(
|
|
994
|
-
Schema.decodeTo(
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
1340
|
+
Schema.decodeTo(Schema.toCodecStringTree(record), {
|
|
1341
|
+
decode: split.decode,
|
|
1342
|
+
encode: SchemaGetter.passthrough<Record<string, string>, Schema.StringTree>({ strict: false }).compose(
|
|
1343
|
+
split.encode
|
|
1344
|
+
)
|
|
1345
|
+
})
|
|
999
1346
|
)
|
|
1000
1347
|
|
|
1001
1348
|
return Schema.Union([record, recordString])
|
|
1002
1349
|
}
|
|
1003
1350
|
|
|
1004
|
-
/**
|
|
1005
|
-
* @category schemas
|
|
1006
|
-
* @since 4.0.0
|
|
1007
|
-
*/
|
|
1008
1351
|
const ArrayConfig = <V extends Schema.Constraint>(value: V, options?: {
|
|
1009
1352
|
readonly separator?: string | undefined
|
|
1010
1353
|
}) => {
|
|
1011
1354
|
const array = Schema.Array(value)
|
|
1012
1355
|
const separator = options?.separator ?? ","
|
|
1013
1356
|
const arrayString = Schema.String.pipe(
|
|
1014
|
-
Schema.decodeTo(
|
|
1015
|
-
|
|
1016
|
-
{
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
),
|
|
1021
|
-
Schema.decodeTo(array)
|
|
1357
|
+
Schema.decodeTo(Schema.toCodecStringTree(array), {
|
|
1358
|
+
decode: SchemaGetter.split(options),
|
|
1359
|
+
encode: SchemaGetter.passthrough<ReadonlyArray<string>, Schema.StringTree>({ strict: false }).compose(
|
|
1360
|
+
SchemaGetter.transform((input) => input.join(separator))
|
|
1361
|
+
)
|
|
1362
|
+
})
|
|
1022
1363
|
)
|
|
1023
1364
|
|
|
1024
1365
|
return Schema.Union([arrayString, array])
|
|
@@ -1038,6 +1379,8 @@ export {
|
|
|
1038
1379
|
* Accepts either a JSON-like array from the provider or a flat string like
|
|
1039
1380
|
* `"a,b,c"`. The `separator` defaults to `","` and can be customized.
|
|
1040
1381
|
*
|
|
1382
|
+
* @see {@link Record} for separated or structural record input
|
|
1383
|
+
*
|
|
1041
1384
|
* @category schemas
|
|
1042
1385
|
* @since 4.0.0
|
|
1043
1386
|
*/
|
|
@@ -1060,7 +1403,7 @@ export {
|
|
|
1060
1403
|
* @since 2.0.0
|
|
1061
1404
|
*/
|
|
1062
1405
|
export function fail(err: SourceError | Schema.SchemaError) {
|
|
1063
|
-
return make(() => Effect.fail(new ConfigError(err)))
|
|
1406
|
+
return make(() => Effect.fail(evaluationFailure(new ConfigError(err), false)))
|
|
1064
1407
|
}
|
|
1065
1408
|
|
|
1066
1409
|
/**
|
|
@@ -1074,19 +1417,21 @@ export function fail(err: SourceError | Schema.SchemaError) {
|
|
|
1074
1417
|
*
|
|
1075
1418
|
* **Example** (Returning a constant fallback)
|
|
1076
1419
|
*
|
|
1077
|
-
* ```ts
|
|
1078
|
-
* import { Config } from "effect"
|
|
1420
|
+
* ```ts import.meta.vitest
|
|
1421
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1079
1422
|
*
|
|
1080
1423
|
* const host = Config.string("HOST").pipe(
|
|
1081
1424
|
* Config.orElse(() => Config.succeed("localhost"))
|
|
1082
1425
|
* )
|
|
1426
|
+
* const provider = ConfigProvider.fromUnknown({})
|
|
1427
|
+
* Effect.runSync(host.parse(provider)) // => "localhost"
|
|
1083
1428
|
* ```
|
|
1084
1429
|
*
|
|
1085
1430
|
* @category constructors
|
|
1086
1431
|
* @since 2.0.0
|
|
1087
1432
|
*/
|
|
1088
1433
|
export function succeed<T>(value: T) {
|
|
1089
|
-
return make(() => Effect.succeed(value))
|
|
1434
|
+
return make(() => Effect.succeed(resolved(value, false)))
|
|
1090
1435
|
}
|
|
1091
1436
|
|
|
1092
1437
|
/**
|
|
@@ -1102,13 +1447,13 @@ export function succeed<T>(value: T) {
|
|
|
1102
1447
|
*
|
|
1103
1448
|
* **Example** (Reading a string config)
|
|
1104
1449
|
*
|
|
1105
|
-
* ```ts
|
|
1450
|
+
* ```ts import.meta.vitest
|
|
1106
1451
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1107
1452
|
*
|
|
1108
1453
|
* const host = Config.string("HOST")
|
|
1109
1454
|
*
|
|
1110
1455
|
* const provider = ConfigProvider.fromUnknown({ HOST: "localhost" })
|
|
1111
|
-
*
|
|
1456
|
+
* Effect.runSync(host.parse(provider)) // => "localhost"
|
|
1112
1457
|
* ```
|
|
1113
1458
|
*
|
|
1114
1459
|
* @see {@link nonEmptyString} – rejects empty strings
|
|
@@ -1219,10 +1564,12 @@ export function int(name?: string) {
|
|
|
1219
1564
|
*
|
|
1220
1565
|
* **Example** (Restricting to a literal)
|
|
1221
1566
|
*
|
|
1222
|
-
* ```ts
|
|
1223
|
-
* import { Config } from "effect"
|
|
1567
|
+
* ```ts import.meta.vitest
|
|
1568
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1224
1569
|
*
|
|
1225
1570
|
* const env = Config.literal("production", "ENV")
|
|
1571
|
+
* const provider = ConfigProvider.fromUnknown({ ENV: "production" })
|
|
1572
|
+
* Effect.runSync(env.parse(provider)) // => "production"
|
|
1226
1573
|
* ```
|
|
1227
1574
|
*
|
|
1228
1575
|
* @see {@link literals} – accepts multiple literal values
|
|
@@ -1246,10 +1593,12 @@ export function literal<L extends SchemaAST.LiteralValue>(literal: L, name?: str
|
|
|
1246
1593
|
*
|
|
1247
1594
|
* **Example** (Restricting to a set of literals)
|
|
1248
1595
|
*
|
|
1249
|
-
* ```ts
|
|
1250
|
-
* import { Config } from "effect"
|
|
1596
|
+
* ```ts import.meta.vitest
|
|
1597
|
+
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1251
1598
|
*
|
|
1252
1599
|
* const env = Config.literals(["development", "production"], "ENV")
|
|
1600
|
+
* const provider = ConfigProvider.fromUnknown({ ENV: "development" })
|
|
1601
|
+
* Effect.runSync(env.parse(provider)) // => "development"
|
|
1253
1602
|
* ```
|
|
1254
1603
|
*
|
|
1255
1604
|
* @see {@link literal} for accepting one specific literal value
|
|
@@ -1278,13 +1627,10 @@ export function literals<const L extends ReadonlyArray<SchemaAST.LiteralValue>>(
|
|
|
1278
1627
|
*
|
|
1279
1628
|
* **Example** (Reading a boolean flag)
|
|
1280
1629
|
*
|
|
1281
|
-
* ```ts
|
|
1630
|
+
* ```ts import.meta.vitest
|
|
1282
1631
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1283
1632
|
*
|
|
1284
|
-
* const program =
|
|
1285
|
-
* const flag = yield* Config.boolean("FEATURE_FLAG")
|
|
1286
|
-
* console.log(flag)
|
|
1287
|
-
* })
|
|
1633
|
+
* const program = Config.boolean("FEATURE_FLAG")
|
|
1288
1634
|
*
|
|
1289
1635
|
* const provider = ConfigProvider.fromEnv({
|
|
1290
1636
|
* env: {
|
|
@@ -1294,8 +1640,7 @@ export function literals<const L extends ReadonlyArray<SchemaAST.LiteralValue>>(
|
|
|
1294
1640
|
*
|
|
1295
1641
|
* Effect.runSync(
|
|
1296
1642
|
* program.pipe(Effect.provideService(ConfigProvider.ConfigProvider, provider))
|
|
1297
|
-
* )
|
|
1298
|
-
* // Output: true
|
|
1643
|
+
* ) // => true
|
|
1299
1644
|
* ```
|
|
1300
1645
|
*
|
|
1301
1646
|
* @see {@link Boolean} for the underlying boolean codec
|
|
@@ -1324,13 +1669,10 @@ export function boolean(name?: string) {
|
|
|
1324
1669
|
*
|
|
1325
1670
|
* **Example** (Reading a duration)
|
|
1326
1671
|
*
|
|
1327
|
-
* ```ts
|
|
1328
|
-
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1672
|
+
* ```ts import.meta.vitest
|
|
1673
|
+
* import { Config, ConfigProvider, Duration, Effect } from "effect"
|
|
1329
1674
|
*
|
|
1330
|
-
* const program = Effect.
|
|
1331
|
-
* const duration = yield* Config.duration("DURATION")
|
|
1332
|
-
* console.log(duration)
|
|
1333
|
-
* })
|
|
1675
|
+
* const program = Config.duration("DURATION").pipe(Effect.map(Duration.toMillis))
|
|
1334
1676
|
*
|
|
1335
1677
|
* const provider = ConfigProvider.fromEnv({
|
|
1336
1678
|
* env: {
|
|
@@ -1340,8 +1682,7 @@ export function boolean(name?: string) {
|
|
|
1340
1682
|
*
|
|
1341
1683
|
* Effect.runSync(
|
|
1342
1684
|
* program.pipe(Effect.provideService(ConfigProvider.ConfigProvider, provider))
|
|
1343
|
-
* )
|
|
1344
|
-
* // Output: Duration { _tag: "millis", value: 10000 }
|
|
1685
|
+
* ) // => 10000
|
|
1345
1686
|
* ```
|
|
1346
1687
|
*
|
|
1347
1688
|
* @see {@link schema} for decoding configuration values with a custom codec
|
|
@@ -1366,13 +1707,10 @@ export function duration(name?: string) {
|
|
|
1366
1707
|
*
|
|
1367
1708
|
* **Example** (Reading a port)
|
|
1368
1709
|
*
|
|
1369
|
-
* ```ts
|
|
1710
|
+
* ```ts import.meta.vitest
|
|
1370
1711
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1371
1712
|
*
|
|
1372
|
-
* const program =
|
|
1373
|
-
* const port = yield* Config.port("PORT")
|
|
1374
|
-
* console.log(port)
|
|
1375
|
-
* })
|
|
1713
|
+
* const program = Config.port("PORT")
|
|
1376
1714
|
*
|
|
1377
1715
|
* const provider = ConfigProvider.fromEnv({
|
|
1378
1716
|
* env: {
|
|
@@ -1382,8 +1720,7 @@ export function duration(name?: string) {
|
|
|
1382
1720
|
*
|
|
1383
1721
|
* Effect.runSync(
|
|
1384
1722
|
* program.pipe(Effect.provideService(ConfigProvider.ConfigProvider, provider))
|
|
1385
|
-
* )
|
|
1386
|
-
* // Output: 8080
|
|
1723
|
+
* ) // => 8080
|
|
1387
1724
|
* ```
|
|
1388
1725
|
*
|
|
1389
1726
|
* @see {@link int} for integer config values outside the port range
|
|
@@ -1412,13 +1749,10 @@ export function port(name?: string) {
|
|
|
1412
1749
|
*
|
|
1413
1750
|
* **Example** (Reading a log level)
|
|
1414
1751
|
*
|
|
1415
|
-
* ```ts
|
|
1752
|
+
* ```ts import.meta.vitest
|
|
1416
1753
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1417
1754
|
*
|
|
1418
|
-
* const program =
|
|
1419
|
-
* const logLevel = yield* Config.logLevel("LOG_LEVEL")
|
|
1420
|
-
* console.log(logLevel)
|
|
1421
|
-
* })
|
|
1755
|
+
* const program = Config.logLevel("LOG_LEVEL")
|
|
1422
1756
|
*
|
|
1423
1757
|
* const provider = ConfigProvider.fromEnv({
|
|
1424
1758
|
* env: {
|
|
@@ -1428,8 +1762,7 @@ export function port(name?: string) {
|
|
|
1428
1762
|
*
|
|
1429
1763
|
* Effect.runSync(
|
|
1430
1764
|
* program.pipe(Effect.provideService(ConfigProvider.ConfigProvider, provider))
|
|
1431
|
-
* )
|
|
1432
|
-
* // Output: "Info"
|
|
1765
|
+
* ) // => "Info"
|
|
1433
1766
|
* ```
|
|
1434
1767
|
*
|
|
1435
1768
|
* @see {@link LogLevel} for the underlying log-level codec
|
|
@@ -1456,13 +1789,10 @@ export function logLevel(name?: string) {
|
|
|
1456
1789
|
*
|
|
1457
1790
|
* **Example** (Reading a secret)
|
|
1458
1791
|
*
|
|
1459
|
-
* ```ts
|
|
1792
|
+
* ```ts import.meta.vitest
|
|
1460
1793
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1461
1794
|
*
|
|
1462
|
-
* const program = Effect.
|
|
1463
|
-
* const apiKey = yield* Config.redacted("API_KEY")
|
|
1464
|
-
* console.log(apiKey)
|
|
1465
|
-
* })
|
|
1795
|
+
* const program = Config.redacted("API_KEY").pipe(Effect.map(String))
|
|
1466
1796
|
*
|
|
1467
1797
|
* const provider = ConfigProvider.fromEnv({
|
|
1468
1798
|
* env: {
|
|
@@ -1472,8 +1802,7 @@ export function logLevel(name?: string) {
|
|
|
1472
1802
|
*
|
|
1473
1803
|
* Effect.runSync(
|
|
1474
1804
|
* program.pipe(Effect.provideService(ConfigProvider.ConfigProvider, provider))
|
|
1475
|
-
* )
|
|
1476
|
-
* // Output: <redacted>
|
|
1805
|
+
* ) // => "<redacted>"
|
|
1477
1806
|
* ```
|
|
1478
1807
|
*
|
|
1479
1808
|
* @see {@link string} for non-secret string settings
|
|
@@ -1502,13 +1831,10 @@ export function redacted(name?: string) {
|
|
|
1502
1831
|
*
|
|
1503
1832
|
* **Example** (Reading a URL)
|
|
1504
1833
|
*
|
|
1505
|
-
* ```ts
|
|
1834
|
+
* ```ts import.meta.vitest
|
|
1506
1835
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1507
1836
|
*
|
|
1508
|
-
* const program = Effect.
|
|
1509
|
-
* const url = yield* Config.url("URL")
|
|
1510
|
-
* console.log(url)
|
|
1511
|
-
* })
|
|
1837
|
+
* const program = Config.url("URL").pipe(Effect.map((url) => url.href))
|
|
1512
1838
|
*
|
|
1513
1839
|
* const provider = ConfigProvider.fromEnv({
|
|
1514
1840
|
* env: {
|
|
@@ -1518,22 +1844,7 @@ export function redacted(name?: string) {
|
|
|
1518
1844
|
*
|
|
1519
1845
|
* Effect.runSync(
|
|
1520
1846
|
* program.pipe(Effect.provideService(ConfigProvider.ConfigProvider, provider))
|
|
1521
|
-
* )
|
|
1522
|
-
* // Output:
|
|
1523
|
-
* // URL {
|
|
1524
|
-
* // href: 'https://example.com/',
|
|
1525
|
-
* // origin: 'https://example.com',
|
|
1526
|
-
* // protocol: 'https:',
|
|
1527
|
-
* // username: '',
|
|
1528
|
-
* // password: '',
|
|
1529
|
-
* // host: 'example.com',
|
|
1530
|
-
* // hostname: 'example.com',
|
|
1531
|
-
* // port: '',
|
|
1532
|
-
* // pathname: '/',
|
|
1533
|
-
* // search: '',
|
|
1534
|
-
* // searchParams: URLSearchParams {},
|
|
1535
|
-
* // hash: ''
|
|
1536
|
-
* // }
|
|
1847
|
+
* ) // => "https://example.com/"
|
|
1537
1848
|
* ```
|
|
1538
1849
|
*
|
|
1539
1850
|
* @see {@link schema} for decoding configuration values with a custom codec
|
|
@@ -1554,7 +1865,7 @@ export function url(name?: string) {
|
|
|
1554
1865
|
*
|
|
1555
1866
|
* **Details**
|
|
1556
1867
|
*
|
|
1557
|
-
* Shortcut for `Config.schema(Schema.
|
|
1868
|
+
* Shortcut for `Config.schema(Schema.Date, name)`.
|
|
1558
1869
|
*
|
|
1559
1870
|
* **Gotchas**
|
|
1560
1871
|
*
|
|
@@ -1562,21 +1873,20 @@ export function url(name?: string) {
|
|
|
1562
1873
|
*
|
|
1563
1874
|
* **Example** (Reading a date)
|
|
1564
1875
|
*
|
|
1565
|
-
* ```ts
|
|
1876
|
+
* ```ts import.meta.vitest
|
|
1566
1877
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1567
1878
|
*
|
|
1568
1879
|
* const createdAt = Config.date("CREATED_AT")
|
|
1569
1880
|
*
|
|
1570
1881
|
* const provider = ConfigProvider.fromUnknown({ CREATED_AT: "2024-01-15" })
|
|
1571
|
-
*
|
|
1572
|
-
* // Date("2024-01-15T00:00:00.000Z")
|
|
1882
|
+
* Effect.runSync(createdAt.parse(provider)).toISOString() // => "2024-01-15T00:00:00.000Z"
|
|
1573
1883
|
* ```
|
|
1574
1884
|
*
|
|
1575
1885
|
* @category constructors
|
|
1576
1886
|
* @since 2.0.0
|
|
1577
1887
|
*/
|
|
1578
1888
|
export function date(name?: string) {
|
|
1579
|
-
return schema(Schema.
|
|
1889
|
+
return schema(Schema.Date, name)
|
|
1580
1890
|
}
|
|
1581
1891
|
|
|
1582
1892
|
/**
|
|
@@ -1597,7 +1907,7 @@ export function date(name?: string) {
|
|
|
1597
1907
|
*
|
|
1598
1908
|
* **Example** (Nesting a struct config under `"database"`)
|
|
1599
1909
|
*
|
|
1600
|
-
* ```ts
|
|
1910
|
+
* ```ts import.meta.vitest
|
|
1601
1911
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1602
1912
|
*
|
|
1603
1913
|
* const dbConfig = Config.all({
|
|
@@ -1608,13 +1918,12 @@ export function date(name?: string) {
|
|
|
1608
1918
|
* const provider = ConfigProvider.fromUnknown({
|
|
1609
1919
|
* database: { host: "localhost", port: "5432" }
|
|
1610
1920
|
* })
|
|
1611
|
-
*
|
|
1612
|
-
* // { host: "localhost", port: 5432 }
|
|
1921
|
+
* Effect.runSync(dbConfig.parse(provider)) // => { host: "localhost", port: 5432 }
|
|
1613
1922
|
* ```
|
|
1614
1923
|
*
|
|
1615
1924
|
* **Example** (Reading env vars with a nested prefix)
|
|
1616
1925
|
*
|
|
1617
|
-
* ```ts
|
|
1926
|
+
* ```ts import.meta.vitest
|
|
1618
1927
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1619
1928
|
*
|
|
1620
1929
|
* const host = Config.string("host").pipe(Config.nested("database"))
|
|
@@ -1622,7 +1931,7 @@ export function date(name?: string) {
|
|
|
1622
1931
|
* const provider = ConfigProvider.fromEnv({
|
|
1623
1932
|
* env: { database_host: "localhost" }
|
|
1624
1933
|
* })
|
|
1625
|
-
*
|
|
1934
|
+
* Effect.runSync(host.parse(provider)) // => "localhost"
|
|
1626
1935
|
* ```
|
|
1627
1936
|
*
|
|
1628
1937
|
* @see {@link all} – combine multiple configs into a struct
|
|
@@ -1650,7 +1959,7 @@ export const nested: {
|
|
|
1650
1959
|
*
|
|
1651
1960
|
* **Example** (Nesting a struct config under `"database"`)
|
|
1652
1961
|
*
|
|
1653
|
-
* ```ts
|
|
1962
|
+
* ```ts import.meta.vitest
|
|
1654
1963
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1655
1964
|
*
|
|
1656
1965
|
* const dbConfig = Config.all({
|
|
@@ -1661,13 +1970,12 @@ export const nested: {
|
|
|
1661
1970
|
* const provider = ConfigProvider.fromUnknown({
|
|
1662
1971
|
* database: { host: "localhost", port: "5432" }
|
|
1663
1972
|
* })
|
|
1664
|
-
*
|
|
1665
|
-
* // { host: "localhost", port: 5432 }
|
|
1973
|
+
* Effect.runSync(dbConfig.parse(provider)) // => { host: "localhost", port: 5432 }
|
|
1666
1974
|
* ```
|
|
1667
1975
|
*
|
|
1668
1976
|
* **Example** (Reading env vars with a nested prefix)
|
|
1669
1977
|
*
|
|
1670
|
-
* ```ts
|
|
1978
|
+
* ```ts import.meta.vitest
|
|
1671
1979
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1672
1980
|
*
|
|
1673
1981
|
* const host = Config.string("host").pipe(Config.nested("database"))
|
|
@@ -1675,7 +1983,7 @@ export const nested: {
|
|
|
1675
1983
|
* const provider = ConfigProvider.fromEnv({
|
|
1676
1984
|
* env: { database_host: "localhost" }
|
|
1677
1985
|
* })
|
|
1678
|
-
*
|
|
1986
|
+
* Effect.runSync(host.parse(provider)) // => "localhost"
|
|
1679
1987
|
* ```
|
|
1680
1988
|
*
|
|
1681
1989
|
* @see {@link all} – combine multiple configs into a struct
|
|
@@ -1703,7 +2011,7 @@ export const nested: {
|
|
|
1703
2011
|
*
|
|
1704
2012
|
* **Example** (Nesting a struct config under `"database"`)
|
|
1705
2013
|
*
|
|
1706
|
-
* ```ts
|
|
2014
|
+
* ```ts import.meta.vitest
|
|
1707
2015
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1708
2016
|
*
|
|
1709
2017
|
* const dbConfig = Config.all({
|
|
@@ -1714,13 +2022,12 @@ export const nested: {
|
|
|
1714
2022
|
* const provider = ConfigProvider.fromUnknown({
|
|
1715
2023
|
* database: { host: "localhost", port: "5432" }
|
|
1716
2024
|
* })
|
|
1717
|
-
*
|
|
1718
|
-
* // { host: "localhost", port: 5432 }
|
|
2025
|
+
* Effect.runSync(dbConfig.parse(provider)) // => { host: "localhost", port: 5432 }
|
|
1719
2026
|
* ```
|
|
1720
2027
|
*
|
|
1721
2028
|
* **Example** (Reading env vars with a nested prefix)
|
|
1722
2029
|
*
|
|
1723
|
-
* ```ts
|
|
2030
|
+
* ```ts import.meta.vitest
|
|
1724
2031
|
* import { Config, ConfigProvider, Effect } from "effect"
|
|
1725
2032
|
*
|
|
1726
2033
|
* const host = Config.string("host").pipe(Config.nested("database"))
|
|
@@ -1728,7 +2035,7 @@ export const nested: {
|
|
|
1728
2035
|
* const provider = ConfigProvider.fromEnv({
|
|
1729
2036
|
* env: { database_host: "localhost" }
|
|
1730
2037
|
* })
|
|
1731
|
-
*
|
|
2038
|
+
* Effect.runSync(host.parse(provider)) // => "localhost"
|
|
1732
2039
|
* ```
|
|
1733
2040
|
*
|
|
1734
2041
|
* @see {@link all} – combine multiple configs into a struct
|
|
@@ -1741,5 +2048,5 @@ export const nested: {
|
|
|
1741
2048
|
} = dual(
|
|
1742
2049
|
2,
|
|
1743
2050
|
<A>(self: Config<A>, name: string): Config<A> =>
|
|
1744
|
-
make((provider, pathPrefix) => self
|
|
2051
|
+
make((provider, pathPrefix) => evaluateAt(self, provider, [...pathPrefix, name]))
|
|
1745
2052
|
)
|