@sentry/node 10.65.0 → 10.67.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/index.js +30 -27
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/integrations/tracing/dataloader/index.js +7 -2
- package/build/cjs/integrations/tracing/dataloader/index.js.map +1 -1
- package/build/cjs/integrations/tracing/graphql/vendored/utils.js +4 -2
- package/build/cjs/integrations/tracing/graphql/vendored/utils.js.map +1 -1
- package/build/cjs/integrations/tracing/index.js +2 -2
- package/build/cjs/integrations/tracing/index.js.map +1 -1
- package/build/cjs/integrations/tracing/knex/index.js +6 -1
- package/build/cjs/integrations/tracing/knex/index.js.map +1 -1
- package/build/cjs/integrations/tracing/koa/vendored/utils.js +4 -1
- package/build/cjs/integrations/tracing/koa/vendored/utils.js.map +1 -1
- package/build/cjs/integrations/tracing/mongo/vendored/patches.js +8 -9
- package/build/cjs/integrations/tracing/mongo/vendored/patches.js.map +1 -1
- package/build/cjs/integrations/tracing/mongo/vendored/utils.js +5 -118
- package/build/cjs/integrations/tracing/mongo/vendored/utils.js.map +1 -1
- package/build/cjs/integrations/tracing/mongoose/vendored/mongoose.js +33 -23
- package/build/cjs/integrations/tracing/mongoose/vendored/mongoose.js.map +1 -1
- package/build/cjs/integrations/tracing/mongoose/vendored/utils.js +0 -16
- package/build/cjs/integrations/tracing/mongoose/vendored/utils.js.map +1 -1
- package/build/cjs/sdk/experimentalUseDiagnosticsChannelInjection.js +2 -2
- package/build/cjs/sdk/experimentalUseDiagnosticsChannelInjection.js.map +1 -1
- package/build/cjs/sdk/index.js +13 -3
- package/build/cjs/sdk/index.js.map +1 -1
- package/build/cjs/sdk/initOtel.js +26 -2
- package/build/cjs/sdk/initOtel.js.map +1 -1
- package/build/esm/index.js +3 -2
- package/build/esm/index.js.map +1 -1
- package/build/esm/integrations/tracing/dataloader/index.js +7 -2
- package/build/esm/integrations/tracing/dataloader/index.js.map +1 -1
- package/build/esm/integrations/tracing/graphql/vendored/utils.js +5 -3
- package/build/esm/integrations/tracing/graphql/vendored/utils.js.map +1 -1
- package/build/esm/integrations/tracing/index.js +1 -1
- package/build/esm/integrations/tracing/index.js.map +1 -1
- package/build/esm/integrations/tracing/knex/index.js +6 -1
- package/build/esm/integrations/tracing/knex/index.js.map +1 -1
- package/build/esm/integrations/tracing/koa/vendored/utils.js +5 -2
- package/build/esm/integrations/tracing/koa/vendored/utils.js.map +1 -1
- package/build/esm/integrations/tracing/mongo/vendored/patches.js +3 -4
- package/build/esm/integrations/tracing/mongo/vendored/patches.js.map +1 -1
- package/build/esm/integrations/tracing/mongo/vendored/utils.js +6 -118
- package/build/esm/integrations/tracing/mongo/vendored/utils.js.map +1 -1
- package/build/esm/integrations/tracing/mongoose/vendored/mongoose.js +35 -25
- package/build/esm/integrations/tracing/mongoose/vendored/mongoose.js.map +1 -1
- package/build/esm/integrations/tracing/mongoose/vendored/utils.js +1 -16
- package/build/esm/integrations/tracing/mongoose/vendored/utils.js.map +1 -1
- package/build/esm/package.json +1 -1
- package/build/esm/sdk/experimentalUseDiagnosticsChannelInjection.js +2 -2
- package/build/esm/sdk/experimentalUseDiagnosticsChannelInjection.js.map +1 -1
- package/build/esm/sdk/index.js +13 -4
- package/build/esm/sdk/index.js.map +1 -1
- package/build/esm/sdk/initOtel.js +27 -3
- package/build/esm/sdk/initOtel.js.map +1 -1
- package/build/types/index.d.ts +3 -2
- package/build/types/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/dataloader/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/graphql/vendored/utils.d.ts.map +1 -1
- package/build/types/integrations/tracing/knex/index.d.ts.map +1 -1
- package/build/types/integrations/tracing/koa/vendored/utils.d.ts.map +1 -1
- package/build/types/integrations/tracing/mongo/vendored/patches.d.ts.map +1 -1
- package/build/types/integrations/tracing/mongo/vendored/utils.d.ts +6 -15
- package/build/types/integrations/tracing/mongo/vendored/utils.d.ts.map +1 -1
- package/build/types/integrations/tracing/mongoose/vendored/mongoose.d.ts +0 -1
- package/build/types/integrations/tracing/mongoose/vendored/mongoose.d.ts.map +1 -1
- package/build/types/integrations/tracing/mongoose/vendored/utils.d.ts +1 -3
- package/build/types/integrations/tracing/mongoose/vendored/utils.d.ts.map +1 -1
- package/build/types/sdk/experimentalUseDiagnosticsChannelInjection.d.ts +2 -1
- package/build/types/sdk/experimentalUseDiagnosticsChannelInjection.d.ts.map +1 -1
- package/build/types/sdk/index.d.ts +18 -0
- package/build/types/sdk/index.d.ts.map +1 -1
- package/build/types/sdk/initOtel.d.ts.map +1 -1
- package/build/types-ts3.8/index.d.ts +3 -2
- package/build/types-ts3.8/integrations/tracing/mongo/vendored/utils.d.ts +6 -15
- package/build/types-ts3.8/integrations/tracing/mongoose/vendored/mongoose.d.ts +0 -1
- package/build/types-ts3.8/integrations/tracing/mongoose/vendored/utils.d.ts +1 -3
- package/build/types-ts3.8/sdk/experimentalUseDiagnosticsChannelInjection.d.ts +2 -1
- package/build/types-ts3.8/sdk/index.d.ts +18 -0
- package/package.json +6 -6
- package/build/cjs/integrations/tracing/mongo/vendored/internal-types.js +0 -14
- package/build/cjs/integrations/tracing/mongo/vendored/internal-types.js.map +0 -1
- package/build/cjs/integrations/tracing/mongo/vendored/semconv.js +0 -10
- package/build/cjs/integrations/tracing/mongo/vendored/semconv.js.map +0 -1
- package/build/cjs/integrations/tracing/mongoose/vendored/semconv.js +0 -6
- package/build/cjs/integrations/tracing/mongoose/vendored/semconv.js.map +0 -1
- package/build/cjs/integrations/tracing/prisma/index.js +0 -109
- package/build/cjs/integrations/tracing/prisma/index.js.map +0 -1
- package/build/cjs/integrations/tracing/prisma/vendored/active-tracing-helper.js +0 -145
- package/build/cjs/integrations/tracing/prisma/vendored/active-tracing-helper.js.map +0 -1
- package/build/cjs/integrations/tracing/prisma/vendored/constants.js +0 -14
- package/build/cjs/integrations/tracing/prisma/vendored/constants.js.map +0 -1
- package/build/cjs/integrations/tracing/prisma/vendored/global.js +0 -28
- package/build/cjs/integrations/tracing/prisma/vendored/global.js.map +0 -1
- package/build/cjs/integrations/tracing/prisma/vendored/instrumentation.js +0 -33
- package/build/cjs/integrations/tracing/prisma/vendored/instrumentation.js.map +0 -1
- package/build/esm/integrations/tracing/mongo/vendored/internal-types.js +0 -12
- package/build/esm/integrations/tracing/mongo/vendored/internal-types.js.map +0 -1
- package/build/esm/integrations/tracing/mongo/vendored/semconv.js +0 -6
- package/build/esm/integrations/tracing/mongo/vendored/semconv.js.map +0 -1
- package/build/esm/integrations/tracing/mongoose/vendored/semconv.js +0 -4
- package/build/esm/integrations/tracing/mongoose/vendored/semconv.js.map +0 -1
- package/build/esm/integrations/tracing/prisma/index.js +0 -106
- package/build/esm/integrations/tracing/prisma/index.js.map +0 -1
- package/build/esm/integrations/tracing/prisma/vendored/active-tracing-helper.js +0 -143
- package/build/esm/integrations/tracing/prisma/vendored/active-tracing-helper.js.map +0 -1
- package/build/esm/integrations/tracing/prisma/vendored/constants.js +0 -9
- package/build/esm/integrations/tracing/prisma/vendored/constants.js.map +0 -1
- package/build/esm/integrations/tracing/prisma/vendored/global.js +0 -24
- package/build/esm/integrations/tracing/prisma/vendored/global.js.map +0 -1
- package/build/esm/integrations/tracing/prisma/vendored/instrumentation.js +0 -31
- package/build/esm/integrations/tracing/prisma/vendored/instrumentation.js.map +0 -1
- package/build/types/integrations/tracing/mongo/vendored/semconv.d.ts +0 -17
- package/build/types/integrations/tracing/mongo/vendored/semconv.d.ts.map +0 -1
- package/build/types/integrations/tracing/mongoose/vendored/semconv.d.ts +0 -9
- package/build/types/integrations/tracing/mongoose/vendored/semconv.d.ts.map +0 -1
- package/build/types/integrations/tracing/prisma/index.d.ts +0 -34
- package/build/types/integrations/tracing/prisma/index.d.ts.map +0 -1
- package/build/types/integrations/tracing/prisma/vendored/active-tracing-helper.d.ts +0 -16
- package/build/types/integrations/tracing/prisma/vendored/active-tracing-helper.d.ts.map +0 -1
- package/build/types/integrations/tracing/prisma/vendored/constants.d.ts +0 -5
- package/build/types/integrations/tracing/prisma/vendored/constants.d.ts.map +0 -1
- package/build/types/integrations/tracing/prisma/vendored/global.d.ts +0 -5
- package/build/types/integrations/tracing/prisma/vendored/global.d.ts.map +0 -1
- package/build/types/integrations/tracing/prisma/vendored/instrumentation.d.ts +0 -15
- package/build/types/integrations/tracing/prisma/vendored/instrumentation.d.ts.map +0 -1
- package/build/types/integrations/tracing/prisma/vendored/types.d.ts +0 -34
- package/build/types/integrations/tracing/prisma/vendored/types.d.ts.map +0 -1
- package/build/types/integrations/tracing/prisma/vendored/v5-tracing-helper.d.ts +0 -38
- package/build/types/integrations/tracing/prisma/vendored/v5-tracing-helper.d.ts.map +0 -1
- package/build/types/integrations/tracing/prisma/vendored/v6-tracing-helper.d.ts +0 -31
- package/build/types/integrations/tracing/prisma/vendored/v6-tracing-helper.d.ts.map +0 -1
- package/build/types-ts3.8/integrations/tracing/mongo/vendored/semconv.d.ts +0 -17
- package/build/types-ts3.8/integrations/tracing/mongoose/vendored/semconv.d.ts +0 -9
- package/build/types-ts3.8/integrations/tracing/prisma/index.d.ts +0 -34
- package/build/types-ts3.8/integrations/tracing/prisma/vendored/active-tracing-helper.d.ts +0 -16
- package/build/types-ts3.8/integrations/tracing/prisma/vendored/constants.d.ts +0 -5
- package/build/types-ts3.8/integrations/tracing/prisma/vendored/global.d.ts +0 -5
- package/build/types-ts3.8/integrations/tracing/prisma/vendored/instrumentation.d.ts +0 -15
- package/build/types-ts3.8/integrations/tracing/prisma/vendored/types.d.ts +0 -37
- package/build/types-ts3.8/integrations/tracing/prisma/vendored/v5-tracing-helper.d.ts +0 -44
- package/build/types-ts3.8/integrations/tracing/prisma/vendored/v6-tracing-helper.d.ts +0 -34
package/build/cjs/index.js
CHANGED
|
@@ -2,9 +2,9 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
2
2
|
|
|
3
3
|
const http = require('./integrations/http.js');
|
|
4
4
|
const nodeFetch = require('./integrations/node-fetch.js');
|
|
5
|
-
const index$
|
|
5
|
+
const index$6 = require('./integrations/fs/index.js');
|
|
6
6
|
const express = require('./integrations/tracing/express.js');
|
|
7
|
-
const index$
|
|
7
|
+
const index$5 = require('./integrations/tracing/fastify/index.js');
|
|
8
8
|
const index$a = require('./integrations/tracing/graphql/index.js');
|
|
9
9
|
const index$d = require('./integrations/tracing/kafka/index.js');
|
|
10
10
|
const index$i = require('./integrations/tracing/lrumemoizer/index.js');
|
|
@@ -12,20 +12,20 @@ const index$j = require('./integrations/tracing/mongo/index.js');
|
|
|
12
12
|
const index$k = require('./integrations/tracing/mongoose/index.js');
|
|
13
13
|
const index$m = require('./integrations/tracing/mysql/index.js');
|
|
14
14
|
const index$l = require('./integrations/tracing/mysql2/index.js');
|
|
15
|
-
const index$
|
|
15
|
+
const index$p = require('./integrations/tracing/redis/index.js');
|
|
16
16
|
const index$o = require('./integrations/tracing/postgres/index.js');
|
|
17
17
|
const postgresjs = require('./integrations/tracing/postgresjs.js');
|
|
18
|
-
const
|
|
18
|
+
const serverUtils = require('@sentry/server-utils');
|
|
19
19
|
const index$b = require('./integrations/tracing/hapi/index.js');
|
|
20
20
|
const index$c = require('./integrations/tracing/hono/index.js');
|
|
21
21
|
const index$f = require('./integrations/tracing/koa/index.js');
|
|
22
|
-
const index$
|
|
22
|
+
const index$3 = require('./integrations/tracing/connect/index.js');
|
|
23
23
|
const index$e = require('./integrations/tracing/knex/index.js');
|
|
24
|
-
const index$
|
|
25
|
-
const index$
|
|
26
|
-
const index$
|
|
24
|
+
const index$q = require('./integrations/tracing/tedious/index.js');
|
|
25
|
+
const index$7 = require('./integrations/tracing/genericPool/index.js');
|
|
26
|
+
const index$4 = require('./integrations/tracing/dataloader/index.js');
|
|
27
27
|
const index = require('./integrations/tracing/amqplib/index.js');
|
|
28
|
-
const index$
|
|
28
|
+
const index$r = require('./integrations/tracing/vercelai/index.js');
|
|
29
29
|
const index$n = require('./integrations/tracing/openai/index.js');
|
|
30
30
|
const index$1 = require('./integrations/tracing/anthropic-ai/index.js');
|
|
31
31
|
const index$9 = require('./integrations/tracing/google-genai/index.js');
|
|
@@ -37,10 +37,11 @@ const statsig = require('./integrations/featureFlagShims/statsig.js');
|
|
|
37
37
|
const unleash = require('./integrations/featureFlagShims/unleash.js');
|
|
38
38
|
const growthbook = require('./integrations/featureFlagShims/growthbook.js');
|
|
39
39
|
const firebase = require('./integrations/tracing/firebase/firebase.js');
|
|
40
|
-
const index$
|
|
40
|
+
const index$2 = require('./sdk/index.js');
|
|
41
41
|
const experimentalUseDiagnosticsChannelInjection = require('./sdk/experimentalUseDiagnosticsChannelInjection.js');
|
|
42
|
+
const diagnosticsChannelInjection = require('./sdk/diagnosticsChannelInjection.js');
|
|
42
43
|
const initOtel = require('./sdk/initOtel.js');
|
|
43
|
-
const index$
|
|
44
|
+
const index$8 = require('./integrations/tracing/index.js');
|
|
44
45
|
const opentelemetry = require('@sentry/opentelemetry');
|
|
45
46
|
const core = require('@sentry/core');
|
|
46
47
|
const nodeCore = require('@sentry/node-core');
|
|
@@ -49,11 +50,11 @@ const nodeCore = require('@sentry/node-core');
|
|
|
49
50
|
|
|
50
51
|
exports.httpIntegration = http.httpIntegration;
|
|
51
52
|
exports.nativeNodeFetchIntegration = nodeFetch.nativeNodeFetchIntegration;
|
|
52
|
-
exports.fsIntegration = index$
|
|
53
|
+
exports.fsIntegration = index$6.fsIntegration;
|
|
53
54
|
exports.expressIntegration = express.expressIntegration;
|
|
54
55
|
exports.setupExpressErrorHandler = express.setupExpressErrorHandler;
|
|
55
|
-
exports.fastifyIntegration = index$
|
|
56
|
-
exports.setupFastifyErrorHandler = index$
|
|
56
|
+
exports.fastifyIntegration = index$5.fastifyIntegration;
|
|
57
|
+
exports.setupFastifyErrorHandler = index$5.setupFastifyErrorHandler;
|
|
57
58
|
exports.graphqlIntegration = index$a.graphqlIntegration;
|
|
58
59
|
exports.kafkaIntegration = index$d.kafkaIntegration;
|
|
59
60
|
exports.lruMemoizerIntegration = index$i.lruMemoizerIntegration;
|
|
@@ -61,24 +62,24 @@ exports.mongoIntegration = index$j.mongoIntegration;
|
|
|
61
62
|
exports.mongooseIntegration = index$k.mongooseIntegration;
|
|
62
63
|
exports.mysqlIntegration = index$m.mysqlIntegration;
|
|
63
64
|
exports.mysql2Integration = index$l.mysql2Integration;
|
|
64
|
-
exports.redisIntegration = index$
|
|
65
|
+
exports.redisIntegration = index$p.redisIntegration;
|
|
65
66
|
exports.postgresIntegration = index$o.postgresIntegration;
|
|
66
67
|
exports.postgresJsIntegration = postgresjs.postgresJsIntegration;
|
|
67
|
-
exports.prismaIntegration =
|
|
68
|
+
exports.prismaIntegration = serverUtils.prismaIntegration;
|
|
68
69
|
exports.hapiIntegration = index$b.hapiIntegration;
|
|
69
70
|
exports.setupHapiErrorHandler = index$b.setupHapiErrorHandler;
|
|
70
71
|
exports.honoIntegration = index$c.honoIntegration;
|
|
71
72
|
exports.setupHonoErrorHandler = index$c.setupHonoErrorHandler;
|
|
72
73
|
exports.koaIntegration = index$f.koaIntegration;
|
|
73
74
|
exports.setupKoaErrorHandler = index$f.setupKoaErrorHandler;
|
|
74
|
-
exports.connectIntegration = index$
|
|
75
|
-
exports.setupConnectErrorHandler = index$
|
|
75
|
+
exports.connectIntegration = index$3.connectIntegration;
|
|
76
|
+
exports.setupConnectErrorHandler = index$3.setupConnectErrorHandler;
|
|
76
77
|
exports.knexIntegration = index$e.knexIntegration;
|
|
77
|
-
exports.tediousIntegration = index$
|
|
78
|
-
exports.genericPoolIntegration = index$
|
|
79
|
-
exports.dataloaderIntegration = index$
|
|
78
|
+
exports.tediousIntegration = index$q.tediousIntegration;
|
|
79
|
+
exports.genericPoolIntegration = index$7.genericPoolIntegration;
|
|
80
|
+
exports.dataloaderIntegration = index$4.dataloaderIntegration;
|
|
80
81
|
exports.amqplibIntegration = index.amqplibIntegration;
|
|
81
|
-
exports.vercelAIIntegration = index$
|
|
82
|
+
exports.vercelAIIntegration = index$r.vercelAIIntegration;
|
|
82
83
|
exports.openAIIntegration = index$n.openAIIntegration;
|
|
83
84
|
exports.anthropicAIIntegration = index$1.anthropicAIIntegration;
|
|
84
85
|
exports.googleGenAIIntegration = index$9.googleGenAIIntegration;
|
|
@@ -92,15 +93,17 @@ exports.statsigIntegration = statsig.statsigIntegrationShim;
|
|
|
92
93
|
exports.unleashIntegration = unleash.unleashIntegrationShim;
|
|
93
94
|
exports.growthbookIntegration = growthbook.growthbookIntegrationShim;
|
|
94
95
|
exports.firebaseIntegration = firebase.firebaseIntegration;
|
|
95
|
-
exports.
|
|
96
|
-
exports.
|
|
97
|
-
exports.
|
|
98
|
-
exports.
|
|
96
|
+
exports.applyDiagnosticsChannelInjectionIntegrations = index$2.applyDiagnosticsChannelInjectionIntegrations;
|
|
97
|
+
exports.getDefaultIntegrations = index$2.getDefaultIntegrations;
|
|
98
|
+
exports.getDefaultIntegrationsWithoutPerformance = index$2.getDefaultIntegrationsWithoutPerformance;
|
|
99
|
+
exports.init = index$2.init;
|
|
100
|
+
exports.initWithoutDefaultIntegrations = index$2.initWithoutDefaultIntegrations;
|
|
99
101
|
exports.diagnosticsChannelInjectionIntegrations = experimentalUseDiagnosticsChannelInjection.diagnosticsChannelInjectionIntegrations;
|
|
100
102
|
exports.experimentalUseDiagnosticsChannelInjection = experimentalUseDiagnosticsChannelInjection.experimentalUseDiagnosticsChannelInjection;
|
|
103
|
+
exports.isDiagnosticsChannelInjectionEnabled = diagnosticsChannelInjection.isDiagnosticsChannelInjectionEnabled;
|
|
101
104
|
exports.initOpenTelemetry = initOtel.initOpenTelemetry;
|
|
102
105
|
exports.preloadOpenTelemetry = initOtel.preloadOpenTelemetry;
|
|
103
|
-
exports.getAutoPerformanceIntegrations = index$
|
|
106
|
+
exports.getAutoPerformanceIntegrations = index$8.getAutoPerformanceIntegrations;
|
|
104
107
|
exports.setNodeAsyncContextStrategy = opentelemetry.setOpenTelemetryContextAsyncContextStrategy;
|
|
105
108
|
exports.SDK_VERSION = core.SDK_VERSION;
|
|
106
109
|
exports.SEMANTIC_ATTRIBUTE_SENTRY_OP = core.SEMANTIC_ATTRIBUTE_SENTRY_OP;
|
package/build/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
2
|
|
|
3
|
-
const instrumentation = require('./vendored/instrumentation.js');
|
|
4
3
|
const core = require('@sentry/core');
|
|
5
4
|
const nodeCore = require('@sentry/node-core');
|
|
5
|
+
const orchestrion = require('@sentry/server-utils/orchestrion');
|
|
6
|
+
const instrumentation = require('./vendored/instrumentation.js');
|
|
6
7
|
|
|
7
8
|
const INTEGRATION_NAME = "Dataloader";
|
|
8
9
|
const instrumentDataloader = nodeCore.generateInstrumentOnce(INTEGRATION_NAME, () => new instrumentation.DataloaderInstrumentation());
|
|
@@ -10,7 +11,11 @@ const _dataloaderIntegration = (() => {
|
|
|
10
11
|
return {
|
|
11
12
|
name: INTEGRATION_NAME,
|
|
12
13
|
setupOnce() {
|
|
13
|
-
|
|
14
|
+
if (orchestrion.isOrchestrionInjected()) {
|
|
15
|
+
orchestrion.dataloaderChannelIntegration().setupOnce?.();
|
|
16
|
+
} else {
|
|
17
|
+
instrumentDataloader();
|
|
18
|
+
}
|
|
14
19
|
}
|
|
15
20
|
};
|
|
16
21
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/integrations/tracing/dataloader/index.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/integrations/tracing/dataloader/index.ts"],"sourcesContent":["import type { IntegrationFn } from '@sentry/core';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { dataloaderChannelIntegration, isOrchestrionInjected } from '@sentry/server-utils/orchestrion';\nimport { DataloaderInstrumentation } from './vendored/instrumentation';\n\nconst INTEGRATION_NAME = 'Dataloader' as const;\n\nexport const instrumentDataloader = generateInstrumentOnce(INTEGRATION_NAME, () => new DataloaderInstrumentation());\n\nconst _dataloaderIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n // Decide here, not in the factory: the runtime channel injection runs inside `Sentry.init()`,\n // after the integrations array has already been built, so `isOrchestrionInjected()` is only\n // reliable by `setupOnce`. When the diagnostics channels are injected (runtime hook or bundler\n // plugin), subscribe to them; otherwise fall back to the vendored OTel instrumentation.\n if (isOrchestrionInjected()) {\n dataloaderChannelIntegration().setupOnce?.();\n } else {\n instrumentDataloader();\n }\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for the [dataloader](https://www.npmjs.com/package/dataloader) library.\n *\n * For more information, see the [`dataloaderIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/dataloader/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.dataloaderIntegration()],\n * });\n * ```\n */\nexport const dataloaderIntegration = defineIntegration(_dataloaderIntegration);\n"],"names":["generateInstrumentOnce","DataloaderInstrumentation","isOrchestrionInjected","dataloaderChannelIntegration","defineIntegration"],"mappings":";;;;;;;AAMA,MAAM,gBAAA,GAAmB,YAAA;AAElB,MAAM,uBAAuBA,+BAAA,CAAuB,gBAAA,EAAkB,MAAM,IAAIC,2CAA2B;AAElH,MAAM,0BAA0B,MAAM;AACpC,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,gBAAA;AAAA,IACN,SAAA,GAAY;AAKV,MAAA,IAAIC,mCAAsB,EAAG;AAC3B,QAAAC,wCAAA,GAA+B,SAAA,IAAY;AAAA,MAC7C,CAAA,MAAO;AACL,QAAA,oBAAA,EAAqB;AAAA,MACvB;AAAA,IACF;AAAA,GACF;AACF,CAAA,CAAA;AAgBO,MAAM,qBAAA,GAAwBC,uBAAkB,sBAAsB;;;;;"}
|
|
@@ -10,8 +10,10 @@ const isPromise = (value) => {
|
|
|
10
10
|
return typeof value?.then === "function";
|
|
11
11
|
};
|
|
12
12
|
function addSpanSource(span, loc, start, end) {
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
if (core.getClient()?.getDataCollectionOptions().graphQL.document === true) {
|
|
14
|
+
const source = getSourceFromLocation(loc, start, end);
|
|
15
|
+
span.setAttribute(AttributeNames.AttributeNames.SOURCE, source);
|
|
16
|
+
}
|
|
15
17
|
}
|
|
16
18
|
function createFieldIfNotExists(contextValue, info, path) {
|
|
17
19
|
let field = getField(contextValue, path);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../../../src/integrations/tracing/graphql/vendored/utils.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n *\n * NOTICE from the Sentry authors:\n * - Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/tree/15ef7506553f631ea4181391e0c5725a56f0d082/packages/instrumentation-graphql\n * - Upstream version: @opentelemetry/instrumentation-graphql@0.66.0\n * - Types from `graphql` package inlined as simplified interfaces\n * - Minor TypeScript strictness adjustments\n * - Span lifecycle migrated from the OpenTelemetry tracer to the @sentry/core span API\n */\n\nimport type {\n DocumentNode,\n GraphQLFieldResolver,\n GraphQLObjectType,\n GraphQLOutputType,\n GraphQLResolveInfo,\n GraphQLType,\n GraphQLUnionType,\n Location,\n Maybe,\n Token,\n} from './graphql-types';\nimport type { Span, SpanAttributes } from '@sentry/core';\nimport { isObjectLike, SPAN_STATUS_ERROR, startInactiveSpan, withActiveSpan } from '@sentry/core';\nimport { AllowedOperationTypes, SpanNames, TokenKind } from './enum';\nimport { AttributeNames } from './enums/AttributeNames';\nimport { OTEL_GRAPHQL_DATA_SYMBOL, OTEL_PATCHED_SYMBOL } from './symbols';\nimport type { GraphQLField, GraphQLPath, ObjectWithGraphQLData, OtelPatched } from './internal-types';\nimport type { GraphQLInstrumentationParsedConfig } from './types';\n\nconst OPERATION_VALUES = Object.values(AllowedOperationTypes);\n\n// https://github.com/graphql/graphql-js/blob/main/src/jsutils/isPromise.ts\nexport const isPromise = (value: any): value is Promise<unknown> => {\n return typeof value?.then === 'function';\n};\n\nexport function addSpanSource(span: Span, loc?: Location, start?: number, end?: number): void {\n const source = getSourceFromLocation(loc, start, end);\n span.setAttribute(AttributeNames.SOURCE, source);\n}\n\nfunction createFieldIfNotExists(\n contextValue: any,\n info: GraphQLResolveInfo,\n path: string[],\n): {\n field: GraphQLField;\n spanAdded: boolean;\n} {\n let field = getField(contextValue, path);\n if (field) {\n return { field, spanAdded: false };\n }\n\n const parentSpan = getParentFieldSpan(contextValue, path);\n\n field = {\n span: createResolverSpan(contextValue, info, path, parentSpan),\n };\n\n addField(contextValue, path, field);\n\n return { field, spanAdded: true };\n}\n\nfunction createResolverSpan(contextValue: any, info: GraphQLResolveInfo, path: string[], parentSpan?: Span): Span {\n const attributes: SpanAttributes = {\n [AttributeNames.FIELD_NAME]: info.fieldName,\n [AttributeNames.FIELD_PATH]: path.join('.'),\n [AttributeNames.FIELD_TYPE]: info.returnType.toString(),\n [AttributeNames.PARENT_NAME]: info.parentType.name,\n };\n\n const span = startInactiveSpan({\n name: `${SpanNames.RESOLVE} ${attributes[AttributeNames.FIELD_PATH]}`,\n attributes,\n parentSpan,\n });\n\n const document = contextValue[OTEL_GRAPHQL_DATA_SYMBOL].source;\n const fieldNode = info.fieldNodes.find(fieldNode => fieldNode.kind === 'Field');\n\n if (fieldNode) {\n addSpanSource(span, document.loc, fieldNode.loc?.start, fieldNode.loc?.end);\n }\n\n return span;\n}\n\nexport function endSpan(span: Span, error?: Error): void {\n if (error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: error.message });\n }\n span.end();\n}\n\nexport function getOperation(document: DocumentNode, operationName?: Maybe<string>): DefinitionNodeLike | undefined {\n if (!document || !Array.isArray(document.definitions)) {\n return undefined;\n }\n\n if (operationName) {\n return document.definitions\n .filter(definition => OPERATION_VALUES.indexOf(definition?.operation) !== -1)\n .find(definition => operationName === definition?.name?.value);\n } else {\n return document.definitions.find(definition => OPERATION_VALUES.indexOf(definition?.operation) !== -1);\n }\n}\n\ntype DefinitionNodeLike = DocumentNode['definitions'][number];\n\nfunction addField(contextValue: any, path: string[], field: GraphQLField) {\n return (contextValue[OTEL_GRAPHQL_DATA_SYMBOL].fields[path.join('.')] = field);\n}\n\nfunction getField(contextValue: any, path: string[]): GraphQLField {\n return contextValue[OTEL_GRAPHQL_DATA_SYMBOL].fields[path.join('.')];\n}\n\nfunction getParentFieldSpan(contextValue: any, path: string[]): Span {\n for (let i = path.length - 1; i > 0; i--) {\n const field = getField(contextValue, path.slice(0, i));\n\n if (field) {\n return field.span;\n }\n }\n\n return getRootSpan(contextValue);\n}\n\nfunction getRootSpan(contextValue: any): Span {\n return contextValue[OTEL_GRAPHQL_DATA_SYMBOL].span;\n}\n\nfunction pathToArray(path: GraphQLPath): string[] {\n const flattened: string[] = [];\n let curr: GraphQLPath | undefined = path;\n while (curr) {\n flattened.push(String(curr.key));\n curr = curr.prev;\n }\n return flattened.reverse();\n}\n\nfunction repeatBreak(i: number): string {\n return repeatChar('\\n', i);\n}\n\nfunction repeatSpace(i: number): string {\n return repeatChar(' ', i);\n}\n\nfunction repeatChar(char: string, to: number): string {\n let text = '';\n for (let i = 0; i < to; i++) {\n text += char;\n }\n return text;\n}\n\nconst KindsToBeRemoved: string[] = [TokenKind.FLOAT, TokenKind.STRING, TokenKind.INT, TokenKind.BLOCK_STRING];\n\nexport function getSourceFromLocation(loc?: Location, inputStart?: number, inputEnd?: number): string {\n let source = '';\n\n if (loc?.startToken) {\n const start = typeof inputStart === 'number' ? inputStart : loc.start;\n const end = typeof inputEnd === 'number' ? inputEnd : loc.end;\n\n let next: Token | null = loc.startToken.next;\n let previousLine: number | undefined = 1;\n while (next) {\n if (next.start < start) {\n next = next.next;\n previousLine = next?.line;\n continue;\n }\n if (next.end > end) {\n next = next.next;\n previousLine = next?.line;\n continue;\n }\n let value = next.value || next.kind;\n let space = '';\n if (KindsToBeRemoved.indexOf(next.kind) >= 0) {\n value = '*';\n }\n if (next.kind === TokenKind.STRING) {\n value = `\"${value}\"`;\n }\n if (next.kind === TokenKind.EOF) {\n value = '';\n }\n if (next.line > previousLine!) {\n source += repeatBreak(next.line - previousLine!);\n previousLine = next.line;\n space = repeatSpace(next.column - 1);\n } else {\n if (next.line === next.prev?.line) {\n space = repeatSpace(next.start - (next.prev?.end || 0));\n }\n }\n source += space + value;\n if (next) {\n next = next.next!;\n }\n }\n }\n\n return source;\n}\n\nexport function wrapFields(\n type: Maybe<GraphQLObjectType & OtelPatched>,\n getConfig: () => GraphQLInstrumentationParsedConfig,\n): void {\n if (!type || (type as any)[OTEL_PATCHED_SYMBOL]) {\n return;\n }\n const fields = type.getFields();\n\n (type as any)[OTEL_PATCHED_SYMBOL] = true;\n\n Object.keys(fields).forEach(key => {\n const field = fields[key];\n\n if (!field) {\n return;\n }\n\n if (field.resolve) {\n // The shared structural types narrow the resolver context to `ObjectWithGraphQLData`; cast back\n // to the field's own resolver type (behavior is unchanged — this is a type-only adjustment).\n field.resolve = wrapFieldResolver(getConfig, field.resolve) as GraphQLFieldResolver;\n }\n\n if (field.type) {\n const unwrappedTypes = unwrapType(field.type);\n for (const unwrappedType of unwrappedTypes) {\n wrapFields(unwrappedType as any, getConfig);\n }\n }\n });\n}\n\nfunction unwrapType(type: GraphQLOutputType): readonly GraphQLObjectType[] {\n // unwrap wrapping types (non-nullable and list types)\n if ('ofType' in type) {\n // The structural index signature widens `ofType` to `unknown`, so narrow it back explicitly.\n return unwrapType(type.ofType as GraphQLOutputType);\n }\n\n // unwrap union types\n if (isGraphQLUnionType(type)) {\n return type.getTypes();\n }\n\n // return object types\n if (isGraphQLObjectType(type)) {\n return [type];\n }\n\n return [];\n}\n\nfunction isGraphQLUnionType(type: GraphQLType): type is GraphQLUnionType {\n return 'getTypes' in type && typeof type.getTypes === 'function';\n}\n\nfunction isGraphQLObjectType(type: GraphQLType): type is GraphQLObjectType {\n return 'getFields' in type && typeof type.getFields === 'function';\n}\n\nconst handleResolveSpanError = (resolveSpan: Span, err: any, shouldEndSpan: boolean) => {\n if (!shouldEndSpan) {\n return;\n }\n resolveSpan.setStatus({\n code: SPAN_STATUS_ERROR,\n message: err.message,\n });\n resolveSpan.end();\n};\n\nconst handleResolveSpanSuccess = (resolveSpan: Span, shouldEndSpan: boolean) => {\n if (!shouldEndSpan) {\n return;\n }\n resolveSpan.end();\n};\n\nexport function wrapFieldResolver<TSource = any, TContext = any, TArgs = any>(\n getConfig: () => GraphQLInstrumentationParsedConfig,\n fieldResolver: Maybe<GraphQLFieldResolver<TSource, TContext, TArgs> & OtelPatched>,\n isDefaultResolver = false,\n): GraphQLFieldResolver<TSource, TContext & ObjectWithGraphQLData, TArgs> & OtelPatched {\n if ((wrappedFieldResolver as OtelPatched)[OTEL_PATCHED_SYMBOL] || typeof fieldResolver !== 'function') {\n return fieldResolver!;\n }\n\n function wrappedFieldResolver(\n this: GraphQLFieldResolver<TSource, TContext, TArgs>,\n source: TSource,\n args: TArgs,\n contextValue: TContext & ObjectWithGraphQLData,\n info: GraphQLResolveInfo,\n ) {\n if (!fieldResolver) {\n return undefined;\n }\n const config = getConfig();\n\n // follows what graphql is doing to decide if this is a trivial resolver\n // for which we don't need to create a resolve span\n if (\n config.ignoreTrivialResolveSpans &&\n isDefaultResolver &&\n (isObjectLike(source) || typeof source === 'function')\n ) {\n const property = (source as any)[info.fieldName];\n // a function execution is not trivial and should be recorder.\n // property which is not a function is just a value and we don't want a \"resolve\" span for it\n if (typeof property !== 'function') {\n return fieldResolver.call(this, source, args, contextValue, info);\n }\n }\n\n if (!contextValue[OTEL_GRAPHQL_DATA_SYMBOL]) {\n return fieldResolver.call(this, source, args, contextValue, info);\n }\n const path = pathToArray(info?.path);\n\n const { field, spanAdded } = createFieldIfNotExists(contextValue, info, path);\n const span = field.span;\n const shouldEndSpan = spanAdded;\n\n return withActiveSpan(span, () => {\n try {\n const res = fieldResolver.call(this, source, args, contextValue, info);\n if (isPromise(res)) {\n return res.then(\n (r: any) => {\n handleResolveSpanSuccess(span, shouldEndSpan);\n return r;\n },\n (err: Error) => {\n handleResolveSpanError(span, err, shouldEndSpan);\n throw err;\n },\n );\n } else {\n handleResolveSpanSuccess(span, shouldEndSpan);\n return res;\n }\n } catch (err: any) {\n handleResolveSpanError(span, err, shouldEndSpan);\n throw err;\n }\n });\n }\n\n (wrappedFieldResolver as OtelPatched)[OTEL_PATCHED_SYMBOL] = true;\n\n return wrappedFieldResolver;\n}\n"],"names":["AllowedOperationTypes","AttributeNames","startInactiveSpan","SpanNames","OTEL_GRAPHQL_DATA_SYMBOL","fieldNode","SPAN_STATUS_ERROR","TokenKind","OTEL_PATCHED_SYMBOL","isObjectLike","withActiveSpan"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../../src/integrations/tracing/graphql/vendored/utils.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n *\n * NOTICE from the Sentry authors:\n * - Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/tree/15ef7506553f631ea4181391e0c5725a56f0d082/packages/instrumentation-graphql\n * - Upstream version: @opentelemetry/instrumentation-graphql@0.66.0\n * - Types from `graphql` package inlined as simplified interfaces\n * - Minor TypeScript strictness adjustments\n * - Span lifecycle migrated from the OpenTelemetry tracer to the @sentry/core span API\n */\n\nimport type {\n DocumentNode,\n GraphQLFieldResolver,\n GraphQLObjectType,\n GraphQLOutputType,\n GraphQLResolveInfo,\n GraphQLType,\n GraphQLUnionType,\n Location,\n Maybe,\n Token,\n} from './graphql-types';\nimport type { Span, SpanAttributes } from '@sentry/core';\nimport { getClient, isObjectLike, SPAN_STATUS_ERROR, startInactiveSpan, withActiveSpan } from '@sentry/core';\nimport { AllowedOperationTypes, SpanNames, TokenKind } from './enum';\nimport { AttributeNames } from './enums/AttributeNames';\nimport { OTEL_GRAPHQL_DATA_SYMBOL, OTEL_PATCHED_SYMBOL } from './symbols';\nimport type { GraphQLField, GraphQLPath, ObjectWithGraphQLData, OtelPatched } from './internal-types';\nimport type { GraphQLInstrumentationParsedConfig } from './types';\n\nconst OPERATION_VALUES = Object.values(AllowedOperationTypes);\n\n// https://github.com/graphql/graphql-js/blob/main/src/jsutils/isPromise.ts\nexport const isPromise = (value: any): value is Promise<unknown> => {\n return typeof value?.then === 'function';\n};\n\nexport function addSpanSource(span: Span, loc?: Location, start?: number, end?: number): void {\n if (getClient()?.getDataCollectionOptions().graphQL.document === true) {\n const source = getSourceFromLocation(loc, start, end);\n span.setAttribute(AttributeNames.SOURCE, source);\n }\n}\n\nfunction createFieldIfNotExists(\n contextValue: any,\n info: GraphQLResolveInfo,\n path: string[],\n): {\n field: GraphQLField;\n spanAdded: boolean;\n} {\n let field = getField(contextValue, path);\n if (field) {\n return { field, spanAdded: false };\n }\n\n const parentSpan = getParentFieldSpan(contextValue, path);\n\n field = {\n span: createResolverSpan(contextValue, info, path, parentSpan),\n };\n\n addField(contextValue, path, field);\n\n return { field, spanAdded: true };\n}\n\nfunction createResolverSpan(contextValue: any, info: GraphQLResolveInfo, path: string[], parentSpan?: Span): Span {\n const attributes: SpanAttributes = {\n [AttributeNames.FIELD_NAME]: info.fieldName,\n [AttributeNames.FIELD_PATH]: path.join('.'),\n [AttributeNames.FIELD_TYPE]: info.returnType.toString(),\n [AttributeNames.PARENT_NAME]: info.parentType.name,\n };\n\n const span = startInactiveSpan({\n name: `${SpanNames.RESOLVE} ${attributes[AttributeNames.FIELD_PATH]}`,\n attributes,\n parentSpan,\n });\n\n const document = contextValue[OTEL_GRAPHQL_DATA_SYMBOL].source;\n const fieldNode = info.fieldNodes.find(fieldNode => fieldNode.kind === 'Field');\n\n if (fieldNode) {\n addSpanSource(span, document.loc, fieldNode.loc?.start, fieldNode.loc?.end);\n }\n\n return span;\n}\n\nexport function endSpan(span: Span, error?: Error): void {\n if (error) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: error.message });\n }\n span.end();\n}\n\nexport function getOperation(document: DocumentNode, operationName?: Maybe<string>): DefinitionNodeLike | undefined {\n if (!document || !Array.isArray(document.definitions)) {\n return undefined;\n }\n\n if (operationName) {\n return document.definitions\n .filter(definition => OPERATION_VALUES.indexOf(definition?.operation) !== -1)\n .find(definition => operationName === definition?.name?.value);\n } else {\n return document.definitions.find(definition => OPERATION_VALUES.indexOf(definition?.operation) !== -1);\n }\n}\n\ntype DefinitionNodeLike = DocumentNode['definitions'][number];\n\nfunction addField(contextValue: any, path: string[], field: GraphQLField) {\n return (contextValue[OTEL_GRAPHQL_DATA_SYMBOL].fields[path.join('.')] = field);\n}\n\nfunction getField(contextValue: any, path: string[]): GraphQLField {\n return contextValue[OTEL_GRAPHQL_DATA_SYMBOL].fields[path.join('.')];\n}\n\nfunction getParentFieldSpan(contextValue: any, path: string[]): Span {\n for (let i = path.length - 1; i > 0; i--) {\n const field = getField(contextValue, path.slice(0, i));\n\n if (field) {\n return field.span;\n }\n }\n\n return getRootSpan(contextValue);\n}\n\nfunction getRootSpan(contextValue: any): Span {\n return contextValue[OTEL_GRAPHQL_DATA_SYMBOL].span;\n}\n\nfunction pathToArray(path: GraphQLPath): string[] {\n const flattened: string[] = [];\n let curr: GraphQLPath | undefined = path;\n while (curr) {\n flattened.push(String(curr.key));\n curr = curr.prev;\n }\n return flattened.reverse();\n}\n\nfunction repeatBreak(i: number): string {\n return repeatChar('\\n', i);\n}\n\nfunction repeatSpace(i: number): string {\n return repeatChar(' ', i);\n}\n\nfunction repeatChar(char: string, to: number): string {\n let text = '';\n for (let i = 0; i < to; i++) {\n text += char;\n }\n return text;\n}\n\nconst KindsToBeRemoved: string[] = [TokenKind.FLOAT, TokenKind.STRING, TokenKind.INT, TokenKind.BLOCK_STRING];\n\nexport function getSourceFromLocation(loc?: Location, inputStart?: number, inputEnd?: number): string {\n let source = '';\n\n if (loc?.startToken) {\n const start = typeof inputStart === 'number' ? inputStart : loc.start;\n const end = typeof inputEnd === 'number' ? inputEnd : loc.end;\n\n let next: Token | null = loc.startToken.next;\n let previousLine: number | undefined = 1;\n while (next) {\n if (next.start < start) {\n next = next.next;\n previousLine = next?.line;\n continue;\n }\n if (next.end > end) {\n next = next.next;\n previousLine = next?.line;\n continue;\n }\n let value = next.value || next.kind;\n let space = '';\n if (KindsToBeRemoved.indexOf(next.kind) >= 0) {\n value = '*';\n }\n if (next.kind === TokenKind.STRING) {\n value = `\"${value}\"`;\n }\n if (next.kind === TokenKind.EOF) {\n value = '';\n }\n if (next.line > previousLine!) {\n source += repeatBreak(next.line - previousLine!);\n previousLine = next.line;\n space = repeatSpace(next.column - 1);\n } else {\n if (next.line === next.prev?.line) {\n space = repeatSpace(next.start - (next.prev?.end || 0));\n }\n }\n source += space + value;\n if (next) {\n next = next.next!;\n }\n }\n }\n\n return source;\n}\n\nexport function wrapFields(\n type: Maybe<GraphQLObjectType & OtelPatched>,\n getConfig: () => GraphQLInstrumentationParsedConfig,\n): void {\n if (!type || (type as any)[OTEL_PATCHED_SYMBOL]) {\n return;\n }\n const fields = type.getFields();\n\n (type as any)[OTEL_PATCHED_SYMBOL] = true;\n\n Object.keys(fields).forEach(key => {\n const field = fields[key];\n\n if (!field) {\n return;\n }\n\n if (field.resolve) {\n // The shared structural types narrow the resolver context to `ObjectWithGraphQLData`; cast back\n // to the field's own resolver type (behavior is unchanged — this is a type-only adjustment).\n field.resolve = wrapFieldResolver(getConfig, field.resolve) as GraphQLFieldResolver;\n }\n\n if (field.type) {\n const unwrappedTypes = unwrapType(field.type);\n for (const unwrappedType of unwrappedTypes) {\n wrapFields(unwrappedType as any, getConfig);\n }\n }\n });\n}\n\nfunction unwrapType(type: GraphQLOutputType): readonly GraphQLObjectType[] {\n // unwrap wrapping types (non-nullable and list types)\n if ('ofType' in type) {\n // The structural index signature widens `ofType` to `unknown`, so narrow it back explicitly.\n return unwrapType(type.ofType as GraphQLOutputType);\n }\n\n // unwrap union types\n if (isGraphQLUnionType(type)) {\n return type.getTypes();\n }\n\n // return object types\n if (isGraphQLObjectType(type)) {\n return [type];\n }\n\n return [];\n}\n\nfunction isGraphQLUnionType(type: GraphQLType): type is GraphQLUnionType {\n return 'getTypes' in type && typeof type.getTypes === 'function';\n}\n\nfunction isGraphQLObjectType(type: GraphQLType): type is GraphQLObjectType {\n return 'getFields' in type && typeof type.getFields === 'function';\n}\n\nconst handleResolveSpanError = (resolveSpan: Span, err: any, shouldEndSpan: boolean) => {\n if (!shouldEndSpan) {\n return;\n }\n resolveSpan.setStatus({\n code: SPAN_STATUS_ERROR,\n message: err.message,\n });\n resolveSpan.end();\n};\n\nconst handleResolveSpanSuccess = (resolveSpan: Span, shouldEndSpan: boolean) => {\n if (!shouldEndSpan) {\n return;\n }\n resolveSpan.end();\n};\n\nexport function wrapFieldResolver<TSource = any, TContext = any, TArgs = any>(\n getConfig: () => GraphQLInstrumentationParsedConfig,\n fieldResolver: Maybe<GraphQLFieldResolver<TSource, TContext, TArgs> & OtelPatched>,\n isDefaultResolver = false,\n): GraphQLFieldResolver<TSource, TContext & ObjectWithGraphQLData, TArgs> & OtelPatched {\n if ((wrappedFieldResolver as OtelPatched)[OTEL_PATCHED_SYMBOL] || typeof fieldResolver !== 'function') {\n return fieldResolver!;\n }\n\n function wrappedFieldResolver(\n this: GraphQLFieldResolver<TSource, TContext, TArgs>,\n source: TSource,\n args: TArgs,\n contextValue: TContext & ObjectWithGraphQLData,\n info: GraphQLResolveInfo,\n ) {\n if (!fieldResolver) {\n return undefined;\n }\n const config = getConfig();\n\n // follows what graphql is doing to decide if this is a trivial resolver\n // for which we don't need to create a resolve span\n if (\n config.ignoreTrivialResolveSpans &&\n isDefaultResolver &&\n (isObjectLike(source) || typeof source === 'function')\n ) {\n const property = (source as any)[info.fieldName];\n // a function execution is not trivial and should be recorder.\n // property which is not a function is just a value and we don't want a \"resolve\" span for it\n if (typeof property !== 'function') {\n return fieldResolver.call(this, source, args, contextValue, info);\n }\n }\n\n if (!contextValue[OTEL_GRAPHQL_DATA_SYMBOL]) {\n return fieldResolver.call(this, source, args, contextValue, info);\n }\n const path = pathToArray(info?.path);\n\n const { field, spanAdded } = createFieldIfNotExists(contextValue, info, path);\n const span = field.span;\n const shouldEndSpan = spanAdded;\n\n return withActiveSpan(span, () => {\n try {\n const res = fieldResolver.call(this, source, args, contextValue, info);\n if (isPromise(res)) {\n return res.then(\n (r: any) => {\n handleResolveSpanSuccess(span, shouldEndSpan);\n return r;\n },\n (err: Error) => {\n handleResolveSpanError(span, err, shouldEndSpan);\n throw err;\n },\n );\n } else {\n handleResolveSpanSuccess(span, shouldEndSpan);\n return res;\n }\n } catch (err: any) {\n handleResolveSpanError(span, err, shouldEndSpan);\n throw err;\n }\n });\n }\n\n (wrappedFieldResolver as OtelPatched)[OTEL_PATCHED_SYMBOL] = true;\n\n return wrappedFieldResolver;\n}\n"],"names":["AllowedOperationTypes","getClient","AttributeNames","startInactiveSpan","SpanNames","OTEL_GRAPHQL_DATA_SYMBOL","fieldNode","SPAN_STATUS_ERROR","TokenKind","OTEL_PATCHED_SYMBOL","isObjectLike","withActiveSpan"],"mappings":";;;;;;;AAgCA,MAAM,gBAAA,GAAmB,MAAA,CAAO,MAAA,CAAOA,2BAAqB,CAAA;AAGrD,MAAM,SAAA,GAAY,CAAC,KAAA,KAA0C;AAClE,EAAA,OAAO,OAAO,OAAO,IAAA,KAAS,UAAA;AAChC;AAEO,SAAS,aAAA,CAAc,IAAA,EAAY,GAAA,EAAgB,KAAA,EAAgB,GAAA,EAAoB;AAC5F,EAAA,IAAIC,gBAAU,EAAG,wBAAA,EAAyB,CAAE,OAAA,CAAQ,aAAa,IAAA,EAAM;AACrE,IAAA,MAAM,MAAA,GAAS,qBAAA,CAAsB,GAAA,EAAK,KAAA,EAAO,GAAG,CAAA;AACpD,IAAA,IAAA,CAAK,YAAA,CAAaC,6BAAA,CAAe,MAAA,EAAQ,MAAM,CAAA;AAAA,EACjD;AACF;AAEA,SAAS,sBAAA,CACP,YAAA,EACA,IAAA,EACA,IAAA,EAIA;AACA,EAAA,IAAI,KAAA,GAAQ,QAAA,CAAS,YAAA,EAAc,IAAI,CAAA;AACvC,EAAA,IAAI,KAAA,EAAO;AACT,IAAA,OAAO,EAAE,KAAA,EAAO,SAAA,EAAW,KAAA,EAAM;AAAA,EACnC;AAEA,EAAA,MAAM,UAAA,GAAa,kBAAA,CAAmB,YAAA,EAAc,IAAI,CAAA;AAExD,EAAA,KAAA,GAAQ;AAAA,IACN,IAAA,EAAM,kBAAA,CAAmB,YAAA,EAAc,IAAA,EAAM,MAAM,UAAU;AAAA,GAC/D;AAEA,EAAA,QAAA,CAAS,YAAA,EAAc,MAAM,KAAK,CAAA;AAElC,EAAA,OAAO,EAAE,KAAA,EAAO,SAAA,EAAW,IAAA,EAAK;AAClC;AAEA,SAAS,kBAAA,CAAmB,YAAA,EAAmB,IAAA,EAA0B,IAAA,EAAgB,UAAA,EAAyB;AAChH,EAAA,MAAM,UAAA,GAA6B;AAAA,IACjC,CAACA,6BAAA,CAAe,UAAU,GAAG,IAAA,CAAK,SAAA;AAAA,IAClC,CAACA,6BAAA,CAAe,UAAU,GAAG,IAAA,CAAK,KAAK,GAAG,CAAA;AAAA,IAC1C,CAACA,6BAAA,CAAe,UAAU,GAAG,IAAA,CAAK,WAAW,QAAA,EAAS;AAAA,IACtD,CAACA,6BAAA,CAAe,WAAW,GAAG,KAAK,UAAA,CAAW;AAAA,GAChD;AAEA,EAAA,MAAM,OAAOC,sBAAA,CAAkB;AAAA,IAC7B,IAAA,EAAM,GAAGC,eAAA,CAAU,OAAO,IAAI,UAAA,CAAWF,6BAAA,CAAe,UAAU,CAAC,CAAA,CAAA;AAAA,IACnE,UAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,MAAM,QAAA,GAAW,YAAA,CAAaG,gCAAwB,CAAA,CAAE,MAAA;AACxD,EAAA,MAAM,SAAA,GAAY,KAAK,UAAA,CAAW,IAAA,CAAK,CAAAC,UAAAA,KAAaA,UAAAA,CAAU,SAAS,OAAO,CAAA;AAE9E,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,aAAA,CAAc,IAAA,EAAM,SAAS,GAAA,EAAK,SAAA,CAAU,KAAK,KAAA,EAAO,SAAA,CAAU,KAAK,GAAG,CAAA;AAAA,EAC5E;AAEA,EAAA,OAAO,IAAA;AACT;AAEO,SAAS,OAAA,CAAQ,MAAY,KAAA,EAAqB;AACvD,EAAA,IAAI,KAAA,EAAO;AACT,IAAA,IAAA,CAAK,UAAU,EAAE,IAAA,EAAMC,wBAAmB,OAAA,EAAS,KAAA,CAAM,SAAS,CAAA;AAAA,EACpE;AACA,EAAA,IAAA,CAAK,GAAA,EAAI;AACX;AAEO,SAAS,YAAA,CAAa,UAAwB,aAAA,EAA+D;AAClH,EAAA,IAAI,CAAC,QAAA,IAAY,CAAC,MAAM,OAAA,CAAQ,QAAA,CAAS,WAAW,CAAA,EAAG;AACrD,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,IAAI,aAAA,EAAe;AACjB,IAAA,OAAO,SAAS,WAAA,CACb,MAAA,CAAO,CAAA,UAAA,KAAc,gBAAA,CAAiB,QAAQ,UAAA,EAAY,SAAS,CAAA,KAAM,EAAE,EAC3E,IAAA,CAAK,CAAA,UAAA,KAAc,aAAA,KAAkB,UAAA,EAAY,MAAM,KAAK,CAAA;AAAA,EACjE,CAAA,MAAO;AACL,IAAA,OAAO,QAAA,CAAS,YAAY,IAAA,CAAK,CAAA,UAAA,KAAc,iBAAiB,OAAA,CAAQ,UAAA,EAAY,SAAS,CAAA,KAAM,EAAE,CAAA;AAAA,EACvG;AACF;AAIA,SAAS,QAAA,CAAS,YAAA,EAAmB,IAAA,EAAgB,KAAA,EAAqB;AACxE,EAAA,OAAQ,YAAA,CAAaF,gCAAwB,CAAA,CAAE,MAAA,CAAO,KAAK,IAAA,CAAK,GAAG,CAAC,CAAA,GAAI,KAAA;AAC1E;AAEA,SAAS,QAAA,CAAS,cAAmB,IAAA,EAA8B;AACjE,EAAA,OAAO,aAAaA,gCAAwB,CAAA,CAAE,OAAO,IAAA,CAAK,IAAA,CAAK,GAAG,CAAC,CAAA;AACrE;AAEA,SAAS,kBAAA,CAAmB,cAAmB,IAAA,EAAsB;AACnE,EAAA,KAAA,IAAS,IAAI,IAAA,CAAK,MAAA,GAAS,CAAA,EAAG,CAAA,GAAI,GAAG,CAAA,EAAA,EAAK;AACxC,IAAA,MAAM,QAAQ,QAAA,CAAS,YAAA,EAAc,KAAK,KAAA,CAAM,CAAA,EAAG,CAAC,CAAC,CAAA;AAErD,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,OAAO,KAAA,CAAM,IAAA;AAAA,IACf;AAAA,EACF;AAEA,EAAA,OAAO,YAAY,YAAY,CAAA;AACjC;AAEA,SAAS,YAAY,YAAA,EAAyB;AAC5C,EAAA,OAAO,YAAA,CAAaA,gCAAwB,CAAA,CAAE,IAAA;AAChD;AAEA,SAAS,YAAY,IAAA,EAA6B;AAChD,EAAA,MAAM,YAAsB,EAAC;AAC7B,EAAA,IAAI,IAAA,GAAgC,IAAA;AACpC,EAAA,OAAO,IAAA,EAAM;AACX,IAAA,SAAA,CAAU,IAAA,CAAK,MAAA,CAAO,IAAA,CAAK,GAAG,CAAC,CAAA;AAC/B,IAAA,IAAA,GAAO,IAAA,CAAK,IAAA;AAAA,EACd;AACA,EAAA,OAAO,UAAU,OAAA,EAAQ;AAC3B;AAEA,SAAS,YAAY,CAAA,EAAmB;AACtC,EAAA,OAAO,UAAA,CAAW,MAAM,CAAC,CAAA;AAC3B;AAEA,SAAS,YAAY,CAAA,EAAmB;AACtC,EAAA,OAAO,UAAA,CAAW,KAAK,CAAC,CAAA;AAC1B;AAEA,SAAS,UAAA,CAAW,MAAc,EAAA,EAAoB;AACpD,EAAA,IAAI,IAAA,GAAO,EAAA;AACX,EAAA,KAAA,IAAS,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,EAAA,EAAI,CAAA,EAAA,EAAK;AAC3B,IAAA,IAAA,IAAQ,IAAA;AAAA,EACV;AACA,EAAA,OAAO,IAAA;AACT;AAEA,MAAM,gBAAA,GAA6B,CAACG,eAAA,CAAU,KAAA,EAAOA,gBAAU,MAAA,EAAQA,eAAA,CAAU,GAAA,EAAKA,eAAA,CAAU,YAAY,CAAA;AAErG,SAAS,qBAAA,CAAsB,GAAA,EAAgB,UAAA,EAAqB,QAAA,EAA2B;AACpG,EAAA,IAAI,MAAA,GAAS,EAAA;AAEb,EAAA,IAAI,KAAK,UAAA,EAAY;AACnB,IAAA,MAAM,KAAA,GAAQ,OAAO,UAAA,KAAe,QAAA,GAAW,aAAa,GAAA,CAAI,KAAA;AAChE,IAAA,MAAM,GAAA,GAAM,OAAO,QAAA,KAAa,QAAA,GAAW,WAAW,GAAA,CAAI,GAAA;AAE1D,IAAA,IAAI,IAAA,GAAqB,IAAI,UAAA,CAAW,IAAA;AACxC,IAAA,IAAI,YAAA,GAAmC,CAAA;AACvC,IAAA,OAAO,IAAA,EAAM;AACX,MAAA,IAAI,IAAA,CAAK,QAAQ,KAAA,EAAO;AACtB,QAAA,IAAA,GAAO,IAAA,CAAK,IAAA;AACZ,QAAA,YAAA,GAAe,IAAA,EAAM,IAAA;AACrB,QAAA;AAAA,MACF;AACA,MAAA,IAAI,IAAA,CAAK,MAAM,GAAA,EAAK;AAClB,QAAA,IAAA,GAAO,IAAA,CAAK,IAAA;AACZ,QAAA,YAAA,GAAe,IAAA,EAAM,IAAA;AACrB,QAAA;AAAA,MACF;AACA,MAAA,IAAI,KAAA,GAAQ,IAAA,CAAK,KAAA,IAAS,IAAA,CAAK,IAAA;AAC/B,MAAA,IAAI,KAAA,GAAQ,EAAA;AACZ,MAAA,IAAI,gBAAA,CAAiB,OAAA,CAAQ,IAAA,CAAK,IAAI,KAAK,CAAA,EAAG;AAC5C,QAAA,KAAA,GAAQ,GAAA;AAAA,MACV;AACA,MAAA,IAAI,IAAA,CAAK,IAAA,KAASA,eAAA,CAAU,MAAA,EAAQ;AAClC,QAAA,KAAA,GAAQ,IAAI,KAAK,CAAA,CAAA,CAAA;AAAA,MACnB;AACA,MAAA,IAAI,IAAA,CAAK,IAAA,KAASA,eAAA,CAAU,GAAA,EAAK;AAC/B,QAAA,KAAA,GAAQ,EAAA;AAAA,MACV;AACA,MAAA,IAAI,IAAA,CAAK,OAAO,YAAA,EAAe;AAC7B,QAAA,MAAA,IAAU,WAAA,CAAY,IAAA,CAAK,IAAA,GAAO,YAAa,CAAA;AAC/C,QAAA,YAAA,GAAe,IAAA,CAAK,IAAA;AACpB,QAAA,KAAA,GAAQ,WAAA,CAAY,IAAA,CAAK,MAAA,GAAS,CAAC,CAAA;AAAA,MACrC,CAAA,MAAO;AACL,QAAA,IAAI,IAAA,CAAK,IAAA,KAAS,IAAA,CAAK,IAAA,EAAM,IAAA,EAAM;AACjC,UAAA,KAAA,GAAQ,YAAY,IAAA,CAAK,KAAA,IAAS,IAAA,CAAK,IAAA,EAAM,OAAO,CAAA,CAAE,CAAA;AAAA,QACxD;AAAA,MACF;AACA,MAAA,MAAA,IAAU,KAAA,GAAQ,KAAA;AAClB,MAAA,IAAI,IAAA,EAAM;AACR,QAAA,IAAA,GAAO,IAAA,CAAK,IAAA;AAAA,MACd;AAAA,IACF;AAAA,EACF;AAEA,EAAA,OAAO,MAAA;AACT;AAEO,SAAS,UAAA,CACd,MACA,SAAA,EACM;AACN,EAAA,IAAI,CAAC,IAAA,IAAS,IAAA,CAAaC,2BAAmB,CAAA,EAAG;AAC/C,IAAA;AAAA,EACF;AACA,EAAA,MAAM,MAAA,GAAS,KAAK,SAAA,EAAU;AAE9B,EAAC,IAAA,CAAaA,2BAAmB,CAAA,GAAI,IAAA;AAErC,EAAA,MAAA,CAAO,IAAA,CAAK,MAAM,CAAA,CAAE,OAAA,CAAQ,CAAA,GAAA,KAAO;AACjC,IAAA,MAAM,KAAA,GAAQ,OAAO,GAAG,CAAA;AAExB,IAAA,IAAI,CAAC,KAAA,EAAO;AACV,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,MAAM,OAAA,EAAS;AAGjB,MAAA,KAAA,CAAM,OAAA,GAAU,iBAAA,CAAkB,SAAA,EAAW,KAAA,CAAM,OAAO,CAAA;AAAA,IAC5D;AAEA,IAAA,IAAI,MAAM,IAAA,EAAM;AACd,MAAA,MAAM,cAAA,GAAiB,UAAA,CAAW,KAAA,CAAM,IAAI,CAAA;AAC5C,MAAA,KAAA,MAAW,iBAAiB,cAAA,EAAgB;AAC1C,QAAA,UAAA,CAAW,eAAsB,SAAS,CAAA;AAAA,MAC5C;AAAA,IACF;AAAA,EACF,CAAC,CAAA;AACH;AAEA,SAAS,WAAW,IAAA,EAAuD;AAEzE,EAAA,IAAI,YAAY,IAAA,EAAM;AAEpB,IAAA,OAAO,UAAA,CAAW,KAAK,MAA2B,CAAA;AAAA,EACpD;AAGA,EAAA,IAAI,kBAAA,CAAmB,IAAI,CAAA,EAAG;AAC5B,IAAA,OAAO,KAAK,QAAA,EAAS;AAAA,EACvB;AAGA,EAAA,IAAI,mBAAA,CAAoB,IAAI,CAAA,EAAG;AAC7B,IAAA,OAAO,CAAC,IAAI,CAAA;AAAA,EACd;AAEA,EAAA,OAAO,EAAC;AACV;AAEA,SAAS,mBAAmB,IAAA,EAA6C;AACvE,EAAA,OAAO,UAAA,IAAc,IAAA,IAAQ,OAAO,IAAA,CAAK,QAAA,KAAa,UAAA;AACxD;AAEA,SAAS,oBAAoB,IAAA,EAA8C;AACzE,EAAA,OAAO,WAAA,IAAe,IAAA,IAAQ,OAAO,IAAA,CAAK,SAAA,KAAc,UAAA;AAC1D;AAEA,MAAM,sBAAA,GAAyB,CAAC,WAAA,EAAmB,GAAA,EAAU,aAAA,KAA2B;AACtF,EAAA,IAAI,CAAC,aAAA,EAAe;AAClB,IAAA;AAAA,EACF;AACA,EAAA,WAAA,CAAY,SAAA,CAAU;AAAA,IACpB,IAAA,EAAMF,sBAAA;AAAA,IACN,SAAS,GAAA,CAAI;AAAA,GACd,CAAA;AACD,EAAA,WAAA,CAAY,GAAA,EAAI;AAClB,CAAA;AAEA,MAAM,wBAAA,GAA2B,CAAC,WAAA,EAAmB,aAAA,KAA2B;AAC9E,EAAA,IAAI,CAAC,aAAA,EAAe;AAClB,IAAA;AAAA,EACF;AACA,EAAA,WAAA,CAAY,GAAA,EAAI;AAClB,CAAA;AAEO,SAAS,iBAAA,CACd,SAAA,EACA,aAAA,EACA,iBAAA,GAAoB,KAAA,EACkE;AACtF,EAAA,IAAK,oBAAA,CAAqCE,2BAAmB,CAAA,IAAK,OAAO,kBAAkB,UAAA,EAAY;AACrG,IAAA,OAAO,aAAA;AAAA,EACT;AAEA,EAAA,SAAS,oBAAA,CAEP,MAAA,EACA,IAAA,EACA,YAAA,EACA,IAAA,EACA;AACA,IAAA,IAAI,CAAC,aAAA,EAAe;AAClB,MAAA,OAAO,MAAA;AAAA,IACT;AACA,IAAA,MAAM,SAAS,SAAA,EAAU;AAIzB,IAAA,IACE,MAAA,CAAO,6BACP,iBAAA,KACCC,iBAAA,CAAa,MAAM,CAAA,IAAK,OAAO,WAAW,UAAA,CAAA,EAC3C;AACA,MAAA,MAAM,QAAA,GAAY,MAAA,CAAe,IAAA,CAAK,SAAS,CAAA;AAG/C,MAAA,IAAI,OAAO,aAAa,UAAA,EAAY;AAClC,QAAA,OAAO,cAAc,IAAA,CAAK,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,cAAc,IAAI,CAAA;AAAA,MAClE;AAAA,IACF;AAEA,IAAA,IAAI,CAAC,YAAA,CAAaL,gCAAwB,CAAA,EAAG;AAC3C,MAAA,OAAO,cAAc,IAAA,CAAK,IAAA,EAAM,MAAA,EAAQ,IAAA,EAAM,cAAc,IAAI,CAAA;AAAA,IAClE;AACA,IAAA,MAAM,IAAA,GAAO,WAAA,CAAY,IAAA,EAAM,IAAI,CAAA;AAEnC,IAAA,MAAM,EAAE,KAAA,EAAO,SAAA,KAAc,sBAAA,CAAuB,YAAA,EAAc,MAAM,IAAI,CAAA;AAC5E,IAAA,MAAM,OAAO,KAAA,CAAM,IAAA;AACnB,IAAA,MAAM,aAAA,GAAgB,SAAA;AAEtB,IAAA,OAAOM,mBAAA,CAAe,MAAM,MAAM;AAChC,MAAA,IAAI;AACF,QAAA,MAAM,MAAM,aAAA,CAAc,IAAA,CAAK,MAAM,MAAA,EAAQ,IAAA,EAAM,cAAc,IAAI,CAAA;AACrE,QAAA,IAAI,SAAA,CAAU,GAAG,CAAA,EAAG;AAClB,UAAA,OAAO,GAAA,CAAI,IAAA;AAAA,YACT,CAAC,CAAA,KAAW;AACV,cAAA,wBAAA,CAAyB,MAAM,aAAa,CAAA;AAC5C,cAAA,OAAO,CAAA;AAAA,YACT,CAAA;AAAA,YACA,CAAC,GAAA,KAAe;AACd,cAAA,sBAAA,CAAuB,IAAA,EAAM,KAAK,aAAa,CAAA;AAC/C,cAAA,MAAM,GAAA;AAAA,YACR;AAAA,WACF;AAAA,QACF,CAAA,MAAO;AACL,UAAA,wBAAA,CAAyB,MAAM,aAAa,CAAA;AAC5C,UAAA,OAAO,GAAA;AAAA,QACT;AAAA,MACF,SAAS,GAAA,EAAU;AACjB,QAAA,sBAAA,CAAuB,IAAA,EAAM,KAAK,aAAa,CAAA;AAC/C,QAAA,MAAM,GAAA;AAAA,MACR;AAAA,IACF,CAAC,CAAA;AAAA,EACH;AAEA,EAAC,oBAAA,CAAqCF,2BAAmB,CAAA,GAAI,IAAA;AAE7D,EAAA,OAAO,oBAAA;AACT;;;;;;;;;;"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
2
|
|
|
3
|
+
const serverUtils = require('@sentry/server-utils');
|
|
3
4
|
const http = require('../http.js');
|
|
4
5
|
const index$g = require('./amqplib/index.js');
|
|
5
6
|
const index$k = require('./anthropic-ai/index.js');
|
|
@@ -24,7 +25,6 @@ const index$a = require('./mysql2/index.js');
|
|
|
24
25
|
const index$j = require('./openai/index.js');
|
|
25
26
|
const index$b = require('./postgres/index.js');
|
|
26
27
|
const postgresjs = require('./postgresjs.js');
|
|
27
|
-
const index$n = require('./prisma/index.js');
|
|
28
28
|
const index$d = require('./redis/index.js');
|
|
29
29
|
const index$e = require('./tedious/index.js');
|
|
30
30
|
const index$i = require('./vercelai/index.js');
|
|
@@ -42,7 +42,7 @@ function getAutoPerformanceIntegrations() {
|
|
|
42
42
|
index$a.mysql2Integration(),
|
|
43
43
|
index$d.redisIntegration(),
|
|
44
44
|
index$b.postgresIntegration(),
|
|
45
|
-
|
|
45
|
+
serverUtils.prismaIntegration(),
|
|
46
46
|
index$2.hapiIntegration(),
|
|
47
47
|
index$5.koaIntegration(),
|
|
48
48
|
index.connectIntegration(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../src/integrations/tracing/index.ts"],"sourcesContent":["import type { Integration } from '@sentry/core';\nimport { instrumentSentryHttp } from '../http';\nimport { amqplibIntegration, instrumentAmqplib } from './amqplib';\nimport { anthropicAIIntegration, instrumentAnthropicAi } from './anthropic-ai';\nimport { connectIntegration, instrumentConnect } from './connect';\nimport { expressIntegration, instrumentExpress } from './express';\nimport { fastifyIntegration, instrumentFastifyV3 } from './fastify';\nimport { firebaseIntegration, instrumentFirebase } from './firebase';\nimport { genericPoolIntegration, instrumentGenericPool } from './genericPool';\nimport { googleGenAIIntegration, instrumentGoogleGenAI } from './google-genai';\nimport { graphqlIntegration, instrumentGraphql } from './graphql';\nimport { hapiIntegration, instrumentHapi } from './hapi';\nimport { honoIntegration, instrumentHono } from './hono';\nimport { instrumentKafka, kafkaIntegration } from './kafka';\nimport { instrumentKoa, koaIntegration } from './koa';\nimport { instrumentLangChain, langChainIntegration } from './langchain';\nimport { instrumentLangGraph, langGraphIntegration } from './langgraph';\nimport { instrumentLruMemoizer, lruMemoizerIntegration } from './lrumemoizer';\nimport { instrumentMongo, mongoIntegration } from './mongo';\nimport { instrumentMongoose, mongooseIntegration } from './mongoose';\nimport { instrumentMysql, mysqlIntegration } from './mysql';\nimport { instrumentMysql2, mysql2Integration } from './mysql2';\nimport { instrumentOpenAi, openAIIntegration } from './openai';\nimport { instrumentPostgres, postgresIntegration } from './postgres';\nimport { instrumentPostgresJs, postgresJsIntegration } from './postgresjs';\nimport {
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/integrations/tracing/index.ts"],"sourcesContent":["import type { Integration } from '@sentry/core';\nimport { prismaIntegration } from '@sentry/server-utils';\nimport { instrumentSentryHttp } from '../http';\nimport { amqplibIntegration, instrumentAmqplib } from './amqplib';\nimport { anthropicAIIntegration, instrumentAnthropicAi } from './anthropic-ai';\nimport { connectIntegration, instrumentConnect } from './connect';\nimport { expressIntegration, instrumentExpress } from './express';\nimport { fastifyIntegration, instrumentFastifyV3 } from './fastify';\nimport { firebaseIntegration, instrumentFirebase } from './firebase';\nimport { genericPoolIntegration, instrumentGenericPool } from './genericPool';\nimport { googleGenAIIntegration, instrumentGoogleGenAI } from './google-genai';\nimport { graphqlIntegration, instrumentGraphql } from './graphql';\nimport { hapiIntegration, instrumentHapi } from './hapi';\nimport { honoIntegration, instrumentHono } from './hono';\nimport { instrumentKafka, kafkaIntegration } from './kafka';\nimport { instrumentKoa, koaIntegration } from './koa';\nimport { instrumentLangChain, langChainIntegration } from './langchain';\nimport { instrumentLangGraph, langGraphIntegration } from './langgraph';\nimport { instrumentLruMemoizer, lruMemoizerIntegration } from './lrumemoizer';\nimport { instrumentMongo, mongoIntegration } from './mongo';\nimport { instrumentMongoose, mongooseIntegration } from './mongoose';\nimport { instrumentMysql, mysqlIntegration } from './mysql';\nimport { instrumentMysql2, mysql2Integration } from './mysql2';\nimport { instrumentOpenAi, openAIIntegration } from './openai';\nimport { instrumentPostgres, postgresIntegration } from './postgres';\nimport { instrumentPostgresJs, postgresJsIntegration } from './postgresjs';\nimport { instrumentRedis, redisIntegration } from './redis';\nimport { instrumentTedious, tediousIntegration } from './tedious';\nimport { instrumentVercelAi, vercelAIIntegration } from './vercelai';\n\n/**\n * With OTEL, all performance integrations will be added, as OTEL only initializes them when the patched package is actually required.\n */\nexport function getAutoPerformanceIntegrations(): Integration[] {\n return [\n expressIntegration(),\n fastifyIntegration(),\n graphqlIntegration(),\n // eslint-disable-next-line typescript/no-deprecated\n honoIntegration(),\n mongoIntegration(),\n mongooseIntegration(),\n mysqlIntegration(),\n mysql2Integration(),\n redisIntegration(),\n postgresIntegration(),\n prismaIntegration(),\n hapiIntegration(),\n koaIntegration(),\n connectIntegration(),\n tediousIntegration(),\n genericPoolIntegration(),\n kafkaIntegration(),\n amqplibIntegration(),\n lruMemoizerIntegration(),\n // AI providers\n // LangChain must come first to disable AI provider integrations before they instrument\n langChainIntegration(),\n langGraphIntegration(),\n vercelAIIntegration(),\n openAIIntegration(),\n anthropicAIIntegration(),\n googleGenAIIntegration(),\n postgresJsIntegration(),\n firebaseIntegration(),\n ];\n}\n\n/**\n * Get a list of methods to instrument OTEL, when preload instrumentation.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getOpenTelemetryInstrumentationToPreload(): (((options?: any) => void) & { id: string })[] {\n return [\n instrumentSentryHttp,\n instrumentExpress,\n instrumentConnect,\n instrumentFastifyV3,\n instrumentHapi,\n instrumentHono,\n instrumentKafka,\n instrumentKoa,\n instrumentLruMemoizer,\n instrumentMongo,\n instrumentMongoose,\n instrumentMysql,\n instrumentMysql2,\n instrumentPostgres,\n instrumentHapi,\n instrumentGraphql,\n instrumentRedis,\n instrumentTedious,\n instrumentGenericPool,\n instrumentAmqplib,\n instrumentLangChain,\n instrumentVercelAi,\n instrumentOpenAi,\n instrumentPostgresJs,\n instrumentFirebase,\n instrumentAnthropicAi,\n instrumentGoogleGenAI,\n instrumentLangGraph,\n ];\n}\n"],"names":["expressIntegration","fastifyIntegration","graphqlIntegration","honoIntegration","mongoIntegration","mongooseIntegration","mysqlIntegration","mysql2Integration","redisIntegration","postgresIntegration","prismaIntegration","hapiIntegration","koaIntegration","connectIntegration","tediousIntegration","genericPoolIntegration","kafkaIntegration","amqplibIntegration","lruMemoizerIntegration","langChainIntegration","langGraphIntegration","vercelAIIntegration","openAIIntegration","anthropicAIIntegration","googleGenAIIntegration","postgresJsIntegration","firebaseIntegration","instrumentSentryHttp","instrumentExpress","instrumentConnect","instrumentFastifyV3","instrumentHapi","instrumentHono","instrumentKafka","instrumentKoa","instrumentLruMemoizer","instrumentMongo","instrumentMongoose","instrumentMysql","instrumentMysql2","instrumentPostgres","instrumentGraphql","instrumentRedis","instrumentTedious","instrumentGenericPool","instrumentAmqplib","instrumentLangChain","instrumentVercelAi","instrumentOpenAi","instrumentPostgresJs","instrumentFirebase","instrumentAnthropicAi","instrumentGoogleGenAI","instrumentLangGraph"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCO,SAAS,8BAAA,GAAgD;AAC9D,EAAA,OAAO;AAAA,IACLA,0BAAA,EAAmB;AAAA,IACnBC,0BAAA,EAAmB;AAAA,IACnBC,0BAAA,EAAmB;AAAA;AAAA,IAEnBC,uBAAA,EAAgB;AAAA,IAChBC,wBAAA,EAAiB;AAAA,IACjBC,2BAAA,EAAoB;AAAA,IACpBC,wBAAA,EAAiB;AAAA,IACjBC,yBAAA,EAAkB;AAAA,IAClBC,wBAAA,EAAiB;AAAA,IACjBC,2BAAA,EAAoB;AAAA,IACpBC,6BAAA,EAAkB;AAAA,IAClBC,uBAAA,EAAgB;AAAA,IAChBC,sBAAA,EAAe;AAAA,IACfC,wBAAA,EAAmB;AAAA,IACnBC,0BAAA,EAAmB;AAAA,IACnBC,8BAAA,EAAuB;AAAA,IACvBC,wBAAA,EAAiB;AAAA,IACjBC,0BAAA,EAAmB;AAAA,IACnBC,8BAAA,EAAuB;AAAA;AAAA;AAAA,IAGvBC,4BAAA,EAAqB;AAAA,IACrBC,4BAAA,EAAqB;AAAA,IACrBC,2BAAA,EAAoB;AAAA,IACpBC,yBAAA,EAAkB;AAAA,IAClBC,8BAAA,EAAuB;AAAA,IACvBC,8BAAA,EAAuB;AAAA,IACvBC,gCAAA,EAAsB;AAAA,IACtBC,4BAAA;AAAoB,GACtB;AACF;AAMO,SAAS,wCAAA,GAA2F;AACzG,EAAA,OAAO;AAAA,IACLC,yBAAA;AAAA,IACAC,yBAAA;AAAA,IACAC,uBAAA;AAAA,IACAC,2BAAA;AAAA,IACAC,sBAAA;AAAA,IACAC,sBAAA;AAAA,IACAC,uBAAA;AAAA,IACAC,qBAAA;AAAA,IACAC,6BAAA;AAAA,IACAC,uBAAA;AAAA,IACAC,0BAAA;AAAA,IACAC,uBAAA;AAAA,IACAC,wBAAA;AAAA,IACAC,0BAAA;AAAA,IACAT,sBAAA;AAAA,IACAU,yBAAA;AAAA,IACAC,uBAAA;AAAA,IACAC,yBAAA;AAAA,IACAC,6BAAA;AAAA,IACAC,yBAAA;AAAA,IACAC,2BAAA;AAAA,IACAC,0BAAA;AAAA,IACAC,wBAAA;AAAA,IACAC,+BAAA;AAAA,IACAC,2BAAA;AAAA,IACAC,6BAAA;AAAA,IACAC,6BAAA;AAAA,IACAC;AAAA,GACF;AACF;;;;;"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
3
3
|
const instrumentation = require('./vendored/instrumentation.js');
|
|
4
4
|
const core = require('@sentry/core');
|
|
5
5
|
const nodeCore = require('@sentry/node-core');
|
|
6
|
+
const orchestrion = require('@sentry/server-utils/orchestrion');
|
|
6
7
|
|
|
7
8
|
const INTEGRATION_NAME = "Knex";
|
|
8
9
|
const instrumentKnex = nodeCore.generateInstrumentOnce(INTEGRATION_NAME, () => new instrumentation.KnexInstrumentation());
|
|
@@ -10,7 +11,11 @@ const _knexIntegration = (() => {
|
|
|
10
11
|
return {
|
|
11
12
|
name: INTEGRATION_NAME,
|
|
12
13
|
setupOnce() {
|
|
13
|
-
|
|
14
|
+
if (orchestrion.isOrchestrionInjected()) {
|
|
15
|
+
orchestrion.knexChannelIntegration().setupOnce?.();
|
|
16
|
+
} else {
|
|
17
|
+
instrumentKnex();
|
|
18
|
+
}
|
|
14
19
|
}
|
|
15
20
|
};
|
|
16
21
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../src/integrations/tracing/knex/index.ts"],"sourcesContent":["import { KnexInstrumentation } from './vendored/instrumentation';\nimport type { IntegrationFn } from '@sentry/core';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Knex' as const;\n\nexport const instrumentKnex = generateInstrumentOnce(INTEGRATION_NAME, () => new KnexInstrumentation());\n\nconst _knexIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentKnex();\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Knex integration\n *\n * Capture tracing data for [Knex](https://knexjs.org/).\n *\n * @example\n * ```javascript\n * import * as Sentry from '@sentry/node';\n *\n * Sentry.init({\n * integrations: [Sentry.knexIntegration()],\n * });\n * ```\n */\nexport const knexIntegration = defineIntegration(_knexIntegration);\n"],"names":["generateInstrumentOnce","KnexInstrumentation","defineIntegration"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../src/integrations/tracing/knex/index.ts"],"sourcesContent":["import { KnexInstrumentation } from './vendored/instrumentation';\nimport type { IntegrationFn } from '@sentry/core';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { isOrchestrionInjected, knexChannelIntegration } from '@sentry/server-utils/orchestrion';\n\nconst INTEGRATION_NAME = 'Knex' as const;\n\nexport const instrumentKnex = generateInstrumentOnce(INTEGRATION_NAME, () => new KnexInstrumentation());\n\nconst _knexIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n // Prefer the diagnostics-channel subscriber when orchestrion injected its channels; otherwise\n // fall back to the vendored OTel instrumentation. `isOrchestrionInjected()` is only reliable by\n // `setupOnce` (the runtime injection runs during `Sentry.init()`, after integrations are built).\n if (isOrchestrionInjected()) {\n knexChannelIntegration().setupOnce?.();\n } else {\n instrumentKnex();\n }\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Knex integration\n *\n * Capture tracing data for [Knex](https://knexjs.org/).\n *\n * @example\n * ```javascript\n * import * as Sentry from '@sentry/node';\n *\n * Sentry.init({\n * integrations: [Sentry.knexIntegration()],\n * });\n * ```\n */\nexport const knexIntegration = defineIntegration(_knexIntegration);\n"],"names":["generateInstrumentOnce","KnexInstrumentation","isOrchestrionInjected","knexChannelIntegration","defineIntegration"],"mappings":";;;;;;;AAMA,MAAM,gBAAA,GAAmB,MAAA;AAElB,MAAM,iBAAiBA,+BAAA,CAAuB,gBAAA,EAAkB,MAAM,IAAIC,qCAAqB;AAEtG,MAAM,oBAAoB,MAAM;AAC9B,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,gBAAA;AAAA,IACN,SAAA,GAAY;AAIV,MAAA,IAAIC,mCAAsB,EAAG;AAC3B,QAAAC,kCAAA,GAAyB,SAAA,IAAY;AAAA,MACvC,CAAA,MAAO;AACL,QAAA,cAAA,EAAe;AAAA,MACjB;AAAA,IACF;AAAA,GACF;AACF,CAAA,CAAA;AAgBO,MAAM,eAAA,GAAkBC,uBAAkB,gBAAgB;;;;;"}
|
|
@@ -9,6 +9,7 @@ const getMiddlewareMetadata = (context, layer, isRouter, layerPath) => {
|
|
|
9
9
|
return {
|
|
10
10
|
attributes: {
|
|
11
11
|
[AttributeNames.AttributeNames.KOA_NAME]: layerPath?.toString(),
|
|
12
|
+
// TODO(v11): remove, replaced by http.route
|
|
12
13
|
[AttributeNames.AttributeNames.KOA_TYPE]: types.KoaLayerType.ROUTER,
|
|
13
14
|
[attributes.HTTP_ROUTE]: layerPath?.toString()
|
|
14
15
|
},
|
|
@@ -18,7 +19,9 @@ const getMiddlewareMetadata = (context, layer, isRouter, layerPath) => {
|
|
|
18
19
|
return {
|
|
19
20
|
attributes: {
|
|
20
21
|
[AttributeNames.AttributeNames.KOA_NAME]: layer.name ?? "middleware",
|
|
21
|
-
|
|
22
|
+
// TODO(v11): remove, replaced by code.function.name
|
|
23
|
+
[AttributeNames.AttributeNames.KOA_TYPE]: types.KoaLayerType.MIDDLEWARE,
|
|
24
|
+
[attributes.CODE_FUNCTION_NAME]: layer.name ?? "middleware"
|
|
22
25
|
},
|
|
23
26
|
name: `middleware - ${layer.name}`
|
|
24
27
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../../../src/integrations/tracing/koa/vendored/utils.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n *\n * NOTICE from the Sentry authors:\n * - Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/tree/15ef7506553f631ea4181391e0c5725a56f0d082/packages/instrumentation-koa\n * - Upstream version: @opentelemetry/instrumentation-koa@0.66.0\n */\n\nimport { KoaLayerType, type KoaInstrumentationConfig } from './types';\nimport type { KoaContext, KoaMiddleware } from './internal-types';\nimport { AttributeNames } from './enums/AttributeNames';\nimport type { Attributes } from '@opentelemetry/api';\nimport { HTTP_ROUTE } from '@sentry/conventions/attributes';\n\nexport const getMiddlewareMetadata = (\n context: KoaContext,\n layer: KoaMiddleware,\n isRouter: boolean,\n layerPath?: string | RegExp,\n): {\n attributes: Attributes;\n name: string;\n} => {\n if (isRouter) {\n return {\n attributes: {\n [AttributeNames.KOA_NAME]: layerPath?.toString()
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../../src/integrations/tracing/koa/vendored/utils.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n *\n * NOTICE from the Sentry authors:\n * - Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/tree/15ef7506553f631ea4181391e0c5725a56f0d082/packages/instrumentation-koa\n * - Upstream version: @opentelemetry/instrumentation-koa@0.66.0\n */\n\nimport { KoaLayerType, type KoaInstrumentationConfig } from './types';\nimport type { KoaContext, KoaMiddleware } from './internal-types';\nimport { AttributeNames } from './enums/AttributeNames';\nimport type { Attributes } from '@opentelemetry/api';\nimport { CODE_FUNCTION_NAME, HTTP_ROUTE } from '@sentry/conventions/attributes';\n\nexport const getMiddlewareMetadata = (\n context: KoaContext,\n layer: KoaMiddleware,\n isRouter: boolean,\n layerPath?: string | RegExp,\n): {\n attributes: Attributes;\n name: string;\n} => {\n if (isRouter) {\n return {\n attributes: {\n [AttributeNames.KOA_NAME]: layerPath?.toString(), // TODO(v11): remove, replaced by http.route\n [AttributeNames.KOA_TYPE]: KoaLayerType.ROUTER,\n [HTTP_ROUTE]: layerPath?.toString(),\n },\n name: context._matchedRouteName || `router - ${layerPath}`,\n };\n } else {\n return {\n attributes: {\n [AttributeNames.KOA_NAME]: layer.name ?? 'middleware', // TODO(v11): remove, replaced by code.function.name\n [AttributeNames.KOA_TYPE]: KoaLayerType.MIDDLEWARE,\n [CODE_FUNCTION_NAME]: layer.name ?? 'middleware',\n },\n name: `middleware - ${layer.name}`,\n };\n }\n};\n\n/**\n * Check whether the given request is ignored by configuration\n * @param [list] List of ignore patterns\n * @param [onException] callback for doing something when an exception has\n * occurred\n */\nexport const isLayerIgnored = (type: KoaLayerType, config?: KoaInstrumentationConfig): boolean => {\n return !!(Array.isArray(config?.ignoreLayersType) && config?.ignoreLayersType?.includes(type));\n};\n"],"names":["AttributeNames","KoaLayerType","HTTP_ROUTE","CODE_FUNCTION_NAME"],"mappings":";;;;;;AAeO,MAAM,qBAAA,GAAwB,CACnC,OAAA,EACA,KAAA,EACA,UACA,SAAA,KAIG;AACH,EAAA,IAAI,QAAA,EAAU;AACZ,IAAA,OAAO;AAAA,MACL,UAAA,EAAY;AAAA,QACV,CAACA,6BAAA,CAAe,QAAQ,GAAG,WAAW,QAAA,EAAS;AAAA;AAAA,QAC/C,CAACA,6BAAA,CAAe,QAAQ,GAAGC,kBAAA,CAAa,MAAA;AAAA,QACxC,CAACC,qBAAU,GAAG,SAAA,EAAW,QAAA;AAAS,OACpC;AAAA,MACA,IAAA,EAAM,OAAA,CAAQ,iBAAA,IAAqB,CAAA,SAAA,EAAY,SAAS,CAAA;AAAA,KAC1D;AAAA,EACF,CAAA,MAAO;AACL,IAAA,OAAO;AAAA,MACL,UAAA,EAAY;AAAA,QACV,CAACF,6BAAA,CAAe,QAAQ,GAAG,MAAM,IAAA,IAAQ,YAAA;AAAA;AAAA,QACzC,CAACA,6BAAA,CAAe,QAAQ,GAAGC,kBAAA,CAAa,UAAA;AAAA,QACxC,CAACE,6BAAkB,GAAG,KAAA,CAAM,IAAA,IAAQ;AAAA,OACtC;AAAA,MACA,IAAA,EAAM,CAAA,aAAA,EAAgB,KAAA,CAAM,IAAI,CAAA;AAAA,KAClC;AAAA,EACF;AACF;AAQO,MAAM,cAAA,GAAiB,CAAC,IAAA,EAAoB,MAAA,KAA+C;AAChG,EAAA,OAAO,CAAC,EAAE,KAAA,CAAM,OAAA,CAAQ,MAAA,EAAQ,gBAAgB,CAAA,IAAK,MAAA,EAAQ,gBAAA,EAAkB,QAAA,CAAS,IAAI,CAAA,CAAA;AAC9F;;;;;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
2
2
|
|
|
3
3
|
const core = require('@sentry/core');
|
|
4
|
-
const internalTypes = require('./internal-types.js');
|
|
5
4
|
const utils = require('./utils.js');
|
|
5
|
+
const serverUtils = require('@sentry/server-utils');
|
|
6
6
|
|
|
7
7
|
function getV3PatchOperation(operationName) {
|
|
8
8
|
return (original) => {
|
|
@@ -15,7 +15,7 @@ function getV3PatchOperation(operationName) {
|
|
|
15
15
|
return original.call(this, server, ns, ops, options, callback);
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
const span =
|
|
18
|
+
const span = serverUtils.startMongoSpan(utils.getV3SpanAttributes(ns, server, ops[0], operationName));
|
|
19
19
|
const patchedCallback = utils.patchEnd(span, resultHandler);
|
|
20
20
|
if (typeof options === "function") {
|
|
21
21
|
return original.call(this, server, ns, ops, patchedCallback);
|
|
@@ -36,9 +36,8 @@ function getV3PatchCommand() {
|
|
|
36
36
|
return original.call(this, server, ns, cmd, options, callback);
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
|
-
const
|
|
40
|
-
const
|
|
41
|
-
const span = utils.startMongoSpan(utils.getV3SpanAttributes(ns, server, cmd, operationName));
|
|
39
|
+
const operationName = serverUtils.getV3CommandOperation(cmd);
|
|
40
|
+
const span = serverUtils.startMongoSpan(utils.getV3SpanAttributes(ns, server, cmd, operationName));
|
|
42
41
|
const patchedCallback = utils.patchEnd(span, resultHandler);
|
|
43
42
|
if (typeof options === "function") {
|
|
44
43
|
return original.call(this, server, ns, cmd, patchedCallback);
|
|
@@ -58,7 +57,7 @@ function getV4PatchCommandCallback() {
|
|
|
58
57
|
}
|
|
59
58
|
let span = void 0;
|
|
60
59
|
if (!utils.shouldSkipInstrumentation()) {
|
|
61
|
-
span =
|
|
60
|
+
span = serverUtils.startMongoSpan(utils.getV4SpanAttributes(this, ns, cmd, commandType));
|
|
62
61
|
}
|
|
63
62
|
const patchedCallback = utils.patchEnd(span, resultHandler);
|
|
64
63
|
return original.call(this, ns, cmd, options, patchedCallback);
|
|
@@ -76,7 +75,7 @@ function getV4PatchCommandPromise() {
|
|
|
76
75
|
}
|
|
77
76
|
let span = void 0;
|
|
78
77
|
if (!utils.shouldSkipInstrumentation()) {
|
|
79
|
-
span =
|
|
78
|
+
span = serverUtils.startMongoSpan(utils.getV4SpanAttributes(this, ns, cmd, commandType));
|
|
80
79
|
}
|
|
81
80
|
const patchedCallback = utils.patchEnd(span, resultHandler);
|
|
82
81
|
const result = original.apply(this, args);
|
|
@@ -99,7 +98,7 @@ function getV3PatchFind() {
|
|
|
99
98
|
return original.call(this, server, ns, cmd, cursorState, options, callback);
|
|
100
99
|
}
|
|
101
100
|
}
|
|
102
|
-
const span =
|
|
101
|
+
const span = serverUtils.startMongoSpan(utils.getV3SpanAttributes(ns, server, cmd, "find"));
|
|
103
102
|
const patchedCallback = utils.patchEnd(span, resultHandler);
|
|
104
103
|
if (typeof options === "function") {
|
|
105
104
|
return original.call(this, server, ns, cmd, cursorState, patchedCallback);
|
|
@@ -120,7 +119,7 @@ function getV3PatchCursor() {
|
|
|
120
119
|
return original.call(this, server, ns, cursorState, batchSize, options, callback);
|
|
121
120
|
}
|
|
122
121
|
}
|
|
123
|
-
const span =
|
|
122
|
+
const span = serverUtils.startMongoSpan(utils.getV3SpanAttributes(ns, server, cursorState.cmd, "getMore"));
|
|
124
123
|
const patchedCallback = utils.patchEnd(span, resultHandler);
|
|
125
124
|
if (typeof options === "function") {
|
|
126
125
|
return original.call(this, server, ns, cursorState, batchSize, patchedCallback);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patches.js","sources":["../../../../../../src/integrations/tracing/mongo/vendored/patches.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n *\n * NOTICE from the Sentry authors:\n * - Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/tree/15ef7506553f631ea4181391e0c5725a56f0d082/packages/instrumentation-mongodb\n * - Upstream version: @opentelemetry/instrumentation-mongodb@0.71.0\n * - Refactored to use Sentry's span APIs instead of OpenTelemetry tracing APIs\n */\n\nimport { getActiveSpan, withActiveSpan } from '@sentry/core';\nimport type {\n CursorState,\n MongodbNamespace,\n MongoInternalCommand,\n MongoInternalTopology,\n V4Connection,\n V4ConnectionPool,\n WireProtocolInternal,\n} from './internal-types';\nimport { MongodbCommandType } from './internal-types';\nimport {\n getCommandType,\n getV3SpanAttributes,\n getV4SpanAttributes,\n patchEnd,\n shouldSkipInstrumentation,\n startMongoSpan,\n} from './utils';\n\n/** Creates spans for v3 common operations (insert/update/remove). */\nexport function getV3PatchOperation(operationName: 'insert' | 'update' | 'remove') {\n return (original: WireProtocolInternal[typeof operationName]) => {\n return function patchedServerCommand(\n this: unknown,\n server: MongoInternalTopology,\n ns: string,\n ops: unknown[],\n options: unknown | Function,\n callback?: Function,\n ) {\n const resultHandler = typeof options === 'function' ? options : callback;\n if (shouldSkipInstrumentation() || typeof resultHandler !== 'function' || typeof ops !== 'object') {\n if (typeof options === 'function') {\n return original.call(this, server, ns, ops, options);\n } else {\n return original.call(this, server, ns, ops, options, callback);\n }\n }\n\n const span = startMongoSpan(getV3SpanAttributes(ns, server, ops[0] as any, operationName));\n\n const patchedCallback = patchEnd(span, resultHandler);\n // handle when options is the callback to send the correct number of args\n if (typeof options === 'function') {\n return original.call(this, server, ns, ops, patchedCallback);\n } else {\n return original.call(this, server, ns, ops, options, patchedCallback);\n }\n };\n };\n}\n\n/** Creates spans for the v3 command operation. */\nexport function getV3PatchCommand() {\n return (original: WireProtocolInternal['command']) => {\n return function patchedServerCommand(\n this: unknown,\n server: MongoInternalTopology,\n ns: string,\n cmd: MongoInternalCommand,\n options: unknown | Function,\n callback?: Function,\n ) {\n const resultHandler = typeof options === 'function' ? options : callback;\n\n if (shouldSkipInstrumentation() || typeof resultHandler !== 'function' || typeof cmd !== 'object') {\n if (typeof options === 'function') {\n return original.call(this, server, ns, cmd, options);\n } else {\n return original.call(this, server, ns, cmd, options, callback);\n }\n }\n\n const commandType = getCommandType(cmd);\n const operationName = commandType === MongodbCommandType.UNKNOWN ? undefined : commandType;\n const span = startMongoSpan(getV3SpanAttributes(ns, server, cmd, operationName));\n\n const patchedCallback = patchEnd(span, resultHandler);\n // handle when options is the callback to send the correct number of args\n if (typeof options === 'function') {\n return original.call(this, server, ns, cmd, patchedCallback);\n } else {\n return original.call(this, server, ns, cmd, options, patchedCallback);\n }\n };\n };\n}\n\n/** Creates spans for the v4 (<6.4) callback-style command operation. */\nexport function getV4PatchCommandCallback() {\n return (original: V4Connection['commandCallback']) => {\n return function patchedV4ServerCommand(\n this: any,\n ns: MongodbNamespace,\n cmd: any,\n options: undefined | unknown,\n callback: any,\n ) {\n const resultHandler = callback;\n const commandType = Object.keys(cmd)[0];\n\n if (typeof cmd !== 'object' || cmd.ismaster || cmd.hello) {\n return original.call(this, ns, cmd, options, callback);\n }\n\n let span = undefined;\n if (!shouldSkipInstrumentation()) {\n span = startMongoSpan(getV4SpanAttributes(this, ns, cmd, commandType));\n }\n const patchedCallback = patchEnd(span, resultHandler);\n\n return original.call(this, ns, cmd, options, patchedCallback);\n };\n };\n}\n\n/** Creates spans for the v4 (>=6.4) promise-style command operation. */\nexport function getV4PatchCommandPromise() {\n return (original: V4Connection['commandPromise']) => {\n return function patchedV4ServerCommand(this: any, ...args: Parameters<V4Connection['commandPromise']>) {\n const [ns, cmd] = args;\n const commandType = Object.keys(cmd)[0];\n const resultHandler = () => undefined;\n\n if (typeof cmd !== 'object' || cmd.ismaster || cmd.hello) {\n return original.apply(this, args);\n }\n\n let span = undefined;\n if (!shouldSkipInstrumentation()) {\n span = startMongoSpan(getV4SpanAttributes(this, ns, cmd, commandType));\n }\n\n const patchedCallback = patchEnd(span, resultHandler);\n\n const result = original.apply(this, args);\n result.then(\n (res: any) => patchedCallback(null, res),\n (err: any) => patchedCallback(err),\n );\n\n return result;\n };\n };\n}\n\n/** Creates spans for the v3 find operation. */\nexport function getV3PatchFind() {\n return (original: WireProtocolInternal['query']) => {\n return function patchedServerCommand(\n this: unknown,\n server: MongoInternalTopology,\n ns: string,\n cmd: MongoInternalCommand,\n cursorState: CursorState,\n options: unknown | Function,\n callback?: Function,\n ) {\n const resultHandler = typeof options === 'function' ? options : callback;\n\n if (shouldSkipInstrumentation() || typeof resultHandler !== 'function' || typeof cmd !== 'object') {\n if (typeof options === 'function') {\n return original.call(this, server, ns, cmd, cursorState, options);\n } else {\n return original.call(this, server, ns, cmd, cursorState, options, callback);\n }\n }\n\n const span = startMongoSpan(getV3SpanAttributes(ns, server, cmd, 'find'));\n\n const patchedCallback = patchEnd(span, resultHandler);\n // handle when options is the callback to send the correct number of args\n if (typeof options === 'function') {\n return original.call(this, server, ns, cmd, cursorState, patchedCallback);\n } else {\n return original.call(this, server, ns, cmd, cursorState, options, patchedCallback);\n }\n };\n };\n}\n\n/** Creates spans for the v3 getMore (cursor) operation. */\nexport function getV3PatchCursor() {\n return (original: WireProtocolInternal['getMore']) => {\n return function patchedServerCommand(\n this: unknown,\n server: MongoInternalTopology,\n ns: string,\n cursorState: CursorState,\n batchSize: number,\n options: unknown | Function,\n callback?: Function,\n ) {\n const resultHandler = typeof options === 'function' ? options : callback;\n\n if (shouldSkipInstrumentation() || typeof resultHandler !== 'function') {\n if (typeof options === 'function') {\n return original.call(this, server, ns, cursorState, batchSize, options);\n } else {\n return original.call(this, server, ns, cursorState, batchSize, options, callback);\n }\n }\n\n const span = startMongoSpan(getV3SpanAttributes(ns, server, cursorState.cmd, 'getMore'));\n\n const patchedCallback = patchEnd(span, resultHandler);\n // handle when options is the callback to send the correct number of args\n if (typeof options === 'function') {\n return original.call(this, server, ns, cursorState, batchSize, patchedCallback);\n } else {\n return original.call(this, server, ns, cursorState, batchSize, options, patchedCallback);\n }\n };\n };\n}\n\n// This patch will become unnecessary once https://jira.mongodb.org/browse/NODE-5639 is done.\nexport function getV4ConnectionPoolCheckOut() {\n return (original: V4ConnectionPool['checkOut']) => {\n return function patchedCheckout(this: unknown, callback: (error: any, connection: any) => void) {\n // The pool runs the callback in a detached context, so re-activate the span that was\n // active when `checkOut` was called — otherwise the pooled operation finds no parent.\n const parentSpan = getActiveSpan();\n return original.call(this, function (this: unknown, ...args: [any, any]) {\n return withActiveSpan(parentSpan ?? null, () => callback.apply(this, args));\n });\n };\n };\n}\n"],"names":["shouldSkipInstrumentation","startMongoSpan","getV3SpanAttributes","patchEnd","getCommandType","MongodbCommandType","getV4SpanAttributes","getActiveSpan","withActiveSpan"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"patches.js","sources":["../../../../../../src/integrations/tracing/mongo/vendored/patches.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n *\n * NOTICE from the Sentry authors:\n * - Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/tree/15ef7506553f631ea4181391e0c5725a56f0d082/packages/instrumentation-mongodb\n * - Upstream version: @opentelemetry/instrumentation-mongodb@0.71.0\n * - Refactored to use Sentry's span APIs instead of OpenTelemetry tracing APIs\n */\n\nimport { getActiveSpan, withActiveSpan } from '@sentry/core';\nimport type {\n CursorState,\n MongodbNamespace,\n MongoInternalCommand,\n MongoInternalTopology,\n V4Connection,\n V4ConnectionPool,\n WireProtocolInternal,\n} from './internal-types';\nimport {\n getV3CommandOperation,\n getV3SpanAttributes,\n getV4SpanAttributes,\n patchEnd,\n shouldSkipInstrumentation,\n startMongoSpan,\n} from './utils';\n\n/** Creates spans for v3 common operations (insert/update/remove). */\nexport function getV3PatchOperation(operationName: 'insert' | 'update' | 'remove') {\n return (original: WireProtocolInternal[typeof operationName]) => {\n return function patchedServerCommand(\n this: unknown,\n server: MongoInternalTopology,\n ns: string,\n ops: unknown[],\n options: unknown | Function,\n callback?: Function,\n ) {\n const resultHandler = typeof options === 'function' ? options : callback;\n if (shouldSkipInstrumentation() || typeof resultHandler !== 'function' || typeof ops !== 'object') {\n if (typeof options === 'function') {\n return original.call(this, server, ns, ops, options);\n } else {\n return original.call(this, server, ns, ops, options, callback);\n }\n }\n\n const span = startMongoSpan(getV3SpanAttributes(ns, server, ops[0] as any, operationName));\n\n const patchedCallback = patchEnd(span, resultHandler);\n // handle when options is the callback to send the correct number of args\n if (typeof options === 'function') {\n return original.call(this, server, ns, ops, patchedCallback);\n } else {\n return original.call(this, server, ns, ops, options, patchedCallback);\n }\n };\n };\n}\n\n/** Creates spans for the v3 command operation. */\nexport function getV3PatchCommand() {\n return (original: WireProtocolInternal['command']) => {\n return function patchedServerCommand(\n this: unknown,\n server: MongoInternalTopology,\n ns: string,\n cmd: MongoInternalCommand,\n options: unknown | Function,\n callback?: Function,\n ) {\n const resultHandler = typeof options === 'function' ? options : callback;\n\n if (shouldSkipInstrumentation() || typeof resultHandler !== 'function' || typeof cmd !== 'object') {\n if (typeof options === 'function') {\n return original.call(this, server, ns, cmd, options);\n } else {\n return original.call(this, server, ns, cmd, options, callback);\n }\n }\n\n const operationName = getV3CommandOperation(cmd as unknown as Record<string, unknown>);\n const span = startMongoSpan(getV3SpanAttributes(ns, server, cmd, operationName));\n\n const patchedCallback = patchEnd(span, resultHandler);\n // handle when options is the callback to send the correct number of args\n if (typeof options === 'function') {\n return original.call(this, server, ns, cmd, patchedCallback);\n } else {\n return original.call(this, server, ns, cmd, options, patchedCallback);\n }\n };\n };\n}\n\n/** Creates spans for the v4 (<6.4) callback-style command operation. */\nexport function getV4PatchCommandCallback() {\n return (original: V4Connection['commandCallback']) => {\n return function patchedV4ServerCommand(\n this: any,\n ns: MongodbNamespace,\n cmd: any,\n options: undefined | unknown,\n callback: any,\n ) {\n const resultHandler = callback;\n const commandType = Object.keys(cmd)[0];\n\n if (typeof cmd !== 'object' || cmd.ismaster || cmd.hello) {\n return original.call(this, ns, cmd, options, callback);\n }\n\n let span = undefined;\n if (!shouldSkipInstrumentation()) {\n span = startMongoSpan(getV4SpanAttributes(this, ns, cmd, commandType));\n }\n const patchedCallback = patchEnd(span, resultHandler);\n\n return original.call(this, ns, cmd, options, patchedCallback);\n };\n };\n}\n\n/** Creates spans for the v4 (>=6.4) promise-style command operation. */\nexport function getV4PatchCommandPromise() {\n return (original: V4Connection['commandPromise']) => {\n return function patchedV4ServerCommand(this: any, ...args: Parameters<V4Connection['commandPromise']>) {\n const [ns, cmd] = args;\n const commandType = Object.keys(cmd)[0];\n const resultHandler = () => undefined;\n\n if (typeof cmd !== 'object' || cmd.ismaster || cmd.hello) {\n return original.apply(this, args);\n }\n\n let span = undefined;\n if (!shouldSkipInstrumentation()) {\n span = startMongoSpan(getV4SpanAttributes(this, ns, cmd, commandType));\n }\n\n const patchedCallback = patchEnd(span, resultHandler);\n\n const result = original.apply(this, args);\n result.then(\n (res: any) => patchedCallback(null, res),\n (err: any) => patchedCallback(err),\n );\n\n return result;\n };\n };\n}\n\n/** Creates spans for the v3 find operation. */\nexport function getV3PatchFind() {\n return (original: WireProtocolInternal['query']) => {\n return function patchedServerCommand(\n this: unknown,\n server: MongoInternalTopology,\n ns: string,\n cmd: MongoInternalCommand,\n cursorState: CursorState,\n options: unknown | Function,\n callback?: Function,\n ) {\n const resultHandler = typeof options === 'function' ? options : callback;\n\n if (shouldSkipInstrumentation() || typeof resultHandler !== 'function' || typeof cmd !== 'object') {\n if (typeof options === 'function') {\n return original.call(this, server, ns, cmd, cursorState, options);\n } else {\n return original.call(this, server, ns, cmd, cursorState, options, callback);\n }\n }\n\n const span = startMongoSpan(getV3SpanAttributes(ns, server, cmd, 'find'));\n\n const patchedCallback = patchEnd(span, resultHandler);\n // handle when options is the callback to send the correct number of args\n if (typeof options === 'function') {\n return original.call(this, server, ns, cmd, cursorState, patchedCallback);\n } else {\n return original.call(this, server, ns, cmd, cursorState, options, patchedCallback);\n }\n };\n };\n}\n\n/** Creates spans for the v3 getMore (cursor) operation. */\nexport function getV3PatchCursor() {\n return (original: WireProtocolInternal['getMore']) => {\n return function patchedServerCommand(\n this: unknown,\n server: MongoInternalTopology,\n ns: string,\n cursorState: CursorState,\n batchSize: number,\n options: unknown | Function,\n callback?: Function,\n ) {\n const resultHandler = typeof options === 'function' ? options : callback;\n\n if (shouldSkipInstrumentation() || typeof resultHandler !== 'function') {\n if (typeof options === 'function') {\n return original.call(this, server, ns, cursorState, batchSize, options);\n } else {\n return original.call(this, server, ns, cursorState, batchSize, options, callback);\n }\n }\n\n const span = startMongoSpan(getV3SpanAttributes(ns, server, cursorState.cmd, 'getMore'));\n\n const patchedCallback = patchEnd(span, resultHandler);\n // handle when options is the callback to send the correct number of args\n if (typeof options === 'function') {\n return original.call(this, server, ns, cursorState, batchSize, patchedCallback);\n } else {\n return original.call(this, server, ns, cursorState, batchSize, options, patchedCallback);\n }\n };\n };\n}\n\n// This patch will become unnecessary once https://jira.mongodb.org/browse/NODE-5639 is done.\nexport function getV4ConnectionPoolCheckOut() {\n return (original: V4ConnectionPool['checkOut']) => {\n return function patchedCheckout(this: unknown, callback: (error: any, connection: any) => void) {\n // The pool runs the callback in a detached context, so re-activate the span that was\n // active when `checkOut` was called — otherwise the pooled operation finds no parent.\n const parentSpan = getActiveSpan();\n return original.call(this, function (this: unknown, ...args: [any, any]) {\n return withActiveSpan(parentSpan ?? null, () => callback.apply(this, args));\n });\n };\n };\n}\n"],"names":["shouldSkipInstrumentation","startMongoSpan","getV3SpanAttributes","patchEnd","getV3CommandOperation","getV4SpanAttributes","getActiveSpan","withActiveSpan"],"mappings":";;;;;;AA8BO,SAAS,oBAAoB,aAAA,EAA+C;AACjF,EAAA,OAAO,CAAC,QAAA,KAAyD;AAC/D,IAAA,OAAO,SAAS,oBAAA,CAEd,MAAA,EACA,EAAA,EACA,GAAA,EACA,SACA,QAAA,EACA;AACA,MAAA,MAAM,aAAA,GAAgB,OAAO,OAAA,KAAY,UAAA,GAAa,OAAA,GAAU,QAAA;AAChE,MAAA,IAAIA,iCAA0B,IAAK,OAAO,kBAAkB,UAAA,IAAc,OAAO,QAAQ,QAAA,EAAU;AACjG,QAAA,IAAI,OAAO,YAAY,UAAA,EAAY;AACjC,UAAA,OAAO,SAAS,IAAA,CAAK,IAAA,EAAM,MAAA,EAAQ,EAAA,EAAI,KAAK,OAAO,CAAA;AAAA,QACrD,CAAA,MAAO;AACL,UAAA,OAAO,SAAS,IAAA,CAAK,IAAA,EAAM,QAAQ,EAAA,EAAI,GAAA,EAAK,SAAS,QAAQ,CAAA;AAAA,QAC/D;AAAA,MACF;AAEA,MAAA,MAAM,IAAA,GAAOC,2BAAeC,yBAAA,CAAoB,EAAA,EAAI,QAAQ,GAAA,CAAI,CAAC,CAAA,EAAU,aAAa,CAAC,CAAA;AAEzF,MAAA,MAAM,eAAA,GAAkBC,cAAA,CAAS,IAAA,EAAM,aAAa,CAAA;AAEpD,MAAA,IAAI,OAAO,YAAY,UAAA,EAAY;AACjC,QAAA,OAAO,SAAS,IAAA,CAAK,IAAA,EAAM,MAAA,EAAQ,EAAA,EAAI,KAAK,eAAe,CAAA;AAAA,MAC7D,CAAA,MAAO;AACL,QAAA,OAAO,SAAS,IAAA,CAAK,IAAA,EAAM,QAAQ,EAAA,EAAI,GAAA,EAAK,SAAS,eAAe,CAAA;AAAA,MACtE;AAAA,IACF,CAAA;AAAA,EACF,CAAA;AACF;AAGO,SAAS,iBAAA,GAAoB;AAClC,EAAA,OAAO,CAAC,QAAA,KAA8C;AACpD,IAAA,OAAO,SAAS,oBAAA,CAEd,MAAA,EACA,EAAA,EACA,GAAA,EACA,SACA,QAAA,EACA;AACA,MAAA,MAAM,aAAA,GAAgB,OAAO,OAAA,KAAY,UAAA,GAAa,OAAA,GAAU,QAAA;AAEhE,MAAA,IAAIH,iCAA0B,IAAK,OAAO,kBAAkB,UAAA,IAAc,OAAO,QAAQ,QAAA,EAAU;AACjG,QAAA,IAAI,OAAO,YAAY,UAAA,EAAY;AACjC,UAAA,OAAO,SAAS,IAAA,CAAK,IAAA,EAAM,MAAA,EAAQ,EAAA,EAAI,KAAK,OAAO,CAAA;AAAA,QACrD,CAAA,MAAO;AACL,UAAA,OAAO,SAAS,IAAA,CAAK,IAAA,EAAM,QAAQ,EAAA,EAAI,GAAA,EAAK,SAAS,QAAQ,CAAA;AAAA,QAC/D;AAAA,MACF;AAEA,MAAA,MAAM,aAAA,GAAgBI,kCAAsB,GAAyC,CAAA;AACrF,MAAA,MAAM,OAAOH,0BAAA,CAAeC,yBAAA,CAAoB,IAAI,MAAA,EAAQ,GAAA,EAAK,aAAa,CAAC,CAAA;AAE/E,MAAA,MAAM,eAAA,GAAkBC,cAAA,CAAS,IAAA,EAAM,aAAa,CAAA;AAEpD,MAAA,IAAI,OAAO,YAAY,UAAA,EAAY;AACjC,QAAA,OAAO,SAAS,IAAA,CAAK,IAAA,EAAM,MAAA,EAAQ,EAAA,EAAI,KAAK,eAAe,CAAA;AAAA,MAC7D,CAAA,MAAO;AACL,QAAA,OAAO,SAAS,IAAA,CAAK,IAAA,EAAM,QAAQ,EAAA,EAAI,GAAA,EAAK,SAAS,eAAe,CAAA;AAAA,MACtE;AAAA,IACF,CAAA;AAAA,EACF,CAAA;AACF;AAGO,SAAS,yBAAA,GAA4B;AAC1C,EAAA,OAAO,CAAC,QAAA,KAA8C;AACpD,IAAA,OAAO,SAAS,sBAAA,CAEd,EAAA,EACA,GAAA,EACA,SACA,QAAA,EACA;AACA,MAAA,MAAM,aAAA,GAAgB,QAAA;AACtB,MAAA,MAAM,WAAA,GAAc,MAAA,CAAO,IAAA,CAAK,GAAG,EAAE,CAAC,CAAA;AAEtC,MAAA,IAAI,OAAO,GAAA,KAAQ,QAAA,IAAY,GAAA,CAAI,QAAA,IAAY,IAAI,KAAA,EAAO;AACxD,QAAA,OAAO,SAAS,IAAA,CAAK,IAAA,EAAM,EAAA,EAAI,GAAA,EAAK,SAAS,QAAQ,CAAA;AAAA,MACvD;AAEA,MAAA,IAAI,IAAA,GAAO,MAAA;AACX,MAAA,IAAI,CAACH,iCAA0B,EAAG;AAChC,QAAA,IAAA,GAAOC,2BAAeI,yBAAA,CAAoB,IAAA,EAAM,EAAA,EAAI,GAAA,EAAK,WAAW,CAAC,CAAA;AAAA,MACvE;AACA,MAAA,MAAM,eAAA,GAAkBF,cAAA,CAAS,IAAA,EAAM,aAAa,CAAA;AAEpD,MAAA,OAAO,SAAS,IAAA,CAAK,IAAA,EAAM,EAAA,EAAI,GAAA,EAAK,SAAS,eAAe,CAAA;AAAA,IAC9D,CAAA;AAAA,EACF,CAAA;AACF;AAGO,SAAS,wBAAA,GAA2B;AACzC,EAAA,OAAO,CAAC,QAAA,KAA6C;AACnD,IAAA,OAAO,SAAS,0BAAqC,IAAA,EAAkD;AACrG,MAAA,MAAM,CAAC,EAAA,EAAI,GAAG,CAAA,GAAI,IAAA;AAClB,MAAA,MAAM,WAAA,GAAc,MAAA,CAAO,IAAA,CAAK,GAAG,EAAE,CAAC,CAAA;AACtC,MAAA,MAAM,gBAAgB,MAAM,MAAA;AAE5B,MAAA,IAAI,OAAO,GAAA,KAAQ,QAAA,IAAY,GAAA,CAAI,QAAA,IAAY,IAAI,KAAA,EAAO;AACxD,QAAA,OAAO,QAAA,CAAS,KAAA,CAAM,IAAA,EAAM,IAAI,CAAA;AAAA,MAClC;AAEA,MAAA,IAAI,IAAA,GAAO,MAAA;AACX,MAAA,IAAI,CAACH,iCAA0B,EAAG;AAChC,QAAA,IAAA,GAAOC,2BAAeI,yBAAA,CAAoB,IAAA,EAAM,EAAA,EAAI,GAAA,EAAK,WAAW,CAAC,CAAA;AAAA,MACvE;AAEA,MAAA,MAAM,eAAA,GAAkBF,cAAA,CAAS,IAAA,EAAM,aAAa,CAAA;AAEpD,MAAA,MAAM,MAAA,GAAS,QAAA,CAAS,KAAA,CAAM,IAAA,EAAM,IAAI,CAAA;AACxC,MAAA,MAAA,CAAO,IAAA;AAAA,QACL,CAAC,GAAA,KAAa,eAAA,CAAgB,IAAA,EAAM,GAAG,CAAA;AAAA,QACvC,CAAC,GAAA,KAAa,eAAA,CAAgB,GAAG;AAAA,OACnC;AAEA,MAAA,OAAO,MAAA;AAAA,IACT,CAAA;AAAA,EACF,CAAA;AACF;AAGO,SAAS,cAAA,GAAiB;AAC/B,EAAA,OAAO,CAAC,QAAA,KAA4C;AAClD,IAAA,OAAO,SAAS,oBAAA,CAEd,MAAA,EACA,IACA,GAAA,EACA,WAAA,EACA,SACA,QAAA,EACA;AACA,MAAA,MAAM,aAAA,GAAgB,OAAO,OAAA,KAAY,UAAA,GAAa,OAAA,GAAU,QAAA;AAEhE,MAAA,IAAIH,iCAA0B,IAAK,OAAO,kBAAkB,UAAA,IAAc,OAAO,QAAQ,QAAA,EAAU;AACjG,QAAA,IAAI,OAAO,YAAY,UAAA,EAAY;AACjC,UAAA,OAAO,SAAS,IAAA,CAAK,IAAA,EAAM,QAAQ,EAAA,EAAI,GAAA,EAAK,aAAa,OAAO,CAAA;AAAA,QAClE,CAAA,MAAO;AACL,UAAA,OAAO,QAAA,CAAS,KAAK,IAAA,EAAM,MAAA,EAAQ,IAAI,GAAA,EAAK,WAAA,EAAa,SAAS,QAAQ,CAAA;AAAA,QAC5E;AAAA,MACF;AAEA,MAAA,MAAM,OAAOC,0BAAA,CAAeC,yBAAA,CAAoB,IAAI,MAAA,EAAQ,GAAA,EAAK,MAAM,CAAC,CAAA;AAExE,MAAA,MAAM,eAAA,GAAkBC,cAAA,CAAS,IAAA,EAAM,aAAa,CAAA;AAEpD,MAAA,IAAI,OAAO,YAAY,UAAA,EAAY;AACjC,QAAA,OAAO,SAAS,IAAA,CAAK,IAAA,EAAM,QAAQ,EAAA,EAAI,GAAA,EAAK,aAAa,eAAe,CAAA;AAAA,MAC1E,CAAA,MAAO;AACL,QAAA,OAAO,QAAA,CAAS,KAAK,IAAA,EAAM,MAAA,EAAQ,IAAI,GAAA,EAAK,WAAA,EAAa,SAAS,eAAe,CAAA;AAAA,MACnF;AAAA,IACF,CAAA;AAAA,EACF,CAAA;AACF;AAGO,SAAS,gBAAA,GAAmB;AACjC,EAAA,OAAO,CAAC,QAAA,KAA8C;AACpD,IAAA,OAAO,SAAS,oBAAA,CAEd,MAAA,EACA,IACA,WAAA,EACA,SAAA,EACA,SACA,QAAA,EACA;AACA,MAAA,MAAM,aAAA,GAAgB,OAAO,OAAA,KAAY,UAAA,GAAa,OAAA,GAAU,QAAA;AAEhE,MAAA,IAAIH,+BAAA,EAA0B,IAAK,OAAO,aAAA,KAAkB,UAAA,EAAY;AACtE,QAAA,IAAI,OAAO,YAAY,UAAA,EAAY;AACjC,UAAA,OAAO,SAAS,IAAA,CAAK,IAAA,EAAM,QAAQ,EAAA,EAAI,WAAA,EAAa,WAAW,OAAO,CAAA;AAAA,QACxE,CAAA,MAAO;AACL,UAAA,OAAO,QAAA,CAAS,KAAK,IAAA,EAAM,MAAA,EAAQ,IAAI,WAAA,EAAa,SAAA,EAAW,SAAS,QAAQ,CAAA;AAAA,QAClF;AAAA,MACF;AAEA,MAAA,MAAM,IAAA,GAAOC,2BAAeC,yBAAA,CAAoB,EAAA,EAAI,QAAQ,WAAA,CAAY,GAAA,EAAK,SAAS,CAAC,CAAA;AAEvF,MAAA,MAAM,eAAA,GAAkBC,cAAA,CAAS,IAAA,EAAM,aAAa,CAAA;AAEpD,MAAA,IAAI,OAAO,YAAY,UAAA,EAAY;AACjC,QAAA,OAAO,SAAS,IAAA,CAAK,IAAA,EAAM,QAAQ,EAAA,EAAI,WAAA,EAAa,WAAW,eAAe,CAAA;AAAA,MAChF,CAAA,MAAO;AACL,QAAA,OAAO,QAAA,CAAS,KAAK,IAAA,EAAM,MAAA,EAAQ,IAAI,WAAA,EAAa,SAAA,EAAW,SAAS,eAAe,CAAA;AAAA,MACzF;AAAA,IACF,CAAA;AAAA,EACF,CAAA;AACF;AAGO,SAAS,2BAAA,GAA8B;AAC5C,EAAA,OAAO,CAAC,QAAA,KAA2C;AACjD,IAAA,OAAO,SAAS,gBAA+B,QAAA,EAAiD;AAG9F,MAAA,MAAM,aAAaG,kBAAA,EAAc;AACjC,MAAA,OAAO,QAAA,CAAS,IAAA,CAAK,IAAA,EAAM,SAAA,GAA4B,IAAA,EAAkB;AACvE,QAAA,OAAOC,mBAAA,CAAe,cAAc,IAAA,EAAM,MAAM,SAAS,KAAA,CAAM,IAAA,EAAM,IAAI,CAAC,CAAA;AAAA,MAC5E,CAAC,CAAA;AAAA,IACH,CAAA;AAAA,EACF,CAAA;AACF;;;;;;;;;;"}
|