@clayroach/effect 3.19.14-source-capture.6 → 3.19.14-source-capture.8
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/cjs/Utils.js +1 -1
- package/dist/cjs/Utils.js.map +1 -1
- package/dist/cjs/internal/clock.js +1 -1
- package/dist/cjs/internal/clock.js.map +1 -1
- package/dist/esm/Utils.js +1 -1
- package/dist/esm/Utils.js.map +1 -1
- package/dist/esm/internal/clock.js +1 -1
- package/dist/esm/internal/clock.js.map +1 -1
- package/package.json +1 -1
- package/src/Arbitrary.ts +0 -1101
- package/src/Array.ts +0 -3589
- package/src/BigDecimal.ts +0 -1349
- package/src/BigInt.ts +0 -643
- package/src/Boolean.ts +0 -287
- package/src/Brand.ts +0 -360
- package/src/Cache.ts +0 -281
- package/src/Cause.ts +0 -1555
- package/src/Channel.ts +0 -2355
- package/src/ChildExecutorDecision.ts +0 -146
- package/src/Chunk.ts +0 -1495
- package/src/Clock.ts +0 -111
- package/src/Config.ts +0 -542
- package/src/ConfigError.ts +0 -270
- package/src/ConfigProvider.ts +0 -333
- package/src/ConfigProviderPathPatch.ts +0 -100
- package/src/Console.ts +0 -226
- package/src/Context.ts +0 -585
- package/src/Cron.ts +0 -706
- package/src/Data.ts +0 -596
- package/src/DateTime.ts +0 -1686
- package/src/DefaultServices.ts +0 -34
- package/src/Deferred.ts +0 -301
- package/src/Differ.ts +0 -450
- package/src/Duration.ts +0 -1000
- package/src/Effect.ts +0 -14839
- package/src/Effectable.ts +0 -107
- package/src/Either.ts +0 -1040
- package/src/Encoding.ts +0 -195
- package/src/Equal.ts +0 -98
- package/src/Equivalence.ts +0 -235
- package/src/ExecutionPlan.ts +0 -308
- package/src/ExecutionStrategy.ts +0 -119
- package/src/Exit.ts +0 -467
- package/src/FastCheck.ts +0 -9
- package/src/Fiber.ts +0 -744
- package/src/FiberHandle.ts +0 -540
- package/src/FiberId.ts +0 -195
- package/src/FiberMap.ts +0 -656
- package/src/FiberRef.ts +0 -431
- package/src/FiberRefs.ts +0 -204
- package/src/FiberRefsPatch.ts +0 -105
- package/src/FiberSet.ts +0 -491
- package/src/FiberStatus.ts +0 -108
- package/src/Function.ts +0 -1222
- package/src/GlobalValue.ts +0 -53
- package/src/Graph.ts +0 -3732
- package/src/GroupBy.ts +0 -103
- package/src/HKT.ts +0 -45
- package/src/Hash.ts +0 -195
- package/src/HashMap.ts +0 -519
- package/src/HashRing.ts +0 -317
- package/src/HashSet.ts +0 -2346
- package/src/Inspectable.ts +0 -287
- package/src/Iterable.ts +0 -1119
- package/src/JSONSchema.ts +0 -1044
- package/src/KeyedPool.ts +0 -167
- package/src/Layer.ts +0 -1251
- package/src/LayerMap.ts +0 -436
- package/src/List.ts +0 -977
- package/src/LogLevel.ts +0 -285
- package/src/LogSpan.ts +0 -25
- package/src/Logger.ts +0 -702
- package/src/Mailbox.ts +0 -268
- package/src/ManagedRuntime.ts +0 -180
- package/src/Match.ts +0 -1477
- package/src/MergeDecision.ts +0 -95
- package/src/MergeState.ts +0 -172
- package/src/MergeStrategy.ts +0 -107
- package/src/Metric.ts +0 -780
- package/src/MetricBoundaries.ts +0 -69
- package/src/MetricHook.ts +0 -151
- package/src/MetricKey.ts +0 -224
- package/src/MetricKeyType.ts +0 -262
- package/src/MetricLabel.ts +0 -47
- package/src/MetricPair.ts +0 -71
- package/src/MetricPolling.ts +0 -148
- package/src/MetricRegistry.ts +0 -48
- package/src/MetricState.ts +0 -257
- package/src/Micro.ts +0 -4405
- package/src/ModuleVersion.ts +0 -18
- package/src/MutableHashMap.ts +0 -411
- package/src/MutableHashSet.ts +0 -706
- package/src/MutableList.ts +0 -297
- package/src/MutableQueue.ts +0 -227
- package/src/MutableRef.ts +0 -202
- package/src/NonEmptyIterable.ts +0 -32
- package/src/Number.ts +0 -1071
- package/src/Option.ts +0 -2170
- package/src/Order.ts +0 -373
- package/src/Ordering.ts +0 -111
- package/src/ParseResult.ts +0 -2031
- package/src/PartitionedSemaphore.ts +0 -200
- package/src/Pipeable.ts +0 -566
- package/src/Pool.ts +0 -204
- package/src/Predicate.ts +0 -1405
- package/src/Pretty.ts +0 -205
- package/src/PrimaryKey.ts +0 -23
- package/src/PubSub.ts +0 -182
- package/src/Queue.ts +0 -644
- package/src/Random.ts +0 -204
- package/src/RateLimiter.ts +0 -138
- package/src/RcMap.ts +0 -141
- package/src/RcRef.ts +0 -122
- package/src/Readable.ts +0 -93
- package/src/Record.ts +0 -1274
- package/src/RedBlackTree.ts +0 -421
- package/src/Redacted.ts +0 -144
- package/src/Ref.ts +0 -180
- package/src/RegExp.ts +0 -38
- package/src/Reloadable.ts +0 -127
- package/src/Request.ts +0 -347
- package/src/RequestBlock.ts +0 -118
- package/src/RequestResolver.ts +0 -366
- package/src/Resource.ts +0 -119
- package/src/Runtime.ts +0 -383
- package/src/RuntimeFlags.ts +0 -368
- package/src/RuntimeFlagsPatch.ts +0 -183
- package/src/STM.ts +0 -2045
- package/src/Schedule.ts +0 -2219
- package/src/ScheduleDecision.ts +0 -62
- package/src/ScheduleInterval.ts +0 -151
- package/src/ScheduleIntervals.ts +0 -122
- package/src/Scheduler.ts +0 -353
- package/src/Schema.ts +0 -10914
- package/src/SchemaAST.ts +0 -3043
- package/src/Scope.ts +0 -204
- package/src/ScopedCache.ts +0 -151
- package/src/ScopedRef.ts +0 -117
- package/src/Secret.ts +0 -88
- package/src/SingleProducerAsyncInput.ts +0 -67
- package/src/Sink.ts +0 -1461
- package/src/SortedMap.ts +0 -287
- package/src/SortedSet.ts +0 -390
- package/src/Stream.ts +0 -6468
- package/src/StreamEmit.ts +0 -136
- package/src/StreamHaltStrategy.ts +0 -123
- package/src/Streamable.ts +0 -45
- package/src/String.ts +0 -778
- package/src/Struct.ts +0 -243
- package/src/Subscribable.ts +0 -100
- package/src/SubscriptionRef.ts +0 -298
- package/src/Supervisor.ts +0 -240
- package/src/Symbol.ts +0 -29
- package/src/SynchronizedRef.ts +0 -270
- package/src/TArray.ts +0 -495
- package/src/TDeferred.ts +0 -100
- package/src/TMap.ts +0 -515
- package/src/TPriorityQueue.ts +0 -223
- package/src/TPubSub.ts +0 -200
- package/src/TQueue.ts +0 -432
- package/src/TRandom.ts +0 -129
- package/src/TReentrantLock.ts +0 -224
- package/src/TRef.ts +0 -178
- package/src/TSemaphore.ts +0 -129
- package/src/TSet.ts +0 -365
- package/src/TSubscriptionRef.ts +0 -192
- package/src/Take.ts +0 -258
- package/src/TestAnnotation.ts +0 -158
- package/src/TestAnnotationMap.ts +0 -119
- package/src/TestAnnotations.ts +0 -117
- package/src/TestClock.ts +0 -556
- package/src/TestConfig.ts +0 -47
- package/src/TestContext.ts +0 -36
- package/src/TestLive.ts +0 -53
- package/src/TestServices.ts +0 -390
- package/src/TestSized.ts +0 -55
- package/src/Tracer.ts +0 -198
- package/src/Trie.ts +0 -840
- package/src/Tuple.ts +0 -305
- package/src/Types.ts +0 -353
- package/src/Unify.ts +0 -113
- package/src/UpstreamPullRequest.ts +0 -117
- package/src/UpstreamPullStrategy.ts +0 -121
- package/src/Utils.ts +0 -809
- package/src/index.ts +0 -1561
- package/src/internal/array.ts +0 -8
- package/src/internal/blockedRequests.ts +0 -520
- package/src/internal/cache.ts +0 -733
- package/src/internal/cause.ts +0 -1050
- package/src/internal/channel/channelExecutor.ts +0 -1200
- package/src/internal/channel/channelState.ts +0 -134
- package/src/internal/channel/childExecutorDecision.ts +0 -96
- package/src/internal/channel/continuation.ts +0 -200
- package/src/internal/channel/mergeDecision.ts +0 -113
- package/src/internal/channel/mergeState.ts +0 -120
- package/src/internal/channel/mergeStrategy.ts +0 -72
- package/src/internal/channel/singleProducerAsyncInput.ts +0 -259
- package/src/internal/channel/subexecutor.ts +0 -229
- package/src/internal/channel/upstreamPullRequest.ts +0 -84
- package/src/internal/channel/upstreamPullStrategy.ts +0 -87
- package/src/internal/channel.ts +0 -2603
- package/src/internal/clock.ts +0 -95
- package/src/internal/completedRequestMap.ts +0 -9
- package/src/internal/concurrency.ts +0 -54
- package/src/internal/config.ts +0 -716
- package/src/internal/configError.ts +0 -304
- package/src/internal/configProvider/pathPatch.ts +0 -97
- package/src/internal/configProvider.ts +0 -799
- package/src/internal/console.ts +0 -153
- package/src/internal/context.ts +0 -337
- package/src/internal/core-effect.ts +0 -2293
- package/src/internal/core-stream.ts +0 -998
- package/src/internal/core.ts +0 -3273
- package/src/internal/data.ts +0 -36
- package/src/internal/dataSource.ts +0 -327
- package/src/internal/dateTime.ts +0 -1277
- package/src/internal/defaultServices/console.ts +0 -100
- package/src/internal/defaultServices.ts +0 -163
- package/src/internal/deferred.ts +0 -46
- package/src/internal/differ/chunkPatch.ts +0 -211
- package/src/internal/differ/contextPatch.ts +0 -232
- package/src/internal/differ/hashMapPatch.ts +0 -220
- package/src/internal/differ/hashSetPatch.ts +0 -176
- package/src/internal/differ/orPatch.ts +0 -311
- package/src/internal/differ/readonlyArrayPatch.ts +0 -210
- package/src/internal/differ.ts +0 -200
- package/src/internal/doNotation.ts +0 -80
- package/src/internal/effect/circular.ts +0 -905
- package/src/internal/effectable.ts +0 -131
- package/src/internal/either.ts +0 -110
- package/src/internal/encoding/base64.ts +0 -286
- package/src/internal/encoding/base64Url.ts +0 -29
- package/src/internal/encoding/common.ts +0 -51
- package/src/internal/encoding/hex.ts +0 -315
- package/src/internal/errors.ts +0 -7
- package/src/internal/executionPlan.ts +0 -114
- package/src/internal/executionStrategy.ts +0 -74
- package/src/internal/fiber.ts +0 -388
- package/src/internal/fiberId.ts +0 -267
- package/src/internal/fiberMessage.ts +0 -82
- package/src/internal/fiberRefs/patch.ts +0 -144
- package/src/internal/fiberRefs.ts +0 -297
- package/src/internal/fiberRuntime.ts +0 -3915
- package/src/internal/fiberScope.ts +0 -71
- package/src/internal/fiberStatus.ts +0 -119
- package/src/internal/groupBy.ts +0 -530
- package/src/internal/hashMap/array.ts +0 -49
- package/src/internal/hashMap/bitwise.ts +0 -32
- package/src/internal/hashMap/config.ts +0 -14
- package/src/internal/hashMap/keySet.ts +0 -8
- package/src/internal/hashMap/node.ts +0 -391
- package/src/internal/hashMap.ts +0 -586
- package/src/internal/hashSet.ts +0 -323
- package/src/internal/keyedPool.ts +0 -244
- package/src/internal/layer/circular.ts +0 -228
- package/src/internal/layer.ts +0 -1487
- package/src/internal/logSpan.ts +0 -20
- package/src/internal/logger-circular.ts +0 -24
- package/src/internal/logger.ts +0 -485
- package/src/internal/mailbox.ts +0 -561
- package/src/internal/managedRuntime/circular.ts +0 -6
- package/src/internal/managedRuntime.ts +0 -134
- package/src/internal/matcher.ts +0 -652
- package/src/internal/metric/boundaries.ts +0 -75
- package/src/internal/metric/hook.ts +0 -483
- package/src/internal/metric/key.ts +0 -167
- package/src/internal/metric/keyType.ts +0 -238
- package/src/internal/metric/label.ts +0 -41
- package/src/internal/metric/pair.ts +0 -48
- package/src/internal/metric/polling.ts +0 -149
- package/src/internal/metric/registry.ts +0 -187
- package/src/internal/metric/state.ts +0 -290
- package/src/internal/metric.ts +0 -577
- package/src/internal/opCodes/cause.ts +0 -35
- package/src/internal/opCodes/channel.ts +0 -83
- package/src/internal/opCodes/channelChildExecutorDecision.ts +0 -17
- package/src/internal/opCodes/channelMergeDecision.ts +0 -11
- package/src/internal/opCodes/channelMergeState.ts +0 -17
- package/src/internal/opCodes/channelMergeStrategy.ts +0 -11
- package/src/internal/opCodes/channelState.ts +0 -23
- package/src/internal/opCodes/channelUpstreamPullRequest.ts +0 -11
- package/src/internal/opCodes/channelUpstreamPullStrategy.ts +0 -11
- package/src/internal/opCodes/config.ts +0 -65
- package/src/internal/opCodes/configError.ts +0 -35
- package/src/internal/opCodes/continuation.ts +0 -11
- package/src/internal/opCodes/deferred.ts +0 -11
- package/src/internal/opCodes/effect.ts +0 -89
- package/src/internal/opCodes/layer.ts +0 -59
- package/src/internal/opCodes/streamHaltStrategy.ts +0 -23
- package/src/internal/option.ts +0 -80
- package/src/internal/pool.ts +0 -432
- package/src/internal/pubsub.ts +0 -1762
- package/src/internal/query.ts +0 -204
- package/src/internal/queue.ts +0 -766
- package/src/internal/random.ts +0 -161
- package/src/internal/rateLimiter.ts +0 -93
- package/src/internal/rcMap.ts +0 -285
- package/src/internal/rcRef.ts +0 -192
- package/src/internal/redBlackTree/iterator.ts +0 -200
- package/src/internal/redBlackTree/node.ts +0 -68
- package/src/internal/redBlackTree.ts +0 -1245
- package/src/internal/redacted.ts +0 -73
- package/src/internal/ref.ts +0 -171
- package/src/internal/reloadable.ts +0 -140
- package/src/internal/request.ts +0 -177
- package/src/internal/resource.ts +0 -76
- package/src/internal/ringBuffer.ts +0 -68
- package/src/internal/runtime.ts +0 -558
- package/src/internal/runtimeFlags.ts +0 -188
- package/src/internal/runtimeFlagsPatch.ts +0 -103
- package/src/internal/schedule/decision.ts +0 -47
- package/src/internal/schedule/interval.ts +0 -101
- package/src/internal/schedule/intervals.ts +0 -180
- package/src/internal/schedule.ts +0 -2199
- package/src/internal/schema/errors.ts +0 -191
- package/src/internal/schema/schemaId.ts +0 -106
- package/src/internal/schema/util.ts +0 -50
- package/src/internal/scopedCache.ts +0 -644
- package/src/internal/scopedRef.ts +0 -118
- package/src/internal/secret.ts +0 -89
- package/src/internal/singleShotGen.ts +0 -35
- package/src/internal/sink.ts +0 -2120
- package/src/internal/stack.ts +0 -10
- package/src/internal/stm/core.ts +0 -817
- package/src/internal/stm/entry.ts +0 -59
- package/src/internal/stm/journal.ts +0 -123
- package/src/internal/stm/opCodes/stm.ts +0 -71
- package/src/internal/stm/opCodes/stmState.ts +0 -17
- package/src/internal/stm/opCodes/strategy.ts +0 -17
- package/src/internal/stm/opCodes/tExit.ts +0 -29
- package/src/internal/stm/opCodes/tryCommit.ts +0 -11
- package/src/internal/stm/stm.ts +0 -1453
- package/src/internal/stm/stmState.ts +0 -136
- package/src/internal/stm/tArray.ts +0 -550
- package/src/internal/stm/tDeferred.ts +0 -81
- package/src/internal/stm/tExit.ts +0 -190
- package/src/internal/stm/tMap.ts +0 -824
- package/src/internal/stm/tPriorityQueue.ts +0 -267
- package/src/internal/stm/tPubSub.ts +0 -551
- package/src/internal/stm/tQueue.ts +0 -393
- package/src/internal/stm/tRandom.ts +0 -140
- package/src/internal/stm/tReentrantLock.ts +0 -352
- package/src/internal/stm/tRef.ts +0 -195
- package/src/internal/stm/tSemaphore.ts +0 -113
- package/src/internal/stm/tSet.ts +0 -259
- package/src/internal/stm/tSubscriptionRef.ts +0 -286
- package/src/internal/stm/tryCommit.ts +0 -34
- package/src/internal/stm/txnId.ts +0 -14
- package/src/internal/stm/versioned.ts +0 -4
- package/src/internal/stream/debounceState.ts +0 -57
- package/src/internal/stream/emit.ts +0 -123
- package/src/internal/stream/haltStrategy.ts +0 -94
- package/src/internal/stream/handoff.ts +0 -187
- package/src/internal/stream/handoffSignal.ts +0 -59
- package/src/internal/stream/pull.ts +0 -34
- package/src/internal/stream/sinkEndReason.ts +0 -30
- package/src/internal/stream/zipAllState.ts +0 -88
- package/src/internal/stream/zipChunksState.ts +0 -56
- package/src/internal/stream.ts +0 -8801
- package/src/internal/string-utils.ts +0 -107
- package/src/internal/subscriptionRef.ts +0 -138
- package/src/internal/supervisor/patch.ts +0 -190
- package/src/internal/supervisor.ts +0 -303
- package/src/internal/synchronizedRef.ts +0 -114
- package/src/internal/take.ts +0 -199
- package/src/internal/testing/sleep.ts +0 -27
- package/src/internal/testing/suspendedWarningData.ts +0 -85
- package/src/internal/testing/warningData.ts +0 -94
- package/src/internal/tracer.ts +0 -293
- package/src/internal/trie.ts +0 -722
- package/src/internal/version.ts +0 -7
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import type * as Fiber from "../../Fiber.js"
|
|
2
|
-
|
|
3
|
-
/** @internal */
|
|
4
|
-
export type SuspendedWarningData = Start | Pending | Done
|
|
5
|
-
|
|
6
|
-
/** @internal */
|
|
7
|
-
export const OP_SUSPENDED_WARNING_DATA_START = "Start" as const
|
|
8
|
-
|
|
9
|
-
/** @internal */
|
|
10
|
-
export type OP_SUSPENDED_WARNING_DATA_START = typeof OP_SUSPENDED_WARNING_DATA_START
|
|
11
|
-
|
|
12
|
-
/** @internal */
|
|
13
|
-
export const OP_SUSPENDED_WARNING_DATA_PENDING = "Pending" as const
|
|
14
|
-
|
|
15
|
-
/** @internal */
|
|
16
|
-
export type OP_SUSPENDED_WARNING_DATA_PENDING = typeof OP_SUSPENDED_WARNING_DATA_PENDING
|
|
17
|
-
|
|
18
|
-
/** @internal */
|
|
19
|
-
export const OP_SUSPENDED_WARNING_DATA_DONE = "Done" as const
|
|
20
|
-
|
|
21
|
-
/** @internal */
|
|
22
|
-
export type OP_SUSPENDED_WARNING_DATA_DONE = typeof OP_SUSPENDED_WARNING_DATA_DONE
|
|
23
|
-
|
|
24
|
-
/** @internal */
|
|
25
|
-
export interface Start {
|
|
26
|
-
readonly _tag: OP_SUSPENDED_WARNING_DATA_START
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/** @internal */
|
|
30
|
-
export interface Pending {
|
|
31
|
-
readonly _tag: OP_SUSPENDED_WARNING_DATA_PENDING
|
|
32
|
-
readonly fiber: Fiber.Fiber<void, Error>
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/** @internal */
|
|
36
|
-
export interface Done {
|
|
37
|
-
readonly _tag: OP_SUSPENDED_WARNING_DATA_DONE
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* State indicating that a test has not adjusted the clock.
|
|
42
|
-
*
|
|
43
|
-
* @internal
|
|
44
|
-
*/
|
|
45
|
-
export const start: SuspendedWarningData = {
|
|
46
|
-
_tag: OP_SUSPENDED_WARNING_DATA_START
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* State indicating that a test has adjusted the clock but a fiber is still
|
|
51
|
-
* running with a reference to the fiber that will display the warning
|
|
52
|
-
* message.
|
|
53
|
-
*
|
|
54
|
-
* @internal
|
|
55
|
-
*/
|
|
56
|
-
export const pending = (fiber: Fiber.Fiber<void, Error>): SuspendedWarningData => {
|
|
57
|
-
return {
|
|
58
|
-
_tag: OP_SUSPENDED_WARNING_DATA_PENDING,
|
|
59
|
-
fiber
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* State indicating that the warning message has already been displayed.
|
|
65
|
-
*
|
|
66
|
-
* @internal
|
|
67
|
-
*/
|
|
68
|
-
export const done: SuspendedWarningData = {
|
|
69
|
-
_tag: OP_SUSPENDED_WARNING_DATA_DONE
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/** @internal */
|
|
73
|
-
export const isStart = (self: SuspendedWarningData): self is Start => {
|
|
74
|
-
return self._tag === OP_SUSPENDED_WARNING_DATA_START
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/** @internal */
|
|
78
|
-
export const isPending = (self: SuspendedWarningData): self is Pending => {
|
|
79
|
-
return self._tag === OP_SUSPENDED_WARNING_DATA_PENDING
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/** @internal */
|
|
83
|
-
export const isDone = (self: SuspendedWarningData): self is Done => {
|
|
84
|
-
return self._tag === OP_SUSPENDED_WARNING_DATA_DONE
|
|
85
|
-
}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import type * as Fiber from "../../Fiber.js"
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* `WarningData` describes the state of the warning message that is displayed
|
|
5
|
-
* if a test is using time by is not advancing the `TestClock`. The possible
|
|
6
|
-
* states are `Start` if a test has not used time, `Pending` if a test has
|
|
7
|
-
* used time but has not adjusted the `TestClock`, and `Done` if a test has
|
|
8
|
-
* adjusted the `TestClock` or the warning message has already been displayed.
|
|
9
|
-
*
|
|
10
|
-
* @internal
|
|
11
|
-
*/
|
|
12
|
-
export type WarningData = Start | Pending | Done
|
|
13
|
-
|
|
14
|
-
/** @internal */
|
|
15
|
-
export const OP_WARNING_DATA_START = "Start" as const
|
|
16
|
-
|
|
17
|
-
/** @internal */
|
|
18
|
-
export type OP_WARNING_DATA_START = typeof OP_WARNING_DATA_START
|
|
19
|
-
|
|
20
|
-
/** @internal */
|
|
21
|
-
export const OP_WARNING_DATA_PENDING = "Pending" as const
|
|
22
|
-
|
|
23
|
-
/** @internal */
|
|
24
|
-
export type OP_WARNING_DATA_PENDING = typeof OP_WARNING_DATA_PENDING
|
|
25
|
-
|
|
26
|
-
/** @internal */
|
|
27
|
-
export const OP_WARNING_DATA_DONE = "Done" as const
|
|
28
|
-
|
|
29
|
-
/** @internal */
|
|
30
|
-
export type OP_WARNING_DATA_DONE = typeof OP_WARNING_DATA_DONE
|
|
31
|
-
|
|
32
|
-
/** @internal */
|
|
33
|
-
export interface Start {
|
|
34
|
-
readonly _tag: OP_WARNING_DATA_START
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/** @internal */
|
|
38
|
-
export interface Pending {
|
|
39
|
-
readonly _tag: OP_WARNING_DATA_PENDING
|
|
40
|
-
readonly fiber: Fiber.Fiber<void, Error>
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/** @internal */
|
|
44
|
-
export interface Done {
|
|
45
|
-
readonly _tag: OP_WARNING_DATA_DONE
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* State indicating that a test has not used time.
|
|
50
|
-
*
|
|
51
|
-
* @internal
|
|
52
|
-
*/
|
|
53
|
-
export const start: WarningData = {
|
|
54
|
-
_tag: OP_WARNING_DATA_START
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* State indicating that a test has used time but has not adjusted the
|
|
59
|
-
* `TestClock` with a reference to the fiber that will display the warning
|
|
60
|
-
* message.
|
|
61
|
-
*
|
|
62
|
-
* @internal
|
|
63
|
-
*/
|
|
64
|
-
export const pending = (fiber: Fiber.Fiber<void, Error>): WarningData => {
|
|
65
|
-
return {
|
|
66
|
-
_tag: OP_WARNING_DATA_PENDING,
|
|
67
|
-
fiber
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* State indicating that a test has used time or the warning message has
|
|
73
|
-
* already been displayed.
|
|
74
|
-
*
|
|
75
|
-
* @internal
|
|
76
|
-
*/
|
|
77
|
-
export const done: WarningData = {
|
|
78
|
-
_tag: OP_WARNING_DATA_DONE
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/** @internal */
|
|
82
|
-
export const isStart = (self: WarningData): self is Start => {
|
|
83
|
-
return self._tag === OP_WARNING_DATA_START
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
/** @internal */
|
|
87
|
-
export const isPending = (self: WarningData): self is Pending => {
|
|
88
|
-
return self._tag === OP_WARNING_DATA_PENDING
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/** @internal */
|
|
92
|
-
export const isDone = (self: WarningData): self is Done => {
|
|
93
|
-
return self._tag === OP_WARNING_DATA_DONE
|
|
94
|
-
}
|
package/src/internal/tracer.ts
DELETED
|
@@ -1,293 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @since 2.0.0
|
|
3
|
-
*/
|
|
4
|
-
import * as Context from "../Context.js"
|
|
5
|
-
import type * as Exit from "../Exit.js"
|
|
6
|
-
import type * as FiberRef from "../FiberRef.js"
|
|
7
|
-
import { constFalse } from "../Function.js"
|
|
8
|
-
import { globalValue } from "../GlobalValue.js"
|
|
9
|
-
import type * as Option from "../Option.js"
|
|
10
|
-
import type * as Tracer from "../Tracer.js"
|
|
11
|
-
import * as core from "./core.js"
|
|
12
|
-
|
|
13
|
-
/** @internal */
|
|
14
|
-
export const TracerTypeId: Tracer.TracerTypeId = Symbol.for("effect/Tracer") as Tracer.TracerTypeId
|
|
15
|
-
|
|
16
|
-
/** @internal */
|
|
17
|
-
export const make = (options: Omit<Tracer.Tracer, Tracer.TracerTypeId>): Tracer.Tracer => ({
|
|
18
|
-
[TracerTypeId]: TracerTypeId,
|
|
19
|
-
...options
|
|
20
|
-
})
|
|
21
|
-
|
|
22
|
-
/** @internal */
|
|
23
|
-
export const tracerTag = Context.GenericTag<Tracer.Tracer>("effect/Tracer")
|
|
24
|
-
|
|
25
|
-
/** @internal */
|
|
26
|
-
export const spanTag = Context.GenericTag<Tracer.ParentSpan, Tracer.AnySpan>("effect/ParentSpan")
|
|
27
|
-
|
|
28
|
-
const randomHexString = (function() {
|
|
29
|
-
const characters = "abcdef0123456789"
|
|
30
|
-
const charactersLength = characters.length
|
|
31
|
-
return function(length: number) {
|
|
32
|
-
let result = ""
|
|
33
|
-
for (let i = 0; i < length; i++) {
|
|
34
|
-
result += characters.charAt(Math.floor(Math.random() * charactersLength))
|
|
35
|
-
}
|
|
36
|
-
return result
|
|
37
|
-
}
|
|
38
|
-
})()
|
|
39
|
-
|
|
40
|
-
/** @internal */
|
|
41
|
-
export class NativeSpan implements Tracer.Span {
|
|
42
|
-
readonly _tag = "Span"
|
|
43
|
-
readonly spanId: string
|
|
44
|
-
readonly traceId: string = "native"
|
|
45
|
-
readonly sampled = true
|
|
46
|
-
|
|
47
|
-
status: Tracer.SpanStatus
|
|
48
|
-
attributes: Map<string, unknown>
|
|
49
|
-
events: Array<[name: string, startTime: bigint, attributes: Record<string, unknown>]> = []
|
|
50
|
-
links: Array<Tracer.SpanLink>
|
|
51
|
-
|
|
52
|
-
constructor(
|
|
53
|
-
readonly name: string,
|
|
54
|
-
readonly parent: Option.Option<Tracer.AnySpan>,
|
|
55
|
-
readonly context: Context.Context<never>,
|
|
56
|
-
links: Iterable<Tracer.SpanLink>,
|
|
57
|
-
readonly startTime: bigint,
|
|
58
|
-
readonly kind: Tracer.SpanKind
|
|
59
|
-
) {
|
|
60
|
-
this.status = {
|
|
61
|
-
_tag: "Started",
|
|
62
|
-
startTime
|
|
63
|
-
}
|
|
64
|
-
this.attributes = new Map()
|
|
65
|
-
this.traceId = parent._tag === "Some" ? parent.value.traceId : randomHexString(32)
|
|
66
|
-
this.spanId = randomHexString(16)
|
|
67
|
-
this.links = Array.from(links)
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
end(endTime: bigint, exit: Exit.Exit<unknown, unknown>): void {
|
|
71
|
-
this.status = {
|
|
72
|
-
_tag: "Ended",
|
|
73
|
-
endTime,
|
|
74
|
-
exit,
|
|
75
|
-
startTime: this.status.startTime
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
attribute(key: string, value: unknown): void {
|
|
80
|
-
this.attributes.set(key, value)
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
event(name: string, startTime: bigint, attributes?: Record<string, unknown>): void {
|
|
84
|
-
this.events.push([name, startTime, attributes ?? {}])
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
addLinks(links: ReadonlyArray<Tracer.SpanLink>): void {
|
|
88
|
-
// eslint-disable-next-line no-restricted-syntax
|
|
89
|
-
this.links.push(...links)
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/** @internal */
|
|
94
|
-
export const nativeTracer: Tracer.Tracer = make({
|
|
95
|
-
span: (name, parent, context, links, startTime, kind) =>
|
|
96
|
-
new NativeSpan(
|
|
97
|
-
name,
|
|
98
|
-
parent,
|
|
99
|
-
context,
|
|
100
|
-
links,
|
|
101
|
-
startTime,
|
|
102
|
-
kind
|
|
103
|
-
),
|
|
104
|
-
context: (f) => f()
|
|
105
|
-
})
|
|
106
|
-
|
|
107
|
-
/** @internal */
|
|
108
|
-
export const externalSpan = (options: {
|
|
109
|
-
readonly spanId: string
|
|
110
|
-
readonly traceId: string
|
|
111
|
-
readonly sampled?: boolean | undefined
|
|
112
|
-
readonly context?: Context.Context<never> | undefined
|
|
113
|
-
}): Tracer.ExternalSpan => ({
|
|
114
|
-
_tag: "ExternalSpan",
|
|
115
|
-
spanId: options.spanId,
|
|
116
|
-
traceId: options.traceId,
|
|
117
|
-
sampled: options.sampled ?? true,
|
|
118
|
-
context: options.context ?? Context.empty()
|
|
119
|
-
})
|
|
120
|
-
|
|
121
|
-
/** @internal */
|
|
122
|
-
export const addSpanStackTrace = (options: Tracer.SpanOptions | undefined): Tracer.SpanOptions => {
|
|
123
|
-
if (options?.captureStackTrace === false) {
|
|
124
|
-
return options
|
|
125
|
-
} else if (options?.captureStackTrace !== undefined && typeof options.captureStackTrace !== "boolean") {
|
|
126
|
-
return options
|
|
127
|
-
}
|
|
128
|
-
const limit = Error.stackTraceLimit
|
|
129
|
-
Error.stackTraceLimit = 3
|
|
130
|
-
const traceError = new Error()
|
|
131
|
-
Error.stackTraceLimit = limit
|
|
132
|
-
let cache: false | string = false
|
|
133
|
-
return {
|
|
134
|
-
...options,
|
|
135
|
-
captureStackTrace: () => {
|
|
136
|
-
if (cache !== false) {
|
|
137
|
-
return cache
|
|
138
|
-
}
|
|
139
|
-
if (traceError.stack !== undefined) {
|
|
140
|
-
const stack = traceError.stack.split("\n")
|
|
141
|
-
if (stack[3] !== undefined) {
|
|
142
|
-
cache = stack[3].trim()
|
|
143
|
-
return cache
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
/** @internal */
|
|
151
|
-
export const DisablePropagation = Context.Reference<Tracer.DisablePropagation>()("effect/Tracer/DisablePropagation", {
|
|
152
|
-
defaultValue: constFalse
|
|
153
|
-
})
|
|
154
|
-
|
|
155
|
-
// -----------------------------------------------------------------------------
|
|
156
|
-
// Source Location Capture
|
|
157
|
-
// -----------------------------------------------------------------------------
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* Represents a source code location captured from a stack trace.
|
|
161
|
-
* @internal
|
|
162
|
-
*/
|
|
163
|
-
export interface SourceLocation {
|
|
164
|
-
readonly file: string
|
|
165
|
-
readonly line: number
|
|
166
|
-
readonly column: number
|
|
167
|
-
readonly functionName?: string
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
// Cache for source locations: raw frame string -> SourceLocation
|
|
171
|
-
// Maximum cache size to prevent unbounded memory growth in long-running services
|
|
172
|
-
const MAX_SOURCE_LOCATION_CACHE_SIZE = 1000
|
|
173
|
-
const sourceLocationCache = new Map<string, SourceLocation>()
|
|
174
|
-
|
|
175
|
-
/**
|
|
176
|
-
* Evicts the oldest cache entry if at capacity (FIFO eviction).
|
|
177
|
-
* Maps maintain insertion order, so the first key is the oldest.
|
|
178
|
-
* @internal
|
|
179
|
-
*/
|
|
180
|
-
const evictOldestCacheEntry = (): void => {
|
|
181
|
-
if (sourceLocationCache.size >= MAX_SOURCE_LOCATION_CACHE_SIZE) {
|
|
182
|
-
const firstKey = sourceLocationCache.keys().next().value
|
|
183
|
-
if (firstKey !== undefined) {
|
|
184
|
-
sourceLocationCache.delete(firstKey)
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* Parses source location from a pre-captured stack trace string with caching.
|
|
191
|
-
* This is used when the stack was captured earlier (while user code was on stack)
|
|
192
|
-
* but parsing is delayed until we know capture is enabled.
|
|
193
|
-
*
|
|
194
|
-
* @internal
|
|
195
|
-
*/
|
|
196
|
-
export const parseSourceLocationFromStack = (stack: string): SourceLocation | undefined => {
|
|
197
|
-
const lines = stack.split("\n")
|
|
198
|
-
// Find first non-internal frame (skip Error, fork, unsafeMakeChildFiber, etc.)
|
|
199
|
-
const userFrame = findUserFrame(lines)
|
|
200
|
-
if (!userFrame) return undefined
|
|
201
|
-
|
|
202
|
-
const cacheKey = userFrame.raw // Use raw frame string as key
|
|
203
|
-
|
|
204
|
-
const cached = sourceLocationCache.get(cacheKey)
|
|
205
|
-
if (cached) return cached
|
|
206
|
-
|
|
207
|
-
const parsed = parseStackFrame(userFrame.raw)
|
|
208
|
-
if (parsed) {
|
|
209
|
-
evictOldestCacheEntry() // Ensure cache doesn't grow unbounded
|
|
210
|
-
sourceLocationCache.set(cacheKey, parsed)
|
|
211
|
-
}
|
|
212
|
-
return parsed
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
/**
|
|
216
|
-
* Captures the source location from the current stack trace with caching.
|
|
217
|
-
* Uses the raw stack frame string as the cache key for fast lookups.
|
|
218
|
-
*
|
|
219
|
-
* Note: Uses the current Error.stackTraceLimit value (typically 10-15).
|
|
220
|
-
* If capturing deeply nested call sites, configure Error.stackTraceLimit
|
|
221
|
-
* globally before importing Effect (e.g., Error.stackTraceLimit = 25).
|
|
222
|
-
*
|
|
223
|
-
* @internal
|
|
224
|
-
*/
|
|
225
|
-
export const captureSourceLocationCached = (): SourceLocation | undefined => {
|
|
226
|
-
const traceError = new Error()
|
|
227
|
-
if (!traceError.stack) return undefined
|
|
228
|
-
return parseSourceLocationFromStack(traceError.stack)
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
const findUserFrame = (stack: Array<string>): { raw: string; index: number } | undefined => {
|
|
232
|
-
// Skip frames from Effect internals
|
|
233
|
-
for (let i = 1; i < stack.length; i++) {
|
|
234
|
-
const frame = stack[i]
|
|
235
|
-
if (
|
|
236
|
-
frame &&
|
|
237
|
-
!isInternalFrame(frame)
|
|
238
|
-
) {
|
|
239
|
-
return { raw: frame.trim(), index: i }
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
return undefined
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
const isInternalFrame = (frame: string): boolean => {
|
|
246
|
-
// Skip internal directories
|
|
247
|
-
if (frame.includes("/internal/")) return true
|
|
248
|
-
// Skip Effect core source files
|
|
249
|
-
if (frame.includes("/packages/effect/src/")) return true
|
|
250
|
-
if (frame.includes("/effect/dist/")) return true
|
|
251
|
-
// Skip node_modules (for published effect packages)
|
|
252
|
-
if (frame.includes("node_modules/effect/")) return true
|
|
253
|
-
if (frame.includes("node_modules/@effect/")) return true
|
|
254
|
-
// Skip specific internal functions
|
|
255
|
-
if (frame.includes("fiberRuntime")) return true
|
|
256
|
-
if (frame.includes("captureSourceLocation")) return true
|
|
257
|
-
if (frame.includes("effect_internal_function")) return true
|
|
258
|
-
return false
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
const parseStackFrame = (frame: string): SourceLocation | undefined => {
|
|
262
|
-
// Parse "at functionName (file:line:col)" or "at file:line:col"
|
|
263
|
-
const match = frame.match(/at\s+(?:(.+?)\s+\()?(.+?):(\d+):(\d+)\)?/)
|
|
264
|
-
if (!match) return undefined
|
|
265
|
-
|
|
266
|
-
return {
|
|
267
|
-
functionName: match[1],
|
|
268
|
-
file: match[2],
|
|
269
|
-
line: parseInt(match[3], 10),
|
|
270
|
-
column: parseInt(match[4], 10)
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
// -----------------------------------------------------------------------------
|
|
275
|
-
// OTel Context Propagation
|
|
276
|
-
// -----------------------------------------------------------------------------
|
|
277
|
-
|
|
278
|
-
/**
|
|
279
|
-
* FiberRef for propagating OpenTelemetry span context through Effect's fiber hierarchy.
|
|
280
|
-
*
|
|
281
|
-
* When fibers are forked, they inherit this FiberRef's value from their parent.
|
|
282
|
-
* This allows supervisors to maintain correct parent-child span relationships
|
|
283
|
-
* even when the OTel AsyncLocalStorage context is lost due to Effect's fiber scheduler.
|
|
284
|
-
*
|
|
285
|
-
* The value is typed as `unknown` to avoid a direct dependency on @opentelemetry/api.
|
|
286
|
-
* Consumers should cast to `OtelApi.Context` when using.
|
|
287
|
-
*
|
|
288
|
-
* @internal
|
|
289
|
-
*/
|
|
290
|
-
export const currentOtelSpanContext: FiberRef.FiberRef<unknown> = globalValue(
|
|
291
|
-
"effect/Tracer/currentOtelSpanContext",
|
|
292
|
-
() => core.fiberRefUnsafeMake<unknown>(undefined)
|
|
293
|
-
)
|