effect 4.0.0-beta.66 → 4.0.0-beta.68
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Array.d.ts +151 -106
- package/dist/Array.d.ts.map +1 -1
- package/dist/Array.js +50 -40
- package/dist/Array.js.map +1 -1
- package/dist/BigDecimal.d.ts +620 -553
- package/dist/BigDecimal.d.ts.map +1 -1
- package/dist/BigDecimal.js +298 -254
- package/dist/BigDecimal.js.map +1 -1
- package/dist/BigInt.d.ts +342 -274
- package/dist/BigInt.d.ts.map +1 -1
- package/dist/BigInt.js +168 -126
- package/dist/BigInt.js.map +1 -1
- package/dist/Boolean.d.ts +189 -156
- package/dist/Boolean.d.ts.map +1 -1
- package/dist/Boolean.js +85 -68
- package/dist/Boolean.js.map +1 -1
- package/dist/Brand.d.ts +30 -5
- package/dist/Brand.d.ts.map +1 -1
- package/dist/Brand.js +19 -2
- package/dist/Brand.js.map +1 -1
- package/dist/Cache.d.ts +239 -135
- package/dist/Cache.d.ts.map +1 -1
- package/dist/Cache.js +135 -59
- package/dist/Cache.js.map +1 -1
- package/dist/Cause.d.ts +84 -73
- package/dist/Cause.d.ts.map +1 -1
- package/dist/Cause.js +51 -44
- package/dist/Cause.js.map +1 -1
- package/dist/Channel.d.ts +1568 -632
- package/dist/Channel.d.ts.map +1 -1
- package/dist/Channel.js +685 -315
- package/dist/Channel.js.map +1 -1
- package/dist/ChannelSchema.d.ts +119 -10
- package/dist/ChannelSchema.d.ts.map +1 -1
- package/dist/ChannelSchema.js +45 -6
- package/dist/ChannelSchema.js.map +1 -1
- package/dist/Chunk.d.ts +574 -428
- package/dist/Chunk.d.ts.map +1 -1
- package/dist/Chunk.js +250 -191
- package/dist/Chunk.js.map +1 -1
- package/dist/Clock.d.ts +16 -9
- package/dist/Clock.d.ts.map +1 -1
- package/dist/Clock.js +9 -5
- package/dist/Clock.js.map +1 -1
- package/dist/Combiner.d.ts +11 -5
- package/dist/Combiner.d.ts.map +1 -1
- package/dist/Combiner.js +10 -4
- package/dist/Combiner.js.map +1 -1
- package/dist/Config.d.ts +80 -68
- package/dist/Config.d.ts.map +1 -1
- package/dist/Config.js +53 -49
- package/dist/Config.js.map +1 -1
- package/dist/ConfigProvider.d.ts +33 -32
- package/dist/ConfigProvider.d.ts.map +1 -1
- package/dist/ConfigProvider.js +19 -18
- package/dist/ConfigProvider.js.map +1 -1
- package/dist/Console.d.ts +76 -50
- package/dist/Console.d.ts.map +1 -1
- package/dist/Console.js +69 -46
- package/dist/Console.js.map +1 -1
- package/dist/Context.d.ts +400 -189
- package/dist/Context.d.ts.map +1 -1
- package/dist/Context.js +143 -77
- package/dist/Context.js.map +1 -1
- package/dist/Cron.d.ts +67 -48
- package/dist/Cron.d.ts.map +1 -1
- package/dist/Cron.js +94 -36
- package/dist/Cron.js.map +1 -1
- package/dist/Crypto.d.ts +208 -0
- package/dist/Crypto.d.ts.map +1 -0
- package/dist/Crypto.js +157 -0
- package/dist/Crypto.js.map +1 -0
- package/dist/Data.d.ts +9 -3
- package/dist/Data.d.ts.map +1 -1
- package/dist/Data.js.map +1 -1
- package/dist/DateTime.d.ts +893 -464
- package/dist/DateTime.d.ts.map +1 -1
- package/dist/DateTime.js +387 -228
- package/dist/DateTime.js.map +1 -1
- package/dist/Deferred.d.ts +367 -175
- package/dist/Deferred.d.ts.map +1 -1
- package/dist/Deferred.js +146 -72
- package/dist/Deferred.js.map +1 -1
- package/dist/Differ.d.ts +44 -2
- package/dist/Differ.d.ts.map +1 -1
- package/dist/Differ.js +36 -0
- package/dist/Duration.d.ts +333 -186
- package/dist/Duration.d.ts.map +1 -1
- package/dist/Duration.js +178 -107
- package/dist/Duration.js.map +1 -1
- package/dist/Effect.d.ts +2181 -2275
- package/dist/Effect.d.ts.map +1 -1
- package/dist/Effect.js +935 -850
- package/dist/Effect.js.map +1 -1
- package/dist/Effectable.d.ts +38 -3
- package/dist/Effectable.d.ts.map +1 -1
- package/dist/Effectable.js +3 -3
- package/dist/Effectable.js.map +1 -1
- package/dist/Encoding.d.ts +78 -28
- package/dist/Encoding.d.ts.map +1 -1
- package/dist/Encoding.js +75 -27
- package/dist/Encoding.js.map +1 -1
- package/dist/Equal.d.ts +4 -3
- package/dist/Equal.d.ts.map +1 -1
- package/dist/Equal.js +4 -3
- package/dist/Equal.js.map +1 -1
- package/dist/Equivalence.d.ts +18 -24
- package/dist/Equivalence.d.ts.map +1 -1
- package/dist/Equivalence.js +16 -21
- package/dist/Equivalence.js.map +1 -1
- package/dist/ErrorReporter.d.ts +66 -82
- package/dist/ErrorReporter.d.ts.map +1 -1
- package/dist/ErrorReporter.js +38 -29
- package/dist/ErrorReporter.js.map +1 -1
- package/dist/ExecutionPlan.d.ts +106 -12
- package/dist/ExecutionPlan.d.ts.map +1 -1
- package/dist/ExecutionPlan.js +23 -6
- package/dist/ExecutionPlan.js.map +1 -1
- package/dist/Exit.d.ts +6 -5
- package/dist/Exit.d.ts.map +1 -1
- package/dist/Exit.js.map +1 -1
- package/dist/Fiber.d.ts +71 -40
- package/dist/Fiber.d.ts.map +1 -1
- package/dist/Fiber.js +39 -21
- package/dist/Fiber.js.map +1 -1
- package/dist/FiberHandle.d.ts +118 -57
- package/dist/FiberHandle.d.ts.map +1 -1
- package/dist/FiberHandle.js +121 -39
- package/dist/FiberHandle.js.map +1 -1
- package/dist/FiberMap.d.ts +287 -159
- package/dist/FiberMap.d.ts.map +1 -1
- package/dist/FiberMap.js +175 -73
- package/dist/FiberMap.js.map +1 -1
- package/dist/FiberSet.d.ts +93 -52
- package/dist/FiberSet.d.ts.map +1 -1
- package/dist/FiberSet.js +97 -34
- package/dist/FiberSet.js.map +1 -1
- package/dist/FileSystem.d.ts +102 -73
- package/dist/FileSystem.d.ts.map +1 -1
- package/dist/FileSystem.js +53 -39
- package/dist/FileSystem.js.map +1 -1
- package/dist/Filter.d.ts +166 -88
- package/dist/Filter.d.ts.map +1 -1
- package/dist/Filter.js +68 -42
- package/dist/Filter.js.map +1 -1
- package/dist/Formatter.d.ts +4 -2
- package/dist/Formatter.d.ts.map +1 -1
- package/dist/Formatter.js +3 -69
- package/dist/Formatter.js.map +1 -1
- package/dist/Function.d.ts +218 -151
- package/dist/Function.d.ts.map +1 -1
- package/dist/Function.js +94 -78
- package/dist/Function.js.map +1 -1
- package/dist/Graph.d.ts +714 -415
- package/dist/Graph.d.ts.map +1 -1
- package/dist/Graph.js +325 -182
- package/dist/Graph.js.map +1 -1
- package/dist/HKT.d.ts +29 -13
- package/dist/HKT.d.ts.map +1 -1
- package/dist/Hash.d.ts +35 -24
- package/dist/Hash.d.ts.map +1 -1
- package/dist/Hash.js +27 -17
- package/dist/Hash.js.map +1 -1
- package/dist/HashMap.d.ts +540 -388
- package/dist/HashMap.d.ts.map +1 -1
- package/dist/HashMap.js +262 -156
- package/dist/HashMap.js.map +1 -1
- package/dist/HashRing.d.ts +53 -34
- package/dist/HashRing.d.ts.map +1 -1
- package/dist/HashRing.js +83 -16
- package/dist/HashRing.js.map +1 -1
- package/dist/HashSet.d.ts +239 -153
- package/dist/HashSet.d.ts.map +1 -1
- package/dist/HashSet.js +110 -56
- package/dist/HashSet.js.map +1 -1
- package/dist/Inspectable.d.ts +26 -13
- package/dist/Inspectable.d.ts.map +1 -1
- package/dist/Inspectable.js +22 -10
- package/dist/Inspectable.js.map +1 -1
- package/dist/Iterable.d.ts +336 -222
- package/dist/Iterable.d.ts.map +1 -1
- package/dist/Iterable.js +146 -100
- package/dist/Iterable.js.map +1 -1
- package/dist/JsonPatch.d.ts +12 -9
- package/dist/JsonPatch.d.ts.map +1 -1
- package/dist/JsonPatch.js +9 -6
- package/dist/JsonPatch.js.map +1 -1
- package/dist/JsonPointer.d.ts +13 -11
- package/dist/JsonPointer.d.ts.map +1 -1
- package/dist/JsonPointer.js +13 -11
- package/dist/JsonPointer.js.map +1 -1
- package/dist/JsonSchema.d.ts +16 -0
- package/dist/JsonSchema.d.ts.map +1 -1
- package/dist/JsonSchema.js +10 -0
- package/dist/JsonSchema.js.map +1 -1
- package/dist/Latch.d.ts +97 -26
- package/dist/Latch.d.ts.map +1 -1
- package/dist/Latch.js +39 -20
- package/dist/Latch.js.map +1 -1
- package/dist/Layer.d.ts +472 -410
- package/dist/Layer.d.ts.map +1 -1
- package/dist/Layer.js +290 -226
- package/dist/Layer.js.map +1 -1
- package/dist/LayerMap.d.ts +99 -26
- package/dist/LayerMap.d.ts.map +1 -1
- package/dist/LayerMap.js +58 -14
- package/dist/LayerMap.js.map +1 -1
- package/dist/LogLevel.d.ts +92 -131
- package/dist/LogLevel.d.ts.map +1 -1
- package/dist/LogLevel.js +25 -15
- package/dist/LogLevel.js.map +1 -1
- package/dist/Logger.d.ts +159 -104
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +215 -189
- package/dist/Logger.js.map +1 -1
- package/dist/ManagedRuntime.d.ts +78 -19
- package/dist/ManagedRuntime.d.ts.map +1 -1
- package/dist/ManagedRuntime.js +24 -17
- package/dist/ManagedRuntime.js.map +1 -1
- package/dist/Match.d.ts +135 -161
- package/dist/Match.d.ts.map +1 -1
- package/dist/Match.js +86 -78
- package/dist/Match.js.map +1 -1
- package/dist/Metric.d.ts +330 -291
- package/dist/Metric.d.ts.map +1 -1
- package/dist/Metric.js +219 -214
- package/dist/Metric.js.map +1 -1
- package/dist/MutableHashMap.d.ts +146 -87
- package/dist/MutableHashMap.d.ts.map +1 -1
- package/dist/MutableHashMap.js +67 -43
- package/dist/MutableHashMap.js.map +1 -1
- package/dist/MutableHashSet.d.ts +52 -30
- package/dist/MutableHashSet.d.ts.map +1 -1
- package/dist/MutableHashSet.js +92 -38
- package/dist/MutableHashSet.js.map +1 -1
- package/dist/MutableList.d.ts +110 -68
- package/dist/MutableList.d.ts.map +1 -1
- package/dist/MutableList.js +135 -85
- package/dist/MutableList.js.map +1 -1
- package/dist/MutableRef.d.ts +99 -62
- package/dist/MutableRef.d.ts.map +1 -1
- package/dist/MutableRef.js +78 -60
- package/dist/MutableRef.js.map +1 -1
- package/dist/Newtype.d.ts +15 -2
- package/dist/Newtype.d.ts.map +1 -1
- package/dist/Newtype.js +8 -2
- package/dist/Newtype.js.map +1 -1
- package/dist/NonEmptyIterable.d.ts +38 -48
- package/dist/NonEmptyIterable.d.ts.map +1 -1
- package/dist/NonEmptyIterable.js +34 -25
- package/dist/NonEmptyIterable.js.map +1 -1
- package/dist/Number.d.ts +261 -205
- package/dist/Number.d.ts.map +1 -1
- package/dist/Number.js +119 -91
- package/dist/Number.js.map +1 -1
- package/dist/Optic.d.ts +6 -7
- package/dist/Optic.d.ts.map +1 -1
- package/dist/Optic.js +5 -6
- package/dist/Optic.js.map +1 -1
- package/dist/Option.d.ts +133 -156
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js +64 -64
- package/dist/Option.js.map +1 -1
- package/dist/Order.d.ts +6 -6
- package/dist/Order.js +6 -6
- package/dist/Ordering.d.ts +56 -45
- package/dist/Ordering.d.ts.map +1 -1
- package/dist/Ordering.js +10 -8
- package/dist/Ordering.js.map +1 -1
- package/dist/PartitionedSemaphore.d.ts +225 -40
- package/dist/PartitionedSemaphore.d.ts.map +1 -1
- package/dist/PartitionedSemaphore.js +113 -17
- package/dist/PartitionedSemaphore.js.map +1 -1
- package/dist/Path.d.ts +77 -13
- package/dist/Path.d.ts.map +1 -1
- package/dist/Path.js +49 -4
- package/dist/Path.js.map +1 -1
- package/dist/Pipeable.d.ts +77 -18
- package/dist/Pipeable.d.ts.map +1 -1
- package/dist/Pipeable.js +63 -14
- package/dist/Pipeable.js.map +1 -1
- package/dist/PlatformError.d.ts +74 -6
- package/dist/PlatformError.d.ts.map +1 -1
- package/dist/PlatformError.js +68 -5
- package/dist/PlatformError.js.map +1 -1
- package/dist/Pool.d.ts +66 -31
- package/dist/Pool.d.ts.map +1 -1
- package/dist/Pool.js +26 -24
- package/dist/Pool.js.map +1 -1
- package/dist/Predicate.d.ts +16 -23
- package/dist/Predicate.d.ts.map +1 -1
- package/dist/Predicate.js +12 -17
- package/dist/Predicate.js.map +1 -1
- package/dist/PrimaryKey.d.ts +11 -3
- package/dist/PrimaryKey.d.ts.map +1 -1
- package/dist/PrimaryKey.js +9 -2
- package/dist/PrimaryKey.js.map +1 -1
- package/dist/PubSub.d.ts +385 -309
- package/dist/PubSub.d.ts.map +1 -1
- package/dist/PubSub.js +260 -207
- package/dist/PubSub.js.map +1 -1
- package/dist/Pull.d.ts +94 -25
- package/dist/Pull.d.ts.map +1 -1
- package/dist/Pull.js +61 -13
- package/dist/Pull.js.map +1 -1
- package/dist/Queue.d.ts +303 -184
- package/dist/Queue.d.ts.map +1 -1
- package/dist/Queue.js +231 -134
- package/dist/Queue.js.map +1 -1
- package/dist/Random.d.ts +65 -57
- package/dist/Random.d.ts.map +1 -1
- package/dist/Random.js +41 -66
- package/dist/Random.js.map +1 -1
- package/dist/RcMap.d.ts +151 -141
- package/dist/RcMap.d.ts.map +1 -1
- package/dist/RcMap.js +66 -20
- package/dist/RcMap.js.map +1 -1
- package/dist/RcRef.d.ts +68 -32
- package/dist/RcRef.d.ts.map +1 -1
- package/dist/RcRef.js +33 -16
- package/dist/RcRef.js.map +1 -1
- package/dist/Record.d.ts +282 -137
- package/dist/Record.d.ts.map +1 -1
- package/dist/Record.js +124 -62
- package/dist/Record.js.map +1 -1
- package/dist/Redactable.d.ts +7 -5
- package/dist/Redactable.d.ts.map +1 -1
- package/dist/Redactable.js +5 -3
- package/dist/Redactable.js.map +1 -1
- package/dist/Redacted.d.ts +63 -34
- package/dist/Redacted.d.ts.map +1 -1
- package/dist/Redacted.js +31 -15
- package/dist/Redacted.js.map +1 -1
- package/dist/Reducer.d.ts +3 -1
- package/dist/Reducer.d.ts.map +1 -1
- package/dist/Reducer.js +2 -0
- package/dist/Reducer.js.map +1 -1
- package/dist/Ref.d.ts +85 -66
- package/dist/Ref.d.ts.map +1 -1
- package/dist/Ref.js +57 -45
- package/dist/Ref.js.map +1 -1
- package/dist/References.d.ts +73 -31
- package/dist/References.d.ts.map +1 -1
- package/dist/References.js +66 -30
- package/dist/References.js.map +1 -1
- package/dist/RegExp.d.ts +12 -6
- package/dist/RegExp.d.ts.map +1 -1
- package/dist/RegExp.js +12 -6
- package/dist/RegExp.js.map +1 -1
- package/dist/Request.d.ts +159 -34
- package/dist/Request.d.ts.map +1 -1
- package/dist/Request.js +68 -12
- package/dist/Request.js.map +1 -1
- package/dist/RequestResolver.d.ts +262 -118
- package/dist/RequestResolver.d.ts.map +1 -1
- package/dist/RequestResolver.js +78 -42
- package/dist/RequestResolver.js.map +1 -1
- package/dist/Resource.d.ts +13 -7
- package/dist/Resource.d.ts.map +1 -1
- package/dist/Resource.js +44 -6
- package/dist/Resource.js.map +1 -1
- package/dist/Result.d.ts +135 -151
- package/dist/Result.d.ts.map +1 -1
- package/dist/Result.js +56 -68
- package/dist/Result.js.map +1 -1
- package/dist/Runtime.d.ts +40 -20
- package/dist/Runtime.d.ts.map +1 -1
- package/dist/Runtime.js +34 -17
- package/dist/Runtime.js.map +1 -1
- package/dist/Schedule.d.ts +556 -590
- package/dist/Schedule.d.ts.map +1 -1
- package/dist/Schedule.js +265 -253
- package/dist/Schedule.js.map +1 -1
- package/dist/Scheduler.d.ts +44 -7
- package/dist/Scheduler.d.ts.map +1 -1
- package/dist/Scheduler.js +34 -5
- package/dist/Scheduler.js.map +1 -1
- package/dist/Schema.d.ts +1293 -602
- package/dist/Schema.d.ts.map +1 -1
- package/dist/Schema.js +501 -361
- package/dist/Schema.js.map +1 -1
- package/dist/SchemaAST.d.ts +122 -92
- package/dist/SchemaAST.d.ts.map +1 -1
- package/dist/SchemaAST.js +102 -77
- package/dist/SchemaAST.js.map +1 -1
- package/dist/SchemaGetter.d.ts +49 -36
- package/dist/SchemaGetter.d.ts.map +1 -1
- package/dist/SchemaGetter.js +42 -29
- package/dist/SchemaGetter.js.map +1 -1
- package/dist/SchemaIssue.d.ts +19 -24
- package/dist/SchemaIssue.d.ts.map +1 -1
- package/dist/SchemaIssue.js +16 -14
- package/dist/SchemaIssue.js.map +1 -1
- package/dist/SchemaParser.d.ts +231 -63
- package/dist/SchemaParser.d.ts.map +1 -1
- package/dist/SchemaParser.js +266 -75
- package/dist/SchemaParser.js.map +1 -1
- package/dist/SchemaRepresentation.d.ts +89 -77
- package/dist/SchemaRepresentation.d.ts.map +1 -1
- package/dist/SchemaRepresentation.js +47 -37
- package/dist/SchemaRepresentation.js.map +1 -1
- package/dist/SchemaTransformation.d.ts +97 -46
- package/dist/SchemaTransformation.d.ts.map +1 -1
- package/dist/SchemaTransformation.js +89 -38
- package/dist/SchemaTransformation.js.map +1 -1
- package/dist/SchemaUtils.d.ts +8 -1
- package/dist/SchemaUtils.d.ts.map +1 -1
- package/dist/SchemaUtils.js +24 -1
- package/dist/SchemaUtils.js.map +1 -1
- package/dist/Scope.d.ts +107 -65
- package/dist/Scope.d.ts.map +1 -1
- package/dist/Scope.js +61 -32
- package/dist/Scope.js.map +1 -1
- package/dist/ScopedCache.d.ts +141 -49
- package/dist/ScopedCache.d.ts.map +1 -1
- package/dist/ScopedCache.js +82 -21
- package/dist/ScopedCache.js.map +1 -1
- package/dist/ScopedRef.d.ts +28 -8
- package/dist/ScopedRef.d.ts.map +1 -1
- package/dist/ScopedRef.js +25 -5
- package/dist/ScopedRef.js.map +1 -1
- package/dist/Semaphore.d.ts +61 -37
- package/dist/Semaphore.d.ts.map +1 -1
- package/dist/Semaphore.js +18 -21
- package/dist/Semaphore.js.map +1 -1
- package/dist/Sink.d.ts +461 -206
- package/dist/Sink.d.ts.map +1 -1
- package/dist/Sink.js +241 -90
- package/dist/Sink.js.map +1 -1
- package/dist/Stdio.d.ts +43 -6
- package/dist/Stdio.d.ts.map +1 -1
- package/dist/Stdio.js +33 -4
- package/dist/Stdio.js.map +1 -1
- package/dist/Stream.d.ts +2117 -1541
- package/dist/Stream.d.ts.map +1 -1
- package/dist/Stream.js +951 -682
- package/dist/Stream.js.map +1 -1
- package/dist/String.d.ts +174 -97
- package/dist/String.d.ts.map +1 -1
- package/dist/String.js +128 -69
- package/dist/String.js.map +1 -1
- package/dist/Struct.d.ts +20 -18
- package/dist/Struct.d.ts.map +1 -1
- package/dist/Struct.js +10 -8
- package/dist/Struct.js.map +1 -1
- package/dist/SubscriptionRef.d.ts +309 -204
- package/dist/SubscriptionRef.d.ts.map +1 -1
- package/dist/SubscriptionRef.js +126 -77
- package/dist/SubscriptionRef.js.map +1 -1
- package/dist/Symbol.d.ts +13 -5
- package/dist/Symbol.d.ts.map +1 -1
- package/dist/Symbol.js +13 -5
- package/dist/Symbol.js.map +1 -1
- package/dist/SynchronizedRef.d.ts +278 -62
- package/dist/SynchronizedRef.d.ts.map +1 -1
- package/dist/SynchronizedRef.js +116 -23
- package/dist/SynchronizedRef.js.map +1 -1
- package/dist/Take.d.ts +26 -2
- package/dist/Take.d.ts.map +1 -1
- package/dist/Take.js +4 -1
- package/dist/Take.js.map +1 -1
- package/dist/Terminal.d.ts +39 -7
- package/dist/Terminal.d.ts.map +1 -1
- package/dist/Terminal.js +10 -4
- package/dist/Terminal.js.map +1 -1
- package/dist/Tracer.d.ts +233 -59
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +94 -18
- package/dist/Tracer.js.map +1 -1
- package/dist/Trie.d.ts +280 -245
- package/dist/Trie.d.ts.map +1 -1
- package/dist/Trie.js +116 -102
- package/dist/Trie.js.map +1 -1
- package/dist/Tuple.d.ts +34 -32
- package/dist/Tuple.d.ts.map +1 -1
- package/dist/Tuple.js +16 -14
- package/dist/Tuple.js.map +1 -1
- package/dist/TxChunk.d.ts +200 -155
- package/dist/TxChunk.d.ts.map +1 -1
- package/dist/TxChunk.js +83 -61
- package/dist/TxChunk.js.map +1 -1
- package/dist/TxDeferred.d.ts +43 -29
- package/dist/TxDeferred.d.ts.map +1 -1
- package/dist/TxDeferred.js +22 -15
- package/dist/TxDeferred.js.map +1 -1
- package/dist/TxHashMap.d.ts +362 -223
- package/dist/TxHashMap.d.ts.map +1 -1
- package/dist/TxHashMap.js +171 -98
- package/dist/TxHashMap.js.map +1 -1
- package/dist/TxHashSet.d.ts +181 -111
- package/dist/TxHashSet.d.ts.map +1 -1
- package/dist/TxHashSet.js +87 -49
- package/dist/TxHashSet.js.map +1 -1
- package/dist/TxPriorityQueue.d.ts +94 -63
- package/dist/TxPriorityQueue.d.ts.map +1 -1
- package/dist/TxPriorityQueue.js +55 -37
- package/dist/TxPriorityQueue.js.map +1 -1
- package/dist/TxPubSub.d.ts +77 -49
- package/dist/TxPubSub.d.ts.map +1 -1
- package/dist/TxPubSub.js +60 -37
- package/dist/TxPubSub.js.map +1 -1
- package/dist/TxQueue.d.ts +277 -242
- package/dist/TxQueue.d.ts.map +1 -1
- package/dist/TxQueue.js +147 -101
- package/dist/TxQueue.js.map +1 -1
- package/dist/TxReentrantLock.d.ts +69 -46
- package/dist/TxReentrantLock.d.ts.map +1 -1
- package/dist/TxReentrantLock.js +48 -32
- package/dist/TxReentrantLock.js.map +1 -1
- package/dist/TxRef.d.ts +69 -40
- package/dist/TxRef.d.ts.map +1 -1
- package/dist/TxRef.js +34 -19
- package/dist/TxRef.js.map +1 -1
- package/dist/TxSemaphore.d.ts +101 -115
- package/dist/TxSemaphore.d.ts.map +1 -1
- package/dist/TxSemaphore.js +76 -77
- package/dist/TxSemaphore.js.map +1 -1
- package/dist/TxSubscriptionRef.d.ts +74 -50
- package/dist/TxSubscriptionRef.d.ts.map +1 -1
- package/dist/TxSubscriptionRef.js +34 -23
- package/dist/TxSubscriptionRef.js.map +1 -1
- package/dist/Types.d.ts +31 -34
- package/dist/Types.d.ts.map +1 -1
- package/dist/UndefinedOr.d.ts +62 -25
- package/dist/UndefinedOr.d.ts.map +1 -1
- package/dist/UndefinedOr.js +36 -25
- package/dist/UndefinedOr.js.map +1 -1
- package/dist/Unify.d.ts +72 -117
- package/dist/Unify.d.ts.map +1 -1
- package/dist/Unify.js +20 -6
- package/dist/Unify.js.map +1 -1
- package/dist/Utils.d.ts +5 -2
- package/dist/Utils.d.ts.map +1 -1
- package/dist/Utils.js +4 -0
- package/dist/Utils.js.map +1 -1
- package/dist/index.d.ts +1973 -418
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1973 -418
- package/dist/index.js.map +1 -1
- package/dist/internal/schema/schema.js +1 -1
- package/dist/internal/schema/schema.js.map +1 -1
- package/dist/testing/FastCheck.d.ts +9 -6
- package/dist/testing/FastCheck.d.ts.map +1 -1
- package/dist/testing/FastCheck.js +9 -6
- package/dist/testing/FastCheck.js.map +1 -1
- package/dist/testing/TestClock.d.ts +39 -35
- package/dist/testing/TestClock.d.ts.map +1 -1
- package/dist/testing/TestClock.js +42 -12
- package/dist/testing/TestClock.js.map +1 -1
- package/dist/testing/TestConsole.d.ts +44 -36
- package/dist/testing/TestConsole.d.ts.map +1 -1
- package/dist/testing/TestConsole.js +30 -15
- package/dist/testing/TestConsole.js.map +1 -1
- package/dist/testing/TestSchema.d.ts +2 -0
- package/dist/testing/TestSchema.d.ts.map +1 -1
- package/dist/testing/TestSchema.js +9 -7
- package/dist/testing/TestSchema.js.map +1 -1
- package/dist/testing/index.d.ts +34 -0
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +34 -0
- package/dist/testing/index.js.map +1 -1
- package/dist/unstable/ai/AiError.d.ts +205 -147
- package/dist/unstable/ai/AiError.d.ts.map +1 -1
- package/dist/unstable/ai/AiError.js +164 -109
- package/dist/unstable/ai/AiError.js.map +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.d.ts +1 -1
- package/dist/unstable/ai/AnthropicStructuredOutput.js +2 -2
- package/dist/unstable/ai/Chat.d.ts +64 -41
- package/dist/unstable/ai/Chat.d.ts.map +1 -1
- package/dist/unstable/ai/Chat.js +51 -33
- package/dist/unstable/ai/Chat.js.map +1 -1
- package/dist/unstable/ai/EmbeddingModel.d.ts +12 -11
- package/dist/unstable/ai/EmbeddingModel.d.ts.map +1 -1
- package/dist/unstable/ai/EmbeddingModel.js +9 -8
- package/dist/unstable/ai/EmbeddingModel.js.map +1 -1
- package/dist/unstable/ai/IdGenerator.d.ts +28 -18
- package/dist/unstable/ai/IdGenerator.d.ts.map +1 -1
- package/dist/unstable/ai/IdGenerator.js +18 -11
- package/dist/unstable/ai/IdGenerator.js.map +1 -1
- package/dist/unstable/ai/LanguageModel.d.ts +31 -25
- package/dist/unstable/ai/LanguageModel.d.ts.map +1 -1
- package/dist/unstable/ai/LanguageModel.js +20 -14
- package/dist/unstable/ai/LanguageModel.js.map +1 -1
- package/dist/unstable/ai/McpSchema.d.ts +342 -119
- package/dist/unstable/ai/McpSchema.d.ts.map +1 -1
- package/dist/unstable/ai/McpSchema.js +266 -98
- package/dist/unstable/ai/McpSchema.js.map +1 -1
- package/dist/unstable/ai/McpServer.d.ts +56 -20
- package/dist/unstable/ai/McpServer.d.ts.map +1 -1
- package/dist/unstable/ai/McpServer.js +64 -16
- package/dist/unstable/ai/McpServer.js.map +1 -1
- package/dist/unstable/ai/Model.d.ts +10 -12
- package/dist/unstable/ai/Model.d.ts.map +1 -1
- package/dist/unstable/ai/Model.js +9 -7
- package/dist/unstable/ai/Model.js.map +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.d.ts +1 -1
- package/dist/unstable/ai/OpenAiStructuredOutput.js +2 -2
- package/dist/unstable/ai/Prompt.d.ts +200 -176
- package/dist/unstable/ai/Prompt.d.ts.map +1 -1
- package/dist/unstable/ai/Prompt.js +77 -68
- package/dist/unstable/ai/Prompt.js.map +1 -1
- package/dist/unstable/ai/Response.d.ts +173 -160
- package/dist/unstable/ai/Response.d.ts.map +1 -1
- package/dist/unstable/ai/Response.js +43 -48
- package/dist/unstable/ai/Response.js.map +1 -1
- package/dist/unstable/ai/ResponseIdTracker.d.ts +43 -4
- package/dist/unstable/ai/ResponseIdTracker.d.ts.map +1 -1
- package/dist/unstable/ai/ResponseIdTracker.js +27 -2
- package/dist/unstable/ai/ResponseIdTracker.js.map +1 -1
- package/dist/unstable/ai/Telemetry.d.ts +43 -33
- package/dist/unstable/ai/Telemetry.d.ts.map +1 -1
- package/dist/unstable/ai/Telemetry.js +15 -11
- package/dist/unstable/ai/Telemetry.js.map +1 -1
- package/dist/unstable/ai/Tokenizer.d.ts +14 -9
- package/dist/unstable/ai/Tokenizer.d.ts.map +1 -1
- package/dist/unstable/ai/Tokenizer.js +10 -6
- package/dist/unstable/ai/Tokenizer.js.map +1 -1
- package/dist/unstable/ai/Tool.d.ts +167 -96
- package/dist/unstable/ai/Tool.d.ts.map +1 -1
- package/dist/unstable/ai/Tool.js +107 -53
- package/dist/unstable/ai/Tool.js.map +1 -1
- package/dist/unstable/ai/Toolkit.d.ts +32 -39
- package/dist/unstable/ai/Toolkit.d.ts.map +1 -1
- package/dist/unstable/ai/Toolkit.js +7 -5
- package/dist/unstable/ai/Toolkit.js.map +1 -1
- package/dist/unstable/ai/index.d.ts +121 -29
- package/dist/unstable/ai/index.d.ts.map +1 -1
- package/dist/unstable/ai/index.js +121 -29
- package/dist/unstable/ai/index.js.map +1 -1
- package/dist/unstable/cli/Argument.d.ts +226 -134
- package/dist/unstable/cli/Argument.d.ts.map +1 -1
- package/dist/unstable/cli/Argument.js +101 -65
- package/dist/unstable/cli/Argument.js.map +1 -1
- package/dist/unstable/cli/CliError.d.ts +72 -26
- package/dist/unstable/cli/CliError.d.ts.map +1 -1
- package/dist/unstable/cli/CliError.js +86 -23
- package/dist/unstable/cli/CliError.js.map +1 -1
- package/dist/unstable/cli/CliOutput.d.ts +48 -19
- package/dist/unstable/cli/CliOutput.d.ts.map +1 -1
- package/dist/unstable/cli/CliOutput.js +32 -9
- package/dist/unstable/cli/CliOutput.js.map +1 -1
- package/dist/unstable/cli/Command.d.ts +196 -115
- package/dist/unstable/cli/Command.d.ts.map +1 -1
- package/dist/unstable/cli/Command.js +45 -31
- package/dist/unstable/cli/Command.js.map +1 -1
- package/dist/unstable/cli/Completions.d.ts +7 -7
- package/dist/unstable/cli/Completions.js +1 -1
- package/dist/unstable/cli/Flag.d.ts +235 -142
- package/dist/unstable/cli/Flag.d.ts.map +1 -1
- package/dist/unstable/cli/Flag.js +111 -71
- package/dist/unstable/cli/Flag.js.map +1 -1
- package/dist/unstable/cli/GlobalFlag.d.ts +41 -13
- package/dist/unstable/cli/GlobalFlag.d.ts.map +1 -1
- package/dist/unstable/cli/GlobalFlag.js +30 -7
- package/dist/unstable/cli/GlobalFlag.js.map +1 -1
- package/dist/unstable/cli/HelpDoc.d.ts +39 -14
- package/dist/unstable/cli/HelpDoc.d.ts.map +1 -1
- package/dist/unstable/cli/HelpDoc.js +21 -0
- package/dist/unstable/cli/Param.d.ts +110 -32
- package/dist/unstable/cli/Param.d.ts.map +1 -1
- package/dist/unstable/cli/Param.js +196 -135
- package/dist/unstable/cli/Param.js.map +1 -1
- package/dist/unstable/cli/Primitive.d.ts +79 -42
- package/dist/unstable/cli/Primitive.d.ts.map +1 -1
- package/dist/unstable/cli/Primitive.js +66 -35
- package/dist/unstable/cli/Primitive.js.map +1 -1
- package/dist/unstable/cli/Prompt.d.ts +183 -59
- package/dist/unstable/cli/Prompt.d.ts.map +1 -1
- package/dist/unstable/cli/Prompt.js +105 -23
- package/dist/unstable/cli/Prompt.js.map +1 -1
- package/dist/unstable/cli/index.d.ts +182 -0
- package/dist/unstable/cli/index.d.ts.map +1 -1
- package/dist/unstable/cli/index.js +205 -6
- package/dist/unstable/cli/index.js.map +1 -1
- package/dist/unstable/cli/internal/ansi.d.ts.map +1 -1
- package/dist/unstable/cli/internal/ansi.js +13 -0
- package/dist/unstable/cli/internal/ansi.js.map +1 -1
- package/dist/unstable/cli/internal/command.d.ts +5 -1
- package/dist/unstable/cli/internal/command.d.ts.map +1 -1
- package/dist/unstable/cli/internal/command.js +5 -1
- package/dist/unstable/cli/internal/command.js.map +1 -1
- package/dist/unstable/cli/internal/config.d.ts +3 -0
- package/dist/unstable/cli/internal/config.d.ts.map +1 -1
- package/dist/unstable/cli/internal/config.js.map +1 -1
- package/dist/unstable/cli/internal/lexer.js.map +1 -1
- package/dist/unstable/cli/internal/parser.js +0 -1
- package/dist/unstable/cli/internal/parser.js.map +1 -1
- package/dist/unstable/cluster/ClusterCron.d.ts +35 -1
- package/dist/unstable/cluster/ClusterCron.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterCron.js +35 -1
- package/dist/unstable/cluster/ClusterCron.js.map +1 -1
- package/dist/unstable/cluster/ClusterError.d.ts +56 -7
- package/dist/unstable/cluster/ClusterError.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterError.js +56 -7
- package/dist/unstable/cluster/ClusterError.js.map +1 -1
- package/dist/unstable/cluster/ClusterMetrics.d.ts +39 -5
- package/dist/unstable/cluster/ClusterMetrics.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterMetrics.js +39 -5
- package/dist/unstable/cluster/ClusterMetrics.js.map +1 -1
- package/dist/unstable/cluster/ClusterSchema.d.ts +61 -8
- package/dist/unstable/cluster/ClusterSchema.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterSchema.js +61 -8
- package/dist/unstable/cluster/ClusterSchema.js.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts +14 -2
- package/dist/unstable/cluster/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/cluster/ClusterWorkflowEngine.js +35 -2
- package/dist/unstable/cluster/ClusterWorkflowEngine.js.map +1 -1
- package/dist/unstable/cluster/DeliverAt.d.ts +39 -4
- package/dist/unstable/cluster/DeliverAt.d.ts.map +1 -1
- package/dist/unstable/cluster/DeliverAt.js +11 -3
- package/dist/unstable/cluster/DeliverAt.js.map +1 -1
- package/dist/unstable/cluster/Entity.d.ts +74 -16
- package/dist/unstable/cluster/Entity.d.ts.map +1 -1
- package/dist/unstable/cluster/Entity.js +75 -10
- package/dist/unstable/cluster/Entity.js.map +1 -1
- package/dist/unstable/cluster/EntityAddress.d.ts +30 -2
- package/dist/unstable/cluster/EntityAddress.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityAddress.js +30 -2
- package/dist/unstable/cluster/EntityAddress.js.map +1 -1
- package/dist/unstable/cluster/EntityId.d.ts +18 -3
- package/dist/unstable/cluster/EntityId.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityId.js +15 -2
- package/dist/unstable/cluster/EntityId.js.map +1 -1
- package/dist/unstable/cluster/EntityProxy.d.ts +42 -14
- package/dist/unstable/cluster/EntityProxy.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityProxy.js +30 -14
- package/dist/unstable/cluster/EntityProxy.js.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.d.ts +18 -2
- package/dist/unstable/cluster/EntityProxyServer.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityProxyServer.js +40 -8
- package/dist/unstable/cluster/EntityProxyServer.js.map +1 -1
- package/dist/unstable/cluster/EntityResource.d.ts +43 -6
- package/dist/unstable/cluster/EntityResource.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityResource.js +11 -4
- package/dist/unstable/cluster/EntityResource.js.map +1 -1
- package/dist/unstable/cluster/EntityType.d.ts +27 -3
- package/dist/unstable/cluster/EntityType.d.ts.map +1 -1
- package/dist/unstable/cluster/EntityType.js +24 -2
- package/dist/unstable/cluster/EntityType.js.map +1 -1
- package/dist/unstable/cluster/Envelope.d.ts +105 -23
- package/dist/unstable/cluster/Envelope.d.ts.map +1 -1
- package/dist/unstable/cluster/Envelope.js +88 -14
- package/dist/unstable/cluster/Envelope.js.map +1 -1
- package/dist/unstable/cluster/HttpRunner.d.ts +88 -13
- package/dist/unstable/cluster/HttpRunner.d.ts.map +1 -1
- package/dist/unstable/cluster/HttpRunner.js +88 -13
- package/dist/unstable/cluster/HttpRunner.js.map +1 -1
- package/dist/unstable/cluster/K8sHttpClient.d.ts +49 -6
- package/dist/unstable/cluster/K8sHttpClient.d.ts.map +1 -1
- package/dist/unstable/cluster/K8sHttpClient.js +31 -6
- package/dist/unstable/cluster/K8sHttpClient.js.map +1 -1
- package/dist/unstable/cluster/MachineId.d.ts +24 -3
- package/dist/unstable/cluster/MachineId.d.ts.map +1 -1
- package/dist/unstable/cluster/MachineId.js +21 -2
- package/dist/unstable/cluster/MachineId.js.map +1 -1
- package/dist/unstable/cluster/Message.d.ts +102 -13
- package/dist/unstable/cluster/Message.d.ts.map +1 -1
- package/dist/unstable/cluster/Message.js +86 -10
- package/dist/unstable/cluster/Message.js.map +1 -1
- package/dist/unstable/cluster/MessageStorage.d.ts +126 -21
- package/dist/unstable/cluster/MessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/MessageStorage.js +70 -10
- package/dist/unstable/cluster/MessageStorage.js.map +1 -1
- package/dist/unstable/cluster/Reply.d.ts +101 -12
- package/dist/unstable/cluster/Reply.d.ts.map +1 -1
- package/dist/unstable/cluster/Reply.js +64 -8
- package/dist/unstable/cluster/Reply.js.map +1 -1
- package/dist/unstable/cluster/Runner.d.ts +47 -17
- package/dist/unstable/cluster/Runner.d.ts.map +1 -1
- package/dist/unstable/cluster/Runner.js +47 -17
- package/dist/unstable/cluster/Runner.js.map +1 -1
- package/dist/unstable/cluster/RunnerAddress.d.ts +34 -2
- package/dist/unstable/cluster/RunnerAddress.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerAddress.js +34 -2
- package/dist/unstable/cluster/RunnerAddress.js.map +1 -1
- package/dist/unstable/cluster/RunnerHealth.d.ts +40 -12
- package/dist/unstable/cluster/RunnerHealth.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerHealth.js +40 -12
- package/dist/unstable/cluster/RunnerHealth.js.map +1 -1
- package/dist/unstable/cluster/RunnerServer.d.ts +7 -4
- package/dist/unstable/cluster/RunnerServer.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerServer.js +31 -4
- package/dist/unstable/cluster/RunnerServer.js.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.d.ts +42 -5
- package/dist/unstable/cluster/RunnerStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/RunnerStorage.js +38 -4
- package/dist/unstable/cluster/RunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/Runners.d.ts +76 -13
- package/dist/unstable/cluster/Runners.d.ts.map +1 -1
- package/dist/unstable/cluster/Runners.js +73 -12
- package/dist/unstable/cluster/Runners.js.map +1 -1
- package/dist/unstable/cluster/ShardId.d.ts +53 -5
- package/dist/unstable/cluster/ShardId.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardId.js +49 -4
- package/dist/unstable/cluster/ShardId.js.map +1 -1
- package/dist/unstable/cluster/Sharding.d.ts +10 -2
- package/dist/unstable/cluster/Sharding.d.ts.map +1 -1
- package/dist/unstable/cluster/Sharding.js +35 -4
- package/dist/unstable/cluster/Sharding.js.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.d.ts +65 -9
- package/dist/unstable/cluster/ShardingConfig.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardingConfig.js +66 -9
- package/dist/unstable/cluster/ShardingConfig.js.map +1 -1
- package/dist/unstable/cluster/ShardingRegistrationEvent.d.ts +27 -6
- package/dist/unstable/cluster/ShardingRegistrationEvent.d.ts.map +1 -1
- package/dist/unstable/cluster/ShardingRegistrationEvent.js +28 -4
- package/dist/unstable/cluster/ShardingRegistrationEvent.js.map +1 -1
- package/dist/unstable/cluster/SingleRunner.d.ts +23 -1
- package/dist/unstable/cluster/SingleRunner.d.ts.map +1 -1
- package/dist/unstable/cluster/SingleRunner.js +23 -1
- package/dist/unstable/cluster/SingleRunner.js.map +1 -1
- package/dist/unstable/cluster/Singleton.d.ts +15 -1
- package/dist/unstable/cluster/Singleton.d.ts.map +1 -1
- package/dist/unstable/cluster/Singleton.js +15 -1
- package/dist/unstable/cluster/Singleton.js.map +1 -1
- package/dist/unstable/cluster/SingletonAddress.d.ts +21 -1
- package/dist/unstable/cluster/SingletonAddress.d.ts.map +1 -1
- package/dist/unstable/cluster/SingletonAddress.js +21 -1
- package/dist/unstable/cluster/SingletonAddress.js.map +1 -1
- package/dist/unstable/cluster/Snowflake.d.ts +90 -19
- package/dist/unstable/cluster/Snowflake.d.ts.map +1 -1
- package/dist/unstable/cluster/Snowflake.js +49 -13
- package/dist/unstable/cluster/Snowflake.js.map +1 -1
- package/dist/unstable/cluster/SocketRunner.d.ts +8 -2
- package/dist/unstable/cluster/SocketRunner.d.ts.map +1 -1
- package/dist/unstable/cluster/SocketRunner.js +29 -2
- package/dist/unstable/cluster/SocketRunner.js.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.d.ts +11 -3
- package/dist/unstable/cluster/SqlMessageStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/SqlMessageStorage.js +27 -3
- package/dist/unstable/cluster/SqlMessageStorage.js.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.d.ts +11 -3
- package/dist/unstable/cluster/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/unstable/cluster/SqlRunnerStorage.js +46 -7
- package/dist/unstable/cluster/SqlRunnerStorage.js.map +1 -1
- package/dist/unstable/cluster/TestRunner.d.ts +18 -1
- package/dist/unstable/cluster/TestRunner.d.ts.map +1 -1
- package/dist/unstable/cluster/TestRunner.js +18 -1
- package/dist/unstable/cluster/TestRunner.js.map +1 -1
- package/dist/unstable/cluster/index.d.ts +790 -0
- package/dist/unstable/cluster/index.d.ts.map +1 -1
- package/dist/unstable/cluster/index.js +790 -0
- package/dist/unstable/cluster/index.js.map +1 -1
- package/dist/unstable/cluster/internal/hash.js +12 -0
- package/dist/unstable/cluster/internal/hash.js.map +1 -1
- package/dist/unstable/devtools/DevTools.d.ts +26 -3
- package/dist/unstable/devtools/DevTools.d.ts.map +1 -1
- package/dist/unstable/devtools/DevTools.js +26 -3
- package/dist/unstable/devtools/DevTools.js.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.d.ts +20 -5
- package/dist/unstable/devtools/DevToolsClient.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsClient.js +32 -5
- package/dist/unstable/devtools/DevToolsClient.js.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.d.ts +184 -44
- package/dist/unstable/devtools/DevToolsSchema.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsSchema.js +102 -20
- package/dist/unstable/devtools/DevToolsSchema.js.map +1 -1
- package/dist/unstable/devtools/DevToolsServer.d.ts +27 -2
- package/dist/unstable/devtools/DevToolsServer.d.ts.map +1 -1
- package/dist/unstable/devtools/DevToolsServer.js +21 -1
- package/dist/unstable/devtools/DevToolsServer.js.map +1 -1
- package/dist/unstable/devtools/index.d.ts +58 -0
- package/dist/unstable/devtools/index.d.ts.map +1 -1
- package/dist/unstable/devtools/index.js +58 -0
- package/dist/unstable/devtools/index.js.map +1 -1
- package/dist/unstable/encoding/Msgpack.d.ts +81 -12
- package/dist/unstable/encoding/Msgpack.d.ts.map +1 -1
- package/dist/unstable/encoding/Msgpack.js +75 -9
- package/dist/unstable/encoding/Msgpack.js.map +1 -1
- package/dist/unstable/encoding/Ndjson.d.ts +149 -21
- package/dist/unstable/encoding/Ndjson.d.ts.map +1 -1
- package/dist/unstable/encoding/Ndjson.js +97 -13
- package/dist/unstable/encoding/Ndjson.js.map +1 -1
- package/dist/unstable/encoding/Sse.d.ts +109 -18
- package/dist/unstable/encoding/Sse.d.ts.map +1 -1
- package/dist/unstable/encoding/Sse.js +69 -13
- package/dist/unstable/encoding/Sse.js.map +1 -1
- package/dist/unstable/encoding/index.d.ts +49 -0
- package/dist/unstable/encoding/index.d.ts.map +1 -1
- package/dist/unstable/encoding/index.js +49 -0
- package/dist/unstable/encoding/index.js.map +1 -1
- package/dist/unstable/eventlog/Event.d.ts +115 -30
- package/dist/unstable/eventlog/Event.d.ts.map +1 -1
- package/dist/unstable/eventlog/Event.js +22 -2
- package/dist/unstable/eventlog/Event.js.map +1 -1
- package/dist/unstable/eventlog/EventGroup.d.ts +50 -17
- package/dist/unstable/eventlog/EventGroup.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventGroup.js +24 -6
- package/dist/unstable/eventlog/EventGroup.js.map +1 -1
- package/dist/unstable/eventlog/EventJournal.d.ts +104 -20
- package/dist/unstable/eventlog/EventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventJournal.js +108 -16
- package/dist/unstable/eventlog/EventJournal.js.map +1 -1
- package/dist/unstable/eventlog/EventLog.d.ts +150 -31
- package/dist/unstable/eventlog/EventLog.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLog.js +111 -20
- package/dist/unstable/eventlog/EventLog.js.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.d.ts +42 -6
- package/dist/unstable/eventlog/EventLogEncryption.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogEncryption.js +38 -5
- package/dist/unstable/eventlog/EventLogEncryption.js.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.d.ts +92 -18
- package/dist/unstable/eventlog/EventLogMessage.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogMessage.js +72 -16
- package/dist/unstable/eventlog/EventLogMessage.js.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.d.ts +35 -8
- package/dist/unstable/eventlog/EventLogRemote.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogRemote.js +54 -8
- package/dist/unstable/eventlog/EventLogRemote.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.d.ts +17 -3
- package/dist/unstable/eventlog/EventLogServer.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServer.js +17 -3
- package/dist/unstable/eventlog/EventLogServer.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts +32 -6
- package/dist/unstable/eventlog/EventLogServerEncrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServerEncrypted.js +52 -6
- package/dist/unstable/eventlog/EventLogServerEncrypted.js.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts +74 -16
- package/dist/unstable/eventlog/EventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js +90 -16
- package/dist/unstable/eventlog/EventLogServerUnencrypted.js.map +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts +59 -15
- package/dist/unstable/eventlog/EventLogSessionAuth.d.ts.map +1 -1
- package/dist/unstable/eventlog/EventLogSessionAuth.js +73 -14
- package/dist/unstable/eventlog/EventLogSessionAuth.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventJournal.d.ts +10 -2
- package/dist/unstable/eventlog/SqlEventJournal.d.ts.map +1 -1
- package/dist/unstable/eventlog/SqlEventJournal.js +28 -2
- package/dist/unstable/eventlog/SqlEventJournal.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.d.ts +32 -3
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js +32 -3
- package/dist/unstable/eventlog/SqlEventLogServerEncrypted.js.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts +10 -2
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.d.ts.map +1 -1
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js +28 -2
- package/dist/unstable/eventlog/SqlEventLogServerUnencrypted.js.map +1 -1
- package/dist/unstable/eventlog/index.d.ts +240 -0
- package/dist/unstable/eventlog/index.d.ts.map +1 -1
- package/dist/unstable/eventlog/index.js +240 -0
- package/dist/unstable/eventlog/index.js.map +1 -1
- package/dist/unstable/http/Cookies.d.ts +156 -77
- package/dist/unstable/http/Cookies.d.ts.map +1 -1
- package/dist/unstable/http/Cookies.js +93 -39
- package/dist/unstable/http/Cookies.js.map +1 -1
- package/dist/unstable/http/Etag.d.ts +40 -7
- package/dist/unstable/http/Etag.d.ts.map +1 -1
- package/dist/unstable/http/Etag.js +27 -4
- package/dist/unstable/http/Etag.js.map +1 -1
- package/dist/unstable/http/FetchHttpClient.d.ts +29 -3
- package/dist/unstable/http/FetchHttpClient.d.ts.map +1 -1
- package/dist/unstable/http/FetchHttpClient.js +33 -4
- package/dist/unstable/http/FetchHttpClient.js.map +1 -1
- package/dist/unstable/http/FindMyWay.d.ts +1 -1
- package/dist/unstable/http/FindMyWay.js +1 -1
- package/dist/unstable/http/Headers.d.ts +182 -36
- package/dist/unstable/http/Headers.d.ts.map +1 -1
- package/dist/unstable/http/Headers.js +86 -16
- package/dist/unstable/http/Headers.js.map +1 -1
- package/dist/unstable/http/HttpBody.d.ts +114 -26
- package/dist/unstable/http/HttpBody.d.ts.map +1 -1
- package/dist/unstable/http/HttpBody.js +98 -20
- package/dist/unstable/http/HttpBody.js.map +1 -1
- package/dist/unstable/http/HttpClient.d.ts +204 -96
- package/dist/unstable/http/HttpClient.d.ts.map +1 -1
- package/dist/unstable/http/HttpClient.js +85 -38
- package/dist/unstable/http/HttpClient.js.map +1 -1
- package/dist/unstable/http/HttpClientError.d.ts +68 -12
- package/dist/unstable/http/HttpClientError.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientError.js +71 -9
- package/dist/unstable/http/HttpClientError.js.map +1 -1
- package/dist/unstable/http/HttpClientRequest.d.ts +318 -100
- package/dist/unstable/http/HttpClientRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientRequest.js +151 -45
- package/dist/unstable/http/HttpClientRequest.js.map +1 -1
- package/dist/unstable/http/HttpClientResponse.d.ts +59 -16
- package/dist/unstable/http/HttpClientResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpClientResponse.js +44 -11
- package/dist/unstable/http/HttpClientResponse.js.map +1 -1
- package/dist/unstable/http/HttpEffect.d.ts +42 -16
- package/dist/unstable/http/HttpEffect.d.ts.map +1 -1
- package/dist/unstable/http/HttpEffect.js +33 -13
- package/dist/unstable/http/HttpEffect.js.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.d.ts +48 -7
- package/dist/unstable/http/HttpIncomingMessage.d.ts.map +1 -1
- package/dist/unstable/http/HttpIncomingMessage.js +45 -6
- package/dist/unstable/http/HttpIncomingMessage.js.map +1 -1
- package/dist/unstable/http/HttpMethod.d.ts +38 -6
- package/dist/unstable/http/HttpMethod.d.ts.map +1 -1
- package/dist/unstable/http/HttpMethod.js +27 -2
- package/dist/unstable/http/HttpMethod.js.map +1 -1
- package/dist/unstable/http/HttpMiddleware.d.ts +38 -11
- package/dist/unstable/http/HttpMiddleware.d.ts.map +1 -1
- package/dist/unstable/http/HttpMiddleware.js +52 -10
- package/dist/unstable/http/HttpMiddleware.js.map +1 -1
- package/dist/unstable/http/HttpPlatform.d.ts +34 -3
- package/dist/unstable/http/HttpPlatform.d.ts.map +1 -1
- package/dist/unstable/http/HttpPlatform.js +34 -3
- package/dist/unstable/http/HttpPlatform.js.map +1 -1
- package/dist/unstable/http/HttpRouter.d.ts +209 -62
- package/dist/unstable/http/HttpRouter.d.ts.map +1 -1
- package/dist/unstable/http/HttpRouter.js +136 -41
- package/dist/unstable/http/HttpRouter.js.map +1 -1
- package/dist/unstable/http/HttpServer.d.ts +151 -22
- package/dist/unstable/http/HttpServer.d.ts.map +1 -1
- package/dist/unstable/http/HttpServer.js +76 -11
- package/dist/unstable/http/HttpServer.js.map +1 -1
- package/dist/unstable/http/HttpServerError.d.ts +93 -10
- package/dist/unstable/http/HttpServerError.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerError.js +85 -8
- package/dist/unstable/http/HttpServerError.js.map +1 -1
- package/dist/unstable/http/HttpServerRequest.d.ts +125 -21
- package/dist/unstable/http/HttpServerRequest.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRequest.js +101 -20
- package/dist/unstable/http/HttpServerRequest.js.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.d.ts +32 -6
- package/dist/unstable/http/HttpServerRespondable.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerRespondable.js +43 -5
- package/dist/unstable/http/HttpServerRespondable.js.map +1 -1
- package/dist/unstable/http/HttpServerResponse.d.ts +391 -67
- package/dist/unstable/http/HttpServerResponse.d.ts.map +1 -1
- package/dist/unstable/http/HttpServerResponse.js +205 -33
- package/dist/unstable/http/HttpServerResponse.js.map +1 -1
- package/dist/unstable/http/HttpStaticServer.d.ts +24 -8
- package/dist/unstable/http/HttpStaticServer.d.ts.map +1 -1
- package/dist/unstable/http/HttpStaticServer.js +24 -8
- package/dist/unstable/http/HttpStaticServer.js.map +1 -1
- package/dist/unstable/http/HttpTraceContext.d.ts +53 -6
- package/dist/unstable/http/HttpTraceContext.d.ts.map +1 -1
- package/dist/unstable/http/HttpTraceContext.js +47 -5
- package/dist/unstable/http/HttpTraceContext.js.map +1 -1
- package/dist/unstable/http/Multipart.d.ts +179 -28
- package/dist/unstable/http/Multipart.d.ts.map +1 -1
- package/dist/unstable/http/Multipart.js +131 -19
- package/dist/unstable/http/Multipart.js.map +1 -1
- package/dist/unstable/http/Multipasta/HeadersParser.d.ts +1 -1
- package/dist/unstable/http/Multipasta/HeadersParser.js +1 -1
- package/dist/unstable/http/Multipasta/Node.d.ts +1 -1
- package/dist/unstable/http/Multipasta/Node.js +1 -1
- package/dist/unstable/http/Multipasta/Search.d.ts +1 -1
- package/dist/unstable/http/Multipasta/Search.js +1 -1
- package/dist/unstable/http/Multipasta/Web.d.ts +1 -1
- package/dist/unstable/http/Multipasta/Web.js +1 -1
- package/dist/unstable/http/Multipasta.d.ts +1 -1
- package/dist/unstable/http/Multipasta.js +1 -1
- package/dist/unstable/http/Template.d.ts +53 -1
- package/dist/unstable/http/Template.d.ts.map +1 -1
- package/dist/unstable/http/Template.js +26 -0
- package/dist/unstable/http/Template.js.map +1 -1
- package/dist/unstable/http/Url.d.ts +70 -56
- package/dist/unstable/http/Url.d.ts.map +1 -1
- package/dist/unstable/http/Url.js +35 -21
- package/dist/unstable/http/Url.js.map +1 -1
- package/dist/unstable/http/UrlParams.d.ts +237 -51
- package/dist/unstable/http/UrlParams.d.ts.map +1 -1
- package/dist/unstable/http/UrlParams.js +120 -25
- package/dist/unstable/http/UrlParams.js.map +1 -1
- package/dist/unstable/http/index.d.ts +452 -0
- package/dist/unstable/http/index.d.ts.map +1 -1
- package/dist/unstable/http/index.js +452 -0
- package/dist/unstable/http/index.js.map +1 -1
- package/dist/unstable/httpapi/HttpApi.d.ts +49 -14
- package/dist/unstable/httpapi/HttpApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApi.js +14 -8
- package/dist/unstable/httpapi/HttpApi.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts +54 -16
- package/dist/unstable/httpapi/HttpApiBuilder.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiBuilder.js +44 -6
- package/dist/unstable/httpapi/HttpApiBuilder.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.d.ts +57 -15
- package/dist/unstable/httpapi/HttpApiClient.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiClient.js +42 -6
- package/dist/unstable/httpapi/HttpApiClient.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts +214 -59
- package/dist/unstable/httpapi/HttpApiEndpoint.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiEndpoint.js +53 -9
- package/dist/unstable/httpapi/HttpApiEndpoint.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts +81 -1
- package/dist/unstable/httpapi/HttpApiError.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiError.js +98 -1
- package/dist/unstable/httpapi/HttpApiError.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.d.ts +87 -20
- package/dist/unstable/httpapi/HttpApiGroup.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiGroup.js +5 -2
- package/dist/unstable/httpapi/HttpApiGroup.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts +113 -22
- package/dist/unstable/httpapi/HttpApiMiddleware.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiMiddleware.js +49 -5
- package/dist/unstable/httpapi/HttpApiMiddleware.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.d.ts +19 -4
- package/dist/unstable/httpapi/HttpApiScalar.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiScalar.js +32 -2
- package/dist/unstable/httpapi/HttpApiScalar.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.d.ts +86 -38
- package/dist/unstable/httpapi/HttpApiSchema.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSchema.js +59 -35
- package/dist/unstable/httpapi/HttpApiSchema.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts +73 -17
- package/dist/unstable/httpapi/HttpApiSecurity.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSecurity.js +38 -5
- package/dist/unstable/httpapi/HttpApiSecurity.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiSwagger.d.ts +4 -3
- package/dist/unstable/httpapi/HttpApiSwagger.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiSwagger.js +23 -3
- package/dist/unstable/httpapi/HttpApiSwagger.js.map +1 -1
- package/dist/unstable/httpapi/HttpApiTest.d.ts +6 -1
- package/dist/unstable/httpapi/HttpApiTest.d.ts.map +1 -1
- package/dist/unstable/httpapi/HttpApiTest.js +26 -1
- package/dist/unstable/httpapi/HttpApiTest.js.map +1 -1
- package/dist/unstable/httpapi/OpenApi.d.ts +86 -15
- package/dist/unstable/httpapi/OpenApi.d.ts.map +1 -1
- package/dist/unstable/httpapi/OpenApi.js +73 -15
- package/dist/unstable/httpapi/OpenApi.js.map +1 -1
- package/dist/unstable/httpapi/index.d.ts +310 -25
- package/dist/unstable/httpapi/index.d.ts.map +1 -1
- package/dist/unstable/httpapi/index.js +310 -25
- package/dist/unstable/httpapi/index.js.map +1 -1
- package/dist/unstable/observability/Otlp.d.ts +33 -3
- package/dist/unstable/observability/Otlp.d.ts.map +1 -1
- package/dist/unstable/observability/Otlp.js +14 -3
- package/dist/unstable/observability/Otlp.js.map +1 -1
- package/dist/unstable/observability/OtlpExporter.d.ts +8 -1
- package/dist/unstable/observability/OtlpExporter.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpExporter.js +32 -1
- package/dist/unstable/observability/OtlpExporter.js.map +1 -1
- package/dist/unstable/observability/OtlpLogger.d.ts +15 -2
- package/dist/unstable/observability/OtlpLogger.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpLogger.js +29 -2
- package/dist/unstable/observability/OtlpLogger.js.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.d.ts +17 -5
- package/dist/unstable/observability/OtlpMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpMetrics.js +32 -2
- package/dist/unstable/observability/OtlpMetrics.js.map +1 -1
- package/dist/unstable/observability/OtlpResource.d.ts +49 -12
- package/dist/unstable/observability/OtlpResource.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpResource.js +47 -5
- package/dist/unstable/observability/OtlpResource.js.map +1 -1
- package/dist/unstable/observability/OtlpSerialization.d.ts +28 -3
- package/dist/unstable/observability/OtlpSerialization.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpSerialization.js +28 -3
- package/dist/unstable/observability/OtlpSerialization.js.map +1 -1
- package/dist/unstable/observability/OtlpTracer.d.ts +19 -2
- package/dist/unstable/observability/OtlpTracer.d.ts.map +1 -1
- package/dist/unstable/observability/OtlpTracer.js +32 -2
- package/dist/unstable/observability/OtlpTracer.js.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.d.ts +36 -16
- package/dist/unstable/observability/PrometheusMetrics.d.ts.map +1 -1
- package/dist/unstable/observability/PrometheusMetrics.js +9 -7
- package/dist/unstable/observability/PrometheusMetrics.js.map +1 -1
- package/dist/unstable/observability/index.d.ts +160 -3
- package/dist/unstable/observability/index.d.ts.map +1 -1
- package/dist/unstable/observability/index.js +160 -3
- package/dist/unstable/observability/index.js.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.d.ts +93 -18
- package/dist/unstable/persistence/KeyValueStore.d.ts.map +1 -1
- package/dist/unstable/persistence/KeyValueStore.js +81 -21
- package/dist/unstable/persistence/KeyValueStore.js.map +1 -1
- package/dist/unstable/persistence/Persistable.d.ts +76 -15
- package/dist/unstable/persistence/Persistable.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistable.js +22 -5
- package/dist/unstable/persistence/Persistable.js.map +1 -1
- package/dist/unstable/persistence/PersistedCache.d.ts +27 -2
- package/dist/unstable/persistence/PersistedCache.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedCache.js +24 -1
- package/dist/unstable/persistence/PersistedCache.js.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.d.ts +73 -16
- package/dist/unstable/persistence/PersistedQueue.d.ts.map +1 -1
- package/dist/unstable/persistence/PersistedQueue.js +60 -13
- package/dist/unstable/persistence/PersistedQueue.js.map +1 -1
- package/dist/unstable/persistence/Persistence.d.ts +98 -16
- package/dist/unstable/persistence/Persistence.d.ts.map +1 -1
- package/dist/unstable/persistence/Persistence.js +91 -14
- package/dist/unstable/persistence/Persistence.js.map +1 -1
- package/dist/unstable/persistence/RateLimiter.d.ts +101 -21
- package/dist/unstable/persistence/RateLimiter.d.ts.map +1 -1
- package/dist/unstable/persistence/RateLimiter.js +85 -16
- package/dist/unstable/persistence/RateLimiter.js.map +1 -1
- package/dist/unstable/persistence/Redis.d.ts +26 -5
- package/dist/unstable/persistence/Redis.d.ts.map +1 -1
- package/dist/unstable/persistence/Redis.js +36 -4
- package/dist/unstable/persistence/Redis.js.map +1 -1
- package/dist/unstable/persistence/index.d.ts +147 -0
- package/dist/unstable/persistence/index.d.ts.map +1 -1
- package/dist/unstable/persistence/index.js +147 -0
- package/dist/unstable/persistence/index.js.map +1 -1
- package/dist/unstable/process/ChildProcess.d.ts +87 -64
- package/dist/unstable/process/ChildProcess.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcess.js +25 -18
- package/dist/unstable/process/ChildProcess.js.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.d.ts +23 -12
- package/dist/unstable/process/ChildProcessSpawner.d.ts.map +1 -1
- package/dist/unstable/process/ChildProcessSpawner.js +11 -6
- package/dist/unstable/process/ChildProcessSpawner.js.map +1 -1
- package/dist/unstable/process/index.d.ts +2 -1
- package/dist/unstable/process/index.d.ts.map +1 -1
- package/dist/unstable/process/index.js +2 -1
- package/dist/unstable/process/index.js.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.d.ts +198 -59
- package/dist/unstable/reactivity/AsyncResult.d.ts.map +1 -1
- package/dist/unstable/reactivity/AsyncResult.js +121 -36
- package/dist/unstable/reactivity/AsyncResult.js.map +1 -1
- package/dist/unstable/reactivity/Atom.d.ts +544 -130
- package/dist/unstable/reactivity/Atom.d.ts.map +1 -1
- package/dist/unstable/reactivity/Atom.js +252 -58
- package/dist/unstable/reactivity/Atom.js.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.d.ts +41 -2
- package/dist/unstable/reactivity/AtomHttpApi.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomHttpApi.js +35 -1
- package/dist/unstable/reactivity/AtomHttpApi.js.map +1 -1
- package/dist/unstable/reactivity/AtomRef.d.ts +51 -7
- package/dist/unstable/reactivity/AtomRef.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRef.js +29 -3
- package/dist/unstable/reactivity/AtomRef.js.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.d.ts +135 -21
- package/dist/unstable/reactivity/AtomRegistry.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRegistry.js +69 -10
- package/dist/unstable/reactivity/AtomRegistry.js.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.d.ts +36 -2
- package/dist/unstable/reactivity/AtomRpc.d.ts.map +1 -1
- package/dist/unstable/reactivity/AtomRpc.js +29 -1
- package/dist/unstable/reactivity/AtomRpc.js.map +1 -1
- package/dist/unstable/reactivity/Hydration.d.ts +28 -5
- package/dist/unstable/reactivity/Hydration.d.ts.map +1 -1
- package/dist/unstable/reactivity/Hydration.js +35 -3
- package/dist/unstable/reactivity/Hydration.js.map +1 -1
- package/dist/unstable/reactivity/Reactivity.d.ts +94 -13
- package/dist/unstable/reactivity/Reactivity.d.ts.map +1 -1
- package/dist/unstable/reactivity/Reactivity.js +60 -7
- package/dist/unstable/reactivity/Reactivity.js.map +1 -1
- package/dist/unstable/reactivity/index.d.ts +167 -0
- package/dist/unstable/reactivity/index.d.ts.map +1 -1
- package/dist/unstable/reactivity/index.js +167 -0
- package/dist/unstable/reactivity/index.js.map +1 -1
- package/dist/unstable/rpc/Rpc.d.ts +254 -56
- package/dist/unstable/rpc/Rpc.d.ts.map +1 -1
- package/dist/unstable/rpc/Rpc.js +44 -11
- package/dist/unstable/rpc/Rpc.js.map +1 -1
- package/dist/unstable/rpc/RpcClient.d.ts +80 -19
- package/dist/unstable/rpc/RpcClient.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClient.js +52 -12
- package/dist/unstable/rpc/RpcClient.js.map +1 -1
- package/dist/unstable/rpc/RpcClientError.d.ts +26 -2
- package/dist/unstable/rpc/RpcClientError.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcClientError.js +26 -2
- package/dist/unstable/rpc/RpcClientError.js.map +1 -1
- package/dist/unstable/rpc/RpcGroup.d.ts +51 -8
- package/dist/unstable/rpc/RpcGroup.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcGroup.js +3 -1
- package/dist/unstable/rpc/RpcGroup.js.map +1 -1
- package/dist/unstable/rpc/RpcMessage.d.ts +128 -32
- package/dist/unstable/rpc/RpcMessage.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcMessage.js +23 -7
- package/dist/unstable/rpc/RpcMessage.js.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.d.ts +100 -20
- package/dist/unstable/rpc/RpcMiddleware.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcMiddleware.js +39 -3
- package/dist/unstable/rpc/RpcMiddleware.js.map +1 -1
- package/dist/unstable/rpc/RpcSchema.d.ts +38 -4
- package/dist/unstable/rpc/RpcSchema.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSchema.js +34 -3
- package/dist/unstable/rpc/RpcSchema.js.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.d.ts +60 -13
- package/dist/unstable/rpc/RpcSerialization.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcSerialization.js +56 -12
- package/dist/unstable/rpc/RpcSerialization.js.map +1 -1
- package/dist/unstable/rpc/RpcServer.d.ts +73 -23
- package/dist/unstable/rpc/RpcServer.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcServer.js +69 -22
- package/dist/unstable/rpc/RpcServer.js.map +1 -1
- package/dist/unstable/rpc/RpcTest.d.ts +20 -1
- package/dist/unstable/rpc/RpcTest.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcTest.js +20 -1
- package/dist/unstable/rpc/RpcTest.js.map +1 -1
- package/dist/unstable/rpc/RpcWorker.d.ts +39 -6
- package/dist/unstable/rpc/RpcWorker.d.ts.map +1 -1
- package/dist/unstable/rpc/RpcWorker.js +16 -4
- package/dist/unstable/rpc/RpcWorker.js.map +1 -1
- package/dist/unstable/rpc/Utils.d.ts +10 -0
- package/dist/unstable/rpc/Utils.d.ts.map +1 -1
- package/dist/unstable/rpc/Utils.js +10 -0
- package/dist/unstable/rpc/Utils.js.map +1 -1
- package/dist/unstable/rpc/index.d.ts +272 -0
- package/dist/unstable/rpc/index.d.ts.map +1 -1
- package/dist/unstable/rpc/index.js +272 -0
- package/dist/unstable/rpc/index.js.map +1 -1
- package/dist/unstable/schema/Model.d.ts +192 -59
- package/dist/unstable/schema/Model.d.ts.map +1 -1
- package/dist/unstable/schema/Model.js +122 -38
- package/dist/unstable/schema/Model.js.map +1 -1
- package/dist/unstable/schema/VariantSchema.d.ts +101 -24
- package/dist/unstable/schema/VariantSchema.d.ts.map +1 -1
- package/dist/unstable/schema/VariantSchema.js +22 -6
- package/dist/unstable/schema/VariantSchema.js.map +1 -1
- package/dist/unstable/schema/index.d.ts +37 -0
- package/dist/unstable/schema/index.d.ts.map +1 -1
- package/dist/unstable/schema/index.js +37 -0
- package/dist/unstable/schema/index.js.map +1 -1
- package/dist/unstable/socket/Socket.d.ts +168 -34
- package/dist/unstable/socket/Socket.d.ts.map +1 -1
- package/dist/unstable/socket/Socket.js +124 -28
- package/dist/unstable/socket/Socket.js.map +1 -1
- package/dist/unstable/socket/SocketServer.d.ts +58 -10
- package/dist/unstable/socket/SocketServer.d.ts.map +1 -1
- package/dist/unstable/socket/SocketServer.js +43 -5
- package/dist/unstable/socket/SocketServer.js.map +1 -1
- package/dist/unstable/socket/index.d.ts +44 -0
- package/dist/unstable/socket/index.d.ts.map +1 -1
- package/dist/unstable/socket/index.js +44 -0
- package/dist/unstable/socket/index.js.map +1 -1
- package/dist/unstable/sql/Migrator.d.ts +40 -9
- package/dist/unstable/sql/Migrator.d.ts.map +1 -1
- package/dist/unstable/sql/Migrator.js +45 -5
- package/dist/unstable/sql/Migrator.js.map +1 -1
- package/dist/unstable/sql/SqlClient.d.ts +38 -2
- package/dist/unstable/sql/SqlClient.d.ts.map +1 -1
- package/dist/unstable/sql/SqlClient.js +40 -1
- package/dist/unstable/sql/SqlClient.js.map +1 -1
- package/dist/unstable/sql/SqlConnection.d.ts +34 -3
- package/dist/unstable/sql/SqlConnection.d.ts.map +1 -1
- package/dist/unstable/sql/SqlConnection.js +22 -0
- package/dist/unstable/sql/SqlConnection.js.map +1 -1
- package/dist/unstable/sql/SqlError.d.ts +117 -0
- package/dist/unstable/sql/SqlError.d.ts.map +1 -1
- package/dist/unstable/sql/SqlError.js +131 -0
- package/dist/unstable/sql/SqlError.js.map +1 -1
- package/dist/unstable/sql/SqlModel.d.ts +25 -5
- package/dist/unstable/sql/SqlModel.d.ts.map +1 -1
- package/dist/unstable/sql/SqlModel.js +8 -4
- package/dist/unstable/sql/SqlModel.js.map +1 -1
- package/dist/unstable/sql/SqlResolver.d.ts +56 -13
- package/dist/unstable/sql/SqlResolver.d.ts.map +1 -1
- package/dist/unstable/sql/SqlResolver.js +44 -10
- package/dist/unstable/sql/SqlResolver.js.map +1 -1
- package/dist/unstable/sql/SqlSchema.d.ts +29 -8
- package/dist/unstable/sql/SqlSchema.d.ts.map +1 -1
- package/dist/unstable/sql/SqlSchema.js +29 -8
- package/dist/unstable/sql/SqlSchema.js.map +1 -1
- package/dist/unstable/sql/SqlStream.d.ts +4 -0
- package/dist/unstable/sql/SqlStream.d.ts.map +1 -1
- package/dist/unstable/sql/SqlStream.js +24 -0
- package/dist/unstable/sql/SqlStream.js.map +1 -1
- package/dist/unstable/sql/Statement.d.ts +151 -24
- package/dist/unstable/sql/Statement.d.ts.map +1 -1
- package/dist/unstable/sql/Statement.js +91 -6
- package/dist/unstable/sql/Statement.js.map +1 -1
- package/dist/unstable/sql/index.d.ts +179 -1
- package/dist/unstable/sql/index.d.ts.map +1 -1
- package/dist/unstable/sql/index.js +179 -1
- package/dist/unstable/sql/index.js.map +1 -1
- package/dist/unstable/workers/Transferable.d.ts +72 -20
- package/dist/unstable/workers/Transferable.d.ts.map +1 -1
- package/dist/unstable/workers/Transferable.js +57 -14
- package/dist/unstable/workers/Transferable.js.map +1 -1
- package/dist/unstable/workers/Worker.d.ts +61 -8
- package/dist/unstable/workers/Worker.d.ts.map +1 -1
- package/dist/unstable/workers/Worker.js +44 -4
- package/dist/unstable/workers/Worker.js.map +1 -1
- package/dist/unstable/workers/WorkerError.d.ts +31 -9
- package/dist/unstable/workers/WorkerError.d.ts.map +1 -1
- package/dist/unstable/workers/WorkerError.js +44 -7
- package/dist/unstable/workers/WorkerError.js.map +1 -1
- package/dist/unstable/workers/WorkerRunner.d.ts +32 -3
- package/dist/unstable/workers/WorkerRunner.d.ts.map +1 -1
- package/dist/unstable/workers/WorkerRunner.js +24 -1
- package/dist/unstable/workers/WorkerRunner.js.map +1 -1
- package/dist/unstable/workers/index.d.ts +81 -1
- package/dist/unstable/workers/index.d.ts.map +1 -1
- package/dist/unstable/workers/index.js +81 -1
- package/dist/unstable/workers/index.js.map +1 -1
- package/dist/unstable/workflow/Activity.d.ts +61 -10
- package/dist/unstable/workflow/Activity.d.ts.map +1 -1
- package/dist/unstable/workflow/Activity.js +20 -5
- package/dist/unstable/workflow/Activity.js.map +1 -1
- package/dist/unstable/workflow/DurableClock.d.ts +12 -3
- package/dist/unstable/workflow/DurableClock.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableClock.js +22 -2
- package/dist/unstable/workflow/DurableClock.js.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.d.ts +128 -31
- package/dist/unstable/workflow/DurableDeferred.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableDeferred.js +77 -13
- package/dist/unstable/workflow/DurableDeferred.js.map +1 -1
- package/dist/unstable/workflow/DurableQueue.d.ts +33 -8
- package/dist/unstable/workflow/DurableQueue.d.ts.map +1 -1
- package/dist/unstable/workflow/DurableQueue.js +26 -6
- package/dist/unstable/workflow/DurableQueue.js.map +1 -1
- package/dist/unstable/workflow/Workflow.d.ts +102 -31
- package/dist/unstable/workflow/Workflow.d.ts.map +1 -1
- package/dist/unstable/workflow/Workflow.js +75 -19
- package/dist/unstable/workflow/Workflow.js.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.d.ts +40 -5
- package/dist/unstable/workflow/WorkflowEngine.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowEngine.js +16 -4
- package/dist/unstable/workflow/WorkflowEngine.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxy.d.ts +40 -12
- package/dist/unstable/workflow/WorkflowProxy.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowProxy.js +8 -12
- package/dist/unstable/workflow/WorkflowProxy.js.map +1 -1
- package/dist/unstable/workflow/WorkflowProxyServer.d.ts +37 -2
- package/dist/unstable/workflow/WorkflowProxyServer.d.ts.map +1 -1
- package/dist/unstable/workflow/WorkflowProxyServer.js +12 -6
- package/dist/unstable/workflow/WorkflowProxyServer.js.map +1 -1
- package/dist/unstable/workflow/index.d.ts +160 -0
- package/dist/unstable/workflow/index.d.ts.map +1 -1
- package/dist/unstable/workflow/index.js +160 -0
- package/dist/unstable/workflow/index.js.map +1 -1
- package/package.json +11 -11
- package/src/Array.ts +151 -106
- package/src/BigDecimal.ts +620 -553
- package/src/BigInt.ts +342 -274
- package/src/Boolean.ts +189 -156
- package/src/Brand.ts +30 -5
- package/src/Cache.ts +334 -167
- package/src/Cause.ts +84 -73
- package/src/Channel.ts +1639 -667
- package/src/ChannelSchema.ts +137 -12
- package/src/Chunk.ts +575 -429
- package/src/Clock.ts +16 -9
- package/src/Combiner.ts +11 -5
- package/src/Config.ts +80 -68
- package/src/ConfigProvider.ts +33 -32
- package/src/Console.ts +88 -58
- package/src/Context.ts +401 -190
- package/src/Cron.ts +109 -48
- package/src/Crypto.ts +327 -0
- package/src/Data.ts +9 -3
- package/src/DateTime.ts +893 -464
- package/src/Deferred.ts +367 -175
- package/src/Differ.ts +44 -2
- package/src/Duration.ts +333 -186
- package/src/Effect.ts +2201 -2289
- package/src/Effectable.ts +38 -3
- package/src/Encoding.ts +78 -28
- package/src/Equal.ts +4 -3
- package/src/Equivalence.ts +18 -24
- package/src/ErrorReporter.ts +66 -82
- package/src/ExecutionPlan.ts +106 -12
- package/src/Exit.ts +6 -5
- package/src/Fiber.ts +71 -40
- package/src/FiberHandle.ts +157 -57
- package/src/FiberMap.ts +328 -163
- package/src/FiberSet.ts +130 -52
- package/src/FileSystem.ts +104 -74
- package/src/Filter.ts +166 -88
- package/src/Formatter.ts +4 -70
- package/src/Function.ts +218 -151
- package/src/Graph.ts +714 -415
- package/src/HKT.ts +29 -13
- package/src/Hash.ts +35 -24
- package/src/HashMap.ts +540 -388
- package/src/HashRing.ts +111 -34
- package/src/HashSet.ts +239 -153
- package/src/Inspectable.ts +30 -17
- package/src/Iterable.ts +336 -222
- package/src/JsonPatch.ts +13 -10
- package/src/JsonPointer.ts +13 -11
- package/src/JsonSchema.ts +16 -0
- package/src/Latch.ts +97 -26
- package/src/Layer.ts +547 -445
- package/src/LayerMap.ts +99 -26
- package/src/LogLevel.ts +92 -131
- package/src/Logger.ts +365 -297
- package/src/ManagedRuntime.ts +78 -19
- package/src/Match.ts +135 -161
- package/src/Metric.ts +362 -313
- package/src/MutableHashMap.ts +202 -127
- package/src/MutableHashSet.ts +120 -52
- package/src/MutableList.ts +157 -100
- package/src/MutableRef.ts +129 -90
- package/src/Newtype.ts +15 -2
- package/src/NonEmptyIterable.ts +38 -48
- package/src/Number.ts +261 -205
- package/src/Optic.ts +6 -7
- package/src/Option.ts +133 -156
- package/src/Order.ts +6 -6
- package/src/Ordering.ts +56 -45
- package/src/PartitionedSemaphore.ts +225 -40
- package/src/Path.ts +77 -13
- package/src/Pipeable.ts +82 -24
- package/src/PlatformError.ts +74 -6
- package/src/Pool.ts +94 -31
- package/src/Predicate.ts +17 -24
- package/src/PrimaryKey.ts +11 -3
- package/src/PubSub.ts +385 -309
- package/src/Pull.ts +94 -25
- package/src/Queue.ts +303 -184
- package/src/Random.ts +69 -93
- package/src/RcMap.ts +151 -141
- package/src/RcRef.ts +68 -32
- package/src/Record.ts +282 -137
- package/src/Redactable.ts +7 -5
- package/src/Redacted.ts +63 -34
- package/src/Reducer.ts +3 -1
- package/src/Ref.ts +173 -134
- package/src/References.ts +73 -31
- package/src/RegExp.ts +12 -6
- package/src/Request.ts +159 -34
- package/src/RequestResolver.ts +278 -121
- package/src/Resource.ts +45 -7
- package/src/Result.ts +137 -153
- package/src/Runtime.ts +42 -21
- package/src/Schedule.ts +585 -613
- package/src/Scheduler.ts +44 -7
- package/src/Schema.ts +1309 -615
- package/src/SchemaAST.ts +123 -93
- package/src/SchemaGetter.ts +52 -37
- package/src/SchemaIssue.ts +19 -24
- package/src/SchemaParser.ts +306 -85
- package/src/SchemaRepresentation.ts +89 -77
- package/src/SchemaTransformation.ts +97 -46
- package/src/SchemaUtils.ts +24 -1
- package/src/Scope.ts +107 -65
- package/src/ScopedCache.ts +195 -59
- package/src/ScopedRef.ts +28 -8
- package/src/Semaphore.ts +61 -37
- package/src/Sink.ts +461 -206
- package/src/Stdio.ts +43 -6
- package/src/Stream.ts +2361 -1613
- package/src/String.ts +174 -97
- package/src/Struct.ts +20 -18
- package/src/SubscriptionRef.ts +309 -204
- package/src/Symbol.ts +13 -5
- package/src/SynchronizedRef.ts +278 -62
- package/src/Take.ts +26 -2
- package/src/Terminal.ts +40 -7
- package/src/Tracer.ts +233 -59
- package/src/Trie.ts +280 -245
- package/src/Tuple.ts +34 -32
- package/src/TxChunk.ts +200 -155
- package/src/TxDeferred.ts +43 -29
- package/src/TxHashMap.ts +370 -231
- package/src/TxHashSet.ts +253 -159
- package/src/TxPriorityQueue.ts +97 -65
- package/src/TxPubSub.ts +77 -49
- package/src/TxQueue.ts +277 -242
- package/src/TxReentrantLock.ts +70 -47
- package/src/TxRef.ts +69 -40
- package/src/TxSemaphore.ts +101 -115
- package/src/TxSubscriptionRef.ts +74 -50
- package/src/Types.ts +31 -34
- package/src/UndefinedOr.ts +62 -25
- package/src/Unify.ts +72 -117
- package/src/Utils.ts +5 -2
- package/src/index.ts +1976 -420
- package/src/internal/schema/schema.ts +1 -1
- package/src/testing/FastCheck.ts +9 -6
- package/src/testing/TestClock.ts +63 -35
- package/src/testing/TestConsole.ts +54 -36
- package/src/testing/TestSchema.ts +10 -8
- package/src/testing/index.ts +34 -0
- package/src/unstable/ai/AiError.ts +195 -137
- package/src/unstable/ai/AnthropicStructuredOutput.ts +2 -2
- package/src/unstable/ai/Chat.ts +68 -43
- package/src/unstable/ai/EmbeddingModel.ts +12 -11
- package/src/unstable/ai/IdGenerator.ts +28 -18
- package/src/unstable/ai/LanguageModel.ts +35 -27
- package/src/unstable/ai/McpSchema.ts +342 -119
- package/src/unstable/ai/McpServer.ts +79 -20
- package/src/unstable/ai/Model.ts +10 -12
- package/src/unstable/ai/OpenAiStructuredOutput.ts +2 -2
- package/src/unstable/ai/Prompt.ts +216 -192
- package/src/unstable/ai/Response.ts +179 -167
- package/src/unstable/ai/ResponseIdTracker.ts +43 -4
- package/src/unstable/ai/Telemetry.ts +43 -33
- package/src/unstable/ai/Tokenizer.ts +14 -9
- package/src/unstable/ai/Tool.ts +168 -97
- package/src/unstable/ai/Toolkit.ts +51 -46
- package/src/unstable/ai/index.ts +121 -29
- package/src/unstable/cli/Argument.ts +226 -134
- package/src/unstable/cli/CliError.ts +96 -26
- package/src/unstable/cli/CliOutput.ts +48 -19
- package/src/unstable/cli/Command.ts +196 -115
- package/src/unstable/cli/Completions.ts +7 -7
- package/src/unstable/cli/Flag.ts +235 -142
- package/src/unstable/cli/GlobalFlag.ts +41 -13
- package/src/unstable/cli/HelpDoc.ts +39 -14
- package/src/unstable/cli/Param.ts +395 -260
- package/src/unstable/cli/Primitive.ts +79 -42
- package/src/unstable/cli/Prompt.ts +207 -59
- package/src/unstable/cli/index.ts +205 -6
- package/src/unstable/cli/internal/ansi.ts +13 -0
- package/src/unstable/cli/internal/command.ts +5 -1
- package/src/unstable/cli/internal/config.ts +3 -0
- package/src/unstable/cli/internal/lexer.ts +11 -0
- package/src/unstable/cli/internal/parser.ts +0 -1
- package/src/unstable/cluster/ClusterCron.ts +35 -1
- package/src/unstable/cluster/ClusterError.ts +56 -7
- package/src/unstable/cluster/ClusterMetrics.ts +39 -5
- package/src/unstable/cluster/ClusterSchema.ts +61 -8
- package/src/unstable/cluster/ClusterWorkflowEngine.ts +35 -2
- package/src/unstable/cluster/DeliverAt.ts +39 -4
- package/src/unstable/cluster/Entity.ts +106 -16
- package/src/unstable/cluster/EntityAddress.ts +30 -2
- package/src/unstable/cluster/EntityId.ts +18 -3
- package/src/unstable/cluster/EntityProxy.ts +42 -14
- package/src/unstable/cluster/EntityProxyServer.ts +45 -8
- package/src/unstable/cluster/EntityResource.ts +43 -6
- package/src/unstable/cluster/EntityType.ts +27 -3
- package/src/unstable/cluster/Envelope.ts +128 -23
- package/src/unstable/cluster/HttpRunner.ts +88 -13
- package/src/unstable/cluster/K8sHttpClient.ts +49 -6
- package/src/unstable/cluster/MachineId.ts +24 -3
- package/src/unstable/cluster/Message.ts +102 -13
- package/src/unstable/cluster/MessageStorage.ts +126 -21
- package/src/unstable/cluster/Reply.ts +101 -12
- package/src/unstable/cluster/Runner.ts +47 -17
- package/src/unstable/cluster/RunnerAddress.ts +34 -2
- package/src/unstable/cluster/RunnerHealth.ts +40 -12
- package/src/unstable/cluster/RunnerServer.ts +31 -4
- package/src/unstable/cluster/RunnerStorage.ts +42 -5
- package/src/unstable/cluster/Runners.ts +76 -13
- package/src/unstable/cluster/ShardId.ts +53 -5
- package/src/unstable/cluster/Sharding.ts +35 -4
- package/src/unstable/cluster/ShardingConfig.ts +75 -10
- package/src/unstable/cluster/ShardingRegistrationEvent.ts +31 -7
- package/src/unstable/cluster/SingleRunner.ts +23 -1
- package/src/unstable/cluster/Singleton.ts +15 -1
- package/src/unstable/cluster/SingletonAddress.ts +21 -1
- package/src/unstable/cluster/Snowflake.ts +90 -19
- package/src/unstable/cluster/SocketRunner.ts +29 -2
- package/src/unstable/cluster/SqlMessageStorage.ts +27 -3
- package/src/unstable/cluster/SqlRunnerStorage.ts +46 -7
- package/src/unstable/cluster/TestRunner.ts +18 -1
- package/src/unstable/cluster/index.ts +790 -0
- package/src/unstable/cluster/internal/hash.ts +12 -0
- package/src/unstable/devtools/DevTools.ts +26 -3
- package/src/unstable/devtools/DevToolsClient.ts +32 -5
- package/src/unstable/devtools/DevToolsSchema.ts +201 -44
- package/src/unstable/devtools/DevToolsServer.ts +27 -2
- package/src/unstable/devtools/index.ts +58 -0
- package/src/unstable/encoding/Msgpack.ts +97 -12
- package/src/unstable/encoding/Ndjson.ts +149 -21
- package/src/unstable/encoding/Sse.ts +109 -18
- package/src/unstable/encoding/index.ts +49 -0
- package/src/unstable/eventlog/Event.ts +131 -30
- package/src/unstable/eventlog/EventGroup.ts +50 -17
- package/src/unstable/eventlog/EventJournal.ts +120 -20
- package/src/unstable/eventlog/EventLog.ts +150 -31
- package/src/unstable/eventlog/EventLogEncryption.ts +42 -6
- package/src/unstable/eventlog/EventLogMessage.ts +92 -18
- package/src/unstable/eventlog/EventLogRemote.ts +54 -8
- package/src/unstable/eventlog/EventLogServer.ts +33 -3
- package/src/unstable/eventlog/EventLogServerEncrypted.ts +52 -6
- package/src/unstable/eventlog/EventLogServerUnencrypted.ts +90 -16
- package/src/unstable/eventlog/EventLogSessionAuth.ts +77 -15
- package/src/unstable/eventlog/SqlEventJournal.ts +28 -2
- package/src/unstable/eventlog/SqlEventLogServerEncrypted.ts +32 -3
- package/src/unstable/eventlog/SqlEventLogServerUnencrypted.ts +28 -2
- package/src/unstable/eventlog/index.ts +240 -0
- package/src/unstable/http/Cookies.ts +156 -77
- package/src/unstable/http/Etag.ts +40 -7
- package/src/unstable/http/FetchHttpClient.ts +33 -4
- package/src/unstable/http/FindMyWay.ts +1 -1
- package/src/unstable/http/Headers.ts +252 -50
- package/src/unstable/http/HttpBody.ts +128 -26
- package/src/unstable/http/HttpClient.ts +204 -96
- package/src/unstable/http/HttpClientError.ts +80 -12
- package/src/unstable/http/HttpClientRequest.ts +318 -100
- package/src/unstable/http/HttpClientResponse.ts +59 -16
- package/src/unstable/http/HttpEffect.ts +66 -18
- package/src/unstable/http/HttpIncomingMessage.ts +48 -7
- package/src/unstable/http/HttpMethod.ts +38 -6
- package/src/unstable/http/HttpMiddleware.ts +60 -11
- package/src/unstable/http/HttpPlatform.ts +34 -3
- package/src/unstable/http/HttpRouter.ts +232 -69
- package/src/unstable/http/HttpServer.ts +151 -22
- package/src/unstable/http/HttpServerError.ts +93 -10
- package/src/unstable/http/HttpServerRequest.ts +125 -21
- package/src/unstable/http/HttpServerRespondable.ts +49 -6
- package/src/unstable/http/HttpServerResponse.ts +391 -67
- package/src/unstable/http/HttpStaticServer.ts +24 -8
- package/src/unstable/http/HttpTraceContext.ts +53 -6
- package/src/unstable/http/Multipart.ts +179 -28
- package/src/unstable/http/Multipasta/HeadersParser.ts +1 -1
- package/src/unstable/http/Multipasta/Node.ts +1 -1
- package/src/unstable/http/Multipasta/Search.ts +1 -1
- package/src/unstable/http/Multipasta/Web.ts +1 -1
- package/src/unstable/http/Multipasta.ts +1 -1
- package/src/unstable/http/Template.ts +53 -1
- package/src/unstable/http/Url.ts +70 -56
- package/src/unstable/http/UrlParams.ts +237 -51
- package/src/unstable/http/index.ts +452 -0
- package/src/unstable/httpapi/HttpApi.ts +49 -14
- package/src/unstable/httpapi/HttpApiBuilder.ts +81 -16
- package/src/unstable/httpapi/HttpApiClient.ts +78 -15
- package/src/unstable/httpapi/HttpApiEndpoint.ts +238 -59
- package/src/unstable/httpapi/HttpApiError.ts +100 -1
- package/src/unstable/httpapi/HttpApiGroup.ts +87 -20
- package/src/unstable/httpapi/HttpApiMiddleware.ts +113 -22
- package/src/unstable/httpapi/HttpApiScalar.ts +38 -4
- package/src/unstable/httpapi/HttpApiSchema.ts +86 -38
- package/src/unstable/httpapi/HttpApiSecurity.ts +73 -17
- package/src/unstable/httpapi/HttpApiSwagger.ts +23 -3
- package/src/unstable/httpapi/HttpApiTest.ts +26 -1
- package/src/unstable/httpapi/OpenApi.ts +115 -15
- package/src/unstable/httpapi/index.ts +310 -25
- package/src/unstable/observability/Otlp.ts +33 -3
- package/src/unstable/observability/OtlpExporter.ts +32 -1
- package/src/unstable/observability/OtlpLogger.ts +32 -2
- package/src/unstable/observability/OtlpMetrics.ts +39 -5
- package/src/unstable/observability/OtlpResource.ts +68 -12
- package/src/unstable/observability/OtlpSerialization.ts +28 -3
- package/src/unstable/observability/OtlpTracer.ts +41 -2
- package/src/unstable/observability/PrometheusMetrics.ts +36 -16
- package/src/unstable/observability/index.ts +160 -3
- package/src/unstable/persistence/KeyValueStore.ts +108 -28
- package/src/unstable/persistence/Persistable.ts +76 -15
- package/src/unstable/persistence/PersistedCache.ts +27 -2
- package/src/unstable/persistence/PersistedQueue.ts +98 -16
- package/src/unstable/persistence/Persistence.ts +98 -16
- package/src/unstable/persistence/RateLimiter.ts +101 -21
- package/src/unstable/persistence/Redis.ts +42 -5
- package/src/unstable/persistence/index.ts +147 -0
- package/src/unstable/process/ChildProcess.ts +90 -66
- package/src/unstable/process/ChildProcessSpawner.ts +23 -12
- package/src/unstable/process/index.ts +2 -1
- package/src/unstable/reactivity/AsyncResult.ts +204 -61
- package/src/unstable/reactivity/Atom.ts +598 -139
- package/src/unstable/reactivity/AtomHttpApi.ts +41 -2
- package/src/unstable/reactivity/AtomRef.ts +51 -7
- package/src/unstable/reactivity/AtomRegistry.ts +141 -22
- package/src/unstable/reactivity/AtomRpc.ts +36 -2
- package/src/unstable/reactivity/Hydration.ts +45 -5
- package/src/unstable/reactivity/Reactivity.ts +94 -13
- package/src/unstable/reactivity/index.ts +167 -0
- package/src/unstable/rpc/Rpc.ts +254 -56
- package/src/unstable/rpc/RpcClient.ts +106 -19
- package/src/unstable/rpc/RpcClientError.ts +26 -2
- package/src/unstable/rpc/RpcGroup.ts +51 -8
- package/src/unstable/rpc/RpcMessage.ts +128 -32
- package/src/unstable/rpc/RpcMiddleware.ts +100 -20
- package/src/unstable/rpc/RpcSchema.ts +38 -4
- package/src/unstable/rpc/RpcSerialization.ts +60 -13
- package/src/unstable/rpc/RpcServer.ts +107 -23
- package/src/unstable/rpc/RpcTest.ts +20 -1
- package/src/unstable/rpc/RpcWorker.ts +39 -6
- package/src/unstable/rpc/Utils.ts +33 -0
- package/src/unstable/rpc/index.ts +272 -0
- package/src/unstable/schema/Model.ts +245 -61
- package/src/unstable/schema/VariantSchema.ts +101 -24
- package/src/unstable/schema/index.ts +37 -0
- package/src/unstable/socket/Socket.ts +168 -34
- package/src/unstable/socket/SocketServer.ts +58 -10
- package/src/unstable/socket/index.ts +44 -0
- package/src/unstable/sql/Migrator.ts +61 -9
- package/src/unstable/sql/SqlClient.ts +59 -2
- package/src/unstable/sql/SqlConnection.ts +34 -3
- package/src/unstable/sql/SqlError.ts +135 -0
- package/src/unstable/sql/SqlModel.ts +25 -5
- package/src/unstable/sql/SqlResolver.ts +56 -13
- package/src/unstable/sql/SqlSchema.ts +29 -8
- package/src/unstable/sql/SqlStream.ts +24 -0
- package/src/unstable/sql/Statement.ts +168 -24
- package/src/unstable/sql/index.ts +179 -1
- package/src/unstable/workers/Transferable.ts +72 -20
- package/src/unstable/workers/Worker.ts +61 -8
- package/src/unstable/workers/WorkerError.ts +50 -9
- package/src/unstable/workers/WorkerRunner.ts +32 -3
- package/src/unstable/workers/index.ts +81 -1
- package/src/unstable/workflow/Activity.ts +61 -10
- package/src/unstable/workflow/DurableClock.ts +26 -3
- package/src/unstable/workflow/DurableDeferred.ts +148 -31
- package/src/unstable/workflow/DurableQueue.ts +33 -8
- package/src/unstable/workflow/Workflow.ts +123 -31
- package/src/unstable/workflow/WorkflowEngine.ts +40 -5
- package/src/unstable/workflow/WorkflowProxy.ts +40 -12
- package/src/unstable/workflow/WorkflowProxyServer.ts +41 -6
- package/src/unstable/workflow/index.ts +160 -0
package/src/Graph.ts
CHANGED
|
@@ -1,4 +1,54 @@
|
|
|
1
1
|
/**
|
|
2
|
+
* The `Graph` module provides immutable and scoped-mutable graph data
|
|
3
|
+
* structures for modeling relationships between indexed nodes and edges. A
|
|
4
|
+
* graph can be directed or undirected, stores user-defined data on both nodes
|
|
5
|
+
* and edges, and exposes traversal, analysis, path finding, transformation, and
|
|
6
|
+
* diagram export utilities.
|
|
7
|
+
*
|
|
8
|
+
* **Mental model**
|
|
9
|
+
*
|
|
10
|
+
* - Nodes and edges are addressed by stable numeric indices: {@link NodeIndex}
|
|
11
|
+
* and {@link EdgeIndex}
|
|
12
|
+
* - Node data has type `N`; edge data has type `E`
|
|
13
|
+
* - {@link Graph} values are immutable snapshots; use {@link MutableGraph}
|
|
14
|
+
* through {@link mutate}, {@link beginMutation}, or constructor callbacks to
|
|
15
|
+
* add, remove, or update nodes and edges
|
|
16
|
+
* - Directed graphs follow edge direction for neighbors and traversals, while
|
|
17
|
+
* undirected graphs treat each edge as connecting both endpoints
|
|
18
|
+
* - Missing lookups return `Option`, while structurally invalid operations such
|
|
19
|
+
* as adding an edge to a missing node throw {@link GraphError}
|
|
20
|
+
*
|
|
21
|
+
* **Common tasks**
|
|
22
|
+
*
|
|
23
|
+
* - Create graphs: {@link directed}, {@link undirected}
|
|
24
|
+
* - Mutate safely: {@link mutate}, {@link addNode}, {@link addEdge},
|
|
25
|
+
* {@link removeNode}, {@link removeEdge}
|
|
26
|
+
* - Query contents: {@link getNode}, {@link getEdge}, {@link hasNode},
|
|
27
|
+
* {@link hasEdge}, {@link nodeCount}, {@link edgeCount}, {@link neighbors}
|
|
28
|
+
* - Transform data: {@link updateNode}, {@link updateEdge}, {@link mapNodes},
|
|
29
|
+
* {@link mapEdges}, {@link filterNodes}, {@link filterEdges},
|
|
30
|
+
* {@link filterMapNodes}, {@link filterMapEdges}
|
|
31
|
+
* - Traverse lazily: {@link dfs}, {@link bfs}, {@link topo},
|
|
32
|
+
* {@link dfsPostOrder}, {@link nodes}, {@link edges}, {@link Walker}
|
|
33
|
+
* - Analyze structure: {@link isAcyclic}, {@link isBipartite},
|
|
34
|
+
* {@link connectedComponents}, {@link stronglyConnectedComponents},
|
|
35
|
+
* {@link externals}
|
|
36
|
+
* - Find paths: {@link dijkstra}, {@link astar}, {@link bellmanFord},
|
|
37
|
+
* {@link floydWarshall}
|
|
38
|
+
* - Export diagrams: {@link toGraphViz}, {@link toMermaid}
|
|
39
|
+
*
|
|
40
|
+
* **Gotchas**
|
|
41
|
+
*
|
|
42
|
+
* - Only mutable graphs can be changed. Create one with {@link mutate} or by
|
|
43
|
+
* passing a callback to {@link directed} / {@link undirected}.
|
|
44
|
+
* - Traversal APIs return lazy {@link Walker} values. Use {@link indices},
|
|
45
|
+
* {@link values}, or {@link entries} to choose what each iteration yields.
|
|
46
|
+
* - `NodeIndex` and `EdgeIndex` values are identifiers, not array offsets. They
|
|
47
|
+
* are not reused after removals.
|
|
48
|
+
* - Shortest-path algorithms require a cost function. {@link dijkstra} and
|
|
49
|
+
* {@link astar} reject negative weights; use {@link bellmanFord} or
|
|
50
|
+
* {@link floydWarshall} when negative weights are part of the model.
|
|
51
|
+
*
|
|
2
52
|
* @since 4.0.0
|
|
3
53
|
*/
|
|
4
54
|
|
|
@@ -19,24 +69,24 @@ const TypeId = "~effect/collections/Graph"
|
|
|
19
69
|
/**
|
|
20
70
|
* Node index for node identification using plain numbers.
|
|
21
71
|
*
|
|
22
|
-
* @since 4.0.0
|
|
23
72
|
* @category models
|
|
73
|
+
* @since 3.18.0
|
|
24
74
|
*/
|
|
25
75
|
export type NodeIndex = number
|
|
26
76
|
|
|
27
77
|
/**
|
|
28
78
|
* Edge index for edge identification using plain numbers.
|
|
29
79
|
*
|
|
30
|
-
* @since 4.0.0
|
|
31
80
|
* @category models
|
|
81
|
+
* @since 3.18.0
|
|
32
82
|
*/
|
|
33
83
|
export type EdgeIndex = number
|
|
34
84
|
|
|
35
85
|
/**
|
|
36
86
|
* Edge data containing source, target, and user data.
|
|
37
87
|
*
|
|
38
|
-
* @since 4.0.0
|
|
39
88
|
* @category models
|
|
89
|
+
* @since 3.18.0
|
|
40
90
|
*/
|
|
41
91
|
export class Edge<E> extends Data.Class<{
|
|
42
92
|
readonly source: NodeIndex
|
|
@@ -47,16 +97,21 @@ export class Edge<E> extends Data.Class<{
|
|
|
47
97
|
/**
|
|
48
98
|
* Graph type for distinguishing directed and undirected graphs.
|
|
49
99
|
*
|
|
50
|
-
* @since 4.0.0
|
|
51
100
|
* @category models
|
|
101
|
+
* @since 3.18.0
|
|
52
102
|
*/
|
|
53
103
|
export type Kind = "directed" | "undirected"
|
|
54
104
|
|
|
55
105
|
/**
|
|
56
|
-
*
|
|
106
|
+
* Common structural interface shared by immutable and mutable graphs.
|
|
107
|
+
*
|
|
108
|
+
* **Details**
|
|
109
|
+
*
|
|
110
|
+
* Contains the node and edge maps, adjacency indexes, allocation counters, and
|
|
111
|
+
* shared protocols used by both `Graph` and `MutableGraph`.
|
|
57
112
|
*
|
|
58
|
-
* @since 4.0.0
|
|
59
113
|
* @category models
|
|
114
|
+
* @since 3.18.0
|
|
60
115
|
*/
|
|
61
116
|
export interface Proto<out N, out E> extends Iterable<readonly [NodeIndex, N]>, Equal.Equal, Pipeable, Inspectable {
|
|
62
117
|
readonly [TypeId]: typeof TypeId
|
|
@@ -72,8 +127,8 @@ export interface Proto<out N, out E> extends Iterable<readonly [NodeIndex, N]>,
|
|
|
72
127
|
/**
|
|
73
128
|
* Immutable graph interface.
|
|
74
129
|
*
|
|
75
|
-
* @since 4.0.0
|
|
76
130
|
* @category models
|
|
131
|
+
* @since 3.18.0
|
|
77
132
|
*/
|
|
78
133
|
export interface Graph<out N, out E, T extends Kind = "directed"> extends Proto<N, E> {
|
|
79
134
|
readonly type: T
|
|
@@ -83,8 +138,8 @@ export interface Graph<out N, out E, T extends Kind = "directed"> extends Proto<
|
|
|
83
138
|
/**
|
|
84
139
|
* Mutable graph interface.
|
|
85
140
|
*
|
|
86
|
-
* @since 4.0.0
|
|
87
141
|
* @category models
|
|
142
|
+
* @since 3.18.0
|
|
88
143
|
*/
|
|
89
144
|
export interface MutableGraph<out N, out E, T extends Kind = "directed"> extends Proto<N, E> {
|
|
90
145
|
readonly type: T
|
|
@@ -94,32 +149,32 @@ export interface MutableGraph<out N, out E, T extends Kind = "directed"> extends
|
|
|
94
149
|
/**
|
|
95
150
|
* Directed graph type alias.
|
|
96
151
|
*
|
|
97
|
-
* @since 4.0.0
|
|
98
152
|
* @category models
|
|
153
|
+
* @since 3.18.0
|
|
99
154
|
*/
|
|
100
155
|
export type DirectedGraph<N, E> = Graph<N, E, "directed">
|
|
101
156
|
|
|
102
157
|
/**
|
|
103
158
|
* Undirected graph type alias.
|
|
104
159
|
*
|
|
105
|
-
* @since 4.0.0
|
|
106
160
|
* @category models
|
|
161
|
+
* @since 3.18.0
|
|
107
162
|
*/
|
|
108
163
|
export type UndirectedGraph<N, E> = Graph<N, E, "undirected">
|
|
109
164
|
|
|
110
165
|
/**
|
|
111
166
|
* Mutable directed graph type alias.
|
|
112
167
|
*
|
|
113
|
-
* @since 4.0.0
|
|
114
168
|
* @category models
|
|
169
|
+
* @since 3.18.0
|
|
115
170
|
*/
|
|
116
171
|
export type MutableDirectedGraph<N, E> = MutableGraph<N, E, "directed">
|
|
117
172
|
|
|
118
173
|
/**
|
|
119
174
|
* Mutable undirected graph type alias.
|
|
120
175
|
*
|
|
121
|
-
* @since 4.0.0
|
|
122
176
|
* @category models
|
|
177
|
+
* @since 3.18.0
|
|
123
178
|
*/
|
|
124
179
|
export type MutableUndirectedGraph<N, E> = MutableGraph<N, E, "undirected">
|
|
125
180
|
|
|
@@ -205,8 +260,12 @@ const ProtoGraph = {
|
|
|
205
260
|
// TODO: Do we need safe variants for these?
|
|
206
261
|
|
|
207
262
|
/**
|
|
208
|
-
*
|
|
263
|
+
* Error thrown by graph operations when the requested graph structure is
|
|
264
|
+
* invalid, such as referencing a missing node or using unsupported edge
|
|
265
|
+
* weights.
|
|
266
|
+
*
|
|
209
267
|
* @category errors
|
|
268
|
+
* @since 3.18.0
|
|
210
269
|
*/
|
|
211
270
|
export class GraphError extends Data.TaggedError("GraphError")<{
|
|
212
271
|
readonly message: string
|
|
@@ -220,15 +279,19 @@ const missingNode = (node: number) => new GraphError({ message: `Node ${node} do
|
|
|
220
279
|
// =============================================================================
|
|
221
280
|
|
|
222
281
|
/**
|
|
282
|
+
* Returns `true` if a value has the graph runtime type identifier, narrowing
|
|
283
|
+
* it to a `Graph`.
|
|
284
|
+
*
|
|
285
|
+
* @category guards
|
|
223
286
|
* @since 4.0.0
|
|
224
|
-
* @category Guards
|
|
225
287
|
*/
|
|
226
288
|
export const isGraph = (u: unknown): u is Graph<unknown, unknown> => hasProperty(u, TypeId)
|
|
227
289
|
|
|
228
290
|
/**
|
|
229
291
|
* Creates a directed graph, optionally with initial mutations.
|
|
230
292
|
*
|
|
231
|
-
*
|
|
293
|
+
* **Example** (Creating a directed graph)
|
|
294
|
+
*
|
|
232
295
|
* ```ts
|
|
233
296
|
* import { Graph } from "effect"
|
|
234
297
|
*
|
|
@@ -242,8 +305,8 @@ export const isGraph = (u: unknown): u is Graph<unknown, unknown> => hasProperty
|
|
|
242
305
|
* })
|
|
243
306
|
* ```
|
|
244
307
|
*
|
|
245
|
-
* @since 4.0.0
|
|
246
308
|
* @category constructors
|
|
309
|
+
* @since 3.18.0
|
|
247
310
|
*/
|
|
248
311
|
export const directed = <N, E>(mutate?: (mutable: MutableDirectedGraph<N, E>) => void): DirectedGraph<N, E> => {
|
|
249
312
|
const graph: Mutable<DirectedGraph<N, E>> = Object.create(ProtoGraph)
|
|
@@ -269,7 +332,8 @@ export const directed = <N, E>(mutate?: (mutable: MutableDirectedGraph<N, E>) =>
|
|
|
269
332
|
/**
|
|
270
333
|
* Creates an undirected graph, optionally with initial mutations.
|
|
271
334
|
*
|
|
272
|
-
*
|
|
335
|
+
* **Example** (Creating an undirected graph)
|
|
336
|
+
*
|
|
273
337
|
* ```ts
|
|
274
338
|
* import { Graph } from "effect"
|
|
275
339
|
*
|
|
@@ -283,8 +347,8 @@ export const directed = <N, E>(mutate?: (mutable: MutableDirectedGraph<N, E>) =>
|
|
|
283
347
|
* })
|
|
284
348
|
* ```
|
|
285
349
|
*
|
|
286
|
-
* @since 4.0.0
|
|
287
350
|
* @category constructors
|
|
351
|
+
* @since 3.18.0
|
|
288
352
|
*/
|
|
289
353
|
export const undirected = <N, E>(mutate?: (mutable: MutableUndirectedGraph<N, E>) => void): UndirectedGraph<N, E> => {
|
|
290
354
|
const graph: Mutable<UndirectedGraph<N, E>> = Object.create(ProtoGraph)
|
|
@@ -314,7 +378,8 @@ export const undirected = <N, E>(mutate?: (mutable: MutableUndirectedGraph<N, E>
|
|
|
314
378
|
/**
|
|
315
379
|
* Creates a mutable scope for safe graph mutations by copying the data structure.
|
|
316
380
|
*
|
|
317
|
-
*
|
|
381
|
+
* **Example** (Beginning a mutation scope)
|
|
382
|
+
*
|
|
318
383
|
* ```ts
|
|
319
384
|
* import { Graph } from "effect"
|
|
320
385
|
*
|
|
@@ -323,8 +388,8 @@ export const undirected = <N, E>(mutate?: (mutable: MutableUndirectedGraph<N, E>
|
|
|
323
388
|
* // Now mutable can be safely modified without affecting original graph
|
|
324
389
|
* ```
|
|
325
390
|
*
|
|
326
|
-
* @since 4.0.0
|
|
327
391
|
* @category mutations
|
|
392
|
+
* @since 3.18.0
|
|
328
393
|
*/
|
|
329
394
|
export const beginMutation = <N, E, T extends Kind = "directed">(
|
|
330
395
|
graph: Graph<N, E, T>
|
|
@@ -358,7 +423,8 @@ export const beginMutation = <N, E, T extends Kind = "directed">(
|
|
|
358
423
|
/**
|
|
359
424
|
* Converts a mutable graph back to an immutable graph, ending the mutation scope.
|
|
360
425
|
*
|
|
361
|
-
*
|
|
426
|
+
* **Example** (Ending a mutation scope)
|
|
427
|
+
*
|
|
362
428
|
* ```ts
|
|
363
429
|
* import { Graph } from "effect"
|
|
364
430
|
*
|
|
@@ -368,8 +434,8 @@ export const beginMutation = <N, E, T extends Kind = "directed">(
|
|
|
368
434
|
* const newGraph = Graph.endMutation(mutable)
|
|
369
435
|
* ```
|
|
370
436
|
*
|
|
371
|
-
* @since 4.0.0
|
|
372
437
|
* @category mutations
|
|
438
|
+
* @since 3.18.0
|
|
373
439
|
*/
|
|
374
440
|
export const endMutation = <N, E, T extends Kind = "directed">(
|
|
375
441
|
mutable: MutableGraph<N, E, T>
|
|
@@ -391,55 +457,70 @@ export const endMutation = <N, E, T extends Kind = "directed">(
|
|
|
391
457
|
/**
|
|
392
458
|
* Performs scoped mutations on a graph, automatically managing the mutation lifecycle.
|
|
393
459
|
*
|
|
394
|
-
*
|
|
460
|
+
* **Example** (Applying scoped mutations)
|
|
461
|
+
*
|
|
395
462
|
* ```ts
|
|
396
463
|
* import { Graph } from "effect"
|
|
397
464
|
*
|
|
398
465
|
* const graph = Graph.directed<string, number>()
|
|
399
466
|
* const newGraph = Graph.mutate(graph, (mutable) => {
|
|
400
|
-
*
|
|
401
|
-
*
|
|
467
|
+
* const nodeA = Graph.addNode(mutable, "A")
|
|
468
|
+
* const nodeB = Graph.addNode(mutable, "B")
|
|
469
|
+
* Graph.addEdge(mutable, nodeA, nodeB, 1)
|
|
402
470
|
* })
|
|
471
|
+
*
|
|
472
|
+
* console.log(Graph.nodeCount(newGraph)) // 2
|
|
473
|
+
* console.log(Graph.edgeCount(newGraph)) // 1
|
|
403
474
|
* ```
|
|
404
475
|
*
|
|
405
|
-
* @since 4.0.0
|
|
406
476
|
* @category mutations
|
|
477
|
+
* @since 3.18.0
|
|
407
478
|
*/
|
|
408
479
|
export const mutate: {
|
|
409
480
|
/**
|
|
410
481
|
* Performs scoped mutations on a graph, automatically managing the mutation lifecycle.
|
|
411
482
|
*
|
|
412
|
-
*
|
|
483
|
+
* **Example** (Applying scoped mutations)
|
|
484
|
+
*
|
|
413
485
|
* ```ts
|
|
414
486
|
* import { Graph } from "effect"
|
|
415
487
|
*
|
|
416
488
|
* const graph = Graph.directed<string, number>()
|
|
417
489
|
* const newGraph = Graph.mutate(graph, (mutable) => {
|
|
418
|
-
*
|
|
419
|
-
*
|
|
490
|
+
* const nodeA = Graph.addNode(mutable, "A")
|
|
491
|
+
* const nodeB = Graph.addNode(mutable, "B")
|
|
492
|
+
* Graph.addEdge(mutable, nodeA, nodeB, 1)
|
|
420
493
|
* })
|
|
494
|
+
*
|
|
495
|
+
* console.log(Graph.nodeCount(newGraph)) // 2
|
|
496
|
+
* console.log(Graph.edgeCount(newGraph)) // 1
|
|
421
497
|
* ```
|
|
422
498
|
*
|
|
423
|
-
* @since 4.0.0
|
|
424
499
|
* @category mutations
|
|
500
|
+
* @since 3.18.0
|
|
425
501
|
*/
|
|
426
502
|
<N, E, T extends Kind = "directed">(f: (mutable: MutableGraph<N, E, T>) => void): (graph: Graph<N, E, T>) => Graph<N, E, T>
|
|
427
503
|
/**
|
|
428
504
|
* Performs scoped mutations on a graph, automatically managing the mutation lifecycle.
|
|
429
505
|
*
|
|
430
|
-
*
|
|
506
|
+
* **Example** (Applying scoped mutations)
|
|
507
|
+
*
|
|
431
508
|
* ```ts
|
|
432
509
|
* import { Graph } from "effect"
|
|
433
510
|
*
|
|
434
511
|
* const graph = Graph.directed<string, number>()
|
|
435
512
|
* const newGraph = Graph.mutate(graph, (mutable) => {
|
|
436
|
-
*
|
|
437
|
-
*
|
|
513
|
+
* const nodeA = Graph.addNode(mutable, "A")
|
|
514
|
+
* const nodeB = Graph.addNode(mutable, "B")
|
|
515
|
+
* Graph.addEdge(mutable, nodeA, nodeB, 1)
|
|
438
516
|
* })
|
|
517
|
+
*
|
|
518
|
+
* console.log(Graph.nodeCount(newGraph)) // 2
|
|
519
|
+
* console.log(Graph.edgeCount(newGraph)) // 1
|
|
439
520
|
* ```
|
|
440
521
|
*
|
|
441
|
-
* @since 4.0.0
|
|
442
522
|
* @category mutations
|
|
523
|
+
* @since 3.18.0
|
|
443
524
|
*/
|
|
444
525
|
<N, E, T extends Kind = "directed">(graph: Graph<N, E, T>, f: (mutable: MutableGraph<N, E, T>) => void): Graph<N, E, T>
|
|
445
526
|
} = dual(2, <N, E, T extends Kind = "directed">(
|
|
@@ -458,7 +539,8 @@ export const mutate: {
|
|
|
458
539
|
/**
|
|
459
540
|
* Adds a new node to a mutable graph and returns its index.
|
|
460
541
|
*
|
|
461
|
-
*
|
|
542
|
+
* **Example** (Adding nodes)
|
|
543
|
+
*
|
|
462
544
|
* ```ts
|
|
463
545
|
* import { Graph } from "effect"
|
|
464
546
|
*
|
|
@@ -470,8 +552,8 @@ export const mutate: {
|
|
|
470
552
|
* })
|
|
471
553
|
* ```
|
|
472
554
|
*
|
|
473
|
-
* @since 4.0.0
|
|
474
555
|
* @category mutations
|
|
556
|
+
* @since 3.18.0
|
|
475
557
|
*/
|
|
476
558
|
export const addNode = <N, E, T extends Kind = "directed">(
|
|
477
559
|
mutable: MutableGraph<N, E, T>,
|
|
@@ -495,10 +577,10 @@ export const addNode = <N, E, T extends Kind = "directed">(
|
|
|
495
577
|
/**
|
|
496
578
|
* Gets the data associated with a node index, if it exists.
|
|
497
579
|
*
|
|
498
|
-
*
|
|
580
|
+
* **Example** (Getting node data)
|
|
581
|
+
*
|
|
499
582
|
* ```ts
|
|
500
|
-
* import { Graph } from "effect"
|
|
501
|
-
* import * as Option from "effect/Option"
|
|
583
|
+
* import { Graph, Option } from "effect"
|
|
502
584
|
*
|
|
503
585
|
* const graph = Graph.mutate(Graph.directed<string, number>(), (mutable) => {
|
|
504
586
|
* Graph.addNode(mutable, "Node A")
|
|
@@ -512,17 +594,17 @@ export const addNode = <N, E, T extends Kind = "directed">(
|
|
|
512
594
|
* }
|
|
513
595
|
* ```
|
|
514
596
|
*
|
|
515
|
-
* @since 4.0.0
|
|
516
597
|
* @category getters
|
|
598
|
+
* @since 3.18.0
|
|
517
599
|
*/
|
|
518
600
|
export const getNode: {
|
|
519
601
|
/**
|
|
520
602
|
* Gets the data associated with a node index, if it exists.
|
|
521
603
|
*
|
|
522
|
-
*
|
|
604
|
+
* **Example** (Getting node data)
|
|
605
|
+
*
|
|
523
606
|
* ```ts
|
|
524
|
-
* import { Graph } from "effect"
|
|
525
|
-
* import * as Option from "effect/Option"
|
|
607
|
+
* import { Graph, Option } from "effect"
|
|
526
608
|
*
|
|
527
609
|
* const graph = Graph.mutate(Graph.directed<string, number>(), (mutable) => {
|
|
528
610
|
* Graph.addNode(mutable, "Node A")
|
|
@@ -536,17 +618,17 @@ export const getNode: {
|
|
|
536
618
|
* }
|
|
537
619
|
* ```
|
|
538
620
|
*
|
|
539
|
-
* @since 4.0.0
|
|
540
621
|
* @category getters
|
|
622
|
+
* @since 3.18.0
|
|
541
623
|
*/
|
|
542
624
|
<N, E, T extends Kind = "directed">(nodeIndex: NodeIndex): (graph: Graph<N, E, T> | MutableGraph<N, E, T>) => Option.Option<N>
|
|
543
625
|
/**
|
|
544
626
|
* Gets the data associated with a node index, if it exists.
|
|
545
627
|
*
|
|
546
|
-
*
|
|
628
|
+
* **Example** (Getting node data)
|
|
629
|
+
*
|
|
547
630
|
* ```ts
|
|
548
|
-
* import { Graph } from "effect"
|
|
549
|
-
* import * as Option from "effect/Option"
|
|
631
|
+
* import { Graph, Option } from "effect"
|
|
550
632
|
*
|
|
551
633
|
* const graph = Graph.mutate(Graph.directed<string, number>(), (mutable) => {
|
|
552
634
|
* Graph.addNode(mutable, "Node A")
|
|
@@ -560,8 +642,8 @@ export const getNode: {
|
|
|
560
642
|
* }
|
|
561
643
|
* ```
|
|
562
644
|
*
|
|
563
|
-
* @since 4.0.0
|
|
564
645
|
* @category getters
|
|
646
|
+
* @since 3.18.0
|
|
565
647
|
*/
|
|
566
648
|
<N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>, nodeIndex: NodeIndex): Option.Option<N>
|
|
567
649
|
} = dual(2, <N, E, T extends Kind = "directed">(
|
|
@@ -572,7 +654,8 @@ export const getNode: {
|
|
|
572
654
|
/**
|
|
573
655
|
* Checks if a node with the given index exists in the graph.
|
|
574
656
|
*
|
|
575
|
-
*
|
|
657
|
+
* **Example** (Checking node existence)
|
|
658
|
+
*
|
|
576
659
|
* ```ts
|
|
577
660
|
* import { Graph } from "effect"
|
|
578
661
|
*
|
|
@@ -589,14 +672,15 @@ export const getNode: {
|
|
|
589
672
|
* console.log(notExists) // false
|
|
590
673
|
* ```
|
|
591
674
|
*
|
|
592
|
-
* @since 4.0.0
|
|
593
675
|
* @category getters
|
|
676
|
+
* @since 3.18.0
|
|
594
677
|
*/
|
|
595
678
|
export const hasNode: {
|
|
596
679
|
/**
|
|
597
680
|
* Checks if a node with the given index exists in the graph.
|
|
598
681
|
*
|
|
599
|
-
*
|
|
682
|
+
* **Example** (Checking node existence)
|
|
683
|
+
*
|
|
600
684
|
* ```ts
|
|
601
685
|
* import { Graph } from "effect"
|
|
602
686
|
*
|
|
@@ -613,14 +697,15 @@ export const hasNode: {
|
|
|
613
697
|
* console.log(notExists) // false
|
|
614
698
|
* ```
|
|
615
699
|
*
|
|
616
|
-
* @since 4.0.0
|
|
617
700
|
* @category getters
|
|
701
|
+
* @since 3.18.0
|
|
618
702
|
*/
|
|
619
703
|
(nodeIndex: NodeIndex): <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => boolean
|
|
620
704
|
/**
|
|
621
705
|
* Checks if a node with the given index exists in the graph.
|
|
622
706
|
*
|
|
623
|
-
*
|
|
707
|
+
* **Example** (Checking node existence)
|
|
708
|
+
*
|
|
624
709
|
* ```ts
|
|
625
710
|
* import { Graph } from "effect"
|
|
626
711
|
*
|
|
@@ -637,8 +722,8 @@ export const hasNode: {
|
|
|
637
722
|
* console.log(notExists) // false
|
|
638
723
|
* ```
|
|
639
724
|
*
|
|
640
|
-
* @since 4.0.0
|
|
641
725
|
* @category getters
|
|
726
|
+
* @since 3.18.0
|
|
642
727
|
*/
|
|
643
728
|
<N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>, nodeIndex: NodeIndex): boolean
|
|
644
729
|
} = dual(2, <N, E, T extends Kind = "directed">(
|
|
@@ -649,7 +734,8 @@ export const hasNode: {
|
|
|
649
734
|
/**
|
|
650
735
|
* Returns the number of nodes in the graph.
|
|
651
736
|
*
|
|
652
|
-
*
|
|
737
|
+
* **Example** (Counting nodes)
|
|
738
|
+
*
|
|
653
739
|
* ```ts
|
|
654
740
|
* import { Graph } from "effect"
|
|
655
741
|
*
|
|
@@ -665,8 +751,8 @@ export const hasNode: {
|
|
|
665
751
|
* console.log(Graph.nodeCount(graphWithNodes)) // 3
|
|
666
752
|
* ```
|
|
667
753
|
*
|
|
668
|
-
* @since 4.0.0
|
|
669
754
|
* @category getters
|
|
755
|
+
* @since 3.18.0
|
|
670
756
|
*/
|
|
671
757
|
export const nodeCount = <N, E, T extends Kind = "directed">(
|
|
672
758
|
graph: Graph<N, E, T> | MutableGraph<N, E, T>
|
|
@@ -675,7 +761,8 @@ export const nodeCount = <N, E, T extends Kind = "directed">(
|
|
|
675
761
|
/**
|
|
676
762
|
* Finds the first node that matches the given predicate.
|
|
677
763
|
*
|
|
678
|
-
*
|
|
764
|
+
* **Example** (Finding the first matching node)
|
|
765
|
+
*
|
|
679
766
|
* ```ts
|
|
680
767
|
* import { Graph } from "effect"
|
|
681
768
|
*
|
|
@@ -692,14 +779,15 @@ export const nodeCount = <N, E, T extends Kind = "directed">(
|
|
|
692
779
|
* console.log(notFound) // Option.none()
|
|
693
780
|
* ```
|
|
694
781
|
*
|
|
695
|
-
* @since 4.0.0
|
|
696
782
|
* @category getters
|
|
783
|
+
* @since 3.18.0
|
|
697
784
|
*/
|
|
698
785
|
export const findNode: {
|
|
699
786
|
/**
|
|
700
787
|
* Finds the first node that matches the given predicate.
|
|
701
788
|
*
|
|
702
|
-
*
|
|
789
|
+
* **Example** (Finding the first matching node)
|
|
790
|
+
*
|
|
703
791
|
* ```ts
|
|
704
792
|
* import { Graph } from "effect"
|
|
705
793
|
*
|
|
@@ -716,14 +804,15 @@ export const findNode: {
|
|
|
716
804
|
* console.log(notFound) // Option.none()
|
|
717
805
|
* ```
|
|
718
806
|
*
|
|
719
|
-
* @since 4.0.0
|
|
720
807
|
* @category getters
|
|
808
|
+
* @since 3.18.0
|
|
721
809
|
*/
|
|
722
810
|
<N>(predicate: (data: N) => boolean): <E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => Option.Option<NodeIndex>
|
|
723
811
|
/**
|
|
724
812
|
* Finds the first node that matches the given predicate.
|
|
725
813
|
*
|
|
726
|
-
*
|
|
814
|
+
* **Example** (Finding the first matching node)
|
|
815
|
+
*
|
|
727
816
|
* ```ts
|
|
728
817
|
* import { Graph } from "effect"
|
|
729
818
|
*
|
|
@@ -740,8 +829,8 @@ export const findNode: {
|
|
|
740
829
|
* console.log(notFound) // Option.none()
|
|
741
830
|
* ```
|
|
742
831
|
*
|
|
743
|
-
* @since 4.0.0
|
|
744
832
|
* @category getters
|
|
833
|
+
* @since 3.18.0
|
|
745
834
|
*/
|
|
746
835
|
<N, E, T extends Kind = "directed">(
|
|
747
836
|
graph: Graph<N, E, T> | MutableGraph<N, E, T>,
|
|
@@ -762,7 +851,8 @@ export const findNode: {
|
|
|
762
851
|
/**
|
|
763
852
|
* Finds all nodes that match the given predicate.
|
|
764
853
|
*
|
|
765
|
-
*
|
|
854
|
+
* **Example** (Finding matching nodes)
|
|
855
|
+
*
|
|
766
856
|
* ```ts
|
|
767
857
|
* import { Graph } from "effect"
|
|
768
858
|
*
|
|
@@ -779,14 +869,15 @@ export const findNode: {
|
|
|
779
869
|
* console.log(empty) // []
|
|
780
870
|
* ```
|
|
781
871
|
*
|
|
782
|
-
* @since 4.0.0
|
|
783
872
|
* @category getters
|
|
873
|
+
* @since 3.18.0
|
|
784
874
|
*/
|
|
785
875
|
export const findNodes: {
|
|
786
876
|
/**
|
|
787
877
|
* Finds all nodes that match the given predicate.
|
|
788
878
|
*
|
|
789
|
-
*
|
|
879
|
+
* **Example** (Finding matching nodes)
|
|
880
|
+
*
|
|
790
881
|
* ```ts
|
|
791
882
|
* import { Graph } from "effect"
|
|
792
883
|
*
|
|
@@ -803,14 +894,15 @@ export const findNodes: {
|
|
|
803
894
|
* console.log(empty) // []
|
|
804
895
|
* ```
|
|
805
896
|
*
|
|
806
|
-
* @since 4.0.0
|
|
807
897
|
* @category getters
|
|
898
|
+
* @since 3.18.0
|
|
808
899
|
*/
|
|
809
900
|
<N>(predicate: (data: N) => boolean): <E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => Array<NodeIndex>
|
|
810
901
|
/**
|
|
811
902
|
* Finds all nodes that match the given predicate.
|
|
812
903
|
*
|
|
813
|
-
*
|
|
904
|
+
* **Example** (Finding matching nodes)
|
|
905
|
+
*
|
|
814
906
|
* ```ts
|
|
815
907
|
* import { Graph } from "effect"
|
|
816
908
|
*
|
|
@@ -827,8 +919,8 @@ export const findNodes: {
|
|
|
827
919
|
* console.log(empty) // []
|
|
828
920
|
* ```
|
|
829
921
|
*
|
|
830
|
-
* @since 4.0.0
|
|
831
922
|
* @category getters
|
|
923
|
+
* @since 3.18.0
|
|
832
924
|
*/
|
|
833
925
|
<N, E, T extends Kind = "directed">(
|
|
834
926
|
graph: Graph<N, E, T> | MutableGraph<N, E, T>,
|
|
@@ -850,7 +942,8 @@ export const findNodes: {
|
|
|
850
942
|
/**
|
|
851
943
|
* Finds the first edge that matches the given predicate.
|
|
852
944
|
*
|
|
853
|
-
*
|
|
945
|
+
* **Example** (Finding the first matching edge)
|
|
946
|
+
*
|
|
854
947
|
* ```ts
|
|
855
948
|
* import { Graph } from "effect"
|
|
856
949
|
*
|
|
@@ -869,14 +962,15 @@ export const findNodes: {
|
|
|
869
962
|
* console.log(notFound) // Option.none()
|
|
870
963
|
* ```
|
|
871
964
|
*
|
|
872
|
-
* @since 4.0.0
|
|
873
965
|
* @category getters
|
|
966
|
+
* @since 3.18.0
|
|
874
967
|
*/
|
|
875
968
|
export const findEdge: {
|
|
876
969
|
/**
|
|
877
970
|
* Finds the first edge that matches the given predicate.
|
|
878
971
|
*
|
|
879
|
-
*
|
|
972
|
+
* **Example** (Finding the first matching edge)
|
|
973
|
+
*
|
|
880
974
|
* ```ts
|
|
881
975
|
* import { Graph } from "effect"
|
|
882
976
|
*
|
|
@@ -895,14 +989,15 @@ export const findEdge: {
|
|
|
895
989
|
* console.log(notFound) // Option.none()
|
|
896
990
|
* ```
|
|
897
991
|
*
|
|
898
|
-
* @since 4.0.0
|
|
899
992
|
* @category getters
|
|
993
|
+
* @since 3.18.0
|
|
900
994
|
*/
|
|
901
995
|
<E>(predicate: (data: E, source: NodeIndex, target: NodeIndex) => boolean): <N, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => Option.Option<EdgeIndex>
|
|
902
996
|
/**
|
|
903
997
|
* Finds the first edge that matches the given predicate.
|
|
904
998
|
*
|
|
905
|
-
*
|
|
999
|
+
* **Example** (Finding the first matching edge)
|
|
1000
|
+
*
|
|
906
1001
|
* ```ts
|
|
907
1002
|
* import { Graph } from "effect"
|
|
908
1003
|
*
|
|
@@ -921,8 +1016,8 @@ export const findEdge: {
|
|
|
921
1016
|
* console.log(notFound) // Option.none()
|
|
922
1017
|
* ```
|
|
923
1018
|
*
|
|
924
|
-
* @since 4.0.0
|
|
925
1019
|
* @category getters
|
|
1020
|
+
* @since 3.18.0
|
|
926
1021
|
*/
|
|
927
1022
|
<N, E, T extends Kind = "directed">(
|
|
928
1023
|
graph: Graph<N, E, T> | MutableGraph<N, E, T>,
|
|
@@ -943,7 +1038,8 @@ export const findEdge: {
|
|
|
943
1038
|
/**
|
|
944
1039
|
* Finds all edges that match the given predicate.
|
|
945
1040
|
*
|
|
946
|
-
*
|
|
1041
|
+
* **Example** (Finding matching edges)
|
|
1042
|
+
*
|
|
947
1043
|
* ```ts
|
|
948
1044
|
* import { Graph } from "effect"
|
|
949
1045
|
*
|
|
@@ -963,14 +1059,15 @@ export const findEdge: {
|
|
|
963
1059
|
* console.log(empty) // []
|
|
964
1060
|
* ```
|
|
965
1061
|
*
|
|
966
|
-
* @since 4.0.0
|
|
967
1062
|
* @category getters
|
|
1063
|
+
* @since 3.18.0
|
|
968
1064
|
*/
|
|
969
1065
|
export const findEdges: {
|
|
970
1066
|
/**
|
|
971
1067
|
* Finds all edges that match the given predicate.
|
|
972
1068
|
*
|
|
973
|
-
*
|
|
1069
|
+
* **Example** (Finding matching edges)
|
|
1070
|
+
*
|
|
974
1071
|
* ```ts
|
|
975
1072
|
* import { Graph } from "effect"
|
|
976
1073
|
*
|
|
@@ -990,14 +1087,15 @@ export const findEdges: {
|
|
|
990
1087
|
* console.log(empty) // []
|
|
991
1088
|
* ```
|
|
992
1089
|
*
|
|
993
|
-
* @since 4.0.0
|
|
994
1090
|
* @category getters
|
|
1091
|
+
* @since 3.18.0
|
|
995
1092
|
*/
|
|
996
1093
|
<E>(predicate: (data: E, source: NodeIndex, target: NodeIndex) => boolean): <N, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => Array<EdgeIndex>
|
|
997
1094
|
/**
|
|
998
1095
|
* Finds all edges that match the given predicate.
|
|
999
1096
|
*
|
|
1000
|
-
*
|
|
1097
|
+
* **Example** (Finding matching edges)
|
|
1098
|
+
*
|
|
1001
1099
|
* ```ts
|
|
1002
1100
|
* import { Graph } from "effect"
|
|
1003
1101
|
*
|
|
@@ -1017,8 +1115,8 @@ export const findEdges: {
|
|
|
1017
1115
|
* console.log(empty) // []
|
|
1018
1116
|
* ```
|
|
1019
1117
|
*
|
|
1020
|
-
* @since 4.0.0
|
|
1021
1118
|
* @category getters
|
|
1119
|
+
* @since 3.18.0
|
|
1022
1120
|
*/
|
|
1023
1121
|
<N, E, T extends Kind = "directed">(
|
|
1024
1122
|
graph: Graph<N, E, T> | MutableGraph<N, E, T>,
|
|
@@ -1040,7 +1138,8 @@ export const findEdges: {
|
|
|
1040
1138
|
/**
|
|
1041
1139
|
* Updates a single node's data by applying a transformation function.
|
|
1042
1140
|
*
|
|
1043
|
-
*
|
|
1141
|
+
* **Example** (Updating node data)
|
|
1142
|
+
*
|
|
1044
1143
|
* ```ts
|
|
1045
1144
|
* import { Graph } from "effect"
|
|
1046
1145
|
*
|
|
@@ -1054,8 +1153,8 @@ export const findEdges: {
|
|
|
1054
1153
|
* console.log(nodeData) // Option.some("NODE A")
|
|
1055
1154
|
* ```
|
|
1056
1155
|
*
|
|
1057
|
-
* @
|
|
1058
|
-
* @
|
|
1156
|
+
* @category transforming
|
|
1157
|
+
* @since 3.18.0
|
|
1059
1158
|
*/
|
|
1060
1159
|
export const updateNode = <N, E, T extends Kind = "directed">(
|
|
1061
1160
|
mutable: MutableGraph<N, E, T>,
|
|
@@ -1074,7 +1173,8 @@ export const updateNode = <N, E, T extends Kind = "directed">(
|
|
|
1074
1173
|
/**
|
|
1075
1174
|
* Updates a single edge's data by applying a transformation function.
|
|
1076
1175
|
*
|
|
1077
|
-
*
|
|
1176
|
+
* **Example** (Updating edge data)
|
|
1177
|
+
*
|
|
1078
1178
|
* ```ts
|
|
1079
1179
|
* import { Graph } from "effect"
|
|
1080
1180
|
*
|
|
@@ -1086,11 +1186,11 @@ export const updateNode = <N, E, T extends Kind = "directed">(
|
|
|
1086
1186
|
* })
|
|
1087
1187
|
*
|
|
1088
1188
|
* const edgeData = Graph.getEdge(result, 0)
|
|
1089
|
-
* console.log(edgeData) // new Graph.Edge({ source: 0, target: 1, data: 20 })
|
|
1189
|
+
* console.log(edgeData) // Option.some(new Graph.Edge({ source: 0, target: 1, data: 20 }))
|
|
1090
1190
|
* ```
|
|
1091
1191
|
*
|
|
1092
|
-
* @since 4.0.0
|
|
1093
1192
|
* @category mutations
|
|
1193
|
+
* @since 3.18.0
|
|
1094
1194
|
*/
|
|
1095
1195
|
export const updateEdge = <N, E, T extends Kind = "directed">(
|
|
1096
1196
|
mutable: MutableGraph<N, E, T>,
|
|
@@ -1107,9 +1207,15 @@ export const updateEdge = <N, E, T extends Kind = "directed">(
|
|
|
1107
1207
|
}
|
|
1108
1208
|
|
|
1109
1209
|
/**
|
|
1110
|
-
*
|
|
1210
|
+
* Transforms every node's data in a mutable graph in place using the provided
|
|
1211
|
+
* mapping function.
|
|
1212
|
+
*
|
|
1213
|
+
* **Details**
|
|
1214
|
+
*
|
|
1215
|
+
* Node indices and edges are preserved; only the stored node data is replaced.
|
|
1216
|
+
*
|
|
1217
|
+
* **Example** (Mapping node data)
|
|
1111
1218
|
*
|
|
1112
|
-
* @example
|
|
1113
1219
|
* ```ts
|
|
1114
1220
|
* import { Graph } from "effect"
|
|
1115
1221
|
*
|
|
@@ -1121,11 +1227,11 @@ export const updateEdge = <N, E, T extends Kind = "directed">(
|
|
|
1121
1227
|
* })
|
|
1122
1228
|
*
|
|
1123
1229
|
* const nodeData = Graph.getNode(graph, 0)
|
|
1124
|
-
* console.log(nodeData) //
|
|
1230
|
+
* console.log(nodeData) // Option.some("NODE A")
|
|
1125
1231
|
* ```
|
|
1126
1232
|
*
|
|
1127
|
-
* @
|
|
1128
|
-
* @
|
|
1233
|
+
* @category transforming
|
|
1234
|
+
* @since 3.18.0
|
|
1129
1235
|
*/
|
|
1130
1236
|
export const mapNodes = <N, E, T extends Kind = "directed">(
|
|
1131
1237
|
mutable: MutableGraph<N, E, T>,
|
|
@@ -1141,7 +1247,8 @@ export const mapNodes = <N, E, T extends Kind = "directed">(
|
|
|
1141
1247
|
/**
|
|
1142
1248
|
* Transforms all edge data in a mutable graph using the provided mapping function.
|
|
1143
1249
|
*
|
|
1144
|
-
*
|
|
1250
|
+
* **Example** (Mapping edge data)
|
|
1251
|
+
*
|
|
1145
1252
|
* ```ts
|
|
1146
1253
|
* import { Graph } from "effect"
|
|
1147
1254
|
*
|
|
@@ -1155,11 +1262,11 @@ export const mapNodes = <N, E, T extends Kind = "directed">(
|
|
|
1155
1262
|
* })
|
|
1156
1263
|
*
|
|
1157
1264
|
* const edgeData = Graph.getEdge(graph, 0)
|
|
1158
|
-
* console.log(edgeData) // new Graph.Edge({ source: 0, target: 1, data: 20 })
|
|
1265
|
+
* console.log(edgeData) // Option.some(new Graph.Edge({ source: 0, target: 1, data: 20 }))
|
|
1159
1266
|
* ```
|
|
1160
1267
|
*
|
|
1161
|
-
* @
|
|
1162
|
-
* @
|
|
1268
|
+
* @category transforming
|
|
1269
|
+
* @since 3.18.0
|
|
1163
1270
|
*/
|
|
1164
1271
|
export const mapEdges = <N, E, T extends Kind = "directed">(
|
|
1165
1272
|
mutable: MutableGraph<N, E, T>,
|
|
@@ -1178,7 +1285,8 @@ export const mapEdges = <N, E, T extends Kind = "directed">(
|
|
|
1178
1285
|
/**
|
|
1179
1286
|
* Reverses all edge directions in a mutable graph by swapping source and target nodes.
|
|
1180
1287
|
*
|
|
1181
|
-
*
|
|
1288
|
+
* **Example** (Reversing edge directions)
|
|
1289
|
+
*
|
|
1182
1290
|
* ```ts
|
|
1183
1291
|
* import { Graph } from "effect"
|
|
1184
1292
|
*
|
|
@@ -1192,11 +1300,11 @@ export const mapEdges = <N, E, T extends Kind = "directed">(
|
|
|
1192
1300
|
* })
|
|
1193
1301
|
*
|
|
1194
1302
|
* const edge0 = Graph.getEdge(graph, 0)
|
|
1195
|
-
* console.log(edge0) // new Graph.Edge({ source: 1, target: 0, data: 1 })
|
|
1303
|
+
* console.log(edge0) // Option.some(new Graph.Edge({ source: 1, target: 0, data: 1 }))
|
|
1196
1304
|
* ```
|
|
1197
1305
|
*
|
|
1198
|
-
* @
|
|
1199
|
-
* @
|
|
1306
|
+
* @category transforming
|
|
1307
|
+
* @since 3.18.0
|
|
1200
1308
|
*/
|
|
1201
1309
|
export const reverse = <N, E, T extends Kind = "directed">(
|
|
1202
1310
|
mutable: MutableGraph<N, E, T>
|
|
@@ -1238,10 +1346,10 @@ export const reverse = <N, E, T extends Kind = "directed">(
|
|
|
1238
1346
|
* Filters and optionally transforms nodes in a mutable graph using a predicate function.
|
|
1239
1347
|
* Nodes that return Option.none are removed along with all their connected edges.
|
|
1240
1348
|
*
|
|
1241
|
-
*
|
|
1349
|
+
* **Example** (Filtering and mapping nodes)
|
|
1350
|
+
*
|
|
1242
1351
|
* ```ts
|
|
1243
|
-
* import { Graph } from "effect"
|
|
1244
|
-
* import * as Option from "effect/Option"
|
|
1352
|
+
* import { Graph, Option } from "effect"
|
|
1245
1353
|
*
|
|
1246
1354
|
* const graph = Graph.directed<string, number>((mutable) => {
|
|
1247
1355
|
* const a = Graph.addNode(mutable, "active")
|
|
@@ -1261,8 +1369,8 @@ export const reverse = <N, E, T extends Kind = "directed">(
|
|
|
1261
1369
|
* console.log(Graph.nodeCount(graph)) // 2 (only "active" nodes remain)
|
|
1262
1370
|
* ```
|
|
1263
1371
|
*
|
|
1264
|
-
* @
|
|
1265
|
-
* @
|
|
1372
|
+
* @category transforming
|
|
1373
|
+
* @since 3.18.0
|
|
1266
1374
|
*/
|
|
1267
1375
|
export const filterMapNodes = <N, E, T extends Kind = "directed">(
|
|
1268
1376
|
mutable: MutableGraph<N, E, T>,
|
|
@@ -1292,10 +1400,10 @@ export const filterMapNodes = <N, E, T extends Kind = "directed">(
|
|
|
1292
1400
|
* Filters and optionally transforms edges in a mutable graph using a predicate function.
|
|
1293
1401
|
* Edges that return Option.none are removed from the graph.
|
|
1294
1402
|
*
|
|
1295
|
-
*
|
|
1403
|
+
* **Example** (Filtering and mapping edges)
|
|
1404
|
+
*
|
|
1296
1405
|
* ```ts
|
|
1297
|
-
* import { Graph } from "effect"
|
|
1298
|
-
* import * as Option from "effect/Option"
|
|
1406
|
+
* import { Graph, Option } from "effect"
|
|
1299
1407
|
*
|
|
1300
1408
|
* const graph = Graph.directed<string, number>((mutable) => {
|
|
1301
1409
|
* const a = Graph.addNode(mutable, "A")
|
|
@@ -1315,8 +1423,8 @@ export const filterMapNodes = <N, E, T extends Kind = "directed">(
|
|
|
1315
1423
|
* console.log(Graph.edgeCount(graph)) // 2 (edges with weight 5 removed)
|
|
1316
1424
|
* ```
|
|
1317
1425
|
*
|
|
1318
|
-
* @
|
|
1319
|
-
* @
|
|
1426
|
+
* @category transforming
|
|
1427
|
+
* @since 3.18.0
|
|
1320
1428
|
*/
|
|
1321
1429
|
export const filterMapEdges = <N, E, T extends Kind = "directed">(
|
|
1322
1430
|
mutable: MutableGraph<N, E, T>,
|
|
@@ -1349,7 +1457,8 @@ export const filterMapEdges = <N, E, T extends Kind = "directed">(
|
|
|
1349
1457
|
* Filters nodes by removing those that don't match the predicate.
|
|
1350
1458
|
* This function modifies the mutable graph in place.
|
|
1351
1459
|
*
|
|
1352
|
-
*
|
|
1460
|
+
* **Example** (Filtering nodes)
|
|
1461
|
+
*
|
|
1353
1462
|
* ```ts
|
|
1354
1463
|
* import { Graph } from "effect"
|
|
1355
1464
|
*
|
|
@@ -1366,8 +1475,8 @@ export const filterMapEdges = <N, E, T extends Kind = "directed">(
|
|
|
1366
1475
|
* console.log(Graph.nodeCount(graph)) // 2 (only "active" nodes remain)
|
|
1367
1476
|
* ```
|
|
1368
1477
|
*
|
|
1369
|
-
* @
|
|
1370
|
-
* @
|
|
1478
|
+
* @category transforming
|
|
1479
|
+
* @since 3.18.0
|
|
1371
1480
|
*/
|
|
1372
1481
|
export const filterNodes = <N, E, T extends Kind = "directed">(
|
|
1373
1482
|
mutable: MutableGraph<N, E, T>,
|
|
@@ -1392,7 +1501,8 @@ export const filterNodes = <N, E, T extends Kind = "directed">(
|
|
|
1392
1501
|
* Filters edges by removing those that don't match the predicate.
|
|
1393
1502
|
* This function modifies the mutable graph in place.
|
|
1394
1503
|
*
|
|
1395
|
-
*
|
|
1504
|
+
* **Example** (Filtering edges)
|
|
1505
|
+
*
|
|
1396
1506
|
* ```ts
|
|
1397
1507
|
* import { Graph } from "effect"
|
|
1398
1508
|
*
|
|
@@ -1412,8 +1522,8 @@ export const filterNodes = <N, E, T extends Kind = "directed">(
|
|
|
1412
1522
|
* console.log(Graph.edgeCount(graph)) // 2 (edge with weight 5 removed)
|
|
1413
1523
|
* ```
|
|
1414
1524
|
*
|
|
1415
|
-
* @
|
|
1416
|
-
* @
|
|
1525
|
+
* @category transforming
|
|
1526
|
+
* @since 3.18.0
|
|
1417
1527
|
*/
|
|
1418
1528
|
export const filterEdges = <N, E, T extends Kind = "directed">(
|
|
1419
1529
|
mutable: MutableGraph<N, E, T>,
|
|
@@ -1465,7 +1575,8 @@ const invalidateCycleFlagOnAddition = <N, E, T extends Kind = "directed">(
|
|
|
1465
1575
|
/**
|
|
1466
1576
|
* Adds a new edge to a mutable graph and returns its index.
|
|
1467
1577
|
*
|
|
1468
|
-
*
|
|
1578
|
+
* **Example** (Adding edges)
|
|
1579
|
+
*
|
|
1469
1580
|
* ```ts
|
|
1470
1581
|
* import { Graph } from "effect"
|
|
1471
1582
|
*
|
|
@@ -1477,8 +1588,8 @@ const invalidateCycleFlagOnAddition = <N, E, T extends Kind = "directed">(
|
|
|
1477
1588
|
* })
|
|
1478
1589
|
* ```
|
|
1479
1590
|
*
|
|
1480
|
-
* @since 4.0.0
|
|
1481
1591
|
* @category mutations
|
|
1592
|
+
* @since 3.18.0
|
|
1482
1593
|
*/
|
|
1483
1594
|
export const addEdge = <N, E, T extends Kind = "directed">(
|
|
1484
1595
|
mutable: MutableGraph<N, E, T>,
|
|
@@ -1537,7 +1648,8 @@ export const addEdge = <N, E, T extends Kind = "directed">(
|
|
|
1537
1648
|
/**
|
|
1538
1649
|
* Removes a node and all its incident edges from a mutable graph.
|
|
1539
1650
|
*
|
|
1540
|
-
*
|
|
1651
|
+
* **Example** (Removing a node)
|
|
1652
|
+
*
|
|
1541
1653
|
* ```ts
|
|
1542
1654
|
* import { Graph } from "effect"
|
|
1543
1655
|
*
|
|
@@ -1551,8 +1663,8 @@ export const addEdge = <N, E, T extends Kind = "directed">(
|
|
|
1551
1663
|
* })
|
|
1552
1664
|
* ```
|
|
1553
1665
|
*
|
|
1554
|
-
* @since 4.0.0
|
|
1555
1666
|
* @category mutations
|
|
1667
|
+
* @since 3.18.0
|
|
1556
1668
|
*/
|
|
1557
1669
|
export const removeNode = <N, E, T extends Kind = "directed">(
|
|
1558
1670
|
mutable: MutableGraph<N, E, T>,
|
|
@@ -1600,7 +1712,8 @@ export const removeNode = <N, E, T extends Kind = "directed">(
|
|
|
1600
1712
|
/**
|
|
1601
1713
|
* Removes an edge from a mutable graph.
|
|
1602
1714
|
*
|
|
1603
|
-
*
|
|
1715
|
+
* **Example** (Removing an edge)
|
|
1716
|
+
*
|
|
1604
1717
|
* ```ts
|
|
1605
1718
|
* import { Graph } from "effect"
|
|
1606
1719
|
*
|
|
@@ -1614,8 +1727,8 @@ export const removeNode = <N, E, T extends Kind = "directed">(
|
|
|
1614
1727
|
* })
|
|
1615
1728
|
* ```
|
|
1616
1729
|
*
|
|
1617
|
-
* @since 4.0.0
|
|
1618
1730
|
* @category mutations
|
|
1731
|
+
* @since 3.18.0
|
|
1619
1732
|
*/
|
|
1620
1733
|
export const removeEdge = <N, E, T extends Kind = "directed">(
|
|
1621
1734
|
mutable: MutableGraph<N, E, T>,
|
|
@@ -1692,7 +1805,8 @@ const removeEdgeInternal = <N, E, T extends Kind = "directed">(
|
|
|
1692
1805
|
/**
|
|
1693
1806
|
* Gets the edge data associated with an edge index, if it exists.
|
|
1694
1807
|
*
|
|
1695
|
-
*
|
|
1808
|
+
* **Example** (Getting edge data)
|
|
1809
|
+
*
|
|
1696
1810
|
* ```ts
|
|
1697
1811
|
* import { Graph } from "effect"
|
|
1698
1812
|
*
|
|
@@ -1707,13 +1821,13 @@ const removeEdgeInternal = <N, E, T extends Kind = "directed">(
|
|
|
1707
1821
|
*
|
|
1708
1822
|
* if (edgeData._tag === "Some") {
|
|
1709
1823
|
* console.log(edgeData.value.data) // 42
|
|
1710
|
-
* console.log(edgeData.value.source) //
|
|
1711
|
-
* console.log(edgeData.value.target) //
|
|
1824
|
+
* console.log(edgeData.value.source) // 0
|
|
1825
|
+
* console.log(edgeData.value.target) // 1
|
|
1712
1826
|
* }
|
|
1713
1827
|
* ```
|
|
1714
1828
|
*
|
|
1715
|
-
* @since 4.0.0
|
|
1716
1829
|
* @category getters
|
|
1830
|
+
* @since 3.18.0
|
|
1717
1831
|
*/
|
|
1718
1832
|
export const getEdge: {
|
|
1719
1833
|
// =============================================================================
|
|
@@ -1723,7 +1837,8 @@ export const getEdge: {
|
|
|
1723
1837
|
/**
|
|
1724
1838
|
* Gets the edge data associated with an edge index, if it exists.
|
|
1725
1839
|
*
|
|
1726
|
-
*
|
|
1840
|
+
* **Example** (Getting edge data)
|
|
1841
|
+
*
|
|
1727
1842
|
* ```ts
|
|
1728
1843
|
* import { Graph } from "effect"
|
|
1729
1844
|
*
|
|
@@ -1738,13 +1853,13 @@ export const getEdge: {
|
|
|
1738
1853
|
*
|
|
1739
1854
|
* if (edgeData._tag === "Some") {
|
|
1740
1855
|
* console.log(edgeData.value.data) // 42
|
|
1741
|
-
* console.log(edgeData.value.source) //
|
|
1742
|
-
* console.log(edgeData.value.target) //
|
|
1856
|
+
* console.log(edgeData.value.source) // 0
|
|
1857
|
+
* console.log(edgeData.value.target) // 1
|
|
1743
1858
|
* }
|
|
1744
1859
|
* ```
|
|
1745
1860
|
*
|
|
1746
|
-
* @since 4.0.0
|
|
1747
1861
|
* @category getters
|
|
1862
|
+
* @since 3.18.0
|
|
1748
1863
|
*/
|
|
1749
1864
|
<E>(edgeIndex: EdgeIndex): <N, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => Option.Option<Edge<E>>
|
|
1750
1865
|
// =============================================================================
|
|
@@ -1754,7 +1869,8 @@ export const getEdge: {
|
|
|
1754
1869
|
/**
|
|
1755
1870
|
* Gets the edge data associated with an edge index, if it exists.
|
|
1756
1871
|
*
|
|
1757
|
-
*
|
|
1872
|
+
* **Example** (Getting edge data)
|
|
1873
|
+
*
|
|
1758
1874
|
* ```ts
|
|
1759
1875
|
* import { Graph } from "effect"
|
|
1760
1876
|
*
|
|
@@ -1769,13 +1885,13 @@ export const getEdge: {
|
|
|
1769
1885
|
*
|
|
1770
1886
|
* if (edgeData._tag === "Some") {
|
|
1771
1887
|
* console.log(edgeData.value.data) // 42
|
|
1772
|
-
* console.log(edgeData.value.source) //
|
|
1773
|
-
* console.log(edgeData.value.target) //
|
|
1888
|
+
* console.log(edgeData.value.source) // 0
|
|
1889
|
+
* console.log(edgeData.value.target) // 1
|
|
1774
1890
|
* }
|
|
1775
1891
|
* ```
|
|
1776
1892
|
*
|
|
1777
|
-
* @since 4.0.0
|
|
1778
1893
|
* @category getters
|
|
1894
|
+
* @since 3.18.0
|
|
1779
1895
|
*/
|
|
1780
1896
|
<N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>, edgeIndex: EdgeIndex): Option.Option<Edge<E>>
|
|
1781
1897
|
} = dual(2, <N, E, T extends Kind = "directed">(
|
|
@@ -1786,7 +1902,8 @@ export const getEdge: {
|
|
|
1786
1902
|
/**
|
|
1787
1903
|
* Checks if an edge exists between two nodes in the graph.
|
|
1788
1904
|
*
|
|
1789
|
-
*
|
|
1905
|
+
* **Example** (Checking edge existence)
|
|
1906
|
+
*
|
|
1790
1907
|
* ```ts
|
|
1791
1908
|
* import { Graph } from "effect"
|
|
1792
1909
|
*
|
|
@@ -1808,14 +1925,15 @@ export const getEdge: {
|
|
|
1808
1925
|
* console.log(hasAC) // false
|
|
1809
1926
|
* ```
|
|
1810
1927
|
*
|
|
1811
|
-
* @since 4.0.0
|
|
1812
1928
|
* @category getters
|
|
1929
|
+
* @since 3.18.0
|
|
1813
1930
|
*/
|
|
1814
1931
|
export const hasEdge: {
|
|
1815
1932
|
/**
|
|
1816
1933
|
* Checks if an edge exists between two nodes in the graph.
|
|
1817
1934
|
*
|
|
1818
|
-
*
|
|
1935
|
+
* **Example** (Checking edge existence)
|
|
1936
|
+
*
|
|
1819
1937
|
* ```ts
|
|
1820
1938
|
* import { Graph } from "effect"
|
|
1821
1939
|
*
|
|
@@ -1837,14 +1955,15 @@ export const hasEdge: {
|
|
|
1837
1955
|
* console.log(hasAC) // false
|
|
1838
1956
|
* ```
|
|
1839
1957
|
*
|
|
1840
|
-
* @since 4.0.0
|
|
1841
1958
|
* @category getters
|
|
1959
|
+
* @since 3.18.0
|
|
1842
1960
|
*/
|
|
1843
1961
|
(source: NodeIndex, target: NodeIndex): <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => boolean
|
|
1844
1962
|
/**
|
|
1845
1963
|
* Checks if an edge exists between two nodes in the graph.
|
|
1846
1964
|
*
|
|
1847
|
-
*
|
|
1965
|
+
* **Example** (Checking edge existence)
|
|
1966
|
+
*
|
|
1848
1967
|
* ```ts
|
|
1849
1968
|
* import { Graph } from "effect"
|
|
1850
1969
|
*
|
|
@@ -1866,8 +1985,8 @@ export const hasEdge: {
|
|
|
1866
1985
|
* console.log(hasAC) // false
|
|
1867
1986
|
* ```
|
|
1868
1987
|
*
|
|
1869
|
-
* @since 4.0.0
|
|
1870
1988
|
* @category getters
|
|
1989
|
+
* @since 3.18.0
|
|
1871
1990
|
*/
|
|
1872
1991
|
<N, E, T extends Kind = "directed">(
|
|
1873
1992
|
graph: Graph<N, E, T> | MutableGraph<N, E, T>,
|
|
@@ -1898,7 +2017,8 @@ export const hasEdge: {
|
|
|
1898
2017
|
/**
|
|
1899
2018
|
* Returns the number of edges in the graph.
|
|
1900
2019
|
*
|
|
1901
|
-
*
|
|
2020
|
+
* **Example** (Counting edges)
|
|
2021
|
+
*
|
|
1902
2022
|
* ```ts
|
|
1903
2023
|
* import { Graph } from "effect"
|
|
1904
2024
|
*
|
|
@@ -1917,17 +2037,23 @@ export const hasEdge: {
|
|
|
1917
2037
|
* console.log(Graph.edgeCount(graphWithEdges)) // 3
|
|
1918
2038
|
* ```
|
|
1919
2039
|
*
|
|
1920
|
-
* @since 4.0.0
|
|
1921
2040
|
* @category getters
|
|
2041
|
+
* @since 3.18.0
|
|
1922
2042
|
*/
|
|
1923
2043
|
export const edgeCount = <N, E, T extends Kind = "directed">(
|
|
1924
2044
|
graph: Graph<N, E, T> | MutableGraph<N, E, T>
|
|
1925
2045
|
): number => graph.edges.size
|
|
1926
2046
|
|
|
1927
2047
|
/**
|
|
1928
|
-
* Returns the neighboring
|
|
2048
|
+
* Returns the neighboring node indices for a node.
|
|
2049
|
+
*
|
|
2050
|
+
* **Details**
|
|
2051
|
+
*
|
|
2052
|
+
* For directed graphs, neighbors are the targets of outgoing edges. For
|
|
2053
|
+
* undirected graphs, neighbors are the other endpoints of incident edges.
|
|
2054
|
+
*
|
|
2055
|
+
* **Example** (Getting outgoing neighbors)
|
|
1929
2056
|
*
|
|
1930
|
-
* @example
|
|
1931
2057
|
* ```ts
|
|
1932
2058
|
* import { Graph } from "effect"
|
|
1933
2059
|
*
|
|
@@ -1944,20 +2070,26 @@ export const edgeCount = <N, E, T extends Kind = "directed">(
|
|
|
1944
2070
|
* const nodeC = 2
|
|
1945
2071
|
*
|
|
1946
2072
|
* const neighborsA = Graph.neighbors(graph, nodeA)
|
|
1947
|
-
* console.log(neighborsA) // [
|
|
2073
|
+
* console.log(neighborsA) // [1, 2]
|
|
1948
2074
|
*
|
|
1949
2075
|
* const neighborsB = Graph.neighbors(graph, nodeB)
|
|
1950
2076
|
* console.log(neighborsB) // []
|
|
1951
2077
|
* ```
|
|
1952
2078
|
*
|
|
1953
|
-
* @since 4.0.0
|
|
1954
2079
|
* @category getters
|
|
2080
|
+
* @since 3.18.0
|
|
1955
2081
|
*/
|
|
1956
2082
|
export const neighbors: {
|
|
1957
2083
|
/**
|
|
1958
|
-
* Returns the neighboring
|
|
2084
|
+
* Returns the neighboring node indices for a node.
|
|
2085
|
+
*
|
|
2086
|
+
* **Details**
|
|
2087
|
+
*
|
|
2088
|
+
* For directed graphs, neighbors are the targets of outgoing edges. For
|
|
2089
|
+
* undirected graphs, neighbors are the other endpoints of incident edges.
|
|
2090
|
+
*
|
|
2091
|
+
* **Example** (Getting outgoing neighbors)
|
|
1959
2092
|
*
|
|
1960
|
-
* @example
|
|
1961
2093
|
* ```ts
|
|
1962
2094
|
* import { Graph } from "effect"
|
|
1963
2095
|
*
|
|
@@ -1974,20 +2106,26 @@ export const neighbors: {
|
|
|
1974
2106
|
* const nodeC = 2
|
|
1975
2107
|
*
|
|
1976
2108
|
* const neighborsA = Graph.neighbors(graph, nodeA)
|
|
1977
|
-
* console.log(neighborsA) // [
|
|
2109
|
+
* console.log(neighborsA) // [1, 2]
|
|
1978
2110
|
*
|
|
1979
2111
|
* const neighborsB = Graph.neighbors(graph, nodeB)
|
|
1980
2112
|
* console.log(neighborsB) // []
|
|
1981
2113
|
* ```
|
|
1982
2114
|
*
|
|
1983
|
-
* @since 4.0.0
|
|
1984
2115
|
* @category getters
|
|
2116
|
+
* @since 3.18.0
|
|
1985
2117
|
*/
|
|
1986
2118
|
(nodeIndex: NodeIndex): <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => Array<NodeIndex>
|
|
1987
2119
|
/**
|
|
1988
|
-
* Returns the neighboring
|
|
2120
|
+
* Returns the neighboring node indices for a node.
|
|
2121
|
+
*
|
|
2122
|
+
* **Details**
|
|
2123
|
+
*
|
|
2124
|
+
* For directed graphs, neighbors are the targets of outgoing edges. For
|
|
2125
|
+
* undirected graphs, neighbors are the other endpoints of incident edges.
|
|
2126
|
+
*
|
|
2127
|
+
* **Example** (Getting outgoing neighbors)
|
|
1989
2128
|
*
|
|
1990
|
-
* @example
|
|
1991
2129
|
* ```ts
|
|
1992
2130
|
* import { Graph } from "effect"
|
|
1993
2131
|
*
|
|
@@ -2004,14 +2142,14 @@ export const neighbors: {
|
|
|
2004
2142
|
* const nodeC = 2
|
|
2005
2143
|
*
|
|
2006
2144
|
* const neighborsA = Graph.neighbors(graph, nodeA)
|
|
2007
|
-
* console.log(neighborsA) // [
|
|
2145
|
+
* console.log(neighborsA) // [1, 2]
|
|
2008
2146
|
*
|
|
2009
2147
|
* const neighborsB = Graph.neighbors(graph, nodeB)
|
|
2010
2148
|
* console.log(neighborsB) // []
|
|
2011
2149
|
* ```
|
|
2012
2150
|
*
|
|
2013
|
-
* @since 4.0.0
|
|
2014
2151
|
* @category getters
|
|
2152
|
+
* @since 3.18.0
|
|
2015
2153
|
*/
|
|
2016
2154
|
<N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>, nodeIndex: NodeIndex): Array<NodeIndex>
|
|
2017
2155
|
} = dual(2, <N, E, T extends Kind = "directed">(
|
|
@@ -2042,7 +2180,8 @@ export const neighbors: {
|
|
|
2042
2180
|
/**
|
|
2043
2181
|
* Get neighbors of a node in a specific direction for bidirectional traversal.
|
|
2044
2182
|
*
|
|
2045
|
-
*
|
|
2183
|
+
* **Example** (Traversing directed neighbors)
|
|
2184
|
+
*
|
|
2046
2185
|
* ```ts
|
|
2047
2186
|
* import { Graph } from "effect"
|
|
2048
2187
|
*
|
|
@@ -2062,14 +2201,15 @@ export const neighbors: {
|
|
|
2062
2201
|
* const incoming = Graph.neighborsDirected(graph, nodeB, "incoming")
|
|
2063
2202
|
* ```
|
|
2064
2203
|
*
|
|
2065
|
-
* @since 4.0.0
|
|
2066
2204
|
* @category queries
|
|
2205
|
+
* @since 3.18.0
|
|
2067
2206
|
*/
|
|
2068
2207
|
export const neighborsDirected: {
|
|
2069
2208
|
/**
|
|
2070
2209
|
* Get neighbors of a node in a specific direction for bidirectional traversal.
|
|
2071
2210
|
*
|
|
2072
|
-
*
|
|
2211
|
+
* **Example** (Traversing directed neighbors)
|
|
2212
|
+
*
|
|
2073
2213
|
* ```ts
|
|
2074
2214
|
* import { Graph } from "effect"
|
|
2075
2215
|
*
|
|
@@ -2089,14 +2229,15 @@ export const neighborsDirected: {
|
|
|
2089
2229
|
* const incoming = Graph.neighborsDirected(graph, nodeB, "incoming")
|
|
2090
2230
|
* ```
|
|
2091
2231
|
*
|
|
2092
|
-
* @since 4.0.0
|
|
2093
2232
|
* @category queries
|
|
2233
|
+
* @since 3.18.0
|
|
2094
2234
|
*/
|
|
2095
2235
|
(nodeIndex: NodeIndex, direction: Direction): <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => Array<NodeIndex>
|
|
2096
2236
|
/**
|
|
2097
2237
|
* Get neighbors of a node in a specific direction for bidirectional traversal.
|
|
2098
2238
|
*
|
|
2099
|
-
*
|
|
2239
|
+
* **Example** (Traversing directed neighbors)
|
|
2240
|
+
*
|
|
2100
2241
|
* ```ts
|
|
2101
2242
|
* import { Graph } from "effect"
|
|
2102
2243
|
*
|
|
@@ -2116,8 +2257,8 @@ export const neighborsDirected: {
|
|
|
2116
2257
|
* const incoming = Graph.neighborsDirected(graph, nodeB, "incoming")
|
|
2117
2258
|
* ```
|
|
2118
2259
|
*
|
|
2119
|
-
* @since 4.0.0
|
|
2120
2260
|
* @category queries
|
|
2261
|
+
* @since 3.18.0
|
|
2121
2262
|
*/
|
|
2122
2263
|
<N, E, T extends Kind = "directed">(
|
|
2123
2264
|
graph: Graph<N, E, T> | MutableGraph<N, E, T>,
|
|
@@ -2163,9 +2304,10 @@ export const neighborsDirected: {
|
|
|
2163
2304
|
* Provides customization for node labels, edge labels, and graph naming
|
|
2164
2305
|
* in DOT format compatible with GraphViz tools.
|
|
2165
2306
|
*
|
|
2166
|
-
*
|
|
2307
|
+
* **Example** (Configuring GraphViz labels)
|
|
2308
|
+
*
|
|
2167
2309
|
* ```ts
|
|
2168
|
-
* import type
|
|
2310
|
+
* import type { Graph } from "effect"
|
|
2169
2311
|
*
|
|
2170
2312
|
* // Basic options with custom labels
|
|
2171
2313
|
* const basicOptions: Graph.GraphVizOptions<string, number> = {
|
|
@@ -2181,8 +2323,8 @@ export const neighborsDirected: {
|
|
|
2181
2323
|
* }
|
|
2182
2324
|
* ```
|
|
2183
2325
|
*
|
|
2184
|
-
* @since 4.0.0
|
|
2185
2326
|
* @category models
|
|
2327
|
+
* @since 3.18.0
|
|
2186
2328
|
*/
|
|
2187
2329
|
export interface GraphVizOptions<N, E> {
|
|
2188
2330
|
/**
|
|
@@ -2207,7 +2349,8 @@ export interface GraphVizOptions<N, E> {
|
|
|
2207
2349
|
/**
|
|
2208
2350
|
* Exports a graph to GraphViz DOT format for visualization.
|
|
2209
2351
|
*
|
|
2210
|
-
*
|
|
2352
|
+
* **Example** (Exporting GraphViz DOT)
|
|
2353
|
+
*
|
|
2211
2354
|
* ```ts
|
|
2212
2355
|
* import { Graph } from "effect"
|
|
2213
2356
|
*
|
|
@@ -2232,14 +2375,15 @@ export interface GraphVizOptions<N, E> {
|
|
|
2232
2375
|
* // }
|
|
2233
2376
|
* ```
|
|
2234
2377
|
*
|
|
2235
|
-
* @since 4.0.0
|
|
2236
2378
|
* @category utils
|
|
2379
|
+
* @since 3.18.0
|
|
2237
2380
|
*/
|
|
2238
2381
|
export const toGraphViz: {
|
|
2239
2382
|
/**
|
|
2240
2383
|
* Exports a graph to GraphViz DOT format for visualization.
|
|
2241
2384
|
*
|
|
2242
|
-
*
|
|
2385
|
+
* **Example** (Exporting GraphViz DOT)
|
|
2386
|
+
*
|
|
2243
2387
|
* ```ts
|
|
2244
2388
|
* import { Graph } from "effect"
|
|
2245
2389
|
*
|
|
@@ -2264,14 +2408,15 @@ export const toGraphViz: {
|
|
|
2264
2408
|
* // }
|
|
2265
2409
|
* ```
|
|
2266
2410
|
*
|
|
2267
|
-
* @since 4.0.0
|
|
2268
2411
|
* @category utils
|
|
2412
|
+
* @since 3.18.0
|
|
2269
2413
|
*/
|
|
2270
2414
|
<N, E>(options?: GraphVizOptions<N, E>): <T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => string
|
|
2271
2415
|
/**
|
|
2272
2416
|
* Exports a graph to GraphViz DOT format for visualization.
|
|
2273
2417
|
*
|
|
2274
|
-
*
|
|
2418
|
+
* **Example** (Exporting GraphViz DOT)
|
|
2419
|
+
*
|
|
2275
2420
|
* ```ts
|
|
2276
2421
|
* import { Graph } from "effect"
|
|
2277
2422
|
*
|
|
@@ -2296,8 +2441,8 @@ export const toGraphViz: {
|
|
|
2296
2441
|
* // }
|
|
2297
2442
|
* ```
|
|
2298
2443
|
*
|
|
2299
|
-
* @since 4.0.0
|
|
2300
2444
|
* @category utils
|
|
2445
|
+
* @since 3.18.0
|
|
2301
2446
|
*/
|
|
2302
2447
|
<N, E, T extends Kind = "directed">(
|
|
2303
2448
|
graph: Graph<N, E, T> | MutableGraph<N, E, T>,
|
|
@@ -2353,9 +2498,10 @@ export const toGraphViz: {
|
|
|
2353
2498
|
* - `subroutine`: Subroutine-style nodes `A[["label"]]`
|
|
2354
2499
|
* - `cylindrical`: Cylindrical database-style nodes `A[("label")]`
|
|
2355
2500
|
*
|
|
2356
|
-
*
|
|
2501
|
+
* **Example** (Selecting Mermaid node shapes)
|
|
2502
|
+
*
|
|
2357
2503
|
* ```ts
|
|
2358
|
-
* import type
|
|
2504
|
+
* import type { Graph } from "effect"
|
|
2359
2505
|
*
|
|
2360
2506
|
* // Shape selector function for different node types
|
|
2361
2507
|
* const shapeSelector = (nodeData: string): Graph.MermaidNodeShape => {
|
|
@@ -2371,8 +2517,8 @@ export const toGraphViz: {
|
|
|
2371
2517
|
* }
|
|
2372
2518
|
* ```
|
|
2373
2519
|
*
|
|
2374
|
-
* @since 4.0.0
|
|
2375
2520
|
* @category models
|
|
2521
|
+
* @since 3.18.0
|
|
2376
2522
|
*/
|
|
2377
2523
|
export type MermaidNodeShape =
|
|
2378
2524
|
| "rectangle" // A["label"]
|
|
@@ -2393,9 +2539,10 @@ export type MermaidNodeShape =
|
|
|
2393
2539
|
* - `LR`: Left to Right (horizontal layout)
|
|
2394
2540
|
* - `RL`: Right to Left (reverse horizontal)
|
|
2395
2541
|
*
|
|
2396
|
-
*
|
|
2542
|
+
* **Example** (Configuring Mermaid directions)
|
|
2543
|
+
*
|
|
2397
2544
|
* ```ts
|
|
2398
|
-
* import type
|
|
2545
|
+
* import type { Graph } from "effect"
|
|
2399
2546
|
*
|
|
2400
2547
|
* // Horizontal workflow diagram
|
|
2401
2548
|
* const horizontalOptions: Graph.MermaidOptions<string, string> = {
|
|
@@ -2413,8 +2560,8 @@ export type MermaidNodeShape =
|
|
|
2413
2560
|
* }
|
|
2414
2561
|
* ```
|
|
2415
2562
|
*
|
|
2416
|
-
* @since 4.0.0
|
|
2417
2563
|
* @category models
|
|
2564
|
+
* @since 3.18.0
|
|
2418
2565
|
*/
|
|
2419
2566
|
export type MermaidDirection =
|
|
2420
2567
|
| "TB" // Top to Bottom (default)
|
|
@@ -2433,9 +2580,10 @@ export type MermaidDirection =
|
|
|
2433
2580
|
* When not specified, automatically selects based on graph type:
|
|
2434
2581
|
* directed graphs use "flowchart", undirected graphs use "graph".
|
|
2435
2582
|
*
|
|
2436
|
-
*
|
|
2583
|
+
* **Example** (Selecting Mermaid diagram types)
|
|
2584
|
+
*
|
|
2437
2585
|
* ```ts
|
|
2438
|
-
* import type
|
|
2586
|
+
* import type { Graph } from "effect"
|
|
2439
2587
|
*
|
|
2440
2588
|
* // Force flowchart format (even for undirected graphs)
|
|
2441
2589
|
* const flowchartOptions: Graph.MermaidOptions<string, string> = {
|
|
@@ -2451,8 +2599,8 @@ export type MermaidDirection =
|
|
|
2451
2599
|
* const autoOptions: Graph.MermaidOptions<string, string> = {}
|
|
2452
2600
|
* ```
|
|
2453
2601
|
*
|
|
2454
|
-
* @since 4.0.0
|
|
2455
2602
|
* @category models
|
|
2603
|
+
* @since 3.18.0
|
|
2456
2604
|
*/
|
|
2457
2605
|
export type MermaidDiagramType =
|
|
2458
2606
|
| "flowchart" // For directed graphs
|
|
@@ -2461,8 +2609,8 @@ export type MermaidDiagramType =
|
|
|
2461
2609
|
/**
|
|
2462
2610
|
* Configuration options for Mermaid diagram generation, following GraphViz pattern.
|
|
2463
2611
|
*
|
|
2464
|
-
* @since 4.0.0
|
|
2465
2612
|
* @category models
|
|
2613
|
+
* @since 4.0.0
|
|
2466
2614
|
*/
|
|
2467
2615
|
/**
|
|
2468
2616
|
* Configuration options for Mermaid diagram generation from graphs.
|
|
@@ -2470,9 +2618,10 @@ export type MermaidDiagramType =
|
|
|
2470
2618
|
* Provides customization for node labels, edge labels, diagram type,
|
|
2471
2619
|
* layout direction, node shapes, and graph naming in Mermaid format.
|
|
2472
2620
|
*
|
|
2473
|
-
*
|
|
2621
|
+
* **Example** (Configuring Mermaid output)
|
|
2622
|
+
*
|
|
2474
2623
|
* ```ts
|
|
2475
|
-
* import type
|
|
2624
|
+
* import type { Graph } from "effect"
|
|
2476
2625
|
*
|
|
2477
2626
|
* // Basic options with custom labels
|
|
2478
2627
|
* const basicOptions: Graph.MermaidOptions<string, number> = {
|
|
@@ -2490,8 +2639,8 @@ export type MermaidDiagramType =
|
|
|
2490
2639
|
* }
|
|
2491
2640
|
* ```
|
|
2492
2641
|
*
|
|
2493
|
-
* @since 4.0.0
|
|
2494
2642
|
* @category models
|
|
2643
|
+
* @since 3.18.0
|
|
2495
2644
|
*/
|
|
2496
2645
|
export interface MermaidOptions<N, E> {
|
|
2497
2646
|
/**
|
|
@@ -2587,9 +2736,10 @@ const formatMermaidNode = (
|
|
|
2587
2736
|
* structures to valid Mermaid syntax for use in documentation, web applications,
|
|
2588
2737
|
* and visualization tools.
|
|
2589
2738
|
*
|
|
2590
|
-
*
|
|
2739
|
+
* **Example** (Exporting a directed Mermaid diagram)
|
|
2740
|
+
*
|
|
2591
2741
|
* ```ts
|
|
2592
|
-
* import
|
|
2742
|
+
* import { Graph } from "effect"
|
|
2593
2743
|
*
|
|
2594
2744
|
* // Basic directed graph export
|
|
2595
2745
|
* const graph = Graph.directed<string, number>((mutable) => {
|
|
@@ -2610,9 +2760,10 @@ const formatMermaidNode = (
|
|
|
2610
2760
|
* // 0 -->|"2"| 2
|
|
2611
2761
|
* ```
|
|
2612
2762
|
*
|
|
2613
|
-
*
|
|
2763
|
+
* **Example** (Exporting an undirected Mermaid diagram)
|
|
2764
|
+
*
|
|
2614
2765
|
* ```ts
|
|
2615
|
-
* import
|
|
2766
|
+
* import { Graph } from "effect"
|
|
2616
2767
|
*
|
|
2617
2768
|
* // Undirected graph with custom labels and direction
|
|
2618
2769
|
* const socialGraph = Graph.undirected<{ name: string }, string>((mutable) => {
|
|
@@ -2637,9 +2788,10 @@ const formatMermaidNode = (
|
|
|
2637
2788
|
* // 1 ---|"colleagues"| 2
|
|
2638
2789
|
* ```
|
|
2639
2790
|
*
|
|
2640
|
-
*
|
|
2791
|
+
* **Example** (Customizing Mermaid node shapes)
|
|
2792
|
+
*
|
|
2641
2793
|
* ```ts
|
|
2642
|
-
* import
|
|
2794
|
+
* import { Graph } from "effect"
|
|
2643
2795
|
*
|
|
2644
2796
|
* // Advanced styling with node shapes for flowchart
|
|
2645
2797
|
* const workflow = Graph.directed<{ type: string; name: string }, string>(
|
|
@@ -2688,9 +2840,10 @@ const formatMermaidNode = (
|
|
|
2688
2840
|
* // 2 --> 3
|
|
2689
2841
|
* ```
|
|
2690
2842
|
*
|
|
2691
|
-
*
|
|
2843
|
+
* **Example** (Visualizing dependency graphs)
|
|
2844
|
+
*
|
|
2692
2845
|
* ```ts
|
|
2693
|
-
* import
|
|
2846
|
+
* import { Graph } from "effect"
|
|
2694
2847
|
*
|
|
2695
2848
|
* // Real-world example: Software dependency graph
|
|
2696
2849
|
* interface Dependency {
|
|
@@ -2749,12 +2902,8 @@ const formatMermaidNode = (
|
|
|
2749
2902
|
* // 0 -->|"builds with"| 3
|
|
2750
2903
|
* ```
|
|
2751
2904
|
*
|
|
2752
|
-
* @param graph - The graph to export (directed or undirected)
|
|
2753
|
-
* @param options - Optional configuration for the Mermaid output
|
|
2754
|
-
* @returns Mermaid diagram syntax as a string
|
|
2755
|
-
*
|
|
2756
|
-
* @since 4.0.0
|
|
2757
2905
|
* @category utils
|
|
2906
|
+
* @since 3.18.0
|
|
2758
2907
|
*/
|
|
2759
2908
|
export const toMermaid: {
|
|
2760
2909
|
/**
|
|
@@ -2765,9 +2914,10 @@ export const toMermaid: {
|
|
|
2765
2914
|
* structures to valid Mermaid syntax for use in documentation, web applications,
|
|
2766
2915
|
* and visualization tools.
|
|
2767
2916
|
*
|
|
2768
|
-
*
|
|
2917
|
+
* **Example** (Exporting a directed Mermaid diagram)
|
|
2918
|
+
*
|
|
2769
2919
|
* ```ts
|
|
2770
|
-
* import
|
|
2920
|
+
* import { Graph } from "effect"
|
|
2771
2921
|
*
|
|
2772
2922
|
* // Basic directed graph export
|
|
2773
2923
|
* const graph = Graph.directed<string, number>((mutable) => {
|
|
@@ -2788,9 +2938,10 @@ export const toMermaid: {
|
|
|
2788
2938
|
* // 0 -->|"2"| 2
|
|
2789
2939
|
* ```
|
|
2790
2940
|
*
|
|
2791
|
-
*
|
|
2941
|
+
* **Example** (Exporting an undirected Mermaid diagram)
|
|
2942
|
+
*
|
|
2792
2943
|
* ```ts
|
|
2793
|
-
* import
|
|
2944
|
+
* import { Graph } from "effect"
|
|
2794
2945
|
*
|
|
2795
2946
|
* // Undirected graph with custom labels and direction
|
|
2796
2947
|
* const socialGraph = Graph.undirected<{ name: string }, string>((mutable) => {
|
|
@@ -2815,9 +2966,10 @@ export const toMermaid: {
|
|
|
2815
2966
|
* // 1 ---|"colleagues"| 2
|
|
2816
2967
|
* ```
|
|
2817
2968
|
*
|
|
2818
|
-
*
|
|
2969
|
+
* **Example** (Customizing Mermaid node shapes)
|
|
2970
|
+
*
|
|
2819
2971
|
* ```ts
|
|
2820
|
-
* import
|
|
2972
|
+
* import { Graph } from "effect"
|
|
2821
2973
|
*
|
|
2822
2974
|
* // Advanced styling with node shapes for flowchart
|
|
2823
2975
|
* const workflow = Graph.directed<{ type: string; name: string }, string>(
|
|
@@ -2866,9 +3018,10 @@ export const toMermaid: {
|
|
|
2866
3018
|
* // 2 --> 3
|
|
2867
3019
|
* ```
|
|
2868
3020
|
*
|
|
2869
|
-
*
|
|
3021
|
+
* **Example** (Visualizing dependency graphs)
|
|
3022
|
+
*
|
|
2870
3023
|
* ```ts
|
|
2871
|
-
* import
|
|
3024
|
+
* import { Graph } from "effect"
|
|
2872
3025
|
*
|
|
2873
3026
|
* // Real-world example: Software dependency graph
|
|
2874
3027
|
* interface Dependency {
|
|
@@ -2927,12 +3080,8 @@ export const toMermaid: {
|
|
|
2927
3080
|
* // 0 -->|"builds with"| 3
|
|
2928
3081
|
* ```
|
|
2929
3082
|
*
|
|
2930
|
-
* @param graph - The graph to export (directed or undirected)
|
|
2931
|
-
* @param options - Optional configuration for the Mermaid output
|
|
2932
|
-
* @returns Mermaid diagram syntax as a string
|
|
2933
|
-
*
|
|
2934
|
-
* @since 4.0.0
|
|
2935
3083
|
* @category utils
|
|
3084
|
+
* @since 3.18.0
|
|
2936
3085
|
*/
|
|
2937
3086
|
<N, E>(options?: MermaidOptions<N, E>): <T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => string
|
|
2938
3087
|
/**
|
|
@@ -2943,9 +3092,10 @@ export const toMermaid: {
|
|
|
2943
3092
|
* structures to valid Mermaid syntax for use in documentation, web applications,
|
|
2944
3093
|
* and visualization tools.
|
|
2945
3094
|
*
|
|
2946
|
-
*
|
|
3095
|
+
* **Example** (Exporting a directed Mermaid diagram)
|
|
3096
|
+
*
|
|
2947
3097
|
* ```ts
|
|
2948
|
-
* import
|
|
3098
|
+
* import { Graph } from "effect"
|
|
2949
3099
|
*
|
|
2950
3100
|
* // Basic directed graph export
|
|
2951
3101
|
* const graph = Graph.directed<string, number>((mutable) => {
|
|
@@ -2966,9 +3116,10 @@ export const toMermaid: {
|
|
|
2966
3116
|
* // 0 -->|"2"| 2
|
|
2967
3117
|
* ```
|
|
2968
3118
|
*
|
|
2969
|
-
*
|
|
3119
|
+
* **Example** (Exporting an undirected Mermaid diagram)
|
|
3120
|
+
*
|
|
2970
3121
|
* ```ts
|
|
2971
|
-
* import
|
|
3122
|
+
* import { Graph } from "effect"
|
|
2972
3123
|
*
|
|
2973
3124
|
* // Undirected graph with custom labels and direction
|
|
2974
3125
|
* const socialGraph = Graph.undirected<{ name: string }, string>((mutable) => {
|
|
@@ -2993,9 +3144,10 @@ export const toMermaid: {
|
|
|
2993
3144
|
* // 1 ---|"colleagues"| 2
|
|
2994
3145
|
* ```
|
|
2995
3146
|
*
|
|
2996
|
-
*
|
|
3147
|
+
* **Example** (Customizing Mermaid node shapes)
|
|
3148
|
+
*
|
|
2997
3149
|
* ```ts
|
|
2998
|
-
* import
|
|
3150
|
+
* import { Graph } from "effect"
|
|
2999
3151
|
*
|
|
3000
3152
|
* // Advanced styling with node shapes for flowchart
|
|
3001
3153
|
* const workflow = Graph.directed<{ type: string; name: string }, string>(
|
|
@@ -3044,9 +3196,10 @@ export const toMermaid: {
|
|
|
3044
3196
|
* // 2 --> 3
|
|
3045
3197
|
* ```
|
|
3046
3198
|
*
|
|
3047
|
-
*
|
|
3199
|
+
* **Example** (Visualizing dependency graphs)
|
|
3200
|
+
*
|
|
3048
3201
|
* ```ts
|
|
3049
|
-
* import
|
|
3202
|
+
* import { Graph } from "effect"
|
|
3050
3203
|
*
|
|
3051
3204
|
* // Real-world example: Software dependency graph
|
|
3052
3205
|
* interface Dependency {
|
|
@@ -3105,12 +3258,8 @@ export const toMermaid: {
|
|
|
3105
3258
|
* // 0 -->|"builds with"| 3
|
|
3106
3259
|
* ```
|
|
3107
3260
|
*
|
|
3108
|
-
* @param graph - The graph to export (directed or undirected)
|
|
3109
|
-
* @param options - Optional configuration for the Mermaid output
|
|
3110
|
-
* @returns Mermaid diagram syntax as a string
|
|
3111
|
-
*
|
|
3112
|
-
* @since 4.0.0
|
|
3113
3261
|
* @category utils
|
|
3262
|
+
* @since 3.18.0
|
|
3114
3263
|
*/
|
|
3115
3264
|
<N, E, T extends Kind = "directed">(
|
|
3116
3265
|
graph: Graph<N, E, T> | MutableGraph<N, E, T>,
|
|
@@ -3170,7 +3319,8 @@ export const toMermaid: {
|
|
|
3170
3319
|
/**
|
|
3171
3320
|
* Direction for graph traversal, indicating which edges to follow.
|
|
3172
3321
|
*
|
|
3173
|
-
*
|
|
3322
|
+
* **Example** (Traversing by direction)
|
|
3323
|
+
*
|
|
3174
3324
|
* ```ts
|
|
3175
3325
|
* import { Graph } from "effect"
|
|
3176
3326
|
*
|
|
@@ -3191,8 +3341,8 @@ export const toMermaid: {
|
|
|
3191
3341
|
* )
|
|
3192
3342
|
* ```
|
|
3193
3343
|
*
|
|
3194
|
-
* @since 4.0.0
|
|
3195
3344
|
* @category models
|
|
3345
|
+
* @since 3.18.0
|
|
3196
3346
|
*/
|
|
3197
3347
|
export type Direction = "outgoing" | "incoming"
|
|
3198
3348
|
|
|
@@ -3207,7 +3357,8 @@ export type Direction = "outgoing" | "incoming"
|
|
|
3207
3357
|
* For directed graphs, any back edge creates a cycle. For undirected graphs,
|
|
3208
3358
|
* a back edge that doesn't go to the immediate parent creates a cycle.
|
|
3209
3359
|
*
|
|
3210
|
-
*
|
|
3360
|
+
* **Example** (Checking cycles)
|
|
3361
|
+
*
|
|
3211
3362
|
* ```ts
|
|
3212
3363
|
* import { Graph } from "effect"
|
|
3213
3364
|
*
|
|
@@ -3231,8 +3382,8 @@ export type Direction = "outgoing" | "incoming"
|
|
|
3231
3382
|
* console.log(Graph.isAcyclic(cyclic)) // false
|
|
3232
3383
|
* ```
|
|
3233
3384
|
*
|
|
3234
|
-
* @since 4.0.0
|
|
3235
3385
|
* @category algorithms
|
|
3386
|
+
* @since 3.18.0
|
|
3236
3387
|
*/
|
|
3237
3388
|
export const isAcyclic = <N, E, T extends Kind = "directed">(
|
|
3238
3389
|
graph: Graph<N, E, T> | MutableGraph<N, E, T>
|
|
@@ -3317,7 +3468,8 @@ export const isAcyclic = <N, E, T extends Kind = "directed">(
|
|
|
3317
3468
|
* such that no two vertices within the same set are adjacent. Uses BFS coloring
|
|
3318
3469
|
* to determine bipartiteness.
|
|
3319
3470
|
*
|
|
3320
|
-
*
|
|
3471
|
+
* **Example** (Checking bipartite graphs)
|
|
3472
|
+
*
|
|
3321
3473
|
* ```ts
|
|
3322
3474
|
* import { Graph } from "effect"
|
|
3323
3475
|
*
|
|
@@ -3345,8 +3497,8 @@ export const isAcyclic = <N, E, T extends Kind = "directed">(
|
|
|
3345
3497
|
* console.log(Graph.isBipartite(triangle)) // false
|
|
3346
3498
|
* ```
|
|
3347
3499
|
*
|
|
3348
|
-
* @since 4.0.0
|
|
3349
3500
|
* @category algorithms
|
|
3501
|
+
* @since 3.18.0
|
|
3350
3502
|
*/
|
|
3351
3503
|
export const isBipartite = <N, E>(
|
|
3352
3504
|
graph: Graph<N, E, "undirected"> | MutableGraph<N, E, "undirected">
|
|
@@ -3426,7 +3578,8 @@ const getUndirectedNeighbors = <N, E>(
|
|
|
3426
3578
|
* Find connected components in an undirected graph.
|
|
3427
3579
|
* Each component is represented as an array of node indices.
|
|
3428
3580
|
*
|
|
3429
|
-
*
|
|
3581
|
+
* **Example** (Finding connected components)
|
|
3582
|
+
*
|
|
3430
3583
|
* ```ts
|
|
3431
3584
|
* import { Graph } from "effect"
|
|
3432
3585
|
*
|
|
@@ -3443,8 +3596,8 @@ const getUndirectedNeighbors = <N, E>(
|
|
|
3443
3596
|
* console.log(components) // [[0, 1], [2, 3]]
|
|
3444
3597
|
* ```
|
|
3445
3598
|
*
|
|
3446
|
-
* @since 4.0.0
|
|
3447
3599
|
* @category algorithms
|
|
3600
|
+
* @since 3.18.0
|
|
3448
3601
|
*/
|
|
3449
3602
|
export const connectedComponents = <N, E>(
|
|
3450
3603
|
graph: Graph<N, E, "undirected"> | MutableGraph<N, E, "undirected">
|
|
@@ -3484,7 +3637,8 @@ export const connectedComponents = <N, E>(
|
|
|
3484
3637
|
* Find strongly connected components in a directed graph using Kosaraju's algorithm.
|
|
3485
3638
|
* Each SCC is represented as an array of node indices.
|
|
3486
3639
|
*
|
|
3487
|
-
*
|
|
3640
|
+
* **Example** (Finding strongly connected components)
|
|
3641
|
+
*
|
|
3488
3642
|
* ```ts
|
|
3489
3643
|
* import { Graph } from "effect"
|
|
3490
3644
|
*
|
|
@@ -3501,8 +3655,8 @@ export const connectedComponents = <N, E>(
|
|
|
3501
3655
|
* console.log(sccs) // [[0, 1, 2]]
|
|
3502
3656
|
* ```
|
|
3503
3657
|
*
|
|
3504
|
-
* @since 4.0.0
|
|
3505
3658
|
* @category algorithms
|
|
3659
|
+
* @since 3.18.0
|
|
3506
3660
|
*/
|
|
3507
3661
|
export const stronglyConnectedComponents = <N, E, T extends Kind = "directed">(
|
|
3508
3662
|
graph: Graph<N, E, T> | MutableGraph<N, E, T>
|
|
@@ -3602,10 +3756,15 @@ export const stronglyConnectedComponents = <N, E, T extends Kind = "directed">(
|
|
|
3602
3756
|
// =============================================================================
|
|
3603
3757
|
|
|
3604
3758
|
/**
|
|
3605
|
-
* Result of a shortest path computation
|
|
3759
|
+
* Result of a shortest path computation.
|
|
3760
|
+
*
|
|
3761
|
+
* **Details**
|
|
3762
|
+
*
|
|
3763
|
+
* Contains the node-index path, the total numeric distance, and the edge data
|
|
3764
|
+
* encountered along the path.
|
|
3606
3765
|
*
|
|
3607
|
-
* @since 4.0.0
|
|
3608
3766
|
* @category models
|
|
3767
|
+
* @since 3.18.0
|
|
3609
3768
|
*/
|
|
3610
3769
|
export interface PathResult<E> {
|
|
3611
3770
|
readonly path: Array<NodeIndex>
|
|
@@ -3614,10 +3773,15 @@ export interface PathResult<E> {
|
|
|
3614
3773
|
}
|
|
3615
3774
|
|
|
3616
3775
|
/**
|
|
3617
|
-
* Configuration for Dijkstra's algorithm.
|
|
3776
|
+
* Configuration for finding a shortest path with Dijkstra's algorithm.
|
|
3777
|
+
*
|
|
3778
|
+
* **Details**
|
|
3779
|
+
*
|
|
3780
|
+
* Specifies the source and target node indices, plus a cost function that maps
|
|
3781
|
+
* each edge's data to a non-negative numeric weight.
|
|
3618
3782
|
*
|
|
3619
|
-
* @since 4.0.0
|
|
3620
3783
|
* @category models
|
|
3784
|
+
* @since 3.18.0
|
|
3621
3785
|
*/
|
|
3622
3786
|
export interface DijkstraConfig<E> {
|
|
3623
3787
|
source: NodeIndex
|
|
@@ -3626,12 +3790,17 @@ export interface DijkstraConfig<E> {
|
|
|
3626
3790
|
}
|
|
3627
3791
|
|
|
3628
3792
|
/**
|
|
3629
|
-
*
|
|
3793
|
+
* Finds the shortest path from the configured source node to the target node
|
|
3794
|
+
* using Dijkstra's algorithm.
|
|
3795
|
+
*
|
|
3796
|
+
* **Details**
|
|
3797
|
+
*
|
|
3798
|
+
* Edge costs must be non-negative. Returns `Option.none()` when the target is
|
|
3799
|
+
* not reachable, and throws a `GraphError` when either endpoint is missing or a
|
|
3800
|
+
* negative edge cost is encountered.
|
|
3630
3801
|
*
|
|
3631
|
-
*
|
|
3632
|
-
* path from a source node to a target node in O((V + E) log V) time complexity.
|
|
3802
|
+
* **Example** (Finding shortest paths with Dijkstra)
|
|
3633
3803
|
*
|
|
3634
|
-
* @example
|
|
3635
3804
|
* ```ts
|
|
3636
3805
|
* import { Graph } from "effect"
|
|
3637
3806
|
*
|
|
@@ -3656,17 +3825,22 @@ export interface DijkstraConfig<E> {
|
|
|
3656
3825
|
* }
|
|
3657
3826
|
* ```
|
|
3658
3827
|
*
|
|
3659
|
-
* @since 4.0.0
|
|
3660
3828
|
* @category algorithms
|
|
3829
|
+
* @since 3.18.0
|
|
3661
3830
|
*/
|
|
3662
3831
|
export const dijkstra: {
|
|
3663
3832
|
/**
|
|
3664
|
-
*
|
|
3833
|
+
* Finds the shortest path from the configured source node to the target node
|
|
3834
|
+
* using Dijkstra's algorithm.
|
|
3835
|
+
*
|
|
3836
|
+
* **Details**
|
|
3665
3837
|
*
|
|
3666
|
-
*
|
|
3667
|
-
*
|
|
3838
|
+
* Edge costs must be non-negative. Returns `Option.none()` when the target is
|
|
3839
|
+
* not reachable, and throws a `GraphError` when either endpoint is missing or a
|
|
3840
|
+
* negative edge cost is encountered.
|
|
3841
|
+
*
|
|
3842
|
+
* **Example** (Finding shortest paths with Dijkstra)
|
|
3668
3843
|
*
|
|
3669
|
-
* @example
|
|
3670
3844
|
* ```ts
|
|
3671
3845
|
* import { Graph } from "effect"
|
|
3672
3846
|
*
|
|
@@ -3691,17 +3865,22 @@ export const dijkstra: {
|
|
|
3691
3865
|
* }
|
|
3692
3866
|
* ```
|
|
3693
3867
|
*
|
|
3694
|
-
* @since 4.0.0
|
|
3695
3868
|
* @category algorithms
|
|
3869
|
+
* @since 3.18.0
|
|
3696
3870
|
*/
|
|
3697
3871
|
<E>(config: DijkstraConfig<E>): <N, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => Option.Option<PathResult<E>>
|
|
3698
3872
|
/**
|
|
3699
|
-
*
|
|
3873
|
+
* Finds the shortest path from the configured source node to the target node
|
|
3874
|
+
* using Dijkstra's algorithm.
|
|
3875
|
+
*
|
|
3876
|
+
* **Details**
|
|
3700
3877
|
*
|
|
3701
|
-
*
|
|
3702
|
-
*
|
|
3878
|
+
* Edge costs must be non-negative. Returns `Option.none()` when the target is
|
|
3879
|
+
* not reachable, and throws a `GraphError` when either endpoint is missing or a
|
|
3880
|
+
* negative edge cost is encountered.
|
|
3881
|
+
*
|
|
3882
|
+
* **Example** (Finding shortest paths with Dijkstra)
|
|
3703
3883
|
*
|
|
3704
|
-
* @example
|
|
3705
3884
|
* ```ts
|
|
3706
3885
|
* import { Graph } from "effect"
|
|
3707
3886
|
*
|
|
@@ -3726,8 +3905,8 @@ export const dijkstra: {
|
|
|
3726
3905
|
* }
|
|
3727
3906
|
* ```
|
|
3728
3907
|
*
|
|
3729
|
-
* @since 4.0.0
|
|
3730
3908
|
* @category algorithms
|
|
3909
|
+
* @since 3.18.0
|
|
3731
3910
|
*/
|
|
3732
3911
|
<N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>, config: DijkstraConfig<E>): Option.Option<PathResult<E>>
|
|
3733
3912
|
} = dual(2, <N, E, T extends Kind = "directed">(
|
|
@@ -3857,10 +4036,15 @@ export const dijkstra: {
|
|
|
3857
4036
|
})
|
|
3858
4037
|
|
|
3859
4038
|
/**
|
|
3860
|
-
* Result of all-pairs shortest path computation.
|
|
4039
|
+
* Result of an all-pairs shortest path computation.
|
|
4040
|
+
*
|
|
4041
|
+
* **Details**
|
|
4042
|
+
*
|
|
4043
|
+
* Contains distance, node-path, and edge-data maps keyed by source and target
|
|
4044
|
+
* node indices.
|
|
3861
4045
|
*
|
|
3862
|
-
* @since 4.0.0
|
|
3863
4046
|
* @category models
|
|
4047
|
+
* @since 3.18.0
|
|
3864
4048
|
*/
|
|
3865
4049
|
export interface AllPairsResult<E> {
|
|
3866
4050
|
readonly distances: Map<NodeIndex, Map<NodeIndex, number>>
|
|
@@ -3869,14 +4053,17 @@ export interface AllPairsResult<E> {
|
|
|
3869
4053
|
}
|
|
3870
4054
|
|
|
3871
4055
|
/**
|
|
3872
|
-
*
|
|
4056
|
+
* Finds shortest paths between all pairs of nodes using the Floyd-Warshall
|
|
4057
|
+
* algorithm.
|
|
3873
4058
|
*
|
|
3874
|
-
*
|
|
3875
|
-
* It can handle negative edge weights and detect negative cycles.
|
|
4059
|
+
* **Details**
|
|
3876
4060
|
*
|
|
3877
|
-
*
|
|
4061
|
+
* Computes distances, reconstructed node paths, and edge-data paths for every
|
|
4062
|
+
* source and target pair in O(V^3) time. Negative edge weights are allowed, but
|
|
4063
|
+
* a `GraphError` is thrown if any negative cycle is detected.
|
|
4064
|
+
*
|
|
4065
|
+
* **Example** (Finding all-pairs shortest paths)
|
|
3878
4066
|
*
|
|
3879
|
-
* @example
|
|
3880
4067
|
* ```ts
|
|
3881
4068
|
* import { Graph } from "effect"
|
|
3882
4069
|
*
|
|
@@ -3894,19 +4081,22 @@ export interface AllPairsResult<E> {
|
|
|
3894
4081
|
* const pathAToC = result.paths.get(0)?.get(2) // [0, 1, 2]
|
|
3895
4082
|
* ```
|
|
3896
4083
|
*
|
|
3897
|
-
* @since 4.0.0
|
|
3898
4084
|
* @category algorithms
|
|
4085
|
+
* @since 3.18.0
|
|
3899
4086
|
*/
|
|
3900
4087
|
export const floydWarshall: {
|
|
3901
4088
|
/**
|
|
3902
|
-
*
|
|
4089
|
+
* Finds shortest paths between all pairs of nodes using the Floyd-Warshall
|
|
4090
|
+
* algorithm.
|
|
3903
4091
|
*
|
|
3904
|
-
*
|
|
3905
|
-
* It can handle negative edge weights and detect negative cycles.
|
|
4092
|
+
* **Details**
|
|
3906
4093
|
*
|
|
3907
|
-
*
|
|
4094
|
+
* Computes distances, reconstructed node paths, and edge-data paths for every
|
|
4095
|
+
* source and target pair in O(V^3) time. Negative edge weights are allowed, but
|
|
4096
|
+
* a `GraphError` is thrown if any negative cycle is detected.
|
|
4097
|
+
*
|
|
4098
|
+
* **Example** (Finding all-pairs shortest paths)
|
|
3908
4099
|
*
|
|
3909
|
-
* @example
|
|
3910
4100
|
* ```ts
|
|
3911
4101
|
* import { Graph } from "effect"
|
|
3912
4102
|
*
|
|
@@ -3924,19 +4114,22 @@ export const floydWarshall: {
|
|
|
3924
4114
|
* const pathAToC = result.paths.get(0)?.get(2) // [0, 1, 2]
|
|
3925
4115
|
* ```
|
|
3926
4116
|
*
|
|
3927
|
-
* @since 4.0.0
|
|
3928
4117
|
* @category algorithms
|
|
4118
|
+
* @since 3.18.0
|
|
3929
4119
|
*/
|
|
3930
4120
|
<E>(cost: (edgeData: E) => number): <N, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => AllPairsResult<E>
|
|
3931
4121
|
/**
|
|
3932
|
-
*
|
|
4122
|
+
* Finds shortest paths between all pairs of nodes using the Floyd-Warshall
|
|
4123
|
+
* algorithm.
|
|
4124
|
+
*
|
|
4125
|
+
* **Details**
|
|
3933
4126
|
*
|
|
3934
|
-
*
|
|
3935
|
-
*
|
|
4127
|
+
* Computes distances, reconstructed node paths, and edge-data paths for every
|
|
4128
|
+
* source and target pair in O(V^3) time. Negative edge weights are allowed, but
|
|
4129
|
+
* a `GraphError` is thrown if any negative cycle is detected.
|
|
3936
4130
|
*
|
|
3937
|
-
*
|
|
4131
|
+
* **Example** (Finding all-pairs shortest paths)
|
|
3938
4132
|
*
|
|
3939
|
-
* @example
|
|
3940
4133
|
* ```ts
|
|
3941
4134
|
* import { Graph } from "effect"
|
|
3942
4135
|
*
|
|
@@ -3954,8 +4147,8 @@ export const floydWarshall: {
|
|
|
3954
4147
|
* const pathAToC = result.paths.get(0)?.get(2) // [0, 1, 2]
|
|
3955
4148
|
* ```
|
|
3956
4149
|
*
|
|
3957
|
-
* @since 4.0.0
|
|
3958
4150
|
* @category algorithms
|
|
4151
|
+
* @since 3.18.0
|
|
3959
4152
|
*/
|
|
3960
4153
|
<N, E, T extends Kind = "directed">(
|
|
3961
4154
|
graph: Graph<N, E, T> | MutableGraph<N, E, T>,
|
|
@@ -4073,10 +4266,15 @@ export const floydWarshall: {
|
|
|
4073
4266
|
})
|
|
4074
4267
|
|
|
4075
4268
|
/**
|
|
4076
|
-
* Configuration for A*
|
|
4269
|
+
* Configuration for finding a shortest path with the A* algorithm.
|
|
4270
|
+
*
|
|
4271
|
+
* **Details**
|
|
4272
|
+
*
|
|
4273
|
+
* Specifies the source and target node indices, an edge-cost function, and a
|
|
4274
|
+
* heuristic that estimates the remaining cost from a node to the target.
|
|
4077
4275
|
*
|
|
4078
|
-
* @since 4.0.0
|
|
4079
4276
|
* @category models
|
|
4277
|
+
* @since 3.18.0
|
|
4080
4278
|
*/
|
|
4081
4279
|
export interface AstarConfig<E, N> {
|
|
4082
4280
|
source: NodeIndex
|
|
@@ -4086,13 +4284,18 @@ export interface AstarConfig<E, N> {
|
|
|
4086
4284
|
}
|
|
4087
4285
|
|
|
4088
4286
|
/**
|
|
4089
|
-
*
|
|
4287
|
+
* Finds the shortest path from the configured source node to the target node
|
|
4288
|
+
* using the A* pathfinding algorithm.
|
|
4289
|
+
*
|
|
4290
|
+
* **Details**
|
|
4090
4291
|
*
|
|
4091
|
-
*
|
|
4092
|
-
*
|
|
4093
|
-
*
|
|
4292
|
+
* The edge-cost function must return non-negative weights, and the heuristic
|
|
4293
|
+
* should be admissible to preserve shortest-path guarantees. Returns
|
|
4294
|
+
* `Option.none()` when the target is not reachable, and throws a `GraphError`
|
|
4295
|
+
* when either endpoint is missing or a negative edge cost is encountered.
|
|
4296
|
+
*
|
|
4297
|
+
* **Example** (Finding shortest paths with A-star)
|
|
4094
4298
|
*
|
|
4095
|
-
* @example
|
|
4096
4299
|
* ```ts
|
|
4097
4300
|
* import { Graph } from "effect"
|
|
4098
4301
|
*
|
|
@@ -4123,18 +4326,23 @@ export interface AstarConfig<E, N> {
|
|
|
4123
4326
|
* }
|
|
4124
4327
|
* ```
|
|
4125
4328
|
*
|
|
4126
|
-
* @since 4.0.0
|
|
4127
4329
|
* @category algorithms
|
|
4330
|
+
* @since 3.18.0
|
|
4128
4331
|
*/
|
|
4129
4332
|
export const astar: {
|
|
4130
4333
|
/**
|
|
4131
|
-
*
|
|
4334
|
+
* Finds the shortest path from the configured source node to the target node
|
|
4335
|
+
* using the A* pathfinding algorithm.
|
|
4132
4336
|
*
|
|
4133
|
-
*
|
|
4134
|
-
*
|
|
4135
|
-
* The
|
|
4337
|
+
* **Details**
|
|
4338
|
+
*
|
|
4339
|
+
* The edge-cost function must return non-negative weights, and the heuristic
|
|
4340
|
+
* should be admissible to preserve shortest-path guarantees. Returns
|
|
4341
|
+
* `Option.none()` when the target is not reachable, and throws a `GraphError`
|
|
4342
|
+
* when either endpoint is missing or a negative edge cost is encountered.
|
|
4343
|
+
*
|
|
4344
|
+
* **Example** (Finding shortest paths with A-star)
|
|
4136
4345
|
*
|
|
4137
|
-
* @example
|
|
4138
4346
|
* ```ts
|
|
4139
4347
|
* import { Graph } from "effect"
|
|
4140
4348
|
*
|
|
@@ -4165,18 +4373,23 @@ export const astar: {
|
|
|
4165
4373
|
* }
|
|
4166
4374
|
* ```
|
|
4167
4375
|
*
|
|
4168
|
-
* @since 4.0.0
|
|
4169
4376
|
* @category algorithms
|
|
4377
|
+
* @since 3.18.0
|
|
4170
4378
|
*/
|
|
4171
4379
|
<E, N>(config: AstarConfig<E, N>): <T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => Option.Option<PathResult<E>>
|
|
4172
4380
|
/**
|
|
4173
|
-
*
|
|
4381
|
+
* Finds the shortest path from the configured source node to the target node
|
|
4382
|
+
* using the A* pathfinding algorithm.
|
|
4383
|
+
*
|
|
4384
|
+
* **Details**
|
|
4385
|
+
*
|
|
4386
|
+
* The edge-cost function must return non-negative weights, and the heuristic
|
|
4387
|
+
* should be admissible to preserve shortest-path guarantees. Returns
|
|
4388
|
+
* `Option.none()` when the target is not reachable, and throws a `GraphError`
|
|
4389
|
+
* when either endpoint is missing or a negative edge cost is encountered.
|
|
4174
4390
|
*
|
|
4175
|
-
*
|
|
4176
|
-
* the search towards the target, potentially finding paths faster than Dijkstra's.
|
|
4177
|
-
* The heuristic must be admissible (never overestimate the actual cost).
|
|
4391
|
+
* **Example** (Finding shortest paths with A-star)
|
|
4178
4392
|
*
|
|
4179
|
-
* @example
|
|
4180
4393
|
* ```ts
|
|
4181
4394
|
* import { Graph } from "effect"
|
|
4182
4395
|
*
|
|
@@ -4207,8 +4420,8 @@ export const astar: {
|
|
|
4207
4420
|
* }
|
|
4208
4421
|
* ```
|
|
4209
4422
|
*
|
|
4210
|
-
* @since 4.0.0
|
|
4211
4423
|
* @category algorithms
|
|
4424
|
+
* @since 3.18.0
|
|
4212
4425
|
*/
|
|
4213
4426
|
<N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>, config: AstarConfig<E, N>): Option.Option<PathResult<E>>
|
|
4214
4427
|
} = dual(2, <N, E, T extends Kind = "directed">(
|
|
@@ -4362,10 +4575,15 @@ export const astar: {
|
|
|
4362
4575
|
})
|
|
4363
4576
|
|
|
4364
4577
|
/**
|
|
4365
|
-
* Configuration for Bellman-Ford algorithm.
|
|
4578
|
+
* Configuration for finding a shortest path with the Bellman-Ford algorithm.
|
|
4579
|
+
*
|
|
4580
|
+
* **Details**
|
|
4581
|
+
*
|
|
4582
|
+
* Specifies the source and target node indices, plus a cost function that maps
|
|
4583
|
+
* each edge's data to a numeric weight.
|
|
4366
4584
|
*
|
|
4367
|
-
* @since 4.0.0
|
|
4368
4585
|
* @category models
|
|
4586
|
+
* @since 3.18.0
|
|
4369
4587
|
*/
|
|
4370
4588
|
export interface BellmanFordConfig<E> {
|
|
4371
4589
|
source: NodeIndex
|
|
@@ -4374,13 +4592,17 @@ export interface BellmanFordConfig<E> {
|
|
|
4374
4592
|
}
|
|
4375
4593
|
|
|
4376
4594
|
/**
|
|
4377
|
-
*
|
|
4595
|
+
* Finds the shortest path from the configured source node to the target node
|
|
4596
|
+
* using the Bellman-Ford algorithm.
|
|
4597
|
+
*
|
|
4598
|
+
* **Details**
|
|
4378
4599
|
*
|
|
4379
|
-
*
|
|
4380
|
-
*
|
|
4381
|
-
*
|
|
4600
|
+
* Negative edge weights are allowed. Returns `Option.none()` when the target is
|
|
4601
|
+
* unreachable or when a negative cycle affects the path to the target. Throws a
|
|
4602
|
+
* `GraphError` when either endpoint is missing.
|
|
4603
|
+
*
|
|
4604
|
+
* **Example** (Finding shortest paths with Bellman-Ford)
|
|
4382
4605
|
*
|
|
4383
|
-
* @example
|
|
4384
4606
|
* ```ts
|
|
4385
4607
|
* import { Graph } from "effect"
|
|
4386
4608
|
*
|
|
@@ -4405,18 +4627,22 @@ export interface BellmanFordConfig<E> {
|
|
|
4405
4627
|
* }
|
|
4406
4628
|
* ```
|
|
4407
4629
|
*
|
|
4408
|
-
* @since 4.0.0
|
|
4409
4630
|
* @category algorithms
|
|
4631
|
+
* @since 3.18.0
|
|
4410
4632
|
*/
|
|
4411
4633
|
export const bellmanFord: {
|
|
4412
4634
|
/**
|
|
4413
|
-
*
|
|
4635
|
+
* Finds the shortest path from the configured source node to the target node
|
|
4636
|
+
* using the Bellman-Ford algorithm.
|
|
4637
|
+
*
|
|
4638
|
+
* **Details**
|
|
4414
4639
|
*
|
|
4415
|
-
*
|
|
4416
|
-
*
|
|
4417
|
-
*
|
|
4640
|
+
* Negative edge weights are allowed. Returns `Option.none()` when the target is
|
|
4641
|
+
* unreachable or when a negative cycle affects the path to the target. Throws a
|
|
4642
|
+
* `GraphError` when either endpoint is missing.
|
|
4643
|
+
*
|
|
4644
|
+
* **Example** (Finding shortest paths with Bellman-Ford)
|
|
4418
4645
|
*
|
|
4419
|
-
* @example
|
|
4420
4646
|
* ```ts
|
|
4421
4647
|
* import { Graph } from "effect"
|
|
4422
4648
|
*
|
|
@@ -4441,18 +4667,22 @@ export const bellmanFord: {
|
|
|
4441
4667
|
* }
|
|
4442
4668
|
* ```
|
|
4443
4669
|
*
|
|
4444
|
-
* @since 4.0.0
|
|
4445
4670
|
* @category algorithms
|
|
4671
|
+
* @since 3.18.0
|
|
4446
4672
|
*/
|
|
4447
4673
|
<E>(config: BellmanFordConfig<E>): <N, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => Option.Option<PathResult<E>>
|
|
4448
4674
|
/**
|
|
4449
|
-
*
|
|
4675
|
+
* Finds the shortest path from the configured source node to the target node
|
|
4676
|
+
* using the Bellman-Ford algorithm.
|
|
4450
4677
|
*
|
|
4451
|
-
*
|
|
4452
|
-
*
|
|
4453
|
-
* Returns Option.none()
|
|
4678
|
+
* **Details**
|
|
4679
|
+
*
|
|
4680
|
+
* Negative edge weights are allowed. Returns `Option.none()` when the target is
|
|
4681
|
+
* unreachable or when a negative cycle affects the path to the target. Throws a
|
|
4682
|
+
* `GraphError` when either endpoint is missing.
|
|
4683
|
+
*
|
|
4684
|
+
* **Example** (Finding shortest paths with Bellman-Ford)
|
|
4454
4685
|
*
|
|
4455
|
-
* @example
|
|
4456
4686
|
* ```ts
|
|
4457
4687
|
* import { Graph } from "effect"
|
|
4458
4688
|
*
|
|
@@ -4477,8 +4707,8 @@ export const bellmanFord: {
|
|
|
4477
4707
|
* }
|
|
4478
4708
|
* ```
|
|
4479
4709
|
*
|
|
4480
|
-
* @since 4.0.0
|
|
4481
4710
|
* @category algorithms
|
|
4711
|
+
* @since 3.18.0
|
|
4482
4712
|
*/
|
|
4483
4713
|
<N, E, T extends Kind = "directed">(
|
|
4484
4714
|
graph: Graph<N, E, T> | MutableGraph<N, E, T>,
|
|
@@ -4614,13 +4844,16 @@ export const bellmanFord: {
|
|
|
4614
4844
|
})
|
|
4615
4845
|
|
|
4616
4846
|
/**
|
|
4617
|
-
*
|
|
4847
|
+
* Iterable wrapper used by graph traversal and listing APIs.
|
|
4848
|
+
*
|
|
4849
|
+
* **Details**
|
|
4850
|
+
*
|
|
4851
|
+
* A `Walker` yields `[index, data]` pairs lazily and can be viewed as just the
|
|
4852
|
+
* indices, just the values, or mapped entries with `indices`, `values`,
|
|
4853
|
+
* `entries`, and `visit`.
|
|
4618
4854
|
*
|
|
4619
|
-
*
|
|
4620
|
-
* including traversal iterators (DFS, BFS, etc.) and element iterators (nodes, externals).
|
|
4621
|
-
* It uses a mapEntry function pattern for flexible iteration and transformation.
|
|
4855
|
+
* **Example** (Working with node walkers)
|
|
4622
4856
|
*
|
|
4623
|
-
* @example
|
|
4624
4857
|
* ```ts
|
|
4625
4858
|
* import { Graph } from "effect"
|
|
4626
4859
|
*
|
|
@@ -4644,8 +4877,8 @@ export const bellmanFord: {
|
|
|
4644
4877
|
* const nodeEntries = Array.from(Graph.entries(allNodes)) // [[0, "A"], [1, "B"]]
|
|
4645
4878
|
* ```
|
|
4646
4879
|
*
|
|
4647
|
-
* @since 4.0.0
|
|
4648
4880
|
* @category models
|
|
4881
|
+
* @since 3.18.0
|
|
4649
4882
|
*/
|
|
4650
4883
|
export class Walker<T, N> implements Iterable<[T, N]> {
|
|
4651
4884
|
// @ts-ignore
|
|
@@ -4658,7 +4891,8 @@ export class Walker<T, N> implements Iterable<[T, N]> {
|
|
|
4658
4891
|
* and returns an iterable of the mapped values. Skips elements that
|
|
4659
4892
|
* no longer exist in the graph.
|
|
4660
4893
|
*
|
|
4661
|
-
*
|
|
4894
|
+
* **Example** (Visiting walker elements)
|
|
4895
|
+
*
|
|
4662
4896
|
* ```ts
|
|
4663
4897
|
* import { Graph } from "effect"
|
|
4664
4898
|
*
|
|
@@ -4682,7 +4916,6 @@ export class Walker<T, N> implements Iterable<[T, N]> {
|
|
|
4682
4916
|
* ```
|
|
4683
4917
|
*
|
|
4684
4918
|
* @since 4.0.0
|
|
4685
|
-
* @category iterators
|
|
4686
4919
|
*/
|
|
4687
4920
|
readonly visit: <U>(f: (index: T, data: N) => U) => Iterable<U>
|
|
4688
4921
|
|
|
@@ -4694,7 +4927,8 @@ export class Walker<T, N> implements Iterable<[T, N]> {
|
|
|
4694
4927
|
* and returns an iterable of the mapped values. Skips elements that
|
|
4695
4928
|
* no longer exist in the graph.
|
|
4696
4929
|
*
|
|
4697
|
-
*
|
|
4930
|
+
* **Example** (Visiting walker elements)
|
|
4931
|
+
*
|
|
4698
4932
|
* ```ts
|
|
4699
4933
|
* import { Graph } from "effect"
|
|
4700
4934
|
*
|
|
@@ -4717,8 +4951,8 @@ export class Walker<T, N> implements Iterable<[T, N]> {
|
|
|
4717
4951
|
* console.log(custom) // [{ id: 0, name: "A" }, { id: 1, name: "B" }]
|
|
4718
4952
|
* ```
|
|
4719
4953
|
*
|
|
4720
|
-
* @since 4.0.0
|
|
4721
4954
|
* @category iterators
|
|
4955
|
+
* @since 4.0.0
|
|
4722
4956
|
*/
|
|
4723
4957
|
visit: <U>(f: (index: T, data: N) => U) => Iterable<U>
|
|
4724
4958
|
) {
|
|
@@ -4731,8 +4965,8 @@ export class Walker<T, N> implements Iterable<[T, N]> {
|
|
|
4731
4965
|
* Type alias for node iteration using Walker.
|
|
4732
4966
|
* NodeWalker is represented as Walker<NodeIndex, N>.
|
|
4733
4967
|
*
|
|
4734
|
-
* @since 4.0.0
|
|
4735
4968
|
* @category models
|
|
4969
|
+
* @since 3.18.0
|
|
4736
4970
|
*/
|
|
4737
4971
|
export type NodeWalker<N> = Walker<NodeIndex, N>
|
|
4738
4972
|
|
|
@@ -4740,15 +4974,16 @@ export type NodeWalker<N> = Walker<NodeIndex, N>
|
|
|
4740
4974
|
* Type alias for edge iteration using Walker.
|
|
4741
4975
|
* EdgeWalker is represented as Walker<EdgeIndex, Edge<E>>.
|
|
4742
4976
|
*
|
|
4743
|
-
* @since 4.0.0
|
|
4744
4977
|
* @category models
|
|
4978
|
+
* @since 3.18.0
|
|
4745
4979
|
*/
|
|
4746
4980
|
export type EdgeWalker<E> = Walker<EdgeIndex, Edge<E>>
|
|
4747
4981
|
|
|
4748
4982
|
/**
|
|
4749
4983
|
* Returns an iterator over the indices in the walker.
|
|
4750
4984
|
*
|
|
4751
|
-
*
|
|
4985
|
+
* **Example** (Iterating walker indices)
|
|
4986
|
+
*
|
|
4752
4987
|
* ```ts
|
|
4753
4988
|
* import { Graph } from "effect"
|
|
4754
4989
|
*
|
|
@@ -4763,15 +4998,16 @@ export type EdgeWalker<E> = Walker<EdgeIndex, Edge<E>>
|
|
|
4763
4998
|
* console.log(indices) // [0, 1]
|
|
4764
4999
|
* ```
|
|
4765
5000
|
*
|
|
4766
|
-
* @
|
|
4767
|
-
* @
|
|
5001
|
+
* @category utils
|
|
5002
|
+
* @since 3.18.0
|
|
4768
5003
|
*/
|
|
4769
5004
|
export const indices = <T, N>(walker: Walker<T, N>): Iterable<T> => walker.visit((index, _) => index)
|
|
4770
5005
|
|
|
4771
5006
|
/**
|
|
4772
5007
|
* Returns an iterator over the values (data) in the walker.
|
|
4773
5008
|
*
|
|
4774
|
-
*
|
|
5009
|
+
* **Example** (Iterating walker values)
|
|
5010
|
+
*
|
|
4775
5011
|
* ```ts
|
|
4776
5012
|
* import { Graph } from "effect"
|
|
4777
5013
|
*
|
|
@@ -4786,15 +5022,16 @@ export const indices = <T, N>(walker: Walker<T, N>): Iterable<T> => walker.visit
|
|
|
4786
5022
|
* console.log(values) // ["A", "B"]
|
|
4787
5023
|
* ```
|
|
4788
5024
|
*
|
|
4789
|
-
* @
|
|
4790
|
-
* @
|
|
5025
|
+
* @category utils
|
|
5026
|
+
* @since 3.18.0
|
|
4791
5027
|
*/
|
|
4792
5028
|
export const values = <T, N>(walker: Walker<T, N>): Iterable<N> => walker.visit((_, data) => data)
|
|
4793
5029
|
|
|
4794
5030
|
/**
|
|
4795
5031
|
* Returns an iterator over [index, data] entries in the walker.
|
|
4796
5032
|
*
|
|
4797
|
-
*
|
|
5033
|
+
* **Example** (Iterating walker entries)
|
|
5034
|
+
*
|
|
4798
5035
|
* ```ts
|
|
4799
5036
|
* import { Graph } from "effect"
|
|
4800
5037
|
*
|
|
@@ -4809,17 +5046,23 @@ export const values = <T, N>(walker: Walker<T, N>): Iterable<N> => walker.visit(
|
|
|
4809
5046
|
* console.log(entries) // [[0, "A"], [1, "B"]]
|
|
4810
5047
|
* ```
|
|
4811
5048
|
*
|
|
4812
|
-
* @
|
|
4813
|
-
* @
|
|
5049
|
+
* @category utils
|
|
5050
|
+
* @since 3.18.0
|
|
4814
5051
|
*/
|
|
4815
5052
|
export const entries = <T, N>(walker: Walker<T, N>): Iterable<[T, N]> =>
|
|
4816
5053
|
walker.visit((index, data) => [index, data] as [T, N])
|
|
4817
5054
|
|
|
4818
5055
|
/**
|
|
4819
|
-
* Configuration
|
|
5056
|
+
* Configuration for DFS, BFS, and postorder graph traversals.
|
|
5057
|
+
*
|
|
5058
|
+
* **Details**
|
|
5059
|
+
*
|
|
5060
|
+
* `start` supplies the node indices where traversal begins. If it is omitted,
|
|
5061
|
+
* the iterator is empty. `direction` chooses whether traversal follows
|
|
5062
|
+
* outgoing or incoming edges.
|
|
4820
5063
|
*
|
|
4821
|
-
* @since 4.0.0
|
|
4822
5064
|
* @category models
|
|
5065
|
+
* @since 3.18.0
|
|
4823
5066
|
*/
|
|
4824
5067
|
export interface SearchConfig {
|
|
4825
5068
|
readonly start?: Array<NodeIndex>
|
|
@@ -4827,12 +5070,17 @@ export interface SearchConfig {
|
|
|
4827
5070
|
}
|
|
4828
5071
|
|
|
4829
5072
|
/**
|
|
4830
|
-
* Creates a
|
|
5073
|
+
* Creates a lazy depth-first traversal iterator from the configured start
|
|
5074
|
+
* nodes.
|
|
4831
5075
|
*
|
|
4832
|
-
*
|
|
4833
|
-
*
|
|
5076
|
+
* **Details**
|
|
5077
|
+
*
|
|
5078
|
+
* If no start nodes are supplied, the iterator is empty. The `direction` option
|
|
5079
|
+
* chooses whether to follow outgoing or incoming edges. Throws a `GraphError`
|
|
5080
|
+
* if any configured start node does not exist.
|
|
5081
|
+
*
|
|
5082
|
+
* **Example** (Traversing depth-first)
|
|
4834
5083
|
*
|
|
4835
|
-
* @example
|
|
4836
5084
|
* ```ts
|
|
4837
5085
|
* import { Graph } from "effect"
|
|
4838
5086
|
*
|
|
@@ -4855,17 +5103,22 @@ export interface SearchConfig {
|
|
|
4855
5103
|
* // Can be used programmatically
|
|
4856
5104
|
* ```
|
|
4857
5105
|
*
|
|
4858
|
-
* @since 4.0.0
|
|
4859
5106
|
* @category iterators
|
|
5107
|
+
* @since 3.18.0
|
|
4860
5108
|
*/
|
|
4861
5109
|
export const dfs: {
|
|
4862
5110
|
/**
|
|
4863
|
-
* Creates a
|
|
5111
|
+
* Creates a lazy depth-first traversal iterator from the configured start
|
|
5112
|
+
* nodes.
|
|
5113
|
+
*
|
|
5114
|
+
* **Details**
|
|
5115
|
+
*
|
|
5116
|
+
* If no start nodes are supplied, the iterator is empty. The `direction` option
|
|
5117
|
+
* chooses whether to follow outgoing or incoming edges. Throws a `GraphError`
|
|
5118
|
+
* if any configured start node does not exist.
|
|
4864
5119
|
*
|
|
4865
|
-
*
|
|
4866
|
-
* It provides lazy evaluation of the depth-first search.
|
|
5120
|
+
* **Example** (Traversing depth-first)
|
|
4867
5121
|
*
|
|
4868
|
-
* @example
|
|
4869
5122
|
* ```ts
|
|
4870
5123
|
* import { Graph } from "effect"
|
|
4871
5124
|
*
|
|
@@ -4888,17 +5141,22 @@ export const dfs: {
|
|
|
4888
5141
|
* // Can be used programmatically
|
|
4889
5142
|
* ```
|
|
4890
5143
|
*
|
|
4891
|
-
* @since 4.0.0
|
|
4892
5144
|
* @category iterators
|
|
5145
|
+
* @since 3.18.0
|
|
4893
5146
|
*/
|
|
4894
5147
|
(config?: SearchConfig): <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => NodeWalker<N>
|
|
4895
5148
|
/**
|
|
4896
|
-
* Creates a
|
|
5149
|
+
* Creates a lazy depth-first traversal iterator from the configured start
|
|
5150
|
+
* nodes.
|
|
5151
|
+
*
|
|
5152
|
+
* **Details**
|
|
5153
|
+
*
|
|
5154
|
+
* If no start nodes are supplied, the iterator is empty. The `direction` option
|
|
5155
|
+
* chooses whether to follow outgoing or incoming edges. Throws a `GraphError`
|
|
5156
|
+
* if any configured start node does not exist.
|
|
4897
5157
|
*
|
|
4898
|
-
*
|
|
4899
|
-
* It provides lazy evaluation of the depth-first search.
|
|
5158
|
+
* **Example** (Traversing depth-first)
|
|
4900
5159
|
*
|
|
4901
|
-
* @example
|
|
4902
5160
|
* ```ts
|
|
4903
5161
|
* import { Graph } from "effect"
|
|
4904
5162
|
*
|
|
@@ -4921,8 +5179,8 @@ export const dfs: {
|
|
|
4921
5179
|
* // Can be used programmatically
|
|
4922
5180
|
* ```
|
|
4923
5181
|
*
|
|
4924
|
-
* @since 4.0.0
|
|
4925
5182
|
* @category iterators
|
|
5183
|
+
* @since 3.18.0
|
|
4926
5184
|
*/
|
|
4927
5185
|
<N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>, config?: SearchConfig): NodeWalker<N>
|
|
4928
5186
|
} = dual((args) => isGraph(args[0]), <N, E, T extends Kind = "directed">(
|
|
@@ -4979,12 +5237,17 @@ export const dfs: {
|
|
|
4979
5237
|
})
|
|
4980
5238
|
|
|
4981
5239
|
/**
|
|
4982
|
-
* Creates a
|
|
5240
|
+
* Creates a lazy breadth-first traversal iterator from the configured start
|
|
5241
|
+
* nodes.
|
|
5242
|
+
*
|
|
5243
|
+
* **Details**
|
|
4983
5244
|
*
|
|
4984
|
-
*
|
|
4985
|
-
*
|
|
5245
|
+
* If no start nodes are supplied, the iterator is empty. The `direction` option
|
|
5246
|
+
* chooses whether to follow outgoing or incoming edges. Throws a `GraphError`
|
|
5247
|
+
* if any configured start node does not exist.
|
|
5248
|
+
*
|
|
5249
|
+
* **Example** (Traversing breadth-first)
|
|
4986
5250
|
*
|
|
4987
|
-
* @example
|
|
4988
5251
|
* ```ts
|
|
4989
5252
|
* import { Graph } from "effect"
|
|
4990
5253
|
*
|
|
@@ -5007,17 +5270,22 @@ export const dfs: {
|
|
|
5007
5270
|
* // Can be used programmatically
|
|
5008
5271
|
* ```
|
|
5009
5272
|
*
|
|
5010
|
-
* @since 4.0.0
|
|
5011
5273
|
* @category iterators
|
|
5274
|
+
* @since 3.18.0
|
|
5012
5275
|
*/
|
|
5013
5276
|
export const bfs: {
|
|
5014
5277
|
/**
|
|
5015
|
-
* Creates a
|
|
5278
|
+
* Creates a lazy breadth-first traversal iterator from the configured start
|
|
5279
|
+
* nodes.
|
|
5280
|
+
*
|
|
5281
|
+
* **Details**
|
|
5016
5282
|
*
|
|
5017
|
-
*
|
|
5018
|
-
*
|
|
5283
|
+
* If no start nodes are supplied, the iterator is empty. The `direction` option
|
|
5284
|
+
* chooses whether to follow outgoing or incoming edges. Throws a `GraphError`
|
|
5285
|
+
* if any configured start node does not exist.
|
|
5286
|
+
*
|
|
5287
|
+
* **Example** (Traversing breadth-first)
|
|
5019
5288
|
*
|
|
5020
|
-
* @example
|
|
5021
5289
|
* ```ts
|
|
5022
5290
|
* import { Graph } from "effect"
|
|
5023
5291
|
*
|
|
@@ -5040,17 +5308,22 @@ export const bfs: {
|
|
|
5040
5308
|
* // Can be used programmatically
|
|
5041
5309
|
* ```
|
|
5042
5310
|
*
|
|
5043
|
-
* @since 4.0.0
|
|
5044
5311
|
* @category iterators
|
|
5312
|
+
* @since 3.18.0
|
|
5045
5313
|
*/
|
|
5046
5314
|
(config?: SearchConfig): <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => NodeWalker<N>
|
|
5047
5315
|
/**
|
|
5048
|
-
* Creates a
|
|
5316
|
+
* Creates a lazy breadth-first traversal iterator from the configured start
|
|
5317
|
+
* nodes.
|
|
5049
5318
|
*
|
|
5050
|
-
*
|
|
5051
|
-
*
|
|
5319
|
+
* **Details**
|
|
5320
|
+
*
|
|
5321
|
+
* If no start nodes are supplied, the iterator is empty. The `direction` option
|
|
5322
|
+
* chooses whether to follow outgoing or incoming edges. Throws a `GraphError`
|
|
5323
|
+
* if any configured start node does not exist.
|
|
5324
|
+
*
|
|
5325
|
+
* **Example** (Traversing breadth-first)
|
|
5052
5326
|
*
|
|
5053
|
-
* @example
|
|
5054
5327
|
* ```ts
|
|
5055
5328
|
* import { Graph } from "effect"
|
|
5056
5329
|
*
|
|
@@ -5073,8 +5346,8 @@ export const bfs: {
|
|
|
5073
5346
|
* // Can be used programmatically
|
|
5074
5347
|
* ```
|
|
5075
5348
|
*
|
|
5076
|
-
* @since 4.0.0
|
|
5077
5349
|
* @category iterators
|
|
5350
|
+
* @since 3.18.0
|
|
5078
5351
|
*/
|
|
5079
5352
|
<N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>, config?: SearchConfig): NodeWalker<N>
|
|
5080
5353
|
} = dual((args) => isGraph(args[0]), <N, E, T extends Kind = "directed">(
|
|
@@ -5127,10 +5400,16 @@ export const bfs: {
|
|
|
5127
5400
|
})
|
|
5128
5401
|
|
|
5129
5402
|
/**
|
|
5130
|
-
* Configuration
|
|
5403
|
+
* Configuration for the topological sort iterator.
|
|
5404
|
+
*
|
|
5405
|
+
* **Details**
|
|
5406
|
+
*
|
|
5407
|
+
* `initials` optionally supplies the node indices used as initial queue
|
|
5408
|
+
* entries. When omitted, topological sorting starts from all nodes with zero
|
|
5409
|
+
* in-degree.
|
|
5131
5410
|
*
|
|
5132
|
-
* @since 4.0.0
|
|
5133
5411
|
* @category models
|
|
5412
|
+
* @since 3.18.0
|
|
5134
5413
|
*/
|
|
5135
5414
|
export interface TopoConfig {
|
|
5136
5415
|
readonly initials?: Array<NodeIndex>
|
|
@@ -5142,7 +5421,8 @@ export interface TopoConfig {
|
|
|
5142
5421
|
* The iterator uses Kahn's algorithm to lazily produce nodes in topological order.
|
|
5143
5422
|
* Throws an error if the graph contains cycles.
|
|
5144
5423
|
*
|
|
5145
|
-
*
|
|
5424
|
+
* **Example** (Sorting topologically)
|
|
5425
|
+
*
|
|
5146
5426
|
* ```ts
|
|
5147
5427
|
* import { Graph } from "effect"
|
|
5148
5428
|
*
|
|
@@ -5163,7 +5443,7 @@ export interface TopoConfig {
|
|
|
5163
5443
|
* // With initial nodes
|
|
5164
5444
|
* const topo2 = Graph.topo(graph, { initials: [0] })
|
|
5165
5445
|
*
|
|
5166
|
-
* //
|
|
5446
|
+
* // Check before sorting a cyclic graph
|
|
5167
5447
|
* const cyclicGraph = Graph.directed<string, number>((mutable) => {
|
|
5168
5448
|
* const a = Graph.addNode(mutable, "A")
|
|
5169
5449
|
* const b = Graph.addNode(mutable, "B")
|
|
@@ -5171,15 +5451,13 @@ export interface TopoConfig {
|
|
|
5171
5451
|
* Graph.addEdge(mutable, b, a, 2) // Creates cycle
|
|
5172
5452
|
* })
|
|
5173
5453
|
*
|
|
5174
|
-
*
|
|
5175
|
-
*
|
|
5176
|
-
* } catch (error) {
|
|
5177
|
-
* console.log((error as Error).message)
|
|
5454
|
+
* if (!Graph.isAcyclic(cyclicGraph)) {
|
|
5455
|
+
* console.log("cyclic graph") // cyclic graph
|
|
5178
5456
|
* }
|
|
5179
5457
|
* ```
|
|
5180
5458
|
*
|
|
5181
|
-
* @since 4.0.0
|
|
5182
5459
|
* @category iterators
|
|
5460
|
+
* @since 3.18.0
|
|
5183
5461
|
*/
|
|
5184
5462
|
export const topo: {
|
|
5185
5463
|
/**
|
|
@@ -5188,7 +5466,8 @@ export const topo: {
|
|
|
5188
5466
|
* The iterator uses Kahn's algorithm to lazily produce nodes in topological order.
|
|
5189
5467
|
* Throws an error if the graph contains cycles.
|
|
5190
5468
|
*
|
|
5191
|
-
*
|
|
5469
|
+
* **Example** (Sorting topologically)
|
|
5470
|
+
*
|
|
5192
5471
|
* ```ts
|
|
5193
5472
|
* import { Graph } from "effect"
|
|
5194
5473
|
*
|
|
@@ -5209,7 +5488,7 @@ export const topo: {
|
|
|
5209
5488
|
* // With initial nodes
|
|
5210
5489
|
* const topo2 = Graph.topo(graph, { initials: [0] })
|
|
5211
5490
|
*
|
|
5212
|
-
* //
|
|
5491
|
+
* // Check before sorting a cyclic graph
|
|
5213
5492
|
* const cyclicGraph = Graph.directed<string, number>((mutable) => {
|
|
5214
5493
|
* const a = Graph.addNode(mutable, "A")
|
|
5215
5494
|
* const b = Graph.addNode(mutable, "B")
|
|
@@ -5217,15 +5496,13 @@ export const topo: {
|
|
|
5217
5496
|
* Graph.addEdge(mutable, b, a, 2) // Creates cycle
|
|
5218
5497
|
* })
|
|
5219
5498
|
*
|
|
5220
|
-
*
|
|
5221
|
-
*
|
|
5222
|
-
* } catch (error) {
|
|
5223
|
-
* console.log((error as Error).message)
|
|
5499
|
+
* if (!Graph.isAcyclic(cyclicGraph)) {
|
|
5500
|
+
* console.log("cyclic graph") // cyclic graph
|
|
5224
5501
|
* }
|
|
5225
5502
|
* ```
|
|
5226
5503
|
*
|
|
5227
|
-
* @since 4.0.0
|
|
5228
5504
|
* @category iterators
|
|
5505
|
+
* @since 3.18.0
|
|
5229
5506
|
*/
|
|
5230
5507
|
(config?: TopoConfig): <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => NodeWalker<N>
|
|
5231
5508
|
/**
|
|
@@ -5234,7 +5511,8 @@ export const topo: {
|
|
|
5234
5511
|
* The iterator uses Kahn's algorithm to lazily produce nodes in topological order.
|
|
5235
5512
|
* Throws an error if the graph contains cycles.
|
|
5236
5513
|
*
|
|
5237
|
-
*
|
|
5514
|
+
* **Example** (Sorting topologically)
|
|
5515
|
+
*
|
|
5238
5516
|
* ```ts
|
|
5239
5517
|
* import { Graph } from "effect"
|
|
5240
5518
|
*
|
|
@@ -5255,7 +5533,7 @@ export const topo: {
|
|
|
5255
5533
|
* // With initial nodes
|
|
5256
5534
|
* const topo2 = Graph.topo(graph, { initials: [0] })
|
|
5257
5535
|
*
|
|
5258
|
-
* //
|
|
5536
|
+
* // Check before sorting a cyclic graph
|
|
5259
5537
|
* const cyclicGraph = Graph.directed<string, number>((mutable) => {
|
|
5260
5538
|
* const a = Graph.addNode(mutable, "A")
|
|
5261
5539
|
* const b = Graph.addNode(mutable, "B")
|
|
@@ -5263,15 +5541,13 @@ export const topo: {
|
|
|
5263
5541
|
* Graph.addEdge(mutable, b, a, 2) // Creates cycle
|
|
5264
5542
|
* })
|
|
5265
5543
|
*
|
|
5266
|
-
*
|
|
5267
|
-
*
|
|
5268
|
-
* } catch (error) {
|
|
5269
|
-
* console.log((error as Error).message)
|
|
5544
|
+
* if (!Graph.isAcyclic(cyclicGraph)) {
|
|
5545
|
+
* console.log("cyclic graph") // cyclic graph
|
|
5270
5546
|
* }
|
|
5271
5547
|
* ```
|
|
5272
5548
|
*
|
|
5273
|
-
* @since 4.0.0
|
|
5274
5549
|
* @category iterators
|
|
5550
|
+
* @since 3.18.0
|
|
5275
5551
|
*/
|
|
5276
5552
|
<N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>, config?: TopoConfig): NodeWalker<N>
|
|
5277
5553
|
} = dual((args) => isGraph(args[0]), <N, E, T extends Kind = "directed">(
|
|
@@ -5358,13 +5634,17 @@ export const topo: {
|
|
|
5358
5634
|
})
|
|
5359
5635
|
|
|
5360
5636
|
/**
|
|
5361
|
-
* Creates a
|
|
5637
|
+
* Creates a lazy depth-first postorder traversal iterator from the configured
|
|
5638
|
+
* start nodes.
|
|
5639
|
+
*
|
|
5640
|
+
* **Details**
|
|
5362
5641
|
*
|
|
5363
|
-
*
|
|
5364
|
-
*
|
|
5365
|
-
*
|
|
5642
|
+
* Nodes are emitted after their reachable descendants have been processed. If
|
|
5643
|
+
* no start nodes are supplied, the iterator is empty. The `direction` option
|
|
5644
|
+
* chooses whether to follow outgoing or incoming edges.
|
|
5645
|
+
*
|
|
5646
|
+
* **Example** (Traversing in postorder)
|
|
5366
5647
|
*
|
|
5367
|
-
* @example
|
|
5368
5648
|
* ```ts
|
|
5369
5649
|
* import { Graph } from "effect"
|
|
5370
5650
|
*
|
|
@@ -5383,18 +5663,22 @@ export const topo: {
|
|
|
5383
5663
|
* }
|
|
5384
5664
|
* ```
|
|
5385
5665
|
*
|
|
5386
|
-
* @since 4.0.0
|
|
5387
5666
|
* @category iterators
|
|
5667
|
+
* @since 3.18.0
|
|
5388
5668
|
*/
|
|
5389
5669
|
export const dfsPostOrder: {
|
|
5390
5670
|
/**
|
|
5391
|
-
* Creates a
|
|
5671
|
+
* Creates a lazy depth-first postorder traversal iterator from the configured
|
|
5672
|
+
* start nodes.
|
|
5392
5673
|
*
|
|
5393
|
-
*
|
|
5394
|
-
*
|
|
5395
|
-
*
|
|
5674
|
+
* **Details**
|
|
5675
|
+
*
|
|
5676
|
+
* Nodes are emitted after their reachable descendants have been processed. If
|
|
5677
|
+
* no start nodes are supplied, the iterator is empty. The `direction` option
|
|
5678
|
+
* chooses whether to follow outgoing or incoming edges.
|
|
5679
|
+
*
|
|
5680
|
+
* **Example** (Traversing in postorder)
|
|
5396
5681
|
*
|
|
5397
|
-
* @example
|
|
5398
5682
|
* ```ts
|
|
5399
5683
|
* import { Graph } from "effect"
|
|
5400
5684
|
*
|
|
@@ -5413,18 +5697,22 @@ export const dfsPostOrder: {
|
|
|
5413
5697
|
* }
|
|
5414
5698
|
* ```
|
|
5415
5699
|
*
|
|
5416
|
-
* @since 4.0.0
|
|
5417
5700
|
* @category iterators
|
|
5701
|
+
* @since 3.18.0
|
|
5418
5702
|
*/
|
|
5419
5703
|
(config?: SearchConfig): <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => NodeWalker<N>
|
|
5420
5704
|
/**
|
|
5421
|
-
* Creates a
|
|
5705
|
+
* Creates a lazy depth-first postorder traversal iterator from the configured
|
|
5706
|
+
* start nodes.
|
|
5707
|
+
*
|
|
5708
|
+
* **Details**
|
|
5709
|
+
*
|
|
5710
|
+
* Nodes are emitted after their reachable descendants have been processed. If
|
|
5711
|
+
* no start nodes are supplied, the iterator is empty. The `direction` option
|
|
5712
|
+
* chooses whether to follow outgoing or incoming edges.
|
|
5422
5713
|
*
|
|
5423
|
-
*
|
|
5424
|
-
* in postorder (after all descendants have been processed). Essential for
|
|
5425
|
-
* dependency resolution and tree destruction algorithms.
|
|
5714
|
+
* **Example** (Traversing in postorder)
|
|
5426
5715
|
*
|
|
5427
|
-
* @example
|
|
5428
5716
|
* ```ts
|
|
5429
5717
|
* import { Graph } from "effect"
|
|
5430
5718
|
*
|
|
@@ -5443,8 +5731,8 @@ export const dfsPostOrder: {
|
|
|
5443
5731
|
* }
|
|
5444
5732
|
* ```
|
|
5445
5733
|
*
|
|
5446
|
-
* @since 4.0.0
|
|
5447
5734
|
* @category iterators
|
|
5735
|
+
* @since 3.18.0
|
|
5448
5736
|
*/
|
|
5449
5737
|
<N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>, config?: SearchConfig): NodeWalker<N>
|
|
5450
5738
|
} = dual((args) => isGraph(args[0]), <N, E, T extends Kind = "directed">(
|
|
@@ -5520,7 +5808,8 @@ export const dfsPostOrder: {
|
|
|
5520
5808
|
* The iterator produces node indices in the order they were added to the graph.
|
|
5521
5809
|
* This provides access to all nodes regardless of connectivity.
|
|
5522
5810
|
*
|
|
5523
|
-
*
|
|
5811
|
+
* **Example** (Iterating all nodes)
|
|
5812
|
+
*
|
|
5524
5813
|
* ```ts
|
|
5525
5814
|
* import { Graph } from "effect"
|
|
5526
5815
|
*
|
|
@@ -5535,8 +5824,8 @@ export const dfsPostOrder: {
|
|
|
5535
5824
|
* console.log(indices) // [0, 1, 2]
|
|
5536
5825
|
* ```
|
|
5537
5826
|
*
|
|
5538
|
-
* @since 4.0.0
|
|
5539
5827
|
* @category iterators
|
|
5828
|
+
* @since 3.18.0
|
|
5540
5829
|
*/
|
|
5541
5830
|
export const nodes = <N, E, T extends Kind = "directed">(
|
|
5542
5831
|
graph: Graph<N, E, T> | MutableGraph<N, E, T>
|
|
@@ -5565,7 +5854,8 @@ export const nodes = <N, E, T extends Kind = "directed">(
|
|
|
5565
5854
|
* The iterator produces edge indices in the order they were added to the graph.
|
|
5566
5855
|
* This provides access to all edges regardless of connectivity.
|
|
5567
5856
|
*
|
|
5568
|
-
*
|
|
5857
|
+
* **Example** (Iterating all edges)
|
|
5858
|
+
*
|
|
5569
5859
|
* ```ts
|
|
5570
5860
|
* import { Graph } from "effect"
|
|
5571
5861
|
*
|
|
@@ -5581,8 +5871,8 @@ export const nodes = <N, E, T extends Kind = "directed">(
|
|
|
5581
5871
|
* console.log(indices) // [0, 1]
|
|
5582
5872
|
* ```
|
|
5583
5873
|
*
|
|
5584
|
-
* @since 4.0.0
|
|
5585
5874
|
* @category iterators
|
|
5875
|
+
* @since 3.18.0
|
|
5586
5876
|
*/
|
|
5587
5877
|
export const edges = <N, E, T extends Kind = "directed">(
|
|
5588
5878
|
graph: Graph<N, E, T> | MutableGraph<N, E, T>
|
|
@@ -5606,10 +5896,16 @@ export const edges = <N, E, T extends Kind = "directed">(
|
|
|
5606
5896
|
}))
|
|
5607
5897
|
|
|
5608
5898
|
/**
|
|
5609
|
-
* Configuration for
|
|
5899
|
+
* Configuration for selecting external nodes.
|
|
5900
|
+
*
|
|
5901
|
+
* **Details**
|
|
5902
|
+
*
|
|
5903
|
+
* `direction` chooses which missing edge direction makes a node external:
|
|
5904
|
+
* `"outgoing"` selects nodes with no outgoing edges, and `"incoming"` selects
|
|
5905
|
+
* nodes with no incoming edges.
|
|
5610
5906
|
*
|
|
5611
|
-
* @since 4.0.0
|
|
5612
5907
|
* @category models
|
|
5908
|
+
* @since 3.18.0
|
|
5613
5909
|
*/
|
|
5614
5910
|
export interface ExternalsConfig {
|
|
5615
5911
|
readonly direction?: Direction
|
|
@@ -5622,7 +5918,8 @@ export interface ExternalsConfig {
|
|
|
5622
5918
|
* no incoming edges (direction="incoming"). These are useful for finding
|
|
5623
5919
|
* sources, sinks, or isolated nodes.
|
|
5624
5920
|
*
|
|
5625
|
-
*
|
|
5921
|
+
* **Example** (Iterating external nodes)
|
|
5922
|
+
*
|
|
5626
5923
|
* ```ts
|
|
5627
5924
|
* import { Graph } from "effect"
|
|
5628
5925
|
*
|
|
@@ -5649,8 +5946,8 @@ export interface ExternalsConfig {
|
|
|
5649
5946
|
* console.log(sources) // [0, 3]
|
|
5650
5947
|
* ```
|
|
5651
5948
|
*
|
|
5652
|
-
* @since 4.0.0
|
|
5653
5949
|
* @category iterators
|
|
5950
|
+
* @since 3.18.0
|
|
5654
5951
|
*/
|
|
5655
5952
|
export const externals: {
|
|
5656
5953
|
/**
|
|
@@ -5660,7 +5957,8 @@ export const externals: {
|
|
|
5660
5957
|
* no incoming edges (direction="incoming"). These are useful for finding
|
|
5661
5958
|
* sources, sinks, or isolated nodes.
|
|
5662
5959
|
*
|
|
5663
|
-
*
|
|
5960
|
+
* **Example** (Iterating external nodes)
|
|
5961
|
+
*
|
|
5664
5962
|
* ```ts
|
|
5665
5963
|
* import { Graph } from "effect"
|
|
5666
5964
|
*
|
|
@@ -5687,8 +5985,8 @@ export const externals: {
|
|
|
5687
5985
|
* console.log(sources) // [0, 3]
|
|
5688
5986
|
* ```
|
|
5689
5987
|
*
|
|
5690
|
-
* @since 4.0.0
|
|
5691
5988
|
* @category iterators
|
|
5989
|
+
* @since 3.18.0
|
|
5692
5990
|
*/
|
|
5693
5991
|
(config?: ExternalsConfig): <N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>) => NodeWalker<N>
|
|
5694
5992
|
/**
|
|
@@ -5698,7 +5996,8 @@ export const externals: {
|
|
|
5698
5996
|
* no incoming edges (direction="incoming"). These are useful for finding
|
|
5699
5997
|
* sources, sinks, or isolated nodes.
|
|
5700
5998
|
*
|
|
5701
|
-
*
|
|
5999
|
+
* **Example** (Iterating external nodes)
|
|
6000
|
+
*
|
|
5702
6001
|
* ```ts
|
|
5703
6002
|
* import { Graph } from "effect"
|
|
5704
6003
|
*
|
|
@@ -5725,8 +6024,8 @@ export const externals: {
|
|
|
5725
6024
|
* console.log(sources) // [0, 3]
|
|
5726
6025
|
* ```
|
|
5727
6026
|
*
|
|
5728
|
-
* @since 4.0.0
|
|
5729
6027
|
* @category iterators
|
|
6028
|
+
* @since 3.18.0
|
|
5730
6029
|
*/
|
|
5731
6030
|
<N, E, T extends Kind = "directed">(graph: Graph<N, E, T> | MutableGraph<N, E, T>, config?: ExternalsConfig): NodeWalker<N>
|
|
5732
6031
|
} = dual((args) => isGraph(args[0]), <N, E, T extends Kind = "directed">(
|