@sentry/core 10.53.1 → 10.54.0
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/build/cjs/api.js +10 -34
- package/build/cjs/api.js.map +1 -1
- package/build/cjs/asyncContext/index.js +0 -14
- package/build/cjs/asyncContext/index.js.map +1 -1
- package/build/cjs/asyncContext/stackStrategy.js +16 -47
- package/build/cjs/asyncContext/stackStrategy.js.map +1 -1
- package/build/cjs/attributes.js +17 -95
- package/build/cjs/attributes.js.map +1 -1
- package/build/cjs/breadcrumbs.js +2 -22
- package/build/cjs/breadcrumbs.js.map +1 -1
- package/build/cjs/browser.js +12 -3
- package/build/cjs/browser.js.map +1 -1
- package/build/cjs/carrier.js +5 -42
- package/build/cjs/carrier.js.map +1 -1
- package/build/cjs/checkin.js +5 -19
- package/build/cjs/checkin.js.map +1 -1
- package/build/cjs/client.js +216 -585
- package/build/cjs/client.js.map +1 -1
- package/build/cjs/constants.js +2 -2
- package/build/cjs/currentScopes.js +5 -86
- package/build/cjs/currentScopes.js.map +1 -1
- package/build/cjs/debug-build.js +0 -5
- package/build/cjs/debug-build.js.map +1 -1
- package/build/cjs/defaultScopes.js +2 -5
- package/build/cjs/defaultScopes.js.map +1 -1
- package/build/cjs/envelope.js +32 -103
- package/build/cjs/envelope.js.map +1 -1
- package/build/cjs/eventProcessors.js +4 -23
- package/build/cjs/eventProcessors.js.map +1 -1
- package/build/cjs/exports.js +21 -197
- package/build/cjs/exports.js.map +1 -1
- package/build/cjs/feedback.js +7 -19
- package/build/cjs/feedback.js.map +1 -1
- package/build/cjs/fetch.js +66 -201
- package/build/cjs/fetch.js.map +1 -1
- package/build/cjs/index.js +17 -3
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/instrument/console.js +9 -41
- package/build/cjs/instrument/console.js.map +1 -1
- package/build/cjs/instrument/fetch.js +47 -156
- package/build/cjs/instrument/fetch.js.map +1 -1
- package/build/cjs/instrument/globalError.js +4 -25
- package/build/cjs/instrument/globalError.js.map +1 -1
- package/build/cjs/instrument/globalUnhandledRejection.js +4 -21
- package/build/cjs/instrument/globalUnhandledRejection.js.map +1 -1
- package/build/cjs/instrument/handlers.js +9 -21
- package/build/cjs/instrument/handlers.js.map +1 -1
- package/build/cjs/integration.js +13 -77
- package/build/cjs/integration.js.map +1 -1
- package/build/cjs/integrations/captureconsole.js +16 -40
- package/build/cjs/integrations/captureconsole.js.map +1 -1
- package/build/cjs/integrations/consola.js +57 -163
- package/build/cjs/integrations/consola.js.map +1 -1
- package/build/cjs/integrations/console.js +11 -43
- package/build/cjs/integrations/console.js.map +1 -1
- package/build/cjs/integrations/conversationId.js +5 -22
- package/build/cjs/integrations/conversationId.js.map +1 -1
- package/build/cjs/integrations/dedupe.js +16 -74
- package/build/cjs/integrations/dedupe.js.map +1 -1
- package/build/cjs/integrations/eventFilters.js +63 -114
- package/build/cjs/integrations/eventFilters.js.map +1 -1
- package/build/cjs/integrations/express/index.js +30 -145
- package/build/cjs/integrations/express/index.js.map +1 -1
- package/build/cjs/integrations/express/patch-layer.js +20 -130
- package/build/cjs/integrations/express/patch-layer.js.map +1 -1
- package/build/cjs/integrations/express/request-layer-store.js +1 -3
- package/build/cjs/integrations/express/request-layer-store.js.map +1 -1
- package/build/cjs/integrations/express/set-sdk-processing-metadata.js +0 -2
- package/build/cjs/integrations/express/set-sdk-processing-metadata.js.map +1 -1
- package/build/cjs/integrations/express/types.js +6 -7
- package/build/cjs/integrations/express/types.js.map +1 -1
- package/build/cjs/integrations/express/utils.js +37 -145
- package/build/cjs/integrations/express/utils.js.map +1 -1
- package/build/cjs/integrations/extraerrordata.js +24 -69
- package/build/cjs/integrations/extraerrordata.js.map +1 -1
- package/build/cjs/integrations/featureFlags/featureFlagsIntegration.js +3 -29
- package/build/cjs/integrations/featureFlags/featureFlagsIntegration.js.map +1 -1
- package/build/cjs/integrations/featureFlags/growthbook.js +11 -40
- package/build/cjs/integrations/featureFlags/growthbook.js.map +1 -1
- package/build/cjs/integrations/functiontostring.js +6 -27
- package/build/cjs/integrations/functiontostring.js.map +1 -1
- package/build/cjs/integrations/http/add-outgoing-request-breadcrumb.js +10 -18
- package/build/cjs/integrations/http/add-outgoing-request-breadcrumb.js.map +1 -1
- package/build/cjs/integrations/http/client-patch.js +8 -70
- package/build/cjs/integrations/http/client-patch.js.map +1 -1
- package/build/cjs/integrations/http/client-subscriptions.js +22 -59
- package/build/cjs/integrations/http/client-subscriptions.js.map +1 -1
- package/build/cjs/integrations/http/constants.js +3 -3
- package/build/cjs/integrations/http/double-wrap-warning.js +10 -18
- package/build/cjs/integrations/http/double-wrap-warning.js.map +1 -1
- package/build/cjs/integrations/http/get-outgoing-span-data.js +30 -47
- package/build/cjs/integrations/http/get-outgoing-span-data.js.map +1 -1
- package/build/cjs/integrations/http/get-request-url.js +7 -24
- package/build/cjs/integrations/http/get-request-url.js.map +1 -1
- package/build/cjs/integrations/http/inject-trace-propagation-headers.js +14 -38
- package/build/cjs/integrations/http/inject-trace-propagation-headers.js.map +1 -1
- package/build/cjs/integrations/http/patch-request-to-capture-body.js +80 -0
- package/build/cjs/integrations/http/patch-request-to-capture-body.js.map +1 -0
- package/build/cjs/integrations/http/record-request-session.js +61 -0
- package/build/cjs/integrations/http/record-request-session.js.map +1 -0
- package/build/cjs/integrations/http/server-subscription.js +289 -0
- package/build/cjs/integrations/http/server-subscription.js.map +1 -0
- package/build/cjs/integrations/linkederrors.js +6 -11
- package/build/cjs/integrations/linkederrors.js.map +1 -1
- package/build/cjs/integrations/mcp-server/attributeExtraction.js +26 -69
- package/build/cjs/integrations/mcp-server/attributeExtraction.js.map +1 -1
- package/build/cjs/integrations/mcp-server/attributes.js +30 -138
- package/build/cjs/integrations/mcp-server/attributes.js.map +1 -1
- package/build/cjs/integrations/mcp-server/correlation.js +20 -91
- package/build/cjs/integrations/mcp-server/correlation.js.map +1 -1
- package/build/cjs/integrations/mcp-server/errorCapture.js +6 -25
- package/build/cjs/integrations/mcp-server/errorCapture.js.map +1 -1
- package/build/cjs/integrations/mcp-server/handlers.js +55 -169
- package/build/cjs/integrations/mcp-server/handlers.js.map +1 -1
- package/build/cjs/integrations/mcp-server/index.js +7 -60
- package/build/cjs/integrations/mcp-server/index.js.map +1 -1
- package/build/cjs/integrations/mcp-server/methodConfig.js +21 -59
- package/build/cjs/integrations/mcp-server/methodConfig.js.map +1 -1
- package/build/cjs/integrations/mcp-server/piiFiltering.js +5 -33
- package/build/cjs/integrations/mcp-server/piiFiltering.js.map +1 -1
- package/build/cjs/integrations/mcp-server/resultExtraction.js +20 -76
- package/build/cjs/integrations/mcp-server/resultExtraction.js.map +1 -1
- package/build/cjs/integrations/mcp-server/sessionExtraction.js +30 -121
- package/build/cjs/integrations/mcp-server/sessionExtraction.js.map +1 -1
- package/build/cjs/integrations/mcp-server/sessionManagement.js +2 -60
- package/build/cjs/integrations/mcp-server/sessionManagement.js.map +1 -1
- package/build/cjs/integrations/mcp-server/spans.js +20 -107
- package/build/cjs/integrations/mcp-server/spans.js.map +1 -1
- package/build/cjs/integrations/mcp-server/transport.js +26 -94
- package/build/cjs/integrations/mcp-server/transport.js.map +1 -1
- package/build/cjs/integrations/mcp-server/validation.js +6 -72
- package/build/cjs/integrations/mcp-server/validation.js.map +1 -1
- package/build/cjs/integrations/moduleMetadata.js +6 -20
- package/build/cjs/integrations/moduleMetadata.js.map +1 -1
- package/build/cjs/integrations/postgresjs.js +78 -287
- package/build/cjs/integrations/postgresjs.js.map +1 -1
- package/build/cjs/integrations/requestdata.js +30 -93
- package/build/cjs/integrations/requestdata.js.map +1 -1
- package/build/cjs/integrations/rewriteframes.js +14 -45
- package/build/cjs/integrations/rewriteframes.js.map +1 -1
- package/build/cjs/integrations/spanStreaming.js +9 -15
- package/build/cjs/integrations/spanStreaming.js.map +1 -1
- package/build/cjs/integrations/supabase.js +224 -333
- package/build/cjs/integrations/supabase.js.map +1 -1
- package/build/cjs/integrations/third-party-errors-filter.js +60 -85
- package/build/cjs/integrations/third-party-errors-filter.js.map +1 -1
- package/build/cjs/integrations/zoderrors.js +35 -111
- package/build/cjs/integrations/zoderrors.js.map +1 -1
- package/build/cjs/logs/console-integration.js +15 -50
- package/build/cjs/logs/console-integration.js.map +1 -1
- package/build/cjs/logs/constants.js +1 -6
- package/build/cjs/logs/constants.js.map +1 -1
- package/build/cjs/logs/envelope.js +10 -40
- package/build/cjs/logs/envelope.js.map +1 -1
- package/build/cjs/logs/internal.js +53 -125
- package/build/cjs/logs/internal.js.map +1 -1
- package/build/cjs/logs/public-api.js +13 -228
- package/build/cjs/logs/public-api.js.map +1 -1
- package/build/cjs/logs/utils.js +6 -47
- package/build/cjs/logs/utils.js.map +1 -1
- package/build/cjs/metadata.js +6 -51
- package/build/cjs/metadata.js.map +1 -1
- package/build/cjs/metrics/envelope.js +12 -45
- package/build/cjs/metrics/envelope.js.map +1 -1
- package/build/cjs/metrics/internal.js +31 -144
- package/build/cjs/metrics/internal.js.map +1 -1
- package/build/cjs/metrics/public-api.js +4 -109
- package/build/cjs/metrics/public-api.js.map +1 -1
- package/build/cjs/profiling.js +11 -41
- package/build/cjs/profiling.js.map +1 -1
- package/build/cjs/scope.js +73 -224
- package/build/cjs/scope.js.map +1 -1
- package/build/cjs/sdk.js +2 -21
- package/build/cjs/sdk.js.map +1 -1
- package/build/cjs/semanticAttributes.js +30 -116
- package/build/cjs/semanticAttributes.js.map +1 -1
- package/build/cjs/server-runtime-client.js +32 -87
- package/build/cjs/server-runtime-client.js.map +1 -1
- package/build/cjs/server.js +17 -3
- package/build/cjs/server.js.map +1 -1
- package/build/cjs/session.js +14 -67
- package/build/cjs/session.js.map +1 -1
- package/build/cjs/tracing/ai/gen-ai-attributes.js +45 -249
- package/build/cjs/tracing/ai/gen-ai-attributes.js.map +1 -1
- package/build/cjs/tracing/ai/mediaStripping.js +21 -116
- package/build/cjs/tracing/ai/mediaStripping.js.map +1 -1
- package/build/cjs/tracing/ai/messageTruncation.js +26 -212
- package/build/cjs/tracing/ai/messageTruncation.js.map +1 -1
- package/build/cjs/tracing/ai/utils.js +40 -180
- package/build/cjs/tracing/ai/utils.js.map +1 -1
- package/build/cjs/tracing/anthropic-ai/constants.js +9 -12
- package/build/cjs/tracing/anthropic-ai/constants.js.map +1 -1
- package/build/cjs/tracing/anthropic-ai/index.js +67 -172
- package/build/cjs/tracing/anthropic-ai/index.js.map +1 -1
- package/build/cjs/tracing/anthropic-ai/streaming.js +45 -149
- package/build/cjs/tracing/anthropic-ai/streaming.js.map +1 -1
- package/build/cjs/tracing/anthropic-ai/utils.js +17 -47
- package/build/cjs/tracing/anthropic-ai/utils.js.map +1 -1
- package/build/cjs/tracing/dynamicSamplingContext.js +18 -85
- package/build/cjs/tracing/dynamicSamplingContext.js.map +1 -1
- package/build/cjs/tracing/errors.js +2 -14
- package/build/cjs/tracing/errors.js.map +1 -1
- package/build/cjs/tracing/google-genai/constants.js +9 -16
- package/build/cjs/tracing/google-genai/constants.js.map +1 -1
- package/build/cjs/tracing/google-genai/index.js +79 -223
- package/build/cjs/tracing/google-genai/index.js.map +1 -1
- package/build/cjs/tracing/google-genai/streaming.js +11 -56
- package/build/cjs/tracing/google-genai/streaming.js.map +1 -1
- package/build/cjs/tracing/google-genai/utils.js +8 -13
- package/build/cjs/tracing/google-genai/utils.js.map +1 -1
- package/build/cjs/tracing/idleSpan.js +48 -174
- package/build/cjs/tracing/idleSpan.js.map +1 -1
- package/build/cjs/tracing/langchain/constants.js +8 -9
- package/build/cjs/tracing/langchain/constants.js.map +1 -1
- package/build/cjs/tracing/langchain/embeddings.js +31 -75
- package/build/cjs/tracing/langchain/embeddings.js.map +1 -1
- package/build/cjs/tracing/langchain/index.js +64 -161
- package/build/cjs/tracing/langchain/index.js.map +1 -1
- package/build/cjs/tracing/langchain/utils.js +101 -311
- package/build/cjs/tracing/langchain/utils.js.map +1 -1
- package/build/cjs/tracing/langgraph/constants.js +2 -2
- package/build/cjs/tracing/langgraph/index.js +57 -160
- package/build/cjs/tracing/langgraph/index.js.map +1 -1
- package/build/cjs/tracing/langgraph/utils.js +53 -170
- package/build/cjs/tracing/langgraph/utils.js.map +1 -1
- package/build/cjs/tracing/logSpans.js +10 -26
- package/build/cjs/tracing/logSpans.js.map +1 -1
- package/build/cjs/tracing/measurement.js +6 -18
- package/build/cjs/tracing/measurement.js.map +1 -1
- package/build/cjs/tracing/openai/constants.js +20 -24
- package/build/cjs/tracing/openai/constants.js.map +1 -1
- package/build/cjs/tracing/openai/index.js +52 -132
- package/build/cjs/tracing/openai/index.js.map +1 -1
- package/build/cjs/tracing/openai/streaming.js +24 -102
- package/build/cjs/tracing/openai/streaming.js.map +1 -1
- package/build/cjs/tracing/openai/utils.js +36 -107
- package/build/cjs/tracing/openai/utils.js.map +1 -1
- package/build/cjs/tracing/sampling.js +23 -63
- package/build/cjs/tracing/sampling.js.map +1 -1
- package/build/cjs/tracing/sentryNonRecordingSpan.js +15 -40
- package/build/cjs/tracing/sentryNonRecordingSpan.js.map +1 -1
- package/build/cjs/tracing/sentrySpan.js +66 -172
- package/build/cjs/tracing/sentrySpan.js.map +1 -1
- package/build/cjs/tracing/spans/beforeSendSpan.js +4 -32
- package/build/cjs/tracing/spans/beforeSendSpan.js.map +1 -1
- package/build/cjs/tracing/spans/captureSpan.js +58 -156
- package/build/cjs/tracing/spans/captureSpan.js.map +1 -1
- package/build/cjs/tracing/spans/envelope.js +12 -24
- package/build/cjs/tracing/spans/envelope.js.map +1 -1
- package/build/cjs/tracing/spans/estimateSize.js +0 -22
- package/build/cjs/tracing/spans/estimateSize.js.map +1 -1
- package/build/cjs/tracing/spans/extractGenAiSpans.js +11 -33
- package/build/cjs/tracing/spans/extractGenAiSpans.js.map +1 -1
- package/build/cjs/tracing/spans/hasSpanStreamingEnabled.js +1 -4
- package/build/cjs/tracing/spans/hasSpanStreamingEnabled.js.map +1 -1
- package/build/cjs/tracing/spans/scopeContextAttributes.js +58 -0
- package/build/cjs/tracing/spans/scopeContextAttributes.js.map +1 -0
- package/build/cjs/tracing/spans/spanBuffer.js +21 -71
- package/build/cjs/tracing/spans/spanBuffer.js.map +1 -1
- package/build/cjs/tracing/spans/spanJsonToStreamedSpan.js +4 -8
- package/build/cjs/tracing/spans/spanJsonToStreamedSpan.js.map +1 -1
- package/build/cjs/tracing/spanstatus.js +15 -32
- package/build/cjs/tracing/spanstatus.js.map +1 -1
- package/build/cjs/tracing/trace.js +95 -311
- package/build/cjs/tracing/trace.js.map +1 -1
- package/build/cjs/tracing/utils.js +4 -14
- package/build/cjs/tracing/utils.js.map +1 -1
- package/build/cjs/tracing/vercel-ai/constants.js +15 -26
- package/build/cjs/tracing/vercel-ai/constants.js.map +1 -1
- package/build/cjs/tracing/vercel-ai/index.js +84 -288
- package/build/cjs/tracing/vercel-ai/index.js.map +1 -1
- package/build/cjs/tracing/vercel-ai/utils.js +30 -128
- package/build/cjs/tracing/vercel-ai/utils.js.map +1 -1
- package/build/cjs/tracing/vercel-ai/vercel-ai-attributes.js +22 -229
- package/build/cjs/tracing/vercel-ai/vercel-ai-attributes.js.map +1 -1
- package/build/cjs/transports/base.js +32 -67
- package/build/cjs/transports/base.js.map +1 -1
- package/build/cjs/transports/multiplexed.js +38 -103
- package/build/cjs/transports/multiplexed.js.map +1 -1
- package/build/cjs/transports/offline.js +31 -72
- package/build/cjs/transports/offline.js.map +1 -1
- package/build/cjs/transports/userAgent.js +4 -13
- package/build/cjs/transports/userAgent.js.map +1 -1
- package/build/cjs/trpc.js +19 -39
- package/build/cjs/trpc.js.map +1 -1
- package/build/cjs/utils/aggregate-errors.js +18 -62
- package/build/cjs/utils/aggregate-errors.js.map +1 -1
- package/build/cjs/utils/ai/providerSkip.js +3 -50
- package/build/cjs/utils/ai/providerSkip.js.map +1 -1
- package/build/cjs/utils/anr.js +7 -36
- package/build/cjs/utils/anr.js.map +1 -1
- package/build/cjs/utils/baggage.js +37 -146
- package/build/cjs/utils/baggage.js.map +1 -1
- package/build/cjs/utils/breadcrumb-log-level.js +5 -9
- package/build/cjs/utils/breadcrumb-log-level.js.map +1 -1
- package/build/cjs/utils/browser.js +24 -86
- package/build/cjs/utils/browser.js.map +1 -1
- package/build/cjs/utils/chain-and-copy-promiselike.js +10 -27
- package/build/cjs/utils/chain-and-copy-promiselike.js.map +1 -1
- package/build/cjs/utils/clientreport.js +4 -13
- package/build/cjs/utils/clientreport.js.map +1 -1
- package/build/cjs/utils/cookie.js +6 -53
- package/build/cjs/utils/cookie.js.map +1 -1
- package/build/cjs/utils/data-collection/defaultPiiToCollectionOptions.js +28 -0
- package/build/cjs/utils/data-collection/defaultPiiToCollectionOptions.js.map +1 -0
- package/build/cjs/utils/data-collection/filterCookies.js +23 -0
- package/build/cjs/utils/data-collection/filterCookies.js.map +1 -0
- package/build/cjs/utils/data-collection/filterKeyValueData.js +43 -0
- package/build/cjs/utils/data-collection/filterKeyValueData.js.map +1 -0
- package/build/cjs/utils/data-collection/filterQueryParams.js +26 -0
- package/build/cjs/utils/data-collection/filterQueryParams.js.map +1 -0
- package/build/cjs/utils/data-collection/filtering-snippets.js +61 -0
- package/build/cjs/utils/data-collection/filtering-snippets.js.map +1 -0
- package/build/cjs/utils/data-collection/resolveDataCollectionOptions.js +37 -0
- package/build/cjs/utils/data-collection/resolveDataCollectionOptions.js.map +1 -0
- package/build/cjs/utils/debounce.js +5 -32
- package/build/cjs/utils/debounce.js.map +1 -1
- package/build/cjs/utils/debug-ids.js +4 -42
- package/build/cjs/utils/debug-ids.js.map +1 -1
- package/build/cjs/utils/debug-logger.js +23 -56
- package/build/cjs/utils/debug-logger.js.map +1 -1
- package/build/cjs/utils/dsn.js +18 -81
- package/build/cjs/utils/dsn.js.map +1 -1
- package/build/cjs/utils/env.js +3 -27
- package/build/cjs/utils/env.js.map +1 -1
- package/build/cjs/utils/envToBool.js +2 -15
- package/build/cjs/utils/envToBool.js.map +1 -1
- package/build/cjs/utils/envelope.js +39 -133
- package/build/cjs/utils/envelope.js.map +1 -1
- package/build/cjs/utils/error.js +3 -10
- package/build/cjs/utils/error.js.map +1 -1
- package/build/cjs/utils/eventUtils.js +0 -8
- package/build/cjs/utils/eventUtils.js.map +1 -1
- package/build/cjs/utils/eventbuilder.js +30 -114
- package/build/cjs/utils/eventbuilder.js.map +1 -1
- package/build/cjs/utils/exports.js +5 -24
- package/build/cjs/utils/exports.js.map +1 -1
- package/build/cjs/utils/featureFlags.js +10 -96
- package/build/cjs/utils/featureFlags.js.map +1 -1
- package/build/cjs/utils/flushIfServerless.js +14 -48
- package/build/cjs/utils/flushIfServerless.js.map +1 -1
- package/build/cjs/utils/get-default-export.js +1 -25
- package/build/cjs/utils/get-default-export.js.map +1 -1
- package/build/cjs/utils/handleCallbackErrors.js +10 -48
- package/build/cjs/utils/handleCallbackErrors.js.map +1 -1
- package/build/cjs/utils/hasSpansEnabled.js +4 -28
- package/build/cjs/utils/hasSpansEnabled.js.map +1 -1
- package/build/cjs/utils/ipAddress.js +7 -19
- package/build/cjs/utils/ipAddress.js.map +1 -1
- package/build/cjs/utils/is.js +18 -163
- package/build/cjs/utils/is.js.map +1 -1
- package/build/cjs/utils/isBrowser.js +3 -9
- package/build/cjs/utils/isBrowser.js.map +1 -1
- package/build/cjs/utils/isSentryRequestUrl.js +2 -19
- package/build/cjs/utils/isSentryRequestUrl.js.map +1 -1
- package/build/cjs/utils/lru.js +13 -24
- package/build/cjs/utils/lru.js.map +1 -1
- package/build/cjs/utils/merge.js +1 -17
- package/build/cjs/utils/merge.js.map +1 -1
- package/build/cjs/utils/meta.js +1 -24
- package/build/cjs/utils/meta.js.map +1 -1
- package/build/cjs/utils/misc.js +31 -134
- package/build/cjs/utils/misc.js.map +1 -1
- package/build/cjs/utils/node-stack-trace.js +22 -61
- package/build/cjs/utils/node-stack-trace.js.map +1 -1
- package/build/cjs/utils/node.js +3 -48
- package/build/cjs/utils/node.js.map +1 -1
- package/build/cjs/utils/normalizationHints.js +5 -18
- package/build/cjs/utils/normalizationHints.js.map +1 -1
- package/build/cjs/utils/normalize.js +39 -205
- package/build/cjs/utils/normalize.js.map +1 -1
- package/build/cjs/utils/object.js +33 -168
- package/build/cjs/utils/object.js.map +1 -1
- package/build/cjs/utils/parameterize.js +2 -21
- package/build/cjs/utils/parameterize.js.map +1 -1
- package/build/cjs/utils/parseSampleRate.js +4 -13
- package/build/cjs/utils/parseSampleRate.js.map +1 -1
- package/build/cjs/utils/path.js +28 -115
- package/build/cjs/utils/path.js.map +1 -1
- package/build/cjs/utils/prepareEvent.js +53 -191
- package/build/cjs/utils/prepareEvent.js.map +1 -1
- package/build/cjs/utils/promisebuffer.js +5 -47
- package/build/cjs/utils/promisebuffer.js.map +1 -1
- package/build/cjs/utils/propagationContext.js +0 -7
- package/build/cjs/utils/propagationContext.js.map +1 -1
- package/build/cjs/utils/randomSafeContext.js +3 -22
- package/build/cjs/utils/randomSafeContext.js.map +1 -1
- package/build/cjs/utils/ratelimit.js +13 -66
- package/build/cjs/utils/ratelimit.js.map +1 -1
- package/build/cjs/utils/request.js +62 -269
- package/build/cjs/utils/request.js.map +1 -1
- package/build/cjs/utils/scopeData.js +15 -79
- package/build/cjs/utils/scopeData.js.map +1 -1
- package/build/cjs/utils/sdkMetadata.js +5 -19
- package/build/cjs/utils/sdkMetadata.js.map +1 -1
- package/build/cjs/utils/severity.js +1 -9
- package/build/cjs/utils/severity.js.map +1 -1
- package/build/cjs/utils/should-ignore-span.js +6 -38
- package/build/cjs/utils/should-ignore-span.js.map +1 -1
- package/build/cjs/utils/spanOnScope.js +3 -14
- package/build/cjs/utils/spanOnScope.js.map +1 -1
- package/build/cjs/utils/spanUtils.js +42 -222
- package/build/cjs/utils/spanUtils.js.map +1 -1
- package/build/cjs/utils/stacktrace.js +19 -106
- package/build/cjs/utils/stacktrace.js.map +1 -1
- package/build/cjs/utils/string.js +7 -75
- package/build/cjs/utils/string.js.map +1 -1
- package/build/cjs/utils/supports.js +14 -99
- package/build/cjs/utils/supports.js.map +1 -1
- package/build/cjs/utils/syncpromise.js +19 -68
- package/build/cjs/utils/syncpromise.js.map +1 -1
- package/build/cjs/utils/time.js +7 -84
- package/build/cjs/utils/time.js.map +1 -1
- package/build/cjs/utils/timer.js +1 -10
- package/build/cjs/utils/timer.js.map +1 -1
- package/build/cjs/utils/timestampSequence.js +5 -21
- package/build/cjs/utils/timestampSequence.js.map +1 -1
- package/build/cjs/utils/trace-info.js +3 -10
- package/build/cjs/utils/trace-info.js.map +1 -1
- package/build/cjs/utils/traceData.js +4 -39
- package/build/cjs/utils/traceData.js.map +1 -1
- package/build/cjs/utils/tracePropagationTargets.js +4 -18
- package/build/cjs/utils/tracePropagationTargets.js.map +1 -1
- package/build/cjs/utils/tracing.js +32 -106
- package/build/cjs/utils/tracing.js.map +1 -1
- package/build/cjs/utils/transactionEvent.js +11 -19
- package/build/cjs/utils/transactionEvent.js.map +1 -1
- package/build/cjs/utils/tunnel.js +12 -33
- package/build/cjs/utils/tunnel.js.map +1 -1
- package/build/cjs/utils/url.js +42 -176
- package/build/cjs/utils/url.js.map +1 -1
- package/build/cjs/utils/vercelWaitUntil.js +4 -12
- package/build/cjs/utils/vercelWaitUntil.js.map +1 -1
- package/build/cjs/utils/version.js +1 -3
- package/build/cjs/utils/version.js.map +1 -1
- package/build/cjs/utils/weakRef.js +5 -36
- package/build/cjs/utils/weakRef.js.map +1 -1
- package/build/cjs/utils/worldwide.js +1 -4
- package/build/cjs/utils/worldwide.js.map +1 -1
- package/build/cjs/vendor/escapeStringForRegex.js +1 -32
- package/build/cjs/vendor/escapeStringForRegex.js.map +1 -1
- package/build/cjs/vendor/getIpAddress.js +19 -99
- package/build/cjs/vendor/getIpAddress.js.map +1 -1
- package/build/esm/api.js +10 -34
- package/build/esm/api.js.map +1 -1
- package/build/esm/asyncContext/index.js +0 -14
- package/build/esm/asyncContext/index.js.map +1 -1
- package/build/esm/asyncContext/stackStrategy.js +16 -47
- package/build/esm/asyncContext/stackStrategy.js.map +1 -1
- package/build/esm/attributes.js +17 -95
- package/build/esm/attributes.js.map +1 -1
- package/build/esm/breadcrumbs.js +2 -22
- package/build/esm/breadcrumbs.js.map +1 -1
- package/build/esm/browser.js +5 -1
- package/build/esm/browser.js.map +1 -1
- package/build/esm/carrier.js +5 -42
- package/build/esm/carrier.js.map +1 -1
- package/build/esm/checkin.js +5 -19
- package/build/esm/checkin.js.map +1 -1
- package/build/esm/client.js +216 -585
- package/build/esm/client.js.map +1 -1
- package/build/esm/constants.js +2 -2
- package/build/esm/currentScopes.js +5 -86
- package/build/esm/currentScopes.js.map +1 -1
- package/build/esm/debug-build.js +0 -5
- package/build/esm/debug-build.js.map +1 -1
- package/build/esm/defaultScopes.js +2 -5
- package/build/esm/defaultScopes.js.map +1 -1
- package/build/esm/envelope.js +32 -103
- package/build/esm/envelope.js.map +1 -1
- package/build/esm/eventProcessors.js +4 -23
- package/build/esm/eventProcessors.js.map +1 -1
- package/build/esm/exports.js +21 -197
- package/build/esm/exports.js.map +1 -1
- package/build/esm/feedback.js +7 -19
- package/build/esm/feedback.js.map +1 -1
- package/build/esm/fetch.js +66 -201
- package/build/esm/fetch.js.map +1 -1
- package/build/esm/index.js +7 -1
- package/build/esm/index.js.map +1 -1
- package/build/esm/instrument/console.js +9 -41
- package/build/esm/instrument/console.js.map +1 -1
- package/build/esm/instrument/fetch.js +47 -156
- package/build/esm/instrument/fetch.js.map +1 -1
- package/build/esm/instrument/globalError.js +4 -25
- package/build/esm/instrument/globalError.js.map +1 -1
- package/build/esm/instrument/globalUnhandledRejection.js +4 -21
- package/build/esm/instrument/globalUnhandledRejection.js.map +1 -1
- package/build/esm/instrument/handlers.js +9 -21
- package/build/esm/instrument/handlers.js.map +1 -1
- package/build/esm/integration.js +13 -77
- package/build/esm/integration.js.map +1 -1
- package/build/esm/integrations/captureconsole.js +16 -40
- package/build/esm/integrations/captureconsole.js.map +1 -1
- package/build/esm/integrations/consola.js +57 -163
- package/build/esm/integrations/consola.js.map +1 -1
- package/build/esm/integrations/console.js +11 -43
- package/build/esm/integrations/console.js.map +1 -1
- package/build/esm/integrations/conversationId.js +5 -22
- package/build/esm/integrations/conversationId.js.map +1 -1
- package/build/esm/integrations/dedupe.js +16 -74
- package/build/esm/integrations/dedupe.js.map +1 -1
- package/build/esm/integrations/eventFilters.js +63 -114
- package/build/esm/integrations/eventFilters.js.map +1 -1
- package/build/esm/integrations/express/index.js +30 -145
- package/build/esm/integrations/express/index.js.map +1 -1
- package/build/esm/integrations/express/patch-layer.js +20 -130
- package/build/esm/integrations/express/patch-layer.js.map +1 -1
- package/build/esm/integrations/express/request-layer-store.js +1 -3
- package/build/esm/integrations/express/request-layer-store.js.map +1 -1
- package/build/esm/integrations/express/set-sdk-processing-metadata.js +0 -2
- package/build/esm/integrations/express/set-sdk-processing-metadata.js.map +1 -1
- package/build/esm/integrations/express/types.js +6 -7
- package/build/esm/integrations/express/types.js.map +1 -1
- package/build/esm/integrations/express/utils.js +37 -145
- package/build/esm/integrations/express/utils.js.map +1 -1
- package/build/esm/integrations/extraerrordata.js +24 -69
- package/build/esm/integrations/extraerrordata.js.map +1 -1
- package/build/esm/integrations/featureFlags/featureFlagsIntegration.js +3 -29
- package/build/esm/integrations/featureFlags/featureFlagsIntegration.js.map +1 -1
- package/build/esm/integrations/featureFlags/growthbook.js +11 -40
- package/build/esm/integrations/featureFlags/growthbook.js.map +1 -1
- package/build/esm/integrations/functiontostring.js +6 -27
- package/build/esm/integrations/functiontostring.js.map +1 -1
- package/build/esm/integrations/http/add-outgoing-request-breadcrumb.js +10 -18
- package/build/esm/integrations/http/add-outgoing-request-breadcrumb.js.map +1 -1
- package/build/esm/integrations/http/client-patch.js +8 -70
- package/build/esm/integrations/http/client-patch.js.map +1 -1
- package/build/esm/integrations/http/client-subscriptions.js +22 -59
- package/build/esm/integrations/http/client-subscriptions.js.map +1 -1
- package/build/esm/integrations/http/constants.js +3 -3
- package/build/esm/integrations/http/double-wrap-warning.js +10 -18
- package/build/esm/integrations/http/double-wrap-warning.js.map +1 -1
- package/build/esm/integrations/http/get-outgoing-span-data.js +30 -47
- package/build/esm/integrations/http/get-outgoing-span-data.js.map +1 -1
- package/build/esm/integrations/http/get-request-url.js +7 -24
- package/build/esm/integrations/http/get-request-url.js.map +1 -1
- package/build/esm/integrations/http/inject-trace-propagation-headers.js +14 -38
- package/build/esm/integrations/http/inject-trace-propagation-headers.js.map +1 -1
- package/build/esm/integrations/http/patch-request-to-capture-body.js +78 -0
- package/build/esm/integrations/http/patch-request-to-capture-body.js.map +1 -0
- package/build/esm/integrations/http/record-request-session.js +59 -0
- package/build/esm/integrations/http/record-request-session.js.map +1 -0
- package/build/esm/integrations/http/server-subscription.js +285 -0
- package/build/esm/integrations/http/server-subscription.js.map +1 -0
- package/build/esm/integrations/linkederrors.js +6 -11
- package/build/esm/integrations/linkederrors.js.map +1 -1
- package/build/esm/integrations/mcp-server/attributeExtraction.js +26 -69
- package/build/esm/integrations/mcp-server/attributeExtraction.js.map +1 -1
- package/build/esm/integrations/mcp-server/attributes.js +30 -138
- package/build/esm/integrations/mcp-server/attributes.js.map +1 -1
- package/build/esm/integrations/mcp-server/correlation.js +20 -91
- package/build/esm/integrations/mcp-server/correlation.js.map +1 -1
- package/build/esm/integrations/mcp-server/errorCapture.js +6 -25
- package/build/esm/integrations/mcp-server/errorCapture.js.map +1 -1
- package/build/esm/integrations/mcp-server/handlers.js +55 -169
- package/build/esm/integrations/mcp-server/handlers.js.map +1 -1
- package/build/esm/integrations/mcp-server/index.js +7 -60
- package/build/esm/integrations/mcp-server/index.js.map +1 -1
- package/build/esm/integrations/mcp-server/methodConfig.js +21 -59
- package/build/esm/integrations/mcp-server/methodConfig.js.map +1 -1
- package/build/esm/integrations/mcp-server/piiFiltering.js +5 -33
- package/build/esm/integrations/mcp-server/piiFiltering.js.map +1 -1
- package/build/esm/integrations/mcp-server/resultExtraction.js +20 -76
- package/build/esm/integrations/mcp-server/resultExtraction.js.map +1 -1
- package/build/esm/integrations/mcp-server/sessionExtraction.js +30 -121
- package/build/esm/integrations/mcp-server/sessionExtraction.js.map +1 -1
- package/build/esm/integrations/mcp-server/sessionManagement.js +2 -60
- package/build/esm/integrations/mcp-server/sessionManagement.js.map +1 -1
- package/build/esm/integrations/mcp-server/spans.js +20 -107
- package/build/esm/integrations/mcp-server/spans.js.map +1 -1
- package/build/esm/integrations/mcp-server/transport.js +26 -94
- package/build/esm/integrations/mcp-server/transport.js.map +1 -1
- package/build/esm/integrations/mcp-server/validation.js +6 -72
- package/build/esm/integrations/mcp-server/validation.js.map +1 -1
- package/build/esm/integrations/moduleMetadata.js +6 -20
- package/build/esm/integrations/moduleMetadata.js.map +1 -1
- package/build/esm/integrations/postgresjs.js +78 -287
- package/build/esm/integrations/postgresjs.js.map +1 -1
- package/build/esm/integrations/requestdata.js +30 -93
- package/build/esm/integrations/requestdata.js.map +1 -1
- package/build/esm/integrations/rewriteframes.js +14 -45
- package/build/esm/integrations/rewriteframes.js.map +1 -1
- package/build/esm/integrations/spanStreaming.js +9 -15
- package/build/esm/integrations/spanStreaming.js.map +1 -1
- package/build/esm/integrations/supabase.js +224 -333
- package/build/esm/integrations/supabase.js.map +1 -1
- package/build/esm/integrations/third-party-errors-filter.js +60 -85
- package/build/esm/integrations/third-party-errors-filter.js.map +1 -1
- package/build/esm/integrations/zoderrors.js +35 -111
- package/build/esm/integrations/zoderrors.js.map +1 -1
- package/build/esm/logs/console-integration.js +15 -50
- package/build/esm/logs/console-integration.js.map +1 -1
- package/build/esm/logs/constants.js +1 -6
- package/build/esm/logs/constants.js.map +1 -1
- package/build/esm/logs/envelope.js +10 -40
- package/build/esm/logs/envelope.js.map +1 -1
- package/build/esm/logs/internal.js +53 -126
- package/build/esm/logs/internal.js.map +1 -1
- package/build/esm/logs/public-api.js +13 -228
- package/build/esm/logs/public-api.js.map +1 -1
- package/build/esm/logs/utils.js +6 -47
- package/build/esm/logs/utils.js.map +1 -1
- package/build/esm/metadata.js +6 -51
- package/build/esm/metadata.js.map +1 -1
- package/build/esm/metrics/envelope.js +12 -45
- package/build/esm/metrics/envelope.js.map +1 -1
- package/build/esm/metrics/internal.js +31 -144
- package/build/esm/metrics/internal.js.map +1 -1
- package/build/esm/metrics/public-api.js +4 -109
- package/build/esm/metrics/public-api.js.map +1 -1
- package/build/esm/package.json +1 -1
- package/build/esm/profiling.js +11 -41
- package/build/esm/profiling.js.map +1 -1
- package/build/esm/scope.js +73 -224
- package/build/esm/scope.js.map +1 -1
- package/build/esm/sdk.js +2 -21
- package/build/esm/sdk.js.map +1 -1
- package/build/esm/semanticAttributes.js +31 -118
- package/build/esm/semanticAttributes.js.map +1 -1
- package/build/esm/server-runtime-client.js +32 -87
- package/build/esm/server-runtime-client.js.map +1 -1
- package/build/esm/server.js +7 -1
- package/build/esm/server.js.map +1 -1
- package/build/esm/session.js +14 -67
- package/build/esm/session.js.map +1 -1
- package/build/esm/tracing/ai/gen-ai-attributes.js +45 -249
- package/build/esm/tracing/ai/gen-ai-attributes.js.map +1 -1
- package/build/esm/tracing/ai/mediaStripping.js +21 -116
- package/build/esm/tracing/ai/mediaStripping.js.map +1 -1
- package/build/esm/tracing/ai/messageTruncation.js +26 -212
- package/build/esm/tracing/ai/messageTruncation.js.map +1 -1
- package/build/esm/tracing/ai/utils.js +40 -180
- package/build/esm/tracing/ai/utils.js.map +1 -1
- package/build/esm/tracing/anthropic-ai/constants.js +9 -12
- package/build/esm/tracing/anthropic-ai/constants.js.map +1 -1
- package/build/esm/tracing/anthropic-ai/index.js +67 -172
- package/build/esm/tracing/anthropic-ai/index.js.map +1 -1
- package/build/esm/tracing/anthropic-ai/streaming.js +45 -149
- package/build/esm/tracing/anthropic-ai/streaming.js.map +1 -1
- package/build/esm/tracing/anthropic-ai/utils.js +17 -47
- package/build/esm/tracing/anthropic-ai/utils.js.map +1 -1
- package/build/esm/tracing/dynamicSamplingContext.js +18 -85
- package/build/esm/tracing/dynamicSamplingContext.js.map +1 -1
- package/build/esm/tracing/errors.js +2 -14
- package/build/esm/tracing/errors.js.map +1 -1
- package/build/esm/tracing/google-genai/constants.js +9 -16
- package/build/esm/tracing/google-genai/constants.js.map +1 -1
- package/build/esm/tracing/google-genai/index.js +79 -223
- package/build/esm/tracing/google-genai/index.js.map +1 -1
- package/build/esm/tracing/google-genai/streaming.js +11 -56
- package/build/esm/tracing/google-genai/streaming.js.map +1 -1
- package/build/esm/tracing/google-genai/utils.js +8 -13
- package/build/esm/tracing/google-genai/utils.js.map +1 -1
- package/build/esm/tracing/idleSpan.js +48 -174
- package/build/esm/tracing/idleSpan.js.map +1 -1
- package/build/esm/tracing/langchain/constants.js +8 -9
- package/build/esm/tracing/langchain/constants.js.map +1 -1
- package/build/esm/tracing/langchain/embeddings.js +31 -75
- package/build/esm/tracing/langchain/embeddings.js.map +1 -1
- package/build/esm/tracing/langchain/index.js +64 -161
- package/build/esm/tracing/langchain/index.js.map +1 -1
- package/build/esm/tracing/langchain/utils.js +101 -312
- package/build/esm/tracing/langchain/utils.js.map +1 -1
- package/build/esm/tracing/langgraph/constants.js +2 -2
- package/build/esm/tracing/langgraph/index.js +59 -162
- package/build/esm/tracing/langgraph/index.js.map +1 -1
- package/build/esm/tracing/langgraph/utils.js +54 -170
- package/build/esm/tracing/langgraph/utils.js.map +1 -1
- package/build/esm/tracing/logSpans.js +10 -26
- package/build/esm/tracing/logSpans.js.map +1 -1
- package/build/esm/tracing/measurement.js +6 -18
- package/build/esm/tracing/measurement.js.map +1 -1
- package/build/esm/tracing/openai/constants.js +20 -24
- package/build/esm/tracing/openai/constants.js.map +1 -1
- package/build/esm/tracing/openai/index.js +52 -132
- package/build/esm/tracing/openai/index.js.map +1 -1
- package/build/esm/tracing/openai/streaming.js +24 -102
- package/build/esm/tracing/openai/streaming.js.map +1 -1
- package/build/esm/tracing/openai/utils.js +36 -107
- package/build/esm/tracing/openai/utils.js.map +1 -1
- package/build/esm/tracing/sampling.js +23 -63
- package/build/esm/tracing/sampling.js.map +1 -1
- package/build/esm/tracing/sentryNonRecordingSpan.js +15 -40
- package/build/esm/tracing/sentryNonRecordingSpan.js.map +1 -1
- package/build/esm/tracing/sentrySpan.js +66 -172
- package/build/esm/tracing/sentrySpan.js.map +1 -1
- package/build/esm/tracing/spans/beforeSendSpan.js +4 -32
- package/build/esm/tracing/spans/beforeSendSpan.js.map +1 -1
- package/build/esm/tracing/spans/captureSpan.js +59 -157
- package/build/esm/tracing/spans/captureSpan.js.map +1 -1
- package/build/esm/tracing/spans/envelope.js +12 -24
- package/build/esm/tracing/spans/envelope.js.map +1 -1
- package/build/esm/tracing/spans/estimateSize.js +0 -22
- package/build/esm/tracing/spans/estimateSize.js.map +1 -1
- package/build/esm/tracing/spans/extractGenAiSpans.js +11 -33
- package/build/esm/tracing/spans/extractGenAiSpans.js.map +1 -1
- package/build/esm/tracing/spans/hasSpanStreamingEnabled.js +1 -4
- package/build/esm/tracing/spans/hasSpanStreamingEnabled.js.map +1 -1
- package/build/esm/tracing/spans/scopeContextAttributes.js +56 -0
- package/build/esm/tracing/spans/scopeContextAttributes.js.map +1 -0
- package/build/esm/tracing/spans/spanBuffer.js +21 -71
- package/build/esm/tracing/spans/spanBuffer.js.map +1 -1
- package/build/esm/tracing/spans/spanJsonToStreamedSpan.js +4 -8
- package/build/esm/tracing/spans/spanJsonToStreamedSpan.js.map +1 -1
- package/build/esm/tracing/spanstatus.js +15 -32
- package/build/esm/tracing/spanstatus.js.map +1 -1
- package/build/esm/tracing/trace.js +95 -311
- package/build/esm/tracing/trace.js.map +1 -1
- package/build/esm/tracing/utils.js +4 -14
- package/build/esm/tracing/utils.js.map +1 -1
- package/build/esm/tracing/vercel-ai/constants.js +15 -26
- package/build/esm/tracing/vercel-ai/constants.js.map +1 -1
- package/build/esm/tracing/vercel-ai/index.js +84 -288
- package/build/esm/tracing/vercel-ai/index.js.map +1 -1
- package/build/esm/tracing/vercel-ai/utils.js +30 -128
- package/build/esm/tracing/vercel-ai/utils.js.map +1 -1
- package/build/esm/tracing/vercel-ai/vercel-ai-attributes.js +22 -229
- package/build/esm/tracing/vercel-ai/vercel-ai-attributes.js.map +1 -1
- package/build/esm/transports/base.js +32 -67
- package/build/esm/transports/base.js.map +1 -1
- package/build/esm/transports/multiplexed.js +38 -103
- package/build/esm/transports/multiplexed.js.map +1 -1
- package/build/esm/transports/offline.js +31 -72
- package/build/esm/transports/offline.js.map +1 -1
- package/build/esm/transports/userAgent.js +4 -13
- package/build/esm/transports/userAgent.js.map +1 -1
- package/build/esm/trpc.js +19 -39
- package/build/esm/trpc.js.map +1 -1
- package/build/esm/utils/aggregate-errors.js +18 -62
- package/build/esm/utils/aggregate-errors.js.map +1 -1
- package/build/esm/utils/ai/providerSkip.js +3 -50
- package/build/esm/utils/ai/providerSkip.js.map +1 -1
- package/build/esm/utils/anr.js +7 -36
- package/build/esm/utils/anr.js.map +1 -1
- package/build/esm/utils/baggage.js +37 -146
- package/build/esm/utils/baggage.js.map +1 -1
- package/build/esm/utils/breadcrumb-log-level.js +5 -9
- package/build/esm/utils/breadcrumb-log-level.js.map +1 -1
- package/build/esm/utils/browser.js +24 -86
- package/build/esm/utils/browser.js.map +1 -1
- package/build/esm/utils/chain-and-copy-promiselike.js +10 -27
- package/build/esm/utils/chain-and-copy-promiselike.js.map +1 -1
- package/build/esm/utils/clientreport.js +4 -13
- package/build/esm/utils/clientreport.js.map +1 -1
- package/build/esm/utils/cookie.js +6 -53
- package/build/esm/utils/cookie.js.map +1 -1
- package/build/esm/utils/data-collection/defaultPiiToCollectionOptions.js +26 -0
- package/build/esm/utils/data-collection/defaultPiiToCollectionOptions.js.map +1 -0
- package/build/esm/utils/data-collection/filterCookies.js +21 -0
- package/build/esm/utils/data-collection/filterCookies.js.map +1 -0
- package/build/esm/utils/data-collection/filterKeyValueData.js +41 -0
- package/build/esm/utils/data-collection/filterKeyValueData.js.map +1 -0
- package/build/esm/utils/data-collection/filterQueryParams.js +24 -0
- package/build/esm/utils/data-collection/filterQueryParams.js.map +1 -0
- package/build/esm/utils/data-collection/filtering-snippets.js +56 -0
- package/build/esm/utils/data-collection/filtering-snippets.js.map +1 -0
- package/build/esm/utils/data-collection/resolveDataCollectionOptions.js +35 -0
- package/build/esm/utils/data-collection/resolveDataCollectionOptions.js.map +1 -0
- package/build/esm/utils/debounce.js +5 -32
- package/build/esm/utils/debounce.js.map +1 -1
- package/build/esm/utils/debug-ids.js +4 -42
- package/build/esm/utils/debug-ids.js.map +1 -1
- package/build/esm/utils/debug-logger.js +23 -56
- package/build/esm/utils/debug-logger.js.map +1 -1
- package/build/esm/utils/dsn.js +18 -81
- package/build/esm/utils/dsn.js.map +1 -1
- package/build/esm/utils/env.js +3 -27
- package/build/esm/utils/env.js.map +1 -1
- package/build/esm/utils/envToBool.js +2 -15
- package/build/esm/utils/envToBool.js.map +1 -1
- package/build/esm/utils/envelope.js +39 -133
- package/build/esm/utils/envelope.js.map +1 -1
- package/build/esm/utils/error.js +3 -10
- package/build/esm/utils/error.js.map +1 -1
- package/build/esm/utils/eventUtils.js +0 -8
- package/build/esm/utils/eventUtils.js.map +1 -1
- package/build/esm/utils/eventbuilder.js +30 -114
- package/build/esm/utils/eventbuilder.js.map +1 -1
- package/build/esm/utils/exports.js +5 -24
- package/build/esm/utils/exports.js.map +1 -1
- package/build/esm/utils/featureFlags.js +10 -96
- package/build/esm/utils/featureFlags.js.map +1 -1
- package/build/esm/utils/flushIfServerless.js +14 -48
- package/build/esm/utils/flushIfServerless.js.map +1 -1
- package/build/esm/utils/get-default-export.js +1 -25
- package/build/esm/utils/get-default-export.js.map +1 -1
- package/build/esm/utils/handleCallbackErrors.js +10 -48
- package/build/esm/utils/handleCallbackErrors.js.map +1 -1
- package/build/esm/utils/hasSpansEnabled.js +4 -28
- package/build/esm/utils/hasSpansEnabled.js.map +1 -1
- package/build/esm/utils/ipAddress.js +7 -19
- package/build/esm/utils/ipAddress.js.map +1 -1
- package/build/esm/utils/is.js +18 -163
- package/build/esm/utils/is.js.map +1 -1
- package/build/esm/utils/isBrowser.js +3 -9
- package/build/esm/utils/isBrowser.js.map +1 -1
- package/build/esm/utils/isSentryRequestUrl.js +2 -19
- package/build/esm/utils/isSentryRequestUrl.js.map +1 -1
- package/build/esm/utils/lru.js +13 -24
- package/build/esm/utils/lru.js.map +1 -1
- package/build/esm/utils/merge.js +1 -17
- package/build/esm/utils/merge.js.map +1 -1
- package/build/esm/utils/meta.js +1 -24
- package/build/esm/utils/meta.js.map +1 -1
- package/build/esm/utils/misc.js +31 -134
- package/build/esm/utils/misc.js.map +1 -1
- package/build/esm/utils/node-stack-trace.js +22 -61
- package/build/esm/utils/node-stack-trace.js.map +1 -1
- package/build/esm/utils/node.js +3 -48
- package/build/esm/utils/node.js.map +1 -1
- package/build/esm/utils/normalizationHints.js +5 -18
- package/build/esm/utils/normalizationHints.js.map +1 -1
- package/build/esm/utils/normalize.js +39 -205
- package/build/esm/utils/normalize.js.map +1 -1
- package/build/esm/utils/object.js +33 -168
- package/build/esm/utils/object.js.map +1 -1
- package/build/esm/utils/parameterize.js +2 -21
- package/build/esm/utils/parameterize.js.map +1 -1
- package/build/esm/utils/parseSampleRate.js +4 -13
- package/build/esm/utils/parseSampleRate.js.map +1 -1
- package/build/esm/utils/path.js +28 -115
- package/build/esm/utils/path.js.map +1 -1
- package/build/esm/utils/prepareEvent.js +53 -191
- package/build/esm/utils/prepareEvent.js.map +1 -1
- package/build/esm/utils/promisebuffer.js +5 -47
- package/build/esm/utils/promisebuffer.js.map +1 -1
- package/build/esm/utils/propagationContext.js +0 -7
- package/build/esm/utils/propagationContext.js.map +1 -1
- package/build/esm/utils/randomSafeContext.js +3 -22
- package/build/esm/utils/randomSafeContext.js.map +1 -1
- package/build/esm/utils/ratelimit.js +13 -66
- package/build/esm/utils/ratelimit.js.map +1 -1
- package/build/esm/utils/request.js +62 -269
- package/build/esm/utils/request.js.map +1 -1
- package/build/esm/utils/scopeData.js +15 -79
- package/build/esm/utils/scopeData.js.map +1 -1
- package/build/esm/utils/sdkMetadata.js +5 -19
- package/build/esm/utils/sdkMetadata.js.map +1 -1
- package/build/esm/utils/severity.js +1 -9
- package/build/esm/utils/severity.js.map +1 -1
- package/build/esm/utils/should-ignore-span.js +6 -38
- package/build/esm/utils/should-ignore-span.js.map +1 -1
- package/build/esm/utils/spanOnScope.js +3 -14
- package/build/esm/utils/spanOnScope.js.map +1 -1
- package/build/esm/utils/spanUtils.js +42 -222
- package/build/esm/utils/spanUtils.js.map +1 -1
- package/build/esm/utils/stacktrace.js +19 -106
- package/build/esm/utils/stacktrace.js.map +1 -1
- package/build/esm/utils/string.js +7 -75
- package/build/esm/utils/string.js.map +1 -1
- package/build/esm/utils/supports.js +14 -99
- package/build/esm/utils/supports.js.map +1 -1
- package/build/esm/utils/syncpromise.js +19 -68
- package/build/esm/utils/syncpromise.js.map +1 -1
- package/build/esm/utils/time.js +7 -84
- package/build/esm/utils/time.js.map +1 -1
- package/build/esm/utils/timer.js +1 -10
- package/build/esm/utils/timer.js.map +1 -1
- package/build/esm/utils/timestampSequence.js +5 -21
- package/build/esm/utils/timestampSequence.js.map +1 -1
- package/build/esm/utils/trace-info.js +3 -10
- package/build/esm/utils/trace-info.js.map +1 -1
- package/build/esm/utils/traceData.js +4 -39
- package/build/esm/utils/traceData.js.map +1 -1
- package/build/esm/utils/tracePropagationTargets.js +4 -18
- package/build/esm/utils/tracePropagationTargets.js.map +1 -1
- package/build/esm/utils/tracing.js +32 -106
- package/build/esm/utils/tracing.js.map +1 -1
- package/build/esm/utils/transactionEvent.js +11 -19
- package/build/esm/utils/transactionEvent.js.map +1 -1
- package/build/esm/utils/tunnel.js +12 -33
- package/build/esm/utils/tunnel.js.map +1 -1
- package/build/esm/utils/url.js +42 -176
- package/build/esm/utils/url.js.map +1 -1
- package/build/esm/utils/vercelWaitUntil.js +4 -12
- package/build/esm/utils/vercelWaitUntil.js.map +1 -1
- package/build/esm/utils/version.js +1 -3
- package/build/esm/utils/version.js.map +1 -1
- package/build/esm/utils/weakRef.js +5 -36
- package/build/esm/utils/weakRef.js.map +1 -1
- package/build/esm/utils/worldwide.js +1 -4
- package/build/esm/utils/worldwide.js.map +1 -1
- package/build/esm/vendor/escapeStringForRegex.js +1 -32
- package/build/esm/vendor/escapeStringForRegex.js.map +1 -1
- package/build/esm/vendor/getIpAddress.js +19 -99
- package/build/esm/vendor/getIpAddress.js.map +1 -1
- package/build/types/api.d.ts +2 -2
- package/build/types/api.d.ts.map +1 -1
- package/build/types/attributes.d.ts +5 -8
- package/build/types/attributes.d.ts.map +1 -1
- package/build/types/breadcrumbs.d.ts +1 -1
- package/build/types/breadcrumbs.d.ts.map +1 -1
- package/build/types/browser-exports.d.ts +3 -3
- package/build/types/browser-exports.d.ts.map +1 -1
- package/build/types/carrier.d.ts +2 -2
- package/build/types/carrier.d.ts.map +1 -1
- package/build/types/checkin.d.ts +4 -4
- package/build/types/checkin.d.ts.map +1 -1
- package/build/types/client.d.ts +32 -22
- package/build/types/client.d.ts.map +1 -1
- package/build/types/currentScopes.d.ts +1 -1
- package/build/types/currentScopes.d.ts.map +1 -1
- package/build/types/envelope.d.ts +7 -7
- package/build/types/envelope.d.ts.map +1 -1
- package/build/types/eventProcessors.d.ts +2 -2
- package/build/types/eventProcessors.d.ts.map +1 -1
- package/build/types/exports.d.ts +8 -8
- package/build/types/exports.d.ts.map +1 -1
- package/build/types/feedback.d.ts +2 -2
- package/build/types/feedback.d.ts.map +1 -1
- package/build/types/fetch.d.ts +3 -3
- package/build/types/fetch.d.ts.map +1 -1
- package/build/types/instrument/console.d.ts +1 -1
- package/build/types/instrument/console.d.ts.map +1 -1
- package/build/types/instrument/fetch.d.ts +1 -1
- package/build/types/instrument/fetch.d.ts.map +1 -1
- package/build/types/instrument/globalError.d.ts +1 -1
- package/build/types/instrument/globalError.d.ts.map +1 -1
- package/build/types/instrument/globalUnhandledRejection.d.ts +1 -1
- package/build/types/instrument/globalUnhandledRejection.d.ts.map +1 -1
- package/build/types/integration.d.ts +2 -2
- package/build/types/integration.d.ts.map +1 -1
- package/build/types/integrations/consola.d.ts +1 -1
- package/build/types/integrations/consola.d.ts.map +1 -1
- package/build/types/integrations/console.d.ts +1 -1
- package/build/types/integrations/console.d.ts.map +1 -1
- package/build/types/integrations/dedupe.d.ts +1 -1
- package/build/types/integrations/dedupe.d.ts.map +1 -1
- package/build/types/integrations/express/types.d.ts +2 -2
- package/build/types/integrations/express/types.d.ts.map +1 -1
- package/build/types/integrations/express/utils.d.ts +1 -1
- package/build/types/integrations/express/utils.d.ts.map +1 -1
- package/build/types/integrations/featureFlags/featureFlagsIntegration.d.ts +1 -1
- package/build/types/integrations/featureFlags/featureFlagsIntegration.d.ts.map +1 -1
- package/build/types/integrations/featureFlags/growthbook.d.ts +1 -1
- package/build/types/integrations/featureFlags/growthbook.d.ts.map +1 -1
- package/build/types/integrations/http/double-wrap-warning.d.ts +1 -1
- package/build/types/integrations/http/double-wrap-warning.d.ts.map +1 -1
- package/build/types/integrations/http/get-outgoing-span-data.d.ts +2 -2
- package/build/types/integrations/http/get-outgoing-span-data.d.ts.map +1 -1
- package/build/types/integrations/http/patch-request-to-capture-body.d.ts +12 -0
- package/build/types/integrations/http/patch-request-to-capture-body.d.ts.map +1 -0
- package/build/types/integrations/http/record-request-session.d.ts +18 -0
- package/build/types/integrations/http/record-request-session.d.ts.map +1 -0
- package/build/types/integrations/http/server-subscription.d.ts +26 -0
- package/build/types/integrations/http/server-subscription.d.ts.map +1 -0
- package/build/types/integrations/http/types.d.ts +12 -6
- package/build/types/integrations/http/types.d.ts.map +1 -1
- package/build/types/integrations/mcp-server/correlation.d.ts +1 -1
- package/build/types/integrations/mcp-server/correlation.d.ts.map +1 -1
- package/build/types/integrations/mcp-server/piiFiltering.d.ts +1 -1
- package/build/types/integrations/mcp-server/piiFiltering.d.ts.map +1 -1
- package/build/types/integrations/mcp-server/types.d.ts +1 -1
- package/build/types/integrations/mcp-server/types.d.ts.map +1 -1
- package/build/types/integrations/postgresjs.d.ts +1 -1
- package/build/types/integrations/postgresjs.d.ts.map +1 -1
- package/build/types/integrations/rewriteframes.d.ts +1 -1
- package/build/types/integrations/rewriteframes.d.ts.map +1 -1
- package/build/types/integrations/supabase.d.ts +14 -3
- package/build/types/integrations/supabase.d.ts.map +1 -1
- package/build/types/integrations/third-party-errors-filter.d.ts.map +1 -1
- package/build/types/integrations/zoderrors.d.ts +1 -1
- package/build/types/integrations/zoderrors.d.ts.map +1 -1
- package/build/types/logs/console-integration.d.ts +1 -1
- package/build/types/logs/console-integration.d.ts.map +1 -1
- package/build/types/logs/constants.d.ts +1 -1
- package/build/types/logs/constants.d.ts.map +1 -1
- package/build/types/logs/envelope.d.ts +4 -4
- package/build/types/logs/envelope.d.ts.map +1 -1
- package/build/types/logs/internal.d.ts +16 -1
- package/build/types/logs/internal.d.ts.map +1 -1
- package/build/types/logs/public-api.d.ts +2 -2
- package/build/types/logs/public-api.d.ts.map +1 -1
- package/build/types/metadata.d.ts +2 -2
- package/build/types/metadata.d.ts.map +1 -1
- package/build/types/metrics/envelope.d.ts +4 -4
- package/build/types/metrics/envelope.d.ts.map +1 -1
- package/build/types/metrics/internal.d.ts +1 -1
- package/build/types/metrics/internal.d.ts.map +1 -1
- package/build/types/metrics/public-api.d.ts +1 -1
- package/build/types/metrics/public-api.d.ts.map +1 -1
- package/build/types/profiling.d.ts +1 -1
- package/build/types/profiling.d.ts.map +1 -1
- package/build/types/report-dialog.d.ts +1 -1
- package/build/types/report-dialog.d.ts.map +1 -1
- package/build/types/scope.d.ts +14 -14
- package/build/types/scope.d.ts.map +1 -1
- package/build/types/sdk.d.ts +1 -1
- package/build/types/sdk.d.ts.map +1 -1
- package/build/types/semanticAttributes.d.ts +2 -0
- package/build/types/semanticAttributes.d.ts.map +1 -1
- package/build/types/server-exports.d.ts +3 -1
- package/build/types/server-exports.d.ts.map +1 -1
- package/build/types/server-runtime-client.d.ts +6 -6
- package/build/types/server-runtime-client.d.ts.map +1 -1
- package/build/types/session.d.ts +1 -1
- package/build/types/session.d.ts.map +1 -1
- package/build/types/shared-exports.d.ts +58 -53
- package/build/types/shared-exports.d.ts.map +1 -1
- package/build/types/tracing/ai/utils.d.ts +1 -1
- package/build/types/tracing/ai/utils.d.ts.map +1 -1
- package/build/types/tracing/anthropic-ai/streaming.d.ts +1 -1
- package/build/types/tracing/anthropic-ai/streaming.d.ts.map +1 -1
- package/build/types/tracing/anthropic-ai/utils.d.ts +2 -2
- package/build/types/tracing/anthropic-ai/utils.d.ts.map +1 -1
- package/build/types/tracing/dynamicSamplingContext.d.ts +2 -2
- package/build/types/tracing/dynamicSamplingContext.d.ts.map +1 -1
- package/build/types/tracing/google-genai/streaming.d.ts +1 -1
- package/build/types/tracing/google-genai/streaming.d.ts.map +1 -1
- package/build/types/tracing/idleSpan.d.ts +2 -2
- package/build/types/tracing/idleSpan.d.ts.map +1 -1
- package/build/types/tracing/langchain/utils.d.ts +6 -1
- package/build/types/tracing/langchain/utils.d.ts.map +1 -1
- package/build/types/tracing/langgraph/index.d.ts.map +1 -1
- package/build/types/tracing/langgraph/utils.d.ts +1 -3
- package/build/types/tracing/langgraph/utils.d.ts.map +1 -1
- package/build/types/tracing/logSpans.d.ts +1 -1
- package/build/types/tracing/logSpans.d.ts.map +1 -1
- package/build/types/tracing/measurement.d.ts +2 -2
- package/build/types/tracing/measurement.d.ts.map +1 -1
- package/build/types/tracing/openai/streaming.d.ts +1 -1
- package/build/types/tracing/openai/streaming.d.ts.map +1 -1
- package/build/types/tracing/openai/utils.d.ts +1 -1
- package/build/types/tracing/openai/utils.d.ts.map +1 -1
- package/build/types/tracing/sampling.d.ts +2 -2
- package/build/types/tracing/sampling.d.ts.map +1 -1
- package/build/types/tracing/sentryNonRecordingSpan.d.ts +3 -3
- package/build/types/tracing/sentryNonRecordingSpan.d.ts.map +1 -1
- package/build/types/tracing/sentrySpan.d.ts +4 -4
- package/build/types/tracing/sentrySpan.d.ts.map +1 -1
- package/build/types/tracing/spans/beforeSendSpan.d.ts +3 -3
- package/build/types/tracing/spans/beforeSendSpan.d.ts.map +1 -1
- package/build/types/tracing/spans/captureSpan.d.ts +1 -1
- package/build/types/tracing/spans/captureSpan.d.ts.map +1 -1
- package/build/types/tracing/spans/envelope.d.ts +2 -2
- package/build/types/tracing/spans/envelope.d.ts.map +1 -1
- package/build/types/tracing/spans/estimateSize.d.ts +1 -1
- package/build/types/tracing/spans/estimateSize.d.ts.map +1 -1
- package/build/types/tracing/spans/extractGenAiSpans.d.ts +2 -2
- package/build/types/tracing/spans/extractGenAiSpans.d.ts.map +1 -1
- package/build/types/tracing/spans/scopeContextAttributes.d.ts +9 -0
- package/build/types/tracing/spans/scopeContextAttributes.d.ts.map +1 -0
- package/build/types/tracing/spans/spanJsonToStreamedSpan.d.ts +1 -1
- package/build/types/tracing/spans/spanJsonToStreamedSpan.d.ts.map +1 -1
- package/build/types/tracing/spanstatus.d.ts +2 -2
- package/build/types/tracing/spanstatus.d.ts.map +1 -1
- package/build/types/tracing/trace.d.ts +2 -2
- package/build/types/tracing/trace.d.ts.map +1 -1
- package/build/types/tracing/utils.d.ts +1 -1
- package/build/types/tracing/utils.d.ts.map +1 -1
- package/build/types/tracing/vercel-ai/utils.d.ts +2 -2
- package/build/types/tracing/vercel-ai/utils.d.ts.map +1 -1
- package/build/types/transports/base.d.ts +1 -1
- package/build/types/transports/base.d.ts.map +1 -1
- package/build/types/transports/multiplexed.d.ts +3 -3
- package/build/types/transports/multiplexed.d.ts.map +1 -1
- package/build/types/transports/offline.d.ts +2 -2
- package/build/types/transports/offline.d.ts.map +1 -1
- package/build/types/transports/userAgent.d.ts +1 -1
- package/build/types/transports/userAgent.d.ts.map +1 -1
- package/build/types/trpc.d.ts.map +1 -1
- package/build/types/types/attachment.d.ts.map +1 -0
- package/build/types/types/breadcrumb.d.ts.map +1 -0
- package/build/types/types/browseroptions.d.ts.map +1 -0
- package/build/types/types/checkin.d.ts.map +1 -0
- package/build/types/types/clientreport.d.ts.map +1 -0
- package/build/types/types/context.d.ts.map +1 -0
- package/build/types/types/csp.d.ts.map +1 -0
- package/build/types/types/datacategory.d.ts.map +1 -0
- package/build/types/types/datacollection.d.ts +75 -0
- package/build/types/types/datacollection.d.ts.map +1 -0
- package/build/types/types/debugMeta.d.ts.map +1 -0
- package/build/types/types/dsn.d.ts.map +1 -0
- package/build/types/types/envelope.d.ts.map +1 -0
- package/build/types/types/error.d.ts.map +1 -0
- package/build/types/types/event.d.ts.map +1 -0
- package/build/types/types/eventprocessor.d.ts.map +1 -0
- package/build/types/types/exception.d.ts.map +1 -0
- package/build/types/types/extra.d.ts.map +1 -0
- package/build/types/types/feedback/config.d.ts.map +1 -0
- package/build/types/types/feedback/form.d.ts.map +1 -0
- package/build/types/types/feedback/index.d.ts.map +1 -0
- package/build/types/types/feedback/sendFeedback.d.ts.map +1 -0
- package/build/types/types/feedback/theme.d.ts.map +1 -0
- package/build/types/types/instrument.d.ts.map +1 -0
- package/build/types/types/integration.d.ts.map +1 -0
- package/build/types/types/link.d.ts.map +1 -0
- package/build/types/types/log.d.ts.map +1 -0
- package/build/types/types/measurement.d.ts.map +1 -0
- package/build/types/types/mechanism.d.ts.map +1 -0
- package/build/types/types/metric.d.ts.map +1 -0
- package/build/types/types/misc.d.ts.map +1 -0
- package/build/types/types/opentelemetry.d.ts.map +1 -0
- package/build/types/{types-hoist → types}/options.d.ts +17 -0
- package/build/types/types/options.d.ts.map +1 -0
- package/build/types/types/package.d.ts.map +1 -0
- package/build/types/types/parameterize.d.ts.map +1 -0
- package/build/types/types/polymorphics.d.ts.map +1 -0
- package/build/types/types/profiling.d.ts.map +1 -0
- package/build/types/types/replay.d.ts.map +1 -0
- package/build/types/types/request.d.ts.map +1 -0
- package/build/types/types/runtime.d.ts.map +1 -0
- package/build/types/{types-hoist → types}/samplingcontext.d.ts +1 -1
- package/build/types/types/samplingcontext.d.ts.map +1 -0
- package/build/types/types/sdkinfo.d.ts.map +1 -0
- package/build/types/types/sdkmetadata.d.ts.map +1 -0
- package/build/types/types/session.d.ts.map +1 -0
- package/build/types/types/severity.d.ts.map +1 -0
- package/build/types/types/span.d.ts.map +1 -0
- package/build/types/types/spanStatus.d.ts.map +1 -0
- package/build/types/types/stackframe.d.ts.map +1 -0
- package/build/types/types/stacktrace.d.ts.map +1 -0
- package/build/types/{types-hoist → types}/startSpanOptions.d.ts +13 -0
- package/build/types/types/startSpanOptions.d.ts.map +1 -0
- package/build/types/types/thread.d.ts.map +1 -0
- package/build/types/types/timedEvent.d.ts.map +1 -0
- package/build/types/types/tracing.d.ts.map +1 -0
- package/build/types/types/transaction.d.ts.map +1 -0
- package/build/types/types/transport.d.ts.map +1 -0
- package/build/types/types/user.d.ts.map +1 -0
- package/build/types/types/view-hierarchy.d.ts.map +1 -0
- package/build/types/types/vue.d.ts.map +1 -0
- package/build/types/types/webfetchapi.d.ts.map +1 -0
- package/build/types/types/wrappedfunction.d.ts.map +1 -0
- package/build/types/utils/aggregate-errors.d.ts +3 -3
- package/build/types/utils/aggregate-errors.d.ts.map +1 -1
- package/build/types/utils/anr.d.ts +1 -1
- package/build/types/utils/anr.d.ts.map +1 -1
- package/build/types/utils/baggage.d.ts +1 -1
- package/build/types/utils/baggage.d.ts.map +1 -1
- package/build/types/utils/breadcrumb-log-level.d.ts +1 -1
- package/build/types/utils/breadcrumb-log-level.d.ts.map +1 -1
- package/build/types/utils/clientreport.d.ts +2 -2
- package/build/types/utils/clientreport.d.ts.map +1 -1
- package/build/types/utils/data-collection/defaultPiiToCollectionOptions.d.ts +6 -0
- package/build/types/utils/data-collection/defaultPiiToCollectionOptions.d.ts.map +1 -0
- package/build/types/utils/data-collection/filterCookies.d.ts +9 -0
- package/build/types/utils/data-collection/filterCookies.d.ts.map +1 -0
- package/build/types/utils/data-collection/filterKeyValueData.d.ts +11 -0
- package/build/types/utils/data-collection/filterKeyValueData.d.ts.map +1 -0
- package/build/types/utils/data-collection/filterQueryParams.d.ts +9 -0
- package/build/types/utils/data-collection/filterQueryParams.d.ts.map +1 -0
- package/build/types/utils/data-collection/filtering-snippets.d.ts +14 -0
- package/build/types/utils/data-collection/filtering-snippets.d.ts.map +1 -0
- package/build/types/utils/data-collection/resolveDataCollectionOptions.d.ts +14 -0
- package/build/types/utils/data-collection/resolveDataCollectionOptions.d.ts.map +1 -0
- package/build/types/utils/debug-ids.d.ts +2 -2
- package/build/types/utils/debug-ids.d.ts.map +1 -1
- package/build/types/utils/debug-logger.d.ts +1 -1
- package/build/types/utils/debug-logger.d.ts.map +1 -1
- package/build/types/utils/dsn.d.ts +1 -1
- package/build/types/utils/dsn.d.ts.map +1 -1
- package/build/types/utils/env.d.ts.map +1 -1
- package/build/types/utils/envelope.d.ts +8 -8
- package/build/types/utils/envelope.d.ts.map +1 -1
- package/build/types/utils/error.d.ts +1 -1
- package/build/types/utils/error.d.ts.map +1 -1
- package/build/types/utils/eventUtils.d.ts +1 -1
- package/build/types/utils/eventUtils.d.ts.map +1 -1
- package/build/types/utils/eventbuilder.d.ts +6 -6
- package/build/types/utils/eventbuilder.d.ts.map +1 -1
- package/build/types/utils/featureFlags.d.ts +1 -1
- package/build/types/utils/featureFlags.d.ts.map +1 -1
- package/build/types/utils/hasSpansEnabled.d.ts +1 -1
- package/build/types/utils/hasSpansEnabled.d.ts.map +1 -1
- package/build/types/utils/ipAddress.d.ts +2 -2
- package/build/types/utils/ipAddress.d.ts.map +1 -1
- package/build/types/utils/is.d.ts +4 -4
- package/build/types/utils/is.d.ts.map +1 -1
- package/build/types/utils/meta.d.ts +1 -1
- package/build/types/utils/meta.d.ts.map +1 -1
- package/build/types/utils/misc.d.ts +3 -3
- package/build/types/utils/misc.d.ts.map +1 -1
- package/build/types/utils/node-stack-trace.d.ts +1 -1
- package/build/types/utils/node-stack-trace.d.ts.map +1 -1
- package/build/types/utils/object.d.ts +1 -1
- package/build/types/utils/object.d.ts.map +1 -1
- package/build/types/utils/parameterize.d.ts +1 -1
- package/build/types/utils/parameterize.d.ts.map +1 -1
- package/build/types/utils/prepareEvent.d.ts +3 -3
- package/build/types/utils/prepareEvent.d.ts.map +1 -1
- package/build/types/utils/ratelimit.d.ts +2 -2
- package/build/types/utils/ratelimit.d.ts.map +1 -1
- package/build/types/utils/request.d.ts +3 -3
- package/build/types/utils/request.d.ts.map +1 -1
- package/build/types/utils/scopeData.d.ts +1 -1
- package/build/types/utils/scopeData.d.ts.map +1 -1
- package/build/types/utils/sdkMetadata.d.ts +1 -1
- package/build/types/utils/sdkMetadata.d.ts.map +1 -1
- package/build/types/utils/severity.d.ts +1 -1
- package/build/types/utils/severity.d.ts.map +1 -1
- package/build/types/utils/should-ignore-span.d.ts +2 -2
- package/build/types/utils/should-ignore-span.d.ts.map +1 -1
- package/build/types/utils/spanOnScope.d.ts +1 -1
- package/build/types/utils/spanOnScope.d.ts.map +1 -1
- package/build/types/utils/spanUtils.d.ts +4 -4
- package/build/types/utils/spanUtils.d.ts.map +1 -1
- package/build/types/utils/stacktrace.d.ts +4 -4
- package/build/types/utils/stacktrace.d.ts.map +1 -1
- package/build/types/utils/trace-info.d.ts +2 -2
- package/build/types/utils/trace-info.d.ts.map +1 -1
- package/build/types/utils/traceData.d.ts +2 -2
- package/build/types/utils/traceData.d.ts.map +1 -1
- package/build/types/utils/tracePropagationTargets.d.ts +1 -1
- package/build/types/utils/tracePropagationTargets.d.ts.map +1 -1
- package/build/types/utils/tracing.d.ts +2 -2
- package/build/types/utils/tracing.d.ts.map +1 -1
- package/build/types/utils/transactionEvent.d.ts +2 -2
- package/build/types/utils/transactionEvent.d.ts.map +1 -1
- package/build/types/utils/url.d.ts +1 -1
- package/build/types/utils/url.d.ts.map +1 -1
- package/build/types/utils/worldwide.d.ts +1 -0
- package/build/types/utils/worldwide.d.ts.map +1 -1
- package/build/types-ts3.8/api.d.ts +2 -2
- package/build/types-ts3.8/attributes.d.ts +5 -8
- package/build/types-ts3.8/breadcrumbs.d.ts +1 -1
- package/build/types-ts3.8/browser-exports.d.ts +3 -3
- package/build/types-ts3.8/carrier.d.ts +2 -2
- package/build/types-ts3.8/checkin.d.ts +4 -4
- package/build/types-ts3.8/client.d.ts +32 -22
- package/build/types-ts3.8/currentScopes.d.ts +1 -1
- package/build/types-ts3.8/envelope.d.ts +7 -7
- package/build/types-ts3.8/eventProcessors.d.ts +2 -2
- package/build/types-ts3.8/exports.d.ts +8 -8
- package/build/types-ts3.8/feedback.d.ts +2 -2
- package/build/types-ts3.8/fetch.d.ts +3 -3
- package/build/types-ts3.8/instrument/console.d.ts +1 -1
- package/build/types-ts3.8/instrument/fetch.d.ts +1 -1
- package/build/types-ts3.8/instrument/globalError.d.ts +1 -1
- package/build/types-ts3.8/instrument/globalUnhandledRejection.d.ts +1 -1
- package/build/types-ts3.8/integration.d.ts +2 -2
- package/build/types-ts3.8/integrations/consola.d.ts +1 -1
- package/build/types-ts3.8/integrations/console.d.ts +1 -1
- package/build/types-ts3.8/integrations/dedupe.d.ts +1 -1
- package/build/types-ts3.8/integrations/express/types.d.ts +2 -2
- package/build/types-ts3.8/integrations/express/utils.d.ts +1 -1
- package/build/types-ts3.8/integrations/featureFlags/featureFlagsIntegration.d.ts +1 -1
- package/build/types-ts3.8/integrations/featureFlags/growthbook.d.ts +1 -1
- package/build/types-ts3.8/integrations/http/double-wrap-warning.d.ts +1 -1
- package/build/types-ts3.8/integrations/http/get-outgoing-span-data.d.ts +2 -2
- package/build/types-ts3.8/integrations/http/patch-request-to-capture-body.d.ts +12 -0
- package/build/types-ts3.8/integrations/http/record-request-session.d.ts +18 -0
- package/build/types-ts3.8/integrations/http/server-subscription.d.ts +26 -0
- package/build/types-ts3.8/integrations/http/types.d.ts +12 -6
- package/build/types-ts3.8/integrations/mcp-server/correlation.d.ts +1 -1
- package/build/types-ts3.8/integrations/mcp-server/piiFiltering.d.ts +1 -1
- package/build/types-ts3.8/integrations/mcp-server/types.d.ts +1 -1
- package/build/types-ts3.8/integrations/postgresjs.d.ts +1 -1
- package/build/types-ts3.8/integrations/rewriteframes.d.ts +1 -1
- package/build/types-ts3.8/integrations/supabase.d.ts +14 -3
- package/build/types-ts3.8/integrations/zoderrors.d.ts +1 -1
- package/build/types-ts3.8/logs/console-integration.d.ts +1 -1
- package/build/types-ts3.8/logs/constants.d.ts +1 -1
- package/build/types-ts3.8/logs/envelope.d.ts +4 -4
- package/build/types-ts3.8/logs/internal.d.ts +16 -1
- package/build/types-ts3.8/logs/public-api.d.ts +2 -2
- package/build/types-ts3.8/metadata.d.ts +2 -2
- package/build/types-ts3.8/metrics/envelope.d.ts +4 -4
- package/build/types-ts3.8/metrics/internal.d.ts +1 -1
- package/build/types-ts3.8/metrics/public-api.d.ts +1 -1
- package/build/types-ts3.8/profiling.d.ts +1 -1
- package/build/types-ts3.8/report-dialog.d.ts +1 -1
- package/build/types-ts3.8/scope.d.ts +14 -14
- package/build/types-ts3.8/sdk.d.ts +1 -1
- package/build/types-ts3.8/semanticAttributes.d.ts +2 -0
- package/build/types-ts3.8/server-exports.d.ts +3 -1
- package/build/types-ts3.8/server-runtime-client.d.ts +6 -6
- package/build/types-ts3.8/session.d.ts +1 -1
- package/build/types-ts3.8/shared-exports.d.ts +58 -53
- package/build/types-ts3.8/tracing/ai/utils.d.ts +1 -1
- package/build/types-ts3.8/tracing/anthropic-ai/streaming.d.ts +1 -1
- package/build/types-ts3.8/tracing/anthropic-ai/utils.d.ts +2 -2
- package/build/types-ts3.8/tracing/dynamicSamplingContext.d.ts +2 -2
- package/build/types-ts3.8/tracing/google-genai/streaming.d.ts +1 -1
- package/build/types-ts3.8/tracing/idleSpan.d.ts +2 -2
- package/build/types-ts3.8/tracing/langchain/utils.d.ts +6 -1
- package/build/types-ts3.8/tracing/langgraph/utils.d.ts +1 -3
- package/build/types-ts3.8/tracing/logSpans.d.ts +1 -1
- package/build/types-ts3.8/tracing/measurement.d.ts +2 -2
- package/build/types-ts3.8/tracing/openai/streaming.d.ts +1 -1
- package/build/types-ts3.8/tracing/openai/utils.d.ts +1 -1
- package/build/types-ts3.8/tracing/sampling.d.ts +2 -2
- package/build/types-ts3.8/tracing/sentryNonRecordingSpan.d.ts +3 -3
- package/build/types-ts3.8/tracing/sentrySpan.d.ts +4 -4
- package/build/types-ts3.8/tracing/spans/beforeSendSpan.d.ts +3 -3
- package/build/types-ts3.8/tracing/spans/captureSpan.d.ts +1 -1
- package/build/types-ts3.8/tracing/spans/envelope.d.ts +2 -2
- package/build/types-ts3.8/tracing/spans/estimateSize.d.ts +1 -1
- package/build/types-ts3.8/tracing/spans/extractGenAiSpans.d.ts +2 -2
- package/build/types-ts3.8/tracing/spans/scopeContextAttributes.d.ts +9 -0
- package/build/types-ts3.8/tracing/spans/spanJsonToStreamedSpan.d.ts +1 -1
- package/build/types-ts3.8/tracing/spanstatus.d.ts +2 -2
- package/build/types-ts3.8/tracing/trace.d.ts +2 -2
- package/build/types-ts3.8/tracing/utils.d.ts +1 -1
- package/build/types-ts3.8/tracing/vercel-ai/utils.d.ts +2 -2
- package/build/types-ts3.8/transports/base.d.ts +1 -1
- package/build/types-ts3.8/transports/multiplexed.d.ts +3 -3
- package/build/types-ts3.8/transports/offline.d.ts +2 -2
- package/build/types-ts3.8/transports/userAgent.d.ts +1 -1
- package/build/types-ts3.8/types/datacollection.d.ts +75 -0
- package/build/types-ts3.8/{types-hoist → types}/options.d.ts +17 -0
- package/build/types-ts3.8/{types-hoist → types}/samplingcontext.d.ts +1 -1
- package/build/types-ts3.8/{types-hoist → types}/startSpanOptions.d.ts +13 -0
- package/build/types-ts3.8/utils/aggregate-errors.d.ts +3 -3
- package/build/types-ts3.8/utils/anr.d.ts +1 -1
- package/build/types-ts3.8/utils/baggage.d.ts +1 -1
- package/build/types-ts3.8/utils/breadcrumb-log-level.d.ts +1 -1
- package/build/types-ts3.8/utils/clientreport.d.ts +2 -2
- package/build/types-ts3.8/utils/data-collection/defaultPiiToCollectionOptions.d.ts +6 -0
- package/build/types-ts3.8/utils/data-collection/filterCookies.d.ts +9 -0
- package/build/types-ts3.8/utils/data-collection/filterKeyValueData.d.ts +11 -0
- package/build/types-ts3.8/utils/data-collection/filterQueryParams.d.ts +9 -0
- package/build/types-ts3.8/utils/data-collection/filtering-snippets.d.ts +14 -0
- package/build/types-ts3.8/utils/data-collection/resolveDataCollectionOptions.d.ts +14 -0
- package/build/types-ts3.8/utils/debug-ids.d.ts +2 -2
- package/build/types-ts3.8/utils/debug-logger.d.ts +1 -1
- package/build/types-ts3.8/utils/dsn.d.ts +1 -1
- package/build/types-ts3.8/utils/envelope.d.ts +8 -8
- package/build/types-ts3.8/utils/error.d.ts +1 -1
- package/build/types-ts3.8/utils/eventUtils.d.ts +1 -1
- package/build/types-ts3.8/utils/eventbuilder.d.ts +6 -6
- package/build/types-ts3.8/utils/featureFlags.d.ts +1 -1
- package/build/types-ts3.8/utils/hasSpansEnabled.d.ts +1 -1
- package/build/types-ts3.8/utils/ipAddress.d.ts +2 -2
- package/build/types-ts3.8/utils/is.d.ts +4 -4
- package/build/types-ts3.8/utils/meta.d.ts +1 -1
- package/build/types-ts3.8/utils/misc.d.ts +3 -3
- package/build/types-ts3.8/utils/node-stack-trace.d.ts +1 -1
- package/build/types-ts3.8/utils/object.d.ts +1 -1
- package/build/types-ts3.8/utils/parameterize.d.ts +1 -1
- package/build/types-ts3.8/utils/prepareEvent.d.ts +3 -3
- package/build/types-ts3.8/utils/ratelimit.d.ts +2 -2
- package/build/types-ts3.8/utils/request.d.ts +3 -3
- package/build/types-ts3.8/utils/scopeData.d.ts +1 -1
- package/build/types-ts3.8/utils/sdkMetadata.d.ts +1 -1
- package/build/types-ts3.8/utils/severity.d.ts +1 -1
- package/build/types-ts3.8/utils/should-ignore-span.d.ts +2 -2
- package/build/types-ts3.8/utils/spanOnScope.d.ts +1 -1
- package/build/types-ts3.8/utils/spanUtils.d.ts +4 -4
- package/build/types-ts3.8/utils/stacktrace.d.ts +4 -4
- package/build/types-ts3.8/utils/trace-info.d.ts +2 -2
- package/build/types-ts3.8/utils/traceData.d.ts +2 -2
- package/build/types-ts3.8/utils/tracePropagationTargets.d.ts +1 -1
- package/build/types-ts3.8/utils/tracing.d.ts +2 -2
- package/build/types-ts3.8/utils/transactionEvent.d.ts +2 -2
- package/build/types-ts3.8/utils/url.d.ts +1 -1
- package/build/types-ts3.8/utils/worldwide.d.ts +1 -0
- package/package.json +1 -1
- package/build/types/types-hoist/attachment.d.ts.map +0 -1
- package/build/types/types-hoist/breadcrumb.d.ts.map +0 -1
- package/build/types/types-hoist/browseroptions.d.ts.map +0 -1
- package/build/types/types-hoist/checkin.d.ts.map +0 -1
- package/build/types/types-hoist/clientreport.d.ts.map +0 -1
- package/build/types/types-hoist/context.d.ts.map +0 -1
- package/build/types/types-hoist/csp.d.ts.map +0 -1
- package/build/types/types-hoist/datacategory.d.ts.map +0 -1
- package/build/types/types-hoist/debugMeta.d.ts.map +0 -1
- package/build/types/types-hoist/dsn.d.ts.map +0 -1
- package/build/types/types-hoist/envelope.d.ts.map +0 -1
- package/build/types/types-hoist/error.d.ts.map +0 -1
- package/build/types/types-hoist/event.d.ts.map +0 -1
- package/build/types/types-hoist/eventprocessor.d.ts.map +0 -1
- package/build/types/types-hoist/exception.d.ts.map +0 -1
- package/build/types/types-hoist/extra.d.ts.map +0 -1
- package/build/types/types-hoist/feedback/config.d.ts.map +0 -1
- package/build/types/types-hoist/feedback/form.d.ts.map +0 -1
- package/build/types/types-hoist/feedback/index.d.ts.map +0 -1
- package/build/types/types-hoist/feedback/sendFeedback.d.ts.map +0 -1
- package/build/types/types-hoist/feedback/theme.d.ts.map +0 -1
- package/build/types/types-hoist/instrument.d.ts.map +0 -1
- package/build/types/types-hoist/integration.d.ts.map +0 -1
- package/build/types/types-hoist/link.d.ts.map +0 -1
- package/build/types/types-hoist/log.d.ts.map +0 -1
- package/build/types/types-hoist/measurement.d.ts.map +0 -1
- package/build/types/types-hoist/mechanism.d.ts.map +0 -1
- package/build/types/types-hoist/metric.d.ts.map +0 -1
- package/build/types/types-hoist/misc.d.ts.map +0 -1
- package/build/types/types-hoist/opentelemetry.d.ts.map +0 -1
- package/build/types/types-hoist/options.d.ts.map +0 -1
- package/build/types/types-hoist/package.d.ts.map +0 -1
- package/build/types/types-hoist/parameterize.d.ts.map +0 -1
- package/build/types/types-hoist/polymorphics.d.ts.map +0 -1
- package/build/types/types-hoist/profiling.d.ts.map +0 -1
- package/build/types/types-hoist/replay.d.ts.map +0 -1
- package/build/types/types-hoist/request.d.ts.map +0 -1
- package/build/types/types-hoist/runtime.d.ts.map +0 -1
- package/build/types/types-hoist/samplingcontext.d.ts.map +0 -1
- package/build/types/types-hoist/sdkinfo.d.ts.map +0 -1
- package/build/types/types-hoist/sdkmetadata.d.ts.map +0 -1
- package/build/types/types-hoist/session.d.ts.map +0 -1
- package/build/types/types-hoist/severity.d.ts.map +0 -1
- package/build/types/types-hoist/span.d.ts.map +0 -1
- package/build/types/types-hoist/spanStatus.d.ts.map +0 -1
- package/build/types/types-hoist/stackframe.d.ts.map +0 -1
- package/build/types/types-hoist/stacktrace.d.ts.map +0 -1
- package/build/types/types-hoist/startSpanOptions.d.ts.map +0 -1
- package/build/types/types-hoist/thread.d.ts.map +0 -1
- package/build/types/types-hoist/timedEvent.d.ts.map +0 -1
- package/build/types/types-hoist/tracing.d.ts.map +0 -1
- package/build/types/types-hoist/transaction.d.ts.map +0 -1
- package/build/types/types-hoist/transport.d.ts.map +0 -1
- package/build/types/types-hoist/user.d.ts.map +0 -1
- package/build/types/types-hoist/view-hierarchy.d.ts.map +0 -1
- package/build/types/types-hoist/vue.d.ts.map +0 -1
- package/build/types/types-hoist/webfetchapi.d.ts.map +0 -1
- package/build/types/types-hoist/wrappedfunction.d.ts.map +0 -1
- /package/build/types/{types-hoist → types}/attachment.d.ts +0 -0
- /package/build/types/{types-hoist → types}/breadcrumb.d.ts +0 -0
- /package/build/types/{types-hoist → types}/browseroptions.d.ts +0 -0
- /package/build/types/{types-hoist → types}/checkin.d.ts +0 -0
- /package/build/types/{types-hoist → types}/clientreport.d.ts +0 -0
- /package/build/types/{types-hoist → types}/context.d.ts +0 -0
- /package/build/types/{types-hoist → types}/csp.d.ts +0 -0
- /package/build/types/{types-hoist → types}/datacategory.d.ts +0 -0
- /package/build/types/{types-hoist → types}/debugMeta.d.ts +0 -0
- /package/build/types/{types-hoist → types}/dsn.d.ts +0 -0
- /package/build/types/{types-hoist → types}/envelope.d.ts +0 -0
- /package/build/types/{types-hoist → types}/error.d.ts +0 -0
- /package/build/types/{types-hoist → types}/event.d.ts +0 -0
- /package/build/types/{types-hoist → types}/eventprocessor.d.ts +0 -0
- /package/build/types/{types-hoist → types}/exception.d.ts +0 -0
- /package/build/types/{types-hoist → types}/extra.d.ts +0 -0
- /package/build/types/{types-hoist → types}/feedback/config.d.ts +0 -0
- /package/build/types/{types-hoist → types}/feedback/form.d.ts +0 -0
- /package/build/types/{types-hoist → types}/feedback/index.d.ts +0 -0
- /package/build/types/{types-hoist → types}/feedback/sendFeedback.d.ts +0 -0
- /package/build/types/{types-hoist → types}/feedback/theme.d.ts +0 -0
- /package/build/types/{types-hoist → types}/instrument.d.ts +0 -0
- /package/build/types/{types-hoist → types}/integration.d.ts +0 -0
- /package/build/types/{types-hoist → types}/link.d.ts +0 -0
- /package/build/types/{types-hoist → types}/log.d.ts +0 -0
- /package/build/types/{types-hoist → types}/measurement.d.ts +0 -0
- /package/build/types/{types-hoist → types}/mechanism.d.ts +0 -0
- /package/build/types/{types-hoist → types}/metric.d.ts +0 -0
- /package/build/types/{types-hoist → types}/misc.d.ts +0 -0
- /package/build/types/{types-hoist → types}/opentelemetry.d.ts +0 -0
- /package/build/types/{types-hoist → types}/package.d.ts +0 -0
- /package/build/types/{types-hoist → types}/parameterize.d.ts +0 -0
- /package/build/types/{types-hoist → types}/polymorphics.d.ts +0 -0
- /package/build/types/{types-hoist → types}/profiling.d.ts +0 -0
- /package/build/types/{types-hoist → types}/replay.d.ts +0 -0
- /package/build/types/{types-hoist → types}/request.d.ts +0 -0
- /package/build/types/{types-hoist → types}/runtime.d.ts +0 -0
- /package/build/types/{types-hoist → types}/sdkinfo.d.ts +0 -0
- /package/build/types/{types-hoist → types}/sdkmetadata.d.ts +0 -0
- /package/build/types/{types-hoist → types}/session.d.ts +0 -0
- /package/build/types/{types-hoist → types}/severity.d.ts +0 -0
- /package/build/types/{types-hoist → types}/span.d.ts +0 -0
- /package/build/types/{types-hoist → types}/spanStatus.d.ts +0 -0
- /package/build/types/{types-hoist → types}/stackframe.d.ts +0 -0
- /package/build/types/{types-hoist → types}/stacktrace.d.ts +0 -0
- /package/build/types/{types-hoist → types}/thread.d.ts +0 -0
- /package/build/types/{types-hoist → types}/timedEvent.d.ts +0 -0
- /package/build/types/{types-hoist → types}/tracing.d.ts +0 -0
- /package/build/types/{types-hoist → types}/transaction.d.ts +0 -0
- /package/build/types/{types-hoist → types}/transport.d.ts +0 -0
- /package/build/types/{types-hoist → types}/user.d.ts +0 -0
- /package/build/types/{types-hoist → types}/view-hierarchy.d.ts +0 -0
- /package/build/types/{types-hoist → types}/vue.d.ts +0 -0
- /package/build/types/{types-hoist → types}/webfetchapi.d.ts +0 -0
- /package/build/types/{types-hoist → types}/wrappedfunction.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/attachment.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/breadcrumb.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/browseroptions.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/checkin.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/clientreport.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/context.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/csp.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/datacategory.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/debugMeta.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/dsn.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/envelope.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/error.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/event.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/eventprocessor.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/exception.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/extra.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/feedback/config.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/feedback/form.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/feedback/index.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/feedback/sendFeedback.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/feedback/theme.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/instrument.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/integration.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/link.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/log.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/measurement.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/mechanism.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/metric.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/misc.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/opentelemetry.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/package.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/parameterize.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/polymorphics.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/profiling.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/replay.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/request.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/runtime.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/sdkinfo.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/sdkmetadata.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/session.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/severity.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/span.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/spanStatus.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/stackframe.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/stacktrace.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/thread.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/timedEvent.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/tracing.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/transaction.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/transport.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/user.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/view-hierarchy.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/vue.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/webfetchapi.d.ts +0 -0
- /package/build/types-ts3.8/{types-hoist → types}/wrappedfunction.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject-trace-propagation-headers.js","sources":["../../../../src/integrations/http/inject-trace-propagation-headers.ts"],"sourcesContent":["import type { LRUMap } from '../../utils/lru';\nimport { getClient } from '../../currentScopes';\nimport { DEBUG_BUILD } from '../../debug-build';\nimport { debug } from '../../utils/debug-logger';\nimport { isError } from '../../utils/is';\nimport { getTraceData } from '../../utils/traceData';\nimport { shouldPropagateTraceForUrl } from '../../utils/tracePropagationTargets';\nimport { LOG_PREFIX } from './constants';\nimport { getRequestUrlFromClientRequest } from './get-request-url';\nimport type { HttpClientRequest } from './types';\nimport { mergeBaggageHeaders } from '../../utils/baggage';\n\n/**\n * Inject Sentry trace-propagation headers into an outgoing request if the\n * target URL matches the configured `tracePropagationTargets`.\n *\n * Note: this must be called *before* calling `request.end()` (or firing the\n * `http.client.request.start` diagnostics channel), because at that point,\n * the headers have already been sent, and cannot be modified.\n */\nexport function injectTracePropagationHeaders(\n request: HttpClientRequest,\n propagationDecisionMap: LRUMap<string, boolean>,\n): void {\n const url = getRequestUrlFromClientRequest(request);\n const clientOptions = getClient()?.getOptions();\n const { tracePropagationTargets, propagateTraceparent } = clientOptions ?? {};\n\n if (!shouldPropagateTraceForUrl(url, tracePropagationTargets, propagationDecisionMap)) {\n return;\n }\n\n const hasExistingSentryTraceHeader = !!request.getHeader('sentry-trace');\n\n if (hasExistingSentryTraceHeader) {\n // add nothing if there's already a sentry-trace header,\n // or else baggage can be sent twice.\n return;\n }\n\n const traceData = getTraceData({ propagateTraceparent });\n if (!traceData) return;\n\n const { 'sentry-trace': sentryTrace, baggage, traceparent } = traceData;\n\n if (sentryTrace) {\n try {\n request.setHeader('sentry-trace', sentryTrace);\n DEBUG_BUILD && debug.log(LOG_PREFIX, 'Added sentry-trace header');\n } catch (e) {\n DEBUG_BUILD &&\n debug.error(LOG_PREFIX, 'Failed to set sentry-trace header:', isError(e) ? e.message : 'Unknown error');\n }\n }\n\n if (traceparent && !request.getHeader('traceparent')) {\n try {\n request.setHeader('traceparent', traceparent);\n DEBUG_BUILD && debug.log(LOG_PREFIX, 'Added traceparent header');\n } catch (e) {\n DEBUG_BUILD &&\n debug.error(LOG_PREFIX, 'Failed to set traceparent header:', isError(e) ? e.message : 'Unknown error');\n }\n }\n\n if (baggage) {\n const merged = mergeBaggageHeaders(request.getHeader('baggage'), baggage);\n if (merged) {\n try {\n request.setHeader('baggage', merged);\n DEBUG_BUILD && debug.log(LOG_PREFIX, 'Added baggage header');\n } catch (e) {\n DEBUG_BUILD &&\n debug.error(LOG_PREFIX, 'Failed to set baggage header:', isError(e) ? e.message : 'Unknown error');\n }\n }\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"inject-trace-propagation-headers.js","sources":["../../../../src/integrations/http/inject-trace-propagation-headers.ts"],"sourcesContent":["import type { LRUMap } from '../../utils/lru';\nimport { getClient } from '../../currentScopes';\nimport { DEBUG_BUILD } from '../../debug-build';\nimport { debug } from '../../utils/debug-logger';\nimport { isError } from '../../utils/is';\nimport { getTraceData } from '../../utils/traceData';\nimport { shouldPropagateTraceForUrl } from '../../utils/tracePropagationTargets';\nimport { LOG_PREFIX } from './constants';\nimport { getRequestUrlFromClientRequest } from './get-request-url';\nimport type { HttpClientRequest } from './types';\nimport { mergeBaggageHeaders } from '../../utils/baggage';\n\n/**\n * Inject Sentry trace-propagation headers into an outgoing request if the\n * target URL matches the configured `tracePropagationTargets`.\n *\n * Note: this must be called *before* calling `request.end()` (or firing the\n * `http.client.request.start` diagnostics channel), because at that point,\n * the headers have already been sent, and cannot be modified.\n */\nexport function injectTracePropagationHeaders(\n request: HttpClientRequest,\n propagationDecisionMap: LRUMap<string, boolean>,\n): void {\n const url = getRequestUrlFromClientRequest(request);\n const clientOptions = getClient()?.getOptions();\n const { tracePropagationTargets, propagateTraceparent } = clientOptions ?? {};\n\n if (!shouldPropagateTraceForUrl(url, tracePropagationTargets, propagationDecisionMap)) {\n return;\n }\n\n const hasExistingSentryTraceHeader = !!request.getHeader('sentry-trace');\n\n if (hasExistingSentryTraceHeader) {\n // add nothing if there's already a sentry-trace header,\n // or else baggage can be sent twice.\n return;\n }\n\n const traceData = getTraceData({ propagateTraceparent });\n if (!traceData) return;\n\n const { 'sentry-trace': sentryTrace, baggage, traceparent } = traceData;\n\n if (sentryTrace) {\n try {\n request.setHeader('sentry-trace', sentryTrace);\n DEBUG_BUILD && debug.log(LOG_PREFIX, 'Added sentry-trace header');\n } catch (e) {\n DEBUG_BUILD &&\n debug.error(LOG_PREFIX, 'Failed to set sentry-trace header:', isError(e) ? e.message : 'Unknown error');\n }\n }\n\n if (traceparent && !request.getHeader('traceparent')) {\n try {\n request.setHeader('traceparent', traceparent);\n DEBUG_BUILD && debug.log(LOG_PREFIX, 'Added traceparent header');\n } catch (e) {\n DEBUG_BUILD &&\n debug.error(LOG_PREFIX, 'Failed to set traceparent header:', isError(e) ? e.message : 'Unknown error');\n }\n }\n\n if (baggage) {\n const merged = mergeBaggageHeaders(request.getHeader('baggage'), baggage);\n if (merged) {\n try {\n request.setHeader('baggage', merged);\n DEBUG_BUILD && debug.log(LOG_PREFIX, 'Added baggage header');\n } catch (e) {\n DEBUG_BUILD &&\n debug.error(LOG_PREFIX, 'Failed to set baggage header:', isError(e) ? e.message : 'Unknown error');\n }\n }\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;AAoBO,SAAS,6BAAA,CACd,SACA,sBAAA,EACM;AACN,EAAA,MAAM,GAAA,GAAM,+BAA+B,OAAO,CAAA;AAClD,EAAA,MAAM,aAAA,GAAgB,SAAA,EAAU,EAAG,UAAA,EAAW;AAC9C,EAAA,MAAM,EAAE,uBAAA,EAAyB,oBAAA,EAAqB,GAAI,iBAAiB,EAAC;AAE5E,EAAA,IAAI,CAAC,0BAAA,CAA2B,GAAA,EAAK,uBAAA,EAAyB,sBAAsB,CAAA,EAAG;AACrF,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,4BAAA,GAA+B,CAAC,CAAC,OAAA,CAAQ,UAAU,cAAc,CAAA;AAEvE,EAAA,IAAI,4BAAA,EAA8B;AAGhC,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,SAAA,GAAY,YAAA,CAAa,EAAE,oBAAA,EAAsB,CAAA;AACvD,EAAA,IAAI,CAAC,SAAA,EAAW;AAEhB,EAAA,MAAM,EAAE,cAAA,EAAgB,WAAA,EAAa,OAAA,EAAS,aAAY,GAAI,SAAA;AAE9D,EAAA,IAAI,WAAA,EAAa;AACf,IAAA,IAAI;AACF,MAAA,OAAA,CAAQ,SAAA,CAAU,gBAAgB,WAAW,CAAA;AAC7C,MAAA,WAAA,IAAe,KAAA,CAAM,GAAA,CAAI,UAAA,EAAY,2BAA2B,CAAA;AAAA,IAClE,SAAS,CAAA,EAAG;AACV,MAAA,WAAA,IACE,KAAA,CAAM,MAAM,UAAA,EAAY,oCAAA,EAAsC,QAAQ,CAAC,CAAA,GAAI,CAAA,CAAE,OAAA,GAAU,eAAe,CAAA;AAAA,IAC1G;AAAA,EACF;AAEA,EAAA,IAAI,WAAA,IAAe,CAAC,OAAA,CAAQ,SAAA,CAAU,aAAa,CAAA,EAAG;AACpD,IAAA,IAAI;AACF,MAAA,OAAA,CAAQ,SAAA,CAAU,eAAe,WAAW,CAAA;AAC5C,MAAA,WAAA,IAAe,KAAA,CAAM,GAAA,CAAI,UAAA,EAAY,0BAA0B,CAAA;AAAA,IACjE,SAAS,CAAA,EAAG;AACV,MAAA,WAAA,IACE,KAAA,CAAM,MAAM,UAAA,EAAY,mCAAA,EAAqC,QAAQ,CAAC,CAAA,GAAI,CAAA,CAAE,OAAA,GAAU,eAAe,CAAA;AAAA,IACzG;AAAA,EACF;AAEA,EAAA,IAAI,OAAA,EAAS;AACX,IAAA,MAAM,SAAS,mBAAA,CAAoB,OAAA,CAAQ,SAAA,CAAU,SAAS,GAAG,OAAO,CAAA;AACxE,IAAA,IAAI,MAAA,EAAQ;AACV,MAAA,IAAI;AACF,QAAA,OAAA,CAAQ,SAAA,CAAU,WAAW,MAAM,CAAA;AACnC,QAAA,WAAA,IAAe,KAAA,CAAM,GAAA,CAAI,UAAA,EAAY,sBAAsB,CAAA;AAAA,MAC7D,SAAS,CAAA,EAAG;AACV,QAAA,WAAA,IACE,KAAA,CAAM,MAAM,UAAA,EAAY,+BAAA,EAAiC,QAAQ,CAAC,CAAA,GAAI,CAAA,CAAE,OAAA,GAAU,eAAe,CAAA;AAAA,MACrG;AAAA,IACF;AAAA,EACF;AACF;;;;"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { debug } from '../../utils/debug-logger.js';
|
|
2
|
+
import { DEBUG_BUILD } from '../../debug-build.js';
|
|
3
|
+
import { getMaxBodyByteLength } from '../../utils/request.js';
|
|
4
|
+
|
|
5
|
+
function patchRequestToCaptureBody(req, isolationScope, maxIncomingRequestBodySize, integrationName) {
|
|
6
|
+
let bodyByteLength = 0;
|
|
7
|
+
const chunks = [];
|
|
8
|
+
DEBUG_BUILD && debug.log(integrationName, "Patching request.on");
|
|
9
|
+
const callbackMap = /* @__PURE__ */ new WeakMap();
|
|
10
|
+
const maxBodySize = getMaxBodyByteLength(maxIncomingRequestBodySize);
|
|
11
|
+
try {
|
|
12
|
+
req.on = req.addListener = new Proxy(req.on, {
|
|
13
|
+
apply: (target, thisArg, args) => {
|
|
14
|
+
const [event, listener, ...restArgs] = args;
|
|
15
|
+
if (event === "data") {
|
|
16
|
+
DEBUG_BUILD && debug.log(integrationName, `Handling request.on("data") with maximum body size of ${maxBodySize}b`);
|
|
17
|
+
const callback = new Proxy(listener, {
|
|
18
|
+
apply: (target2, thisArg2, args2) => {
|
|
19
|
+
try {
|
|
20
|
+
const chunk = args2[0];
|
|
21
|
+
const bufferifiedChunk = Buffer.from(chunk);
|
|
22
|
+
if (bodyByteLength < maxBodySize) {
|
|
23
|
+
chunks.push(bufferifiedChunk);
|
|
24
|
+
bodyByteLength += bufferifiedChunk.byteLength;
|
|
25
|
+
} else if (DEBUG_BUILD) {
|
|
26
|
+
debug.log(
|
|
27
|
+
integrationName,
|
|
28
|
+
`Dropping request body chunk because maximum body length of ${maxBodySize}b is exceeded.`
|
|
29
|
+
);
|
|
30
|
+
}
|
|
31
|
+
} catch (_err) {
|
|
32
|
+
DEBUG_BUILD && debug.error(integrationName, "Encountered error while storing body chunk.");
|
|
33
|
+
}
|
|
34
|
+
return Reflect.apply(target2, thisArg2, args2);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
callbackMap.set(listener, callback);
|
|
38
|
+
return Reflect.apply(target, thisArg, [event, callback, ...restArgs]);
|
|
39
|
+
}
|
|
40
|
+
return Reflect.apply(target, thisArg, args);
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
req.off = req.removeListener = new Proxy(req.off, {
|
|
44
|
+
apply: (target, thisArg, args) => {
|
|
45
|
+
const [, listener] = args;
|
|
46
|
+
const callback = callbackMap.get(listener);
|
|
47
|
+
if (callback) {
|
|
48
|
+
callbackMap.delete(listener);
|
|
49
|
+
const modifiedArgs = args.slice();
|
|
50
|
+
modifiedArgs[1] = callback;
|
|
51
|
+
return Reflect.apply(target, thisArg, modifiedArgs);
|
|
52
|
+
}
|
|
53
|
+
return Reflect.apply(target, thisArg, args);
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
req.on("end", () => {
|
|
57
|
+
try {
|
|
58
|
+
const body = Buffer.concat(chunks).toString("utf-8");
|
|
59
|
+
if (body) {
|
|
60
|
+
const bodyByteLength2 = Buffer.byteLength(body, "utf-8");
|
|
61
|
+
const truncatedBody = bodyByteLength2 > maxBodySize ? `${Buffer.from(body).subarray(0, maxBodySize - 3).toString("utf-8")}...` : body;
|
|
62
|
+
isolationScope.setSDKProcessingMetadata({ normalizedRequest: { data: truncatedBody } });
|
|
63
|
+
}
|
|
64
|
+
} catch (error) {
|
|
65
|
+
if (DEBUG_BUILD) {
|
|
66
|
+
debug.error(integrationName, "Error building captured request body", error);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
} catch (error) {
|
|
71
|
+
if (DEBUG_BUILD) {
|
|
72
|
+
debug.error(integrationName, "Error patching request to capture body", error);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export { patchRequestToCaptureBody };
|
|
78
|
+
//# sourceMappingURL=patch-request-to-capture-body.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patch-request-to-capture-body.js","sources":["../../../../src/integrations/http/patch-request-to-capture-body.ts"],"sourcesContent":["import type { Scope } from '../../scope';\nimport { debug } from '../../utils/debug-logger';\nimport { DEBUG_BUILD } from '../../debug-build';\nimport type { HttpIncomingMessage } from './types';\nimport { getMaxBodyByteLength, type MaxRequestBodySize } from '../../utils/request';\n\n/**\n * This method patches the request object to capture the body.\n * Instead of actually consuming the streamed body ourselves, which has\n * potential side effects, we monkey patch `req.on('data')` to intercept\n * the body chunks. This way, we only read the body if the user also consumes\n * the body, ensuring we do not change any behavior in unexpected ways.\n */\nexport function patchRequestToCaptureBody(\n req: HttpIncomingMessage,\n isolationScope: Scope,\n maxIncomingRequestBodySize: Exclude<MaxRequestBodySize, 'none'>,\n integrationName: string,\n): void {\n let bodyByteLength = 0;\n const chunks: Buffer[] = [];\n\n DEBUG_BUILD && debug.log(integrationName, 'Patching request.on');\n\n // keep track of the original callbacks to remove listeners later\n // `off` depends on having the exact same function reference passed in,\n // so we need to be able to map original listeners to our wrapped ones.\n const callbackMap = new WeakMap();\n\n const maxBodySize = getMaxBodyByteLength(maxIncomingRequestBodySize);\n\n try {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n req.on = req.addListener = new Proxy(req.on, {\n apply: (target, thisArg, args: Parameters<typeof req.on>) => {\n const [event, listener, ...restArgs] = args;\n\n if (event === 'data') {\n DEBUG_BUILD &&\n debug.log(integrationName, `Handling request.on(\"data\") with maximum body size of ${maxBodySize}b`);\n\n const callback = new Proxy(listener, {\n apply: (target, thisArg, args: Parameters<typeof listener>) => {\n try {\n const chunk = args[0] as Buffer | string;\n const bufferifiedChunk = Buffer.from(chunk);\n\n if (bodyByteLength < maxBodySize) {\n chunks.push(bufferifiedChunk);\n bodyByteLength += bufferifiedChunk.byteLength;\n } else if (DEBUG_BUILD) {\n debug.log(\n integrationName,\n `Dropping request body chunk because maximum body length of ${maxBodySize}b is exceeded.`,\n );\n }\n } catch (_err) {\n DEBUG_BUILD && debug.error(integrationName, 'Encountered error while storing body chunk.');\n }\n\n return Reflect.apply(target, thisArg, args);\n },\n });\n\n callbackMap.set(listener, callback);\n\n return Reflect.apply(target, thisArg, [event, callback, ...restArgs]);\n }\n\n return Reflect.apply(target, thisArg, args);\n },\n });\n\n // Ensure we also remove callbacks correctly\n // eslint-disable-next-line @typescript-eslint/unbound-method\n req.off = req.removeListener = new Proxy(req.off, {\n apply: (target, thisArg, args: Parameters<typeof req.off>) => {\n const [, listener] = args;\n\n const callback = callbackMap.get(listener);\n if (callback) {\n callbackMap.delete(listener);\n\n const modifiedArgs = args.slice();\n modifiedArgs[1] = callback;\n return Reflect.apply(target, thisArg, modifiedArgs);\n }\n\n return Reflect.apply(target, thisArg, args);\n },\n });\n\n req.on('end', () => {\n try {\n const body = Buffer.concat(chunks).toString('utf-8');\n if (body) {\n // Using Buffer.byteLength here, because the body may contain characters that are not 1 byte long\n const bodyByteLength = Buffer.byteLength(body, 'utf-8');\n const truncatedBody =\n bodyByteLength > maxBodySize\n ? `${Buffer.from(body)\n .subarray(0, maxBodySize - 3)\n .toString('utf-8')}...`\n : body;\n\n isolationScope.setSDKProcessingMetadata({ normalizedRequest: { data: truncatedBody } });\n }\n } catch (error) {\n if (DEBUG_BUILD) {\n debug.error(integrationName, 'Error building captured request body', error);\n }\n }\n });\n } catch (error) {\n if (DEBUG_BUILD) {\n debug.error(integrationName, 'Error patching request to capture body', error);\n }\n }\n}\n"],"names":["target","thisArg","args","bodyByteLength"],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { debug } from '../../utils/debug-logger.js';
|
|
2
|
+
import { DEBUG_BUILD } from '../../debug-build.js';
|
|
3
|
+
import { safeUnref } from '../../utils/timer.js';
|
|
4
|
+
|
|
5
|
+
const clientToRequestSessionAggregatesMap = /* @__PURE__ */ new WeakMap();
|
|
6
|
+
function recordRequestSession(client, {
|
|
7
|
+
requestIsolationScope,
|
|
8
|
+
response,
|
|
9
|
+
sessionFlushingDelayMS
|
|
10
|
+
}) {
|
|
11
|
+
requestIsolationScope.setSDKProcessingMetadata({
|
|
12
|
+
requestSession: { status: "ok" }
|
|
13
|
+
});
|
|
14
|
+
response.once("close", () => {
|
|
15
|
+
const requestSession = requestIsolationScope.getScopeData().sdkProcessingMetadata.requestSession;
|
|
16
|
+
if (client && requestSession) {
|
|
17
|
+
DEBUG_BUILD && debug.log(`Recorded request session with status: ${requestSession.status}`);
|
|
18
|
+
const roundedDate = /* @__PURE__ */ new Date();
|
|
19
|
+
roundedDate.setSeconds(0, 0);
|
|
20
|
+
const dateBucketKey = roundedDate.toISOString();
|
|
21
|
+
const existingClientAggregate = clientToRequestSessionAggregatesMap.get(client);
|
|
22
|
+
const bucket = existingClientAggregate?.[dateBucketKey] || { exited: 0, crashed: 0, errored: 0 };
|
|
23
|
+
bucket[{ ok: "exited", crashed: "crashed", errored: "errored" }[requestSession.status]]++;
|
|
24
|
+
if (existingClientAggregate) {
|
|
25
|
+
existingClientAggregate[dateBucketKey] = bucket;
|
|
26
|
+
} else {
|
|
27
|
+
DEBUG_BUILD && debug.log("Opened new request session aggregate.");
|
|
28
|
+
const newClientAggregate = { [dateBucketKey]: bucket };
|
|
29
|
+
clientToRequestSessionAggregatesMap.set(client, newClientAggregate);
|
|
30
|
+
const flushPendingClientAggregates = () => {
|
|
31
|
+
clearTimeout(timeout);
|
|
32
|
+
unregisterClientFlushHook();
|
|
33
|
+
clientToRequestSessionAggregatesMap.delete(client);
|
|
34
|
+
const aggregatePayload = Object.entries(newClientAggregate).map(
|
|
35
|
+
([timestamp, value]) => ({
|
|
36
|
+
started: timestamp,
|
|
37
|
+
exited: value.exited,
|
|
38
|
+
errored: value.errored,
|
|
39
|
+
crashed: value.crashed
|
|
40
|
+
})
|
|
41
|
+
);
|
|
42
|
+
client.sendSession({ aggregates: aggregatePayload });
|
|
43
|
+
};
|
|
44
|
+
const unregisterClientFlushHook = client.on("flush", () => {
|
|
45
|
+
DEBUG_BUILD && debug.log("Sending request session aggregate due to client flush");
|
|
46
|
+
flushPendingClientAggregates();
|
|
47
|
+
});
|
|
48
|
+
const timeout = setTimeout(() => {
|
|
49
|
+
DEBUG_BUILD && debug.log("Sending request session aggregate due to flushing schedule");
|
|
50
|
+
flushPendingClientAggregates();
|
|
51
|
+
}, sessionFlushingDelayMS);
|
|
52
|
+
safeUnref(timeout);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export { recordRequestSession };
|
|
59
|
+
//# sourceMappingURL=record-request-session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"record-request-session.js","sources":["../../../../src/integrations/http/record-request-session.ts"],"sourcesContent":["import type { Client } from '../../client';\nimport { debug } from '../../utils/debug-logger';\nimport { DEBUG_BUILD } from '../../debug-build';\nimport type { Scope } from '../../scope';\nimport type { HttpServerResponse } from './types';\nimport type { AggregationCounts } from '../../types/session';\nimport { safeUnref } from '../../utils/timer';\n\nconst clientToRequestSessionAggregatesMap = new WeakMap<\n Client,\n { [timestampRoundedToSeconds: string]: { exited: number; crashed: number; errored: number } }\n>();\n\n/**\n * Starts a session and tracks it in the context of a given isolation scope.\n * When the passed response is finished, the session is put into a task and\n * is aggregated with other sessions that may happen in a certain time window\n * (sessionFlushingDelayMs).\n *\n * The sessions are always aggregated by the client that is on the current\n * scope at the time of ending the response (if there is one).\n */\nexport function recordRequestSession(\n client: Client,\n {\n requestIsolationScope,\n response,\n sessionFlushingDelayMS,\n }: {\n requestIsolationScope: Scope;\n response: HttpServerResponse;\n sessionFlushingDelayMS?: number;\n },\n): void {\n requestIsolationScope.setSDKProcessingMetadata({\n requestSession: { status: 'ok' },\n });\n\n response.once('close', () => {\n const requestSession = requestIsolationScope.getScopeData().sdkProcessingMetadata.requestSession;\n\n if (client && requestSession) {\n DEBUG_BUILD && debug.log(`Recorded request session with status: ${requestSession.status}`);\n\n const roundedDate = new Date();\n roundedDate.setSeconds(0, 0);\n const dateBucketKey = roundedDate.toISOString();\n\n const existingClientAggregate = clientToRequestSessionAggregatesMap.get(client);\n const bucket = existingClientAggregate?.[dateBucketKey] || { exited: 0, crashed: 0, errored: 0 };\n bucket[({ ok: 'exited', crashed: 'crashed', errored: 'errored' } as const)[requestSession.status]]++;\n\n if (existingClientAggregate) {\n existingClientAggregate[dateBucketKey] = bucket;\n } else {\n DEBUG_BUILD && debug.log('Opened new request session aggregate.');\n const newClientAggregate = { [dateBucketKey]: bucket };\n clientToRequestSessionAggregatesMap.set(client, newClientAggregate);\n\n const flushPendingClientAggregates = (): void => {\n clearTimeout(timeout);\n unregisterClientFlushHook();\n clientToRequestSessionAggregatesMap.delete(client);\n\n const aggregatePayload: AggregationCounts[] = Object.entries(newClientAggregate).map(\n ([timestamp, value]) => ({\n started: timestamp,\n exited: value.exited,\n errored: value.errored,\n crashed: value.crashed,\n }),\n );\n client.sendSession({ aggregates: aggregatePayload });\n };\n\n const unregisterClientFlushHook = client.on('flush', () => {\n DEBUG_BUILD && debug.log('Sending request session aggregate due to client flush');\n flushPendingClientAggregates();\n });\n const timeout = setTimeout(() => {\n DEBUG_BUILD && debug.log('Sending request session aggregate due to flushing schedule');\n flushPendingClientAggregates();\n }, sessionFlushingDelayMS);\n safeUnref(timeout);\n }\n }\n });\n}\n"],"names":[],"mappings":";;;;AAQA,MAAM,mCAAA,uBAA0C,OAAA,EAG9C;AAWK,SAAS,qBACd,MAAA,EACA;AAAA,EACE,qBAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAKM;AACN,EAAA,qBAAA,CAAsB,wBAAA,CAAyB;AAAA,IAC7C,cAAA,EAAgB,EAAE,MAAA,EAAQ,IAAA;AAAK,GAChC,CAAA;AAED,EAAA,QAAA,CAAS,IAAA,CAAK,SAAS,MAAM;AAC3B,IAAA,MAAM,cAAA,GAAiB,qBAAA,CAAsB,YAAA,EAAa,CAAE,qBAAA,CAAsB,cAAA;AAElF,IAAA,IAAI,UAAU,cAAA,EAAgB;AAC5B,MAAA,WAAA,IAAe,KAAA,CAAM,GAAA,CAAI,CAAA,sCAAA,EAAyC,cAAA,CAAe,MAAM,CAAA,CAAE,CAAA;AAEzF,MAAA,MAAM,WAAA,uBAAkB,IAAA,EAAK;AAC7B,MAAA,WAAA,CAAY,UAAA,CAAW,GAAG,CAAC,CAAA;AAC3B,MAAA,MAAM,aAAA,GAAgB,YAAY,WAAA,EAAY;AAE9C,MAAA,MAAM,uBAAA,GAA0B,mCAAA,CAAoC,GAAA,CAAI,MAAM,CAAA;AAC9E,MAAA,MAAM,MAAA,GAAS,uBAAA,GAA0B,aAAa,CAAA,IAAK,EAAE,QAAQ,CAAA,EAAG,OAAA,EAAS,CAAA,EAAG,OAAA,EAAS,CAAA,EAAE;AAC/F,MAAA,MAAA,CAAQ,EAAE,EAAA,EAAI,QAAA,EAAU,OAAA,EAAS,SAAA,EAAW,SAAS,SAAA,EAAU,CAAY,cAAA,CAAe,MAAM,CAAC,CAAA,EAAA;AAEjG,MAAA,IAAI,uBAAA,EAAyB;AAC3B,QAAA,uBAAA,CAAwB,aAAa,CAAA,GAAI,MAAA;AAAA,MAC3C,CAAA,MAAO;AACL,QAAA,WAAA,IAAe,KAAA,CAAM,IAAI,uCAAuC,CAAA;AAChE,QAAA,MAAM,kBAAA,GAAqB,EAAE,CAAC,aAAa,GAAG,MAAA,EAAO;AACrD,QAAA,mCAAA,CAAoC,GAAA,CAAI,QAAQ,kBAAkB,CAAA;AAElE,QAAA,MAAM,+BAA+B,MAAY;AAC/C,UAAA,YAAA,CAAa,OAAO,CAAA;AACpB,UAAA,yBAAA,EAA0B;AAC1B,UAAA,mCAAA,CAAoC,OAAO,MAAM,CAAA;AAEjD,UAAA,MAAM,gBAAA,GAAwC,MAAA,CAAO,OAAA,CAAQ,kBAAkB,CAAA,CAAE,GAAA;AAAA,YAC/E,CAAC,CAAC,SAAA,EAAW,KAAK,CAAA,MAAO;AAAA,cACvB,OAAA,EAAS,SAAA;AAAA,cACT,QAAQ,KAAA,CAAM,MAAA;AAAA,cACd,SAAS,KAAA,CAAM,OAAA;AAAA,cACf,SAAS,KAAA,CAAM;AAAA,aACjB;AAAA,WACF;AACA,UAAA,MAAA,CAAO,WAAA,CAAY,EAAE,UAAA,EAAY,gBAAA,EAAkB,CAAA;AAAA,QACrD,CAAA;AAEA,QAAA,MAAM,yBAAA,GAA4B,MAAA,CAAO,EAAA,CAAG,OAAA,EAAS,MAAM;AACzD,UAAA,WAAA,IAAe,KAAA,CAAM,IAAI,uDAAuD,CAAA;AAChF,UAAA,4BAAA,EAA6B;AAAA,QAC/B,CAAC,CAAA;AACD,QAAA,MAAM,OAAA,GAAU,WAAW,MAAM;AAC/B,UAAA,WAAA,IAAe,KAAA,CAAM,IAAI,4DAA4D,CAAA;AACrF,UAAA,4BAAA,EAA6B;AAAA,QAC/B,GAAG,sBAAsB,CAAA;AACzB,QAAA,SAAA,CAAU,OAAO,CAAA;AAAA,MACnB;AAAA,IACF;AAAA,EACF,CAAC,CAAA;AACH;;;;"}
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
import { HTTP_ON_SERVER_REQUEST } from './constants.js';
|
|
2
|
+
import { DEBUG_BUILD } from '../../debug-build.js';
|
|
3
|
+
import { debug } from '../../utils/debug-logger.js';
|
|
4
|
+
import { getIsolationScope, getClient, withIsolationScope, getCurrentScope } from '../../currentScopes.js';
|
|
5
|
+
import { hasSpansEnabled } from '../../utils/hasSpansEnabled.js';
|
|
6
|
+
import { httpHeadersToSpanAttributes, headersToDict, httpRequestToRequestData } from '../../utils/request.js';
|
|
7
|
+
import { patchRequestToCaptureBody } from './patch-request-to-capture-body.js';
|
|
8
|
+
import { stripUrlQueryAndFragment, parseStringToURLObject } from '../../utils/url.js';
|
|
9
|
+
import { recordRequestSession } from './record-request-session.js';
|
|
10
|
+
import { generateSpanId, generateTraceId } from '../../utils/propagationContext.js';
|
|
11
|
+
import { startSpanManual, continueTrace } from '../../tracing/trace.js';
|
|
12
|
+
import { safeMathRandom } from '../../utils/randomSafeContext.js';
|
|
13
|
+
import { SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP } from '../../semanticAttributes.js';
|
|
14
|
+
import { getSpanStatusFromHttpCode, SPAN_STATUS_ERROR } from '../../tracing/spanstatus.js';
|
|
15
|
+
|
|
16
|
+
const INTEGRATION_NAME = "Http.Server";
|
|
17
|
+
const SPANS_INTEGRATION_NAME = "Http.SentryServerSpans";
|
|
18
|
+
const lastSentryEmitMap = /* @__PURE__ */ new WeakMap();
|
|
19
|
+
const kRequestMark = /* @__PURE__ */ Symbol.for("sentry_http_server_instrumented");
|
|
20
|
+
function markRequest(request) {
|
|
21
|
+
return !request[kRequestMark] && (request[kRequestMark] = true);
|
|
22
|
+
}
|
|
23
|
+
function instrumentServer(options, server) {
|
|
24
|
+
const currentEmit = server.emit;
|
|
25
|
+
const instrumentedEmit = lastSentryEmitMap.get(server);
|
|
26
|
+
if (currentEmit === instrumentedEmit) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const newEmit = new Proxy(currentEmit, {
|
|
30
|
+
apply(target, thisArg, args) {
|
|
31
|
+
const [event, ...data] = args;
|
|
32
|
+
if (event !== "request") {
|
|
33
|
+
return target.apply(thisArg, args);
|
|
34
|
+
}
|
|
35
|
+
const client = getClient();
|
|
36
|
+
const [request, response] = data;
|
|
37
|
+
if (!client || !markRequest(request)) {
|
|
38
|
+
return target.apply(thisArg, args);
|
|
39
|
+
}
|
|
40
|
+
DEBUG_BUILD && debug.log(INTEGRATION_NAME, "Handling incoming request");
|
|
41
|
+
const isolationScope = getIsolationScope().clone();
|
|
42
|
+
isolationScope.setClient(client);
|
|
43
|
+
const ipAddress = request.socket?.remoteAddress;
|
|
44
|
+
const url = request.url || "/";
|
|
45
|
+
const normalizedRequest = httpRequestToRequestData(request);
|
|
46
|
+
const {
|
|
47
|
+
maxRequestBodySize = "medium",
|
|
48
|
+
ignoreRequestBody,
|
|
49
|
+
sessions = true,
|
|
50
|
+
sessionFlushingDelayMS = 6e4
|
|
51
|
+
} = options;
|
|
52
|
+
if (maxRequestBodySize !== "none" && !ignoreRequestBody?.(url, request)) {
|
|
53
|
+
patchRequestToCaptureBody(request, isolationScope, maxRequestBodySize, INTEGRATION_NAME);
|
|
54
|
+
}
|
|
55
|
+
isolationScope.setSDKProcessingMetadata({ normalizedRequest, ipAddress });
|
|
56
|
+
const httpMethod = (request.method || "GET").toUpperCase();
|
|
57
|
+
const httpTargetWithoutQueryFragment = stripUrlQueryAndFragment(url);
|
|
58
|
+
const bestEffortTransactionName = `${httpMethod} ${httpTargetWithoutQueryFragment}`;
|
|
59
|
+
isolationScope.setTransactionName(bestEffortTransactionName);
|
|
60
|
+
if (sessions) {
|
|
61
|
+
recordRequestSession(client, {
|
|
62
|
+
requestIsolationScope: isolationScope,
|
|
63
|
+
response,
|
|
64
|
+
sessionFlushingDelayMS: sessionFlushingDelayMS ?? 6e4
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
return withIsolationScope(isolationScope, () => {
|
|
68
|
+
const sentryTrace = normalizedRequest.headers?.["sentry-trace"];
|
|
69
|
+
const baggage = normalizedRequest.headers?.["baggage"];
|
|
70
|
+
const sentryTraceValue = Array.isArray(sentryTrace) ? sentryTrace[0] : sentryTrace;
|
|
71
|
+
return continueTrace(
|
|
72
|
+
{
|
|
73
|
+
sentryTrace: sentryTraceValue,
|
|
74
|
+
baggage: Array.isArray(baggage) ? baggage[0] : baggage
|
|
75
|
+
},
|
|
76
|
+
() => {
|
|
77
|
+
const propagationContext = getCurrentScope().getPropagationContext();
|
|
78
|
+
propagationContext.propagationSpanId = generateSpanId();
|
|
79
|
+
if (!sentryTraceValue) {
|
|
80
|
+
propagationContext.traceId = generateTraceId();
|
|
81
|
+
propagationContext.sampleRand = safeMathRandom();
|
|
82
|
+
}
|
|
83
|
+
response.once("close", () => {
|
|
84
|
+
isolationScope.setContext("response", {
|
|
85
|
+
status_code: response.statusCode
|
|
86
|
+
});
|
|
87
|
+
});
|
|
88
|
+
const wrap = options.wrapServerEmitRequest;
|
|
89
|
+
let emitResult = false;
|
|
90
|
+
if (wrap) {
|
|
91
|
+
wrap(request, response, normalizedRequest, () => {
|
|
92
|
+
emitResult = target.apply(thisArg, args);
|
|
93
|
+
});
|
|
94
|
+
} else {
|
|
95
|
+
emitResult = target.apply(thisArg, args);
|
|
96
|
+
}
|
|
97
|
+
return emitResult;
|
|
98
|
+
}
|
|
99
|
+
);
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
lastSentryEmitMap.set(server, newEmit);
|
|
104
|
+
server.emit = newEmit;
|
|
105
|
+
}
|
|
106
|
+
function getHttpServerSubscriptions(options) {
|
|
107
|
+
const userWrap = options.wrapServerEmitRequest;
|
|
108
|
+
const spanWrap = buildServerSpanWrap(options);
|
|
109
|
+
const effectiveOptions = {
|
|
110
|
+
...options,
|
|
111
|
+
wrapServerEmitRequest(request, response, normalizedRequest, next) {
|
|
112
|
+
const clientOptions = getClient()?.getOptions();
|
|
113
|
+
const createSpans = options.spans ?? (clientOptions ? hasSpansEnabled(clientOptions) : false);
|
|
114
|
+
if (createSpans) {
|
|
115
|
+
spanWrap(request, response, normalizedRequest, next);
|
|
116
|
+
} else if (userWrap) {
|
|
117
|
+
userWrap(request, response, normalizedRequest, next);
|
|
118
|
+
} else {
|
|
119
|
+
next();
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
const onHttpServerRequest = (data) => {
|
|
124
|
+
const { server } = data;
|
|
125
|
+
instrumentServer(effectiveOptions, server);
|
|
126
|
+
};
|
|
127
|
+
return { [HTTP_ON_SERVER_REQUEST]: onHttpServerRequest };
|
|
128
|
+
}
|
|
129
|
+
function buildServerSpanWrap(options) {
|
|
130
|
+
const {
|
|
131
|
+
wrapServerEmitRequest: userWrap,
|
|
132
|
+
ignoreIncomingRequests,
|
|
133
|
+
ignoreStaticAssets = true,
|
|
134
|
+
onSpanCreated,
|
|
135
|
+
errorMonitor = "error",
|
|
136
|
+
onSpanEnd
|
|
137
|
+
} = options;
|
|
138
|
+
return (request, response, normalizedRequest, next) => {
|
|
139
|
+
if (typeof __SENTRY_TRACING__ !== "undefined" && !__SENTRY_TRACING__) {
|
|
140
|
+
return next();
|
|
141
|
+
}
|
|
142
|
+
return userWrap ? userWrap(request, response, normalizedRequest, createSpan) : createSpan();
|
|
143
|
+
function createSpan() {
|
|
144
|
+
const isolationScope = getIsolationScope();
|
|
145
|
+
const client = isolationScope.getClient();
|
|
146
|
+
if (!client) {
|
|
147
|
+
return next();
|
|
148
|
+
}
|
|
149
|
+
if (shouldIgnoreSpansForIncomingRequest(request, {
|
|
150
|
+
ignoreStaticAssets,
|
|
151
|
+
ignoreIncomingRequests
|
|
152
|
+
})) {
|
|
153
|
+
DEBUG_BUILD && debug.log(SPANS_INTEGRATION_NAME, "Skipping span creation for incoming request", request.url);
|
|
154
|
+
return next();
|
|
155
|
+
}
|
|
156
|
+
const fullUrl = normalizedRequest.url || request.url || "/";
|
|
157
|
+
const urlObj = parseStringToURLObject(fullUrl);
|
|
158
|
+
const httpTargetWithoutQueryFragment = urlObj ? urlObj.pathname : stripUrlQueryAndFragment(fullUrl);
|
|
159
|
+
const method = (request.method || "GET").toUpperCase();
|
|
160
|
+
const name = `${method} ${httpTargetWithoutQueryFragment}`;
|
|
161
|
+
const headers = request.headers;
|
|
162
|
+
const userAgent = headers["user-agent"];
|
|
163
|
+
const ips = headers["x-forwarded-for"];
|
|
164
|
+
const httpVersion = request.httpVersion;
|
|
165
|
+
const host = headers.host;
|
|
166
|
+
const hostname = host?.replace(/^(.*)(:[0-9]{1,5})/, "$1") || "localhost";
|
|
167
|
+
const scheme = fullUrl.startsWith("https") ? "https" : "http";
|
|
168
|
+
const { socket } = request;
|
|
169
|
+
const { localAddress, localPort, remoteAddress, remotePort } = socket ?? {};
|
|
170
|
+
return startSpanManual(
|
|
171
|
+
{
|
|
172
|
+
name,
|
|
173
|
+
// SpanKind.SERVER = 1; pass this so the OTel sampler infers
|
|
174
|
+
// op='http.server' rather than 'http', which it does for
|
|
175
|
+
// SpanKind.INTERNAL = 0, the default
|
|
176
|
+
kind: 1,
|
|
177
|
+
attributes: {
|
|
178
|
+
// Sentry-specific attributes
|
|
179
|
+
[SEMANTIC_ATTRIBUTE_SENTRY_OP]: "http.server",
|
|
180
|
+
[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: "auto.http.server",
|
|
181
|
+
[SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: "url",
|
|
182
|
+
// Set http.route to the URL path as a best-effort route name.
|
|
183
|
+
// Framework integrations (Express, etc.) update this via onSpanEnd.
|
|
184
|
+
"http.route": httpTargetWithoutQueryFragment,
|
|
185
|
+
// OTel kind (explicit attribute so it appears in span data)
|
|
186
|
+
"otel.kind": "SERVER",
|
|
187
|
+
// Network attributes
|
|
188
|
+
"net.host.ip": localAddress,
|
|
189
|
+
"net.host.port": localPort,
|
|
190
|
+
"net.peer.ip": remoteAddress,
|
|
191
|
+
"net.peer.port": remotePort,
|
|
192
|
+
"sentry.http.prefetch": isKnownPrefetchRequest(request) || void 0,
|
|
193
|
+
// Old Semantic Conventions attributes for compatibility
|
|
194
|
+
"http.url": fullUrl,
|
|
195
|
+
"http.method": method,
|
|
196
|
+
"http.target": urlObj ? `${urlObj.pathname}${urlObj.search}` : httpTargetWithoutQueryFragment,
|
|
197
|
+
"http.host": host,
|
|
198
|
+
"net.host.name": hostname,
|
|
199
|
+
"http.client_ip": typeof ips === "string" ? ips.split(",")[0] : void 0,
|
|
200
|
+
"http.user_agent": userAgent,
|
|
201
|
+
"http.scheme": scheme,
|
|
202
|
+
"http.flavor": httpVersion,
|
|
203
|
+
"net.transport": httpVersion?.toUpperCase() === "QUIC" ? "ip_udp" : "ip_tcp",
|
|
204
|
+
...getRequestContentLengthAttribute(request),
|
|
205
|
+
...httpHeadersToSpanAttributes(
|
|
206
|
+
normalizedRequest.headers || {},
|
|
207
|
+
client.getOptions().sendDefaultPii ?? false
|
|
208
|
+
)
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
(span) => {
|
|
212
|
+
onSpanCreated?.(span, request, response);
|
|
213
|
+
let isEnded = false;
|
|
214
|
+
function endSpan(status) {
|
|
215
|
+
if (isEnded) {
|
|
216
|
+
return;
|
|
217
|
+
}
|
|
218
|
+
isEnded = true;
|
|
219
|
+
span.setAttributes({
|
|
220
|
+
"http.status_text": response.statusMessage?.toUpperCase(),
|
|
221
|
+
"http.response.status_code": response.statusCode,
|
|
222
|
+
"http.status_code": response.statusCode,
|
|
223
|
+
...httpHeadersToSpanAttributes(
|
|
224
|
+
headersToDict(response.headers),
|
|
225
|
+
client?.getOptions().sendDefaultPii ?? false,
|
|
226
|
+
"response"
|
|
227
|
+
)
|
|
228
|
+
});
|
|
229
|
+
span.setStatus(status);
|
|
230
|
+
onSpanEnd?.(span, request, response);
|
|
231
|
+
span.end();
|
|
232
|
+
}
|
|
233
|
+
response.once("close", () => {
|
|
234
|
+
endSpan(getSpanStatusFromHttpCode(response.statusCode));
|
|
235
|
+
});
|
|
236
|
+
response.once(errorMonitor, () => {
|
|
237
|
+
const httpStatus = getSpanStatusFromHttpCode(response.statusCode);
|
|
238
|
+
endSpan(httpStatus.code === SPAN_STATUS_ERROR ? httpStatus : { code: SPAN_STATUS_ERROR });
|
|
239
|
+
});
|
|
240
|
+
next();
|
|
241
|
+
}
|
|
242
|
+
);
|
|
243
|
+
}
|
|
244
|
+
};
|
|
245
|
+
}
|
|
246
|
+
function shouldIgnoreSpansForIncomingRequest(request, {
|
|
247
|
+
ignoreStaticAssets,
|
|
248
|
+
ignoreIncomingRequests
|
|
249
|
+
}) {
|
|
250
|
+
const urlPath = request.url;
|
|
251
|
+
const method = request.method?.toUpperCase();
|
|
252
|
+
if (method === "OPTIONS" || method === "HEAD" || !urlPath) {
|
|
253
|
+
return true;
|
|
254
|
+
}
|
|
255
|
+
if (ignoreStaticAssets && method === "GET" && isStaticAssetRequest(urlPath)) {
|
|
256
|
+
return true;
|
|
257
|
+
}
|
|
258
|
+
if (ignoreIncomingRequests?.(urlPath, request)) {
|
|
259
|
+
return true;
|
|
260
|
+
}
|
|
261
|
+
return false;
|
|
262
|
+
}
|
|
263
|
+
function isStaticAssetRequest(urlPath) {
|
|
264
|
+
const path = stripUrlQueryAndFragment(urlPath);
|
|
265
|
+
if (path.match(/\.(ico|png|jpg|jpeg|gif|svg|css|js|woff|woff2|ttf|eot|webp|avif)$/)) {
|
|
266
|
+
return true;
|
|
267
|
+
}
|
|
268
|
+
if (path.match(/^\/(robots\.txt|sitemap\.xml|manifest\.json|browserconfig\.xml)$/)) {
|
|
269
|
+
return true;
|
|
270
|
+
}
|
|
271
|
+
return false;
|
|
272
|
+
}
|
|
273
|
+
function isKnownPrefetchRequest(req) {
|
|
274
|
+
return req.headers["next-router-prefetch"] === "1";
|
|
275
|
+
}
|
|
276
|
+
function getRequestContentLengthAttribute(request) {
|
|
277
|
+
const { headers } = request;
|
|
278
|
+
const contentLengthHeader = headers["content-length"];
|
|
279
|
+
const length = contentLengthHeader ? parseInt(String(contentLengthHeader), 10) : -1;
|
|
280
|
+
const encoding = headers["content-encoding"];
|
|
281
|
+
return length >= 0 ? encoding && encoding !== "identity" ? { "http.request_content_length": length } : { "http.request_content_length_uncompressed": length } : {};
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
export { getHttpServerSubscriptions, instrumentServer, isStaticAssetRequest };
|
|
285
|
+
//# sourceMappingURL=server-subscription.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-subscription.js","sources":["../../../../src/integrations/http/server-subscription.ts"],"sourcesContent":["/**\n * Provide the `http.server.request.start` subscription function that we use\n * to instrument incoming HTTP requests that use the `node:http` module.\n *\n * On Node.js v18.7 and up, we can just assign the diagnostics channel\n * listener, and that's enough. But for older node versions, or other SSJS\n * platforms, we have to explicitly fire the provided method an a patched\n * Server.emit method.\n *\n * This decision is made in the relevant Node/Bun/Deno SDKs; core just\n * provides them with the methods to use.\n *\n * When `options.spans` is enabled (explicitly or via the client's tracing\n * config), this also creates server spans around the emitted `'request'`\n * event. The OTel-mode node integration creates spans through a different\n * code path and opts out via explicit `spans: false`.\n */\n\nimport type { ServerSubscriptionName } from './constants';\ntype ChannelListener = (message: unknown, name: string | symbol) => void;\nimport { HTTP_ON_SERVER_REQUEST } from './constants';\nimport type { HttpIncomingMessage, HttpInstrumentationOptions, HttpServer, HttpServerResponse } from './types';\nimport { DEBUG_BUILD } from '../../debug-build';\nimport { debug } from '../../utils/debug-logger';\nimport { getClient, getCurrentScope, getIsolationScope, withIsolationScope } from '../../currentScopes';\nimport { hasSpansEnabled } from '../../utils/hasSpansEnabled';\nimport { headersToDict, httpHeadersToSpanAttributes, httpRequestToRequestData } from '../../utils/request';\nimport { patchRequestToCaptureBody } from './patch-request-to-capture-body';\nimport { parseStringToURLObject, stripUrlQueryAndFragment } from '../../utils/url';\nimport { recordRequestSession } from './record-request-session';\nimport { generateSpanId, generateTraceId } from '../../utils/propagationContext';\nimport { continueTrace } from '../../tracing/trace';\nimport { getSpanStatusFromHttpCode, SPAN_STATUS_ERROR, startSpanManual } from '../../tracing';\nimport {\n SEMANTIC_ATTRIBUTE_SENTRY_OP,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n} from '../../semanticAttributes';\nimport { safeMathRandom } from '../../utils/randomSafeContext';\nimport type { SpanAttributes } from '../../types/span';\nimport type { SpanStatus } from '../../types/spanStatus';\n\n// Tree-shakable guard to remove all code related to tracing\ndeclare const __SENTRY_TRACING__: boolean;\n\nconst INTEGRATION_NAME = 'Http.Server';\nconst SPANS_INTEGRATION_NAME = 'Http.SentryServerSpans';\n\nexport type HttpServerSubscriptions = Record<ServerSubscriptionName, ChannelListener>;\n\n// Tracks the last Sentry-created emit wrapper for each server so we can detect\n// when user code has replaced server.emit (e.g. with a proxy of the original)\n// and re-wrap it to restore Sentry's instrumentation.\nconst lastSentryEmitMap = new WeakMap<HttpServer, HttpServer['emit']>();\n\nconst kRequestMark = Symbol.for('sentry_http_server_instrumented');\ntype MarkedRequest = HttpIncomingMessage & {\n [kRequestMark]?: boolean;\n};\n\n/** return true if it is NOT already marked */\nfunction markRequest(request: MarkedRequest): boolean {\n return !request[kRequestMark] && (request[kRequestMark] = true);\n}\n\nexport function instrumentServer(options: HttpInstrumentationOptions, server: HttpServer): void {\n // Use a proxy and a WeakSet of server objects here, rather than a\n // wrappedFunction, because NestJS has been observed to \"fork\" emit\n // methods, including copying properties, leading to false positives.\n // Furthermore, we mark the Request object so that if two copies of this\n // instrumentation both are run on forked emit() methods for the same\n // request, we still only ever create a single root span. Previously,\n // this was done with a flag on the OTEL context, but in this non-OTEL\n // version, we mark the Request itself with a non-enumerable prop instead.\n\n // oxlint-disable-next-line typescript/unbound-method -- `this` is forwarded via Proxy/target.apply below\n const currentEmit = server.emit;\n const instrumentedEmit = lastSentryEmitMap.get(server);\n\n // Skip re-wrapping only if already instrumented AND server.emit still points\n // to our wrapper. If user code replaced server.emit (e.g. with a proxy of the\n // original pre-Sentry emit), re-wrap so Sentry's instrumentation is restored.\n if (currentEmit === instrumentedEmit) {\n return;\n }\n\n const newEmit = new Proxy(currentEmit, {\n apply(target, thisArg, args: unknown[]) {\n const [event, ...data] = args;\n if (event !== 'request') {\n return target.apply(thisArg, args);\n }\n\n const client = getClient();\n const [request, response] = data as [HttpIncomingMessage, HttpServerResponse];\n\n if (!client || !markRequest(request)) {\n return target.apply(thisArg, args);\n }\n\n DEBUG_BUILD && debug.log(INTEGRATION_NAME, 'Handling incoming request');\n const isolationScope = getIsolationScope().clone();\n isolationScope.setClient(client);\n\n const ipAddress = request.socket?.remoteAddress;\n const url = request.url || '/';\n const normalizedRequest = httpRequestToRequestData(request);\n const {\n maxRequestBodySize = 'medium',\n ignoreRequestBody,\n sessions = true,\n sessionFlushingDelayMS = 60_000,\n } = options;\n\n if (maxRequestBodySize !== 'none' && !ignoreRequestBody?.(url, request)) {\n patchRequestToCaptureBody(request, isolationScope, maxRequestBodySize, INTEGRATION_NAME);\n }\n\n // Update the isolation scope, isolate this request\n isolationScope.setSDKProcessingMetadata({ normalizedRequest, ipAddress });\n\n // attempt to update the scope's `transactionName` based on the request\n // URL. Ideally, framework instrumentations coming after the\n // HttpInstrumentation update the transactionName once we get a\n // parameterized route.\n const httpMethod = (request.method || 'GET').toUpperCase();\n const httpTargetWithoutQueryFragment = stripUrlQueryAndFragment(url);\n\n const bestEffortTransactionName = `${httpMethod} ${httpTargetWithoutQueryFragment}`;\n\n isolationScope.setTransactionName(bestEffortTransactionName);\n\n if (sessions) {\n recordRequestSession(client, {\n requestIsolationScope: isolationScope,\n response,\n sessionFlushingDelayMS: sessionFlushingDelayMS ?? 60_000,\n });\n }\n\n return withIsolationScope(isolationScope, () => {\n const sentryTrace = normalizedRequest.headers?.['sentry-trace'];\n const baggage = normalizedRequest.headers?.['baggage'];\n const sentryTraceValue = Array.isArray(sentryTrace) ? sentryTrace[0] : sentryTrace;\n return continueTrace(\n {\n sentryTrace: sentryTraceValue,\n baggage: Array.isArray(baggage) ? baggage[0] : baggage,\n },\n () => {\n const propagationContext = getCurrentScope().getPropagationContext();\n // Set propagationSpanId after continueTrace because it calls\n // withScope + setPropagationContext internally, which would\n // overwrite any previously set value.\n propagationContext.propagationSpanId = generateSpanId();\n // In OTel mode, continueTrace does not generate a new traceId\n // when there is no incoming sentry-trace header. We generate one\n // explicitly here so each request gets a unique trace ID even when\n // tracing is disabled.\n if (!sentryTraceValue) {\n propagationContext.traceId = generateTraceId();\n propagationContext.sampleRand = safeMathRandom();\n }\n\n response.once('close', () => {\n isolationScope.setContext('response', {\n status_code: response.statusCode,\n });\n });\n\n const wrap = options.wrapServerEmitRequest;\n let emitResult: boolean = false;\n if (wrap) {\n wrap(request, response, normalizedRequest, () => {\n emitResult = target.apply(thisArg, args) as boolean;\n });\n } else {\n emitResult = target.apply(thisArg, args) as boolean;\n }\n return emitResult;\n },\n );\n });\n },\n });\n\n lastSentryEmitMap.set(server, newEmit);\n server.emit = newEmit;\n}\n\nexport function getHttpServerSubscriptions(options: HttpInstrumentationOptions): HttpServerSubscriptions {\n // The decision whether to create spans is evaluated per request (not once\n // here), so it stays responsive to client-state changes after setup. This\n // mirrors `getHttpClientSubscriptions`. Callers can force the no-span path\n // with explicit `spans: false` (the node OTel `httpServerIntegration` does\n // this because it creates spans through a separate code path).\n const userWrap = options.wrapServerEmitRequest;\n const spanWrap = buildServerSpanWrap(options);\n\n const effectiveOptions: HttpInstrumentationOptions = {\n ...options,\n wrapServerEmitRequest(request, response, normalizedRequest, next) {\n const clientOptions = getClient()?.getOptions();\n const createSpans = options.spans ?? (clientOptions ? hasSpansEnabled(clientOptions) : false);\n if (createSpans) {\n // spanWrap composes the user's wrap (outer) with span creation (inner).\n spanWrap(request, response, normalizedRequest, next);\n } else if (userWrap) {\n userWrap(request, response, normalizedRequest, next);\n } else {\n next();\n }\n },\n };\n\n const onHttpServerRequest: ChannelListener = (data: unknown): void => {\n const { server } = data as { server: HttpServer };\n instrumentServer(effectiveOptions, server);\n };\n\n return { [HTTP_ON_SERVER_REQUEST]: onHttpServerRequest };\n}\n\nfunction buildServerSpanWrap(\n options: HttpInstrumentationOptions,\n): NonNullable<HttpInstrumentationOptions['wrapServerEmitRequest']> {\n const {\n wrapServerEmitRequest: userWrap,\n ignoreIncomingRequests,\n ignoreStaticAssets = true,\n onSpanCreated,\n errorMonitor = 'error',\n onSpanEnd,\n } = options;\n\n return (request, response, normalizedRequest, next) => {\n if (typeof __SENTRY_TRACING__ !== 'undefined' && !__SENTRY_TRACING__) {\n return next();\n }\n\n // User wrap runs outside the span so it can set up context\n // (e.g. OTel propagation) before the span is created.\n return userWrap ? userWrap(request, response, normalizedRequest, createSpan) : createSpan();\n\n function createSpan(): unknown {\n const isolationScope = getIsolationScope();\n const client = isolationScope.getClient();\n if (!client) {\n return next();\n }\n\n if (\n shouldIgnoreSpansForIncomingRequest(request, {\n ignoreStaticAssets,\n ignoreIncomingRequests,\n })\n ) {\n DEBUG_BUILD && debug.log(SPANS_INTEGRATION_NAME, 'Skipping span creation for incoming request', request.url);\n return next();\n }\n\n const fullUrl = normalizedRequest.url || request.url || '/';\n const urlObj = parseStringToURLObject(fullUrl);\n const httpTargetWithoutQueryFragment = urlObj ? urlObj.pathname : stripUrlQueryAndFragment(fullUrl);\n const method = (request.method || 'GET').toUpperCase();\n const name = `${method} ${httpTargetWithoutQueryFragment}`;\n const headers = request.headers;\n const userAgent = headers['user-agent'];\n const ips = headers['x-forwarded-for'];\n const httpVersion = request.httpVersion;\n const host = headers.host as undefined | string;\n const hostname = host?.replace(/^(.*)(:[0-9]{1,5})/, '$1') || 'localhost';\n const scheme = fullUrl.startsWith('https') ? 'https' : 'http';\n const { socket } = request;\n const { localAddress, localPort, remoteAddress, remotePort } = socket ?? {};\n\n return startSpanManual(\n {\n name,\n // SpanKind.SERVER = 1; pass this so the OTel sampler infers\n // op='http.server' rather than 'http', which it does for\n // SpanKind.INTERNAL = 0, the default\n kind: 1,\n attributes: {\n // Sentry-specific attributes\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'http.server',\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.server',\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'url',\n // Set http.route to the URL path as a best-effort route name.\n // Framework integrations (Express, etc.) update this via onSpanEnd.\n 'http.route': httpTargetWithoutQueryFragment,\n // OTel kind (explicit attribute so it appears in span data)\n 'otel.kind': 'SERVER',\n // Network attributes\n 'net.host.ip': localAddress,\n 'net.host.port': localPort,\n 'net.peer.ip': remoteAddress,\n 'net.peer.port': remotePort,\n 'sentry.http.prefetch': isKnownPrefetchRequest(request) || undefined,\n // Old Semantic Conventions attributes for compatibility\n 'http.url': fullUrl,\n 'http.method': method,\n 'http.target': urlObj ? `${urlObj.pathname}${urlObj.search}` : httpTargetWithoutQueryFragment,\n 'http.host': host,\n 'net.host.name': hostname,\n 'http.client_ip': typeof ips === 'string' ? ips.split(',')[0] : undefined,\n 'http.user_agent': userAgent,\n 'http.scheme': scheme,\n 'http.flavor': httpVersion,\n 'net.transport': httpVersion?.toUpperCase() === 'QUIC' ? 'ip_udp' : 'ip_tcp',\n ...getRequestContentLengthAttribute(request),\n ...httpHeadersToSpanAttributes(\n normalizedRequest.headers || {},\n client.getOptions().sendDefaultPii ?? false,\n ),\n },\n },\n span => {\n onSpanCreated?.(span, request, response);\n // Ensure we only end the span once\n // E.g. error can be emitted before close is emitted\n let isEnded = false;\n\n function endSpan(status: SpanStatus): void {\n if (isEnded) {\n return;\n }\n\n isEnded = true;\n // set attributes that come from the response\n span.setAttributes({\n 'http.status_text': response.statusMessage?.toUpperCase(),\n 'http.response.status_code': response.statusCode,\n 'http.status_code': response.statusCode,\n ...httpHeadersToSpanAttributes(\n headersToDict(response.headers),\n client?.getOptions().sendDefaultPii ?? false,\n 'response',\n ),\n });\n span.setStatus(status);\n onSpanEnd?.(span, request, response);\n span.end();\n }\n\n response.once('close', () => {\n endSpan(getSpanStatusFromHttpCode(response.statusCode));\n });\n\n response.once(errorMonitor, () => {\n const httpStatus = getSpanStatusFromHttpCode(response.statusCode);\n // Ensure we def. have an error status here\n endSpan(httpStatus.code === SPAN_STATUS_ERROR ? httpStatus : { code: SPAN_STATUS_ERROR });\n });\n\n // Continue handling the request inside the active span context\n next();\n },\n );\n }\n };\n}\n\nfunction shouldIgnoreSpansForIncomingRequest(\n request: HttpIncomingMessage,\n {\n ignoreStaticAssets,\n ignoreIncomingRequests,\n }: {\n ignoreStaticAssets?: boolean;\n ignoreIncomingRequests?: (urlPath: string, request: HttpIncomingMessage) => boolean;\n },\n): boolean {\n // request.url is the only property that holds any information about the url\n // it only consists of the URL path and query string (if any)\n const urlPath = request.url;\n\n const method = request.method?.toUpperCase();\n // We do not capture OPTIONS/HEAD requests as spans\n if (method === 'OPTIONS' || method === 'HEAD' || !urlPath) {\n return true;\n }\n\n // Default static asset filtering\n if (ignoreStaticAssets && method === 'GET' && isStaticAssetRequest(urlPath)) {\n return true;\n }\n\n if (ignoreIncomingRequests?.(urlPath, request)) {\n return true;\n }\n\n return false;\n}\n\nexport function isStaticAssetRequest(urlPath: string): boolean {\n const path = stripUrlQueryAndFragment(urlPath);\n // Common static file extensions\n if (path.match(/\\.(ico|png|jpg|jpeg|gif|svg|css|js|woff|woff2|ttf|eot|webp|avif)$/)) {\n return true;\n }\n\n // Common metadata files\n if (path.match(/^\\/(robots\\.txt|sitemap\\.xml|manifest\\.json|browserconfig\\.xml)$/)) {\n return true;\n }\n\n return false;\n}\n\nfunction isKnownPrefetchRequest(req: HttpIncomingMessage): boolean {\n // Currently only handles Next.js prefetch requests but may check other frameworks in the future.\n return req.headers['next-router-prefetch'] === '1';\n}\n\nfunction getRequestContentLengthAttribute(request: HttpIncomingMessage): SpanAttributes {\n const { headers } = request;\n const contentLengthHeader = headers['content-length'];\n const length = contentLengthHeader ? parseInt(String(contentLengthHeader), 10) : -1;\n const encoding = headers['content-encoding'];\n return length >= 0\n ? encoding && encoding !== 'identity'\n ? { 'http.request_content_length': length }\n : { 'http.request_content_length_uncompressed': length }\n : {};\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -2,25 +2,20 @@ import { defineIntegration } from '../integration.js';
|
|
|
2
2
|
import { applyAggregateErrorsToEvent } from '../utils/aggregate-errors.js';
|
|
3
3
|
import { exceptionFromError } from '../utils/eventbuilder.js';
|
|
4
4
|
|
|
5
|
-
const DEFAULT_KEY =
|
|
5
|
+
const DEFAULT_KEY = "cause";
|
|
6
6
|
const DEFAULT_LIMIT = 5;
|
|
7
|
-
|
|
8
|
-
const INTEGRATION_NAME = 'LinkedErrors';
|
|
9
|
-
|
|
7
|
+
const INTEGRATION_NAME = "LinkedErrors";
|
|
10
8
|
const _linkedErrorsIntegration = ((options = {}) => {
|
|
11
9
|
const limit = options.limit || DEFAULT_LIMIT;
|
|
12
10
|
const key = options.key || DEFAULT_KEY;
|
|
13
|
-
|
|
14
11
|
return {
|
|
15
12
|
name: INTEGRATION_NAME,
|
|
16
13
|
preprocessEvent(event, hint, client) {
|
|
17
|
-
const
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
},
|
|
14
|
+
const options2 = client.getOptions();
|
|
15
|
+
applyAggregateErrorsToEvent(exceptionFromError, options2.stackParser, key, limit, event, hint);
|
|
16
|
+
}
|
|
21
17
|
};
|
|
22
|
-
})
|
|
23
|
-
|
|
18
|
+
});
|
|
24
19
|
const linkedErrorsIntegration = defineIntegration(_linkedErrorsIntegration);
|
|
25
20
|
|
|
26
21
|
export { linkedErrorsIntegration };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"linkederrors.js","sources":["../../../src/integrations/linkederrors.ts"],"sourcesContent":["import { defineIntegration } from '../integration';\nimport type { IntegrationFn } from '../types
|
|
1
|
+
{"version":3,"file":"linkederrors.js","sources":["../../../src/integrations/linkederrors.ts"],"sourcesContent":["import { defineIntegration } from '../integration';\nimport type { IntegrationFn } from '../types/integration';\nimport { applyAggregateErrorsToEvent } from '../utils/aggregate-errors';\nimport { exceptionFromError } from '../utils/eventbuilder';\n\ninterface LinkedErrorsOptions {\n key?: string;\n limit?: number;\n}\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\nconst INTEGRATION_NAME = 'LinkedErrors';\n\nconst _linkedErrorsIntegration = ((options: LinkedErrorsOptions = {}) => {\n const limit = options.limit || DEFAULT_LIMIT;\n const key = options.key || DEFAULT_KEY;\n\n return {\n name: INTEGRATION_NAME,\n preprocessEvent(event, hint, client) {\n const options = client.getOptions();\n\n applyAggregateErrorsToEvent(exceptionFromError, options.stackParser, key, limit, event, hint);\n },\n };\n}) satisfies IntegrationFn;\n\nexport const linkedErrorsIntegration = defineIntegration(_linkedErrorsIntegration);\n"],"names":["options"],"mappings":";;;;AAUA,MAAM,WAAA,GAAc,OAAA;AACpB,MAAM,aAAA,GAAgB,CAAA;AAEtB,MAAM,gBAAA,GAAmB,cAAA;AAEzB,MAAM,wBAAA,IAA4B,CAAC,OAAA,GAA+B,EAAC,KAAM;AACvE,EAAA,MAAM,KAAA,GAAQ,QAAQ,KAAA,IAAS,aAAA;AAC/B,EAAA,MAAM,GAAA,GAAM,QAAQ,GAAA,IAAO,WAAA;AAE3B,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,gBAAA;AAAA,IACN,eAAA,CAAgB,KAAA,EAAO,IAAA,EAAM,MAAA,EAAQ;AACnC,MAAA,MAAMA,QAAAA,GAAU,OAAO,UAAA,EAAW;AAElC,MAAA,2BAAA,CAA4B,oBAAoBA,QAAAA,CAAQ,WAAA,EAAa,GAAA,EAAK,KAAA,EAAO,OAAO,IAAI,CAAA;AAAA,IAC9F;AAAA,GACF;AACF,CAAA,CAAA;AAEO,MAAM,uBAAA,GAA0B,kBAAkB,wBAAwB;;;;"}
|