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/Context.ts
CHANGED
|
@@ -17,7 +17,6 @@ import { dual, type LazyArg } from "./Function.ts"
|
|
|
17
17
|
import * as Hash from "./Hash.ts"
|
|
18
18
|
import type { Inspectable } from "./Inspectable.ts"
|
|
19
19
|
import { exitSucceed, PipeInspectableProto, withFiber } from "./internal/core.ts"
|
|
20
|
-
import { getStackTraceLimit, setStackTraceLimit } from "./internal/stackTraceLimit.ts"
|
|
21
20
|
import * as Option from "./Option.ts"
|
|
22
21
|
import type { Pipeable } from "./Pipeable.ts"
|
|
23
22
|
import { hasProperty } from "./Predicate.ts"
|
|
@@ -67,7 +66,6 @@ export interface Key<out Identifier, out Shape> extends Effect<Shape, never, Ide
|
|
|
67
66
|
readonly Service: Shape
|
|
68
67
|
readonly Identifier: Identifier
|
|
69
68
|
readonly key: string
|
|
70
|
-
readonly stack?: string | undefined
|
|
71
69
|
}
|
|
72
70
|
|
|
73
71
|
/**
|
|
@@ -81,7 +79,7 @@ export interface Key<out Identifier, out Shape> extends Effect<Shape, never, Ide
|
|
|
81
79
|
*
|
|
82
80
|
* **Example** (Defining a service key)
|
|
83
81
|
*
|
|
84
|
-
* ```ts
|
|
82
|
+
* ```ts import.meta.vitest
|
|
85
83
|
* import { Context } from "effect"
|
|
86
84
|
*
|
|
87
85
|
* // Define an identifier for a database service
|
|
@@ -91,9 +89,10 @@ export interface Key<out Identifier, out Shape> extends Effect<Shape, never, Ide
|
|
|
91
89
|
*
|
|
92
90
|
* // The key can be used to store and retrieve services
|
|
93
91
|
* const context = Context.make(Database, { query: (sql) => `Result: ${sql}` })
|
|
92
|
+
* Context.get(context, Database).query("SELECT 1") // => "Result: SELECT 1"
|
|
94
93
|
* ```
|
|
95
94
|
*
|
|
96
|
-
* @category
|
|
95
|
+
* @category services
|
|
97
96
|
* @since 4.0.0
|
|
98
97
|
*/
|
|
99
98
|
export interface Service<in out Identifier, in out Shape> extends Key<Identifier, Shape> {
|
|
@@ -118,7 +117,7 @@ export interface Service<in out Identifier, in out Shape> extends Key<Identifier
|
|
|
118
117
|
*
|
|
119
118
|
* @see {@link Service} for creating function-style keys or class-style service keys
|
|
120
119
|
*
|
|
121
|
-
* @category
|
|
120
|
+
* @category services
|
|
122
121
|
* @since 4.0.0
|
|
123
122
|
*/
|
|
124
123
|
export interface ServiceClass<in out Self, in out Identifier extends string, in out Shape>
|
|
@@ -139,7 +138,7 @@ export declare namespace ServiceClass {
|
|
|
139
138
|
* Runtime and type-level metadata carried by a class-style service key,
|
|
140
139
|
* including its service type identifier, string key, and service shape.
|
|
141
140
|
*
|
|
142
|
-
* @category
|
|
141
|
+
* @category services
|
|
143
142
|
* @since 4.0.0
|
|
144
143
|
*/
|
|
145
144
|
export interface Shape<Identifier extends string, Service> {
|
|
@@ -172,7 +171,7 @@ export declare namespace ServiceClass {
|
|
|
172
171
|
*
|
|
173
172
|
* **Example** (Creating service keys)
|
|
174
173
|
*
|
|
175
|
-
* ```ts
|
|
174
|
+
* ```ts import.meta.vitest
|
|
176
175
|
* import { Context } from "effect"
|
|
177
176
|
*
|
|
178
177
|
* // Create a simple service
|
|
@@ -190,11 +189,13 @@ export declare namespace ServiceClass {
|
|
|
190
189
|
* query: (sql) => `Result: ${sql}`
|
|
191
190
|
* })
|
|
192
191
|
* const config = Context.make(Config, { port: 8080 })
|
|
192
|
+
* Context.get(db, Database).query("SELECT 1") // => "Result: SELECT 1"
|
|
193
|
+
* Context.get(config, Config).port // => 8080
|
|
193
194
|
* ```
|
|
194
195
|
*
|
|
195
196
|
* @see {@link Reference} for service keys with default values
|
|
196
197
|
*
|
|
197
|
-
* @category
|
|
198
|
+
* @category services
|
|
198
199
|
* @since 4.0.0
|
|
199
200
|
*/
|
|
200
201
|
export const Service: {
|
|
@@ -221,7 +222,7 @@ export const Service: {
|
|
|
221
222
|
*
|
|
222
223
|
* **Example** (Creating service keys)
|
|
223
224
|
*
|
|
224
|
-
* ```ts
|
|
225
|
+
* ```ts import.meta.vitest
|
|
225
226
|
* import { Context } from "effect"
|
|
226
227
|
*
|
|
227
228
|
* // Create a simple service
|
|
@@ -239,14 +240,22 @@ export const Service: {
|
|
|
239
240
|
* query: (sql) => `Result: ${sql}`
|
|
240
241
|
* })
|
|
241
242
|
* const config = Context.make(Config, { port: 8080 })
|
|
243
|
+
* Context.get(db, Database).query("SELECT 1") // => "Result: SELECT 1"
|
|
244
|
+
* Context.get(config, Config).port // => 8080
|
|
242
245
|
* ```
|
|
243
246
|
*
|
|
244
247
|
* @see {@link Reference} for service keys with default values
|
|
245
248
|
*
|
|
246
|
-
* @category
|
|
249
|
+
* @category services
|
|
247
250
|
* @since 4.0.0
|
|
248
251
|
*/
|
|
249
|
-
<Identifier, Shape = Identifier>(
|
|
252
|
+
<Identifier, Shape = Identifier>(
|
|
253
|
+
key: string,
|
|
254
|
+
options?: {
|
|
255
|
+
/** @internal */
|
|
256
|
+
readonly fiberCached?: boolean | undefined
|
|
257
|
+
} | undefined
|
|
258
|
+
): Service<Identifier, Shape>
|
|
250
259
|
/**
|
|
251
260
|
* Creates a `Context` service key.
|
|
252
261
|
*
|
|
@@ -270,7 +279,7 @@ export const Service: {
|
|
|
270
279
|
*
|
|
271
280
|
* **Example** (Creating service keys)
|
|
272
281
|
*
|
|
273
|
-
* ```ts
|
|
282
|
+
* ```ts import.meta.vitest
|
|
274
283
|
* import { Context } from "effect"
|
|
275
284
|
*
|
|
276
285
|
* // Create a simple service
|
|
@@ -288,11 +297,13 @@ export const Service: {
|
|
|
288
297
|
* query: (sql) => `Result: ${sql}`
|
|
289
298
|
* })
|
|
290
299
|
* const config = Context.make(Config, { port: 8080 })
|
|
300
|
+
* Context.get(db, Database).query("SELECT 1") // => "Result: SELECT 1"
|
|
301
|
+
* Context.get(config, Config).port // => 8080
|
|
291
302
|
* ```
|
|
292
303
|
*
|
|
293
304
|
* @see {@link Reference} for service keys with default values
|
|
294
305
|
*
|
|
295
|
-
* @category
|
|
306
|
+
* @category services
|
|
296
307
|
* @since 4.0.0
|
|
297
308
|
*/
|
|
298
309
|
<Self, Shape>(): <
|
|
@@ -303,7 +314,9 @@ export const Service: {
|
|
|
303
314
|
>(
|
|
304
315
|
id: Identifier,
|
|
305
316
|
options?: {
|
|
306
|
-
readonly make
|
|
317
|
+
readonly make?: ((...args: Args) => Effect<Shape, E, R>) | Effect<Shape, E, R> | undefined
|
|
318
|
+
/** @internal */
|
|
319
|
+
readonly fiberCached?: boolean | undefined
|
|
307
320
|
} | undefined
|
|
308
321
|
) =>
|
|
309
322
|
& ServiceClass<Self, Identifier, Shape>
|
|
@@ -332,7 +345,7 @@ export const Service: {
|
|
|
332
345
|
*
|
|
333
346
|
* **Example** (Creating service keys)
|
|
334
347
|
*
|
|
335
|
-
* ```ts
|
|
348
|
+
* ```ts import.meta.vitest
|
|
336
349
|
* import { Context } from "effect"
|
|
337
350
|
*
|
|
338
351
|
* // Create a simple service
|
|
@@ -350,11 +363,13 @@ export const Service: {
|
|
|
350
363
|
* query: (sql) => `Result: ${sql}`
|
|
351
364
|
* })
|
|
352
365
|
* const config = Context.make(Config, { port: 8080 })
|
|
366
|
+
* Context.get(db, Database).query("SELECT 1") // => "Result: SELECT 1"
|
|
367
|
+
* Context.get(config, Config).port // => 8080
|
|
353
368
|
* ```
|
|
354
369
|
*
|
|
355
370
|
* @see {@link Reference} for service keys with default values
|
|
356
371
|
*
|
|
357
|
-
* @category
|
|
372
|
+
* @category services
|
|
358
373
|
* @since 4.0.0
|
|
359
374
|
*/
|
|
360
375
|
<Self>(): <
|
|
@@ -364,6 +379,8 @@ export const Service: {
|
|
|
364
379
|
id: Identifier,
|
|
365
380
|
options: {
|
|
366
381
|
readonly make: Make
|
|
382
|
+
/** @internal */
|
|
383
|
+
readonly fiberCached?: boolean | undefined
|
|
367
384
|
}
|
|
368
385
|
) =>
|
|
369
386
|
& ServiceClass<
|
|
@@ -375,36 +392,28 @@ export const Service: {
|
|
|
375
392
|
>
|
|
376
393
|
& { readonly make: Make }
|
|
377
394
|
} = function() {
|
|
378
|
-
const prevLimit = getStackTraceLimit()
|
|
379
|
-
setStackTraceLimit(2)
|
|
380
|
-
const err = new Error()
|
|
381
|
-
setStackTraceLimit(prevLimit)
|
|
382
395
|
function KeyClass() {}
|
|
383
396
|
const self = KeyClass as any as Types.Mutable<Reference<any>>
|
|
384
397
|
Object.setPrototypeOf(self, ServiceProto)
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
get() {
|
|
388
|
-
return err.stack
|
|
389
|
-
}
|
|
390
|
-
})
|
|
391
|
-
if (arguments.length > 0) {
|
|
392
|
-
self.key = arguments[0]
|
|
393
|
-
if (arguments[1]?.defaultValue) {
|
|
394
|
-
self[ReferenceTypeId] = ReferenceTypeId
|
|
395
|
-
self.defaultValue = arguments[1].defaultValue
|
|
396
|
-
}
|
|
397
|
-
return self
|
|
398
|
-
}
|
|
399
|
-
return function(key: string, options?: {
|
|
398
|
+
const init = (key: string, options?: {
|
|
399
|
+
readonly defaultValue?: any
|
|
400
400
|
readonly make?: any
|
|
401
|
-
|
|
401
|
+
readonly fiberCached?: boolean
|
|
402
|
+
}) => {
|
|
402
403
|
self.key = key
|
|
404
|
+
if (options?.defaultValue) {
|
|
405
|
+
self[ReferenceTypeId] = ReferenceTypeId
|
|
406
|
+
self.defaultValue = options.defaultValue
|
|
407
|
+
}
|
|
403
408
|
if (options?.make) {
|
|
404
409
|
;(self as any).make = options.make
|
|
405
410
|
}
|
|
411
|
+
if (options?.fiberCached) {
|
|
412
|
+
cacheKeys.add(key)
|
|
413
|
+
}
|
|
406
414
|
return self
|
|
407
415
|
}
|
|
416
|
+
return arguments.length > 0 ? init(arguments[0], arguments[1]) : init
|
|
408
417
|
} as any
|
|
409
418
|
|
|
410
419
|
const ServiceProto: any = {
|
|
@@ -418,8 +427,7 @@ const ServiceProto: any = {
|
|
|
418
427
|
toJSON<I, A>(this: Service<I, A>) {
|
|
419
428
|
return {
|
|
420
429
|
_id: "Service",
|
|
421
|
-
key: this.key
|
|
422
|
-
stack: this.stack
|
|
430
|
+
key: this.key
|
|
423
431
|
}
|
|
424
432
|
},
|
|
425
433
|
of<Service>(this: void, self: Service): Service {
|
|
@@ -439,6 +447,8 @@ const ServiceProto: any = {
|
|
|
439
447
|
}
|
|
440
448
|
}
|
|
441
449
|
|
|
450
|
+
const cacheKeys = new Set<string>()
|
|
451
|
+
|
|
442
452
|
const ReferenceTypeId = "~effect/Context/Reference" as const
|
|
443
453
|
|
|
444
454
|
/**
|
|
@@ -452,21 +462,24 @@ const ReferenceTypeId = "~effect/Context/Reference" as const
|
|
|
452
462
|
*
|
|
453
463
|
* **Example** (Defining a reference with a default value)
|
|
454
464
|
*
|
|
455
|
-
* ```ts
|
|
465
|
+
* ```ts import.meta.vitest
|
|
456
466
|
* import { Context } from "effect"
|
|
457
467
|
*
|
|
458
468
|
* // Define a reference with a default value
|
|
469
|
+
* const messages: Array<string> = []
|
|
459
470
|
* const LoggerRef: Context.Reference<{ log: (msg: string) => void }> =
|
|
460
471
|
* Context.Reference("Logger", {
|
|
461
|
-
* defaultValue: () => ({ log: (msg
|
|
472
|
+
* defaultValue: () => ({ log: (msg) => { messages.push(msg) } })
|
|
462
473
|
* })
|
|
463
474
|
*
|
|
464
475
|
* // The reference can be used without explicit provision
|
|
465
476
|
* const context = Context.empty()
|
|
466
477
|
* const logger = Context.get(context, LoggerRef) // Uses default value
|
|
478
|
+
* logger.log("default logger")
|
|
479
|
+
* messages // => ["default logger"]
|
|
467
480
|
* ```
|
|
468
481
|
*
|
|
469
|
-
* @category
|
|
482
|
+
* @category services
|
|
470
483
|
* @since 3.11.0
|
|
471
484
|
*/
|
|
472
485
|
export interface Reference<in out Shape> extends Service<never, Shape> {
|
|
@@ -481,7 +494,7 @@ export interface Reference<in out Shape> extends Service<never, Shape> {
|
|
|
481
494
|
*
|
|
482
495
|
* **Example** (Extracting service types)
|
|
483
496
|
*
|
|
484
|
-
* ```ts
|
|
497
|
+
* ```ts import.meta.vitest
|
|
485
498
|
* import { Context } from "effect"
|
|
486
499
|
*
|
|
487
500
|
* const Database = Context.Service<{
|
|
@@ -493,6 +506,8 @@ export interface Reference<in out Shape> extends Service<never, Shape> {
|
|
|
493
506
|
*
|
|
494
507
|
* // Extract identifier type from a key
|
|
495
508
|
* type DatabaseId = Context.Service.Identifier<typeof Database>
|
|
509
|
+
*
|
|
510
|
+
* Database.key // => "Database"
|
|
496
511
|
* ```
|
|
497
512
|
*
|
|
498
513
|
* @since 2.0.0
|
|
@@ -504,7 +519,7 @@ export declare namespace Service {
|
|
|
504
519
|
*
|
|
505
520
|
* **Example** (Typing any service key)
|
|
506
521
|
*
|
|
507
|
-
* ```ts
|
|
522
|
+
* ```ts import.meta.vitest
|
|
508
523
|
* import { Context } from "effect"
|
|
509
524
|
*
|
|
510
525
|
* // Any represents any possible service type
|
|
@@ -512,9 +527,10 @@ export declare namespace Service {
|
|
|
512
527
|
* Context.Service<{ log: (msg: string) => void }>("Logger"),
|
|
513
528
|
* Context.Service<{ query: (sql: string) => string }>("Database")
|
|
514
529
|
* ]
|
|
530
|
+
* services.map((service) => service.key) // => ["Logger", "Database"]
|
|
515
531
|
* ```
|
|
516
532
|
*
|
|
517
|
-
* @category
|
|
533
|
+
* @category utility types
|
|
518
534
|
* @since 4.0.0
|
|
519
535
|
*/
|
|
520
536
|
export type Any = Key<never, any> | Key<any, any>
|
|
@@ -525,7 +541,7 @@ export declare namespace Service {
|
|
|
525
541
|
*
|
|
526
542
|
* **Example** (Extracting a service shape)
|
|
527
543
|
*
|
|
528
|
-
* ```ts
|
|
544
|
+
* ```ts import.meta.vitest
|
|
529
545
|
* import { Context } from "effect"
|
|
530
546
|
*
|
|
531
547
|
* const Database = Context.Service<{ query: (sql: string) => string }>(
|
|
@@ -535,9 +551,10 @@ export declare namespace Service {
|
|
|
535
551
|
* // Extract the service shape from the service
|
|
536
552
|
* type DatabaseService = Context.Service.Shape<typeof Database>
|
|
537
553
|
* // DatabaseService is { query: (sql: string) => string }
|
|
554
|
+
* Database.key // => "Database"
|
|
538
555
|
* ```
|
|
539
556
|
*
|
|
540
|
-
* @category
|
|
557
|
+
* @category utility types
|
|
541
558
|
* @since 4.0.0
|
|
542
559
|
*/
|
|
543
560
|
export type Shape<T> = T extends Key<infer _I, infer S> ? S : never
|
|
@@ -548,7 +565,7 @@ export declare namespace Service {
|
|
|
548
565
|
*
|
|
549
566
|
* **Example** (Extracting a service identifier)
|
|
550
567
|
*
|
|
551
|
-
* ```ts
|
|
568
|
+
* ```ts import.meta.vitest
|
|
552
569
|
* import { Context } from "effect"
|
|
553
570
|
*
|
|
554
571
|
* const Database = Context.Service<{ query: (sql: string) => string }>(
|
|
@@ -558,9 +575,10 @@ export declare namespace Service {
|
|
|
558
575
|
* // Extract the identifier type from a key
|
|
559
576
|
* type DatabaseId = Context.Service.Identifier<typeof Database>
|
|
560
577
|
* // DatabaseId is the identifier type
|
|
578
|
+
* Database.key // => "Database"
|
|
561
579
|
* ```
|
|
562
580
|
*
|
|
563
|
-
* @category
|
|
581
|
+
* @category utility types
|
|
564
582
|
* @since 2.0.0
|
|
565
583
|
*/
|
|
566
584
|
export type Identifier<T> = T extends Key<infer I, infer _S> ? I : never
|
|
@@ -579,7 +597,7 @@ const TypeId = "~effect/Context" as const
|
|
|
579
597
|
*
|
|
580
598
|
* **Example** (Creating a context with multiple services)
|
|
581
599
|
*
|
|
582
|
-
* ```ts
|
|
600
|
+
* ```ts import.meta.vitest
|
|
583
601
|
* import { Context } from "effect"
|
|
584
602
|
*
|
|
585
603
|
* // Create a context with multiple services
|
|
@@ -588,10 +606,9 @@ const TypeId = "~effect/Context" as const
|
|
|
588
606
|
* "Database"
|
|
589
607
|
* )
|
|
590
608
|
*
|
|
591
|
-
* const context = Context.make(Logger, {
|
|
592
|
-
* log: (msg: string) => console.log(msg)
|
|
593
|
-
* })
|
|
609
|
+
* const context = Context.make(Logger, { log: (_msg: string) => {} })
|
|
594
610
|
* .pipe(Context.add(Database, { query: (sql) => `Result: ${sql}` }))
|
|
611
|
+
* Context.get(context, Database).query("SELECT 1") // => "Result: SELECT 1"
|
|
595
612
|
* ```
|
|
596
613
|
*
|
|
597
614
|
* @category models
|
|
@@ -602,7 +619,81 @@ export interface Context<in Services> extends Equal.Equal, Pipeable, Inspectable
|
|
|
602
619
|
readonly _Services: Types.Contravariant<Services>
|
|
603
620
|
}
|
|
604
621
|
readonly mapUnsafe: ReadonlyMap<string, any>
|
|
605
|
-
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
interface ContextImpl<in Services> extends Context<Services> {
|
|
625
|
+
cacheRoot: ContextImpl<any> | undefined
|
|
626
|
+
base: ReadonlyMap<string, any>
|
|
627
|
+
baseHits: number
|
|
628
|
+
overlay: Overlay | undefined
|
|
629
|
+
depth: number
|
|
630
|
+
_flat: ReadonlyMap<string, any> | undefined
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
interface Overlay {
|
|
634
|
+
readonly key: string
|
|
635
|
+
readonly value: unknown
|
|
636
|
+
readonly parent: Overlay | undefined
|
|
637
|
+
}
|
|
638
|
+
|
|
639
|
+
const MaxDepth = 8
|
|
640
|
+
const FlattenAfterBaseHits = 8
|
|
641
|
+
|
|
642
|
+
const makeImpl = <Services>(
|
|
643
|
+
cacheRoot: ContextImpl<any> | undefined,
|
|
644
|
+
base: ReadonlyMap<string, any>,
|
|
645
|
+
overlay: Overlay | undefined,
|
|
646
|
+
depth: number
|
|
647
|
+
): ContextImpl<Services> => {
|
|
648
|
+
const self: ContextImpl<Services> = Object.create(Proto)
|
|
649
|
+
self.cacheRoot = cacheRoot ?? self
|
|
650
|
+
self.base = base
|
|
651
|
+
self.overlay = overlay
|
|
652
|
+
self.depth = depth
|
|
653
|
+
self._flat = undefined
|
|
654
|
+
self.baseHits = 0
|
|
655
|
+
return self
|
|
656
|
+
}
|
|
657
|
+
|
|
658
|
+
const applyOverlays = (map: Map<string, any>, overlay: Overlay | undefined): void => {
|
|
659
|
+
if (!overlay) return
|
|
660
|
+
applyOverlays(map, overlay.parent)
|
|
661
|
+
map.set(overlay.key, overlay.value)
|
|
662
|
+
}
|
|
663
|
+
|
|
664
|
+
const flatten = (self: ContextImpl<any>): ReadonlyMap<string, any> => {
|
|
665
|
+
if (self._flat) return self._flat
|
|
666
|
+
if (!self.overlay) return self._flat = self.base
|
|
667
|
+
const map = new Map(self.base)
|
|
668
|
+
applyOverlays(map, self.overlay)
|
|
669
|
+
return self._flat = map
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
const withFlat = <B>(self: Context<any>, f: (map: Map<string, any>) => void): Context<B> => {
|
|
673
|
+
const map = new Map(self.mapUnsafe)
|
|
674
|
+
f(map)
|
|
675
|
+
return makeUnsafe(map)
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
// A private symbol so user code cannot forge a value that reads as absent
|
|
679
|
+
const notFound = Symbol()
|
|
680
|
+
|
|
681
|
+
const lookup = (self: Context<any>, key: string): unknown => {
|
|
682
|
+
const impl = self as ContextImpl<any>
|
|
683
|
+
for (let overlay = impl.overlay; overlay; overlay = overlay.parent) {
|
|
684
|
+
if (overlay.key === key) return overlay.value
|
|
685
|
+
}
|
|
686
|
+
const value = impl.base.get(key)
|
|
687
|
+
// Misses must not advance the counter: reference-default lookups miss the
|
|
688
|
+
// base on every fiber cache refresh, which would flatten every short-lived
|
|
689
|
+
// request context and reintroduce the O(services) per-request cost
|
|
690
|
+
if (value === undefined && !impl.base.has(key)) return notFound
|
|
691
|
+
if (impl.overlay && ++impl.baseHits >= FlattenAfterBaseHits) {
|
|
692
|
+
impl.base = flatten(impl)
|
|
693
|
+
impl.overlay = undefined
|
|
694
|
+
impl.depth = 0
|
|
695
|
+
}
|
|
696
|
+
return value
|
|
606
697
|
}
|
|
607
698
|
|
|
608
699
|
/**
|
|
@@ -615,38 +706,41 @@ export interface Context<in Services> extends Equal.Equal, Pipeable, Inspectable
|
|
|
615
706
|
*
|
|
616
707
|
* **Gotchas**
|
|
617
708
|
*
|
|
618
|
-
*
|
|
619
|
-
*
|
|
620
|
-
*
|
|
709
|
+
* The provided map is retained without copying and must not be mutated after
|
|
710
|
+
* construction. Prefer `empty`, `make`, `add`, or `merge` for normal Context
|
|
711
|
+
* construction.
|
|
621
712
|
*
|
|
622
713
|
* **Example** (Creating a context from a map)
|
|
623
714
|
*
|
|
624
|
-
* ```ts
|
|
715
|
+
* ```ts import.meta.vitest
|
|
625
716
|
* import { Context } from "effect"
|
|
626
717
|
*
|
|
627
718
|
* // Create a context from a Map (unsafe)
|
|
628
719
|
* const map = new Map([
|
|
629
|
-
* ["Logger", { log: (
|
|
720
|
+
* ["Logger", { log: (_msg: string) => {} }]
|
|
630
721
|
* ])
|
|
631
722
|
*
|
|
632
723
|
* const context = Context.makeUnsafe(map)
|
|
724
|
+
* context.mapUnsafe.size // => 1
|
|
633
725
|
* ```
|
|
634
726
|
*
|
|
635
727
|
* @category constructors
|
|
636
728
|
* @since 4.0.0
|
|
637
729
|
*/
|
|
638
|
-
export const makeUnsafe = <Services = never>(mapUnsafe: ReadonlyMap<string, any>): Context<Services> =>
|
|
639
|
-
|
|
640
|
-
self.mapUnsafe = mapUnsafe
|
|
641
|
-
self.mutable = false
|
|
642
|
-
return self
|
|
643
|
-
}
|
|
730
|
+
export const makeUnsafe = <Services = never>(mapUnsafe: ReadonlyMap<string, any>): Context<Services> =>
|
|
731
|
+
makeImpl(undefined, mapUnsafe, undefined, 0)
|
|
644
732
|
|
|
645
|
-
const Proto: Omit<
|
|
733
|
+
const Proto: Omit<
|
|
734
|
+
ContextImpl<never>,
|
|
735
|
+
"cacheRoot" | "base" | "overlay" | "depth" | "_flat" | "baseHits"
|
|
736
|
+
> = {
|
|
646
737
|
...PipeInspectableProto,
|
|
647
738
|
[TypeId]: {
|
|
648
739
|
_Services: (_: never) => _
|
|
649
740
|
},
|
|
741
|
+
get mapUnsafe() {
|
|
742
|
+
return flatten(this as any as ContextImpl<any>)
|
|
743
|
+
},
|
|
650
744
|
toJSON(this: Context<never>) {
|
|
651
745
|
return {
|
|
652
746
|
_id: "Context",
|
|
@@ -654,17 +748,12 @@ const Proto: Omit<Context<never>, "mapUnsafe" | "mutable"> = {
|
|
|
654
748
|
}
|
|
655
749
|
},
|
|
656
750
|
[Equal.symbol]<A>(this: Context<A>, that: unknown): boolean {
|
|
657
|
-
if (
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
) return false
|
|
661
|
-
for (const
|
|
662
|
-
if (
|
|
663
|
-
!that.mapUnsafe.has(k) ||
|
|
664
|
-
!Equal.equals(this.mapUnsafe.get(k), that.mapUnsafe.get(k))
|
|
665
|
-
) {
|
|
666
|
-
return false
|
|
667
|
-
}
|
|
751
|
+
if (!isContext(that)) return false
|
|
752
|
+
const self = this.mapUnsafe
|
|
753
|
+
const other = that.mapUnsafe
|
|
754
|
+
if (self.size !== other.size) return false
|
|
755
|
+
for (const [key, value] of self) {
|
|
756
|
+
if (!other.has(key) || !Equal.equals(value, other.get(key))) return false
|
|
668
757
|
}
|
|
669
758
|
return true
|
|
670
759
|
},
|
|
@@ -673,6 +762,12 @@ const Proto: Omit<Context<never>, "mapUnsafe" | "mutable"> = {
|
|
|
673
762
|
}
|
|
674
763
|
}
|
|
675
764
|
|
|
765
|
+
/** @internal */
|
|
766
|
+
export const hasSameCache = <Services, Services2>(
|
|
767
|
+
self: Context<Services>,
|
|
768
|
+
that: Context<Services2>
|
|
769
|
+
): boolean => (self as ContextImpl<Services>).cacheRoot === (that as ContextImpl<Services2>).cacheRoot
|
|
770
|
+
|
|
676
771
|
/**
|
|
677
772
|
* Checks whether the provided argument is a `Context`.
|
|
678
773
|
*
|
|
@@ -693,11 +788,9 @@ const Proto: Omit<Context<never>, "mapUnsafe" | "mutable"> = {
|
|
|
693
788
|
*
|
|
694
789
|
* **Example** (Checking for contexts)
|
|
695
790
|
*
|
|
696
|
-
* ```ts
|
|
791
|
+
* ```ts import.meta.vitest
|
|
697
792
|
* import { Context } from "effect"
|
|
698
|
-
*
|
|
699
|
-
*
|
|
700
|
-
* assert.strictEqual(Context.isContext(Context.empty()), true)
|
|
793
|
+
* Context.isContext(Context.empty()) // => true
|
|
701
794
|
* ```
|
|
702
795
|
*
|
|
703
796
|
* @see {@link isKey} for checking service keys
|
|
@@ -713,11 +806,9 @@ export const isContext = (u: unknown): u is Context<never> => hasProperty(u, Typ
|
|
|
713
806
|
*
|
|
714
807
|
* **Example** (Checking for keys)
|
|
715
808
|
*
|
|
716
|
-
* ```ts
|
|
809
|
+
* ```ts import.meta.vitest
|
|
717
810
|
* import { Context } from "effect"
|
|
718
|
-
*
|
|
719
|
-
*
|
|
720
|
-
* assert.strictEqual(Context.isKey(Context.Service("Service")), true)
|
|
811
|
+
* Context.isKey(Context.Service("Service")) // => true
|
|
721
812
|
* ```
|
|
722
813
|
*
|
|
723
814
|
* @category guards
|
|
@@ -730,33 +821,30 @@ export const isKey = (u: unknown): u is Key<any, any> => hasProperty(u, ServiceT
|
|
|
730
821
|
*
|
|
731
822
|
* **Example** (Checking for references)
|
|
732
823
|
*
|
|
733
|
-
* ```ts
|
|
824
|
+
* ```ts import.meta.vitest
|
|
734
825
|
* import { Context } from "effect"
|
|
735
|
-
* import * as assert from "node:assert"
|
|
736
826
|
*
|
|
737
827
|
* const LoggerRef = Context.Reference("Logger", {
|
|
738
|
-
* defaultValue: () => ({ log: (
|
|
828
|
+
* defaultValue: () => ({ log: (_msg: string) => {} })
|
|
739
829
|
* })
|
|
740
830
|
*
|
|
741
|
-
*
|
|
742
|
-
*
|
|
831
|
+
* Context.isReference(LoggerRef) // => true
|
|
832
|
+
* Context.isReference(Context.Service("Key")) // => false
|
|
743
833
|
* ```
|
|
744
834
|
*
|
|
745
835
|
* @category guards
|
|
746
836
|
* @since 3.11.0
|
|
747
837
|
*/
|
|
748
|
-
export const isReference = (u:
|
|
838
|
+
export const isReference = <I, S>(u: Key<I, S>): u is Reference<S> => !!(u as Reference<S>)[ReferenceTypeId]
|
|
749
839
|
|
|
750
840
|
/**
|
|
751
841
|
* Returns an empty `Context`.
|
|
752
842
|
*
|
|
753
843
|
* **Example** (Creating an empty context)
|
|
754
844
|
*
|
|
755
|
-
* ```ts
|
|
845
|
+
* ```ts import.meta.vitest
|
|
756
846
|
* import { Context } from "effect"
|
|
757
|
-
*
|
|
758
|
-
*
|
|
759
|
-
* assert.strictEqual(Context.isContext(Context.empty()), true)
|
|
847
|
+
* Context.empty().mapUnsafe.size // => 0
|
|
760
848
|
* ```
|
|
761
849
|
*
|
|
762
850
|
* @category constructors
|
|
@@ -770,15 +858,14 @@ const emptyContext = makeUnsafe(new Map())
|
|
|
770
858
|
*
|
|
771
859
|
* **Example** (Creating a context with one service)
|
|
772
860
|
*
|
|
773
|
-
* ```ts
|
|
861
|
+
* ```ts import.meta.vitest
|
|
774
862
|
* import { Context } from "effect"
|
|
775
|
-
* import * as assert from "node:assert"
|
|
776
863
|
*
|
|
777
864
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
778
865
|
*
|
|
779
866
|
* const context = Context.make(Port, { PORT: 8080 })
|
|
780
867
|
*
|
|
781
|
-
*
|
|
868
|
+
* Context.get(context, Port).PORT // => 8080
|
|
782
869
|
* ```
|
|
783
870
|
*
|
|
784
871
|
* @category constructors
|
|
@@ -803,9 +890,8 @@ export const make = <I, S>(
|
|
|
803
890
|
*
|
|
804
891
|
* **Example** (Adding a service to a context)
|
|
805
892
|
*
|
|
806
|
-
* ```ts
|
|
893
|
+
* ```ts import.meta.vitest
|
|
807
894
|
* import { Context, pipe } from "effect"
|
|
808
|
-
* import * as assert from "node:assert"
|
|
809
895
|
*
|
|
810
896
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
811
897
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
@@ -817,13 +903,13 @@ export const make = <I, S>(
|
|
|
817
903
|
* Context.add(Timeout, { TIMEOUT: 5000 })
|
|
818
904
|
* )
|
|
819
905
|
*
|
|
820
|
-
*
|
|
821
|
-
*
|
|
906
|
+
* const values = [Context.get(context, Port).PORT, Context.get(context, Timeout).TIMEOUT]
|
|
907
|
+
* values // => [8080, 5000]
|
|
822
908
|
* ```
|
|
823
909
|
*
|
|
824
910
|
* @see {@link addOrOmit} for adding or removing a service from an `Option`
|
|
825
911
|
*
|
|
826
|
-
* @category
|
|
912
|
+
* @category combining
|
|
827
913
|
* @since 2.0.0
|
|
828
914
|
*/
|
|
829
915
|
export const add: {
|
|
@@ -841,9 +927,8 @@ export const add: {
|
|
|
841
927
|
*
|
|
842
928
|
* **Example** (Adding a service to a context)
|
|
843
929
|
*
|
|
844
|
-
* ```ts
|
|
930
|
+
* ```ts import.meta.vitest
|
|
845
931
|
* import { Context, pipe } from "effect"
|
|
846
|
-
* import * as assert from "node:assert"
|
|
847
932
|
*
|
|
848
933
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
849
934
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
@@ -855,13 +940,13 @@ export const add: {
|
|
|
855
940
|
* Context.add(Timeout, { TIMEOUT: 5000 })
|
|
856
941
|
* )
|
|
857
942
|
*
|
|
858
|
-
*
|
|
859
|
-
*
|
|
943
|
+
* const values = [Context.get(context, Port).PORT, Context.get(context, Timeout).TIMEOUT]
|
|
944
|
+
* values // => [8080, 5000]
|
|
860
945
|
* ```
|
|
861
946
|
*
|
|
862
947
|
* @see {@link addOrOmit} for adding or removing a service from an `Option`
|
|
863
948
|
*
|
|
864
|
-
* @category
|
|
949
|
+
* @category combining
|
|
865
950
|
* @since 2.0.0
|
|
866
951
|
*/
|
|
867
952
|
<I, S>(key: Key<I, S>, service: Types.NoInfer<S>): <Services>(self: Context<Services>) => Context<Services | I>
|
|
@@ -879,9 +964,8 @@ export const add: {
|
|
|
879
964
|
*
|
|
880
965
|
* **Example** (Adding a service to a context)
|
|
881
966
|
*
|
|
882
|
-
* ```ts
|
|
967
|
+
* ```ts import.meta.vitest
|
|
883
968
|
* import { Context, pipe } from "effect"
|
|
884
|
-
* import * as assert from "node:assert"
|
|
885
969
|
*
|
|
886
970
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
887
971
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
@@ -893,13 +977,13 @@ export const add: {
|
|
|
893
977
|
* Context.add(Timeout, { TIMEOUT: 5000 })
|
|
894
978
|
* )
|
|
895
979
|
*
|
|
896
|
-
*
|
|
897
|
-
*
|
|
980
|
+
* const values = [Context.get(context, Port).PORT, Context.get(context, Timeout).TIMEOUT]
|
|
981
|
+
* values // => [8080, 5000]
|
|
898
982
|
* ```
|
|
899
983
|
*
|
|
900
984
|
* @see {@link addOrOmit} for adding or removing a service from an `Option`
|
|
901
985
|
*
|
|
902
|
-
* @category
|
|
986
|
+
* @category combining
|
|
903
987
|
* @since 2.0.0
|
|
904
988
|
*/
|
|
905
989
|
<Services, I, S>(self: Context<Services>, key: Key<I, S>, service: Types.NoInfer<S>): Context<Services | I>
|
|
@@ -907,10 +991,24 @@ export const add: {
|
|
|
907
991
|
self: Context<Services>,
|
|
908
992
|
key: Key<I, S>,
|
|
909
993
|
service: Types.NoInfer<S>
|
|
910
|
-
): Context<Services | I> =>
|
|
911
|
-
|
|
994
|
+
): Context<Services | I> => {
|
|
995
|
+
const impl = self as ContextImpl<Services>
|
|
996
|
+
const cacheRoot = cacheKeys.has(key.key) ? undefined : impl.cacheRoot
|
|
997
|
+
if (impl.depth >= MaxDepth) {
|
|
998
|
+
// Rebase the overlay chain into a flat map, keeping the cacheRoot so a
|
|
999
|
+
// rebase on an ordinary key does not invalidate fiber caches
|
|
1000
|
+
const map = new Map(impl.mapUnsafe)
|
|
912
1001
|
map.set(key.key, service)
|
|
913
|
-
|
|
1002
|
+
return makeImpl(cacheRoot, map, undefined, 0)
|
|
1003
|
+
}
|
|
1004
|
+
|
|
1005
|
+
return makeImpl(
|
|
1006
|
+
cacheRoot,
|
|
1007
|
+
impl.base,
|
|
1008
|
+
{ key: key.key, value: service, parent: impl.overlay },
|
|
1009
|
+
impl.depth + 1
|
|
1010
|
+
)
|
|
1011
|
+
})
|
|
914
1012
|
|
|
915
1013
|
/**
|
|
916
1014
|
* Adds or removes a service depending on an `Option`.
|
|
@@ -926,7 +1024,7 @@ export const add: {
|
|
|
926
1024
|
*
|
|
927
1025
|
* **Example** (Adding optional services)
|
|
928
1026
|
*
|
|
929
|
-
* ```ts
|
|
1027
|
+
* ```ts import.meta.vitest
|
|
930
1028
|
* import { Context, Option } from "effect"
|
|
931
1029
|
*
|
|
932
1030
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
@@ -938,11 +1036,13 @@ export const add: {
|
|
|
938
1036
|
* const withoutPort = withPort.pipe(
|
|
939
1037
|
* Context.addOrOmit(Port, Option.none())
|
|
940
1038
|
* )
|
|
1039
|
+
* Context.getOption(withPort, Port) // => Option.some({ PORT: 8080 })
|
|
1040
|
+
* Context.getOption(withoutPort, Port) // => Option.none()
|
|
941
1041
|
* ```
|
|
942
1042
|
*
|
|
943
1043
|
* @see {@link add} for always storing a service value
|
|
944
1044
|
*
|
|
945
|
-
* @category
|
|
1045
|
+
* @category combining
|
|
946
1046
|
* @since 4.0.0
|
|
947
1047
|
*/
|
|
948
1048
|
export const addOrOmit: {
|
|
@@ -960,7 +1060,7 @@ export const addOrOmit: {
|
|
|
960
1060
|
*
|
|
961
1061
|
* **Example** (Adding optional services)
|
|
962
1062
|
*
|
|
963
|
-
* ```ts
|
|
1063
|
+
* ```ts import.meta.vitest
|
|
964
1064
|
* import { Context, Option } from "effect"
|
|
965
1065
|
*
|
|
966
1066
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
@@ -972,14 +1072,16 @@ export const addOrOmit: {
|
|
|
972
1072
|
* const withoutPort = withPort.pipe(
|
|
973
1073
|
* Context.addOrOmit(Port, Option.none())
|
|
974
1074
|
* )
|
|
1075
|
+
* Context.getOption(withPort, Port) // => Option.some({ PORT: 8080 })
|
|
1076
|
+
* Context.getOption(withoutPort, Port) // => Option.none()
|
|
975
1077
|
* ```
|
|
976
1078
|
*
|
|
977
1079
|
* @see {@link add} for always storing a service value
|
|
978
1080
|
*
|
|
979
|
-
* @category
|
|
1081
|
+
* @category combining
|
|
980
1082
|
* @since 4.0.0
|
|
981
1083
|
*/
|
|
982
|
-
<I, S>(key: Key<I, S>, service: Option.Option<Types.NoInfer<S>>): <Services>(self: Context<Services>) => Context<Services
|
|
1084
|
+
<I, S>(key: Key<I, S>, service: Option.Option<Types.NoInfer<S>>): <Services>(self: Context<Services>) => Context<Exclude<Services, I>>
|
|
983
1085
|
/**
|
|
984
1086
|
* Adds or removes a service depending on an `Option`.
|
|
985
1087
|
*
|
|
@@ -994,7 +1096,7 @@ export const addOrOmit: {
|
|
|
994
1096
|
*
|
|
995
1097
|
* **Example** (Adding optional services)
|
|
996
1098
|
*
|
|
997
|
-
* ```ts
|
|
1099
|
+
* ```ts import.meta.vitest
|
|
998
1100
|
* import { Context, Option } from "effect"
|
|
999
1101
|
*
|
|
1000
1102
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
@@ -1006,30 +1108,28 @@ export const addOrOmit: {
|
|
|
1006
1108
|
* const withoutPort = withPort.pipe(
|
|
1007
1109
|
* Context.addOrOmit(Port, Option.none())
|
|
1008
1110
|
* )
|
|
1111
|
+
* Context.getOption(withPort, Port) // => Option.some({ PORT: 8080 })
|
|
1112
|
+
* Context.getOption(withoutPort, Port) // => Option.none()
|
|
1009
1113
|
* ```
|
|
1010
1114
|
*
|
|
1011
1115
|
* @see {@link add} for always storing a service value
|
|
1012
1116
|
*
|
|
1013
|
-
* @category
|
|
1117
|
+
* @category combining
|
|
1014
1118
|
* @since 4.0.0
|
|
1015
1119
|
*/
|
|
1016
1120
|
<Services, I, S>(
|
|
1017
1121
|
self: Context<Services>,
|
|
1018
1122
|
key: Key<I, S>,
|
|
1019
1123
|
service: Option.Option<Types.NoInfer<S>>
|
|
1020
|
-
): Context<Services
|
|
1124
|
+
): Context<Exclude<Services, I>>
|
|
1021
1125
|
} = dual(3, <Services, I, S>(
|
|
1022
1126
|
self: Context<Services>,
|
|
1023
1127
|
key: Key<I, S>,
|
|
1024
1128
|
service: Option.Option<Types.NoInfer<S>>
|
|
1025
|
-
): Context<Services
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
} else {
|
|
1030
|
-
map.set(key.key, service.value)
|
|
1031
|
-
}
|
|
1032
|
-
}))
|
|
1129
|
+
): Context<Exclude<Services, I>> =>
|
|
1130
|
+
service._tag === "None"
|
|
1131
|
+
? omit(key)(self)
|
|
1132
|
+
: add(self, key, service.value) as any)
|
|
1033
1133
|
|
|
1034
1134
|
/**
|
|
1035
1135
|
* Gets the service for a key, or evaluates the fallback when a non-reference
|
|
@@ -1052,7 +1152,7 @@ export const addOrOmit: {
|
|
|
1052
1152
|
*
|
|
1053
1153
|
* **Example** (Falling back for missing services)
|
|
1054
1154
|
*
|
|
1055
|
-
* ```ts
|
|
1155
|
+
* ```ts import.meta.vitest
|
|
1056
1156
|
* import { Context } from "effect"
|
|
1057
1157
|
*
|
|
1058
1158
|
* const Logger = Context.Service<{ log: (msg: string) => void }>("Logger")
|
|
@@ -1060,9 +1160,7 @@ export const addOrOmit: {
|
|
|
1060
1160
|
* "Database"
|
|
1061
1161
|
* )
|
|
1062
1162
|
*
|
|
1063
|
-
* const context = Context.make(Logger, {
|
|
1064
|
-
* log: (msg: string) => console.log(msg)
|
|
1065
|
-
* })
|
|
1163
|
+
* const context = Context.make(Logger, { log: (_msg: string) => {} })
|
|
1066
1164
|
*
|
|
1067
1165
|
* const logger = Context.getOrElse(context, Logger, () => ({ log: () => {} }))
|
|
1068
1166
|
* const database = Context.getOrElse(
|
|
@@ -1071,8 +1169,8 @@ export const addOrOmit: {
|
|
|
1071
1169
|
* () => ({ query: () => "fallback" })
|
|
1072
1170
|
* )
|
|
1073
1171
|
*
|
|
1074
|
-
*
|
|
1075
|
-
*
|
|
1172
|
+
* logger === Context.get(context, Logger) // => true
|
|
1173
|
+
* database.query("SELECT 1") // => "fallback"
|
|
1076
1174
|
* ```
|
|
1077
1175
|
*
|
|
1078
1176
|
* @see {@link getOption} for returning `Option.none` when a non-reference key is missing
|
|
@@ -1102,7 +1200,7 @@ export const getOrElse: {
|
|
|
1102
1200
|
*
|
|
1103
1201
|
* **Example** (Falling back for missing services)
|
|
1104
1202
|
*
|
|
1105
|
-
* ```ts
|
|
1203
|
+
* ```ts import.meta.vitest
|
|
1106
1204
|
* import { Context } from "effect"
|
|
1107
1205
|
*
|
|
1108
1206
|
* const Logger = Context.Service<{ log: (msg: string) => void }>("Logger")
|
|
@@ -1110,9 +1208,7 @@ export const getOrElse: {
|
|
|
1110
1208
|
* "Database"
|
|
1111
1209
|
* )
|
|
1112
1210
|
*
|
|
1113
|
-
* const context = Context.make(Logger, {
|
|
1114
|
-
* log: (msg: string) => console.log(msg)
|
|
1115
|
-
* })
|
|
1211
|
+
* const context = Context.make(Logger, { log: (_msg: string) => {} })
|
|
1116
1212
|
*
|
|
1117
1213
|
* const logger = Context.getOrElse(context, Logger, () => ({ log: () => {} }))
|
|
1118
1214
|
* const database = Context.getOrElse(
|
|
@@ -1121,8 +1217,8 @@ export const getOrElse: {
|
|
|
1121
1217
|
* () => ({ query: () => "fallback" })
|
|
1122
1218
|
* )
|
|
1123
1219
|
*
|
|
1124
|
-
*
|
|
1125
|
-
*
|
|
1220
|
+
* logger === Context.get(context, Logger) // => true
|
|
1221
|
+
* database.query("SELECT 1") // => "fallback"
|
|
1126
1222
|
* ```
|
|
1127
1223
|
*
|
|
1128
1224
|
* @see {@link getOption} for returning `Option.none` when a non-reference key is missing
|
|
@@ -1152,7 +1248,7 @@ export const getOrElse: {
|
|
|
1152
1248
|
*
|
|
1153
1249
|
* **Example** (Falling back for missing services)
|
|
1154
1250
|
*
|
|
1155
|
-
* ```ts
|
|
1251
|
+
* ```ts import.meta.vitest
|
|
1156
1252
|
* import { Context } from "effect"
|
|
1157
1253
|
*
|
|
1158
1254
|
* const Logger = Context.Service<{ log: (msg: string) => void }>("Logger")
|
|
@@ -1160,9 +1256,7 @@ export const getOrElse: {
|
|
|
1160
1256
|
* "Database"
|
|
1161
1257
|
* )
|
|
1162
1258
|
*
|
|
1163
|
-
* const context = Context.make(Logger, {
|
|
1164
|
-
* log: (msg: string) => console.log(msg)
|
|
1165
|
-
* })
|
|
1259
|
+
* const context = Context.make(Logger, { log: (_msg: string) => {} })
|
|
1166
1260
|
*
|
|
1167
1261
|
* const logger = Context.getOrElse(context, Logger, () => ({ log: () => {} }))
|
|
1168
1262
|
* const database = Context.getOrElse(
|
|
@@ -1171,8 +1265,8 @@ export const getOrElse: {
|
|
|
1171
1265
|
* () => ({ query: () => "fallback" })
|
|
1172
1266
|
* )
|
|
1173
1267
|
*
|
|
1174
|
-
*
|
|
1175
|
-
*
|
|
1268
|
+
* logger === Context.get(context, Logger) // => true
|
|
1269
|
+
* database.query("SELECT 1") // => "fallback"
|
|
1176
1270
|
* ```
|
|
1177
1271
|
*
|
|
1178
1272
|
* @see {@link getOption} for returning `Option.none` when a non-reference key is missing
|
|
@@ -1182,9 +1276,8 @@ export const getOrElse: {
|
|
|
1182
1276
|
*/
|
|
1183
1277
|
<Services, S, I, B>(self: Context<Services>, key: Key<I, S>, orElse: LazyArg<B>): S | B
|
|
1184
1278
|
} = dual(3, <Services, S, I, B>(self: Context<Services>, key: Key<I, S>, orElse: LazyArg<B>): S | B => {
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
}
|
|
1279
|
+
const value = lookup(self, key.key)
|
|
1280
|
+
if (value !== notFound) return value as any
|
|
1188
1281
|
return isReference(key) ? getDefaultValue(key) : orElse()
|
|
1189
1282
|
})
|
|
1190
1283
|
|
|
@@ -1250,9 +1343,15 @@ export const getOrUndefined: {
|
|
|
1250
1343
|
<Services, S, I>(self: Context<Services>, key: Key<I, S>): S | undefined
|
|
1251
1344
|
} = dual(
|
|
1252
1345
|
2,
|
|
1253
|
-
<Services, S, I>(self: Context<Services>, key: Key<I, S>): S | undefined => self
|
|
1346
|
+
<Services, S, I>(self: Context<Services>, key: Key<I, S>): S | undefined => getOrUndefinedUnsafe(self, key.key)
|
|
1254
1347
|
)
|
|
1255
1348
|
|
|
1349
|
+
/** @internal */
|
|
1350
|
+
export const getOrUndefinedUnsafe = <A, Services = never>(self: Context<Services>, key: string): A | undefined => {
|
|
1351
|
+
const value = lookup(self, key)
|
|
1352
|
+
return value === notFound ? undefined : value as A
|
|
1353
|
+
}
|
|
1354
|
+
|
|
1256
1355
|
/**
|
|
1257
1356
|
* Gets the service for a key, throwing if an absent non-reference key cannot be
|
|
1258
1357
|
* resolved.
|
|
@@ -1270,17 +1369,16 @@ export const getOrUndefined: {
|
|
|
1270
1369
|
*
|
|
1271
1370
|
* **Example** (Getting services unsafely)
|
|
1272
1371
|
*
|
|
1273
|
-
* ```ts
|
|
1274
|
-
* import { Context } from "effect"
|
|
1275
|
-
* import * as assert from "node:assert"
|
|
1372
|
+
* ```ts import.meta.vitest
|
|
1373
|
+
* import { Context, Option } from "effect"
|
|
1276
1374
|
*
|
|
1277
1375
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1278
1376
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
1279
1377
|
*
|
|
1280
1378
|
* const context = Context.make(Port, { PORT: 8080 })
|
|
1281
1379
|
*
|
|
1282
|
-
*
|
|
1283
|
-
*
|
|
1380
|
+
* Context.getUnsafe(context, Port).PORT // => 8080
|
|
1381
|
+
* Context.getOption(context, Timeout) // => Option.none()
|
|
1284
1382
|
* ```
|
|
1285
1383
|
*
|
|
1286
1384
|
* @see {@link get} for type-checked service access
|
|
@@ -1307,17 +1405,16 @@ export const getUnsafe: {
|
|
|
1307
1405
|
*
|
|
1308
1406
|
* **Example** (Getting services unsafely)
|
|
1309
1407
|
*
|
|
1310
|
-
* ```ts
|
|
1311
|
-
* import { Context } from "effect"
|
|
1312
|
-
* import * as assert from "node:assert"
|
|
1408
|
+
* ```ts import.meta.vitest
|
|
1409
|
+
* import { Context, Option } from "effect"
|
|
1313
1410
|
*
|
|
1314
1411
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1315
1412
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
1316
1413
|
*
|
|
1317
1414
|
* const context = Context.make(Port, { PORT: 8080 })
|
|
1318
1415
|
*
|
|
1319
|
-
*
|
|
1320
|
-
*
|
|
1416
|
+
* Context.getUnsafe(context, Port).PORT // => 8080
|
|
1417
|
+
* Context.getOption(context, Timeout) // => Option.none()
|
|
1321
1418
|
* ```
|
|
1322
1419
|
*
|
|
1323
1420
|
* @see {@link get} for type-checked service access
|
|
@@ -1344,17 +1441,16 @@ export const getUnsafe: {
|
|
|
1344
1441
|
*
|
|
1345
1442
|
* **Example** (Getting services unsafely)
|
|
1346
1443
|
*
|
|
1347
|
-
* ```ts
|
|
1348
|
-
* import { Context } from "effect"
|
|
1349
|
-
* import * as assert from "node:assert"
|
|
1444
|
+
* ```ts import.meta.vitest
|
|
1445
|
+
* import { Context, Option } from "effect"
|
|
1350
1446
|
*
|
|
1351
1447
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1352
1448
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
1353
1449
|
*
|
|
1354
1450
|
* const context = Context.make(Port, { PORT: 8080 })
|
|
1355
1451
|
*
|
|
1356
|
-
*
|
|
1357
|
-
*
|
|
1452
|
+
* Context.getUnsafe(context, Port).PORT // => 8080
|
|
1453
|
+
* Context.getOption(context, Timeout) // => Option.none()
|
|
1358
1454
|
* ```
|
|
1359
1455
|
*
|
|
1360
1456
|
* @see {@link get} for type-checked service access
|
|
@@ -1367,11 +1463,12 @@ export const getUnsafe: {
|
|
|
1367
1463
|
} = dual(
|
|
1368
1464
|
2,
|
|
1369
1465
|
<Services, I extends Services, S>(self: Context<Services>, service: Key<I, S>): S => {
|
|
1370
|
-
|
|
1371
|
-
|
|
1466
|
+
const value = lookup(self, service.key)
|
|
1467
|
+
if (value === notFound) {
|
|
1468
|
+
if (isReference(service)) return getDefaultValue(service as any)
|
|
1372
1469
|
throw serviceNotFoundError(service)
|
|
1373
1470
|
}
|
|
1374
|
-
return
|
|
1471
|
+
return value as any
|
|
1375
1472
|
}
|
|
1376
1473
|
)
|
|
1377
1474
|
|
|
@@ -1385,9 +1482,8 @@ export const getUnsafe: {
|
|
|
1385
1482
|
*
|
|
1386
1483
|
* **Example** (Getting a service from a context)
|
|
1387
1484
|
*
|
|
1388
|
-
* ```ts
|
|
1485
|
+
* ```ts import.meta.vitest
|
|
1389
1486
|
* import { Context, pipe } from "effect"
|
|
1390
|
-
* import * as assert from "node:assert"
|
|
1391
1487
|
*
|
|
1392
1488
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1393
1489
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
@@ -1397,7 +1493,7 @@ export const getUnsafe: {
|
|
|
1397
1493
|
* Context.add(Timeout, { TIMEOUT: 5000 })
|
|
1398
1494
|
* )
|
|
1399
1495
|
*
|
|
1400
|
-
*
|
|
1496
|
+
* Context.get(context, Timeout).TIMEOUT // => 5000
|
|
1401
1497
|
* ```
|
|
1402
1498
|
*
|
|
1403
1499
|
* @see {@link getOption} for optional service access
|
|
@@ -1417,9 +1513,8 @@ export const get: {
|
|
|
1417
1513
|
*
|
|
1418
1514
|
* **Example** (Getting a service from a context)
|
|
1419
1515
|
*
|
|
1420
|
-
* ```ts
|
|
1516
|
+
* ```ts import.meta.vitest
|
|
1421
1517
|
* import { Context, pipe } from "effect"
|
|
1422
|
-
* import * as assert from "node:assert"
|
|
1423
1518
|
*
|
|
1424
1519
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1425
1520
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
@@ -1429,7 +1524,7 @@ export const get: {
|
|
|
1429
1524
|
* Context.add(Timeout, { TIMEOUT: 5000 })
|
|
1430
1525
|
* )
|
|
1431
1526
|
*
|
|
1432
|
-
*
|
|
1527
|
+
* Context.get(context, Timeout).TIMEOUT // => 5000
|
|
1433
1528
|
* ```
|
|
1434
1529
|
*
|
|
1435
1530
|
* @see {@link getOption} for optional service access
|
|
@@ -1449,9 +1544,8 @@ export const get: {
|
|
|
1449
1544
|
*
|
|
1450
1545
|
* **Example** (Getting a service from a context)
|
|
1451
1546
|
*
|
|
1452
|
-
* ```ts
|
|
1547
|
+
* ```ts import.meta.vitest
|
|
1453
1548
|
* import { Context, pipe } from "effect"
|
|
1454
|
-
* import * as assert from "node:assert"
|
|
1455
1549
|
*
|
|
1456
1550
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1457
1551
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
@@ -1461,7 +1555,7 @@ export const get: {
|
|
|
1461
1555
|
* Context.add(Timeout, { TIMEOUT: 5000 })
|
|
1462
1556
|
* )
|
|
1463
1557
|
*
|
|
1464
|
-
*
|
|
1558
|
+
* Context.get(context, Timeout).TIMEOUT // => 5000
|
|
1465
1559
|
* ```
|
|
1466
1560
|
*
|
|
1467
1561
|
* @see {@link getOption} for optional service access
|
|
@@ -1473,54 +1567,6 @@ export const get: {
|
|
|
1473
1567
|
<Services, I extends Services, S>(self: Context<Services>, service: Key<I, S>): S
|
|
1474
1568
|
} = getUnsafe
|
|
1475
1569
|
|
|
1476
|
-
/**
|
|
1477
|
-
* Gets the value for a `Context.Reference`, returning its cached default when
|
|
1478
|
-
* the context does not contain an override.
|
|
1479
|
-
*
|
|
1480
|
-
* **When to use**
|
|
1481
|
-
*
|
|
1482
|
-
* Use when you need a `Context.Reference` value resolved from either a stored
|
|
1483
|
-
* override or the reference's default value.
|
|
1484
|
-
*
|
|
1485
|
-
* **Details**
|
|
1486
|
-
*
|
|
1487
|
-
* Stored overrides take precedence. If no override is present, the reference's
|
|
1488
|
-
* default value is computed lazily and cached on the reference itself.
|
|
1489
|
-
*
|
|
1490
|
-
* **Gotchas**
|
|
1491
|
-
*
|
|
1492
|
-
* Mutable default values can be shared across contexts unless an override is
|
|
1493
|
-
* provided, because the default is cached on the `Context.Reference`.
|
|
1494
|
-
*
|
|
1495
|
-
* **Example** (Getting reference defaults unsafely)
|
|
1496
|
-
*
|
|
1497
|
-
* ```ts
|
|
1498
|
-
* import { Context } from "effect"
|
|
1499
|
-
*
|
|
1500
|
-
* const LoggerRef = Context.Reference("Logger", {
|
|
1501
|
-
* defaultValue: () => ({ log: (msg: string) => console.log(msg) })
|
|
1502
|
-
* })
|
|
1503
|
-
*
|
|
1504
|
-
* const context = Context.empty()
|
|
1505
|
-
* const logger = Context.getReferenceUnsafe(context, LoggerRef)
|
|
1506
|
-
*
|
|
1507
|
-
* console.log(typeof logger.log) // "function"
|
|
1508
|
-
* ```
|
|
1509
|
-
*
|
|
1510
|
-
* @see {@link getUnsafe} for unsafe access with any service key
|
|
1511
|
-
* @see {@link get} for type-checked reference-aware access
|
|
1512
|
-
* @see {@link getOption} for optional access to non-reference keys
|
|
1513
|
-
*
|
|
1514
|
-
* @category unsafe
|
|
1515
|
-
* @since 4.0.0
|
|
1516
|
-
*/
|
|
1517
|
-
export const getReferenceUnsafe = <Services, S>(self: Context<Services>, service: Reference<S>): S => {
|
|
1518
|
-
if (!self.mapUnsafe.has(service.key)) {
|
|
1519
|
-
return getDefaultValue(service as any)
|
|
1520
|
-
}
|
|
1521
|
-
return self.mapUnsafe.get(service.key)! as any
|
|
1522
|
-
}
|
|
1523
|
-
|
|
1524
1570
|
const defaultValueCacheKey = "~effect/Context/defaultValue" as const
|
|
1525
1571
|
|
|
1526
1572
|
const getDefaultValue = (ref: Reference<any>) => {
|
|
@@ -1534,15 +1580,6 @@ const serviceNotFoundError = (service: Key<any, any>) => {
|
|
|
1534
1580
|
const error = new Error(
|
|
1535
1581
|
`Service not found${service.key ? `: ${String(service.key)}` : ""}`
|
|
1536
1582
|
)
|
|
1537
|
-
if (service.stack) {
|
|
1538
|
-
const lines = service.stack.split("\n")
|
|
1539
|
-
if (lines.length > 2) {
|
|
1540
|
-
const afterAt = lines[2].match(/at (.*)/)
|
|
1541
|
-
if (afterAt) {
|
|
1542
|
-
error.message = error.message + ` (defined at ${afterAt[1]})`
|
|
1543
|
-
}
|
|
1544
|
-
}
|
|
1545
|
-
}
|
|
1546
1583
|
if (error.stack) {
|
|
1547
1584
|
const lines = error.stack.split("\n")
|
|
1548
1585
|
lines.splice(1, 3)
|
|
@@ -1567,20 +1604,16 @@ const serviceNotFoundError = (service: Key<any, any>) => {
|
|
|
1567
1604
|
*
|
|
1568
1605
|
* **Example** (Getting optional services)
|
|
1569
1606
|
*
|
|
1570
|
-
* ```ts
|
|
1607
|
+
* ```ts import.meta.vitest
|
|
1571
1608
|
* import { Context, Option } from "effect"
|
|
1572
|
-
* import * as assert from "node:assert"
|
|
1573
1609
|
*
|
|
1574
1610
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1575
1611
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
1576
1612
|
*
|
|
1577
1613
|
* const context = Context.make(Port, { PORT: 8080 })
|
|
1578
1614
|
*
|
|
1579
|
-
*
|
|
1580
|
-
*
|
|
1581
|
-
* Option.some({ PORT: 8080 })
|
|
1582
|
-
* )
|
|
1583
|
-
* assert.deepStrictEqual(Context.getOption(context, Timeout), Option.none())
|
|
1615
|
+
* Context.getOption(context, Port) // => Option.some({ PORT: 8080 })
|
|
1616
|
+
* Context.getOption(context, Timeout) // => Option.none()
|
|
1584
1617
|
* ```
|
|
1585
1618
|
*
|
|
1586
1619
|
* @see {@link getOrElse} for returning a fallback value directly
|
|
@@ -1605,20 +1638,16 @@ export const getOption: {
|
|
|
1605
1638
|
*
|
|
1606
1639
|
* **Example** (Getting optional services)
|
|
1607
1640
|
*
|
|
1608
|
-
* ```ts
|
|
1641
|
+
* ```ts import.meta.vitest
|
|
1609
1642
|
* import { Context, Option } from "effect"
|
|
1610
|
-
* import * as assert from "node:assert"
|
|
1611
1643
|
*
|
|
1612
1644
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1613
1645
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
1614
1646
|
*
|
|
1615
1647
|
* const context = Context.make(Port, { PORT: 8080 })
|
|
1616
1648
|
*
|
|
1617
|
-
*
|
|
1618
|
-
*
|
|
1619
|
-
* Option.some({ PORT: 8080 })
|
|
1620
|
-
* )
|
|
1621
|
-
* assert.deepStrictEqual(Context.getOption(context, Timeout), Option.none())
|
|
1649
|
+
* Context.getOption(context, Port) // => Option.some({ PORT: 8080 })
|
|
1650
|
+
* Context.getOption(context, Timeout) // => Option.none()
|
|
1622
1651
|
* ```
|
|
1623
1652
|
*
|
|
1624
1653
|
* @see {@link getOrElse} for returning a fallback value directly
|
|
@@ -1643,20 +1672,16 @@ export const getOption: {
|
|
|
1643
1672
|
*
|
|
1644
1673
|
* **Example** (Getting optional services)
|
|
1645
1674
|
*
|
|
1646
|
-
* ```ts
|
|
1675
|
+
* ```ts import.meta.vitest
|
|
1647
1676
|
* import { Context, Option } from "effect"
|
|
1648
|
-
* import * as assert from "node:assert"
|
|
1649
1677
|
*
|
|
1650
1678
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1651
1679
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
1652
1680
|
*
|
|
1653
1681
|
* const context = Context.make(Port, { PORT: 8080 })
|
|
1654
1682
|
*
|
|
1655
|
-
*
|
|
1656
|
-
*
|
|
1657
|
-
* Option.some({ PORT: 8080 })
|
|
1658
|
-
* )
|
|
1659
|
-
* assert.deepStrictEqual(Context.getOption(context, Timeout), Option.none())
|
|
1683
|
+
* Context.getOption(context, Port) // => Option.some({ PORT: 8080 })
|
|
1684
|
+
* Context.getOption(context, Timeout) // => Option.none()
|
|
1660
1685
|
* ```
|
|
1661
1686
|
*
|
|
1662
1687
|
* @see {@link getOrElse} for returning a fallback value directly
|
|
@@ -1666,9 +1691,8 @@ export const getOption: {
|
|
|
1666
1691
|
*/
|
|
1667
1692
|
<Services, S, I>(self: Context<Services>, service: Key<I, S>): Option.Option<S>
|
|
1668
1693
|
} = dual(2, <Services, I extends Services, S>(self: Context<Services>, service: Key<I, S>): Option.Option<S> => {
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
}
|
|
1694
|
+
const value = lookup(self, service.key)
|
|
1695
|
+
if (value !== notFound) return Option.some(value as any)
|
|
1672
1696
|
return isReference(service) ? Option.some(getDefaultValue(service as any)) : Option.none()
|
|
1673
1697
|
})
|
|
1674
1698
|
|
|
@@ -1686,9 +1710,8 @@ export const getOption: {
|
|
|
1686
1710
|
*
|
|
1687
1711
|
* **Example** (Merging two contexts)
|
|
1688
1712
|
*
|
|
1689
|
-
* ```ts
|
|
1713
|
+
* ```ts import.meta.vitest
|
|
1690
1714
|
* import { Context } from "effect"
|
|
1691
|
-
* import * as assert from "node:assert"
|
|
1692
1715
|
*
|
|
1693
1716
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1694
1717
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
@@ -1698,8 +1721,8 @@ export const getOption: {
|
|
|
1698
1721
|
*
|
|
1699
1722
|
* const context = Context.merge(firstContext, secondContext)
|
|
1700
1723
|
*
|
|
1701
|
-
*
|
|
1702
|
-
*
|
|
1724
|
+
* const values = [Context.get(context, Port).PORT, Context.get(context, Timeout).TIMEOUT]
|
|
1725
|
+
* values // => [8080, 5000]
|
|
1703
1726
|
* ```
|
|
1704
1727
|
*
|
|
1705
1728
|
* @see {@link mergeAll} for merging more than two contexts at once
|
|
@@ -1722,9 +1745,8 @@ export const merge: {
|
|
|
1722
1745
|
*
|
|
1723
1746
|
* **Example** (Merging two contexts)
|
|
1724
1747
|
*
|
|
1725
|
-
* ```ts
|
|
1748
|
+
* ```ts import.meta.vitest
|
|
1726
1749
|
* import { Context } from "effect"
|
|
1727
|
-
* import * as assert from "node:assert"
|
|
1728
1750
|
*
|
|
1729
1751
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1730
1752
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
@@ -1734,8 +1756,8 @@ export const merge: {
|
|
|
1734
1756
|
*
|
|
1735
1757
|
* const context = Context.merge(firstContext, secondContext)
|
|
1736
1758
|
*
|
|
1737
|
-
*
|
|
1738
|
-
*
|
|
1759
|
+
* const values = [Context.get(context, Port).PORT, Context.get(context, Timeout).TIMEOUT]
|
|
1760
|
+
* values // => [8080, 5000]
|
|
1739
1761
|
* ```
|
|
1740
1762
|
*
|
|
1741
1763
|
* @see {@link mergeAll} for merging more than two contexts at once
|
|
@@ -1758,9 +1780,8 @@ export const merge: {
|
|
|
1758
1780
|
*
|
|
1759
1781
|
* **Example** (Merging two contexts)
|
|
1760
1782
|
*
|
|
1761
|
-
* ```ts
|
|
1783
|
+
* ```ts import.meta.vitest
|
|
1762
1784
|
* import { Context } from "effect"
|
|
1763
|
-
* import * as assert from "node:assert"
|
|
1764
1785
|
*
|
|
1765
1786
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1766
1787
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
@@ -1770,8 +1791,8 @@ export const merge: {
|
|
|
1770
1791
|
*
|
|
1771
1792
|
* const context = Context.merge(firstContext, secondContext)
|
|
1772
1793
|
*
|
|
1773
|
-
*
|
|
1774
|
-
*
|
|
1794
|
+
* const values = [Context.get(context, Port).PORT, Context.get(context, Timeout).TIMEOUT]
|
|
1795
|
+
* values // => [8080, 5000]
|
|
1775
1796
|
* ```
|
|
1776
1797
|
*
|
|
1777
1798
|
* @see {@link mergeAll} for merging more than two contexts at once
|
|
@@ -1783,9 +1804,7 @@ export const merge: {
|
|
|
1783
1804
|
} = dual(2, <Services, R1>(self: Context<Services>, that: Context<R1>): Context<Services | R1> => {
|
|
1784
1805
|
if (self.mapUnsafe.size === 0) return that as any
|
|
1785
1806
|
if (that.mapUnsafe.size === 0) return self as any
|
|
1786
|
-
return
|
|
1787
|
-
that.mapUnsafe.forEach((value, key) => map.set(key, value))
|
|
1788
|
-
})
|
|
1807
|
+
return withFlat(self, (map) => that.mapUnsafe.forEach((value, key) => map.set(key, value)))
|
|
1789
1808
|
})
|
|
1790
1809
|
|
|
1791
1810
|
/**
|
|
@@ -1802,9 +1821,8 @@ export const merge: {
|
|
|
1802
1821
|
*
|
|
1803
1822
|
* **Example** (Merging multiple contexts)
|
|
1804
1823
|
*
|
|
1805
|
-
* ```ts
|
|
1824
|
+
* ```ts import.meta.vitest
|
|
1806
1825
|
* import { Context } from "effect"
|
|
1807
|
-
* import * as assert from "node:assert"
|
|
1808
1826
|
*
|
|
1809
1827
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1810
1828
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
@@ -1820,9 +1838,7 @@ export const merge: {
|
|
|
1820
1838
|
* thirdContext
|
|
1821
1839
|
* )
|
|
1822
1840
|
*
|
|
1823
|
-
*
|
|
1824
|
-
* assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
|
|
1825
|
-
* assert.deepStrictEqual(Context.get(context, Host), { HOST: "localhost" })
|
|
1841
|
+
* context.mapUnsafe.size // => 3
|
|
1826
1842
|
* ```
|
|
1827
1843
|
*
|
|
1828
1844
|
* @see {@link merge} for merging two contexts
|
|
@@ -1851,9 +1867,8 @@ export const mergeAll = <T extends Array<unknown>>(
|
|
|
1851
1867
|
*
|
|
1852
1868
|
* **Example** (Picking services from a context)
|
|
1853
1869
|
*
|
|
1854
|
-
* ```ts
|
|
1870
|
+
* ```ts import.meta.vitest
|
|
1855
1871
|
* import { Context, Option, pipe } from "effect"
|
|
1856
|
-
* import * as assert from "node:assert"
|
|
1857
1872
|
*
|
|
1858
1873
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1859
1874
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
@@ -1865,11 +1880,8 @@ export const mergeAll = <T extends Array<unknown>>(
|
|
|
1865
1880
|
*
|
|
1866
1881
|
* const context = pipe(someContext, Context.pick(Port))
|
|
1867
1882
|
*
|
|
1868
|
-
*
|
|
1869
|
-
*
|
|
1870
|
-
* Option.some({ PORT: 8080 })
|
|
1871
|
-
* )
|
|
1872
|
-
* assert.deepStrictEqual(Context.getOption(context, Timeout), Option.none())
|
|
1883
|
+
* Context.getOption(context, Port) // => Option.some({ PORT: 8080 })
|
|
1884
|
+
* Context.getOption(context, Timeout) // => Option.none()
|
|
1873
1885
|
* ```
|
|
1874
1886
|
*
|
|
1875
1887
|
* @see {@link omit} for removing selected services
|
|
@@ -1880,14 +1892,13 @@ export const mergeAll = <T extends Array<unknown>>(
|
|
|
1880
1892
|
export const pick = <S extends ReadonlyArray<Key<any, any>>>(
|
|
1881
1893
|
...services: S
|
|
1882
1894
|
) =>
|
|
1883
|
-
<Services>(self: Context<Services>): Context<Services & Service.Identifier<S[number]>> =>
|
|
1884
|
-
|
|
1885
|
-
|
|
1895
|
+
<Services>(self: Context<Services>): Context<Services & Service.Identifier<S[number]>> => {
|
|
1896
|
+
const keep = new Set(services.map((key) => key.key))
|
|
1897
|
+
return withFlat(self, (map) =>
|
|
1886
1898
|
map.forEach((_, key) => {
|
|
1887
|
-
if (
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
})
|
|
1899
|
+
if (!keep.has(key)) map.delete(key)
|
|
1900
|
+
}))
|
|
1901
|
+
}
|
|
1891
1902
|
|
|
1892
1903
|
/**
|
|
1893
1904
|
* Returns a new `Context` with the specified service keys removed.
|
|
@@ -1898,9 +1909,8 @@ export const pick = <S extends ReadonlyArray<Key<any, any>>>(
|
|
|
1898
1909
|
*
|
|
1899
1910
|
* **Example** (Omitting services from a context)
|
|
1900
1911
|
*
|
|
1901
|
-
* ```ts
|
|
1912
|
+
* ```ts import.meta.vitest
|
|
1902
1913
|
* import { Context, Option, pipe } from "effect"
|
|
1903
|
-
* import * as assert from "node:assert"
|
|
1904
1914
|
*
|
|
1905
1915
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1906
1916
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
@@ -1912,11 +1922,8 @@ export const pick = <S extends ReadonlyArray<Key<any, any>>>(
|
|
|
1912
1922
|
*
|
|
1913
1923
|
* const context = pipe(someContext, Context.omit(Timeout))
|
|
1914
1924
|
*
|
|
1915
|
-
*
|
|
1916
|
-
*
|
|
1917
|
-
* Option.some({ PORT: 8080 })
|
|
1918
|
-
* )
|
|
1919
|
-
* assert.deepStrictEqual(Context.getOption(context, Timeout), Option.none())
|
|
1925
|
+
* Context.getOption(context, Port) // => Option.some({ PORT: 8080 })
|
|
1926
|
+
* Context.getOption(context, Timeout) // => Option.none()
|
|
1920
1927
|
* ```
|
|
1921
1928
|
*
|
|
1922
1929
|
* @see {@link pick} for keeping selected services
|
|
@@ -1928,108 +1935,12 @@ export const omit = <S extends ReadonlyArray<Key<any, any>>>(
|
|
|
1928
1935
|
...keys: S
|
|
1929
1936
|
) =>
|
|
1930
1937
|
<Services>(self: Context<Services>): Context<Exclude<Services, Service.Identifier<S[number]>>> =>
|
|
1931
|
-
|
|
1938
|
+
withFlat(self, (map) => {
|
|
1932
1939
|
for (let i = 0; i < keys.length; i++) {
|
|
1933
1940
|
map.delete(keys[i].key)
|
|
1934
1941
|
}
|
|
1935
1942
|
})
|
|
1936
1943
|
|
|
1937
|
-
/**
|
|
1938
|
-
* Performs a series of mutations on a `Context`. Prevents unnecessary copying
|
|
1939
|
-
* of the underlying map when multiple mutations are needed.
|
|
1940
|
-
*
|
|
1941
|
-
* **When to use**
|
|
1942
|
-
*
|
|
1943
|
-
* Use to apply several `Context` transformations in one callback while copying
|
|
1944
|
-
* the underlying service map only once.
|
|
1945
|
-
*
|
|
1946
|
-
* @see {@link add} for adding or replacing a service
|
|
1947
|
-
* @see {@link addOrOmit} for adding or removing a service from an `Option`
|
|
1948
|
-
* @see {@link merge} for combining two contexts
|
|
1949
|
-
* @see {@link pick} for keeping selected services
|
|
1950
|
-
* @see {@link omit} for removing selected services
|
|
1951
|
-
*
|
|
1952
|
-
* @category mutations
|
|
1953
|
-
* @since 4.0.0
|
|
1954
|
-
*/
|
|
1955
|
-
export const mutate: {
|
|
1956
|
-
/**
|
|
1957
|
-
* Performs a series of mutations on a `Context`. Prevents unnecessary copying
|
|
1958
|
-
* of the underlying map when multiple mutations are needed.
|
|
1959
|
-
*
|
|
1960
|
-
* **When to use**
|
|
1961
|
-
*
|
|
1962
|
-
* Use to apply several `Context` transformations in one callback while copying
|
|
1963
|
-
* the underlying service map only once.
|
|
1964
|
-
*
|
|
1965
|
-
* @see {@link add} for adding or replacing a service
|
|
1966
|
-
* @see {@link addOrOmit} for adding or removing a service from an `Option`
|
|
1967
|
-
* @see {@link merge} for combining two contexts
|
|
1968
|
-
* @see {@link pick} for keeping selected services
|
|
1969
|
-
* @see {@link omit} for removing selected services
|
|
1970
|
-
*
|
|
1971
|
-
* @category mutations
|
|
1972
|
-
* @since 4.0.0
|
|
1973
|
-
*/
|
|
1974
|
-
<Services, B>(f: (context: Context<Services>) => Context<B>): <Services>(self: Context<Services>) => Context<B>
|
|
1975
|
-
/**
|
|
1976
|
-
* Performs a series of mutations on a `Context`. Prevents unnecessary copying
|
|
1977
|
-
* of the underlying map when multiple mutations are needed.
|
|
1978
|
-
*
|
|
1979
|
-
* **When to use**
|
|
1980
|
-
*
|
|
1981
|
-
* Use to apply several `Context` transformations in one callback while copying
|
|
1982
|
-
* the underlying service map only once.
|
|
1983
|
-
*
|
|
1984
|
-
* @see {@link add} for adding or replacing a service
|
|
1985
|
-
* @see {@link addOrOmit} for adding or removing a service from an `Option`
|
|
1986
|
-
* @see {@link merge} for combining two contexts
|
|
1987
|
-
* @see {@link pick} for keeping selected services
|
|
1988
|
-
* @see {@link omit} for removing selected services
|
|
1989
|
-
*
|
|
1990
|
-
* @category mutations
|
|
1991
|
-
* @since 4.0.0
|
|
1992
|
-
*/
|
|
1993
|
-
<Services, B>(self: Context<Services>, f: (context: Context<Services>) => Context<B>): Context<B>
|
|
1994
|
-
} = dual(
|
|
1995
|
-
2,
|
|
1996
|
-
<Services, B>(self: Context<Services>, f: (context: Context<Services>) => Context<B>): Context<B> => {
|
|
1997
|
-
const next = makeUnsafe</**
|
|
1998
|
-
* Performs a series of mutations on a `Context`. Prevents unnecessary copying
|
|
1999
|
-
* of the underlying map when multiple mutations are needed.
|
|
2000
|
-
*
|
|
2001
|
-
* **When to use**
|
|
2002
|
-
*
|
|
2003
|
-
* Use to apply several `Context` transformations in one callback while copying
|
|
2004
|
-
* the underlying service map only once.
|
|
2005
|
-
*
|
|
2006
|
-
* @see {@link add} for adding or replacing a service
|
|
2007
|
-
* @see {@link addOrOmit} for adding or removing a service from an `Option`
|
|
2008
|
-
* @see {@link merge} for combining two contexts
|
|
2009
|
-
* @see {@link pick} for keeping selected services
|
|
2010
|
-
* @see {@link omit} for removing selected services
|
|
2011
|
-
*
|
|
2012
|
-
* @category mutations
|
|
2013
|
-
* @since 4.0.0
|
|
2014
|
-
*/
|
|
2015
|
-
Services>(new Map(self.mapUnsafe))
|
|
2016
|
-
next.mutable = true
|
|
2017
|
-
const result = f(next)
|
|
2018
|
-
result.mutable = false
|
|
2019
|
-
return result
|
|
2020
|
-
}
|
|
2021
|
-
)
|
|
2022
|
-
|
|
2023
|
-
const withMapUnsafe = <Services, B>(self: Context<Services>, f: (map: Map<string, any>) => void): Context<B> => {
|
|
2024
|
-
if (self.mutable) {
|
|
2025
|
-
f(self.mapUnsafe as any)
|
|
2026
|
-
return self as any
|
|
2027
|
-
}
|
|
2028
|
-
const map = new Map(self.mapUnsafe)
|
|
2029
|
-
f(map)
|
|
2030
|
-
return makeUnsafe(map)
|
|
2031
|
-
}
|
|
2032
|
-
|
|
2033
1944
|
/**
|
|
2034
1945
|
* Creates a context key with a default value.
|
|
2035
1946
|
*
|
|
@@ -2048,12 +1959,13 @@ const withMapUnsafe = <Services, B>(self: Context<Services>, f: (map: Map<string
|
|
|
2048
1959
|
*
|
|
2049
1960
|
* **Example** (Creating references with default values)
|
|
2050
1961
|
*
|
|
2051
|
-
* ```ts
|
|
1962
|
+
* ```ts import.meta.vitest
|
|
2052
1963
|
* import { Context } from "effect"
|
|
2053
1964
|
*
|
|
2054
1965
|
* // Create a reference with a default value
|
|
1966
|
+
* const messages: Array<string> = []
|
|
2055
1967
|
* const LoggerRef = Context.Reference("Logger", {
|
|
2056
|
-
* defaultValue: () => ({ log: (msg: string) =>
|
|
1968
|
+
* defaultValue: () => ({ log: (msg: string) => messages.push(`Default: ${msg}`) })
|
|
2057
1969
|
* })
|
|
2058
1970
|
*
|
|
2059
1971
|
* // The reference provides the default value when accessed from an empty context
|
|
@@ -2062,17 +1974,24 @@ const withMapUnsafe = <Services, B>(self: Context<Services>, f: (map: Map<string
|
|
|
2062
1974
|
*
|
|
2063
1975
|
* // You can also override the default value
|
|
2064
1976
|
* const customContext = Context.make(LoggerRef, {
|
|
2065
|
-
* log: (msg: string) => `Custom: ${msg}`
|
|
1977
|
+
* log: (msg: string) => messages.push(`Custom: ${msg}`)
|
|
2066
1978
|
* })
|
|
2067
1979
|
* const customLogger = Context.get(customContext, LoggerRef)
|
|
1980
|
+
* logger.log("default")
|
|
1981
|
+
* customLogger.log("message")
|
|
1982
|
+
* messages // => ["Default: default", "Custom: message"]
|
|
2068
1983
|
* ```
|
|
2069
1984
|
*
|
|
2070
1985
|
* @see {@link Service} for required services without default values
|
|
2071
1986
|
*
|
|
2072
|
-
* @category
|
|
1987
|
+
* @category services
|
|
2073
1988
|
* @since 3.11.0
|
|
2074
1989
|
*/
|
|
2075
1990
|
export const Reference: <Service>(
|
|
2076
1991
|
key: string,
|
|
2077
|
-
options: {
|
|
1992
|
+
options: {
|
|
1993
|
+
readonly defaultValue: () => Service
|
|
1994
|
+
/** @internal */
|
|
1995
|
+
readonly fiberCached?: boolean | undefined
|
|
1996
|
+
}
|
|
2078
1997
|
) => Reference<Service> = Service as any
|