effect 4.0.0-beta.99 → 4.0.0-rc.109
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 +395 -0
- package/CLAUDE.md +395 -0
- package/README.md +19 -23
- 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/40_sql/10_basics.ts +175 -0
- package/ai-docs/src/40_sql/index.md +6 -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 +118 -0
- package/ai-docs/src/51_http-server/20_testing.ts +100 -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 +107 -0
- package/ai-docs/src/51_http-server/fixtures/domain/User.ts +21 -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 +37 -0
- package/ai-docs/src/51_http-server/fixtures/server/Users/http.ts +80 -0
- package/ai-docs/src/51_http-server/fixtures/server/Users.ts +183 -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 +160 -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 +160 -277
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +179 -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 +24 -39
- 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 +3157 -3360
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +1457 -1574
- 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 +52 -28
- package/dist/ErrorReporter.d.ts.map +1 -1
- package/dist/ErrorReporter.js +51 -27
- 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 +362 -263
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +203 -181
- 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 +219 -468
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +209 -454
- 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 +254 -114
- 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/internal/uuid.d.ts +3 -0
- package/dist/internal/uuid.d.ts.map +1 -0
- package/dist/internal/uuid.js +30 -0
- package/dist/internal/uuid.js.map +1 -0
- 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 +58 -29
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +79 -24
- 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 +116 -0
- package/dist/unstable/ai/McpProtocol.d.ts.map +1 -0
- package/dist/unstable/ai/McpProtocol.js +32 -0
- package/dist/unstable/ai/McpProtocol.js.map +1 -0
- package/dist/unstable/ai/McpSchema.d.ts +378 -223
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +135 -87
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +89 -100
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +1037 -361
- 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/mcpCore.d.ts +7 -0
- package/dist/unstable/ai/internal/mcpCore.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpCore.js +152 -0
- package/dist/unstable/ai/internal/mcpCore.js.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocol/v2024_11_05.d.ts +2 -0
- package/dist/unstable/ai/internal/mcpProtocol/v2024_11_05.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocol/v2024_11_05.js +259 -0
- package/dist/unstable/ai/internal/mcpProtocol/v2024_11_05.js.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocol/v2025_03_26.d.ts +2 -0
- package/dist/unstable/ai/internal/mcpProtocol/v2025_03_26.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocol/v2025_03_26.js +279 -0
- package/dist/unstable/ai/internal/mcpProtocol/v2025_03_26.js.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocol/v2025_06_18.d.ts +2 -0
- package/dist/unstable/ai/internal/mcpProtocol/v2025_06_18.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocol/v2025_06_18.js +281 -0
- package/dist/unstable/ai/internal/mcpProtocol/v2025_06_18.js.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocol.d.ts +2 -0
- package/dist/unstable/ai/internal/mcpProtocol.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpProtocol.js +153 -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 +47 -0
- package/dist/unstable/ai/internal/mcpProtocolRegistry.js.map +1 -0
- package/dist/unstable/ai/internal/mcpSchema/v2024_11_05.d.ts +1185 -0
- package/dist/unstable/ai/internal/mcpSchema/v2024_11_05.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpSchema/v2024_11_05.js +404 -0
- package/dist/unstable/ai/internal/mcpSchema/v2024_11_05.js.map +1 -0
- package/dist/unstable/ai/internal/mcpSchema/v2025_03_26.d.ts +825 -0
- package/dist/unstable/ai/internal/mcpSchema/v2025_03_26.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpSchema/v2025_03_26.js +138 -0
- package/dist/unstable/ai/internal/mcpSchema/v2025_03_26.js.map +1 -0
- package/dist/unstable/ai/internal/mcpSchema/v2025_06_18.d.ts +1462 -0
- package/dist/unstable/ai/internal/mcpSchema/v2025_06_18.d.ts.map +1 -0
- package/dist/unstable/ai/internal/mcpSchema/v2025_06_18.js +309 -0
- package/dist/unstable/ai/internal/mcpSchema/v2025_06_18.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.d.ts +3 -1
- package/dist/unstable/cluster/ClusterError.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterError.js +10 -8
- 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 +43 -21
- 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 +4 -4
- package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityResource.js +14 -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.d.ts +2 -2
- package/dist/unstable/cluster/K8sHttpClient.d.ts.map +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js +8 -0
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/K8sTypes.d.ts +2327 -0
- package/dist/unstable/cluster/K8sTypes.d.ts.map +1 -0
- package/dist/unstable/cluster/K8sTypes.js +29 -0
- package/dist/unstable/cluster/K8sTypes.js.map +1 -0
- 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 +66 -22
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +56 -13
- 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 +293 -46
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +57 -5
- package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.js +11 -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 +21 -9
- package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.js +130 -43
- 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.d.ts +4 -0
- package/dist/unstable/cluster/index.d.ts.map +1 -1
- package/dist/unstable/cluster/index.js +4 -0
- package/dist/unstable/cluster/index.js.map +1 -1
- package/dist/unstable/cluster/internal/entityManager.js +33 -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 +8 -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 +30 -17
- package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventJournal.js +30 -35
- 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 +17 -8
- 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 +10 -0
- package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/SqlEventJournal.js +4 -7
- 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 +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 +14 -15
- 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 +79 -80
- 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/HttpStatus.d.ts +99 -0
- package/dist/unstable/http/HttpStatus.d.ts.map +1 -0
- package/dist/unstable/http/HttpStatus.js +91 -0
- package/dist/unstable/http/HttpStatus.js.map +1 -0
- 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 +5 -1
- package/dist/unstable/http/index.d.ts.map +1 -1
- package/dist/unstable/http/index.js +5 -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 +227 -71
- package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.js +176 -69
- 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 +97 -86
- 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 +55 -43
- 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 +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 +41 -23
- 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 +2 -2
- 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 +178 -97
- 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 +23 -18
- 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 +66 -51
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/Model.js +39 -52
- 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 +11 -7
- 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 +33 -26
- 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 -16
- 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 +336 -405
- package/src/Cron.ts +271 -219
- package/src/Crypto.ts +33 -63
- 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 +3241 -3410
- package/src/Encoding.ts +22 -40
- package/src/Equal.ts +59 -41
- package/src/Equivalence.ts +103 -105
- package/src/ErrorReporter.ts +52 -28
- 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 +369 -268
- package/src/LayerMap.ts +49 -29
- package/src/LayerRef.ts +6 -2
- package/src/LogLevel.ts +114 -214
- package/src/Logger.ts +349 -701
- 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 +319 -149
- 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/internal/uuid.ts +51 -0
- package/src/testing/FastCheck.ts +8 -7
- package/src/testing/TestClock.ts +103 -36
- 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 +137 -0
- package/src/unstable/ai/McpSchema.ts +199 -100
- package/src/unstable/ai/McpServer.ts +1360 -455
- 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/mcpCore.ts +457 -0
- package/src/unstable/ai/internal/mcpProtocol/v2024_11_05.ts +321 -0
- package/src/unstable/ai/internal/mcpProtocol/v2025_03_26.ts +347 -0
- package/src/unstable/ai/internal/mcpProtocol/v2025_06_18.ts +361 -0
- package/src/unstable/ai/internal/mcpProtocol.ts +336 -0
- package/src/unstable/ai/internal/mcpProtocolRegistry.ts +102 -0
- package/src/unstable/ai/internal/mcpSchema/v2024_11_05.ts +521 -0
- package/src/unstable/ai/internal/mcpSchema/v2025_03_26.ts +204 -0
- package/src/unstable/ai/internal/mcpSchema/v2025_06_18.ts +404 -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 +10 -8
- package/src/unstable/cluster/ClusterSchema.ts +8 -8
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +65 -39
- package/src/unstable/cluster/Entity.ts +23 -19
- package/src/unstable/cluster/EntityProxy.ts +16 -7
- package/src/unstable/cluster/EntityResource.ts +5 -5
- package/src/unstable/cluster/Envelope.ts +5 -4
- package/src/unstable/cluster/HttpRunner.ts +6 -4
- package/src/unstable/cluster/K8sHttpClient.ts +2 -2
- package/src/unstable/cluster/K8sTypes.ts +2467 -0
- package/src/unstable/cluster/Message.ts +9 -9
- package/src/unstable/cluster/MessageStorage.ts +106 -33
- 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 +360 -65
- package/src/unstable/cluster/ShardingConfig.ts +46 -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 +212 -60
- package/src/unstable/cluster/SqlRunnerStorage.ts +223 -133
- package/src/unstable/cluster/index.ts +5 -0
- package/src/unstable/cluster/internal/entityManager.ts +72 -27
- package/src/unstable/cluster/internal/entityReaper.ts +2 -3
- package/src/unstable/cluster/internal/resourceMap.ts +13 -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 +33 -25
- 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 +16 -8
- package/src/unstable/eventlog/EventLogServerUnencrypted.ts +15 -7
- package/src/unstable/eventlog/EventLogSessionAuth.ts +1 -1
- package/src/unstable/eventlog/SqlEventJournal.ts +9 -7
- 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 +4 -2
- 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 +27 -26
- 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 +110 -102
- 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/HttpStatus.ts +100 -0
- 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 +6 -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 +362 -73
- 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 +129 -108
- 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 +170 -56
- 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/reactivity/Reactivity.ts +1 -1
- package/src/unstable/rpc/Rpc.ts +35 -33
- package/src/unstable/rpc/RpcClient.ts +66 -30
- package/src/unstable/rpc/RpcClientError.ts +2 -2
- package/src/unstable/rpc/RpcGroup.ts +9 -9
- 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 +168 -69
- package/src/unstable/rpc/RpcServer.ts +28 -22
- package/src/unstable/rpc/RpcWorker.ts +5 -5
- package/src/unstable/schema/Model.ts +60 -58
- 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 +71 -60
- package/src/unstable/sql/SqlError.ts +15 -15
- package/src/unstable/sql/SqlModel.ts +2 -2
- package/src/unstable/sql/SqlResolver.ts +44 -33
- 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,36 @@ 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
|
-
|
|
912
|
-
|
|
913
|
-
|
|
994
|
+
): Context<Services | I> => addUnsafe(self, key.key, service))
|
|
995
|
+
|
|
996
|
+
/**
|
|
997
|
+
* Adds a service by key to a given `Context` using a string key.
|
|
998
|
+
*
|
|
999
|
+
* @category combining
|
|
1000
|
+
* @since 4.0.0
|
|
1001
|
+
*/
|
|
1002
|
+
export const addUnsafe = <Services, I, S>(
|
|
1003
|
+
self: Context<Services>,
|
|
1004
|
+
key: string,
|
|
1005
|
+
service: Types.NoInfer<S>
|
|
1006
|
+
): Context<Services | I> => {
|
|
1007
|
+
const impl = self as ContextImpl<Services>
|
|
1008
|
+
const cacheRoot = cacheKeys.has(key) ? undefined : impl.cacheRoot
|
|
1009
|
+
if (impl.depth >= MaxDepth) {
|
|
1010
|
+
// Rebase the overlay chain into a flat map, keeping the cacheRoot so a
|
|
1011
|
+
// rebase on an ordinary key does not invalidate fiber caches
|
|
1012
|
+
const map = new Map(impl.mapUnsafe)
|
|
1013
|
+
map.set(key, service)
|
|
1014
|
+
return makeImpl(cacheRoot, map, undefined, 0)
|
|
1015
|
+
}
|
|
1016
|
+
|
|
1017
|
+
return makeImpl(
|
|
1018
|
+
cacheRoot,
|
|
1019
|
+
impl.base,
|
|
1020
|
+
{ key, value: service, parent: impl.overlay },
|
|
1021
|
+
impl.depth + 1
|
|
1022
|
+
)
|
|
1023
|
+
}
|
|
914
1024
|
|
|
915
1025
|
/**
|
|
916
1026
|
* Adds or removes a service depending on an `Option`.
|
|
@@ -926,7 +1036,7 @@ export const add: {
|
|
|
926
1036
|
*
|
|
927
1037
|
* **Example** (Adding optional services)
|
|
928
1038
|
*
|
|
929
|
-
* ```ts
|
|
1039
|
+
* ```ts import.meta.vitest
|
|
930
1040
|
* import { Context, Option } from "effect"
|
|
931
1041
|
*
|
|
932
1042
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
@@ -938,11 +1048,13 @@ export const add: {
|
|
|
938
1048
|
* const withoutPort = withPort.pipe(
|
|
939
1049
|
* Context.addOrOmit(Port, Option.none())
|
|
940
1050
|
* )
|
|
1051
|
+
* Context.getOption(withPort, Port) // => Option.some({ PORT: 8080 })
|
|
1052
|
+
* Context.getOption(withoutPort, Port) // => Option.none()
|
|
941
1053
|
* ```
|
|
942
1054
|
*
|
|
943
1055
|
* @see {@link add} for always storing a service value
|
|
944
1056
|
*
|
|
945
|
-
* @category
|
|
1057
|
+
* @category combining
|
|
946
1058
|
* @since 4.0.0
|
|
947
1059
|
*/
|
|
948
1060
|
export const addOrOmit: {
|
|
@@ -960,7 +1072,7 @@ export const addOrOmit: {
|
|
|
960
1072
|
*
|
|
961
1073
|
* **Example** (Adding optional services)
|
|
962
1074
|
*
|
|
963
|
-
* ```ts
|
|
1075
|
+
* ```ts import.meta.vitest
|
|
964
1076
|
* import { Context, Option } from "effect"
|
|
965
1077
|
*
|
|
966
1078
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
@@ -972,14 +1084,16 @@ export const addOrOmit: {
|
|
|
972
1084
|
* const withoutPort = withPort.pipe(
|
|
973
1085
|
* Context.addOrOmit(Port, Option.none())
|
|
974
1086
|
* )
|
|
1087
|
+
* Context.getOption(withPort, Port) // => Option.some({ PORT: 8080 })
|
|
1088
|
+
* Context.getOption(withoutPort, Port) // => Option.none()
|
|
975
1089
|
* ```
|
|
976
1090
|
*
|
|
977
1091
|
* @see {@link add} for always storing a service value
|
|
978
1092
|
*
|
|
979
|
-
* @category
|
|
1093
|
+
* @category combining
|
|
980
1094
|
* @since 4.0.0
|
|
981
1095
|
*/
|
|
982
|
-
<I, S>(key: Key<I, S>, service: Option.Option<Types.NoInfer<S>>): <Services>(self: Context<Services>) => Context<Services
|
|
1096
|
+
<I, S>(key: Key<I, S>, service: Option.Option<Types.NoInfer<S>>): <Services>(self: Context<Services>) => Context<Exclude<Services, I>>
|
|
983
1097
|
/**
|
|
984
1098
|
* Adds or removes a service depending on an `Option`.
|
|
985
1099
|
*
|
|
@@ -994,7 +1108,7 @@ export const addOrOmit: {
|
|
|
994
1108
|
*
|
|
995
1109
|
* **Example** (Adding optional services)
|
|
996
1110
|
*
|
|
997
|
-
* ```ts
|
|
1111
|
+
* ```ts import.meta.vitest
|
|
998
1112
|
* import { Context, Option } from "effect"
|
|
999
1113
|
*
|
|
1000
1114
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
@@ -1006,30 +1120,28 @@ export const addOrOmit: {
|
|
|
1006
1120
|
* const withoutPort = withPort.pipe(
|
|
1007
1121
|
* Context.addOrOmit(Port, Option.none())
|
|
1008
1122
|
* )
|
|
1123
|
+
* Context.getOption(withPort, Port) // => Option.some({ PORT: 8080 })
|
|
1124
|
+
* Context.getOption(withoutPort, Port) // => Option.none()
|
|
1009
1125
|
* ```
|
|
1010
1126
|
*
|
|
1011
1127
|
* @see {@link add} for always storing a service value
|
|
1012
1128
|
*
|
|
1013
|
-
* @category
|
|
1129
|
+
* @category combining
|
|
1014
1130
|
* @since 4.0.0
|
|
1015
1131
|
*/
|
|
1016
1132
|
<Services, I, S>(
|
|
1017
1133
|
self: Context<Services>,
|
|
1018
1134
|
key: Key<I, S>,
|
|
1019
1135
|
service: Option.Option<Types.NoInfer<S>>
|
|
1020
|
-
): Context<Services
|
|
1136
|
+
): Context<Exclude<Services, I>>
|
|
1021
1137
|
} = dual(3, <Services, I, S>(
|
|
1022
1138
|
self: Context<Services>,
|
|
1023
1139
|
key: Key<I, S>,
|
|
1024
1140
|
service: Option.Option<Types.NoInfer<S>>
|
|
1025
|
-
): Context<Services
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
} else {
|
|
1030
|
-
map.set(key.key, service.value)
|
|
1031
|
-
}
|
|
1032
|
-
}))
|
|
1141
|
+
): Context<Exclude<Services, I>> =>
|
|
1142
|
+
service._tag === "None"
|
|
1143
|
+
? omit(key)(self)
|
|
1144
|
+
: add(self, key, service.value) as any)
|
|
1033
1145
|
|
|
1034
1146
|
/**
|
|
1035
1147
|
* Gets the service for a key, or evaluates the fallback when a non-reference
|
|
@@ -1052,7 +1164,7 @@ export const addOrOmit: {
|
|
|
1052
1164
|
*
|
|
1053
1165
|
* **Example** (Falling back for missing services)
|
|
1054
1166
|
*
|
|
1055
|
-
* ```ts
|
|
1167
|
+
* ```ts import.meta.vitest
|
|
1056
1168
|
* import { Context } from "effect"
|
|
1057
1169
|
*
|
|
1058
1170
|
* const Logger = Context.Service<{ log: (msg: string) => void }>("Logger")
|
|
@@ -1060,9 +1172,7 @@ export const addOrOmit: {
|
|
|
1060
1172
|
* "Database"
|
|
1061
1173
|
* )
|
|
1062
1174
|
*
|
|
1063
|
-
* const context = Context.make(Logger, {
|
|
1064
|
-
* log: (msg: string) => console.log(msg)
|
|
1065
|
-
* })
|
|
1175
|
+
* const context = Context.make(Logger, { log: (_msg: string) => {} })
|
|
1066
1176
|
*
|
|
1067
1177
|
* const logger = Context.getOrElse(context, Logger, () => ({ log: () => {} }))
|
|
1068
1178
|
* const database = Context.getOrElse(
|
|
@@ -1071,8 +1181,8 @@ export const addOrOmit: {
|
|
|
1071
1181
|
* () => ({ query: () => "fallback" })
|
|
1072
1182
|
* )
|
|
1073
1183
|
*
|
|
1074
|
-
*
|
|
1075
|
-
*
|
|
1184
|
+
* logger === Context.get(context, Logger) // => true
|
|
1185
|
+
* database.query("SELECT 1") // => "fallback"
|
|
1076
1186
|
* ```
|
|
1077
1187
|
*
|
|
1078
1188
|
* @see {@link getOption} for returning `Option.none` when a non-reference key is missing
|
|
@@ -1102,7 +1212,7 @@ export const getOrElse: {
|
|
|
1102
1212
|
*
|
|
1103
1213
|
* **Example** (Falling back for missing services)
|
|
1104
1214
|
*
|
|
1105
|
-
* ```ts
|
|
1215
|
+
* ```ts import.meta.vitest
|
|
1106
1216
|
* import { Context } from "effect"
|
|
1107
1217
|
*
|
|
1108
1218
|
* const Logger = Context.Service<{ log: (msg: string) => void }>("Logger")
|
|
@@ -1110,9 +1220,7 @@ export const getOrElse: {
|
|
|
1110
1220
|
* "Database"
|
|
1111
1221
|
* )
|
|
1112
1222
|
*
|
|
1113
|
-
* const context = Context.make(Logger, {
|
|
1114
|
-
* log: (msg: string) => console.log(msg)
|
|
1115
|
-
* })
|
|
1223
|
+
* const context = Context.make(Logger, { log: (_msg: string) => {} })
|
|
1116
1224
|
*
|
|
1117
1225
|
* const logger = Context.getOrElse(context, Logger, () => ({ log: () => {} }))
|
|
1118
1226
|
* const database = Context.getOrElse(
|
|
@@ -1121,8 +1229,8 @@ export const getOrElse: {
|
|
|
1121
1229
|
* () => ({ query: () => "fallback" })
|
|
1122
1230
|
* )
|
|
1123
1231
|
*
|
|
1124
|
-
*
|
|
1125
|
-
*
|
|
1232
|
+
* logger === Context.get(context, Logger) // => true
|
|
1233
|
+
* database.query("SELECT 1") // => "fallback"
|
|
1126
1234
|
* ```
|
|
1127
1235
|
*
|
|
1128
1236
|
* @see {@link getOption} for returning `Option.none` when a non-reference key is missing
|
|
@@ -1152,7 +1260,7 @@ export const getOrElse: {
|
|
|
1152
1260
|
*
|
|
1153
1261
|
* **Example** (Falling back for missing services)
|
|
1154
1262
|
*
|
|
1155
|
-
* ```ts
|
|
1263
|
+
* ```ts import.meta.vitest
|
|
1156
1264
|
* import { Context } from "effect"
|
|
1157
1265
|
*
|
|
1158
1266
|
* const Logger = Context.Service<{ log: (msg: string) => void }>("Logger")
|
|
@@ -1160,9 +1268,7 @@ export const getOrElse: {
|
|
|
1160
1268
|
* "Database"
|
|
1161
1269
|
* )
|
|
1162
1270
|
*
|
|
1163
|
-
* const context = Context.make(Logger, {
|
|
1164
|
-
* log: (msg: string) => console.log(msg)
|
|
1165
|
-
* })
|
|
1271
|
+
* const context = Context.make(Logger, { log: (_msg: string) => {} })
|
|
1166
1272
|
*
|
|
1167
1273
|
* const logger = Context.getOrElse(context, Logger, () => ({ log: () => {} }))
|
|
1168
1274
|
* const database = Context.getOrElse(
|
|
@@ -1171,8 +1277,8 @@ export const getOrElse: {
|
|
|
1171
1277
|
* () => ({ query: () => "fallback" })
|
|
1172
1278
|
* )
|
|
1173
1279
|
*
|
|
1174
|
-
*
|
|
1175
|
-
*
|
|
1280
|
+
* logger === Context.get(context, Logger) // => true
|
|
1281
|
+
* database.query("SELECT 1") // => "fallback"
|
|
1176
1282
|
* ```
|
|
1177
1283
|
*
|
|
1178
1284
|
* @see {@link getOption} for returning `Option.none` when a non-reference key is missing
|
|
@@ -1182,9 +1288,8 @@ export const getOrElse: {
|
|
|
1182
1288
|
*/
|
|
1183
1289
|
<Services, S, I, B>(self: Context<Services>, key: Key<I, S>, orElse: LazyArg<B>): S | B
|
|
1184
1290
|
} = dual(3, <Services, S, I, B>(self: Context<Services>, key: Key<I, S>, orElse: LazyArg<B>): S | B => {
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
}
|
|
1291
|
+
const value = lookup(self, key.key)
|
|
1292
|
+
if (value !== notFound) return value as any
|
|
1188
1293
|
return isReference(key) ? getDefaultValue(key) : orElse()
|
|
1189
1294
|
})
|
|
1190
1295
|
|
|
@@ -1250,9 +1355,15 @@ export const getOrUndefined: {
|
|
|
1250
1355
|
<Services, S, I>(self: Context<Services>, key: Key<I, S>): S | undefined
|
|
1251
1356
|
} = dual(
|
|
1252
1357
|
2,
|
|
1253
|
-
<Services, S, I>(self: Context<Services>, key: Key<I, S>): S | undefined => self
|
|
1358
|
+
<Services, S, I>(self: Context<Services>, key: Key<I, S>): S | undefined => getOrUndefinedUnsafe(self, key.key)
|
|
1254
1359
|
)
|
|
1255
1360
|
|
|
1361
|
+
/** @internal */
|
|
1362
|
+
export const getOrUndefinedUnsafe = <A, Services = never>(self: Context<Services>, key: string): A | undefined => {
|
|
1363
|
+
const value = lookup(self, key)
|
|
1364
|
+
return value === notFound ? undefined : value as A
|
|
1365
|
+
}
|
|
1366
|
+
|
|
1256
1367
|
/**
|
|
1257
1368
|
* Gets the service for a key, throwing if an absent non-reference key cannot be
|
|
1258
1369
|
* resolved.
|
|
@@ -1270,17 +1381,16 @@ export const getOrUndefined: {
|
|
|
1270
1381
|
*
|
|
1271
1382
|
* **Example** (Getting services unsafely)
|
|
1272
1383
|
*
|
|
1273
|
-
* ```ts
|
|
1274
|
-
* import { Context } from "effect"
|
|
1275
|
-
* import * as assert from "node:assert"
|
|
1384
|
+
* ```ts import.meta.vitest
|
|
1385
|
+
* import { Context, Option } from "effect"
|
|
1276
1386
|
*
|
|
1277
1387
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1278
1388
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
1279
1389
|
*
|
|
1280
1390
|
* const context = Context.make(Port, { PORT: 8080 })
|
|
1281
1391
|
*
|
|
1282
|
-
*
|
|
1283
|
-
*
|
|
1392
|
+
* Context.getUnsafe(context, Port).PORT // => 8080
|
|
1393
|
+
* Context.getOption(context, Timeout) // => Option.none()
|
|
1284
1394
|
* ```
|
|
1285
1395
|
*
|
|
1286
1396
|
* @see {@link get} for type-checked service access
|
|
@@ -1307,17 +1417,16 @@ export const getUnsafe: {
|
|
|
1307
1417
|
*
|
|
1308
1418
|
* **Example** (Getting services unsafely)
|
|
1309
1419
|
*
|
|
1310
|
-
* ```ts
|
|
1311
|
-
* import { Context } from "effect"
|
|
1312
|
-
* import * as assert from "node:assert"
|
|
1420
|
+
* ```ts import.meta.vitest
|
|
1421
|
+
* import { Context, Option } from "effect"
|
|
1313
1422
|
*
|
|
1314
1423
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1315
1424
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
1316
1425
|
*
|
|
1317
1426
|
* const context = Context.make(Port, { PORT: 8080 })
|
|
1318
1427
|
*
|
|
1319
|
-
*
|
|
1320
|
-
*
|
|
1428
|
+
* Context.getUnsafe(context, Port).PORT // => 8080
|
|
1429
|
+
* Context.getOption(context, Timeout) // => Option.none()
|
|
1321
1430
|
* ```
|
|
1322
1431
|
*
|
|
1323
1432
|
* @see {@link get} for type-checked service access
|
|
@@ -1344,17 +1453,16 @@ export const getUnsafe: {
|
|
|
1344
1453
|
*
|
|
1345
1454
|
* **Example** (Getting services unsafely)
|
|
1346
1455
|
*
|
|
1347
|
-
* ```ts
|
|
1348
|
-
* import { Context } from "effect"
|
|
1349
|
-
* import * as assert from "node:assert"
|
|
1456
|
+
* ```ts import.meta.vitest
|
|
1457
|
+
* import { Context, Option } from "effect"
|
|
1350
1458
|
*
|
|
1351
1459
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1352
1460
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
1353
1461
|
*
|
|
1354
1462
|
* const context = Context.make(Port, { PORT: 8080 })
|
|
1355
1463
|
*
|
|
1356
|
-
*
|
|
1357
|
-
*
|
|
1464
|
+
* Context.getUnsafe(context, Port).PORT // => 8080
|
|
1465
|
+
* Context.getOption(context, Timeout) // => Option.none()
|
|
1358
1466
|
* ```
|
|
1359
1467
|
*
|
|
1360
1468
|
* @see {@link get} for type-checked service access
|
|
@@ -1367,11 +1475,12 @@ export const getUnsafe: {
|
|
|
1367
1475
|
} = dual(
|
|
1368
1476
|
2,
|
|
1369
1477
|
<Services, I extends Services, S>(self: Context<Services>, service: Key<I, S>): S => {
|
|
1370
|
-
|
|
1371
|
-
|
|
1478
|
+
const value = lookup(self, service.key)
|
|
1479
|
+
if (value === notFound) {
|
|
1480
|
+
if (isReference(service)) return getDefaultValue(service as any)
|
|
1372
1481
|
throw serviceNotFoundError(service)
|
|
1373
1482
|
}
|
|
1374
|
-
return
|
|
1483
|
+
return value as any
|
|
1375
1484
|
}
|
|
1376
1485
|
)
|
|
1377
1486
|
|
|
@@ -1385,9 +1494,8 @@ export const getUnsafe: {
|
|
|
1385
1494
|
*
|
|
1386
1495
|
* **Example** (Getting a service from a context)
|
|
1387
1496
|
*
|
|
1388
|
-
* ```ts
|
|
1497
|
+
* ```ts import.meta.vitest
|
|
1389
1498
|
* import { Context, pipe } from "effect"
|
|
1390
|
-
* import * as assert from "node:assert"
|
|
1391
1499
|
*
|
|
1392
1500
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1393
1501
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
@@ -1397,7 +1505,7 @@ export const getUnsafe: {
|
|
|
1397
1505
|
* Context.add(Timeout, { TIMEOUT: 5000 })
|
|
1398
1506
|
* )
|
|
1399
1507
|
*
|
|
1400
|
-
*
|
|
1508
|
+
* Context.get(context, Timeout).TIMEOUT // => 5000
|
|
1401
1509
|
* ```
|
|
1402
1510
|
*
|
|
1403
1511
|
* @see {@link getOption} for optional service access
|
|
@@ -1417,9 +1525,8 @@ export const get: {
|
|
|
1417
1525
|
*
|
|
1418
1526
|
* **Example** (Getting a service from a context)
|
|
1419
1527
|
*
|
|
1420
|
-
* ```ts
|
|
1528
|
+
* ```ts import.meta.vitest
|
|
1421
1529
|
* import { Context, pipe } from "effect"
|
|
1422
|
-
* import * as assert from "node:assert"
|
|
1423
1530
|
*
|
|
1424
1531
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1425
1532
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
@@ -1429,7 +1536,7 @@ export const get: {
|
|
|
1429
1536
|
* Context.add(Timeout, { TIMEOUT: 5000 })
|
|
1430
1537
|
* )
|
|
1431
1538
|
*
|
|
1432
|
-
*
|
|
1539
|
+
* Context.get(context, Timeout).TIMEOUT // => 5000
|
|
1433
1540
|
* ```
|
|
1434
1541
|
*
|
|
1435
1542
|
* @see {@link getOption} for optional service access
|
|
@@ -1449,9 +1556,8 @@ export const get: {
|
|
|
1449
1556
|
*
|
|
1450
1557
|
* **Example** (Getting a service from a context)
|
|
1451
1558
|
*
|
|
1452
|
-
* ```ts
|
|
1559
|
+
* ```ts import.meta.vitest
|
|
1453
1560
|
* import { Context, pipe } from "effect"
|
|
1454
|
-
* import * as assert from "node:assert"
|
|
1455
1561
|
*
|
|
1456
1562
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1457
1563
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
@@ -1461,7 +1567,7 @@ export const get: {
|
|
|
1461
1567
|
* Context.add(Timeout, { TIMEOUT: 5000 })
|
|
1462
1568
|
* )
|
|
1463
1569
|
*
|
|
1464
|
-
*
|
|
1570
|
+
* Context.get(context, Timeout).TIMEOUT // => 5000
|
|
1465
1571
|
* ```
|
|
1466
1572
|
*
|
|
1467
1573
|
* @see {@link getOption} for optional service access
|
|
@@ -1473,54 +1579,6 @@ export const get: {
|
|
|
1473
1579
|
<Services, I extends Services, S>(self: Context<Services>, service: Key<I, S>): S
|
|
1474
1580
|
} = getUnsafe
|
|
1475
1581
|
|
|
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
1582
|
const defaultValueCacheKey = "~effect/Context/defaultValue" as const
|
|
1525
1583
|
|
|
1526
1584
|
const getDefaultValue = (ref: Reference<any>) => {
|
|
@@ -1534,15 +1592,6 @@ const serviceNotFoundError = (service: Key<any, any>) => {
|
|
|
1534
1592
|
const error = new Error(
|
|
1535
1593
|
`Service not found${service.key ? `: ${String(service.key)}` : ""}`
|
|
1536
1594
|
)
|
|
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
1595
|
if (error.stack) {
|
|
1547
1596
|
const lines = error.stack.split("\n")
|
|
1548
1597
|
lines.splice(1, 3)
|
|
@@ -1567,20 +1616,16 @@ const serviceNotFoundError = (service: Key<any, any>) => {
|
|
|
1567
1616
|
*
|
|
1568
1617
|
* **Example** (Getting optional services)
|
|
1569
1618
|
*
|
|
1570
|
-
* ```ts
|
|
1619
|
+
* ```ts import.meta.vitest
|
|
1571
1620
|
* import { Context, Option } from "effect"
|
|
1572
|
-
* import * as assert from "node:assert"
|
|
1573
1621
|
*
|
|
1574
1622
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1575
1623
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
1576
1624
|
*
|
|
1577
1625
|
* const context = Context.make(Port, { PORT: 8080 })
|
|
1578
1626
|
*
|
|
1579
|
-
*
|
|
1580
|
-
*
|
|
1581
|
-
* Option.some({ PORT: 8080 })
|
|
1582
|
-
* )
|
|
1583
|
-
* assert.deepStrictEqual(Context.getOption(context, Timeout), Option.none())
|
|
1627
|
+
* Context.getOption(context, Port) // => Option.some({ PORT: 8080 })
|
|
1628
|
+
* Context.getOption(context, Timeout) // => Option.none()
|
|
1584
1629
|
* ```
|
|
1585
1630
|
*
|
|
1586
1631
|
* @see {@link getOrElse} for returning a fallback value directly
|
|
@@ -1605,20 +1650,16 @@ export const getOption: {
|
|
|
1605
1650
|
*
|
|
1606
1651
|
* **Example** (Getting optional services)
|
|
1607
1652
|
*
|
|
1608
|
-
* ```ts
|
|
1653
|
+
* ```ts import.meta.vitest
|
|
1609
1654
|
* import { Context, Option } from "effect"
|
|
1610
|
-
* import * as assert from "node:assert"
|
|
1611
1655
|
*
|
|
1612
1656
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1613
1657
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
1614
1658
|
*
|
|
1615
1659
|
* const context = Context.make(Port, { PORT: 8080 })
|
|
1616
1660
|
*
|
|
1617
|
-
*
|
|
1618
|
-
*
|
|
1619
|
-
* Option.some({ PORT: 8080 })
|
|
1620
|
-
* )
|
|
1621
|
-
* assert.deepStrictEqual(Context.getOption(context, Timeout), Option.none())
|
|
1661
|
+
* Context.getOption(context, Port) // => Option.some({ PORT: 8080 })
|
|
1662
|
+
* Context.getOption(context, Timeout) // => Option.none()
|
|
1622
1663
|
* ```
|
|
1623
1664
|
*
|
|
1624
1665
|
* @see {@link getOrElse} for returning a fallback value directly
|
|
@@ -1643,20 +1684,16 @@ export const getOption: {
|
|
|
1643
1684
|
*
|
|
1644
1685
|
* **Example** (Getting optional services)
|
|
1645
1686
|
*
|
|
1646
|
-
* ```ts
|
|
1687
|
+
* ```ts import.meta.vitest
|
|
1647
1688
|
* import { Context, Option } from "effect"
|
|
1648
|
-
* import * as assert from "node:assert"
|
|
1649
1689
|
*
|
|
1650
1690
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1651
1691
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
1652
1692
|
*
|
|
1653
1693
|
* const context = Context.make(Port, { PORT: 8080 })
|
|
1654
1694
|
*
|
|
1655
|
-
*
|
|
1656
|
-
*
|
|
1657
|
-
* Option.some({ PORT: 8080 })
|
|
1658
|
-
* )
|
|
1659
|
-
* assert.deepStrictEqual(Context.getOption(context, Timeout), Option.none())
|
|
1695
|
+
* Context.getOption(context, Port) // => Option.some({ PORT: 8080 })
|
|
1696
|
+
* Context.getOption(context, Timeout) // => Option.none()
|
|
1660
1697
|
* ```
|
|
1661
1698
|
*
|
|
1662
1699
|
* @see {@link getOrElse} for returning a fallback value directly
|
|
@@ -1666,9 +1703,8 @@ export const getOption: {
|
|
|
1666
1703
|
*/
|
|
1667
1704
|
<Services, S, I>(self: Context<Services>, service: Key<I, S>): Option.Option<S>
|
|
1668
1705
|
} = dual(2, <Services, I extends Services, S>(self: Context<Services>, service: Key<I, S>): Option.Option<S> => {
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
}
|
|
1706
|
+
const value = lookup(self, service.key)
|
|
1707
|
+
if (value !== notFound) return Option.some(value as any)
|
|
1672
1708
|
return isReference(service) ? Option.some(getDefaultValue(service as any)) : Option.none()
|
|
1673
1709
|
})
|
|
1674
1710
|
|
|
@@ -1686,9 +1722,8 @@ export const getOption: {
|
|
|
1686
1722
|
*
|
|
1687
1723
|
* **Example** (Merging two contexts)
|
|
1688
1724
|
*
|
|
1689
|
-
* ```ts
|
|
1725
|
+
* ```ts import.meta.vitest
|
|
1690
1726
|
* import { Context } from "effect"
|
|
1691
|
-
* import * as assert from "node:assert"
|
|
1692
1727
|
*
|
|
1693
1728
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1694
1729
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
@@ -1698,8 +1733,8 @@ export const getOption: {
|
|
|
1698
1733
|
*
|
|
1699
1734
|
* const context = Context.merge(firstContext, secondContext)
|
|
1700
1735
|
*
|
|
1701
|
-
*
|
|
1702
|
-
*
|
|
1736
|
+
* const values = [Context.get(context, Port).PORT, Context.get(context, Timeout).TIMEOUT]
|
|
1737
|
+
* values // => [8080, 5000]
|
|
1703
1738
|
* ```
|
|
1704
1739
|
*
|
|
1705
1740
|
* @see {@link mergeAll} for merging more than two contexts at once
|
|
@@ -1722,9 +1757,8 @@ export const merge: {
|
|
|
1722
1757
|
*
|
|
1723
1758
|
* **Example** (Merging two contexts)
|
|
1724
1759
|
*
|
|
1725
|
-
* ```ts
|
|
1760
|
+
* ```ts import.meta.vitest
|
|
1726
1761
|
* import { Context } from "effect"
|
|
1727
|
-
* import * as assert from "node:assert"
|
|
1728
1762
|
*
|
|
1729
1763
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1730
1764
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
@@ -1734,8 +1768,8 @@ export const merge: {
|
|
|
1734
1768
|
*
|
|
1735
1769
|
* const context = Context.merge(firstContext, secondContext)
|
|
1736
1770
|
*
|
|
1737
|
-
*
|
|
1738
|
-
*
|
|
1771
|
+
* const values = [Context.get(context, Port).PORT, Context.get(context, Timeout).TIMEOUT]
|
|
1772
|
+
* values // => [8080, 5000]
|
|
1739
1773
|
* ```
|
|
1740
1774
|
*
|
|
1741
1775
|
* @see {@link mergeAll} for merging more than two contexts at once
|
|
@@ -1758,9 +1792,8 @@ export const merge: {
|
|
|
1758
1792
|
*
|
|
1759
1793
|
* **Example** (Merging two contexts)
|
|
1760
1794
|
*
|
|
1761
|
-
* ```ts
|
|
1795
|
+
* ```ts import.meta.vitest
|
|
1762
1796
|
* import { Context } from "effect"
|
|
1763
|
-
* import * as assert from "node:assert"
|
|
1764
1797
|
*
|
|
1765
1798
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1766
1799
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
@@ -1770,8 +1803,8 @@ export const merge: {
|
|
|
1770
1803
|
*
|
|
1771
1804
|
* const context = Context.merge(firstContext, secondContext)
|
|
1772
1805
|
*
|
|
1773
|
-
*
|
|
1774
|
-
*
|
|
1806
|
+
* const values = [Context.get(context, Port).PORT, Context.get(context, Timeout).TIMEOUT]
|
|
1807
|
+
* values // => [8080, 5000]
|
|
1775
1808
|
* ```
|
|
1776
1809
|
*
|
|
1777
1810
|
* @see {@link mergeAll} for merging more than two contexts at once
|
|
@@ -1783,9 +1816,7 @@ export const merge: {
|
|
|
1783
1816
|
} = dual(2, <Services, R1>(self: Context<Services>, that: Context<R1>): Context<Services | R1> => {
|
|
1784
1817
|
if (self.mapUnsafe.size === 0) return that as any
|
|
1785
1818
|
if (that.mapUnsafe.size === 0) return self as any
|
|
1786
|
-
return
|
|
1787
|
-
that.mapUnsafe.forEach((value, key) => map.set(key, value))
|
|
1788
|
-
})
|
|
1819
|
+
return withFlat(self, (map) => that.mapUnsafe.forEach((value, key) => map.set(key, value)))
|
|
1789
1820
|
})
|
|
1790
1821
|
|
|
1791
1822
|
/**
|
|
@@ -1802,9 +1833,8 @@ export const merge: {
|
|
|
1802
1833
|
*
|
|
1803
1834
|
* **Example** (Merging multiple contexts)
|
|
1804
1835
|
*
|
|
1805
|
-
* ```ts
|
|
1836
|
+
* ```ts import.meta.vitest
|
|
1806
1837
|
* import { Context } from "effect"
|
|
1807
|
-
* import * as assert from "node:assert"
|
|
1808
1838
|
*
|
|
1809
1839
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1810
1840
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
@@ -1820,9 +1850,7 @@ export const merge: {
|
|
|
1820
1850
|
* thirdContext
|
|
1821
1851
|
* )
|
|
1822
1852
|
*
|
|
1823
|
-
*
|
|
1824
|
-
* assert.deepStrictEqual(Context.get(context, Timeout), { TIMEOUT: 5000 })
|
|
1825
|
-
* assert.deepStrictEqual(Context.get(context, Host), { HOST: "localhost" })
|
|
1853
|
+
* context.mapUnsafe.size // => 3
|
|
1826
1854
|
* ```
|
|
1827
1855
|
*
|
|
1828
1856
|
* @see {@link merge} for merging two contexts
|
|
@@ -1851,9 +1879,8 @@ export const mergeAll = <T extends Array<unknown>>(
|
|
|
1851
1879
|
*
|
|
1852
1880
|
* **Example** (Picking services from a context)
|
|
1853
1881
|
*
|
|
1854
|
-
* ```ts
|
|
1882
|
+
* ```ts import.meta.vitest
|
|
1855
1883
|
* import { Context, Option, pipe } from "effect"
|
|
1856
|
-
* import * as assert from "node:assert"
|
|
1857
1884
|
*
|
|
1858
1885
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1859
1886
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
@@ -1865,11 +1892,8 @@ export const mergeAll = <T extends Array<unknown>>(
|
|
|
1865
1892
|
*
|
|
1866
1893
|
* const context = pipe(someContext, Context.pick(Port))
|
|
1867
1894
|
*
|
|
1868
|
-
*
|
|
1869
|
-
*
|
|
1870
|
-
* Option.some({ PORT: 8080 })
|
|
1871
|
-
* )
|
|
1872
|
-
* assert.deepStrictEqual(Context.getOption(context, Timeout), Option.none())
|
|
1895
|
+
* Context.getOption(context, Port) // => Option.some({ PORT: 8080 })
|
|
1896
|
+
* Context.getOption(context, Timeout) // => Option.none()
|
|
1873
1897
|
* ```
|
|
1874
1898
|
*
|
|
1875
1899
|
* @see {@link omit} for removing selected services
|
|
@@ -1880,14 +1904,13 @@ export const mergeAll = <T extends Array<unknown>>(
|
|
|
1880
1904
|
export const pick = <S extends ReadonlyArray<Key<any, any>>>(
|
|
1881
1905
|
...services: S
|
|
1882
1906
|
) =>
|
|
1883
|
-
<Services>(self: Context<Services>): Context<Services & Service.Identifier<S[number]>> =>
|
|
1884
|
-
|
|
1885
|
-
|
|
1907
|
+
<Services>(self: Context<Services>): Context<Services & Service.Identifier<S[number]>> => {
|
|
1908
|
+
const keep = new Set(services.map((key) => key.key))
|
|
1909
|
+
return withFlat(self, (map) =>
|
|
1886
1910
|
map.forEach((_, key) => {
|
|
1887
|
-
if (
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
})
|
|
1911
|
+
if (!keep.has(key)) map.delete(key)
|
|
1912
|
+
}))
|
|
1913
|
+
}
|
|
1891
1914
|
|
|
1892
1915
|
/**
|
|
1893
1916
|
* Returns a new `Context` with the specified service keys removed.
|
|
@@ -1898,9 +1921,8 @@ export const pick = <S extends ReadonlyArray<Key<any, any>>>(
|
|
|
1898
1921
|
*
|
|
1899
1922
|
* **Example** (Omitting services from a context)
|
|
1900
1923
|
*
|
|
1901
|
-
* ```ts
|
|
1924
|
+
* ```ts import.meta.vitest
|
|
1902
1925
|
* import { Context, Option, pipe } from "effect"
|
|
1903
|
-
* import * as assert from "node:assert"
|
|
1904
1926
|
*
|
|
1905
1927
|
* const Port = Context.Service<{ PORT: number }>("Port")
|
|
1906
1928
|
* const Timeout = Context.Service<{ TIMEOUT: number }>("Timeout")
|
|
@@ -1912,11 +1934,8 @@ export const pick = <S extends ReadonlyArray<Key<any, any>>>(
|
|
|
1912
1934
|
*
|
|
1913
1935
|
* const context = pipe(someContext, Context.omit(Timeout))
|
|
1914
1936
|
*
|
|
1915
|
-
*
|
|
1916
|
-
*
|
|
1917
|
-
* Option.some({ PORT: 8080 })
|
|
1918
|
-
* )
|
|
1919
|
-
* assert.deepStrictEqual(Context.getOption(context, Timeout), Option.none())
|
|
1937
|
+
* Context.getOption(context, Port) // => Option.some({ PORT: 8080 })
|
|
1938
|
+
* Context.getOption(context, Timeout) // => Option.none()
|
|
1920
1939
|
* ```
|
|
1921
1940
|
*
|
|
1922
1941
|
* @see {@link pick} for keeping selected services
|
|
@@ -1928,108 +1947,12 @@ export const omit = <S extends ReadonlyArray<Key<any, any>>>(
|
|
|
1928
1947
|
...keys: S
|
|
1929
1948
|
) =>
|
|
1930
1949
|
<Services>(self: Context<Services>): Context<Exclude<Services, Service.Identifier<S[number]>>> =>
|
|
1931
|
-
|
|
1950
|
+
withFlat(self, (map) => {
|
|
1932
1951
|
for (let i = 0; i < keys.length; i++) {
|
|
1933
1952
|
map.delete(keys[i].key)
|
|
1934
1953
|
}
|
|
1935
1954
|
})
|
|
1936
1955
|
|
|
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
1956
|
/**
|
|
2034
1957
|
* Creates a context key with a default value.
|
|
2035
1958
|
*
|
|
@@ -2048,12 +1971,13 @@ const withMapUnsafe = <Services, B>(self: Context<Services>, f: (map: Map<string
|
|
|
2048
1971
|
*
|
|
2049
1972
|
* **Example** (Creating references with default values)
|
|
2050
1973
|
*
|
|
2051
|
-
* ```ts
|
|
1974
|
+
* ```ts import.meta.vitest
|
|
2052
1975
|
* import { Context } from "effect"
|
|
2053
1976
|
*
|
|
2054
1977
|
* // Create a reference with a default value
|
|
1978
|
+
* const messages: Array<string> = []
|
|
2055
1979
|
* const LoggerRef = Context.Reference("Logger", {
|
|
2056
|
-
* defaultValue: () => ({ log: (msg: string) =>
|
|
1980
|
+
* defaultValue: () => ({ log: (msg: string) => messages.push(`Default: ${msg}`) })
|
|
2057
1981
|
* })
|
|
2058
1982
|
*
|
|
2059
1983
|
* // The reference provides the default value when accessed from an empty context
|
|
@@ -2062,17 +1986,24 @@ const withMapUnsafe = <Services, B>(self: Context<Services>, f: (map: Map<string
|
|
|
2062
1986
|
*
|
|
2063
1987
|
* // You can also override the default value
|
|
2064
1988
|
* const customContext = Context.make(LoggerRef, {
|
|
2065
|
-
* log: (msg: string) => `Custom: ${msg}`
|
|
1989
|
+
* log: (msg: string) => messages.push(`Custom: ${msg}`)
|
|
2066
1990
|
* })
|
|
2067
1991
|
* const customLogger = Context.get(customContext, LoggerRef)
|
|
1992
|
+
* logger.log("default")
|
|
1993
|
+
* customLogger.log("message")
|
|
1994
|
+
* messages // => ["Default: default", "Custom: message"]
|
|
2068
1995
|
* ```
|
|
2069
1996
|
*
|
|
2070
1997
|
* @see {@link Service} for required services without default values
|
|
2071
1998
|
*
|
|
2072
|
-
* @category
|
|
1999
|
+
* @category services
|
|
2073
2000
|
* @since 3.11.0
|
|
2074
2001
|
*/
|
|
2075
2002
|
export const Reference: <Service>(
|
|
2076
2003
|
key: string,
|
|
2077
|
-
options: {
|
|
2004
|
+
options: {
|
|
2005
|
+
readonly defaultValue: () => Service
|
|
2006
|
+
/** @internal */
|
|
2007
|
+
readonly fiberCached?: boolean | undefined
|
|
2008
|
+
}
|
|
2078
2009
|
) => Reference<Service> = Service as any
|