@sentry/node 10.60.0 → 10.61.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.
Files changed (90) hide show
  1. package/build/cjs/index.js +2 -0
  2. package/build/cjs/index.js.map +1 -1
  3. package/build/cjs/integrations/fs/index.js +8 -17
  4. package/build/cjs/integrations/fs/index.js.map +1 -1
  5. package/build/cjs/integrations/fs/vendored/instrumentation.js +110 -161
  6. package/build/cjs/integrations/fs/vendored/instrumentation.js.map +1 -1
  7. package/build/cjs/integrations/node-fetch/vendored/undici.js +1 -2
  8. package/build/cjs/integrations/node-fetch/vendored/undici.js.map +1 -1
  9. package/build/cjs/integrations/tracing/dataloader/vendored/instrumentation.js +5 -6
  10. package/build/cjs/integrations/tracing/dataloader/vendored/instrumentation.js.map +1 -1
  11. package/build/cjs/integrations/tracing/kafka/vendored/utils.js +2 -2
  12. package/build/cjs/integrations/tracing/kafka/vendored/utils.js.map +1 -1
  13. package/build/cjs/integrations/tracing/knex/vendored/instrumentation.js +1 -2
  14. package/build/cjs/integrations/tracing/knex/vendored/instrumentation.js.map +1 -1
  15. package/build/cjs/integrations/tracing/mongo/vendored/utils.js +1 -2
  16. package/build/cjs/integrations/tracing/mongo/vendored/utils.js.map +1 -1
  17. package/build/cjs/integrations/tracing/mongoose/vendored/mongoose.js +1 -2
  18. package/build/cjs/integrations/tracing/mongoose/vendored/mongoose.js.map +1 -1
  19. package/build/cjs/integrations/tracing/mysql2/vendored/instrumentation.js +1 -2
  20. package/build/cjs/integrations/tracing/mysql2/vendored/instrumentation.js.map +1 -1
  21. package/build/cjs/integrations/tracing/postgres/vendored/instrumentation.js +2 -3
  22. package/build/cjs/integrations/tracing/postgres/vendored/instrumentation.js.map +1 -1
  23. package/build/cjs/integrations/tracing/postgres/vendored/utils.js +1 -2
  24. package/build/cjs/integrations/tracing/postgres/vendored/utils.js.map +1 -1
  25. package/build/cjs/integrations/tracing/redis/index.js +4 -2
  26. package/build/cjs/integrations/tracing/redis/index.js.map +1 -1
  27. package/build/cjs/integrations/tracing/redis/vendored/ioredis-instrumentation.js +2 -3
  28. package/build/cjs/integrations/tracing/redis/vendored/ioredis-instrumentation.js.map +1 -1
  29. package/build/cjs/integrations/tracing/redis/vendored/redis-instrumentation.js +3 -4
  30. package/build/cjs/integrations/tracing/redis/vendored/redis-instrumentation.js.map +1 -1
  31. package/build/cjs/integrations/tracing/tedious/vendored/instrumentation.js +1 -2
  32. package/build/cjs/integrations/tracing/tedious/vendored/instrumentation.js.map +1 -1
  33. package/build/esm/index.js +1 -1
  34. package/build/esm/integrations/fs/index.js +9 -18
  35. package/build/esm/integrations/fs/index.js.map +1 -1
  36. package/build/esm/integrations/fs/vendored/instrumentation.js +111 -162
  37. package/build/esm/integrations/fs/vendored/instrumentation.js.map +1 -1
  38. package/build/esm/integrations/node-fetch/vendored/undici.js +2 -3
  39. package/build/esm/integrations/node-fetch/vendored/undici.js.map +1 -1
  40. package/build/esm/integrations/tracing/dataloader/vendored/instrumentation.js +6 -7
  41. package/build/esm/integrations/tracing/dataloader/vendored/instrumentation.js.map +1 -1
  42. package/build/esm/integrations/tracing/kafka/vendored/utils.js +4 -4
  43. package/build/esm/integrations/tracing/kafka/vendored/utils.js.map +1 -1
  44. package/build/esm/integrations/tracing/knex/vendored/instrumentation.js +2 -3
  45. package/build/esm/integrations/tracing/knex/vendored/instrumentation.js.map +1 -1
  46. package/build/esm/integrations/tracing/mongo/vendored/utils.js +2 -3
  47. package/build/esm/integrations/tracing/mongo/vendored/utils.js.map +1 -1
  48. package/build/esm/integrations/tracing/mongoose/vendored/mongoose.js +2 -3
  49. package/build/esm/integrations/tracing/mongoose/vendored/mongoose.js.map +1 -1
  50. package/build/esm/integrations/tracing/mysql2/vendored/instrumentation.js +2 -3
  51. package/build/esm/integrations/tracing/mysql2/vendored/instrumentation.js.map +1 -1
  52. package/build/esm/integrations/tracing/postgres/vendored/instrumentation.js +3 -4
  53. package/build/esm/integrations/tracing/postgres/vendored/instrumentation.js.map +1 -1
  54. package/build/esm/integrations/tracing/postgres/vendored/utils.js +2 -3
  55. package/build/esm/integrations/tracing/postgres/vendored/utils.js.map +1 -1
  56. package/build/esm/integrations/tracing/redis/index.js +4 -2
  57. package/build/esm/integrations/tracing/redis/index.js.map +1 -1
  58. package/build/esm/integrations/tracing/redis/vendored/ioredis-instrumentation.js +3 -4
  59. package/build/esm/integrations/tracing/redis/vendored/ioredis-instrumentation.js.map +1 -1
  60. package/build/esm/integrations/tracing/redis/vendored/redis-instrumentation.js +4 -5
  61. package/build/esm/integrations/tracing/redis/vendored/redis-instrumentation.js.map +1 -1
  62. package/build/esm/integrations/tracing/tedious/vendored/instrumentation.js +2 -3
  63. package/build/esm/integrations/tracing/tedious/vendored/instrumentation.js.map +1 -1
  64. package/build/esm/package.json +1 -1
  65. package/build/types/index.d.ts +1 -1
  66. package/build/types/index.d.ts.map +1 -1
  67. package/build/types/integrations/fs/index.d.ts +2 -14
  68. package/build/types/integrations/fs/index.d.ts.map +1 -1
  69. package/build/types/integrations/fs/vendored/instrumentation.d.ts +2 -10
  70. package/build/types/integrations/fs/vendored/instrumentation.d.ts.map +1 -1
  71. package/build/types/integrations/fs/vendored/types.d.ts +1 -2
  72. package/build/types/integrations/fs/vendored/types.d.ts.map +1 -1
  73. package/build/types/integrations/node-fetch/vendored/undici.d.ts.map +1 -1
  74. package/build/types/integrations/tracing/dataloader/vendored/instrumentation.d.ts.map +1 -1
  75. package/build/types/integrations/tracing/kafka/vendored/utils.d.ts.map +1 -1
  76. package/build/types/integrations/tracing/knex/vendored/instrumentation.d.ts.map +1 -1
  77. package/build/types/integrations/tracing/mongo/vendored/utils.d.ts.map +1 -1
  78. package/build/types/integrations/tracing/mongoose/vendored/mongoose.d.ts.map +1 -1
  79. package/build/types/integrations/tracing/mysql2/vendored/instrumentation.d.ts.map +1 -1
  80. package/build/types/integrations/tracing/postgres/vendored/instrumentation.d.ts.map +1 -1
  81. package/build/types/integrations/tracing/postgres/vendored/utils.d.ts.map +1 -1
  82. package/build/types/integrations/tracing/redis/index.d.ts.map +1 -1
  83. package/build/types/integrations/tracing/redis/vendored/ioredis-instrumentation.d.ts.map +1 -1
  84. package/build/types/integrations/tracing/redis/vendored/redis-instrumentation.d.ts.map +1 -1
  85. package/build/types/integrations/tracing/tedious/vendored/instrumentation.d.ts.map +1 -1
  86. package/build/types-ts3.8/index.d.ts +1 -1
  87. package/build/types-ts3.8/integrations/fs/index.d.ts +2 -14
  88. package/build/types-ts3.8/integrations/fs/vendored/instrumentation.d.ts +2 -10
  89. package/build/types-ts3.8/integrations/fs/vendored/types.d.ts +1 -2
  90. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"file":"ioredis-instrumentation.js","sources":["../../../../../../src/integrations/tracing/redis/vendored/ioredis-instrumentation.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/instrumentation-ioredis-v0.62.0/packages/instrumentation-ioredis\n * - Upstream version: @opentelemetry/instrumentation-ioredis@0.62.0\n * - Minor TypeScript adjustments for this repository's compiler settings\n * - Refactored to use Sentry's span APIs instead of OpenTelemetry tracing APIs\n */\n\nimport { SpanKind } from '@opentelemetry/api';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport type { Span, SpanAttributes } from '@sentry/core';\nimport {\n getActiveSpan,\n SDK_VERSION,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SPAN_STATUS_ERROR,\n startInactiveSpan,\n} from '@sentry/core';\nimport { defaultDbStatementSerializer } from './redis-common';\nimport {\n ATTR_DB_CONNECTION_STRING,\n ATTR_DB_STATEMENT,\n ATTR_DB_SYSTEM,\n ATTR_NET_PEER_NAME,\n ATTR_NET_PEER_PORT,\n DB_SYSTEM_VALUE_REDIS,\n} from './semconv';\nimport type { IORedisInstrumentationConfig } from './types';\n\nconst PACKAGE_NAME = '@sentry/instrumentation-ioredis';\nconst ORIGIN = 'auto.db.otel.redis';\n\n// ioredis >= 5.11.0 publishes via diagnostics_channel, which Sentry subscribes\n// to separately, so this monkey-patching instrumentation only covers < 5.11.0.\nconst SUPPORTED_VERSIONS = ['>=2.0.0 <5.11.0'];\n\n// The raw imported `ioredis` module is either the CommonJS export or an ESM\n// namespace wrapping it on `.default`. Typed shallowly since it is only used\n// internally to reach the `Redis` prototype that holds the methods we patch.\ntype IORedisModule = {\n default?: { prototype: RedisPrototype };\n prototype: RedisPrototype;\n [Symbol.toStringTag]?: string;\n};\n\ninterface RedisPrototype {\n sendCommand: (...args: unknown[]) => unknown;\n connect: (...args: unknown[]) => unknown;\n}\n\n// The `this` of the patched methods is a Redis client instance exposing its\n// connection options.\ninterface RedisClient {\n options: { host?: string; port?: number };\n}\n\n// The in-flight command object ioredis passes to `sendCommand`. We swap its\n// `resolve`/`reject` so the span ends when the command settles.\ninterface RedisCommand {\n name: string;\n args: Array<string | Buffer>;\n resolve: (result: unknown) => void;\n reject: (err: Error) => void;\n}\n\nfunction endSpan(span: Span, err: Error | null | undefined): void {\n if (err) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: err.message });\n }\n span.end();\n}\n\nexport class IORedisInstrumentation extends InstrumentationBase<IORedisInstrumentationConfig> {\n public constructor(config: IORedisInstrumentationConfig = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n\n protected init(): InstrumentationNodeModuleDefinition[] {\n return [\n new InstrumentationNodeModuleDefinition(\n 'ioredis',\n SUPPORTED_VERSIONS,\n (module: IORedisModule) => {\n const moduleExports = module[Symbol.toStringTag] === 'Module' && module.default ? module.default : module;\n if (isWrapped(moduleExports.prototype.sendCommand)) {\n this._unwrap(moduleExports.prototype, 'sendCommand');\n }\n this._wrap(moduleExports.prototype, 'sendCommand', this._patchSendCommand());\n if (isWrapped(moduleExports.prototype.connect)) {\n this._unwrap(moduleExports.prototype, 'connect');\n }\n this._wrap(moduleExports.prototype, 'connect', this._patchConnection());\n return module;\n },\n (module: IORedisModule | undefined) => {\n if (module === undefined) return;\n const moduleExports = module[Symbol.toStringTag] === 'Module' && module.default ? module.default : module;\n this._unwrap(moduleExports.prototype, 'sendCommand');\n this._unwrap(moduleExports.prototype, 'connect');\n },\n ),\n ];\n }\n\n private _patchSendCommand() {\n const instrumentation = this;\n return (original: (...args: unknown[]) => unknown) => {\n return function (this: RedisClient, ...args: unknown[]): unknown {\n const cmd = args[0] as RedisCommand | undefined;\n // ioredis only creates a span when there is an active parent span\n // (the upstream `requireParentSpan` default, which Sentry never overrides).\n if (args.length < 1 || typeof cmd !== 'object' || !getActiveSpan()) {\n return original.apply(this, args);\n }\n\n const { host, port } = this.options;\n const attributes: SpanAttributes = {\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_REDIS,\n [ATTR_DB_STATEMENT]: defaultDbStatementSerializer(cmd.name, cmd.args),\n [ATTR_DB_CONNECTION_STRING]: `redis://${host}:${port}`,\n [ATTR_NET_PEER_NAME]: host,\n [ATTR_NET_PEER_PORT]: port,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n };\n\n const span = startInactiveSpan({ name: cmd.name, kind: SpanKind.CLIENT, attributes });\n\n try {\n const result = original.apply(this, args);\n const origResolve = cmd.resolve;\n cmd.resolve = function (response: unknown): void {\n instrumentation._callResponseHook(span, cmd, response);\n endSpan(span, null);\n origResolve(response);\n };\n const origReject = cmd.reject;\n cmd.reject = function (err: Error): void {\n endSpan(span, err);\n origReject(err);\n };\n return result;\n } catch (error) {\n endSpan(span, error as Error);\n throw error;\n }\n };\n };\n }\n\n private _patchConnection() {\n return (original: (...args: unknown[]) => unknown) => {\n return function (this: RedisClient, ...args: unknown[]): unknown {\n if (!getActiveSpan()) {\n return original.apply(this, args);\n }\n\n const { host, port } = this.options;\n const attributes: SpanAttributes = {\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_REDIS,\n [ATTR_DB_STATEMENT]: 'connect',\n [ATTR_DB_CONNECTION_STRING]: `redis://${host}:${port}`,\n [ATTR_NET_PEER_NAME]: host,\n [ATTR_NET_PEER_PORT]: port,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n };\n\n const span = startInactiveSpan({ name: 'connect', kind: SpanKind.CLIENT, attributes });\n\n try {\n const result = original.apply(this, args) as Promise<unknown> | undefined;\n if (result instanceof Promise) {\n return result.then(\n (value: unknown) => {\n endSpan(span, null);\n return value;\n },\n (error: Error) => {\n endSpan(span, error);\n return Promise.reject(error);\n },\n );\n }\n endSpan(span, null);\n return result;\n } catch (error) {\n endSpan(span, error as Error);\n throw error;\n }\n };\n };\n }\n\n private _callResponseHook(span: Span, cmd: RedisCommand, response: unknown): void {\n const { responseHook } = this.getConfig();\n if (!responseHook) {\n return;\n }\n try {\n responseHook(span, cmd.name, cmd.args, response);\n } catch {\n // ignore errors thrown from the user-provided response hook\n }\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ioredis-instrumentation.js","sources":["../../../../../../src/integrations/tracing/redis/vendored/ioredis-instrumentation.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/instrumentation-ioredis-v0.62.0/packages/instrumentation-ioredis\n * - Upstream version: @opentelemetry/instrumentation-ioredis@0.62.0\n * - Minor TypeScript adjustments for this repository's compiler settings\n * - Refactored to use Sentry's span APIs instead of OpenTelemetry tracing APIs\n */\n\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport type { Span, SpanAttributes } from '@sentry/core';\nimport {\n getActiveSpan,\n SDK_VERSION,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SPAN_KIND,\n SPAN_STATUS_ERROR,\n startInactiveSpan,\n} from '@sentry/core';\nimport { defaultDbStatementSerializer } from './redis-common';\nimport {\n ATTR_DB_CONNECTION_STRING,\n ATTR_DB_STATEMENT,\n ATTR_DB_SYSTEM,\n ATTR_NET_PEER_NAME,\n ATTR_NET_PEER_PORT,\n DB_SYSTEM_VALUE_REDIS,\n} from './semconv';\nimport type { IORedisInstrumentationConfig } from './types';\n\nconst PACKAGE_NAME = '@sentry/instrumentation-ioredis';\nconst ORIGIN = 'auto.db.otel.redis';\n\n// ioredis >= 5.11.0 publishes via diagnostics_channel, which Sentry subscribes\n// to separately, so this monkey-patching instrumentation only covers < 5.11.0.\nconst SUPPORTED_VERSIONS = ['>=2.0.0 <5.11.0'];\n\n// The raw imported `ioredis` module is either the CommonJS export or an ESM\n// namespace wrapping it on `.default`. Typed shallowly since it is only used\n// internally to reach the `Redis` prototype that holds the methods we patch.\ntype IORedisModule = {\n default?: { prototype: RedisPrototype };\n prototype: RedisPrototype;\n [Symbol.toStringTag]?: string;\n};\n\ninterface RedisPrototype {\n sendCommand: (...args: unknown[]) => unknown;\n connect: (...args: unknown[]) => unknown;\n}\n\n// The `this` of the patched methods is a Redis client instance exposing its\n// connection options.\ninterface RedisClient {\n options: { host?: string; port?: number };\n}\n\n// The in-flight command object ioredis passes to `sendCommand`. We swap its\n// `resolve`/`reject` so the span ends when the command settles.\ninterface RedisCommand {\n name: string;\n args: Array<string | Buffer>;\n resolve: (result: unknown) => void;\n reject: (err: Error) => void;\n}\n\nfunction endSpan(span: Span, err: Error | null | undefined): void {\n if (err) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: err.message });\n }\n span.end();\n}\n\nexport class IORedisInstrumentation extends InstrumentationBase<IORedisInstrumentationConfig> {\n public constructor(config: IORedisInstrumentationConfig = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n\n protected init(): InstrumentationNodeModuleDefinition[] {\n return [\n new InstrumentationNodeModuleDefinition(\n 'ioredis',\n SUPPORTED_VERSIONS,\n (module: IORedisModule) => {\n const moduleExports = module[Symbol.toStringTag] === 'Module' && module.default ? module.default : module;\n if (isWrapped(moduleExports.prototype.sendCommand)) {\n this._unwrap(moduleExports.prototype, 'sendCommand');\n }\n this._wrap(moduleExports.prototype, 'sendCommand', this._patchSendCommand());\n if (isWrapped(moduleExports.prototype.connect)) {\n this._unwrap(moduleExports.prototype, 'connect');\n }\n this._wrap(moduleExports.prototype, 'connect', this._patchConnection());\n return module;\n },\n (module: IORedisModule | undefined) => {\n if (module === undefined) return;\n const moduleExports = module[Symbol.toStringTag] === 'Module' && module.default ? module.default : module;\n this._unwrap(moduleExports.prototype, 'sendCommand');\n this._unwrap(moduleExports.prototype, 'connect');\n },\n ),\n ];\n }\n\n private _patchSendCommand() {\n const instrumentation = this;\n return (original: (...args: unknown[]) => unknown) => {\n return function (this: RedisClient, ...args: unknown[]): unknown {\n const cmd = args[0] as RedisCommand | undefined;\n // ioredis only creates a span when there is an active parent span\n // (the upstream `requireParentSpan` default, which Sentry never overrides).\n if (args.length < 1 || typeof cmd !== 'object' || !getActiveSpan()) {\n return original.apply(this, args);\n }\n\n const { host, port } = this.options;\n const attributes: SpanAttributes = {\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_REDIS,\n [ATTR_DB_STATEMENT]: defaultDbStatementSerializer(cmd.name, cmd.args),\n [ATTR_DB_CONNECTION_STRING]: `redis://${host}:${port}`,\n [ATTR_NET_PEER_NAME]: host,\n [ATTR_NET_PEER_PORT]: port,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n };\n\n const span = startInactiveSpan({ name: cmd.name, kind: SPAN_KIND.CLIENT, attributes });\n\n try {\n const result = original.apply(this, args);\n const origResolve = cmd.resolve;\n cmd.resolve = function (response: unknown): void {\n instrumentation._callResponseHook(span, cmd, response);\n endSpan(span, null);\n origResolve(response);\n };\n const origReject = cmd.reject;\n cmd.reject = function (err: Error): void {\n endSpan(span, err);\n origReject(err);\n };\n return result;\n } catch (error) {\n endSpan(span, error as Error);\n throw error;\n }\n };\n };\n }\n\n private _patchConnection() {\n return (original: (...args: unknown[]) => unknown) => {\n return function (this: RedisClient, ...args: unknown[]): unknown {\n if (!getActiveSpan()) {\n return original.apply(this, args);\n }\n\n const { host, port } = this.options;\n const attributes: SpanAttributes = {\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_REDIS,\n [ATTR_DB_STATEMENT]: 'connect',\n [ATTR_DB_CONNECTION_STRING]: `redis://${host}:${port}`,\n [ATTR_NET_PEER_NAME]: host,\n [ATTR_NET_PEER_PORT]: port,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n };\n\n const span = startInactiveSpan({ name: 'connect', kind: SPAN_KIND.CLIENT, attributes });\n\n try {\n const result = original.apply(this, args) as Promise<unknown> | undefined;\n if (result instanceof Promise) {\n return result.then(\n (value: unknown) => {\n endSpan(span, null);\n return value;\n },\n (error: Error) => {\n endSpan(span, error);\n return Promise.reject(error);\n },\n );\n }\n endSpan(span, null);\n return result;\n } catch (error) {\n endSpan(span, error as Error);\n throw error;\n }\n };\n };\n }\n\n private _callResponseHook(span: Span, cmd: RedisCommand, response: unknown): void {\n const { responseHook } = this.getConfig();\n if (!responseHook) {\n return;\n }\n try {\n responseHook(span, cmd.name, cmd.args, response);\n } catch {\n // ignore errors thrown from the user-provided response hook\n }\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
- import { SpanKind } from '@opentelemetry/api';
2
1
  import { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';
3
- import { SDK_VERSION, startInactiveSpan, getActiveSpan, withActiveSpan, debug, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SPAN_STATUS_ERROR } from '@sentry/core';
2
+ import { SDK_VERSION, startInactiveSpan, SPAN_KIND, getActiveSpan, withActiveSpan, debug, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SPAN_STATUS_ERROR } from '@sentry/core';
4
3
  import { DEBUG_BUILD } from '../../../../debug-build.js';
5
4
  import { InstrumentationNodeModuleFile } from '../../InstrumentationNodeModuleFile.js';
6
5
  import { defaultDbStatementSerializer } from './redis-common.js';
@@ -93,7 +92,7 @@ const _RedisInstrumentationV2_V3 = class _RedisInstrumentationV2_V3 extends Inst
93
92
  }
94
93
  const span = startInactiveSpan({
95
94
  name: `${_RedisInstrumentationV2_V3.COMPONENT}-${cmd.command}`,
96
- kind: SpanKind.CLIENT,
95
+ kind: SPAN_KIND.CLIENT,
97
96
  attributes
98
97
  });
99
98
  const originalCallback = arguments[0].callback;
@@ -310,7 +309,7 @@ const _RedisInstrumentationV4_V5 = class _RedisInstrumentationV4_V5 extends Inst
310
309
  const attributes = getClientAttributes(this.options);
311
310
  const span = startInactiveSpan({
312
311
  name: `${_RedisInstrumentationV4_V5.COMPONENT}-connect`,
313
- kind: SpanKind.CLIENT,
312
+ kind: SPAN_KIND.CLIENT,
314
313
  attributes
315
314
  });
316
315
  const res = withActiveSpan(span, () => original.apply(this));
@@ -338,7 +337,7 @@ const _RedisInstrumentationV4_V5 = class _RedisInstrumentationV4_V5 extends Inst
338
337
  }
339
338
  const span = startInactiveSpan({
340
339
  name: `${_RedisInstrumentationV4_V5.COMPONENT}-${commandName}`,
341
- kind: SpanKind.CLIENT,
340
+ kind: SPAN_KIND.CLIENT,
342
341
  attributes
343
342
  });
344
343
  const res = withActiveSpan(span, () => origFunction.apply(origThis, origArguments));
@@ -1 +1 @@
1
- {"version":3,"file":"redis-instrumentation.js","sources":["../../../../../../src/integrations/tracing/redis/vendored/redis-instrumentation.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/instrumentation-redis-v0.62.0/packages/instrumentation-redis\n * - Upstream version: @opentelemetry/instrumentation-redis@0.62.0\n * - Minor TypeScript adjustments for this repository's compiler settings\n * - Refactored to use Sentry's span APIs instead of OpenTelemetry tracing APIs\n */\n\nimport { SpanKind } from '@opentelemetry/api';\nimport type { TracerProvider } from '@opentelemetry/api';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport type { Span, SpanAttributes } from '@sentry/core';\nimport {\n debug,\n getActiveSpan,\n SDK_VERSION,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SPAN_STATUS_ERROR,\n startInactiveSpan,\n withActiveSpan,\n} from '@sentry/core';\nimport { DEBUG_BUILD } from '../../../../debug-build';\nimport { InstrumentationNodeModuleFile } from '../../InstrumentationNodeModuleFile';\nimport { defaultDbStatementSerializer } from './redis-common';\nimport {\n ATTR_DB_CONNECTION_STRING,\n ATTR_DB_STATEMENT,\n ATTR_DB_SYSTEM,\n ATTR_NET_PEER_NAME,\n ATTR_NET_PEER_PORT,\n DB_SYSTEM_VALUE_REDIS,\n} from './semconv';\nimport type { RedisInstrumentationConfig, RedisResponseCustomAttributeFunction } from './types';\n\nconst PACKAGE_NAME = '@sentry/instrumentation-redis';\nconst ORIGIN = 'auto.db.otel.redis';\n\n// node-redis >= 5.12.0 publishes via diagnostics_channel, which Sentry subscribes\n// to separately, so this monkey-patching instrumentation only covers the older\n// `redis` (v2-v3), `@redis/client`/`@node-redis/client` (v1, i.e. node-redis v4)\n// and node-redis 5.0-5.11 releases.\n\n// ---- Internal types ----\n\ninterface RedisPluginClientTypes {\n connection_options?: {\n port?: string | number;\n host?: string;\n };\n address?: string;\n}\n\ninterface RedisCommand {\n command: string;\n args: string[];\n buffer_args: boolean;\n callback: (err: Error | null, reply: unknown) => void;\n call_on_write: boolean;\n}\n\ninterface MultiErrorReply extends Error {\n replies: unknown[];\n errorIndexes: Array<number>;\n}\n\ninterface OpenSpanInfo {\n span: Span;\n commandName: string;\n commandArgs: Array<string | Buffer>;\n}\n\nconst OTEL_OPEN_SPANS = Symbol('opentelemetry.instrumentation.redis.open_spans');\nconst MULTI_COMMAND_OPTIONS = Symbol('opentelemetry.instrumentation.redis.multi_command_options');\n\n// ---- shared utils ----\n\nfunction endSpan(span: Span, err: Error | null | undefined): void {\n if (err) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: err.message });\n }\n span.end();\n}\n\nfunction runResponseHook(\n responseHook: RedisResponseCustomAttributeFunction | undefined,\n span: Span,\n commandName: string,\n commandArgs: Array<string | Buffer>,\n response: unknown,\n): void {\n if (!responseHook) {\n return;\n }\n try {\n responseHook(span, commandName, commandArgs, response);\n } catch {\n // never let a user-provided response hook break instrumentation\n }\n}\n\n// ---- v4-v5 utils ----\n\nfunction removeCredentialsFromDBConnectionStringAttribute(url: string | undefined): string | undefined {\n if (typeof url !== 'string' || !url) {\n return undefined;\n }\n try {\n const u = new URL(url);\n u.searchParams.delete('user_pwd');\n u.username = '';\n u.password = '';\n return u.href;\n } catch (err) {\n DEBUG_BUILD && debug.error('failed to sanitize redis connection url', err);\n }\n return undefined;\n}\n\nfunction getClientAttributes(options: any): SpanAttributes {\n return {\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_REDIS,\n [ATTR_NET_PEER_NAME]: options?.socket?.host,\n [ATTR_NET_PEER_PORT]: options?.socket?.port,\n [ATTR_DB_CONNECTION_STRING]: removeCredentialsFromDBConnectionStringAttribute(options?.url),\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n };\n}\n\n// ---- RedisInstrumentationV2_V3 ----\n\nclass RedisInstrumentationV2_V3 extends InstrumentationBase<RedisInstrumentationConfig> {\n static COMPONENT = 'redis';\n\n constructor(config: RedisInstrumentationConfig = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n\n init() {\n return [\n new InstrumentationNodeModuleDefinition(\n 'redis',\n ['>=2.6.0 <4'],\n (moduleExports: any) => {\n if (isWrapped(moduleExports.RedisClient.prototype['internal_send_command'])) {\n this._unwrap(moduleExports.RedisClient.prototype, 'internal_send_command');\n }\n this._wrap(moduleExports.RedisClient.prototype, 'internal_send_command', this._getPatchInternalSendCommand());\n return moduleExports;\n },\n (moduleExports: any) => {\n if (moduleExports === undefined) return;\n this._unwrap(moduleExports.RedisClient.prototype, 'internal_send_command');\n },\n ),\n ];\n }\n\n private _getPatchInternalSendCommand() {\n const instrumentation = this;\n return function internal_send_command(original: Function) {\n return function internal_send_command_trace(this: RedisPluginClientTypes, cmd: RedisCommand) {\n if (arguments.length !== 1 || typeof cmd !== 'object') {\n return original.apply(this, arguments);\n }\n const attributes: SpanAttributes = {\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_REDIS,\n [ATTR_DB_STATEMENT]: defaultDbStatementSerializer(cmd.command, cmd.args),\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n };\n if (this.connection_options) {\n attributes[ATTR_NET_PEER_NAME] = this.connection_options.host;\n attributes[ATTR_NET_PEER_PORT] = this.connection_options.port;\n }\n if (this.address) {\n attributes[ATTR_DB_CONNECTION_STRING] = `redis://${this.address}`;\n }\n const span = startInactiveSpan({\n name: `${RedisInstrumentationV2_V3.COMPONENT}-${cmd.command}`,\n kind: SpanKind.CLIENT,\n attributes,\n });\n const originalCallback = arguments[0].callback;\n if (originalCallback) {\n const parentSpan = getActiveSpan();\n arguments[0].callback = function callback(this: any, err: Error | null, reply: unknown) {\n runResponseHook(instrumentation.getConfig().responseHook, span, cmd.command, cmd.args, reply);\n endSpan(span, err);\n return withActiveSpan(parentSpan ?? null, () => originalCallback.apply(this, arguments));\n };\n }\n try {\n return original.apply(this, arguments);\n } catch (rethrow) {\n endSpan(span, rethrow as Error);\n throw rethrow;\n }\n };\n };\n }\n}\n\n// ---- RedisInstrumentationV4_V5 ----\n\nclass RedisInstrumentationV4_V5 extends InstrumentationBase<RedisInstrumentationConfig> {\n static COMPONENT = 'redis';\n\n constructor(config: RedisInstrumentationConfig = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n\n init() {\n return [\n this._getInstrumentationNodeModuleDefinition('@redis/client'),\n this._getInstrumentationNodeModuleDefinition('@node-redis/client'),\n ];\n }\n\n private _getInstrumentationNodeModuleDefinition(basePackageName: string) {\n const commanderModuleFile = new InstrumentationNodeModuleFile(\n `${basePackageName}/dist/lib/commander.js`,\n ['^1.0.0'],\n (moduleExports: any, moduleVersion?: string) => {\n const transformCommandArguments = moduleExports.transformCommandArguments;\n if (!transformCommandArguments) {\n DEBUG_BUILD && debug.error('internal instrumentation error, missing transformCommandArguments function');\n return moduleExports;\n }\n const functionToPatch = moduleVersion?.startsWith('1.0.') ? 'extendWithCommands' : 'attachCommands';\n if (isWrapped(moduleExports?.[functionToPatch])) {\n this._unwrap(moduleExports, functionToPatch);\n }\n this._wrap(moduleExports, functionToPatch, this._getPatchExtendWithCommands(transformCommandArguments));\n return moduleExports;\n },\n (moduleExports: any) => {\n if (isWrapped(moduleExports?.extendWithCommands)) {\n this._unwrap(moduleExports, 'extendWithCommands');\n }\n if (isWrapped(moduleExports?.attachCommands)) {\n this._unwrap(moduleExports, 'attachCommands');\n }\n },\n );\n\n const multiCommanderModule = new InstrumentationNodeModuleFile(\n `${basePackageName}/dist/lib/client/multi-command.js`,\n ['^1.0.0', '>=5.0.0 <5.12.0'],\n (moduleExports: any) => {\n const redisClientMultiCommandPrototype = moduleExports?.default?.prototype;\n if (isWrapped(redisClientMultiCommandPrototype?.exec)) {\n this._unwrap(redisClientMultiCommandPrototype, 'exec');\n }\n this._wrap(redisClientMultiCommandPrototype, 'exec', this._getPatchMultiCommandsExec());\n if (isWrapped(redisClientMultiCommandPrototype?.execAsPipeline)) {\n this._unwrap(redisClientMultiCommandPrototype, 'execAsPipeline');\n }\n this._wrap(redisClientMultiCommandPrototype, 'execAsPipeline', this._getPatchMultiCommandsExec());\n if (isWrapped(redisClientMultiCommandPrototype?.addCommand)) {\n this._unwrap(redisClientMultiCommandPrototype, 'addCommand');\n }\n this._wrap(redisClientMultiCommandPrototype, 'addCommand', this._getPatchMultiCommandsAddCommand());\n return moduleExports;\n },\n (moduleExports: any) => {\n const redisClientMultiCommandPrototype = moduleExports?.default?.prototype;\n if (isWrapped(redisClientMultiCommandPrototype?.exec)) {\n this._unwrap(redisClientMultiCommandPrototype, 'exec');\n }\n if (isWrapped(redisClientMultiCommandPrototype?.execAsPipeline)) {\n this._unwrap(redisClientMultiCommandPrototype, 'execAsPipeline');\n }\n if (isWrapped(redisClientMultiCommandPrototype?.addCommand)) {\n this._unwrap(redisClientMultiCommandPrototype, 'addCommand');\n }\n },\n );\n\n const clientIndexModule = new InstrumentationNodeModuleFile(\n `${basePackageName}/dist/lib/client/index.js`,\n ['^1.0.0', '>=5.0.0 <5.12.0'],\n (moduleExports: any) => {\n const redisClientPrototype = moduleExports?.default?.prototype;\n if (redisClientPrototype?.multi) {\n if (isWrapped(redisClientPrototype?.multi)) {\n this._unwrap(redisClientPrototype, 'multi');\n }\n this._wrap(redisClientPrototype, 'multi', this._getPatchRedisClientMulti());\n }\n if (redisClientPrototype?.MULTI) {\n if (isWrapped(redisClientPrototype?.MULTI)) {\n this._unwrap(redisClientPrototype, 'MULTI');\n }\n this._wrap(redisClientPrototype, 'MULTI', this._getPatchRedisClientMulti());\n }\n if (isWrapped(redisClientPrototype?.sendCommand)) {\n this._unwrap(redisClientPrototype, 'sendCommand');\n }\n this._wrap(redisClientPrototype, 'sendCommand', this._getPatchRedisClientSendCommand());\n if (isWrapped(redisClientPrototype?.connect)) {\n this._unwrap(redisClientPrototype, 'connect');\n }\n this._wrap(redisClientPrototype, 'connect', this._getPatchedClientConnect());\n return moduleExports;\n },\n (moduleExports: any) => {\n const redisClientPrototype = moduleExports?.default?.prototype;\n if (isWrapped(redisClientPrototype?.multi)) {\n this._unwrap(redisClientPrototype, 'multi');\n }\n if (isWrapped(redisClientPrototype?.MULTI)) {\n this._unwrap(redisClientPrototype, 'MULTI');\n }\n if (isWrapped(redisClientPrototype?.sendCommand)) {\n this._unwrap(redisClientPrototype, 'sendCommand');\n }\n if (isWrapped(redisClientPrototype?.connect)) {\n this._unwrap(redisClientPrototype, 'connect');\n }\n },\n );\n\n return new InstrumentationNodeModuleDefinition(\n basePackageName,\n ['^1.0.0', '>=5.0.0 <5.12.0'],\n (moduleExports: any) => moduleExports,\n () => {},\n [commanderModuleFile, multiCommanderModule, clientIndexModule],\n );\n }\n\n private _getPatchExtendWithCommands(transformCommandArguments: Function) {\n const plugin = this;\n return function extendWithCommandsPatchWrapper(original: Function) {\n return function extendWithCommandsPatch(this: any, config: any) {\n if (config?.BaseClass?.name !== 'RedisClient') {\n return original.apply(this, arguments);\n }\n const origExecutor = config.executor;\n config.executor = function (this: any, command: any, args: any) {\n const redisCommandArguments = transformCommandArguments(command, args).args;\n return plugin._traceClientCommand(origExecutor, this, arguments, redisCommandArguments);\n };\n return original.apply(this, arguments);\n };\n };\n }\n\n private _getPatchMultiCommandsExec() {\n const plugin = this;\n return function execPatchWrapper(original: Function) {\n return function execPatch(this: any) {\n const execRes = original.apply(this, arguments);\n if (typeof execRes?.then !== 'function') {\n DEBUG_BUILD && debug.error('non-promise result when patching exec/execAsPipeline');\n return execRes;\n }\n return execRes\n .then((redisRes: unknown[]) => {\n const openSpans: OpenSpanInfo[] = this[OTEL_OPEN_SPANS];\n plugin._endSpansWithRedisReplies(openSpans, redisRes);\n return redisRes;\n })\n .catch((err: any) => {\n const openSpans: OpenSpanInfo[] = this[OTEL_OPEN_SPANS];\n if (!openSpans) {\n DEBUG_BUILD && debug.error('cannot find open spans to end for multi/pipeline');\n } else {\n const replies =\n err.constructor.name === 'MultiErrorReply'\n ? (err as MultiErrorReply).replies\n : new Array(openSpans.length).fill(err);\n plugin._endSpansWithRedisReplies(openSpans, replies);\n }\n return Promise.reject(err);\n });\n };\n };\n }\n\n private _getPatchMultiCommandsAddCommand() {\n const plugin = this;\n return function addCommandWrapper(original: Function) {\n return function addCommandPatch(this: any, args: any) {\n return plugin._traceClientCommand(original, this, arguments, args);\n };\n };\n }\n\n private _getPatchRedisClientMulti() {\n return function multiPatchWrapper(original: Function) {\n return function multiPatch(this: any) {\n const multiRes: any = original.apply(this, arguments);\n multiRes[MULTI_COMMAND_OPTIONS] = this.options;\n return multiRes;\n };\n };\n }\n\n private _getPatchRedisClientSendCommand() {\n const plugin = this;\n return function sendCommandWrapper(original: Function) {\n return function sendCommandPatch(this: any, args: any) {\n return plugin._traceClientCommand(original, this, arguments, args);\n };\n };\n }\n\n private _getPatchedClientConnect() {\n return function connectWrapper(original: Function) {\n return function patchedConnect(this: any) {\n const attributes = getClientAttributes(this.options);\n const span = startInactiveSpan({\n name: `${RedisInstrumentationV4_V5.COMPONENT}-connect`,\n kind: SpanKind.CLIENT,\n attributes,\n });\n const res = withActiveSpan(span, () => original.apply(this));\n return res.then(\n (result: any) => {\n span.end();\n return result;\n },\n (error: Error) => {\n endSpan(span, error);\n return Promise.reject(error);\n },\n );\n };\n };\n }\n\n _traceClientCommand(\n origFunction: Function,\n origThis: any,\n origArguments: IArguments,\n redisCommandArguments: Array<string | Buffer>,\n ): any {\n const clientOptions = origThis.options || origThis[MULTI_COMMAND_OPTIONS];\n const commandName = redisCommandArguments[0] as string;\n const commandArgs = redisCommandArguments.slice(1);\n const attributes = getClientAttributes(clientOptions);\n const dbStatement = defaultDbStatementSerializer(commandName, commandArgs);\n if (dbStatement != null) {\n attributes[ATTR_DB_STATEMENT] = dbStatement;\n }\n const span = startInactiveSpan({\n name: `${RedisInstrumentationV4_V5.COMPONENT}-${commandName}`,\n kind: SpanKind.CLIENT,\n attributes,\n });\n const res = withActiveSpan(span, () => origFunction.apply(origThis, origArguments));\n if (res instanceof Promise) {\n res.then(\n (redisRes: unknown) => {\n this._endSpanWithResponse(span, commandName, commandArgs, redisRes, undefined);\n },\n (err: Error) => {\n this._endSpanWithResponse(span, commandName, commandArgs, null, err);\n },\n );\n } else {\n const redisClientMultiCommand: any = res;\n redisClientMultiCommand[OTEL_OPEN_SPANS] = redisClientMultiCommand[OTEL_OPEN_SPANS] || [];\n redisClientMultiCommand[OTEL_OPEN_SPANS].push({\n span,\n commandName,\n commandArgs,\n });\n }\n return res;\n }\n\n _endSpansWithRedisReplies(openSpans: OpenSpanInfo[] | undefined, replies: unknown[]): void {\n if (!openSpans) {\n DEBUG_BUILD && debug.error('cannot find open spans to end for redis multi/pipeline');\n return;\n }\n if (replies.length !== openSpans.length) {\n DEBUG_BUILD && debug.error('number of multi command spans does not match response from redis');\n return;\n }\n for (let i = 0; i < openSpans.length; i++) {\n const { span, commandName, commandArgs } = openSpans[i]!;\n const currCommandRes = replies[i];\n const [res, err] = currCommandRes instanceof Error ? [null, currCommandRes] : [currCommandRes, undefined];\n this._endSpanWithResponse(span, commandName, commandArgs, res, err);\n }\n }\n\n _endSpanWithResponse(\n span: Span,\n commandName: string,\n commandArgs: Array<string | Buffer>,\n response: unknown,\n error: Error | null | undefined,\n ): void {\n if (!error) {\n runResponseHook(this.getConfig().responseHook, span, commandName, commandArgs, response);\n }\n endSpan(span, error);\n }\n}\n\n// ---- RedisInstrumentation (wrapper) ----\n\nexport class RedisInstrumentation extends InstrumentationBase<RedisInstrumentationConfig> {\n private instrumentationV2_V3: RedisInstrumentationV2_V3;\n private instrumentationV4_V5: RedisInstrumentationV4_V5;\n private initialized = false;\n\n constructor(config: RedisInstrumentationConfig = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n this.instrumentationV2_V3 = new RedisInstrumentationV2_V3(this.getConfig());\n this.instrumentationV4_V5 = new RedisInstrumentationV4_V5(this.getConfig());\n this.initialized = true;\n }\n\n override setConfig(config: RedisInstrumentationConfig = {}): void {\n super.setConfig(config);\n if (!this.initialized) {\n return;\n }\n this.instrumentationV2_V3.setConfig(config);\n this.instrumentationV4_V5.setConfig(config);\n }\n\n init() {}\n\n override getModuleDefinitions() {\n return [...this.instrumentationV2_V3.getModuleDefinitions(), ...this.instrumentationV4_V5.getModuleDefinitions()];\n }\n\n override setTracerProvider(tracerProvider: TracerProvider): void {\n super.setTracerProvider(tracerProvider);\n if (!this.initialized) {\n return;\n }\n this.instrumentationV2_V3.setTracerProvider(tracerProvider);\n this.instrumentationV4_V5.setTracerProvider(tracerProvider);\n }\n\n override enable(): void {\n super.enable();\n if (!this.initialized) {\n return;\n }\n this.instrumentationV2_V3.enable();\n this.instrumentationV4_V5.enable();\n }\n\n override disable(): void {\n super.disable();\n if (!this.initialized) {\n return;\n }\n this.instrumentationV2_V3.disable();\n this.instrumentationV4_V5.disable();\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"redis-instrumentation.js","sources":["../../../../../../src/integrations/tracing/redis/vendored/redis-instrumentation.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/instrumentation-redis-v0.62.0/packages/instrumentation-redis\n * - Upstream version: @opentelemetry/instrumentation-redis@0.62.0\n * - Minor TypeScript adjustments for this repository's compiler settings\n * - Refactored to use Sentry's span APIs instead of OpenTelemetry tracing APIs\n */\n\nimport type { TracerProvider } from '@opentelemetry/api';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport type { Span, SpanAttributes } from '@sentry/core';\nimport {\n debug,\n getActiveSpan,\n SDK_VERSION,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SPAN_KIND,\n SPAN_STATUS_ERROR,\n startInactiveSpan,\n withActiveSpan,\n} from '@sentry/core';\nimport { DEBUG_BUILD } from '../../../../debug-build';\nimport { InstrumentationNodeModuleFile } from '../../InstrumentationNodeModuleFile';\nimport { defaultDbStatementSerializer } from './redis-common';\nimport {\n ATTR_DB_CONNECTION_STRING,\n ATTR_DB_STATEMENT,\n ATTR_DB_SYSTEM,\n ATTR_NET_PEER_NAME,\n ATTR_NET_PEER_PORT,\n DB_SYSTEM_VALUE_REDIS,\n} from './semconv';\nimport type { RedisInstrumentationConfig, RedisResponseCustomAttributeFunction } from './types';\n\nconst PACKAGE_NAME = '@sentry/instrumentation-redis';\nconst ORIGIN = 'auto.db.otel.redis';\n\n// node-redis >= 5.12.0 publishes via diagnostics_channel, which Sentry subscribes\n// to separately, so this monkey-patching instrumentation only covers the older\n// `redis` (v2-v3), `@redis/client`/`@node-redis/client` (v1, i.e. node-redis v4)\n// and node-redis 5.0-5.11 releases.\n\n// ---- Internal types ----\n\ninterface RedisPluginClientTypes {\n connection_options?: {\n port?: string | number;\n host?: string;\n };\n address?: string;\n}\n\ninterface RedisCommand {\n command: string;\n args: string[];\n buffer_args: boolean;\n callback: (err: Error | null, reply: unknown) => void;\n call_on_write: boolean;\n}\n\ninterface MultiErrorReply extends Error {\n replies: unknown[];\n errorIndexes: Array<number>;\n}\n\ninterface OpenSpanInfo {\n span: Span;\n commandName: string;\n commandArgs: Array<string | Buffer>;\n}\n\nconst OTEL_OPEN_SPANS = Symbol('opentelemetry.instrumentation.redis.open_spans');\nconst MULTI_COMMAND_OPTIONS = Symbol('opentelemetry.instrumentation.redis.multi_command_options');\n\n// ---- shared utils ----\n\nfunction endSpan(span: Span, err: Error | null | undefined): void {\n if (err) {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: err.message });\n }\n span.end();\n}\n\nfunction runResponseHook(\n responseHook: RedisResponseCustomAttributeFunction | undefined,\n span: Span,\n commandName: string,\n commandArgs: Array<string | Buffer>,\n response: unknown,\n): void {\n if (!responseHook) {\n return;\n }\n try {\n responseHook(span, commandName, commandArgs, response);\n } catch {\n // never let a user-provided response hook break instrumentation\n }\n}\n\n// ---- v4-v5 utils ----\n\nfunction removeCredentialsFromDBConnectionStringAttribute(url: string | undefined): string | undefined {\n if (typeof url !== 'string' || !url) {\n return undefined;\n }\n try {\n const u = new URL(url);\n u.searchParams.delete('user_pwd');\n u.username = '';\n u.password = '';\n return u.href;\n } catch (err) {\n DEBUG_BUILD && debug.error('failed to sanitize redis connection url', err);\n }\n return undefined;\n}\n\nfunction getClientAttributes(options: any): SpanAttributes {\n return {\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_REDIS,\n [ATTR_NET_PEER_NAME]: options?.socket?.host,\n [ATTR_NET_PEER_PORT]: options?.socket?.port,\n [ATTR_DB_CONNECTION_STRING]: removeCredentialsFromDBConnectionStringAttribute(options?.url),\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n };\n}\n\n// ---- RedisInstrumentationV2_V3 ----\n\nclass RedisInstrumentationV2_V3 extends InstrumentationBase<RedisInstrumentationConfig> {\n static COMPONENT = 'redis';\n\n constructor(config: RedisInstrumentationConfig = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n\n init() {\n return [\n new InstrumentationNodeModuleDefinition(\n 'redis',\n ['>=2.6.0 <4'],\n (moduleExports: any) => {\n if (isWrapped(moduleExports.RedisClient.prototype['internal_send_command'])) {\n this._unwrap(moduleExports.RedisClient.prototype, 'internal_send_command');\n }\n this._wrap(moduleExports.RedisClient.prototype, 'internal_send_command', this._getPatchInternalSendCommand());\n return moduleExports;\n },\n (moduleExports: any) => {\n if (moduleExports === undefined) return;\n this._unwrap(moduleExports.RedisClient.prototype, 'internal_send_command');\n },\n ),\n ];\n }\n\n private _getPatchInternalSendCommand() {\n const instrumentation = this;\n return function internal_send_command(original: Function) {\n return function internal_send_command_trace(this: RedisPluginClientTypes, cmd: RedisCommand) {\n if (arguments.length !== 1 || typeof cmd !== 'object') {\n return original.apply(this, arguments);\n }\n const attributes: SpanAttributes = {\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_REDIS,\n [ATTR_DB_STATEMENT]: defaultDbStatementSerializer(cmd.command, cmd.args),\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: ORIGIN,\n };\n if (this.connection_options) {\n attributes[ATTR_NET_PEER_NAME] = this.connection_options.host;\n attributes[ATTR_NET_PEER_PORT] = this.connection_options.port;\n }\n if (this.address) {\n attributes[ATTR_DB_CONNECTION_STRING] = `redis://${this.address}`;\n }\n const span = startInactiveSpan({\n name: `${RedisInstrumentationV2_V3.COMPONENT}-${cmd.command}`,\n kind: SPAN_KIND.CLIENT,\n attributes,\n });\n const originalCallback = arguments[0].callback;\n if (originalCallback) {\n const parentSpan = getActiveSpan();\n arguments[0].callback = function callback(this: any, err: Error | null, reply: unknown) {\n runResponseHook(instrumentation.getConfig().responseHook, span, cmd.command, cmd.args, reply);\n endSpan(span, err);\n return withActiveSpan(parentSpan ?? null, () => originalCallback.apply(this, arguments));\n };\n }\n try {\n return original.apply(this, arguments);\n } catch (rethrow) {\n endSpan(span, rethrow as Error);\n throw rethrow;\n }\n };\n };\n }\n}\n\n// ---- RedisInstrumentationV4_V5 ----\n\nclass RedisInstrumentationV4_V5 extends InstrumentationBase<RedisInstrumentationConfig> {\n static COMPONENT = 'redis';\n\n constructor(config: RedisInstrumentationConfig = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n\n init() {\n return [\n this._getInstrumentationNodeModuleDefinition('@redis/client'),\n this._getInstrumentationNodeModuleDefinition('@node-redis/client'),\n ];\n }\n\n private _getInstrumentationNodeModuleDefinition(basePackageName: string) {\n const commanderModuleFile = new InstrumentationNodeModuleFile(\n `${basePackageName}/dist/lib/commander.js`,\n ['^1.0.0'],\n (moduleExports: any, moduleVersion?: string) => {\n const transformCommandArguments = moduleExports.transformCommandArguments;\n if (!transformCommandArguments) {\n DEBUG_BUILD && debug.error('internal instrumentation error, missing transformCommandArguments function');\n return moduleExports;\n }\n const functionToPatch = moduleVersion?.startsWith('1.0.') ? 'extendWithCommands' : 'attachCommands';\n if (isWrapped(moduleExports?.[functionToPatch])) {\n this._unwrap(moduleExports, functionToPatch);\n }\n this._wrap(moduleExports, functionToPatch, this._getPatchExtendWithCommands(transformCommandArguments));\n return moduleExports;\n },\n (moduleExports: any) => {\n if (isWrapped(moduleExports?.extendWithCommands)) {\n this._unwrap(moduleExports, 'extendWithCommands');\n }\n if (isWrapped(moduleExports?.attachCommands)) {\n this._unwrap(moduleExports, 'attachCommands');\n }\n },\n );\n\n const multiCommanderModule = new InstrumentationNodeModuleFile(\n `${basePackageName}/dist/lib/client/multi-command.js`,\n ['^1.0.0', '>=5.0.0 <5.12.0'],\n (moduleExports: any) => {\n const redisClientMultiCommandPrototype = moduleExports?.default?.prototype;\n if (isWrapped(redisClientMultiCommandPrototype?.exec)) {\n this._unwrap(redisClientMultiCommandPrototype, 'exec');\n }\n this._wrap(redisClientMultiCommandPrototype, 'exec', this._getPatchMultiCommandsExec());\n if (isWrapped(redisClientMultiCommandPrototype?.execAsPipeline)) {\n this._unwrap(redisClientMultiCommandPrototype, 'execAsPipeline');\n }\n this._wrap(redisClientMultiCommandPrototype, 'execAsPipeline', this._getPatchMultiCommandsExec());\n if (isWrapped(redisClientMultiCommandPrototype?.addCommand)) {\n this._unwrap(redisClientMultiCommandPrototype, 'addCommand');\n }\n this._wrap(redisClientMultiCommandPrototype, 'addCommand', this._getPatchMultiCommandsAddCommand());\n return moduleExports;\n },\n (moduleExports: any) => {\n const redisClientMultiCommandPrototype = moduleExports?.default?.prototype;\n if (isWrapped(redisClientMultiCommandPrototype?.exec)) {\n this._unwrap(redisClientMultiCommandPrototype, 'exec');\n }\n if (isWrapped(redisClientMultiCommandPrototype?.execAsPipeline)) {\n this._unwrap(redisClientMultiCommandPrototype, 'execAsPipeline');\n }\n if (isWrapped(redisClientMultiCommandPrototype?.addCommand)) {\n this._unwrap(redisClientMultiCommandPrototype, 'addCommand');\n }\n },\n );\n\n const clientIndexModule = new InstrumentationNodeModuleFile(\n `${basePackageName}/dist/lib/client/index.js`,\n ['^1.0.0', '>=5.0.0 <5.12.0'],\n (moduleExports: any) => {\n const redisClientPrototype = moduleExports?.default?.prototype;\n if (redisClientPrototype?.multi) {\n if (isWrapped(redisClientPrototype?.multi)) {\n this._unwrap(redisClientPrototype, 'multi');\n }\n this._wrap(redisClientPrototype, 'multi', this._getPatchRedisClientMulti());\n }\n if (redisClientPrototype?.MULTI) {\n if (isWrapped(redisClientPrototype?.MULTI)) {\n this._unwrap(redisClientPrototype, 'MULTI');\n }\n this._wrap(redisClientPrototype, 'MULTI', this._getPatchRedisClientMulti());\n }\n if (isWrapped(redisClientPrototype?.sendCommand)) {\n this._unwrap(redisClientPrototype, 'sendCommand');\n }\n this._wrap(redisClientPrototype, 'sendCommand', this._getPatchRedisClientSendCommand());\n if (isWrapped(redisClientPrototype?.connect)) {\n this._unwrap(redisClientPrototype, 'connect');\n }\n this._wrap(redisClientPrototype, 'connect', this._getPatchedClientConnect());\n return moduleExports;\n },\n (moduleExports: any) => {\n const redisClientPrototype = moduleExports?.default?.prototype;\n if (isWrapped(redisClientPrototype?.multi)) {\n this._unwrap(redisClientPrototype, 'multi');\n }\n if (isWrapped(redisClientPrototype?.MULTI)) {\n this._unwrap(redisClientPrototype, 'MULTI');\n }\n if (isWrapped(redisClientPrototype?.sendCommand)) {\n this._unwrap(redisClientPrototype, 'sendCommand');\n }\n if (isWrapped(redisClientPrototype?.connect)) {\n this._unwrap(redisClientPrototype, 'connect');\n }\n },\n );\n\n return new InstrumentationNodeModuleDefinition(\n basePackageName,\n ['^1.0.0', '>=5.0.0 <5.12.0'],\n (moduleExports: any) => moduleExports,\n () => {},\n [commanderModuleFile, multiCommanderModule, clientIndexModule],\n );\n }\n\n private _getPatchExtendWithCommands(transformCommandArguments: Function) {\n const plugin = this;\n return function extendWithCommandsPatchWrapper(original: Function) {\n return function extendWithCommandsPatch(this: any, config: any) {\n if (config?.BaseClass?.name !== 'RedisClient') {\n return original.apply(this, arguments);\n }\n const origExecutor = config.executor;\n config.executor = function (this: any, command: any, args: any) {\n const redisCommandArguments = transformCommandArguments(command, args).args;\n return plugin._traceClientCommand(origExecutor, this, arguments, redisCommandArguments);\n };\n return original.apply(this, arguments);\n };\n };\n }\n\n private _getPatchMultiCommandsExec() {\n const plugin = this;\n return function execPatchWrapper(original: Function) {\n return function execPatch(this: any) {\n const execRes = original.apply(this, arguments);\n if (typeof execRes?.then !== 'function') {\n DEBUG_BUILD && debug.error('non-promise result when patching exec/execAsPipeline');\n return execRes;\n }\n return execRes\n .then((redisRes: unknown[]) => {\n const openSpans: OpenSpanInfo[] = this[OTEL_OPEN_SPANS];\n plugin._endSpansWithRedisReplies(openSpans, redisRes);\n return redisRes;\n })\n .catch((err: any) => {\n const openSpans: OpenSpanInfo[] = this[OTEL_OPEN_SPANS];\n if (!openSpans) {\n DEBUG_BUILD && debug.error('cannot find open spans to end for multi/pipeline');\n } else {\n const replies =\n err.constructor.name === 'MultiErrorReply'\n ? (err as MultiErrorReply).replies\n : new Array(openSpans.length).fill(err);\n plugin._endSpansWithRedisReplies(openSpans, replies);\n }\n return Promise.reject(err);\n });\n };\n };\n }\n\n private _getPatchMultiCommandsAddCommand() {\n const plugin = this;\n return function addCommandWrapper(original: Function) {\n return function addCommandPatch(this: any, args: any) {\n return plugin._traceClientCommand(original, this, arguments, args);\n };\n };\n }\n\n private _getPatchRedisClientMulti() {\n return function multiPatchWrapper(original: Function) {\n return function multiPatch(this: any) {\n const multiRes: any = original.apply(this, arguments);\n multiRes[MULTI_COMMAND_OPTIONS] = this.options;\n return multiRes;\n };\n };\n }\n\n private _getPatchRedisClientSendCommand() {\n const plugin = this;\n return function sendCommandWrapper(original: Function) {\n return function sendCommandPatch(this: any, args: any) {\n return plugin._traceClientCommand(original, this, arguments, args);\n };\n };\n }\n\n private _getPatchedClientConnect() {\n return function connectWrapper(original: Function) {\n return function patchedConnect(this: any) {\n const attributes = getClientAttributes(this.options);\n const span = startInactiveSpan({\n name: `${RedisInstrumentationV4_V5.COMPONENT}-connect`,\n kind: SPAN_KIND.CLIENT,\n attributes,\n });\n const res = withActiveSpan(span, () => original.apply(this));\n return res.then(\n (result: any) => {\n span.end();\n return result;\n },\n (error: Error) => {\n endSpan(span, error);\n return Promise.reject(error);\n },\n );\n };\n };\n }\n\n _traceClientCommand(\n origFunction: Function,\n origThis: any,\n origArguments: IArguments,\n redisCommandArguments: Array<string | Buffer>,\n ): any {\n const clientOptions = origThis.options || origThis[MULTI_COMMAND_OPTIONS];\n const commandName = redisCommandArguments[0] as string;\n const commandArgs = redisCommandArguments.slice(1);\n const attributes = getClientAttributes(clientOptions);\n const dbStatement = defaultDbStatementSerializer(commandName, commandArgs);\n if (dbStatement != null) {\n attributes[ATTR_DB_STATEMENT] = dbStatement;\n }\n const span = startInactiveSpan({\n name: `${RedisInstrumentationV4_V5.COMPONENT}-${commandName}`,\n kind: SPAN_KIND.CLIENT,\n attributes,\n });\n const res = withActiveSpan(span, () => origFunction.apply(origThis, origArguments));\n if (res instanceof Promise) {\n res.then(\n (redisRes: unknown) => {\n this._endSpanWithResponse(span, commandName, commandArgs, redisRes, undefined);\n },\n (err: Error) => {\n this._endSpanWithResponse(span, commandName, commandArgs, null, err);\n },\n );\n } else {\n const redisClientMultiCommand: any = res;\n redisClientMultiCommand[OTEL_OPEN_SPANS] = redisClientMultiCommand[OTEL_OPEN_SPANS] || [];\n redisClientMultiCommand[OTEL_OPEN_SPANS].push({\n span,\n commandName,\n commandArgs,\n });\n }\n return res;\n }\n\n _endSpansWithRedisReplies(openSpans: OpenSpanInfo[] | undefined, replies: unknown[]): void {\n if (!openSpans) {\n DEBUG_BUILD && debug.error('cannot find open spans to end for redis multi/pipeline');\n return;\n }\n if (replies.length !== openSpans.length) {\n DEBUG_BUILD && debug.error('number of multi command spans does not match response from redis');\n return;\n }\n for (let i = 0; i < openSpans.length; i++) {\n const { span, commandName, commandArgs } = openSpans[i]!;\n const currCommandRes = replies[i];\n const [res, err] = currCommandRes instanceof Error ? [null, currCommandRes] : [currCommandRes, undefined];\n this._endSpanWithResponse(span, commandName, commandArgs, res, err);\n }\n }\n\n _endSpanWithResponse(\n span: Span,\n commandName: string,\n commandArgs: Array<string | Buffer>,\n response: unknown,\n error: Error | null | undefined,\n ): void {\n if (!error) {\n runResponseHook(this.getConfig().responseHook, span, commandName, commandArgs, response);\n }\n endSpan(span, error);\n }\n}\n\n// ---- RedisInstrumentation (wrapper) ----\n\nexport class RedisInstrumentation extends InstrumentationBase<RedisInstrumentationConfig> {\n private instrumentationV2_V3: RedisInstrumentationV2_V3;\n private instrumentationV4_V5: RedisInstrumentationV4_V5;\n private initialized = false;\n\n constructor(config: RedisInstrumentationConfig = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n this.instrumentationV2_V3 = new RedisInstrumentationV2_V3(this.getConfig());\n this.instrumentationV4_V5 = new RedisInstrumentationV4_V5(this.getConfig());\n this.initialized = true;\n }\n\n override setConfig(config: RedisInstrumentationConfig = {}): void {\n super.setConfig(config);\n if (!this.initialized) {\n return;\n }\n this.instrumentationV2_V3.setConfig(config);\n this.instrumentationV4_V5.setConfig(config);\n }\n\n init() {}\n\n override getModuleDefinitions() {\n return [...this.instrumentationV2_V3.getModuleDefinitions(), ...this.instrumentationV4_V5.getModuleDefinitions()];\n }\n\n override setTracerProvider(tracerProvider: TracerProvider): void {\n super.setTracerProvider(tracerProvider);\n if (!this.initialized) {\n return;\n }\n this.instrumentationV2_V3.setTracerProvider(tracerProvider);\n this.instrumentationV4_V5.setTracerProvider(tracerProvider);\n }\n\n override enable(): void {\n super.enable();\n if (!this.initialized) {\n return;\n }\n this.instrumentationV2_V3.enable();\n this.instrumentationV4_V5.enable();\n }\n\n override disable(): void {\n super.disable();\n if (!this.initialized) {\n return;\n }\n this.instrumentationV2_V3.disable();\n this.instrumentationV4_V5.disable();\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,9 +1,8 @@
1
- import * as api from '@opentelemetry/api';
2
1
  import { EventEmitter } from 'events';
3
2
  import { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';
4
3
  import { ATTR_NET_PEER_PORT, ATTR_NET_PEER_NAME, ATTR_DB_SQL_TABLE, ATTR_DB_USER, DB_SYSTEM_VALUE_MSSQL, ATTR_DB_STATEMENT, ATTR_DB_NAME, ATTR_DB_SYSTEM } from './semconv.js';
5
4
  import { getSpanName, once } from './utils.js';
6
- import { SDK_VERSION, startInactiveSpan, withActiveSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SPAN_STATUS_ERROR } from '@sentry/core';
5
+ import { SDK_VERSION, startInactiveSpan, SPAN_KIND, withActiveSpan, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SPAN_STATUS_ERROR } from '@sentry/core';
7
6
 
8
7
  const PACKAGE_NAME = "@sentry/instrumentation-tedious";
9
8
  const CURRENT_DATABASE = /* @__PURE__ */ Symbol("opentelemetry.instrumentation-tedious.current-database");
@@ -98,7 +97,7 @@ const _TediousInstrumentation = class _TediousInstrumentation extends Instrument
98
97
  };
99
98
  const span = startInactiveSpan({
100
99
  name: getSpanName(operation, databaseName, sql, request.table),
101
- kind: api.SpanKind.CLIENT,
100
+ kind: SPAN_KIND.CLIENT,
102
101
  attributes
103
102
  });
104
103
  const endSpan = once((err) => {
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.js","sources":["../../../../../../src/integrations/tracing/tedious/vendored/instrumentation.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-tedious\n * - Upstream version: @opentelemetry/instrumentation-tedious@0.37.0\n * - Minor TypeScript strictness adjustments\n * - Span creation migrated to the @sentry/core API; origin folded into span creation\n */\n\nimport * as api from '@opentelemetry/api';\nimport { EventEmitter } from 'events';\nimport type { InstrumentationConfig } from '@opentelemetry/instrumentation';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport {\n DB_SYSTEM_VALUE_MSSQL,\n ATTR_DB_NAME,\n ATTR_DB_SQL_TABLE,\n ATTR_DB_STATEMENT,\n ATTR_DB_SYSTEM,\n ATTR_DB_USER,\n ATTR_NET_PEER_NAME,\n ATTR_NET_PEER_PORT,\n} from './semconv';\nimport type * as tedious from './tedious-types';\nimport { getSpanName, once } from './utils';\nimport {\n SDK_VERSION,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SPAN_STATUS_ERROR,\n startInactiveSpan,\n withActiveSpan,\n} from '@sentry/core';\n\nconst PACKAGE_NAME = '@sentry/instrumentation-tedious';\n\nconst CURRENT_DATABASE = Symbol('opentelemetry.instrumentation-tedious.current-database');\n\nconst PATCHED_METHODS = ['callProcedure', 'execSql', 'execSqlBatch', 'execBulkLoad', 'prepare', 'execute'];\n\ntype UnknownFunction = (...args: any[]) => any;\ntype ApproxConnection = EventEmitter & {\n [CURRENT_DATABASE]: string;\n config: any;\n};\ntype ApproxRequest = EventEmitter & {\n sqlTextOrProcedure: string | undefined;\n callback: any;\n table: string | undefined;\n parametersByName: any;\n};\n\nfunction setDatabase(this: ApproxConnection, databaseName: string) {\n Object.defineProperty(this, CURRENT_DATABASE, {\n value: databaseName,\n writable: true,\n });\n}\n\nexport class TediousInstrumentation extends InstrumentationBase<InstrumentationConfig> {\n static readonly COMPONENT = 'tedious';\n\n constructor(config: InstrumentationConfig = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n\n protected init() {\n return [\n new InstrumentationNodeModuleDefinition(\n TediousInstrumentation.COMPONENT,\n ['>=1.11.0 <20'],\n (moduleExports: typeof tedious) => {\n const ConnectionPrototype: any = moduleExports.Connection.prototype;\n for (const method of PATCHED_METHODS) {\n if (isWrapped(ConnectionPrototype[method])) {\n this._unwrap(ConnectionPrototype, method);\n }\n this._wrap(ConnectionPrototype, method, this._patchQuery(method) as any);\n }\n\n if (isWrapped(ConnectionPrototype.connect)) {\n this._unwrap(ConnectionPrototype, 'connect');\n }\n // oxlint-disable-next-line typescript/unbound-method\n this._wrap(ConnectionPrototype, 'connect', this._patchConnect);\n\n return moduleExports;\n },\n (moduleExports: typeof tedious) => {\n if (moduleExports === undefined) return;\n const ConnectionPrototype: any = moduleExports.Connection.prototype;\n for (const method of PATCHED_METHODS) {\n this._unwrap(ConnectionPrototype, method);\n }\n this._unwrap(ConnectionPrototype, 'connect');\n },\n ),\n ];\n }\n\n private _patchConnect(original: UnknownFunction): UnknownFunction {\n return function patchedConnect(this: ApproxConnection) {\n setDatabase.call(this, this.config?.options?.database);\n\n // remove the listener first in case it's already added\n this.removeListener('databaseChange', setDatabase);\n this.on('databaseChange', setDatabase);\n\n this.once('end', () => {\n this.removeListener('databaseChange', setDatabase);\n });\n return original.apply(this, arguments as unknown as any[]);\n };\n }\n\n private _patchQuery(operation: string) {\n return (originalMethod: UnknownFunction): UnknownFunction => {\n const thisPlugin = this;\n\n function patchedMethod(this: ApproxConnection, request: ApproxRequest) {\n if (!(request instanceof EventEmitter)) {\n thisPlugin._diag.warn(`Unexpected invocation of patched ${operation} method. Span not recorded`);\n return originalMethod.apply(this, arguments as unknown as any[]);\n }\n let procCount = 0;\n let statementCount = 0;\n const incrementStatementCount = () => statementCount++;\n const incrementProcCount = () => procCount++;\n const databaseName = this[CURRENT_DATABASE];\n const sql = (request => {\n // Required for <11.0.9\n if (request.sqlTextOrProcedure === 'sp_prepare' && request.parametersByName?.stmt?.value) {\n return request.parametersByName.stmt.value;\n }\n return request.sqlTextOrProcedure;\n })(request);\n\n const attributes: api.Attributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.db.otel.tedious',\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_MSSQL,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_NAME]: databaseName,\n // >=4 uses `authentication` object; older versions just userName and password pair\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_USER]: this.config?.userName ?? this.config?.authentication?.options?.userName,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_STATEMENT]: sql,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_SQL_TABLE]: request.table,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_NET_PEER_NAME]: this.config?.server,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_NET_PEER_PORT]: this.config?.options?.port,\n };\n const span = startInactiveSpan({\n name: getSpanName(operation, databaseName, sql, request.table),\n kind: api.SpanKind.CLIENT,\n attributes,\n });\n\n const endSpan = once((err?: any) => {\n request.removeListener('done', incrementStatementCount);\n request.removeListener('doneInProc', incrementStatementCount);\n request.removeListener('doneProc', incrementProcCount);\n request.removeListener('error', endSpan);\n this.removeListener('end', endSpan);\n\n span.setAttribute('tedious.procedure_count', procCount);\n span.setAttribute('tedious.statement_count', statementCount);\n if (err) {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: err.message,\n });\n // TODO(3290): set `error.type` attribute?\n }\n span.end();\n });\n\n request.on('done', incrementStatementCount);\n request.on('doneInProc', incrementStatementCount);\n request.on('doneProc', incrementProcCount);\n request.once('error', endSpan);\n this.on('end', endSpan);\n\n if (typeof request.callback === 'function') {\n thisPlugin._wrap(request, 'callback', thisPlugin._patchCallbackQuery(endSpan));\n } else {\n thisPlugin._diag.error('Expected request.callback to be a function');\n }\n\n return withActiveSpan(span, () => originalMethod.apply(this, arguments as unknown as any[]));\n }\n\n Object.defineProperty(patchedMethod, 'length', {\n value: originalMethod.length,\n writable: false,\n });\n\n return patchedMethod;\n };\n }\n\n private _patchCallbackQuery(endSpan: Function) {\n return (originalCallback: Function) => {\n return function (this: any, err: Error | undefined | null, _rowCount?: number, _rows?: any) {\n endSpan(err);\n return originalCallback.apply(this, arguments);\n };\n };\n }\n}\n"],"names":["request"],"mappings":";;;;;;;AAmCA,MAAM,YAAA,GAAe,iCAAA;AAErB,MAAM,gBAAA,0BAA0B,wDAAwD,CAAA;AAExF,MAAM,kBAAkB,CAAC,eAAA,EAAiB,WAAW,cAAA,EAAgB,cAAA,EAAgB,WAAW,SAAS,CAAA;AAczG,SAAS,YAAoC,YAAA,EAAsB;AACjE,EAAA,MAAA,CAAO,cAAA,CAAe,MAAM,gBAAA,EAAkB;AAAA,IAC5C,KAAA,EAAO,YAAA;AAAA,IACP,QAAA,EAAU;AAAA,GACX,CAAA;AACH;AAEO,MAAM,uBAAA,GAAN,MAAM,uBAAA,SAA+B,mBAAA,CAA2C;AAAA,EAGrF,WAAA,CAAY,MAAA,GAAgC,EAAC,EAAG;AAC9C,IAAA,KAAA,CAAM,YAAA,EAAc,aAAa,MAAM,CAAA;AAAA,EACzC;AAAA,EAEU,IAAA,GAAO;AACf,IAAA,OAAO;AAAA,MACL,IAAI,mCAAA;AAAA,QACF,uBAAA,CAAuB,SAAA;AAAA,QACvB,CAAC,cAAc,CAAA;AAAA,QACf,CAAC,aAAA,KAAkC;AACjC,UAAA,MAAM,mBAAA,GAA2B,cAAc,UAAA,CAAW,SAAA;AAC1D,UAAA,KAAA,MAAW,UAAU,eAAA,EAAiB;AACpC,YAAA,IAAI,SAAA,CAAU,mBAAA,CAAoB,MAAM,CAAC,CAAA,EAAG;AAC1C,cAAA,IAAA,CAAK,OAAA,CAAQ,qBAAqB,MAAM,CAAA;AAAA,YAC1C;AACA,YAAA,IAAA,CAAK,MAAM,mBAAA,EAAqB,MAAA,EAAQ,IAAA,CAAK,WAAA,CAAY,MAAM,CAAQ,CAAA;AAAA,UACzE;AAEA,UAAA,IAAI,SAAA,CAAU,mBAAA,CAAoB,OAAO,CAAA,EAAG;AAC1C,YAAA,IAAA,CAAK,OAAA,CAAQ,qBAAqB,SAAS,CAAA;AAAA,UAC7C;AAEA,UAAA,IAAA,CAAK,KAAA,CAAM,mBAAA,EAAqB,SAAA,EAAW,IAAA,CAAK,aAAa,CAAA;AAE7D,UAAA,OAAO,aAAA;AAAA,QACT,CAAA;AAAA,QACA,CAAC,aAAA,KAAkC;AACjC,UAAA,IAAI,kBAAkB,MAAA,EAAW;AACjC,UAAA,MAAM,mBAAA,GAA2B,cAAc,UAAA,CAAW,SAAA;AAC1D,UAAA,KAAA,MAAW,UAAU,eAAA,EAAiB;AACpC,YAAA,IAAA,CAAK,OAAA,CAAQ,qBAAqB,MAAM,CAAA;AAAA,UAC1C;AACA,UAAA,IAAA,CAAK,OAAA,CAAQ,qBAAqB,SAAS,CAAA;AAAA,QAC7C;AAAA;AACF,KACF;AAAA,EACF;AAAA,EAEQ,cAAc,QAAA,EAA4C;AAChE,IAAA,OAAO,SAAS,cAAA,GAAuC;AACrD,MAAA,WAAA,CAAY,IAAA,CAAK,IAAA,EAAM,IAAA,CAAK,MAAA,EAAQ,SAAS,QAAQ,CAAA;AAGrD,MAAA,IAAA,CAAK,cAAA,CAAe,kBAAkB,WAAW,CAAA;AACjD,MAAA,IAAA,CAAK,EAAA,CAAG,kBAAkB,WAAW,CAAA;AAErC,MAAA,IAAA,CAAK,IAAA,CAAK,OAAO,MAAM;AACrB,QAAA,IAAA,CAAK,cAAA,CAAe,kBAAkB,WAAW,CAAA;AAAA,MACnD,CAAC,CAAA;AACD,MAAA,OAAO,QAAA,CAAS,KAAA,CAAM,IAAA,EAAM,SAA6B,CAAA;AAAA,IAC3D,CAAA;AAAA,EACF;AAAA,EAEQ,YAAY,SAAA,EAAmB;AACrC,IAAA,OAAO,CAAC,cAAA,KAAqD;AAC3D,MAAA,MAAM,UAAA,GAAa,IAAA;AAEnB,MAAA,SAAS,cAAsC,OAAA,EAAwB;AACrE,QAAA,IAAI,EAAE,mBAAmB,YAAA,CAAA,EAAe;AACtC,UAAA,UAAA,CAAW,KAAA,CAAM,IAAA,CAAK,CAAA,iCAAA,EAAoC,SAAS,CAAA,0BAAA,CAA4B,CAAA;AAC/F,UAAA,OAAO,cAAA,CAAe,KAAA,CAAM,IAAA,EAAM,SAA6B,CAAA;AAAA,QACjE;AACA,QAAA,IAAI,SAAA,GAAY,CAAA;AAChB,QAAA,IAAI,cAAA,GAAiB,CAAA;AACrB,QAAA,MAAM,0BAA0B,MAAM,cAAA,EAAA;AACtC,QAAA,MAAM,qBAAqB,MAAM,SAAA,EAAA;AACjC,QAAA,MAAM,YAAA,GAAe,KAAK,gBAAgB,CAAA;AAC1C,QAAA,MAAM,GAAA,GAAA,CAAO,CAAAA,QAAAA,KAAW;AAEtB,UAAA,IAAIA,SAAQ,kBAAA,KAAuB,YAAA,IAAgBA,QAAAA,CAAQ,gBAAA,EAAkB,MAAM,KAAA,EAAO;AACxF,YAAA,OAAOA,QAAAA,CAAQ,iBAAiB,IAAA,CAAK,KAAA;AAAA,UACvC;AACA,UAAA,OAAOA,QAAAA,CAAQ,kBAAA;AAAA,QACjB,GAAG,OAAO,CAAA;AAEV,QAAA,MAAM,UAAA,GAA6B;AAAA,UACjC,CAAC,gCAAgC,GAAG,sBAAA;AAAA;AAAA,UAEpC,CAAC,cAAc,GAAG,qBAAA;AAAA;AAAA,UAElB,CAAC,YAAY,GAAG,YAAA;AAAA;AAAA;AAAA,UAGhB,CAAC,YAAY,GAAG,IAAA,CAAK,QAAQ,QAAA,IAAY,IAAA,CAAK,MAAA,EAAQ,cAAA,EAAgB,OAAA,EAAS,QAAA;AAAA;AAAA,UAE/E,CAAC,iBAAiB,GAAG,GAAA;AAAA;AAAA,UAErB,CAAC,iBAAiB,GAAG,OAAA,CAAQ,KAAA;AAAA;AAAA,UAE7B,CAAC,kBAAkB,GAAG,IAAA,CAAK,MAAA,EAAQ,MAAA;AAAA;AAAA,UAEnC,CAAC,kBAAkB,GAAG,IAAA,CAAK,QAAQ,OAAA,EAAS;AAAA,SAC9C;AACA,QAAA,MAAM,OAAO,iBAAA,CAAkB;AAAA,UAC7B,MAAM,WAAA,CAAY,SAAA,EAAW,YAAA,EAAc,GAAA,EAAK,QAAQ,KAAK,CAAA;AAAA,UAC7D,IAAA,EAAM,IAAI,QAAA,CAAS,MAAA;AAAA,UACnB;AAAA,SACD,CAAA;AAED,QAAA,MAAM,OAAA,GAAU,IAAA,CAAK,CAAC,GAAA,KAAc;AAClC,UAAA,OAAA,CAAQ,cAAA,CAAe,QAAQ,uBAAuB,CAAA;AACtD,UAAA,OAAA,CAAQ,cAAA,CAAe,cAAc,uBAAuB,CAAA;AAC5D,UAAA,OAAA,CAAQ,cAAA,CAAe,YAAY,kBAAkB,CAAA;AACrD,UAAA,OAAA,CAAQ,cAAA,CAAe,SAAS,OAAO,CAAA;AACvC,UAAA,IAAA,CAAK,cAAA,CAAe,OAAO,OAAO,CAAA;AAElC,UAAA,IAAA,CAAK,YAAA,CAAa,2BAA2B,SAAS,CAAA;AACtD,UAAA,IAAA,CAAK,YAAA,CAAa,2BAA2B,cAAc,CAAA;AAC3D,UAAA,IAAI,GAAA,EAAK;AACP,YAAA,IAAA,CAAK,SAAA,CAAU;AAAA,cACb,IAAA,EAAM,iBAAA;AAAA,cACN,SAAS,GAAA,CAAI;AAAA,aACd,CAAA;AAAA,UAEH;AACA,UAAA,IAAA,CAAK,GAAA,EAAI;AAAA,QACX,CAAC,CAAA;AAED,QAAA,OAAA,CAAQ,EAAA,CAAG,QAAQ,uBAAuB,CAAA;AAC1C,QAAA,OAAA,CAAQ,EAAA,CAAG,cAAc,uBAAuB,CAAA;AAChD,QAAA,OAAA,CAAQ,EAAA,CAAG,YAAY,kBAAkB,CAAA;AACzC,QAAA,OAAA,CAAQ,IAAA,CAAK,SAAS,OAAO,CAAA;AAC7B,QAAA,IAAA,CAAK,EAAA,CAAG,OAAO,OAAO,CAAA;AAEtB,QAAA,IAAI,OAAO,OAAA,CAAQ,QAAA,KAAa,UAAA,EAAY;AAC1C,UAAA,UAAA,CAAW,MAAM,OAAA,EAAS,UAAA,EAAY,UAAA,CAAW,mBAAA,CAAoB,OAAO,CAAC,CAAA;AAAA,QAC/E,CAAA,MAAO;AACL,UAAA,UAAA,CAAW,KAAA,CAAM,MAAM,4CAA4C,CAAA;AAAA,QACrE;AAEA,QAAA,OAAO,eAAe,IAAA,EAAM,MAAM,eAAe,KAAA,CAAM,IAAA,EAAM,SAA6B,CAAC,CAAA;AAAA,MAC7F;AAEA,MAAA,MAAA,CAAO,cAAA,CAAe,eAAe,QAAA,EAAU;AAAA,QAC7C,OAAO,cAAA,CAAe,MAAA;AAAA,QACtB,QAAA,EAAU;AAAA,OACX,CAAA;AAED,MAAA,OAAO,aAAA;AAAA,IACT,CAAA;AAAA,EACF;AAAA,EAEQ,oBAAoB,OAAA,EAAmB;AAC7C,IAAA,OAAO,CAAC,gBAAA,KAA+B;AACrC,MAAA,OAAO,SAAqB,GAAA,EAA+B,SAAA,EAAoB,KAAA,EAAa;AAC1F,QAAA,OAAA,CAAQ,GAAG,CAAA;AACX,QAAA,OAAO,gBAAA,CAAiB,KAAA,CAAM,IAAA,EAAM,SAAS,CAAA;AAAA,MAC/C,CAAA;AAAA,IACF,CAAA;AAAA,EACF;AACF,CAAA;AAzJa,uBAAA,CACK,SAAA,GAAY,SAAA;AADvB,IAAM,sBAAA,GAAN;;;;"}
1
+ {"version":3,"file":"instrumentation.js","sources":["../../../../../../src/integrations/tracing/tedious/vendored/instrumentation.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-tedious\n * - Upstream version: @opentelemetry/instrumentation-tedious@0.37.0\n * - Minor TypeScript strictness adjustments\n * - Span creation migrated to the @sentry/core API; origin folded into span creation\n */\n\nimport { EventEmitter } from 'events';\nimport type { InstrumentationConfig } from '@opentelemetry/instrumentation';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport {\n DB_SYSTEM_VALUE_MSSQL,\n ATTR_DB_NAME,\n ATTR_DB_SQL_TABLE,\n ATTR_DB_STATEMENT,\n ATTR_DB_SYSTEM,\n ATTR_DB_USER,\n ATTR_NET_PEER_NAME,\n ATTR_NET_PEER_PORT,\n} from './semconv';\nimport type * as tedious from './tedious-types';\nimport { getSpanName, once } from './utils';\nimport type { SpanAttributes } from '@sentry/core';\nimport {\n SDK_VERSION,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SPAN_KIND,\n SPAN_STATUS_ERROR,\n startInactiveSpan,\n withActiveSpan,\n} from '@sentry/core';\n\nconst PACKAGE_NAME = '@sentry/instrumentation-tedious';\n\nconst CURRENT_DATABASE = Symbol('opentelemetry.instrumentation-tedious.current-database');\n\nconst PATCHED_METHODS = ['callProcedure', 'execSql', 'execSqlBatch', 'execBulkLoad', 'prepare', 'execute'];\n\ntype UnknownFunction = (...args: any[]) => any;\ntype ApproxConnection = EventEmitter & {\n [CURRENT_DATABASE]: string;\n config: any;\n};\ntype ApproxRequest = EventEmitter & {\n sqlTextOrProcedure: string | undefined;\n callback: any;\n table: string | undefined;\n parametersByName: any;\n};\n\nfunction setDatabase(this: ApproxConnection, databaseName: string) {\n Object.defineProperty(this, CURRENT_DATABASE, {\n value: databaseName,\n writable: true,\n });\n}\n\nexport class TediousInstrumentation extends InstrumentationBase<InstrumentationConfig> {\n static readonly COMPONENT = 'tedious';\n\n constructor(config: InstrumentationConfig = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n\n protected init() {\n return [\n new InstrumentationNodeModuleDefinition(\n TediousInstrumentation.COMPONENT,\n ['>=1.11.0 <20'],\n (moduleExports: typeof tedious) => {\n const ConnectionPrototype: any = moduleExports.Connection.prototype;\n for (const method of PATCHED_METHODS) {\n if (isWrapped(ConnectionPrototype[method])) {\n this._unwrap(ConnectionPrototype, method);\n }\n this._wrap(ConnectionPrototype, method, this._patchQuery(method) as any);\n }\n\n if (isWrapped(ConnectionPrototype.connect)) {\n this._unwrap(ConnectionPrototype, 'connect');\n }\n // oxlint-disable-next-line typescript/unbound-method\n this._wrap(ConnectionPrototype, 'connect', this._patchConnect);\n\n return moduleExports;\n },\n (moduleExports: typeof tedious) => {\n if (moduleExports === undefined) return;\n const ConnectionPrototype: any = moduleExports.Connection.prototype;\n for (const method of PATCHED_METHODS) {\n this._unwrap(ConnectionPrototype, method);\n }\n this._unwrap(ConnectionPrototype, 'connect');\n },\n ),\n ];\n }\n\n private _patchConnect(original: UnknownFunction): UnknownFunction {\n return function patchedConnect(this: ApproxConnection) {\n setDatabase.call(this, this.config?.options?.database);\n\n // remove the listener first in case it's already added\n this.removeListener('databaseChange', setDatabase);\n this.on('databaseChange', setDatabase);\n\n this.once('end', () => {\n this.removeListener('databaseChange', setDatabase);\n });\n return original.apply(this, arguments as unknown as any[]);\n };\n }\n\n private _patchQuery(operation: string) {\n return (originalMethod: UnknownFunction): UnknownFunction => {\n const thisPlugin = this;\n\n function patchedMethod(this: ApproxConnection, request: ApproxRequest) {\n if (!(request instanceof EventEmitter)) {\n thisPlugin._diag.warn(`Unexpected invocation of patched ${operation} method. Span not recorded`);\n return originalMethod.apply(this, arguments as unknown as any[]);\n }\n let procCount = 0;\n let statementCount = 0;\n const incrementStatementCount = () => statementCount++;\n const incrementProcCount = () => procCount++;\n const databaseName = this[CURRENT_DATABASE];\n const sql = (request => {\n // Required for <11.0.9\n if (request.sqlTextOrProcedure === 'sp_prepare' && request.parametersByName?.stmt?.value) {\n return request.parametersByName.stmt.value;\n }\n return request.sqlTextOrProcedure;\n })(request);\n\n const attributes: SpanAttributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.db.otel.tedious',\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_SYSTEM]: DB_SYSTEM_VALUE_MSSQL,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_NAME]: databaseName,\n // >=4 uses `authentication` object; older versions just userName and password pair\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_USER]: this.config?.userName ?? this.config?.authentication?.options?.userName,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_STATEMENT]: sql,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_DB_SQL_TABLE]: request.table,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_NET_PEER_NAME]: this.config?.server,\n // eslint-disable-next-line typescript/no-deprecated\n [ATTR_NET_PEER_PORT]: this.config?.options?.port,\n };\n const span = startInactiveSpan({\n name: getSpanName(operation, databaseName, sql, request.table),\n kind: SPAN_KIND.CLIENT,\n attributes,\n });\n\n const endSpan = once((err?: any) => {\n request.removeListener('done', incrementStatementCount);\n request.removeListener('doneInProc', incrementStatementCount);\n request.removeListener('doneProc', incrementProcCount);\n request.removeListener('error', endSpan);\n this.removeListener('end', endSpan);\n\n span.setAttribute('tedious.procedure_count', procCount);\n span.setAttribute('tedious.statement_count', statementCount);\n if (err) {\n span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: err.message,\n });\n // TODO(3290): set `error.type` attribute?\n }\n span.end();\n });\n\n request.on('done', incrementStatementCount);\n request.on('doneInProc', incrementStatementCount);\n request.on('doneProc', incrementProcCount);\n request.once('error', endSpan);\n this.on('end', endSpan);\n\n if (typeof request.callback === 'function') {\n thisPlugin._wrap(request, 'callback', thisPlugin._patchCallbackQuery(endSpan));\n } else {\n thisPlugin._diag.error('Expected request.callback to be a function');\n }\n\n return withActiveSpan(span, () => originalMethod.apply(this, arguments as unknown as any[]));\n }\n\n Object.defineProperty(patchedMethod, 'length', {\n value: originalMethod.length,\n writable: false,\n });\n\n return patchedMethod;\n };\n }\n\n private _patchCallbackQuery(endSpan: Function) {\n return (originalCallback: Function) => {\n return function (this: any, err: Error | undefined | null, _rowCount?: number, _rows?: any) {\n endSpan(err);\n return originalCallback.apply(this, arguments);\n };\n };\n }\n}\n"],"names":["request"],"mappings":"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"}
@@ -1 +1 @@
1
- {"type":"module","version":"10.60.0","sideEffects":false}
1
+ {"type":"module","version":"10.61.0","sideEffects":false}
@@ -37,7 +37,7 @@ export { initOpenTelemetry, preloadOpenTelemetry } from './sdk/initOtel';
37
37
  export { getAutoPerformanceIntegrations } from './integrations/tracing';
38
38
  export type { NodeOptions } from './types';
39
39
  export { setOpenTelemetryContextAsyncContextStrategy as setNodeAsyncContextStrategy, } from '@sentry/opentelemetry';
40
- export { addBreadcrumb, isInitialized, isEnabled, getGlobalScope, lastEventId, close, createTransport, flush, SDK_VERSION, getSpanStatusFromHttpCode, setHttpStatus, captureCheckIn, withMonitor, requestDataIntegration, functionToStringIntegration, inboundFiltersIntegration, eventFiltersIntegration, linkedErrorsIntegration, addEventProcessor, setContext, setExtra, setExtras, setTag, setTags, setUser, setConversationId, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, setCurrentClient, Scope, setMeasurement, getSpanDescendants, parameterize, getClient, getCurrentScope, getIsolationScope, getTraceData, getTraceMetaTags, httpHeadersToSpanAttributes, winterCGHeadersToDict, continueTrace, withScope, withIsolationScope, captureException, captureEvent, captureMessage, captureFeedback, captureConsoleIntegration, dedupeIntegration, extraErrorDataIntegration, rewriteFramesIntegration, startSession, captureSession, endSession, addIntegration, startSpan, startSpanManual, startInactiveSpan, startNewTrace, bindScopeToEmitter, suppressTracing, getActiveSpan, withActiveSpan, getRootSpan, spanToJSON, spanToTraceHeader, spanToBaggageHeader, trpcMiddleware, updateSpanName, supabaseIntegration, instrumentSupabaseClient, instrumentOpenAiClient, instrumentAnthropicAiClient, instrumentGoogleGenAIClient, zodErrorsIntegration, profiler, consoleLoggingIntegration, createConsolaReporter, wrapMcpServerWithSentry, featureFlagsIntegration, spanStreamingIntegration, createLangChainCallbackHandler, instrumentLangChainEmbeddings, instrumentLangGraph, instrumentStateGraphCompile, } from '@sentry/core';
40
+ export { addBreadcrumb, isInitialized, isEnabled, getGlobalScope, lastEventId, close, createTransport, flush, SDK_VERSION, getSpanStatusFromHttpCode, setHttpStatus, captureCheckIn, withMonitor, requestDataIntegration, functionToStringIntegration, inboundFiltersIntegration, eventFiltersIntegration, linkedErrorsIntegration, addEventProcessor, setContext, setExtra, setExtras, setTag, setTags, setAttribute, setAttributes, setUser, setConversationId, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, setCurrentClient, Scope, setMeasurement, getSpanDescendants, parameterize, getClient, getCurrentScope, getIsolationScope, getTraceData, getTraceMetaTags, httpHeadersToSpanAttributes, winterCGHeadersToDict, continueTrace, withScope, withIsolationScope, captureException, captureEvent, captureMessage, captureFeedback, captureConsoleIntegration, dedupeIntegration, extraErrorDataIntegration, rewriteFramesIntegration, startSession, captureSession, endSession, addIntegration, startSpan, startSpanManual, startInactiveSpan, startNewTrace, bindScopeToEmitter, suppressTracing, getActiveSpan, withActiveSpan, getRootSpan, spanToJSON, spanToTraceHeader, spanToBaggageHeader, trpcMiddleware, updateSpanName, supabaseIntegration, instrumentSupabaseClient, instrumentOpenAiClient, instrumentAnthropicAiClient, instrumentGoogleGenAIClient, zodErrorsIntegration, profiler, consoleLoggingIntegration, createConsolaReporter, wrapMcpServerWithSentry, featureFlagsIntegration, spanStreamingIntegration, createLangChainCallbackHandler, instrumentLangChainEmbeddings, instrumentLangGraph, instrumentStateGraphCompile, } from '@sentry/core';
41
41
  export type { Breadcrumb, BreadcrumbHint, PolymorphicRequest, RequestEventData, SdkInfo, Event, EventHint, ErrorEvent, Exception, Session, SeverityLevel, StackFrame, Stacktrace, Thread, User, Span, Metric, Log, LogSeverityLevel, FeatureFlagsIntegration, ExclusiveEventHintOrCaptureContext, CaptureContext, } from '@sentry/core';
42
42
  export { logger, metrics, httpServerIntegration, httpServerSpansIntegration, nodeContextIntegration, contextLinesIntegration, localVariablesIntegration, modulesIntegration, onUncaughtExceptionIntegration, onUnhandledRejectionIntegration, anrIntegration, disableAnrDetectionForCallback, spotlightIntegration, childProcessIntegration, processSessionIntegration, nodeRuntimeMetricsIntegration, type NodeRuntimeMetricsOptions, consoleIntegration, pinoIntegration, createSentryWinstonTransport, SentryContextManager, systemErrorIntegration, generateInstrumentOnce, getSentryRelease, defaultStackParser, createGetModuleFromFilename, makeNodeTransport, NodeClient, cron, NODE_VERSION, validateOpenTelemetrySetup, withStreamedSpan, _INTERNAL_normalizeCollectionInterval, } from '@sentry/node-core';
43
43
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AACnH,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAErF,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC9F,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EACL,uBAAuB,EACvB,gCAAgC,EAChC,sBAAsB,EACtB,0BAA0B,EAC1B,kBAAkB,EAClB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAEtE,OAAO,EACL,IAAI,EACJ,sBAAsB,EACtB,wCAAwC,EACxC,8BAA8B,GAC/B,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,0CAA0C,EAAE,MAAM,kDAAkD,CAAC;AAC9G,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,8BAA8B,EAAE,MAAM,wBAAwB,CAAC;AAExE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,OAAO,EAEL,2CAA2C,IAAI,2BAA2B,GAC3E,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,aAAa,EACb,aAAa,EACb,SAAS,EACT,cAAc,EACd,WAAW,EACX,KAAK,EACL,eAAe,EACf,KAAK,EACL,WAAW,EACX,yBAAyB,EACzB,aAAa,EACb,cAAc,EACd,WAAW,EACX,sBAAsB,EACtB,2BAA2B,EAE3B,yBAAyB,EACzB,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,UAAU,EACV,QAAQ,EACR,SAAS,EACT,MAAM,EACN,OAAO,EACP,YAAY,EACZ,aAAa,EACb,OAAO,EACP,iBAAiB,EACjB,4BAA4B,EAC5B,gCAAgC,EAChC,gCAAgC,EAChC,qCAAqC,EACrC,gBAAgB,EAChB,KAAK,EACL,cAAc,EACd,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,2BAA2B,EAC3B,qBAAqB,EACrB,aAAa,EACb,SAAS,EACT,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,eAAe,EACf,yBAAyB,EACzB,iBAAiB,EACjB,yBAAyB,EACzB,wBAAwB,EACxB,YAAY,EACZ,cAAc,EACd,UAAU,EACV,cAAc,EACd,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,cAAc,EACd,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,2BAA2B,EAC3B,2BAA2B,EAC3B,oBAAoB,EACpB,QAAQ,EACR,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,uBAAuB,EACvB,wBAAwB,EACxB,8BAA8B,EAC9B,6BAA6B,EAC7B,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,OAAO,EACP,KAAK,EACL,SAAS,EACT,UAAU,EACV,SAAS,EACT,OAAO,EACP,aAAa,EACb,UAAU,EACV,UAAU,EACV,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,GAAG,EACH,gBAAgB,EAChB,uBAAuB,EACvB,kCAAkC,EAClC,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,MAAM,EACN,OAAO,EACP,qBAAqB,EACrB,0BAA0B,EAC1B,sBAAsB,EACtB,uBAAuB,EACvB,yBAAyB,EACzB,kBAAkB,EAClB,8BAA8B,EAC9B,+BAA+B,EAE/B,cAAc,EAEd,8BAA8B,EAC9B,oBAAoB,EACpB,uBAAuB,EACvB,yBAAyB,EACzB,6BAA6B,EAC7B,KAAK,yBAAyB,EAC9B,kBAAkB,EAClB,eAAe,EACf,4BAA4B,EAC5B,oBAAoB,EACpB,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,2BAA2B,EAC3B,iBAAiB,EACjB,UAAU,EACV,IAAI,EACJ,YAAY,EACZ,0BAA0B,EAC1B,gBAAgB,EAChB,qCAAqC,GACtC,MAAM,mBAAmB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { FsInstrumentationConfig } from './vendored/types';
1
2
  /**
2
3
  * This integration will create spans for `fs` API operations, like reading and writing files.
3
4
  *
@@ -7,18 +8,5 @@
7
8
  *
8
9
  * @param options Configuration for this integration.
9
10
  */
10
- export declare const fsIntegration: (options?: {
11
- /**
12
- * Setting this option to `true` will include any filepath arguments from your `fs` API calls as span attributes.
13
- *
14
- * Defaults to `false`.
15
- */
16
- recordFilePaths?: boolean;
17
- /**
18
- * Setting this option to `true` will include the error messages of failed `fs` API calls as a span attribute.
19
- *
20
- * Defaults to `false`.
21
- */
22
- recordErrorMessagesAsSpanAttributes?: boolean;
23
- } | undefined) => import("@sentry/core").Integration;
11
+ export declare const fsIntegration: (options?: FsInstrumentationConfig | undefined) => import("@sentry/core").Integration;
24
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/integrations/fs/index.ts"],"names":[],"mappings":"AAMA;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa;IAGpB;;;;OAIG;sBACe,OAAO;IAEzB;;;;OAIG;0CACmC,OAAO;oDAiBlD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/integrations/fs/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAIhE;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,uFAOxB,CAAC"}
@@ -1,11 +1,3 @@
1
- import { InstrumentationBase, InstrumentationNodeModuleDefinition } from '@opentelemetry/instrumentation';
2
- import type { FMember, FPMember, FsInstrumentationConfig, GenericFunction } from './types';
3
- export declare class FsInstrumentation extends InstrumentationBase<FsInstrumentationConfig> {
4
- constructor(config?: FsInstrumentationConfig);
5
- init(): InstrumentationNodeModuleDefinition[];
6
- protected _patchSyncFunction<T extends GenericFunction>(functionName: FMember, original: T): T;
7
- protected _patchCallbackFunction<T extends GenericFunction>(functionName: FMember, original: T): T;
8
- protected _patchExistsCallbackFunction<T extends GenericFunction>(functionName: 'exists', original: T): T;
9
- protected _patchPromiseFunction<T extends GenericFunction>(functionName: FPMember, original: T): T;
10
- }
1
+ import type { FsInstrumentationConfig } from './types';
2
+ export declare function enableFsInstrumentation(config?: FsInstrumentationConfig): void;
11
3
  //# sourceMappingURL=instrumentation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../../../../src/integrations/fs/vendored/instrumentation.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,mBAAmB,EAAE,mCAAmC,EAAa,MAAM,gCAAgC,CAAC;AAcrH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAmH3F,qBAAa,iBAAkB,SAAQ,mBAAmB,CAAC,uBAAuB,CAAC;gBAC9D,MAAM,GAAE,uBAA4B;IAIhD,IAAI,IAAI,mCAAmC,EAAE;IAgFpD,SAAS,CAAC,kBAAkB,CAAC,CAAC,SAAS,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC;IAoB9F,SAAS,CAAC,sBAAsB,CAAC,CAAC,SAAS,eAAe,EAAE,YAAY,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC;IAsClG,SAAS,CAAC,4BAA4B,CAAC,CAAC,SAAS,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC;IA8CzG,SAAS,CAAC,qBAAqB,CAAC,CAAC,SAAS,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC;CAmBnG"}
1
+ {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../../../../src/integrations/fs/vendored/instrumentation.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAqB,uBAAuB,EAAmB,MAAM,SAAS,CAAC;AA+P3F,wBAAgB,uBAAuB,CAAC,MAAM,GAAE,uBAA4B,GAAG,IAAI,CAqBlF"}
@@ -1,4 +1,3 @@
1
- import type { InstrumentationConfig } from '@opentelemetry/instrumentation';
2
1
  import type * as fs from 'fs';
3
2
  export type GenericFunction = (...args: any[]) => unknown;
4
3
  export type FunctionPropertyNames<T> = Exclude<{
@@ -11,7 +10,7 @@ export type FunctionPropertyNamesTwoLevels<T> = Exclude<{
11
10
  }[keyof T], undefined>;
12
11
  export type FMember = FunctionPropertyNames<typeof fs> | FunctionPropertyNamesTwoLevels<typeof fs>;
13
12
  export type FPMember = FunctionPropertyNames<(typeof fs)['promises']> | FunctionPropertyNamesTwoLevels<(typeof fs)['promises']>;
14
- export interface FsInstrumentationConfig extends InstrumentationConfig {
13
+ export interface FsInstrumentationConfig {
15
14
  /**
16
15
  * Setting this option to `true` will include any filepath arguments from your `fs` API calls as span attributes.
17
16
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/integrations/fs/vendored/types.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,KAAK,KAAK,EAAE,MAAM,IAAI,CAAC;AAG9B,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC;AAE1D,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,OAAO,CAC5C;KAEG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,CAAC,GAAG,KAAK;CAClD,CAAC,MAAM,CAAC,CAAC,EACV,SAAS,CACV,CAAC;AAEF,MAAM,MAAM,8BAA8B,CAAC,CAAC,IAAI,OAAO,CACrD;KACG,CAAC,IAAI,MAAM,CAAC,GAAG;SACb,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,GAE/B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GACtB,CAAC,SAAS,MAAM,GACd,CAAC,SAAS,MAAM,GACd,GAAG,CAAC,IAAI,CAAC,EAAE,GACX,KAAK,GACP,KAAK,GACP,KAAK,GACP,KAAK;KACV,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;CACd,CAAC,MAAM,CAAC,CAAC,EACV,SAAS,CACV,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,qBAAqB,CAAC,OAAO,EAAE,CAAC,GAAG,8BAA8B,CAAC,OAAO,EAAE,CAAC,CAAC;AACnG,MAAM,MAAM,QAAQ,GAChB,qBAAqB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,GAC9C,8BAA8B,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAE5D,MAAM,WAAW,uBAAwB,SAAQ,qBAAqB;IACpE;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,mCAAmC,CAAC,EAAE,OAAO,CAAC;CAC/C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/integrations/fs/vendored/types.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,KAAK,EAAE,MAAM,IAAI,CAAC;AAG9B,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC;AAE1D,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,OAAO,CAC5C;KAEG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,CAAC,GAAG,KAAK;CAClD,CAAC,MAAM,CAAC,CAAC,EACV,SAAS,CACV,CAAC;AAEF,MAAM,MAAM,8BAA8B,CAAC,CAAC,IAAI,OAAO,CACrD;KACG,CAAC,IAAI,MAAM,CAAC,GAAG;SACb,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,MAAM,GAE/B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GACtB,CAAC,SAAS,MAAM,GACd,CAAC,SAAS,MAAM,GACd,GAAG,CAAC,IAAI,CAAC,EAAE,GACX,KAAK,GACP,KAAK,GACP,KAAK,GACP,KAAK;KACV,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;CACd,CAAC,MAAM,CAAC,CAAC,EACV,SAAS,CACV,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG,qBAAqB,CAAC,OAAO,EAAE,CAAC,GAAG,8BAA8B,CAAC,OAAO,EAAE,CAAC,CAAC;AACnG,MAAM,MAAM,QAAQ,GAChB,qBAAqB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,GAC9C,8BAA8B,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;AAE5D,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;OAEG;IACH,mCAAmC,CAAC,EAAE,OAAO,CAAC;CAC/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"undici.d.ts","sourceRoot":"","sources":["../../../../../src/integrations/node-fetch/vendored/undici.ts"],"names":[],"mappings":"AAqDA,OAAO,KAAK,EAAE,2BAA2B,EAAiB,MAAM,SAAS,CAAC;AAoB1E,qBAAa,qBAAqB;IAEhC,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,YAAY,CAAsC;IAE1D,OAAO,CAAC,uBAAuB,CAAoC;IACnE,OAAO,CAAC,OAAO,CAA8B;gBAEjC,MAAM,GAAE,2BAAgC;IAI7C,OAAO,IAAI,IAAI;IAKtB,iEAAiE;IAC1D,MAAM,IAAI,IAAI;IAarB,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,mBAAmB;IA+C3B,OAAO,CAAC,gBAAgB;IA0FxB,OAAO,CAAC,gBAAgB;IAkCxB,OAAO,CAAC,iBAAiB;IAqDzB,OAAO,CAAC,MAAM;IAiBd,OAAO,CAAC,OAAO;IAwBf,OAAO,CAAC,6BAA6B;IAmCrC,OAAO,CAAC,gBAAgB;CAqBzB"}
1
+ {"version":3,"file":"undici.d.ts","sourceRoot":"","sources":["../../../../../src/integrations/node-fetch/vendored/undici.ts"],"names":[],"mappings":"AAsDA,OAAO,KAAK,EAAE,2BAA2B,EAAiB,MAAM,SAAS,CAAC;AAiB1E,qBAAa,qBAAqB;IAEhC,OAAO,CAAC,YAAY,CAA6B;IACjD,OAAO,CAAC,YAAY,CAAsC;IAE1D,OAAO,CAAC,uBAAuB,CAAoC;IACnE,OAAO,CAAC,OAAO,CAA8B;gBAEjC,MAAM,GAAE,2BAAgC;IAI7C,OAAO,IAAI,IAAI;IAKtB,iEAAiE;IAC1D,MAAM,IAAI,IAAI;IAarB,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,mBAAmB;IA+C3B,OAAO,CAAC,gBAAgB;IA0FxB,OAAO,CAAC,gBAAgB;IAkCxB,OAAO,CAAC,iBAAiB;IAqDzB,OAAO,CAAC,MAAM;IAiBd,OAAO,CAAC,OAAO;IAwBf,OAAO,CAAC,6BAA6B;IAmCrC,OAAO,CAAC,gBAAgB;CAqBzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../../../../../src/integrations/tracing/dataloader/vendored/instrumentation.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,mBAAmB,EAAE,mCAAmC,EAAa,MAAM,gCAAgC,CAAC;AA8CrH,qBAAa,yBAA0B,SAAQ,mBAAmB;gBACpD,MAAM,KAAK;IAIvB,SAAS,CAAC,IAAI;IA2Bd,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,sBAAsB;IA4B9B,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,eAAe;IA6BvB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,mBAAmB;CAgB5B"}
1
+ {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../../../../../src/integrations/tracing/dataloader/vendored/instrumentation.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,mBAAmB,EAAE,mCAAmC,EAAa,MAAM,gCAAgC,CAAC;AAmDrH,qBAAa,yBAA0B,SAAQ,mBAAmB;gBACpD,MAAM,KAAK;IAIvB,SAAS,CAAC,IAAI;IA2Bd,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,sBAAsB;IA4B9B,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,eAAe;IA6BvB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,WAAW;IASnB,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,mBAAmB;CAgB5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/integrations/tracing/kafka/vendored/utils.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAQnE,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAoB7D,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,GAAG,SAAS,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,cAAc,CAAC;IAC3B,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMnG;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,QAAQ,EAAE,GAAG,SAAS,CAwB5F;AAED,oGAAoG;AACpG,wBAAgB,iBAAiB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,mBAAmB,GAAG,IAAI,CAwBjH;AAED,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CA4BvE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAyBvF"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/integrations/tracing/kafka/vendored/utils.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AASnE,OAAO,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAoB7D,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,GAAG,SAAS,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,cAAc,CAAC;IAC3B,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAMnG;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,QAAQ,EAAE,GAAG,SAAS,CAwB5F;AAED,oGAAoG;AACpG,wBAAgB,iBAAiB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,mBAAmB,GAAG,IAAI,CAwBjH;AAED,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CA4BvE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAyBvF"}
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../../../../../src/integrations/tracing/knex/vendored/instrumentation.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,mCAAmC,EAAa,MAAM,gCAAgC,CAAC;AA0CrH,qBAAa,mBAAoB,SAAQ,mBAAmB,CAAC,qBAAqB,CAAC;gBAC9D,MAAM,GAAE,qBAA0B;IAI9C,IAAI,IAAI,mCAAmC;IAclD,OAAO,CAAC,uCAAuC;IAe/C,OAAO,CAAC,uCAAuC;IAmB/C,OAAO,CAAC,mBAAmB;IAuD3B,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,cAAc;CAMvB"}
1
+ {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../../../../../src/integrations/tracing/knex/vendored/instrumentation.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,mCAAmC,EAAa,MAAM,gCAAgC,CAAC;AA2CrH,qBAAa,mBAAoB,SAAQ,mBAAmB,CAAC,qBAAqB,CAAC;gBAC9D,MAAM,GAAE,qBAA0B;IAI9C,IAAI,IAAI,mCAAmC;IAclD,OAAO,CAAC,uCAAuC;IAe/C,OAAO,CAAC,uCAAuC;IAmB/C,OAAO,CAAC,mBAAmB;IAuD3B,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,cAAc;CAMvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/integrations/tracing/mongo/vendored/utils.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAmBzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACtG,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AA4CtD;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,oBAAoB,GAAG,kBAAkB,CAchF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,GAAG,EAClB,EAAE,EAAE,gBAAgB,EACpB,OAAO,CAAC,EAAE,GAAG,EACb,SAAS,CAAC,EAAE,MAAM,GACjB,cAAc,CAmBhB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,CAAC,EAAE,oBAAoB,EAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,GAC7B,cAAc,CAwBhB;AA8CD,wBAAgB,cAAc,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,CAO/D;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,EAAE,aAAa,EAAE,QAAQ,GAAG,QAAQ,CAkBlF;AAID,wBAAgB,yBAAyB,IAAI,OAAO,CAEnD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/integrations/tracing/mongo/vendored/utils.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAoBzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACtG,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AA4CtD;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,oBAAoB,GAAG,kBAAkB,CAchF;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,GAAG,EAClB,EAAE,EAAE,gBAAgB,EACpB,OAAO,CAAC,EAAE,GAAG,EACb,SAAS,CAAC,EAAE,MAAM,GACjB,cAAc,CAmBhB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,qBAAqB,EAC/B,OAAO,CAAC,EAAE,oBAAoB,EAC9B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,GAC7B,cAAc,CAwBhB;AA8CD,wBAAgB,cAAc,CAAC,UAAU,EAAE,cAAc,GAAG,IAAI,CAO/D;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,EAAE,aAAa,EAAE,QAAQ,GAAG,QAAQ,CAkBlF;AAID,wBAAgB,yBAAyB,IAAI,OAAO,CAEnD"}
@@ -1 +1 @@
1
- {"version":3,"file":"mongoose.d.ts","sourceRoot":"","sources":["../../../../../../src/integrations/tracing/mongoose/vendored/mongoose.ts"],"names":[],"mappings":"AAaA,OAAO,EACL,KAAK,qBAAqB,EAC1B,mBAAmB,EACnB,KAAK,+BAA+B,EAErC,MAAM,gCAAgC,CAAC;AA6ExC,eAAO,MAAM,mBAAmB,EAAE,OAAO,MAAqC,CAAC;AAI/E,eAAO,MAAM,qBAAqB,EAAE,OAAO,MAAuC,CAAC;AAEnF,qBAAa,uBAAwB,SAAQ,mBAAmB,CAAC,qBAAqB,CAAC;gBACzE,MAAM,GAAE,qBAA0B;IAI9C,SAAS,CAAC,IAAI,IAAI,+BAA+B;IAUjD,OAAO,CAAC,KAAK;IAqCb,OAAO,CAAC,OAAO;IA+Bf,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,2BAA2B;IA0BnC,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,0BAA0B;IASlC,OAAO,CAAC,UAAU;IAkBlB,OAAO,CAAC,eAAe;CAaxB"}
1
+ {"version":3,"file":"mongoose.d.ts","sourceRoot":"","sources":["../../../../../../src/integrations/tracing/mongoose/vendored/mongoose.ts"],"names":[],"mappings":"AAYA,OAAO,EACL,KAAK,qBAAqB,EAC1B,mBAAmB,EACnB,KAAK,+BAA+B,EAErC,MAAM,gCAAgC,CAAC;AA8ExC,eAAO,MAAM,mBAAmB,EAAE,OAAO,MAAqC,CAAC;AAI/E,eAAO,MAAM,qBAAqB,EAAE,OAAO,MAAuC,CAAC;AAEnF,qBAAa,uBAAwB,SAAQ,mBAAmB,CAAC,qBAAqB,CAAC;gBACzE,MAAM,GAAE,qBAA0B;IAI9C,SAAS,CAAC,IAAI,IAAI,+BAA+B;IAUjD,OAAO,CAAC,KAAK;IAqCb,OAAO,CAAC,OAAO;IA+Bf,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,mBAAmB;IAiB3B,OAAO,CAAC,2BAA2B;IA0BnC,OAAO,CAAC,gBAAgB;IAoBxB,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,0BAA0B;IASlC,OAAO,CAAC,UAAU;IAkBlB,OAAO,CAAC,eAAe;CAaxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../../../../../src/integrations/tracing/mysql2/vendored/instrumentation.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,mCAAmC,EAAa,MAAM,gCAAgC,CAAC;AAiBrH,qBAAa,qBAAsB,SAAQ,mBAAmB,CAAC,qBAAqB,CAAC;gBAChE,MAAM,GAAE,qBAA0B;IAIrD,SAAS,CAAC,IAAI,IAAI,mCAAmC,EAAE;IA2DvD,OAAO,CAAC,WAAW;IAiEnB,OAAO,CAAC,mBAAmB;CAQ5B"}
1
+ {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../../../../../src/integrations/tracing/mysql2/vendored/instrumentation.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,mCAAmC,EAAa,MAAM,gCAAgC,CAAC;AAuBrH,qBAAa,qBAAsB,SAAQ,mBAAmB,CAAC,qBAAqB,CAAC;gBAChE,MAAM,GAAE,qBAA0B;IAIrD,SAAS,CAAC,IAAI,IAAI,mCAAmC,EAAE;IA2DvD,OAAO,CAAC,WAAW;IAiEnB,OAAO,CAAC,mBAAmB;CAQ5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../../../../../src/integrations/tracing/postgres/vendored/instrumentation.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,mBAAmB,EAAE,mCAAmC,EAAa,MAAM,gCAAgC,CAAC;AAYrH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAuBvD,qBAAa,iBAAkB,SAAQ,mBAAmB,CAAC,uBAAuB,CAAC;gBAC9D,MAAM,GAAE,uBAA4B;IAIvD,SAAS,CAAC,IAAI,IAAI,mCAAmC,EAAE;IA0DvD,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,sBAAsB;IAgC9B,OAAO,CAAC,oBAAoB;IAwF5B,OAAO,CAAC,oBAAoB;CAgC7B"}
1
+ {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../../../../../src/integrations/tracing/postgres/vendored/instrumentation.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,mBAAmB,EAAE,mCAAmC,EAAa,MAAM,gCAAgC,CAAC;AAmBrH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAuBvD,qBAAa,iBAAkB,SAAQ,mBAAmB,CAAC,uBAAuB,CAAC;gBAC9D,MAAM,GAAE,uBAA4B;IAIvD,SAAS,CAAC,IAAI,IAAI,mCAAmC,EAAE;IA0DvD,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,gBAAgB;IAcxB,OAAO,CAAC,sBAAsB;IAgC9B,OAAO,CAAC,oBAAoB;IAwF5B,OAAO,CAAC,oBAAoB;CAgC7B"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/integrations/tracing/postgres/vendored/utils.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAIzD,OAAO,KAAK,EACV,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,EAEd,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAe1B,eAAO,MAAM,MAAM,0BAA0B,CAAC;AAE9C;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAcnH;AAED,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAStE;AAED,wBAAgB,4BAA4B,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAc7E;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,wBAAwB,GAAG,mBAAmB,GAAG,MAAM,CAQlG;AAaD,wBAAgB,mCAAmC,CAAC,MAAM,EAAE,wBAAwB,GAAG,cAAc,CASpG;AAED,wBAAgB,uCAAuC,CAAC,MAAM,EAAE,mBAAmB,GAAG,cAAc,CAkBnG;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,OAAO,CAEnD;AAID,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,gBAAgB,EACtB,WAAW,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/D,IAAI,CA8BN;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,gBAAgB,GAAG,gBAAgB,CAQhF;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,GAAG,cAAc,CAQlF;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CASrH;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAI9D;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,cAAc,CAExE;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../../src/integrations/tracing/postgres/vendored/utils.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAUzD,OAAO,KAAK,EACV,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,EAEd,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,kBAAkB,CAAC;AAe1B,eAAO,MAAM,MAAM,0BAA0B,CAAC;AAE9C;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAcnH;AAED,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAStE;AAED,wBAAgB,4BAA4B,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CAc7E;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,wBAAwB,GAAG,mBAAmB,GAAG,MAAM,CAQlG;AAaD,wBAAgB,mCAAmC,CAAC,MAAM,EAAE,wBAAwB,GAAG,cAAc,CASpG;AAED,wBAAgB,uCAAuC,CAAC,MAAM,EAAE,mBAAmB,GAAG,cAAc,CAkBnG;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,IAAI,OAAO,CAEnD;AAID,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,gBAAgB,EACtB,WAAW,CAAC,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAC/D,IAAI,CA8BN;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,gBAAgB,GAAG,gBAAgB,CAQhF;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,cAAc,GAAG,cAAc,CAQlF;AAED,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CASrH;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAI9D;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,OAAO,GAAG,EAAE,IAAI,cAAc,CAExE;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/integrations/tracing/redis/index.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,kBAAkB,CAAC;AAI/E,UAAU,YAAY;IACpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAKD,eAAO,IAAI,aAAa,EAAE,YAAiB,CAAC;AAG5C,eAAO,MAAM,iBAAiB,EAAE,sCAoD/B,CAAC;AAcF;;;GAGG;AACH,eAAO,MAAM,eAAe,SACtB,IAAI;;CAcT,CAAC;AAYF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB,4EAAuC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/integrations/tracing/redis/index.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,kBAAkB,CAAC;AAI/E,UAAU,YAAY;IACpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAKD,eAAO,IAAI,aAAa,EAAE,YAAiB,CAAC;AAG5C,eAAO,MAAM,iBAAiB,EAAE,sCAoD/B,CAAC;AAcF;;;GAGG;AACH,eAAO,MAAM,eAAe,SACtB,IAAI;;CAgBT,CAAC;AAYF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,gBAAgB,4EAAuC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ioredis-instrumentation.d.ts","sourceRoot":"","sources":["../../../../../../src/integrations/tracing/redis/vendored/ioredis-instrumentation.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,mBAAmB,EAAE,mCAAmC,EAAa,MAAM,gCAAgC,CAAC;AAkBrH,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAC;AA6C5D,qBAAa,sBAAuB,SAAQ,mBAAmB,CAAC,4BAA4B,CAAC;gBACxE,MAAM,GAAE,4BAAiC;IAI5D,SAAS,CAAC,IAAI,IAAI,mCAAmC,EAAE;IA2BvD,OAAO,CAAC,iBAAiB;IA6CzB,OAAO,CAAC,gBAAgB;IA2CxB,OAAO,CAAC,iBAAiB;CAW1B"}
1
+ {"version":3,"file":"ioredis-instrumentation.d.ts","sourceRoot":"","sources":["../../../../../../src/integrations/tracing/redis/vendored/ioredis-instrumentation.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,mBAAmB,EAAE,mCAAmC,EAAa,MAAM,gCAAgC,CAAC;AAmBrH,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,SAAS,CAAC;AA6C5D,qBAAa,sBAAuB,SAAQ,mBAAmB,CAAC,4BAA4B,CAAC;gBACxE,MAAM,GAAE,4BAAiC;IAI5D,SAAS,CAAC,IAAI,IAAI,mCAAmC,EAAE;IA2BvD,OAAO,CAAC,iBAAiB;IA6CzB,OAAO,CAAC,gBAAgB;IA2CxB,OAAO,CAAC,iBAAiB;CAW1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"redis-instrumentation.d.ts","sourceRoot":"","sources":["../../../../../../src/integrations/tracing/redis/vendored/redis-instrumentation.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAkD,MAAM,gCAAgC,CAAC;AAsBrH,OAAO,KAAK,EAAE,0BAA0B,EAAwC,MAAM,SAAS,CAAC;AAydhG,qBAAa,oBAAqB,SAAQ,mBAAmB,CAAC,0BAA0B,CAAC;IACvF,OAAO,CAAC,oBAAoB,CAA4B;IACxD,OAAO,CAAC,oBAAoB,CAA4B;IACxD,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,GAAE,0BAA+B;IAO1C,SAAS,CAAC,MAAM,GAAE,0BAA+B,GAAG,IAAI;IASjE,IAAI;IAEK,oBAAoB;IAIpB,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI;IASvD,MAAM,IAAI,IAAI;IASd,OAAO,IAAI,IAAI;CAQzB"}
1
+ {"version":3,"file":"redis-instrumentation.d.ts","sourceRoot":"","sources":["../../../../../../src/integrations/tracing/redis/vendored/redis-instrumentation.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAkD,MAAM,gCAAgC,CAAC;AAuBrH,OAAO,KAAK,EAAE,0BAA0B,EAAwC,MAAM,SAAS,CAAC;AAydhG,qBAAa,oBAAqB,SAAQ,mBAAmB,CAAC,0BAA0B,CAAC;IACvF,OAAO,CAAC,oBAAoB,CAA4B;IACxD,OAAO,CAAC,oBAAoB,CAA4B;IACxD,OAAO,CAAC,WAAW,CAAS;gBAEhB,MAAM,GAAE,0BAA+B;IAO1C,SAAS,CAAC,MAAM,GAAE,0BAA+B,GAAG,IAAI;IASjE,IAAI;IAEK,oBAAoB;IAIpB,iBAAiB,CAAC,cAAc,EAAE,cAAc,GAAG,IAAI;IASvD,MAAM,IAAI,IAAI;IASd,OAAO,IAAI,IAAI;CAQzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../../../../../src/integrations/tracing/tedious/vendored/instrumentation.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,mCAAmC,EAAa,MAAM,gCAAgC,CAAC;AA8CrH,qBAAa,sBAAuB,SAAQ,mBAAmB,CAAC,qBAAqB,CAAC;IACpF,MAAM,CAAC,QAAQ,CAAC,SAAS,aAAa;gBAE1B,MAAM,GAAE,qBAA0B;IAI9C,SAAS,CAAC,IAAI;IAkCd,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,WAAW;IAyFnB,OAAO,CAAC,mBAAmB;CAQ5B"}
1
+ {"version":3,"file":"instrumentation.d.ts","sourceRoot":"","sources":["../../../../../../src/integrations/tracing/tedious/vendored/instrumentation.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,mCAAmC,EAAa,MAAM,gCAAgC,CAAC;AAgDrH,qBAAa,sBAAuB,SAAQ,mBAAmB,CAAC,qBAAqB,CAAC;IACpF,MAAM,CAAC,QAAQ,CAAC,SAAS,aAAa;gBAE1B,MAAM,GAAE,qBAA0B;IAI9C,SAAS,CAAC,IAAI;IAkCd,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,WAAW;IAyFnB,OAAO,CAAC,mBAAmB;CAQ5B"}