@depup/sentry__node 10.48.0-depup.0 → 10.67.0-depup.1

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 (987) hide show
  1. package/README.md +7 -6
  2. package/build/cjs/debug-build.js +0 -5
  3. package/build/cjs/debug-build.js.map +1 -1
  4. package/build/cjs/index.js +76 -67
  5. package/build/cjs/index.js.map +1 -1
  6. package/build/cjs/init.js +0 -6
  7. package/build/cjs/init.js.map +1 -1
  8. package/build/cjs/integrations/featureFlagShims/growthbook.js +0 -4
  9. package/build/cjs/integrations/featureFlagShims/growthbook.js.map +1 -1
  10. package/build/cjs/integrations/featureFlagShims/launchDarkly.js +6 -18
  11. package/build/cjs/integrations/featureFlagShims/launchDarkly.js.map +1 -1
  12. package/build/cjs/integrations/featureFlagShims/openFeature.js +6 -21
  13. package/build/cjs/integrations/featureFlagShims/openFeature.js.map +1 -1
  14. package/build/cjs/integrations/featureFlagShims/statsig.js +2 -8
  15. package/build/cjs/integrations/featureFlagShims/statsig.js.map +1 -1
  16. package/build/cjs/integrations/featureFlagShims/unleash.js +2 -8
  17. package/build/cjs/integrations/featureFlagShims/unleash.js.map +1 -1
  18. package/build/cjs/integrations/fs/index.js +17 -0
  19. package/build/cjs/integrations/fs/index.js.map +1 -0
  20. package/build/cjs/integrations/fs/vendored/constants.js +138 -0
  21. package/build/cjs/integrations/fs/vendored/constants.js.map +1 -0
  22. package/build/cjs/integrations/fs/vendored/instrumentation.js +230 -0
  23. package/build/cjs/integrations/fs/vendored/instrumentation.js.map +1 -0
  24. package/build/cjs/integrations/fs/vendored/utils.js +31 -0
  25. package/build/cjs/integrations/fs/vendored/utils.js.map +1 -0
  26. package/build/cjs/integrations/http.js +19 -175
  27. package/build/cjs/integrations/http.js.map +1 -1
  28. package/build/cjs/integrations/node-fetch.js +10 -94
  29. package/build/cjs/integrations/node-fetch.js.map +1 -1
  30. package/build/cjs/integrations/tracing/InstrumentationNodeModuleFile.js +15 -0
  31. package/build/cjs/integrations/tracing/InstrumentationNodeModuleFile.js.map +1 -0
  32. package/build/cjs/integrations/tracing/amqplib/index.js +21 -0
  33. package/build/cjs/integrations/tracing/amqplib/index.js.map +1 -0
  34. package/build/cjs/integrations/tracing/amqplib/vendored/instrumentation.js +117 -0
  35. package/build/cjs/integrations/tracing/amqplib/vendored/instrumentation.js.map +1 -0
  36. package/build/cjs/integrations/tracing/amqplib/vendored/patches.js +185 -0
  37. package/build/cjs/integrations/tracing/amqplib/vendored/patches.js.map +1 -0
  38. package/build/cjs/integrations/tracing/amqplib/vendored/semconv.js +26 -0
  39. package/build/cjs/integrations/tracing/amqplib/vendored/semconv.js.map +1 -0
  40. package/build/cjs/integrations/tracing/amqplib/vendored/types.js +17 -0
  41. package/build/cjs/integrations/tracing/amqplib/vendored/types.js.map +1 -0
  42. package/build/cjs/integrations/tracing/amqplib/vendored/utils.js +129 -0
  43. package/build/cjs/integrations/tracing/amqplib/vendored/utils.js.map +1 -0
  44. package/build/cjs/integrations/tracing/anthropic-ai/index.js +3 -58
  45. package/build/cjs/integrations/tracing/anthropic-ai/index.js.map +1 -1
  46. package/build/cjs/integrations/tracing/anthropic-ai/instrumentation.js +21 -44
  47. package/build/cjs/integrations/tracing/anthropic-ai/instrumentation.js.map +1 -1
  48. package/build/cjs/integrations/tracing/connect/index.js +35 -0
  49. package/build/cjs/integrations/tracing/connect/index.js.map +1 -0
  50. package/build/cjs/integrations/tracing/connect/vendored/enums/AttributeNames.js +16 -0
  51. package/build/cjs/integrations/tracing/connect/vendored/enums/AttributeNames.js.map +1 -0
  52. package/build/cjs/integrations/tracing/connect/vendored/instrumentation.js +137 -0
  53. package/build/cjs/integrations/tracing/connect/vendored/instrumentation.js.map +1 -0
  54. package/build/cjs/integrations/tracing/connect/vendored/internal-types.js +8 -0
  55. package/build/cjs/integrations/tracing/connect/vendored/internal-types.js.map +1 -0
  56. package/build/cjs/integrations/tracing/connect/vendored/utils.js +36 -0
  57. package/build/cjs/integrations/tracing/connect/vendored/utils.js.map +1 -0
  58. package/build/cjs/integrations/tracing/dataloader/index.js +26 -0
  59. package/build/cjs/integrations/tracing/dataloader/index.js.map +1 -0
  60. package/build/cjs/integrations/tracing/dataloader/vendored/instrumentation.js +217 -0
  61. package/build/cjs/integrations/tracing/dataloader/vendored/instrumentation.js.map +1 -0
  62. package/build/cjs/integrations/tracing/express.js +22 -34
  63. package/build/cjs/integrations/tracing/express.js.map +1 -1
  64. package/build/cjs/integrations/tracing/fastify/index.js +19 -234
  65. package/build/cjs/integrations/tracing/fastify/index.js.map +1 -1
  66. package/build/cjs/integrations/tracing/fastify/v3/constants.js +1 -18
  67. package/build/cjs/integrations/tracing/fastify/v3/constants.js.map +1 -1
  68. package/build/cjs/integrations/tracing/fastify/v3/enums/AttributeNames.js +20 -33
  69. package/build/cjs/integrations/tracing/fastify/v3/enums/AttributeNames.js.map +1 -1
  70. package/build/cjs/integrations/tracing/fastify/v3/instrumentation.js +78 -162
  71. package/build/cjs/integrations/tracing/fastify/v3/instrumentation.js.map +1 -1
  72. package/build/cjs/integrations/tracing/fastify/v3/utils.js +8 -79
  73. package/build/cjs/integrations/tracing/fastify/v3/utils.js.map +1 -1
  74. package/build/cjs/integrations/tracing/firebase/firebase.js +4 -33
  75. package/build/cjs/integrations/tracing/firebase/firebase.js.map +1 -1
  76. package/build/cjs/integrations/tracing/firebase/otel/firebaseInstrumentation.js +7 -23
  77. package/build/cjs/integrations/tracing/firebase/otel/firebaseInstrumentation.js.map +1 -1
  78. package/build/cjs/integrations/tracing/firebase/otel/patches/firestore.js +73 -215
  79. package/build/cjs/integrations/tracing/firebase/otel/patches/firestore.js.map +1 -1
  80. package/build/cjs/integrations/tracing/firebase/otel/patches/functions.js +86 -210
  81. package/build/cjs/integrations/tracing/firebase/otel/patches/functions.js.map +1 -1
  82. package/build/cjs/integrations/tracing/genericPool/index.js +21 -0
  83. package/build/cjs/integrations/tracing/genericPool/index.js.map +1 -0
  84. package/build/cjs/integrations/tracing/genericPool/vendored/instrumentation.js +122 -0
  85. package/build/cjs/integrations/tracing/genericPool/vendored/instrumentation.js.map +1 -0
  86. package/build/cjs/integrations/tracing/google-genai/index.js +3 -58
  87. package/build/cjs/integrations/tracing/google-genai/index.js.map +1 -1
  88. package/build/cjs/integrations/tracing/google-genai/instrumentation.js +23 -43
  89. package/build/cjs/integrations/tracing/google-genai/instrumentation.js.map +1 -1
  90. package/build/cjs/integrations/tracing/graphql/index.js +34 -0
  91. package/build/cjs/integrations/tracing/graphql/index.js.map +1 -0
  92. package/build/cjs/integrations/tracing/graphql/vendored/enum.js +47 -0
  93. package/build/cjs/integrations/tracing/graphql/vendored/enum.js.map +1 -0
  94. package/build/cjs/integrations/tracing/graphql/vendored/enums/AttributeNames.js +15 -0
  95. package/build/cjs/integrations/tracing/graphql/vendored/enums/AttributeNames.js.map +1 -0
  96. package/build/cjs/integrations/tracing/graphql/vendored/instrumentation.js +329 -0
  97. package/build/cjs/integrations/tracing/graphql/vendored/instrumentation.js.map +1 -0
  98. package/build/cjs/integrations/tracing/graphql/vendored/internal-types.js +6 -0
  99. package/build/cjs/integrations/tracing/graphql/vendored/internal-types.js.map +1 -0
  100. package/build/cjs/integrations/tracing/graphql/vendored/symbols.js +8 -0
  101. package/build/cjs/integrations/tracing/graphql/vendored/symbols.js.map +1 -0
  102. package/build/cjs/integrations/tracing/graphql/vendored/utils.js +265 -0
  103. package/build/cjs/integrations/tracing/graphql/vendored/utils.js.map +1 -0
  104. package/build/cjs/integrations/tracing/hapi/index.js +16 -91
  105. package/build/cjs/integrations/tracing/hapi/index.js.map +1 -1
  106. package/build/cjs/integrations/tracing/hapi/vendored/enums/AttributeNames.js +11 -0
  107. package/build/cjs/integrations/tracing/hapi/vendored/enums/AttributeNames.js.map +1 -0
  108. package/build/cjs/integrations/tracing/hapi/vendored/instrumentation.js +255 -0
  109. package/build/cjs/integrations/tracing/hapi/vendored/instrumentation.js.map +1 -0
  110. package/build/cjs/integrations/tracing/hapi/vendored/internal-types.js +24 -0
  111. package/build/cjs/integrations/tracing/hapi/vendored/internal-types.js.map +1 -0
  112. package/build/cjs/integrations/tracing/hapi/vendored/utils.js +85 -0
  113. package/build/cjs/integrations/tracing/hapi/vendored/utils.js.map +1 -0
  114. package/build/cjs/integrations/tracing/hono/constants.js +6 -7
  115. package/build/cjs/integrations/tracing/hono/constants.js.map +1 -1
  116. package/build/cjs/integrations/tracing/hono/index.js +26 -77
  117. package/build/cjs/integrations/tracing/hono/index.js.map +1 -1
  118. package/build/cjs/integrations/tracing/hono/instrumentation.js +47 -82
  119. package/build/cjs/integrations/tracing/hono/instrumentation.js.map +1 -1
  120. package/build/cjs/integrations/tracing/index.js +74 -83
  121. package/build/cjs/integrations/tracing/index.js.map +1 -1
  122. package/build/cjs/integrations/tracing/kafka/index.js +21 -0
  123. package/build/cjs/integrations/tracing/kafka/index.js.map +1 -0
  124. package/build/cjs/integrations/tracing/kafka/vendored/instrumentation.js +237 -0
  125. package/build/cjs/integrations/tracing/kafka/vendored/instrumentation.js.map +1 -0
  126. package/build/cjs/integrations/tracing/kafka/vendored/semconv.js +22 -0
  127. package/build/cjs/integrations/tracing/kafka/vendored/semconv.js.map +1 -0
  128. package/build/cjs/integrations/tracing/kafka/vendored/utils.js +114 -0
  129. package/build/cjs/integrations/tracing/kafka/vendored/utils.js.map +1 -0
  130. package/build/cjs/integrations/tracing/knex/index.js +26 -0
  131. package/build/cjs/integrations/tracing/knex/index.js.map +1 -0
  132. package/build/cjs/integrations/tracing/knex/vendored/instrumentation.js +135 -0
  133. package/build/cjs/integrations/tracing/knex/vendored/instrumentation.js.map +1 -0
  134. package/build/cjs/integrations/tracing/knex/vendored/semconv.js +10 -0
  135. package/build/cjs/integrations/tracing/knex/vendored/semconv.js.map +1 -0
  136. package/build/cjs/integrations/tracing/knex/vendored/utils.js +84 -0
  137. package/build/cjs/integrations/tracing/knex/vendored/utils.js.map +1 -0
  138. package/build/cjs/integrations/tracing/koa/index.js +46 -0
  139. package/build/cjs/integrations/tracing/koa/index.js.map +1 -0
  140. package/build/cjs/integrations/tracing/koa/vendored/enums/AttributeNames.js +10 -0
  141. package/build/cjs/integrations/tracing/koa/vendored/enums/AttributeNames.js.map +1 -0
  142. package/build/cjs/integrations/tracing/koa/vendored/instrumentation.js +127 -0
  143. package/build/cjs/integrations/tracing/koa/vendored/instrumentation.js.map +1 -0
  144. package/build/cjs/integrations/tracing/koa/vendored/internal-types.js +6 -0
  145. package/build/cjs/integrations/tracing/koa/vendored/internal-types.js.map +1 -0
  146. package/build/cjs/integrations/tracing/koa/vendored/types.js +10 -0
  147. package/build/cjs/integrations/tracing/koa/vendored/types.js.map +1 -0
  148. package/build/cjs/integrations/tracing/koa/vendored/utils.js +36 -0
  149. package/build/cjs/integrations/tracing/koa/vendored/utils.js.map +1 -0
  150. package/build/cjs/integrations/tracing/langchain/index.js +3 -97
  151. package/build/cjs/integrations/tracing/langchain/index.js.map +1 -1
  152. package/build/cjs/integrations/tracing/langchain/instrumentation.js +57 -151
  153. package/build/cjs/integrations/tracing/langchain/instrumentation.js.map +1 -1
  154. package/build/cjs/integrations/tracing/langgraph/index.js +3 -73
  155. package/build/cjs/integrations/tracing/langgraph/index.js.map +1 -1
  156. package/build/cjs/integrations/tracing/langgraph/instrumentation.js +76 -40
  157. package/build/cjs/integrations/tracing/langgraph/instrumentation.js.map +1 -1
  158. package/build/cjs/integrations/tracing/lrumemoizer/index.js +21 -0
  159. package/build/cjs/integrations/tracing/lrumemoizer/index.js.map +1 -0
  160. package/build/cjs/integrations/tracing/lrumemoizer/vendored/instrumentation.js +38 -0
  161. package/build/cjs/integrations/tracing/lrumemoizer/vendored/instrumentation.js.map +1 -0
  162. package/build/cjs/integrations/tracing/mongo/index.js +21 -0
  163. package/build/cjs/integrations/tracing/mongo/index.js.map +1 -0
  164. package/build/cjs/integrations/tracing/mongo/vendored/instrumentation.js +129 -0
  165. package/build/cjs/integrations/tracing/mongo/vendored/instrumentation.js.map +1 -0
  166. package/build/cjs/integrations/tracing/mongo/vendored/patches.js +150 -0
  167. package/build/cjs/integrations/tracing/mongo/vendored/patches.js.map +1 -0
  168. package/build/cjs/integrations/tracing/mongo/vendored/utils.js +40 -0
  169. package/build/cjs/integrations/tracing/mongo/vendored/utils.js.map +1 -0
  170. package/build/cjs/integrations/tracing/mongoose/index.js +22 -0
  171. package/build/cjs/integrations/tracing/mongoose/index.js.map +1 -0
  172. package/build/cjs/integrations/tracing/mongoose/vendored/mongoose.js +240 -0
  173. package/build/cjs/integrations/tracing/mongoose/vendored/mongoose.js.map +1 -0
  174. package/build/cjs/integrations/tracing/mongoose/vendored/utils.js +41 -0
  175. package/build/cjs/integrations/tracing/mongoose/vendored/utils.js.map +1 -0
  176. package/build/cjs/integrations/tracing/mysql/index.js +21 -0
  177. package/build/cjs/integrations/tracing/mysql/index.js.map +1 -0
  178. package/build/cjs/integrations/tracing/mysql/vendored/instrumentation.js +185 -0
  179. package/build/cjs/integrations/tracing/mysql/vendored/instrumentation.js.map +1 -0
  180. package/build/cjs/integrations/tracing/mysql/vendored/semconv.js +8 -0
  181. package/build/cjs/integrations/tracing/mysql/vendored/semconv.js.map +1 -0
  182. package/build/cjs/integrations/tracing/mysql/vendored/utils.js +38 -0
  183. package/build/cjs/integrations/tracing/mysql/vendored/utils.js.map +1 -0
  184. package/build/cjs/integrations/tracing/mysql2/index.js +22 -0
  185. package/build/cjs/integrations/tracing/mysql2/index.js.map +1 -0
  186. package/build/cjs/integrations/tracing/mysql2/vendored/instrumentation.js +138 -0
  187. package/build/cjs/integrations/tracing/mysql2/vendored/instrumentation.js.map +1 -0
  188. package/build/cjs/integrations/tracing/mysql2/vendored/semconv.js +8 -0
  189. package/build/cjs/integrations/tracing/mysql2/vendored/semconv.js.map +1 -0
  190. package/build/cjs/integrations/tracing/mysql2/vendored/utils.js +81 -0
  191. package/build/cjs/integrations/tracing/mysql2/vendored/utils.js.map +1 -0
  192. package/build/cjs/integrations/tracing/openai/index.js +3 -58
  193. package/build/cjs/integrations/tracing/openai/index.js.map +1 -1
  194. package/build/cjs/integrations/tracing/openai/instrumentation.js +25 -49
  195. package/build/cjs/integrations/tracing/openai/instrumentation.js.map +1 -1
  196. package/build/cjs/integrations/tracing/postgres/index.js +27 -0
  197. package/build/cjs/integrations/tracing/postgres/index.js.map +1 -0
  198. package/build/cjs/integrations/tracing/postgres/vendored/enums/AttributeNames.js +11 -0
  199. package/build/cjs/integrations/tracing/postgres/vendored/enums/AttributeNames.js.map +1 -0
  200. package/build/cjs/integrations/tracing/postgres/vendored/enums/SpanNames.js +11 -0
  201. package/build/cjs/integrations/tracing/postgres/vendored/enums/SpanNames.js.map +1 -0
  202. package/build/cjs/integrations/tracing/postgres/vendored/instrumentation.js +225 -0
  203. package/build/cjs/integrations/tracing/postgres/vendored/instrumentation.js.map +1 -0
  204. package/build/cjs/integrations/tracing/postgres/vendored/semconv.js +8 -0
  205. package/build/cjs/integrations/tracing/postgres/vendored/semconv.js.map +1 -0
  206. package/build/cjs/integrations/tracing/postgres/vendored/utils.js +151 -0
  207. package/build/cjs/integrations/tracing/postgres/vendored/utils.js.map +1 -0
  208. package/build/cjs/integrations/tracing/postgresjs.js +77 -190
  209. package/build/cjs/integrations/tracing/postgresjs.js.map +1 -1
  210. package/build/cjs/integrations/tracing/redis/cache.js +41 -0
  211. package/build/cjs/integrations/tracing/redis/cache.js.map +1 -0
  212. package/build/cjs/integrations/tracing/redis/index.js +50 -0
  213. package/build/cjs/integrations/tracing/redis/index.js.map +1 -0
  214. package/build/cjs/integrations/tracing/redis/vendored/ioredis-instrumentation.js +147 -0
  215. package/build/cjs/integrations/tracing/redis/vendored/ioredis-instrumentation.js.map +1 -0
  216. package/build/cjs/integrations/tracing/redis/vendored/redis-instrumentation.js +445 -0
  217. package/build/cjs/integrations/tracing/redis/vendored/redis-instrumentation.js.map +1 -0
  218. package/build/cjs/integrations/tracing/redis/vendored/semconv.js +8 -0
  219. package/build/cjs/integrations/tracing/redis/vendored/semconv.js.map +1 -0
  220. package/build/cjs/integrations/tracing/tedious/index.js +21 -0
  221. package/build/cjs/integrations/tracing/tedious/index.js.map +1 -0
  222. package/build/cjs/integrations/tracing/tedious/vendored/instrumentation.js +154 -0
  223. package/build/cjs/integrations/tracing/tedious/vendored/instrumentation.js.map +1 -0
  224. package/build/cjs/integrations/tracing/tedious/vendored/semconv.js +8 -0
  225. package/build/cjs/integrations/tracing/tedious/vendored/semconv.js.map +1 -0
  226. package/build/cjs/integrations/tracing/tedious/vendored/utils.js +29 -0
  227. package/build/cjs/integrations/tracing/tedious/vendored/utils.js.map +1 -0
  228. package/build/cjs/integrations/tracing/vercelai/constants.js +1 -1
  229. package/build/cjs/integrations/tracing/vercelai/constants.js.map +1 -1
  230. package/build/cjs/integrations/tracing/vercelai/index.js +7 -53
  231. package/build/cjs/integrations/tracing/vercelai/index.js.map +1 -1
  232. package/build/cjs/integrations/tracing/vercelai/instrumentation.js +60 -158
  233. package/build/cjs/integrations/tracing/vercelai/instrumentation.js.map +1 -1
  234. package/build/cjs/preload.js +1 -14
  235. package/build/cjs/preload.js.map +1 -1
  236. package/build/cjs/sdk/diagnosticsChannelInjection.js +21 -0
  237. package/build/cjs/sdk/diagnosticsChannelInjection.js.map +1 -0
  238. package/build/cjs/sdk/experimentalUseDiagnosticsChannelInjection.js +33 -0
  239. package/build/cjs/sdk/experimentalUseDiagnosticsChannelInjection.js.map +1 -0
  240. package/build/cjs/sdk/index.js +33 -35
  241. package/build/cjs/sdk/index.js.map +1 -1
  242. package/build/cjs/sdk/initOtel.js +74 -60
  243. package/build/cjs/sdk/initOtel.js.map +1 -1
  244. package/build/cjs/utils/redisCache.js +24 -52
  245. package/build/cjs/utils/redisCache.js.map +1 -1
  246. package/build/cjs/utils/setHttpServerSpanRouteAttribute.js +21 -0
  247. package/build/cjs/utils/setHttpServerSpanRouteAttribute.js.map +1 -0
  248. package/build/esm/debug-build.js +0 -5
  249. package/build/esm/debug-build.js.map +1 -1
  250. package/build/esm/index.js +23 -21
  251. package/build/esm/index.js.map +1 -1
  252. package/build/esm/init.js +0 -6
  253. package/build/esm/init.js.map +1 -1
  254. package/build/esm/integrations/featureFlagShims/growthbook.js +0 -4
  255. package/build/esm/integrations/featureFlagShims/growthbook.js.map +1 -1
  256. package/build/esm/integrations/featureFlagShims/launchDarkly.js +6 -18
  257. package/build/esm/integrations/featureFlagShims/launchDarkly.js.map +1 -1
  258. package/build/esm/integrations/featureFlagShims/openFeature.js +6 -21
  259. package/build/esm/integrations/featureFlagShims/openFeature.js.map +1 -1
  260. package/build/esm/integrations/featureFlagShims/statsig.js +2 -8
  261. package/build/esm/integrations/featureFlagShims/statsig.js.map +1 -1
  262. package/build/esm/integrations/featureFlagShims/unleash.js +2 -8
  263. package/build/esm/integrations/featureFlagShims/unleash.js.map +1 -1
  264. package/build/esm/integrations/fs/index.js +15 -0
  265. package/build/esm/integrations/fs/index.js.map +1 -0
  266. package/build/esm/integrations/fs/vendored/constants.js +134 -0
  267. package/build/esm/integrations/fs/vendored/constants.js.map +1 -0
  268. package/build/esm/integrations/fs/vendored/instrumentation.js +228 -0
  269. package/build/esm/integrations/fs/vendored/instrumentation.js.map +1 -0
  270. package/build/esm/integrations/fs/vendored/utils.js +28 -0
  271. package/build/esm/integrations/fs/vendored/utils.js.map +1 -0
  272. package/build/esm/integrations/http.js +22 -176
  273. package/build/esm/integrations/http.js.map +1 -1
  274. package/build/esm/integrations/node-fetch.js +12 -95
  275. package/build/esm/integrations/node-fetch.js.map +1 -1
  276. package/build/esm/integrations/tracing/InstrumentationNodeModuleFile.js +13 -0
  277. package/build/esm/integrations/tracing/InstrumentationNodeModuleFile.js.map +1 -0
  278. package/build/esm/integrations/tracing/amqplib/index.js +18 -0
  279. package/build/esm/integrations/tracing/amqplib/index.js.map +1 -0
  280. package/build/esm/integrations/tracing/amqplib/vendored/instrumentation.js +115 -0
  281. package/build/esm/integrations/tracing/amqplib/vendored/instrumentation.js.map +1 -0
  282. package/build/esm/integrations/tracing/amqplib/vendored/patches.js +177 -0
  283. package/build/esm/integrations/tracing/amqplib/vendored/patches.js.map +1 -0
  284. package/build/esm/integrations/tracing/amqplib/vendored/semconv.js +14 -0
  285. package/build/esm/integrations/tracing/amqplib/vendored/semconv.js.map +1 -0
  286. package/build/esm/integrations/tracing/amqplib/vendored/types.js +15 -0
  287. package/build/esm/integrations/tracing/amqplib/vendored/types.js.map +1 -0
  288. package/build/esm/integrations/tracing/amqplib/vendored/utils.js +117 -0
  289. package/build/esm/integrations/tracing/amqplib/vendored/utils.js.map +1 -0
  290. package/build/esm/integrations/tracing/anthropic-ai/index.js +3 -58
  291. package/build/esm/integrations/tracing/anthropic-ai/index.js.map +1 -1
  292. package/build/esm/integrations/tracing/anthropic-ai/instrumentation.js +21 -44
  293. package/build/esm/integrations/tracing/anthropic-ai/instrumentation.js.map +1 -1
  294. package/build/esm/integrations/tracing/connect/index.js +31 -0
  295. package/build/esm/integrations/tracing/connect/index.js.map +1 -0
  296. package/build/esm/integrations/tracing/connect/vendored/enums/AttributeNames.js +13 -0
  297. package/build/esm/integrations/tracing/connect/vendored/enums/AttributeNames.js.map +1 -0
  298. package/build/esm/integrations/tracing/connect/vendored/instrumentation.js +135 -0
  299. package/build/esm/integrations/tracing/connect/vendored/instrumentation.js.map +1 -0
  300. package/build/esm/integrations/tracing/connect/vendored/internal-types.js +6 -0
  301. package/build/esm/integrations/tracing/connect/vendored/internal-types.js.map +1 -0
  302. package/build/esm/integrations/tracing/connect/vendored/utils.js +32 -0
  303. package/build/esm/integrations/tracing/connect/vendored/utils.js.map +1 -0
  304. package/build/esm/integrations/tracing/dataloader/index.js +23 -0
  305. package/build/esm/integrations/tracing/dataloader/index.js.map +1 -0
  306. package/build/esm/integrations/tracing/dataloader/vendored/instrumentation.js +215 -0
  307. package/build/esm/integrations/tracing/dataloader/vendored/instrumentation.js.map +1 -0
  308. package/build/esm/integrations/tracing/express.js +22 -34
  309. package/build/esm/integrations/tracing/express.js.map +1 -1
  310. package/build/esm/integrations/tracing/fastify/index.js +21 -235
  311. package/build/esm/integrations/tracing/fastify/index.js.map +1 -1
  312. package/build/esm/integrations/tracing/fastify/v3/constants.js +1 -18
  313. package/build/esm/integrations/tracing/fastify/v3/constants.js.map +1 -1
  314. package/build/esm/integrations/tracing/fastify/v3/enums/AttributeNames.js +17 -34
  315. package/build/esm/integrations/tracing/fastify/v3/enums/AttributeNames.js.map +1 -1
  316. package/build/esm/integrations/tracing/fastify/v3/instrumentation.js +74 -158
  317. package/build/esm/integrations/tracing/fastify/v3/instrumentation.js.map +1 -1
  318. package/build/esm/integrations/tracing/fastify/v3/utils.js +8 -79
  319. package/build/esm/integrations/tracing/fastify/v3/utils.js.map +1 -1
  320. package/build/esm/integrations/tracing/firebase/firebase.js +6 -35
  321. package/build/esm/integrations/tracing/firebase/firebase.js.map +1 -1
  322. package/build/esm/integrations/tracing/firebase/otel/firebaseInstrumentation.js +7 -23
  323. package/build/esm/integrations/tracing/firebase/otel/firebaseInstrumentation.js.map +1 -1
  324. package/build/esm/integrations/tracing/firebase/otel/patches/firestore.js +72 -214
  325. package/build/esm/integrations/tracing/firebase/otel/patches/firestore.js.map +1 -1
  326. package/build/esm/integrations/tracing/firebase/otel/patches/functions.js +86 -210
  327. package/build/esm/integrations/tracing/firebase/otel/patches/functions.js.map +1 -1
  328. package/build/esm/integrations/tracing/genericPool/index.js +18 -0
  329. package/build/esm/integrations/tracing/genericPool/index.js.map +1 -0
  330. package/build/esm/integrations/tracing/genericPool/vendored/instrumentation.js +120 -0
  331. package/build/esm/integrations/tracing/genericPool/vendored/instrumentation.js.map +1 -0
  332. package/build/esm/integrations/tracing/google-genai/index.js +3 -58
  333. package/build/esm/integrations/tracing/google-genai/index.js.map +1 -1
  334. package/build/esm/integrations/tracing/google-genai/instrumentation.js +23 -43
  335. package/build/esm/integrations/tracing/google-genai/instrumentation.js.map +1 -1
  336. package/build/esm/integrations/tracing/graphql/index.js +31 -0
  337. package/build/esm/integrations/tracing/graphql/index.js.map +1 -0
  338. package/build/esm/integrations/tracing/graphql/vendored/enum.js +43 -0
  339. package/build/esm/integrations/tracing/graphql/vendored/enum.js.map +1 -0
  340. package/build/esm/integrations/tracing/graphql/vendored/enums/AttributeNames.js +13 -0
  341. package/build/esm/integrations/tracing/graphql/vendored/enums/AttributeNames.js.map +1 -0
  342. package/build/esm/integrations/tracing/graphql/vendored/instrumentation.js +327 -0
  343. package/build/esm/integrations/tracing/graphql/vendored/instrumentation.js.map +1 -0
  344. package/build/esm/integrations/tracing/graphql/vendored/internal-types.js +4 -0
  345. package/build/esm/integrations/tracing/graphql/vendored/internal-types.js.map +1 -0
  346. package/build/esm/integrations/tracing/graphql/vendored/symbols.js +5 -0
  347. package/build/esm/integrations/tracing/graphql/vendored/symbols.js.map +1 -0
  348. package/build/esm/integrations/tracing/graphql/vendored/utils.js +257 -0
  349. package/build/esm/integrations/tracing/graphql/vendored/utils.js.map +1 -0
  350. package/build/esm/integrations/tracing/hapi/index.js +16 -91
  351. package/build/esm/integrations/tracing/hapi/index.js.map +1 -1
  352. package/build/esm/integrations/tracing/hapi/vendored/enums/AttributeNames.js +9 -0
  353. package/build/esm/integrations/tracing/hapi/vendored/enums/AttributeNames.js.map +1 -0
  354. package/build/esm/integrations/tracing/hapi/vendored/instrumentation.js +253 -0
  355. package/build/esm/integrations/tracing/hapi/vendored/instrumentation.js.map +1 -0
  356. package/build/esm/integrations/tracing/hapi/vendored/internal-types.js +19 -0
  357. package/build/esm/integrations/tracing/hapi/vendored/internal-types.js.map +1 -0
  358. package/build/esm/integrations/tracing/hapi/vendored/utils.js +76 -0
  359. package/build/esm/integrations/tracing/hapi/vendored/utils.js.map +1 -0
  360. package/build/esm/integrations/tracing/hono/constants.js +6 -7
  361. package/build/esm/integrations/tracing/hono/constants.js.map +1 -1
  362. package/build/esm/integrations/tracing/hono/index.js +22 -73
  363. package/build/esm/integrations/tracing/hono/index.js.map +1 -1
  364. package/build/esm/integrations/tracing/hono/instrumentation.js +47 -82
  365. package/build/esm/integrations/tracing/hono/instrumentation.js.map +1 -1
  366. package/build/esm/integrations/tracing/index.js +20 -29
  367. package/build/esm/integrations/tracing/index.js.map +1 -1
  368. package/build/esm/integrations/tracing/kafka/index.js +18 -0
  369. package/build/esm/integrations/tracing/kafka/index.js.map +1 -0
  370. package/build/esm/integrations/tracing/kafka/vendored/instrumentation.js +235 -0
  371. package/build/esm/integrations/tracing/kafka/vendored/instrumentation.js.map +1 -0
  372. package/build/esm/integrations/tracing/kafka/vendored/semconv.js +12 -0
  373. package/build/esm/integrations/tracing/kafka/vendored/semconv.js.map +1 -0
  374. package/build/esm/integrations/tracing/kafka/vendored/utils.js +108 -0
  375. package/build/esm/integrations/tracing/kafka/vendored/utils.js.map +1 -0
  376. package/build/esm/integrations/tracing/knex/index.js +23 -0
  377. package/build/esm/integrations/tracing/knex/index.js.map +1 -0
  378. package/build/esm/integrations/tracing/knex/vendored/instrumentation.js +133 -0
  379. package/build/esm/integrations/tracing/knex/vendored/instrumentation.js.map +1 -0
  380. package/build/esm/integrations/tracing/knex/vendored/semconv.js +6 -0
  381. package/build/esm/integrations/tracing/knex/vendored/semconv.js.map +1 -0
  382. package/build/esm/integrations/tracing/knex/vendored/utils.js +75 -0
  383. package/build/esm/integrations/tracing/knex/vendored/utils.js.map +1 -0
  384. package/build/esm/integrations/tracing/koa/index.js +42 -0
  385. package/build/esm/integrations/tracing/koa/index.js.map +1 -0
  386. package/build/esm/integrations/tracing/koa/vendored/enums/AttributeNames.js +8 -0
  387. package/build/esm/integrations/tracing/koa/vendored/enums/AttributeNames.js.map +1 -0
  388. package/build/esm/integrations/tracing/koa/vendored/instrumentation.js +125 -0
  389. package/build/esm/integrations/tracing/koa/vendored/instrumentation.js.map +1 -0
  390. package/build/esm/integrations/tracing/koa/vendored/internal-types.js +4 -0
  391. package/build/esm/integrations/tracing/koa/vendored/internal-types.js.map +1 -0
  392. package/build/esm/integrations/tracing/koa/vendored/types.js +8 -0
  393. package/build/esm/integrations/tracing/koa/vendored/types.js.map +1 -0
  394. package/build/esm/integrations/tracing/koa/vendored/utils.js +33 -0
  395. package/build/esm/integrations/tracing/koa/vendored/utils.js.map +1 -0
  396. package/build/esm/integrations/tracing/langchain/index.js +3 -97
  397. package/build/esm/integrations/tracing/langchain/index.js.map +1 -1
  398. package/build/esm/integrations/tracing/langchain/instrumentation.js +57 -151
  399. package/build/esm/integrations/tracing/langchain/instrumentation.js.map +1 -1
  400. package/build/esm/integrations/tracing/langgraph/index.js +3 -73
  401. package/build/esm/integrations/tracing/langgraph/index.js.map +1 -1
  402. package/build/esm/integrations/tracing/langgraph/instrumentation.js +78 -42
  403. package/build/esm/integrations/tracing/langgraph/instrumentation.js.map +1 -1
  404. package/build/esm/integrations/tracing/lrumemoizer/index.js +18 -0
  405. package/build/esm/integrations/tracing/lrumemoizer/index.js.map +1 -0
  406. package/build/esm/integrations/tracing/lrumemoizer/vendored/instrumentation.js +36 -0
  407. package/build/esm/integrations/tracing/lrumemoizer/vendored/instrumentation.js.map +1 -0
  408. package/build/esm/integrations/tracing/mongo/index.js +18 -0
  409. package/build/esm/integrations/tracing/mongo/index.js.map +1 -0
  410. package/build/esm/integrations/tracing/mongo/vendored/instrumentation.js +127 -0
  411. package/build/esm/integrations/tracing/mongo/vendored/instrumentation.js.map +1 -0
  412. package/build/esm/integrations/tracing/mongo/vendored/patches.js +142 -0
  413. package/build/esm/integrations/tracing/mongo/vendored/patches.js.map +1 -0
  414. package/build/esm/integrations/tracing/mongo/vendored/utils.js +34 -0
  415. package/build/esm/integrations/tracing/mongo/vendored/utils.js.map +1 -0
  416. package/build/esm/integrations/tracing/mongoose/index.js +19 -0
  417. package/build/esm/integrations/tracing/mongoose/index.js.map +1 -0
  418. package/build/esm/integrations/tracing/mongoose/vendored/mongoose.js +236 -0
  419. package/build/esm/integrations/tracing/mongoose/vendored/mongoose.js.map +1 -0
  420. package/build/esm/integrations/tracing/mongoose/vendored/utils.js +38 -0
  421. package/build/esm/integrations/tracing/mongoose/vendored/utils.js.map +1 -0
  422. package/build/esm/integrations/tracing/mysql/index.js +18 -0
  423. package/build/esm/integrations/tracing/mysql/index.js.map +1 -0
  424. package/build/esm/integrations/tracing/mysql/vendored/instrumentation.js +183 -0
  425. package/build/esm/integrations/tracing/mysql/vendored/instrumentation.js.map +1 -0
  426. package/build/esm/integrations/tracing/mysql/vendored/semconv.js +5 -0
  427. package/build/esm/integrations/tracing/mysql/vendored/semconv.js.map +1 -0
  428. package/build/esm/integrations/tracing/mysql/vendored/utils.js +33 -0
  429. package/build/esm/integrations/tracing/mysql/vendored/utils.js.map +1 -0
  430. package/build/esm/integrations/tracing/mysql2/index.js +19 -0
  431. package/build/esm/integrations/tracing/mysql2/index.js.map +1 -0
  432. package/build/esm/integrations/tracing/mysql2/vendored/instrumentation.js +136 -0
  433. package/build/esm/integrations/tracing/mysql2/vendored/instrumentation.js.map +1 -0
  434. package/build/esm/integrations/tracing/mysql2/vendored/semconv.js +5 -0
  435. package/build/esm/integrations/tracing/mysql2/vendored/semconv.js.map +1 -0
  436. package/build/esm/integrations/tracing/mysql2/vendored/utils.js +75 -0
  437. package/build/esm/integrations/tracing/mysql2/vendored/utils.js.map +1 -0
  438. package/build/esm/integrations/tracing/openai/index.js +3 -58
  439. package/build/esm/integrations/tracing/openai/index.js.map +1 -1
  440. package/build/esm/integrations/tracing/openai/instrumentation.js +25 -49
  441. package/build/esm/integrations/tracing/openai/instrumentation.js.map +1 -1
  442. package/build/esm/integrations/tracing/postgres/index.js +24 -0
  443. package/build/esm/integrations/tracing/postgres/index.js.map +1 -0
  444. package/build/esm/integrations/tracing/postgres/vendored/enums/AttributeNames.js +9 -0
  445. package/build/esm/integrations/tracing/postgres/vendored/enums/AttributeNames.js.map +1 -0
  446. package/build/esm/integrations/tracing/postgres/vendored/enums/SpanNames.js +9 -0
  447. package/build/esm/integrations/tracing/postgres/vendored/enums/SpanNames.js.map +1 -0
  448. package/build/esm/integrations/tracing/postgres/vendored/instrumentation.js +223 -0
  449. package/build/esm/integrations/tracing/postgres/vendored/instrumentation.js.map +1 -0
  450. package/build/esm/integrations/tracing/postgres/vendored/semconv.js +5 -0
  451. package/build/esm/integrations/tracing/postgres/vendored/semconv.js.map +1 -0
  452. package/build/esm/integrations/tracing/postgres/vendored/utils.js +136 -0
  453. package/build/esm/integrations/tracing/postgres/vendored/utils.js.map +1 -0
  454. package/build/esm/integrations/tracing/postgresjs.js +77 -190
  455. package/build/esm/integrations/tracing/postgresjs.js.map +1 -1
  456. package/build/esm/integrations/tracing/redis/cache.js +38 -0
  457. package/build/esm/integrations/tracing/redis/cache.js.map +1 -0
  458. package/build/esm/integrations/tracing/redis/index.js +43 -0
  459. package/build/esm/integrations/tracing/redis/index.js.map +1 -0
  460. package/build/esm/integrations/tracing/redis/vendored/ioredis-instrumentation.js +145 -0
  461. package/build/esm/integrations/tracing/redis/vendored/ioredis-instrumentation.js.map +1 -0
  462. package/build/esm/integrations/tracing/redis/vendored/redis-instrumentation.js +443 -0
  463. package/build/esm/integrations/tracing/redis/vendored/redis-instrumentation.js.map +1 -0
  464. package/build/esm/integrations/tracing/redis/vendored/semconv.js +5 -0
  465. package/build/esm/integrations/tracing/redis/vendored/semconv.js.map +1 -0
  466. package/build/esm/integrations/tracing/tedious/index.js +18 -0
  467. package/build/esm/integrations/tracing/tedious/index.js.map +1 -0
  468. package/build/esm/integrations/tracing/tedious/vendored/instrumentation.js +152 -0
  469. package/build/esm/integrations/tracing/tedious/vendored/instrumentation.js.map +1 -0
  470. package/build/esm/integrations/tracing/tedious/vendored/semconv.js +5 -0
  471. package/build/esm/integrations/tracing/tedious/vendored/semconv.js.map +1 -0
  472. package/build/esm/integrations/tracing/tedious/vendored/utils.js +26 -0
  473. package/build/esm/integrations/tracing/tedious/vendored/utils.js.map +1 -0
  474. package/build/esm/integrations/tracing/vercelai/constants.js +1 -1
  475. package/build/esm/integrations/tracing/vercelai/constants.js.map +1 -1
  476. package/build/esm/integrations/tracing/vercelai/index.js +8 -54
  477. package/build/esm/integrations/tracing/vercelai/index.js.map +1 -1
  478. package/build/esm/integrations/tracing/vercelai/instrumentation.js +60 -158
  479. package/build/esm/integrations/tracing/vercelai/instrumentation.js.map +1 -1
  480. package/build/esm/package.json +1 -1
  481. package/build/esm/preload.js +1 -14
  482. package/build/esm/preload.js.map +1 -1
  483. package/build/esm/sdk/diagnosticsChannelInjection.js +17 -0
  484. package/build/esm/sdk/diagnosticsChannelInjection.js.map +1 -0
  485. package/build/esm/sdk/experimentalUseDiagnosticsChannelInjection.js +30 -0
  486. package/build/esm/sdk/experimentalUseDiagnosticsChannelInjection.js.map +1 -0
  487. package/build/esm/sdk/index.js +33 -36
  488. package/build/esm/sdk/index.js.map +1 -1
  489. package/build/esm/sdk/initOtel.js +77 -63
  490. package/build/esm/sdk/initOtel.js.map +1 -1
  491. package/build/esm/utils/redisCache.js +24 -52
  492. package/build/esm/utils/redisCache.js.map +1 -1
  493. package/build/esm/utils/setHttpServerSpanRouteAttribute.js +19 -0
  494. package/build/esm/utils/setHttpServerSpanRouteAttribute.js.map +1 -0
  495. package/build/import-hook.mjs +6 -0
  496. package/build/types/index.d.ts +6 -4
  497. package/build/types/index.d.ts.map +1 -1
  498. package/build/types/integrations/featureFlagShims/launchDarkly.d.ts +3 -1
  499. package/build/types/integrations/featureFlagShims/launchDarkly.d.ts.map +1 -1
  500. package/build/types/integrations/featureFlagShims/openFeature.d.ts +3 -1
  501. package/build/types/integrations/featureFlagShims/openFeature.d.ts.map +1 -1
  502. package/build/types/integrations/featureFlagShims/statsig.d.ts +3 -1
  503. package/build/types/integrations/featureFlagShims/statsig.d.ts.map +1 -1
  504. package/build/types/integrations/featureFlagShims/unleash.d.ts +3 -1
  505. package/build/types/integrations/featureFlagShims/unleash.d.ts.map +1 -1
  506. package/build/types/integrations/fs/index.d.ts +14 -0
  507. package/build/types/integrations/fs/index.d.ts.map +1 -0
  508. package/build/types/integrations/fs/vendored/constants.d.ts +5 -0
  509. package/build/types/integrations/fs/vendored/constants.d.ts.map +1 -0
  510. package/build/types/integrations/fs/vendored/instrumentation.d.ts +3 -0
  511. package/build/types/integrations/fs/vendored/instrumentation.d.ts.map +1 -0
  512. package/build/types/integrations/fs/vendored/types.d.ts +23 -0
  513. package/build/types/integrations/fs/vendored/types.d.ts.map +1 -0
  514. package/build/types/integrations/fs/vendored/utils.d.ts +10 -0
  515. package/build/types/integrations/fs/vendored/utils.d.ts.map +1 -0
  516. package/build/types/integrations/http.d.ts +12 -17
  517. package/build/types/integrations/http.d.ts.map +1 -1
  518. package/build/types/integrations/node-fetch.d.ts +8 -35
  519. package/build/types/integrations/node-fetch.d.ts.map +1 -1
  520. package/build/types/integrations/tracing/InstrumentationNodeModuleFile.d.ts +9 -0
  521. package/build/types/integrations/tracing/InstrumentationNodeModuleFile.d.ts.map +1 -0
  522. package/build/types/integrations/tracing/{amqplib.d.ts → amqplib/index.d.ts} +5 -3
  523. package/build/types/integrations/tracing/amqplib/index.d.ts.map +1 -0
  524. package/build/types/integrations/tracing/amqplib/vendored/amqplib-types.d.ts +44 -0
  525. package/build/types/integrations/tracing/amqplib/vendored/amqplib-types.d.ts.map +1 -0
  526. package/build/types/integrations/tracing/amqplib/vendored/instrumentation.d.ts +11 -0
  527. package/build/types/integrations/tracing/amqplib/vendored/instrumentation.d.ts.map +1 -0
  528. package/build/types/integrations/tracing/amqplib/vendored/patches.d.ts +11 -0
  529. package/build/types/integrations/tracing/amqplib/vendored/patches.d.ts.map +1 -0
  530. package/build/types/integrations/tracing/amqplib/vendored/semconv.d.ts +23 -0
  531. package/build/types/integrations/tracing/amqplib/vendored/semconv.d.ts.map +1 -0
  532. package/build/types/integrations/tracing/amqplib/vendored/types.d.ts +49 -0
  533. package/build/types/integrations/tracing/amqplib/vendored/types.d.ts.map +1 -0
  534. package/build/types/integrations/tracing/amqplib/vendored/utils.d.ts +42 -0
  535. package/build/types/integrations/tracing/amqplib/vendored/utils.d.ts.map +1 -0
  536. package/build/types/integrations/tracing/anthropic-ai/index.d.ts +11 -8
  537. package/build/types/integrations/tracing/anthropic-ai/index.d.ts.map +1 -1
  538. package/build/types/integrations/tracing/{connect.d.ts → connect/index.d.ts} +5 -3
  539. package/build/types/integrations/tracing/connect/index.d.ts.map +1 -0
  540. package/build/types/integrations/tracing/connect/vendored/enums/AttributeNames.d.ts +9 -0
  541. package/build/types/integrations/tracing/connect/vendored/enums/AttributeNames.d.ts.map +1 -0
  542. package/build/types/integrations/tracing/connect/vendored/instrumentation.d.ts +18 -0
  543. package/build/types/integrations/tracing/connect/vendored/instrumentation.d.ts.map +1 -0
  544. package/build/types/integrations/tracing/connect/vendored/internal-types.d.ts +31 -0
  545. package/build/types/integrations/tracing/connect/vendored/internal-types.d.ts.map +1 -0
  546. package/build/types/integrations/tracing/connect/vendored/utils.d.ts +5 -0
  547. package/build/types/integrations/tracing/connect/vendored/utils.d.ts.map +1 -0
  548. package/build/types/integrations/tracing/{dataloader.d.ts → dataloader/index.d.ts} +5 -3
  549. package/build/types/integrations/tracing/dataloader/index.d.ts.map +1 -0
  550. package/build/types/integrations/tracing/dataloader/vendored/instrumentation.d.ts +18 -0
  551. package/build/types/integrations/tracing/dataloader/vendored/instrumentation.d.ts.map +1 -0
  552. package/build/types/integrations/tracing/dataloader/vendored/types.d.ts +22 -0
  553. package/build/types/integrations/tracing/dataloader/vendored/types.d.ts.map +1 -0
  554. package/build/types/integrations/tracing/express.d.ts +3 -1
  555. package/build/types/integrations/tracing/express.d.ts.map +1 -1
  556. package/build/types/integrations/tracing/fastify/index.d.ts +6 -6
  557. package/build/types/integrations/tracing/fastify/index.d.ts.map +1 -1
  558. package/build/types/integrations/tracing/fastify/v3/instrumentation.d.ts.map +1 -1
  559. package/build/types/integrations/tracing/firebase/firebase.d.ts +3 -1
  560. package/build/types/integrations/tracing/firebase/firebase.d.ts.map +1 -1
  561. package/build/types/integrations/tracing/firebase/otel/firebaseInstrumentation.d.ts +4 -9
  562. package/build/types/integrations/tracing/firebase/otel/firebaseInstrumentation.d.ts.map +1 -1
  563. package/build/types/integrations/tracing/firebase/otel/patches/firestore.d.ts +2 -5
  564. package/build/types/integrations/tracing/firebase/otel/patches/firestore.d.ts.map +1 -1
  565. package/build/types/integrations/tracing/firebase/otel/patches/functions.d.ts +3 -8
  566. package/build/types/integrations/tracing/firebase/otel/patches/functions.d.ts.map +1 -1
  567. package/build/types/integrations/tracing/firebase/otel/types.d.ts +0 -20
  568. package/build/types/integrations/tracing/firebase/otel/types.d.ts.map +1 -1
  569. package/build/types/integrations/tracing/{genericPool.d.ts → genericPool/index.d.ts} +5 -3
  570. package/build/types/integrations/tracing/genericPool/index.d.ts.map +1 -0
  571. package/build/types/integrations/tracing/genericPool/vendored/generic-pool-types.d.ts +5 -0
  572. package/build/types/integrations/tracing/genericPool/vendored/generic-pool-types.d.ts.map +1 -0
  573. package/build/types/integrations/tracing/genericPool/vendored/instrumentation.d.ts +11 -0
  574. package/build/types/integrations/tracing/genericPool/vendored/instrumentation.d.ts.map +1 -0
  575. package/build/types/integrations/tracing/google-genai/index.d.ts +11 -8
  576. package/build/types/integrations/tracing/google-genai/index.d.ts.map +1 -1
  577. package/build/types/integrations/tracing/google-genai/instrumentation.d.ts.map +1 -1
  578. package/build/types/integrations/tracing/{graphql.d.ts → graphql/index.d.ts} +5 -3
  579. package/build/types/integrations/tracing/graphql/index.d.ts.map +1 -0
  580. package/build/types/integrations/tracing/graphql/vendored/enum.d.ts +38 -0
  581. package/build/types/integrations/tracing/graphql/vendored/enum.d.ts.map +1 -0
  582. package/build/types/integrations/tracing/graphql/vendored/enums/AttributeNames.d.ts +10 -0
  583. package/build/types/integrations/tracing/graphql/vendored/enums/AttributeNames.d.ts.map +1 -0
  584. package/build/types/integrations/tracing/graphql/vendored/graphql-types.d.ts +2 -0
  585. package/build/types/integrations/tracing/graphql/vendored/graphql-types.d.ts.map +1 -0
  586. package/build/types/integrations/tracing/graphql/vendored/instrumentation.d.ts +25 -0
  587. package/build/types/integrations/tracing/graphql/vendored/instrumentation.d.ts.map +1 -0
  588. package/build/types/integrations/tracing/graphql/vendored/internal-types.d.ts +63 -0
  589. package/build/types/integrations/tracing/graphql/vendored/internal-types.d.ts.map +1 -0
  590. package/build/types/integrations/tracing/graphql/vendored/symbols.d.ts +3 -0
  591. package/build/types/integrations/tracing/graphql/vendored/symbols.d.ts.map +1 -0
  592. package/build/types/integrations/tracing/graphql/vendored/types.d.ts +33 -0
  593. package/build/types/integrations/tracing/graphql/vendored/types.d.ts.map +1 -0
  594. package/build/types/integrations/tracing/graphql/vendored/utils.d.ts +14 -0
  595. package/build/types/integrations/tracing/graphql/vendored/utils.d.ts.map +1 -0
  596. package/build/types/integrations/tracing/hapi/index.d.ts +4 -2
  597. package/build/types/integrations/tracing/hapi/index.d.ts.map +1 -1
  598. package/build/types/integrations/tracing/hapi/vendored/enums/AttributeNames.d.ts +6 -0
  599. package/build/types/integrations/tracing/hapi/vendored/enums/AttributeNames.d.ts.map +1 -0
  600. package/build/types/integrations/tracing/hapi/vendored/hapi-types.d.ts +70 -0
  601. package/build/types/integrations/tracing/hapi/vendored/hapi-types.d.ts.map +1 -0
  602. package/build/types/integrations/tracing/hapi/vendored/instrumentation.d.ts +72 -0
  603. package/build/types/integrations/tracing/hapi/vendored/instrumentation.d.ts.map +1 -0
  604. package/build/types/integrations/tracing/hapi/vendored/internal-types.d.ts +32 -0
  605. package/build/types/integrations/tracing/hapi/vendored/internal-types.d.ts.map +1 -0
  606. package/build/types/integrations/tracing/hapi/vendored/utils.d.ts +18 -0
  607. package/build/types/integrations/tracing/hapi/vendored/utils.d.ts.map +1 -0
  608. package/build/types/integrations/tracing/hono/index.d.ts +9 -1
  609. package/build/types/integrations/tracing/hono/index.d.ts.map +1 -1
  610. package/build/types/integrations/tracing/index.d.ts.map +1 -1
  611. package/build/types/integrations/tracing/{kafka.d.ts → kafka/index.d.ts} +5 -3
  612. package/build/types/integrations/tracing/kafka/index.d.ts.map +1 -0
  613. package/build/types/integrations/tracing/kafka/vendored/instrumentation.d.ts +15 -0
  614. package/build/types/integrations/tracing/kafka/vendored/instrumentation.d.ts.map +1 -0
  615. package/build/types/integrations/tracing/kafka/vendored/kafkajs-types.d.ts +79 -0
  616. package/build/types/integrations/tracing/kafka/vendored/kafkajs-types.d.ts.map +1 -0
  617. package/build/types/integrations/tracing/kafka/vendored/semconv.d.ts +54 -0
  618. package/build/types/integrations/tracing/kafka/vendored/semconv.d.ts.map +1 -0
  619. package/build/types/integrations/tracing/kafka/vendored/utils.d.ts +29 -0
  620. package/build/types/integrations/tracing/kafka/vendored/utils.d.ts.map +1 -0
  621. package/build/types/integrations/tracing/{knex.d.ts → knex/index.d.ts} +5 -3
  622. package/build/types/integrations/tracing/knex/index.d.ts.map +1 -0
  623. package/build/types/integrations/tracing/knex/vendored/instrumentation.d.ts +12 -0
  624. package/build/types/integrations/tracing/knex/vendored/instrumentation.d.ts.map +1 -0
  625. package/build/types/integrations/tracing/knex/vendored/semconv.d.ts +7 -0
  626. package/build/types/integrations/tracing/knex/vendored/semconv.d.ts.map +1 -0
  627. package/build/types/integrations/tracing/knex/vendored/utils.d.ts +9 -0
  628. package/build/types/integrations/tracing/knex/vendored/utils.d.ts.map +1 -0
  629. package/build/types/integrations/tracing/{koa.d.ts → koa/index.d.ts} +5 -3
  630. package/build/types/integrations/tracing/koa/index.d.ts.map +1 -0
  631. package/build/types/integrations/tracing/koa/vendored/enums/AttributeNames.d.ts +5 -0
  632. package/build/types/integrations/tracing/koa/vendored/enums/AttributeNames.d.ts.map +1 -0
  633. package/build/types/integrations/tracing/koa/vendored/instrumentation.d.ts +32 -0
  634. package/build/types/integrations/tracing/koa/vendored/instrumentation.d.ts.map +1 -0
  635. package/build/types/integrations/tracing/koa/vendored/internal-types.d.ts +34 -0
  636. package/build/types/integrations/tracing/koa/vendored/internal-types.d.ts.map +1 -0
  637. package/build/types/integrations/tracing/koa/vendored/types.d.ts +13 -0
  638. package/build/types/integrations/tracing/koa/vendored/types.d.ts.map +1 -0
  639. package/build/types/integrations/tracing/koa/vendored/utils.d.ts +15 -0
  640. package/build/types/integrations/tracing/koa/vendored/utils.d.ts.map +1 -0
  641. package/build/types/integrations/tracing/langchain/index.d.ts +12 -9
  642. package/build/types/integrations/tracing/langchain/index.d.ts.map +1 -1
  643. package/build/types/integrations/tracing/langchain/instrumentation.d.ts.map +1 -1
  644. package/build/types/integrations/tracing/langgraph/index.d.ts +11 -8
  645. package/build/types/integrations/tracing/langgraph/index.d.ts.map +1 -1
  646. package/build/types/integrations/tracing/langgraph/instrumentation.d.ts +1 -1
  647. package/build/types/integrations/tracing/langgraph/instrumentation.d.ts.map +1 -1
  648. package/build/types/integrations/tracing/{lrumemoizer.d.ts → lrumemoizer/index.d.ts} +5 -3
  649. package/build/types/integrations/tracing/lrumemoizer/index.d.ts.map +1 -0
  650. package/build/types/integrations/tracing/lrumemoizer/vendored/instrumentation.d.ts +6 -0
  651. package/build/types/integrations/tracing/lrumemoizer/vendored/instrumentation.d.ts.map +1 -0
  652. package/build/{types-ts3.8/integrations/tracing/mongo.d.ts → types/integrations/tracing/mongo/index.d.ts} +22 -24
  653. package/build/types/integrations/tracing/mongo/index.d.ts.map +1 -0
  654. package/build/types/integrations/tracing/mongo/vendored/instrumentation.d.ts +11 -0
  655. package/build/types/integrations/tracing/mongo/vendored/instrumentation.d.ts.map +1 -0
  656. package/build/types/integrations/tracing/mongo/vendored/internal-types.d.ts +62 -0
  657. package/build/types/integrations/tracing/mongo/vendored/internal-types.d.ts.map +1 -0
  658. package/build/types/integrations/tracing/mongo/vendored/patches.d.ts +15 -0
  659. package/build/types/integrations/tracing/mongo/vendored/patches.d.ts.map +1 -0
  660. package/build/types/integrations/tracing/mongo/vendored/utils.d.ts +15 -0
  661. package/build/types/integrations/tracing/mongo/vendored/utils.d.ts.map +1 -0
  662. package/build/types/integrations/tracing/{mongoose.d.ts → mongoose/index.d.ts} +5 -3
  663. package/build/types/integrations/tracing/mongoose/index.d.ts.map +1 -0
  664. package/build/types/integrations/tracing/mongoose/vendored/mongoose-types.d.ts +33 -0
  665. package/build/types/integrations/tracing/mongoose/vendored/mongoose-types.d.ts.map +1 -0
  666. package/build/types/integrations/tracing/mongoose/vendored/mongoose.d.ts +18 -0
  667. package/build/types/integrations/tracing/mongoose/vendored/mongoose.d.ts.map +1 -0
  668. package/build/types/integrations/tracing/mongoose/vendored/utils.d.ts +4 -0
  669. package/build/types/integrations/tracing/mongoose/vendored/utils.d.ts.map +1 -0
  670. package/build/types/integrations/tracing/{mysql.d.ts → mysql/index.d.ts} +5 -3
  671. package/build/types/integrations/tracing/mysql/index.d.ts.map +1 -0
  672. package/build/types/integrations/tracing/mysql/vendored/instrumentation.d.ts +14 -0
  673. package/build/types/integrations/tracing/mysql/vendored/instrumentation.d.ts.map +1 -0
  674. package/build/types/integrations/tracing/mysql/vendored/mysql-types.d.ts +78 -0
  675. package/build/types/integrations/tracing/mysql/vendored/mysql-types.d.ts.map +1 -0
  676. package/build/types/integrations/tracing/mysql/vendored/semconv.d.ts +19 -0
  677. package/build/types/integrations/tracing/mysql/vendored/semconv.d.ts.map +1 -0
  678. package/build/types/integrations/tracing/mysql/vendored/utils.d.ts +22 -0
  679. package/build/types/integrations/tracing/mysql/vendored/utils.d.ts.map +1 -0
  680. package/build/types/integrations/tracing/{mysql2.d.ts → mysql2/index.d.ts} +5 -3
  681. package/build/types/integrations/tracing/mysql2/index.d.ts.map +1 -0
  682. package/build/types/integrations/tracing/mysql2/vendored/instrumentation.d.ts +9 -0
  683. package/build/types/integrations/tracing/mysql2/vendored/instrumentation.d.ts.map +1 -0
  684. package/build/types/integrations/tracing/mysql2/vendored/mysql2-types.d.ts +39 -0
  685. package/build/types/integrations/tracing/mysql2/vendored/mysql2-types.d.ts.map +1 -0
  686. package/build/types/integrations/tracing/mysql2/vendored/semconv.d.ts +3 -0
  687. package/build/types/integrations/tracing/mysql2/vendored/semconv.d.ts.map +1 -0
  688. package/build/types/integrations/tracing/mysql2/vendored/utils.d.ts +25 -0
  689. package/build/types/integrations/tracing/mysql2/vendored/utils.d.ts.map +1 -0
  690. package/build/types/integrations/tracing/openai/index.d.ts +11 -8
  691. package/build/types/integrations/tracing/openai/index.d.ts.map +1 -1
  692. package/build/types/integrations/tracing/{postgres.d.ts → postgres/index.d.ts} +5 -3
  693. package/build/types/integrations/tracing/postgres/index.d.ts.map +1 -0
  694. package/build/types/integrations/tracing/postgres/vendored/enums/AttributeNames.d.ts +6 -0
  695. package/build/types/integrations/tracing/postgres/vendored/enums/AttributeNames.d.ts.map +1 -0
  696. package/build/types/integrations/tracing/postgres/vendored/enums/SpanNames.d.ts +6 -0
  697. package/build/types/integrations/tracing/postgres/vendored/enums/SpanNames.d.ts.map +1 -0
  698. package/build/types/integrations/tracing/postgres/vendored/instrumentation.d.ts +12 -0
  699. package/build/types/integrations/tracing/postgres/vendored/instrumentation.d.ts.map +1 -0
  700. package/build/types/integrations/tracing/postgres/vendored/internal-types.d.ts +33 -0
  701. package/build/types/integrations/tracing/postgres/vendored/internal-types.d.ts.map +1 -0
  702. package/build/types/integrations/tracing/postgres/vendored/pg-pool-types.d.ts +20 -0
  703. package/build/types/integrations/tracing/postgres/vendored/pg-pool-types.d.ts.map +1 -0
  704. package/build/types/integrations/tracing/postgres/vendored/pg-types.d.ts +54 -0
  705. package/build/types/integrations/tracing/postgres/vendored/pg-types.d.ts.map +1 -0
  706. package/build/types/integrations/tracing/postgres/vendored/semconv.d.ts +13 -0
  707. package/build/types/integrations/tracing/postgres/vendored/semconv.d.ts.map +1 -0
  708. package/build/types/integrations/tracing/postgres/vendored/types.d.ts +11 -0
  709. package/build/types/integrations/tracing/postgres/vendored/types.d.ts.map +1 -0
  710. package/build/types/integrations/tracing/postgres/vendored/utils.d.ts +56 -0
  711. package/build/types/integrations/tracing/postgres/vendored/utils.d.ts.map +1 -0
  712. package/build/types/integrations/tracing/postgresjs.d.ts +3 -1
  713. package/build/types/integrations/tracing/postgresjs.d.ts.map +1 -1
  714. package/build/types/integrations/tracing/redis/cache.d.ts +22 -0
  715. package/build/types/integrations/tracing/redis/cache.d.ts.map +1 -0
  716. package/build/types/integrations/tracing/redis/index.d.ts +28 -0
  717. package/build/types/integrations/tracing/redis/index.d.ts.map +1 -0
  718. package/build/types/integrations/tracing/redis/vendored/ioredis-instrumentation.d.ts +10 -0
  719. package/build/types/integrations/tracing/redis/vendored/ioredis-instrumentation.d.ts.map +1 -0
  720. package/build/types/integrations/tracing/redis/vendored/redis-instrumentation.d.ts +16 -0
  721. package/build/types/integrations/tracing/redis/vendored/redis-instrumentation.d.ts.map +1 -0
  722. package/build/types/integrations/tracing/redis/vendored/semconv.d.ts +4 -0
  723. package/build/types/integrations/tracing/redis/vendored/semconv.d.ts.map +1 -0
  724. package/build/types/integrations/tracing/redis/vendored/types.d.ts +24 -0
  725. package/build/types/integrations/tracing/redis/vendored/types.d.ts.map +1 -0
  726. package/build/types/integrations/tracing/{tedious.d.ts → tedious/index.d.ts} +5 -3
  727. package/build/types/integrations/tracing/tedious/index.d.ts.map +1 -0
  728. package/build/types/integrations/tracing/tedious/vendored/instrumentation.d.ts +11 -0
  729. package/build/types/integrations/tracing/tedious/vendored/instrumentation.d.ts.map +1 -0
  730. package/build/types/integrations/tracing/tedious/vendored/semconv.d.ts +19 -0
  731. package/build/types/integrations/tracing/tedious/vendored/semconv.d.ts.map +1 -0
  732. package/build/types/integrations/tracing/tedious/vendored/tedious-types.d.ts +21 -0
  733. package/build/types/integrations/tracing/tedious/vendored/tedious-types.d.ts.map +1 -0
  734. package/build/types/integrations/tracing/tedious/vendored/utils.d.ts +9 -0
  735. package/build/types/integrations/tracing/tedious/vendored/utils.d.ts.map +1 -0
  736. package/build/types/integrations/tracing/vercelai/constants.d.ts +1 -1
  737. package/build/types/integrations/tracing/vercelai/constants.d.ts.map +1 -1
  738. package/build/types/integrations/tracing/vercelai/index.d.ts +3 -2
  739. package/build/types/integrations/tracing/vercelai/index.d.ts.map +1 -1
  740. package/build/types/integrations/tracing/vercelai/instrumentation.d.ts +2 -2
  741. package/build/types/integrations/tracing/vercelai/instrumentation.d.ts.map +1 -1
  742. package/build/types/integrations/tracing/vercelai/types.d.ts +11 -4
  743. package/build/types/integrations/tracing/vercelai/types.d.ts.map +1 -1
  744. package/build/types/sdk/diagnosticsChannelInjection.d.ts +41 -0
  745. package/build/types/sdk/diagnosticsChannelInjection.d.ts.map +1 -0
  746. package/build/types/sdk/experimentalUseDiagnosticsChannelInjection.d.ts +37 -0
  747. package/build/types/sdk/experimentalUseDiagnosticsChannelInjection.d.ts.map +1 -0
  748. package/build/types/sdk/index.d.ts +18 -0
  749. package/build/types/sdk/index.d.ts.map +1 -1
  750. package/build/types/sdk/initOtel.d.ts +2 -3
  751. package/build/types/sdk/initOtel.d.ts.map +1 -1
  752. package/build/types/utils/redisCache.d.ts +1 -1
  753. package/build/types/utils/redisCache.d.ts.map +1 -1
  754. package/build/types/utils/setHttpServerSpanRouteAttribute.d.ts +9 -0
  755. package/build/types/utils/setHttpServerSpanRouteAttribute.d.ts.map +1 -0
  756. package/build/types-ts3.8/index.d.ts +6 -4
  757. package/build/types-ts3.8/integrations/featureFlagShims/launchDarkly.d.ts +3 -1
  758. package/build/types-ts3.8/integrations/featureFlagShims/openFeature.d.ts +3 -1
  759. package/build/types-ts3.8/integrations/featureFlagShims/statsig.d.ts +3 -1
  760. package/build/types-ts3.8/integrations/featureFlagShims/unleash.d.ts +3 -1
  761. package/build/types-ts3.8/integrations/fs/index.d.ts +14 -0
  762. package/build/types-ts3.8/integrations/fs/vendored/constants.d.ts +5 -0
  763. package/build/types-ts3.8/integrations/fs/vendored/instrumentation.d.ts +3 -0
  764. package/build/types-ts3.8/integrations/fs/vendored/types.d.ts +23 -0
  765. package/build/types-ts3.8/integrations/fs/vendored/utils.d.ts +15 -0
  766. package/build/types-ts3.8/integrations/http.d.ts +12 -17
  767. package/build/types-ts3.8/integrations/node-fetch.d.ts +8 -35
  768. package/build/types-ts3.8/integrations/tracing/InstrumentationNodeModuleFile.d.ts +9 -0
  769. package/build/types-ts3.8/integrations/tracing/{amqplib.d.ts → amqplib/index.d.ts} +5 -3
  770. package/build/types-ts3.8/integrations/tracing/amqplib/vendored/amqplib-types.d.ts +44 -0
  771. package/build/types-ts3.8/integrations/tracing/amqplib/vendored/instrumentation.d.ts +11 -0
  772. package/build/types-ts3.8/integrations/tracing/amqplib/vendored/patches.d.ts +11 -0
  773. package/build/types-ts3.8/integrations/tracing/amqplib/vendored/semconv.d.ts +23 -0
  774. package/build/types-ts3.8/integrations/tracing/amqplib/vendored/types.d.ts +49 -0
  775. package/build/types-ts3.8/integrations/tracing/amqplib/vendored/utils.d.ts +42 -0
  776. package/build/types-ts3.8/integrations/tracing/anthropic-ai/index.d.ts +11 -8
  777. package/build/types-ts3.8/integrations/tracing/{connect.d.ts → connect/index.d.ts} +5 -3
  778. package/build/types-ts3.8/integrations/tracing/connect/vendored/enums/AttributeNames.d.ts +9 -0
  779. package/build/types-ts3.8/integrations/tracing/connect/vendored/instrumentation.d.ts +18 -0
  780. package/build/types-ts3.8/integrations/tracing/connect/vendored/internal-types.d.ts +36 -0
  781. package/build/types-ts3.8/integrations/tracing/connect/vendored/utils.d.ts +5 -0
  782. package/build/types-ts3.8/integrations/tracing/{dataloader.d.ts → dataloader/index.d.ts} +5 -3
  783. package/build/types-ts3.8/integrations/tracing/dataloader/vendored/instrumentation.d.ts +18 -0
  784. package/build/types-ts3.8/integrations/tracing/dataloader/vendored/types.d.ts +22 -0
  785. package/build/types-ts3.8/integrations/tracing/express.d.ts +3 -1
  786. package/build/types-ts3.8/integrations/tracing/fastify/index.d.ts +6 -6
  787. package/build/types-ts3.8/integrations/tracing/firebase/firebase.d.ts +3 -1
  788. package/build/types-ts3.8/integrations/tracing/firebase/otel/firebaseInstrumentation.d.ts +4 -9
  789. package/build/types-ts3.8/integrations/tracing/firebase/otel/patches/firestore.d.ts +2 -5
  790. package/build/types-ts3.8/integrations/tracing/firebase/otel/patches/functions.d.ts +3 -8
  791. package/build/types-ts3.8/integrations/tracing/firebase/otel/types.d.ts +0 -20
  792. package/build/types-ts3.8/integrations/tracing/{genericPool.d.ts → genericPool/index.d.ts} +5 -3
  793. package/build/types-ts3.8/integrations/tracing/genericPool/vendored/generic-pool-types.d.ts +5 -0
  794. package/build/types-ts3.8/integrations/tracing/genericPool/vendored/instrumentation.d.ts +11 -0
  795. package/build/types-ts3.8/integrations/tracing/google-genai/index.d.ts +11 -8
  796. package/build/types-ts3.8/integrations/tracing/{graphql.d.ts → graphql/index.d.ts} +5 -3
  797. package/build/types-ts3.8/integrations/tracing/graphql/vendored/enum.d.ts +38 -0
  798. package/build/types-ts3.8/integrations/tracing/graphql/vendored/enums/AttributeNames.d.ts +10 -0
  799. package/build/types-ts3.8/integrations/tracing/graphql/vendored/graphql-types.d.ts +2 -0
  800. package/build/types-ts3.8/integrations/tracing/graphql/vendored/instrumentation.d.ts +25 -0
  801. package/build/types-ts3.8/integrations/tracing/graphql/vendored/internal-types.d.ts +63 -0
  802. package/build/types-ts3.8/integrations/tracing/graphql/vendored/symbols.d.ts +3 -0
  803. package/build/types-ts3.8/integrations/tracing/graphql/vendored/types.d.ts +33 -0
  804. package/build/types-ts3.8/integrations/tracing/graphql/vendored/utils.d.ts +14 -0
  805. package/build/types-ts3.8/integrations/tracing/hapi/index.d.ts +4 -2
  806. package/build/types-ts3.8/integrations/tracing/hapi/vendored/enums/AttributeNames.d.ts +6 -0
  807. package/build/types-ts3.8/integrations/tracing/hapi/vendored/hapi-types.d.ts +70 -0
  808. package/build/types-ts3.8/integrations/tracing/hapi/vendored/instrumentation.d.ts +72 -0
  809. package/build/types-ts3.8/integrations/tracing/hapi/vendored/internal-types.d.ts +32 -0
  810. package/build/types-ts3.8/integrations/tracing/hapi/vendored/utils.d.ts +18 -0
  811. package/build/types-ts3.8/integrations/tracing/hono/index.d.ts +9 -1
  812. package/build/types-ts3.8/integrations/tracing/{kafka.d.ts → kafka/index.d.ts} +5 -3
  813. package/build/types-ts3.8/integrations/tracing/kafka/vendored/instrumentation.d.ts +15 -0
  814. package/build/types-ts3.8/integrations/tracing/kafka/vendored/kafkajs-types.d.ts +79 -0
  815. package/build/types-ts3.8/integrations/tracing/kafka/vendored/semconv.d.ts +54 -0
  816. package/build/types-ts3.8/integrations/tracing/kafka/vendored/utils.d.ts +29 -0
  817. package/build/types-ts3.8/integrations/tracing/{knex.d.ts → knex/index.d.ts} +5 -3
  818. package/build/types-ts3.8/integrations/tracing/knex/vendored/instrumentation.d.ts +12 -0
  819. package/build/types-ts3.8/integrations/tracing/knex/vendored/semconv.d.ts +7 -0
  820. package/build/types-ts3.8/integrations/tracing/knex/vendored/utils.d.ts +9 -0
  821. package/build/types-ts3.8/integrations/tracing/{koa.d.ts → koa/index.d.ts} +5 -3
  822. package/build/types-ts3.8/integrations/tracing/koa/vendored/enums/AttributeNames.d.ts +5 -0
  823. package/build/types-ts3.8/integrations/tracing/koa/vendored/instrumentation.d.ts +32 -0
  824. package/build/types-ts3.8/integrations/tracing/koa/vendored/internal-types.d.ts +34 -0
  825. package/build/types-ts3.8/integrations/tracing/koa/vendored/types.d.ts +13 -0
  826. package/build/types-ts3.8/integrations/tracing/koa/vendored/utils.d.ts +15 -0
  827. package/build/types-ts3.8/integrations/tracing/langchain/index.d.ts +12 -9
  828. package/build/types-ts3.8/integrations/tracing/langgraph/index.d.ts +11 -8
  829. package/build/types-ts3.8/integrations/tracing/langgraph/instrumentation.d.ts +1 -1
  830. package/build/types-ts3.8/integrations/tracing/{lrumemoizer.d.ts → lrumemoizer/index.d.ts} +5 -3
  831. package/build/types-ts3.8/integrations/tracing/lrumemoizer/vendored/instrumentation.d.ts +6 -0
  832. package/build/{types/integrations/tracing/mongo.d.ts → types-ts3.8/integrations/tracing/mongo/index.d.ts} +22 -24
  833. package/build/types-ts3.8/integrations/tracing/mongo/vendored/instrumentation.d.ts +11 -0
  834. package/build/types-ts3.8/integrations/tracing/mongo/vendored/internal-types.d.ts +62 -0
  835. package/build/types-ts3.8/integrations/tracing/mongo/vendored/patches.d.ts +15 -0
  836. package/build/types-ts3.8/integrations/tracing/mongo/vendored/utils.d.ts +15 -0
  837. package/build/types-ts3.8/integrations/tracing/{mongoose.d.ts → mongoose/index.d.ts} +5 -3
  838. package/build/types-ts3.8/integrations/tracing/mongoose/vendored/mongoose-types.d.ts +33 -0
  839. package/build/types-ts3.8/integrations/tracing/mongoose/vendored/mongoose.d.ts +18 -0
  840. package/build/types-ts3.8/integrations/tracing/mongoose/vendored/utils.d.ts +4 -0
  841. package/build/types-ts3.8/integrations/tracing/{mysql.d.ts → mysql/index.d.ts} +5 -3
  842. package/build/types-ts3.8/integrations/tracing/mysql/vendored/instrumentation.d.ts +14 -0
  843. package/build/types-ts3.8/integrations/tracing/mysql/vendored/mysql-types.d.ts +78 -0
  844. package/build/types-ts3.8/integrations/tracing/mysql/vendored/semconv.d.ts +19 -0
  845. package/build/types-ts3.8/integrations/tracing/mysql/vendored/utils.d.ts +22 -0
  846. package/build/types-ts3.8/integrations/tracing/{mysql2.d.ts → mysql2/index.d.ts} +5 -3
  847. package/build/types-ts3.8/integrations/tracing/mysql2/vendored/instrumentation.d.ts +9 -0
  848. package/build/types-ts3.8/integrations/tracing/mysql2/vendored/mysql2-types.d.ts +39 -0
  849. package/build/types-ts3.8/integrations/tracing/mysql2/vendored/semconv.d.ts +3 -0
  850. package/build/types-ts3.8/integrations/tracing/mysql2/vendored/utils.d.ts +25 -0
  851. package/build/types-ts3.8/integrations/tracing/openai/index.d.ts +11 -8
  852. package/build/types-ts3.8/integrations/tracing/{postgres.d.ts → postgres/index.d.ts} +5 -3
  853. package/build/types-ts3.8/integrations/tracing/postgres/vendored/enums/AttributeNames.d.ts +6 -0
  854. package/build/types-ts3.8/integrations/tracing/postgres/vendored/enums/SpanNames.d.ts +6 -0
  855. package/build/types-ts3.8/integrations/tracing/postgres/vendored/instrumentation.d.ts +12 -0
  856. package/build/types-ts3.8/integrations/tracing/postgres/vendored/internal-types.d.ts +33 -0
  857. package/build/types-ts3.8/integrations/tracing/postgres/vendored/pg-pool-types.d.ts +20 -0
  858. package/build/types-ts3.8/integrations/tracing/postgres/vendored/pg-types.d.ts +54 -0
  859. package/build/types-ts3.8/integrations/tracing/postgres/vendored/semconv.d.ts +13 -0
  860. package/build/types-ts3.8/integrations/tracing/postgres/vendored/types.d.ts +11 -0
  861. package/build/types-ts3.8/integrations/tracing/postgres/vendored/utils.d.ts +56 -0
  862. package/build/types-ts3.8/integrations/tracing/postgresjs.d.ts +3 -1
  863. package/build/types-ts3.8/integrations/tracing/redis/cache.d.ts +22 -0
  864. package/build/types-ts3.8/integrations/tracing/redis/index.d.ts +28 -0
  865. package/build/types-ts3.8/integrations/tracing/redis/vendored/ioredis-instrumentation.d.ts +10 -0
  866. package/build/types-ts3.8/integrations/tracing/redis/vendored/redis-instrumentation.d.ts +16 -0
  867. package/build/types-ts3.8/integrations/tracing/redis/vendored/semconv.d.ts +4 -0
  868. package/build/types-ts3.8/integrations/tracing/redis/vendored/types.d.ts +24 -0
  869. package/build/types-ts3.8/integrations/tracing/{tedious.d.ts → tedious/index.d.ts} +5 -3
  870. package/build/types-ts3.8/integrations/tracing/tedious/vendored/instrumentation.d.ts +11 -0
  871. package/build/types-ts3.8/integrations/tracing/tedious/vendored/semconv.d.ts +19 -0
  872. package/build/types-ts3.8/integrations/tracing/tedious/vendored/tedious-types.d.ts +21 -0
  873. package/build/types-ts3.8/integrations/tracing/tedious/vendored/utils.d.ts +9 -0
  874. package/build/types-ts3.8/integrations/tracing/vercelai/constants.d.ts +1 -1
  875. package/build/types-ts3.8/integrations/tracing/vercelai/index.d.ts +3 -2
  876. package/build/types-ts3.8/integrations/tracing/vercelai/instrumentation.d.ts +2 -2
  877. package/build/types-ts3.8/integrations/tracing/vercelai/types.d.ts +11 -4
  878. package/build/types-ts3.8/sdk/diagnosticsChannelInjection.d.ts +41 -0
  879. package/build/types-ts3.8/sdk/experimentalUseDiagnosticsChannelInjection.d.ts +37 -0
  880. package/build/types-ts3.8/sdk/index.d.ts +18 -0
  881. package/build/types-ts3.8/sdk/initOtel.d.ts +3 -4
  882. package/build/types-ts3.8/utils/redisCache.d.ts +1 -1
  883. package/build/types-ts3.8/utils/setHttpServerSpanRouteAttribute.d.ts +9 -0
  884. package/changes.json +13 -9
  885. package/package.json +37 -44
  886. package/build/cjs/integrations/fs.js +0 -142
  887. package/build/cjs/integrations/fs.js.map +0 -1
  888. package/build/cjs/integrations/tracing/amqplib.js +0 -47
  889. package/build/cjs/integrations/tracing/amqplib.js.map +0 -1
  890. package/build/cjs/integrations/tracing/connect.js +0 -110
  891. package/build/cjs/integrations/tracing/connect.js.map +0 -1
  892. package/build/cjs/integrations/tracing/dataloader.js +0 -72
  893. package/build/cjs/integrations/tracing/dataloader.js.map +0 -1
  894. package/build/cjs/integrations/tracing/genericPool.js +0 -59
  895. package/build/cjs/integrations/tracing/genericPool.js.map +0 -1
  896. package/build/cjs/integrations/tracing/graphql.js +0 -127
  897. package/build/cjs/integrations/tracing/graphql.js.map +0 -1
  898. package/build/cjs/integrations/tracing/kafka.js +0 -48
  899. package/build/cjs/integrations/tracing/kafka.js.map +0 -1
  900. package/build/cjs/integrations/tracing/knex.js +0 -57
  901. package/build/cjs/integrations/tracing/knex.js.map +0 -1
  902. package/build/cjs/integrations/tracing/koa.js +0 -138
  903. package/build/cjs/integrations/tracing/koa.js.map +0 -1
  904. package/build/cjs/integrations/tracing/lrumemoizer.js +0 -37
  905. package/build/cjs/integrations/tracing/lrumemoizer.js.map +0 -1
  906. package/build/cjs/integrations/tracing/mongo.js +0 -93
  907. package/build/cjs/integrations/tracing/mongo.js.map +0 -1
  908. package/build/cjs/integrations/tracing/mongoose.js +0 -46
  909. package/build/cjs/integrations/tracing/mongoose.js.map +0 -1
  910. package/build/cjs/integrations/tracing/mysql.js +0 -38
  911. package/build/cjs/integrations/tracing/mysql.js.map +0 -1
  912. package/build/cjs/integrations/tracing/mysql2.js +0 -46
  913. package/build/cjs/integrations/tracing/mysql2.js.map +0 -1
  914. package/build/cjs/integrations/tracing/postgres.js +0 -48
  915. package/build/cjs/integrations/tracing/postgres.js.map +0 -1
  916. package/build/cjs/integrations/tracing/prisma.js +0 -203
  917. package/build/cjs/integrations/tracing/prisma.js.map +0 -1
  918. package/build/cjs/integrations/tracing/redis.js +0 -121
  919. package/build/cjs/integrations/tracing/redis.js.map +0 -1
  920. package/build/cjs/integrations/tracing/tedious.js +0 -67
  921. package/build/cjs/integrations/tracing/tedious.js.map +0 -1
  922. package/build/esm/integrations/fs.js +0 -140
  923. package/build/esm/integrations/fs.js.map +0 -1
  924. package/build/esm/integrations/tracing/amqplib.js +0 -44
  925. package/build/esm/integrations/tracing/amqplib.js.map +0 -1
  926. package/build/esm/integrations/tracing/connect.js +0 -106
  927. package/build/esm/integrations/tracing/connect.js.map +0 -1
  928. package/build/esm/integrations/tracing/dataloader.js +0 -69
  929. package/build/esm/integrations/tracing/dataloader.js.map +0 -1
  930. package/build/esm/integrations/tracing/genericPool.js +0 -56
  931. package/build/esm/integrations/tracing/genericPool.js.map +0 -1
  932. package/build/esm/integrations/tracing/graphql.js +0 -124
  933. package/build/esm/integrations/tracing/graphql.js.map +0 -1
  934. package/build/esm/integrations/tracing/kafka.js +0 -45
  935. package/build/esm/integrations/tracing/kafka.js.map +0 -1
  936. package/build/esm/integrations/tracing/knex.js +0 -54
  937. package/build/esm/integrations/tracing/knex.js.map +0 -1
  938. package/build/esm/integrations/tracing/koa.js +0 -134
  939. package/build/esm/integrations/tracing/koa.js.map +0 -1
  940. package/build/esm/integrations/tracing/lrumemoizer.js +0 -34
  941. package/build/esm/integrations/tracing/lrumemoizer.js.map +0 -1
  942. package/build/esm/integrations/tracing/mongo.js +0 -89
  943. package/build/esm/integrations/tracing/mongo.js.map +0 -1
  944. package/build/esm/integrations/tracing/mongoose.js +0 -43
  945. package/build/esm/integrations/tracing/mongoose.js.map +0 -1
  946. package/build/esm/integrations/tracing/mysql.js +0 -35
  947. package/build/esm/integrations/tracing/mysql.js.map +0 -1
  948. package/build/esm/integrations/tracing/mysql2.js +0 -43
  949. package/build/esm/integrations/tracing/mysql2.js.map +0 -1
  950. package/build/esm/integrations/tracing/postgres.js +0 -45
  951. package/build/esm/integrations/tracing/postgres.js.map +0 -1
  952. package/build/esm/integrations/tracing/prisma.js +0 -200
  953. package/build/esm/integrations/tracing/prisma.js.map +0 -1
  954. package/build/esm/integrations/tracing/redis.js +0 -117
  955. package/build/esm/integrations/tracing/redis.js.map +0 -1
  956. package/build/esm/integrations/tracing/tedious.js +0 -64
  957. package/build/esm/integrations/tracing/tedious.js.map +0 -1
  958. package/build/types/integrations/fs.d.ts +0 -24
  959. package/build/types/integrations/fs.d.ts.map +0 -1
  960. package/build/types/integrations/tracing/amqplib.d.ts.map +0 -1
  961. package/build/types/integrations/tracing/connect.d.ts.map +0 -1
  962. package/build/types/integrations/tracing/dataloader.d.ts.map +0 -1
  963. package/build/types/integrations/tracing/genericPool.d.ts.map +0 -1
  964. package/build/types/integrations/tracing/graphql.d.ts.map +0 -1
  965. package/build/types/integrations/tracing/kafka.d.ts.map +0 -1
  966. package/build/types/integrations/tracing/knex.d.ts.map +0 -1
  967. package/build/types/integrations/tracing/koa.d.ts.map +0 -1
  968. package/build/types/integrations/tracing/lrumemoizer.d.ts.map +0 -1
  969. package/build/types/integrations/tracing/mongo.d.ts.map +0 -1
  970. package/build/types/integrations/tracing/mongoose.d.ts.map +0 -1
  971. package/build/types/integrations/tracing/mysql.d.ts.map +0 -1
  972. package/build/types/integrations/tracing/mysql2.d.ts.map +0 -1
  973. package/build/types/integrations/tracing/postgres.d.ts.map +0 -1
  974. package/build/types/integrations/tracing/prisma/vendor/v5-tracing-helper.d.ts +0 -38
  975. package/build/types/integrations/tracing/prisma/vendor/v5-tracing-helper.d.ts.map +0 -1
  976. package/build/types/integrations/tracing/prisma/vendor/v6-tracing-helper.d.ts +0 -31
  977. package/build/types/integrations/tracing/prisma/vendor/v6-tracing-helper.d.ts.map +0 -1
  978. package/build/types/integrations/tracing/prisma.d.ts +0 -50
  979. package/build/types/integrations/tracing/prisma.d.ts.map +0 -1
  980. package/build/types/integrations/tracing/redis.d.ts +0 -41
  981. package/build/types/integrations/tracing/redis.d.ts.map +0 -1
  982. package/build/types/integrations/tracing/tedious.d.ts.map +0 -1
  983. package/build/types-ts3.8/integrations/fs.d.ts +0 -24
  984. package/build/types-ts3.8/integrations/tracing/prisma/vendor/v5-tracing-helper.d.ts +0 -44
  985. package/build/types-ts3.8/integrations/tracing/prisma/vendor/v6-tracing-helper.d.ts +0 -34
  986. package/build/types-ts3.8/integrations/tracing/prisma.d.ts +0 -50
  987. package/build/types-ts3.8/integrations/tracing/redis.d.ts +0 -41
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instrumentation.js","sources":["../../../../../src/integrations/fs/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-fs\n * - Upstream version: @opentelemetry/instrumentation-fs@0.37.0\n * - Minor TypeScript strictness adjustments for this repository's compiler settings\n * - The OpenTelemetry tracer APIs were replaced with Sentry's `startSpan`/`startInactiveSpan`/`suppressTracing`\n * and the configurable `createHook`/`endHook`/`requireParentSpan` options were removed in favor of inlined,\n * Sentry-specific span attributes.\n * - Completely reworked to no longer reference OpenTelemetry.\n */\n\nimport type { Span, SpanAttributes } from '@sentry/core';\nimport {\n SEMANTIC_ATTRIBUTE_SENTRY_OP,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SPAN_STATUS_ERROR,\n getActiveSpan,\n startInactiveSpan,\n startSpan,\n suppressTracing,\n withActiveSpan,\n} from '@sentry/core';\nimport * as fs from 'fs';\nimport { promisify } from 'util';\nimport { CALLBACK_FUNCTIONS, PROMISE_FUNCTIONS, SYNC_FUNCTIONS } from './constants';\nimport type { FMember, FPMember, FsInstrumentationConfig, GenericFunction } from './types';\nimport { indexFs } from './utils';\n\nconst SPAN_ORIGIN = 'auto.file.fs';\nconst SPAN_OP = 'file';\n\n// The following lists categorize `fs` functions by the shape of their leading path arguments, so we can\n// record meaningful span attributes for them. These are Sentry-specific additions (not part of upstream).\nconst FS_OPERATIONS_WITH_OLD_PATH_NEW_PATH = ['rename', 'renameSync'];\nconst FS_OPERATIONS_WITH_SRC_DEST = ['copyFile', 'cp', 'copyFileSync', 'cpSync'];\nconst FS_OPERATIONS_WITH_EXISTING_PATH_NEW_PATH = ['link', 'linkSync'];\nconst FS_OPERATIONS_WITH_PREFIX = ['mkdtemp', 'mkdtempSync'];\nconst FS_OPERATIONS_WITH_TARGET_PATH = ['symlink', 'symlinkSync'];\nconst FS_OPERATIONS_WITH_PATH_ARG = [\n 'access',\n 'appendFile',\n 'chmod',\n 'chown',\n 'exists',\n 'mkdir',\n 'lchown',\n 'lstat',\n 'lutimes',\n 'open',\n 'opendir',\n 'readdir',\n 'readFile',\n 'readlink',\n 'realpath',\n 'realpath.native',\n 'rm',\n 'rmdir',\n 'stat',\n 'truncate',\n 'unlink',\n 'utimes',\n 'writeFile',\n 'accessSync',\n 'appendFileSync',\n 'chmodSync',\n 'chownSync',\n 'existsSync',\n 'lchownSync',\n 'lstatSync',\n 'lutimesSync',\n 'opendirSync',\n 'mkdirSync',\n 'openSync',\n 'readdirSync',\n 'readFileSync',\n 'readlinkSync',\n 'realpathSync',\n 'realpathSync.native',\n 'rmdirSync',\n 'rmSync',\n 'statSync',\n 'truncateSync',\n 'unlinkSync',\n 'utimesSync',\n 'writeFileSync',\n];\n\n/**\n * Builds the span attributes for a given `fs` operation, optionally including the file path arguments.\n */\nfunction getSpanAttributes(\n functionName: FMember | FPMember,\n args: ArrayLike<unknown>,\n config: FsInstrumentationConfig,\n): SpanAttributes {\n const attributes: SpanAttributes = {\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: SPAN_OP,\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: SPAN_ORIGIN,\n };\n\n if (!config.recordFilePaths) {\n return attributes;\n }\n\n if (typeof args[0] === 'string' && FS_OPERATIONS_WITH_PATH_ARG.includes(functionName)) {\n attributes['path_argument'] = args[0];\n } else if (typeof args[0] === 'string' && typeof args[1] === 'string') {\n if (FS_OPERATIONS_WITH_TARGET_PATH.includes(functionName)) {\n attributes['target_argument'] = args[0];\n attributes['path_argument'] = args[1];\n } else if (FS_OPERATIONS_WITH_EXISTING_PATH_NEW_PATH.includes(functionName)) {\n attributes['existing_path_argument'] = args[0];\n attributes['new_path_argument'] = args[1];\n } else if (FS_OPERATIONS_WITH_SRC_DEST.includes(functionName)) {\n attributes['src_argument'] = args[0];\n attributes['dest_argument'] = args[1];\n } else if (FS_OPERATIONS_WITH_OLD_PATH_NEW_PATH.includes(functionName)) {\n attributes['old_path_argument'] = args[0];\n attributes['new_path_argument'] = args[1];\n }\n } else if (typeof args[0] === 'string' && FS_OPERATIONS_WITH_PREFIX.includes(functionName)) {\n attributes['prefix_argument'] = args[0];\n }\n\n return attributes;\n}\n\n/**\n * This is important for 2-level functions like `realpath.native` to retain the 2nd-level\n * when patching the 1st-level.\n */\nfunction patchedFunctionWithOriginalProperties<T extends GenericFunction>(patchedFunction: T, original: T): T {\n return Object.assign(patchedFunction, original);\n}\n\n// Tracks patched methods to prevent double-patching if `enableFsInstrumentation` is called more than once.\nconst _patched = new WeakMap<Record<string, GenericFunction>, Set<string>>();\n\nfunction _patchMethod(\n obj: Record<string, GenericFunction>,\n name: string,\n wrapper: (original: GenericFunction) => GenericFunction,\n): void {\n const original = obj[name];\n if (typeof original !== 'function') return;\n let patched = _patched.get(obj);\n if (!patched) {\n patched = new Set();\n _patched.set(obj, patched);\n }\n if (patched.has(name)) return;\n patched.add(name);\n obj[name] = wrapper(original);\n}\n\nfunction _patchSyncFunction<T extends GenericFunction>(\n functionName: FMember,\n original: T,\n config: FsInstrumentationConfig,\n): T {\n const patchedFunction = function (this: unknown, ...args: Parameters<T>): ReturnType<T> {\n const attributes = getSpanAttributes(functionName, args, config);\n return startSpan({ name: `fs.${functionName}`, onlyIfParent: true, attributes }, span => {\n try {\n return suppressTracing(() => original.apply(this, args)) as ReturnType<T>;\n } catch (error) {\n recordError(span, error, config);\n throw error;\n }\n });\n };\n return patchedFunctionWithOriginalProperties(patchedFunction as T, original);\n}\n\nfunction _patchCallbackFunction<T extends GenericFunction>(\n functionName: FMember,\n original: T,\n config: FsInstrumentationConfig,\n): T {\n const patchedFunction = function (this: unknown, ...args: Parameters<T>): ReturnType<T> {\n const lastIdx = args.length - 1;\n const cb: unknown = args[lastIdx];\n if (typeof cb !== 'function') {\n return original.apply(this, args) as ReturnType<T>;\n }\n\n const attributes = getSpanAttributes(functionName, args, config);\n const span = startInactiveSpan({ name: `fs.${functionName}`, onlyIfParent: true, attributes });\n const parentSpan = getActiveSpan();\n\n // Wrap the callback to end the span and restore the caller's active span context.\n // fs callbacks fire from Node's I/O event loop where the AsyncLocalStorage context\n // is lost, so any spans created inside the callback would otherwise have no parent.\n args[lastIdx] = function (this: unknown, ...cbArgs: unknown[]) {\n const error = cbArgs[0];\n if (error) {\n recordError(span, error, config);\n }\n span.end();\n if (parentSpan) {\n return withActiveSpan(parentSpan, () => (cb as GenericFunction).apply(this, cbArgs));\n }\n return (cb as GenericFunction).apply(this, cbArgs);\n };\n\n try {\n return suppressTracing(() => original.apply(this, args)) as ReturnType<T>;\n } catch (error) {\n recordError(span, error, config);\n span.end();\n throw error;\n }\n };\n return patchedFunctionWithOriginalProperties(patchedFunction as T, original);\n}\n\nfunction _patchExistsCallbackFunction<T extends GenericFunction>(original: T, config: FsInstrumentationConfig): T {\n const functionName = 'exists' as FMember;\n const patchedFunction = function (this: unknown, ...args: Parameters<T>): ReturnType<T> {\n const lastIdx = args.length - 1;\n const cb: unknown = args[lastIdx];\n if (typeof cb !== 'function') {\n return original.apply(this, args) as ReturnType<T>;\n }\n\n const attributes = getSpanAttributes(functionName, args, config);\n const span = startInactiveSpan({ name: `fs.${functionName}`, onlyIfParent: true, attributes });\n const parentSpan = getActiveSpan();\n\n // `exists` never calls the callback with an error\n args[lastIdx] = function (this: unknown, ...cbArgs: unknown[]) {\n span.end();\n if (parentSpan) {\n return withActiveSpan(parentSpan, () => (cb as GenericFunction).apply(this, cbArgs));\n }\n return (cb as GenericFunction).apply(this, cbArgs);\n };\n\n try {\n return suppressTracing(() => original.apply(this, args)) as ReturnType<T>;\n } catch (error) {\n recordError(span, error, config);\n span.end();\n throw error;\n }\n };\n const functionWithOriginalProperties = patchedFunctionWithOriginalProperties(patchedFunction as T, original);\n\n // `exists` has a custom promisify function because of the inconsistent signature\n // replicating that on the patched function\n const promisified = function (path: unknown): Promise<unknown> {\n return new Promise(resolve => (functionWithOriginalProperties as GenericFunction)(path, resolve));\n };\n Object.defineProperty(promisified, 'name', { value: functionName });\n Object.defineProperty(functionWithOriginalProperties, promisify.custom, {\n value: promisified,\n });\n\n return functionWithOriginalProperties;\n}\n\nfunction _patchPromiseFunction<T extends GenericFunction>(\n functionName: FPMember,\n original: T,\n config: FsInstrumentationConfig,\n): T {\n const patchedFunction = async function (this: unknown, ...args: Parameters<T>): Promise<unknown> {\n const attributes = getSpanAttributes(functionName, args, config);\n return startSpan({ name: `fs.${functionName}`, onlyIfParent: true, attributes }, async span => {\n try {\n return await suppressTracing(() => original.apply(this, args) as Promise<unknown>);\n } catch (error) {\n recordError(span, error, config);\n throw error;\n }\n });\n };\n return patchedFunctionWithOriginalProperties(patchedFunction as unknown as T, original);\n}\n\nexport function enableFsInstrumentation(config: FsInstrumentationConfig = {}): void {\n for (const fName of SYNC_FUNCTIONS) {\n const { objectToPatch, functionNameToPatch } = indexFs(fs, fName);\n _patchMethod(objectToPatch, functionNameToPatch, original => _patchSyncFunction(fName, original, config));\n }\n\n for (const fName of CALLBACK_FUNCTIONS) {\n const { objectToPatch, functionNameToPatch } = indexFs(fs, fName);\n if (fName === 'exists') {\n _patchMethod(objectToPatch, functionNameToPatch, original => _patchExistsCallbackFunction(original, config));\n } else {\n _patchMethod(objectToPatch, functionNameToPatch, original => _patchCallbackFunction(fName, original, config));\n }\n }\n\n // `fs.promises` and `import { readFile } from 'fs/promises'` share the same object in Node 14+,\n // so patching one covers both.\n const fsPromises = fs.promises as unknown as Record<string, GenericFunction>;\n for (const fName of PROMISE_FUNCTIONS) {\n _patchMethod(fsPromises, fName, original => _patchPromiseFunction(fName, original, config));\n }\n}\n\n/**\n * Sets the error status on the span and, if configured, records the error message as a span attribute.\n */\nfunction recordError(span: Span, error: unknown, config: FsInstrumentationConfig): void {\n span.setStatus({ code: SPAN_STATUS_ERROR, message: 'internal_error' });\n if (config.recordErrorMessagesAsSpanAttributes && error instanceof Error) {\n span.setAttribute('fs_error', error.message);\n }\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ function splitTwoLevels(functionName) {
2
+ const memberParts = functionName.split(".");
3
+ if (memberParts.length > 1) {
4
+ if (memberParts.length !== 2) throw Error(`Invalid member function name ${functionName}`);
5
+ return memberParts;
6
+ } else {
7
+ return [functionName];
8
+ }
9
+ }
10
+ function indexFs(fs, member) {
11
+ if (!member) throw new Error(JSON.stringify({ member }));
12
+ const splitResult = splitTwoLevels(member);
13
+ const [functionName1, functionName2] = splitResult;
14
+ if (functionName2) {
15
+ return {
16
+ objectToPatch: fs[functionName1],
17
+ functionNameToPatch: functionName2
18
+ };
19
+ } else {
20
+ return {
21
+ objectToPatch: fs,
22
+ functionNameToPatch: functionName1
23
+ };
24
+ }
25
+ }
26
+
27
+ export { indexFs, splitTwoLevels };
28
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sources":["../../../../../src/integrations/fs/vendored/utils.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n *\n * NOTICE from the Sentry authors:\n * - Vendored from: https://github.com/open-telemetry/opentelemetry-js-contrib/tree/15ef7506553f631ea4181391e0c5725a56f0d082/packages/instrumentation-fs\n * - Upstream version: @opentelemetry/instrumentation-fs@0.37.0\n */\n\nimport type * as fs from 'fs';\nimport type { FMember, FunctionPropertyNames, GenericFunction } from './types';\n\ntype FS = typeof fs;\n\nexport function splitTwoLevels<FSObject>(\n functionName: FMember,\n): [FunctionPropertyNames<FSObject> & string] | [FunctionPropertyNames<FSObject> & string, string] {\n const memberParts = functionName.split('.');\n if (memberParts.length > 1) {\n if (memberParts.length !== 2) throw Error(`Invalid member function name ${functionName}`);\n return memberParts as [FunctionPropertyNames<FSObject> & string, string];\n } else {\n return [functionName as FunctionPropertyNames<FSObject> & string];\n }\n}\n\nexport function indexFs<FSObject extends FS | FS['promises']>(\n fs: FSObject,\n member: FMember,\n): { objectToPatch: Record<string, GenericFunction>; functionNameToPatch: string } {\n if (!member) throw new Error(JSON.stringify({ member }));\n const splitResult = splitTwoLevels<FSObject>(member);\n const [functionName1, functionName2] = splitResult;\n if (functionName2) {\n return {\n objectToPatch: fs[functionName1] as Record<string, GenericFunction>,\n functionNameToPatch: functionName2,\n };\n } else {\n return {\n objectToPatch: fs as unknown as Record<string, GenericFunction>,\n functionNameToPatch: functionName1,\n };\n }\n}\n"],"names":[],"mappings":"AAcO,SAAS,eACd,YAAA,EACiG;AACjG,EAAA,MAAM,WAAA,GAAc,YAAA,CAAa,KAAA,CAAM,GAAG,CAAA;AAC1C,EAAA,IAAI,WAAA,CAAY,SAAS,CAAA,EAAG;AAC1B,IAAA,IAAI,YAAY,MAAA,KAAW,CAAA,QAAS,KAAA,CAAM,CAAA,6BAAA,EAAgC,YAAY,CAAA,CAAE,CAAA;AACxF,IAAA,OAAO,WAAA;AAAA,EACT,CAAA,MAAO;AACL,IAAA,OAAO,CAAC,YAAwD,CAAA;AAAA,EAClE;AACF;AAEO,SAAS,OAAA,CACd,IACA,MAAA,EACiF;AACjF,EAAA,IAAI,CAAC,MAAA,EAAQ,MAAM,IAAI,KAAA,CAAM,KAAK,SAAA,CAAU,EAAE,MAAA,EAAQ,CAAC,CAAA;AACvD,EAAA,MAAM,WAAA,GAAc,eAAyB,MAAM,CAAA;AACnD,EAAA,MAAM,CAAC,aAAA,EAAe,aAAa,CAAA,GAAI,WAAA;AACvC,EAAA,IAAI,aAAA,EAAe;AACjB,IAAA,OAAO;AAAA,MACL,aAAA,EAAe,GAAG,aAAa,CAAA;AAAA,MAC/B,mBAAA,EAAqB;AAAA,KACvB;AAAA,EACF,CAAA,MAAO;AACL,IAAA,OAAO;AAAA,MACL,aAAA,EAAe,EAAA;AAAA,MACf,mBAAA,EAAqB;AAAA,KACvB;AAAA,EACF;AACF;;;;"}
@@ -1,219 +1,65 @@
1
- import { diag } from '@opentelemetry/api';
2
- import { HttpInstrumentation } from '@opentelemetry/instrumentation-http';
3
- import { defineIntegration, getClient, hasSpansEnabled, stripDataUrlContent, SEMANTIC_ATTRIBUTE_URL_FULL } from '@sentry/core';
4
- import { NODE_VERSION, generateInstrumentOnce, SentryHttpInstrumentation, httpServerIntegration, httpServerSpansIntegration, getRequestUrl, addOriginToSpan } from '@sentry/node-core';
1
+ import { defineIntegration, hasSpansEnabled, getRequestUrlFromClientRequest, stripDataUrlContent, SEMANTIC_ATTRIBUTE_URL_FULL } from '@sentry/core';
2
+ import { instrumentHttpOutgoingRequests, httpServerIntegration, httpServerSpansIntegration } from '@sentry/node-core';
5
3
 
6
- const INTEGRATION_NAME = 'Http';
7
-
8
- const INSTRUMENTATION_NAME = '@opentelemetry_sentry-patched/instrumentation-http';
9
-
10
- // The `http.client.request.created` diagnostics channel, needed for trace propagation,
11
- // was added in Node 22.12.0 (backported from 23.2.0). Earlier 22.x versions don't have it.
12
- const FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL =
13
- (NODE_VERSION.major === 22 && NODE_VERSION.minor >= 12) ||
14
- (NODE_VERSION.major === 23 && NODE_VERSION.minor >= 2) ||
15
- NODE_VERSION.major >= 24;
16
-
17
- const instrumentSentryHttp = generateInstrumentOnce(
18
- `${INTEGRATION_NAME}.sentry`,
19
- options => {
20
- return new SentryHttpInstrumentation(options);
21
- },
22
- );
23
-
24
- const instrumentOtelHttp = generateInstrumentOnce(INTEGRATION_NAME, config => {
25
- const instrumentation = new HttpInstrumentation({
26
- ...config,
27
- // This is hard-coded and can never be overridden by the user
28
- disableIncomingRequestInstrumentation: true,
29
- });
30
-
31
- // We want to update the logger namespace so we can better identify what is happening here
32
- try {
33
- instrumentation['_diag'] = diag.createComponentLogger({
34
- namespace: INSTRUMENTATION_NAME,
35
- });
36
- // @ts-expect-error We are writing a read-only property here...
37
- instrumentation.instrumentationName = INSTRUMENTATION_NAME;
38
- } catch {
39
- // ignore errors here...
40
- }
41
-
42
- // The OTel HttpInstrumentation (>=0.213.0) has a guard (`_httpPatched`/`_httpsPatched`)
43
- // that prevents patching `http`/`https` when loaded by both CJS `require()` and ESM `import`.
44
- // In environments like AWS Lambda, the runtime loads `http` via CJS first (for the Runtime API),
45
- // and then the user's ESM handler imports `node:http`. The guard blocks ESM patching after CJS,
46
- // which breaks HTTP spans for ESM handlers. We disable this guard to allow both to be patched.
47
- // TODO(andrei): Remove once https://github.com/open-telemetry/opentelemetry-js/issues/6489 is fixed.
48
- try {
49
- const noopDescriptor = { get: () => false, set: () => {} };
50
- Object.defineProperty(instrumentation, '_httpPatched', noopDescriptor);
51
- Object.defineProperty(instrumentation, '_httpsPatched', noopDescriptor);
52
- } catch {
53
- // ignore errors here...
54
- }
55
-
56
- return instrumentation;
4
+ const INTEGRATION_NAME = "Http";
5
+ const instrumentSentryHttp = Object.assign(instrumentHttpOutgoingRequests, {
6
+ id: `${INTEGRATION_NAME}.sentry`
57
7
  });
58
-
59
- /** Exported only for tests. */
60
- function _shouldUseOtelHttpInstrumentation(
61
- options,
62
- clientOptions = {},
63
- ) {
64
- // If `spans` is passed in, it takes precedence
65
- // Else, we by default emit spans, unless `skipOpenTelemetrySetup` is set to `true` or spans are not enabled
66
- if (typeof options.spans === 'boolean') {
67
- return options.spans;
68
- }
69
-
70
- if (clientOptions.skipOpenTelemetrySetup) {
71
- return false;
72
- }
73
-
74
- // IMPORTANT: We only disable span instrumentation when spans are not enabled _and_ we are on a Node version
75
- // that fully supports the necessary diagnostics channels for trace propagation
76
- if (!hasSpansEnabled(clientOptions) && FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL) {
77
- return false;
78
- }
79
-
80
- return true;
81
- }
82
-
83
- /**
84
- * The http integration instruments Node's internal http and https modules.
85
- * It creates breadcrumbs and spans for outgoing HTTP requests which will be attached to the currently active span.
86
- */
87
8
  const httpIntegration = defineIntegration((options = {}) => {
88
9
  const spans = options.spans ?? true;
89
10
  const disableIncomingRequestSpans = options.disableIncomingRequestSpans;
90
-
11
+ const enableServerSpans = spans && !disableIncomingRequestSpans;
91
12
  const serverOptions = {
92
13
  sessions: options.trackIncomingRequestsAsSessions,
93
14
  sessionFlushingDelayMS: options.sessionFlushingDelayMS,
94
15
  ignoreRequestBody: options.ignoreIncomingRequestBody,
95
- maxRequestBodySize: options.maxIncomingRequestBodySize,
96
- } ;
97
-
16
+ maxRequestBodySize: options.maxIncomingRequestBodySize
17
+ };
98
18
  const serverSpansOptions = {
99
19
  ignoreIncomingRequests: options.ignoreIncomingRequests,
100
20
  ignoreStaticAssets: options.ignoreStaticAssets,
101
21
  ignoreStatusCodes: options.dropSpansForIncomingRequestStatusCodes,
102
22
  instrumentation: options.instrumentation,
103
- onSpanCreated: options.incomingRequestSpanHook,
104
- } ;
105
-
23
+ onSpanCreated: options.incomingRequestSpanHook
24
+ };
106
25
  const server = httpServerIntegration(serverOptions);
107
26
  const serverSpans = httpServerSpansIntegration(serverSpansOptions);
108
-
109
- const enableServerSpans = spans && !disableIncomingRequestSpans;
110
-
111
27
  return {
112
28
  name: INTEGRATION_NAME,
113
29
  setup(client) {
114
30
  const clientOptions = client.getOptions();
115
-
116
31
  if (enableServerSpans && hasSpansEnabled(clientOptions)) {
117
32
  serverSpans.setup(client);
118
33
  }
119
34
  },
120
35
  setupOnce() {
121
- const clientOptions = (getClient()?.getOptions() || {}) ;
122
- const useOtelHttpInstrumentation = _shouldUseOtelHttpInstrumentation(options, clientOptions);
123
-
124
36
  server.setupOnce();
125
-
126
37
  const sentryHttpInstrumentationOptions = {
127
38
  breadcrumbs: options.breadcrumbs,
128
- propagateTraceInOutgoingRequests:
129
- typeof options.tracePropagation === 'boolean'
130
- ? options.tracePropagation
131
- : FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL || !useOtelHttpInstrumentation,
132
- createSpansForOutgoingRequests: FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL,
133
- spans: options.spans,
39
+ spans,
40
+ propagateTraceInOutgoingRequests: options.tracePropagation ?? true,
41
+ createSpansForOutgoingRequests: spans,
134
42
  ignoreOutgoingRequests: options.ignoreOutgoingRequests,
135
43
  outgoingRequestHook: (span, request) => {
136
- // Sanitize data URLs to prevent long base64 strings in span attributes
137
- const url = getRequestUrl(request);
138
- if (url.startsWith('data:')) {
44
+ const url = getRequestUrlFromClientRequest(request);
45
+ if (url.startsWith("data:")) {
139
46
  const sanitizedUrl = stripDataUrlContent(url);
140
- span.setAttribute('http.url', sanitizedUrl);
47
+ span.setAttribute("http.url", sanitizedUrl);
141
48
  span.setAttribute(SEMANTIC_ATTRIBUTE_URL_FULL, sanitizedUrl);
142
- span.updateName(`${request.method || 'GET'} ${sanitizedUrl}`);
49
+ span.updateName(`${request.method || "GET"} ${sanitizedUrl}`);
143
50
  }
144
-
145
51
  options.instrumentation?.requestHook?.(span, request);
146
52
  },
147
53
  outgoingResponseHook: options.instrumentation?.responseHook,
148
- outgoingRequestApplyCustomAttributes: options.instrumentation?.applyCustomAttributesOnSpan,
149
- } ;
150
-
151
- // This is Sentry-specific instrumentation for outgoing request breadcrumbs & trace propagation
152
- instrumentSentryHttp(sentryHttpInstrumentationOptions);
153
-
154
- // This is the "regular" OTEL instrumentation that emits outgoing request spans
155
- if (useOtelHttpInstrumentation) {
156
- const instrumentationConfig = getConfigWithDefaults(options);
157
- instrumentOtelHttp(instrumentationConfig);
158
- }
54
+ outgoingRequestApplyCustomAttributes: options.instrumentation?.applyCustomAttributesOnSpan
55
+ };
56
+ instrumentHttpOutgoingRequests(sentryHttpInstrumentationOptions);
159
57
  },
160
58
  processEvent(event) {
161
- // Note: We always run this, even if spans are disabled
162
- // The reason being that e.g. the remix integration disables span creation here but still wants to use the ignore status codes option
163
59
  return serverSpans.processEvent(event);
164
- },
60
+ }
165
61
  };
166
62
  });
167
63
 
168
- function getConfigWithDefaults(options = {}) {
169
- const instrumentationConfig = {
170
- // This is handled by the SentryHttpInstrumentation on Node 22+
171
- disableOutgoingRequestInstrumentation: FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL,
172
-
173
- ignoreOutgoingRequestHook: request => {
174
- const url = getRequestUrl(request);
175
-
176
- if (!url) {
177
- return false;
178
- }
179
-
180
- const _ignoreOutgoingRequests = options.ignoreOutgoingRequests;
181
- if (_ignoreOutgoingRequests?.(url, request)) {
182
- return true;
183
- }
184
-
185
- return false;
186
- },
187
-
188
- requireParentforOutgoingSpans: false,
189
- requestHook: (span, req) => {
190
- addOriginToSpan(span, 'auto.http.otel.http');
191
-
192
- // Sanitize data URLs to prevent long base64 strings in span attributes
193
- const url = getRequestUrl(req );
194
- if (url.startsWith('data:')) {
195
- const sanitizedUrl = stripDataUrlContent(url);
196
- span.setAttribute('http.url', sanitizedUrl);
197
- span.setAttribute(SEMANTIC_ATTRIBUTE_URL_FULL, sanitizedUrl);
198
- span.updateName(`${(req ).method || 'GET'} ${sanitizedUrl}`);
199
- }
200
-
201
- options.instrumentation?.requestHook?.(span, req);
202
- },
203
- responseHook: (span, res) => {
204
- options.instrumentation?.responseHook?.(span, res);
205
- },
206
- applyCustomAttributesOnSpan: (
207
- span,
208
- request,
209
- response,
210
- ) => {
211
- options.instrumentation?.applyCustomAttributesOnSpan?.(span, request, response);
212
- },
213
- } ;
214
-
215
- return instrumentationConfig;
216
- }
217
-
218
- export { _shouldUseOtelHttpInstrumentation, httpIntegration, instrumentOtelHttp, instrumentSentryHttp };
64
+ export { httpIntegration, instrumentSentryHttp };
219
65
  //# sourceMappingURL=http.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sources":["../../../src/integrations/http.ts"],"sourcesContent":["import type { ClientRequest, IncomingMessage, RequestOptions, ServerResponse } from 'node:http';\nimport { diag } from '@opentelemetry/api';\nimport type { HttpInstrumentationConfig } from '@opentelemetry/instrumentation-http';\nimport { HttpInstrumentation } from '@opentelemetry/instrumentation-http';\nimport type { Span } from '@sentry/core';\nimport {\n defineIntegration,\n getClient,\n hasSpansEnabled,\n SEMANTIC_ATTRIBUTE_URL_FULL,\n stripDataUrlContent,\n} from '@sentry/core';\nimport type { HTTPModuleRequestIncomingMessage, NodeClient, SentryHttpInstrumentationOptions } from '@sentry/node-core';\nimport {\n addOriginToSpan,\n generateInstrumentOnce,\n getRequestUrl,\n httpServerIntegration,\n httpServerSpansIntegration,\n NODE_VERSION,\n SentryHttpInstrumentation,\n} from '@sentry/node-core';\nimport type { NodeClientOptions } from '../types';\n\nconst INTEGRATION_NAME = 'Http';\n\nconst INSTRUMENTATION_NAME = '@opentelemetry_sentry-patched/instrumentation-http';\n\n// The `http.client.request.created` diagnostics channel, needed for trace propagation,\n// was added in Node 22.12.0 (backported from 23.2.0). Earlier 22.x versions don't have it.\nconst FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL =\n (NODE_VERSION.major === 22 && NODE_VERSION.minor >= 12) ||\n (NODE_VERSION.major === 23 && NODE_VERSION.minor >= 2) ||\n NODE_VERSION.major >= 24;\n\ninterface HttpOptions {\n /**\n * Whether breadcrumbs should be recorded for outgoing requests.\n * Defaults to true\n */\n breadcrumbs?: boolean;\n\n /**\n * If set to false, do not emit any spans.\n * This will ensure that the default HttpInstrumentation from OpenTelemetry is not setup,\n * only the Sentry-specific instrumentation for request isolation is applied.\n *\n * If `skipOpenTelemetrySetup: true` is configured, this defaults to `false`, otherwise it defaults to `true`.\n */\n spans?: boolean;\n\n /**\n * Whether the integration should create [Sessions](https://docs.sentry.io/product/releases/health/#sessions) for incoming requests to track the health and crash-free rate of your releases in Sentry.\n * Read more about Release Health: https://docs.sentry.io/product/releases/health/\n *\n * Defaults to `true`.\n */\n trackIncomingRequestsAsSessions?: boolean;\n\n /**\n * Number of milliseconds until sessions tracked with `trackIncomingRequestsAsSessions` will be flushed as a session aggregate.\n *\n * Defaults to `60000` (60s).\n */\n sessionFlushingDelayMS?: number;\n\n /**\n * Whether to inject trace propagation headers (sentry-trace, baggage, traceparent) into outgoing HTTP requests.\n *\n * When set to `false`, Sentry will not inject any trace propagation headers, but will still create breadcrumbs\n * (if `breadcrumbs` is enabled). This is useful when `skipOpenTelemetrySetup: true` is configured and you want\n * to avoid duplicate trace headers being injected by both Sentry and OpenTelemetry's HttpInstrumentation.\n *\n * @default `true`\n */\n tracePropagation?: boolean;\n\n /**\n * Do not capture spans or breadcrumbs for outgoing HTTP requests to URLs where the given callback returns `true`.\n * This controls both span & breadcrumb creation - spans will be non recording if tracing is disabled.\n *\n * The `url` param contains the entire URL, including query string (if any), protocol, host, etc. of the outgoing request.\n * For example: `'https://someService.com/users/details?id=123'`\n *\n * The `request` param contains the original {@type RequestOptions} object used to make the outgoing request.\n * You can use it to filter on additional properties like method, headers, etc.\n */\n ignoreOutgoingRequests?: (url: string, request: RequestOptions) => boolean;\n\n /**\n * Do not capture spans for incoming HTTP requests to URLs where the given callback returns `true`.\n * Spans will be non recording if tracing is disabled.\n *\n * The `urlPath` param consists of the URL path and query string (if any) of the incoming request.\n * For example: `'/users/details?id=123'`\n *\n * The `request` param contains the original {@type IncomingMessage} object of the incoming request.\n * You can use it to filter on additional properties like method, headers, etc.\n */\n ignoreIncomingRequests?: (urlPath: string, request: IncomingMessage) => boolean;\n\n /**\n * A hook that can be used to mutate the span for incoming requests.\n * This is triggered after the span is created, but before it is recorded.\n */\n incomingRequestSpanHook?: (span: Span, request: IncomingMessage, response: ServerResponse) => void;\n\n /**\n * Whether to automatically ignore common static asset requests like favicon.ico, robots.txt, etc.\n * This helps reduce noise in your transactions.\n *\n * @default `true`\n */\n ignoreStaticAssets?: boolean;\n\n /**\n * Do not capture spans for incoming HTTP requests with the given status codes.\n * By default, spans with some 3xx and 4xx status codes are ignored (see @default).\n * Expects an array of status codes or a range of status codes, e.g. [[300,399], 404] would ignore 3xx and 404 status codes.\n *\n * @default `[[401, 404], [301, 303], [305, 399]]`\n */\n dropSpansForIncomingRequestStatusCodes?: (number | [number, number])[];\n\n /**\n * Do not capture the request body for incoming HTTP requests to URLs where the given callback returns `true`.\n * This can be useful for long running requests where the body is not needed and we want to avoid capturing it.\n *\n * @param url Contains the entire URL, including query string (if any), protocol, host, etc. of the incoming request.\n * @param request Contains the {@type RequestOptions} object used to make the incoming request.\n */\n ignoreIncomingRequestBody?: (url: string, request: RequestOptions) => boolean;\n\n /**\n * Controls the maximum size of incoming HTTP request bodies attached to events.\n *\n * Available options:\n * - 'none': No request bodies will be attached\n * - 'small': Request bodies up to 1,000 bytes will be attached\n * - 'medium': Request bodies up to 10,000 bytes will be attached (default)\n * - 'always': Request bodies will always be attached\n *\n * Note that even with 'always' setting, bodies exceeding 1MB will never be attached\n * for performance and security reasons.\n *\n * @default 'medium'\n */\n maxIncomingRequestBodySize?: 'none' | 'small' | 'medium' | 'always';\n\n /**\n * If true, do not generate spans for incoming requests at all.\n * This is used by Remix to avoid generating spans for incoming requests, as it generates its own spans.\n */\n disableIncomingRequestSpans?: boolean;\n\n /**\n * Additional instrumentation options that are passed to the underlying HttpInstrumentation.\n */\n instrumentation?: {\n requestHook?: (span: Span, req: ClientRequest | HTTPModuleRequestIncomingMessage) => void;\n responseHook?: (span: Span, response: HTTPModuleRequestIncomingMessage | ServerResponse) => void;\n applyCustomAttributesOnSpan?: (\n span: Span,\n request: ClientRequest | HTTPModuleRequestIncomingMessage,\n response: HTTPModuleRequestIncomingMessage | ServerResponse,\n ) => void;\n };\n}\n\nexport const instrumentSentryHttp = generateInstrumentOnce<SentryHttpInstrumentationOptions>(\n `${INTEGRATION_NAME}.sentry`,\n options => {\n return new SentryHttpInstrumentation(options);\n },\n);\n\nexport const instrumentOtelHttp = generateInstrumentOnce<HttpInstrumentationConfig>(INTEGRATION_NAME, config => {\n const instrumentation = new HttpInstrumentation({\n ...config,\n // This is hard-coded and can never be overridden by the user\n disableIncomingRequestInstrumentation: true,\n });\n\n // We want to update the logger namespace so we can better identify what is happening here\n try {\n instrumentation['_diag'] = diag.createComponentLogger({\n namespace: INSTRUMENTATION_NAME,\n });\n // @ts-expect-error We are writing a read-only property here...\n instrumentation.instrumentationName = INSTRUMENTATION_NAME;\n } catch {\n // ignore errors here...\n }\n\n // The OTel HttpInstrumentation (>=0.213.0) has a guard (`_httpPatched`/`_httpsPatched`)\n // that prevents patching `http`/`https` when loaded by both CJS `require()` and ESM `import`.\n // In environments like AWS Lambda, the runtime loads `http` via CJS first (for the Runtime API),\n // and then the user's ESM handler imports `node:http`. The guard blocks ESM patching after CJS,\n // which breaks HTTP spans for ESM handlers. We disable this guard to allow both to be patched.\n // TODO(andrei): Remove once https://github.com/open-telemetry/opentelemetry-js/issues/6489 is fixed.\n try {\n const noopDescriptor = { get: () => false, set: () => {} };\n Object.defineProperty(instrumentation, '_httpPatched', noopDescriptor);\n Object.defineProperty(instrumentation, '_httpsPatched', noopDescriptor);\n } catch {\n // ignore errors here...\n }\n\n return instrumentation;\n});\n\n/** Exported only for tests. */\nexport function _shouldUseOtelHttpInstrumentation(\n options: HttpOptions,\n clientOptions: Partial<NodeClientOptions> = {},\n): boolean {\n // If `spans` is passed in, it takes precedence\n // Else, we by default emit spans, unless `skipOpenTelemetrySetup` is set to `true` or spans are not enabled\n if (typeof options.spans === 'boolean') {\n return options.spans;\n }\n\n if (clientOptions.skipOpenTelemetrySetup) {\n return false;\n }\n\n // IMPORTANT: We only disable span instrumentation when spans are not enabled _and_ we are on a Node version\n // that fully supports the necessary diagnostics channels for trace propagation\n if (!hasSpansEnabled(clientOptions) && FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL) {\n return false;\n }\n\n return true;\n}\n\n/**\n * The http integration instruments Node's internal http and https modules.\n * It creates breadcrumbs and spans for outgoing HTTP requests which will be attached to the currently active span.\n */\nexport const httpIntegration = defineIntegration((options: HttpOptions = {}) => {\n const spans = options.spans ?? true;\n const disableIncomingRequestSpans = options.disableIncomingRequestSpans;\n\n const serverOptions = {\n sessions: options.trackIncomingRequestsAsSessions,\n sessionFlushingDelayMS: options.sessionFlushingDelayMS,\n ignoreRequestBody: options.ignoreIncomingRequestBody,\n maxRequestBodySize: options.maxIncomingRequestBodySize,\n } satisfies Parameters<typeof httpServerIntegration>[0];\n\n const serverSpansOptions = {\n ignoreIncomingRequests: options.ignoreIncomingRequests,\n ignoreStaticAssets: options.ignoreStaticAssets,\n ignoreStatusCodes: options.dropSpansForIncomingRequestStatusCodes,\n instrumentation: options.instrumentation,\n onSpanCreated: options.incomingRequestSpanHook,\n } satisfies Parameters<typeof httpServerSpansIntegration>[0];\n\n const server = httpServerIntegration(serverOptions);\n const serverSpans = httpServerSpansIntegration(serverSpansOptions);\n\n const enableServerSpans = spans && !disableIncomingRequestSpans;\n\n return {\n name: INTEGRATION_NAME,\n setup(client: NodeClient) {\n const clientOptions = client.getOptions();\n\n if (enableServerSpans && hasSpansEnabled(clientOptions)) {\n serverSpans.setup(client);\n }\n },\n setupOnce() {\n const clientOptions = (getClient<NodeClient>()?.getOptions() || {}) satisfies Partial<NodeClientOptions>;\n const useOtelHttpInstrumentation = _shouldUseOtelHttpInstrumentation(options, clientOptions);\n\n server.setupOnce();\n\n const sentryHttpInstrumentationOptions = {\n breadcrumbs: options.breadcrumbs,\n propagateTraceInOutgoingRequests:\n typeof options.tracePropagation === 'boolean'\n ? options.tracePropagation\n : FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL || !useOtelHttpInstrumentation,\n createSpansForOutgoingRequests: FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL,\n spans: options.spans,\n ignoreOutgoingRequests: options.ignoreOutgoingRequests,\n outgoingRequestHook: (span: Span, request: ClientRequest) => {\n // Sanitize data URLs to prevent long base64 strings in span attributes\n const url = getRequestUrl(request);\n if (url.startsWith('data:')) {\n const sanitizedUrl = stripDataUrlContent(url);\n span.setAttribute('http.url', sanitizedUrl);\n span.setAttribute(SEMANTIC_ATTRIBUTE_URL_FULL, sanitizedUrl);\n span.updateName(`${request.method || 'GET'} ${sanitizedUrl}`);\n }\n\n options.instrumentation?.requestHook?.(span, request);\n },\n outgoingResponseHook: options.instrumentation?.responseHook,\n outgoingRequestApplyCustomAttributes: options.instrumentation?.applyCustomAttributesOnSpan,\n } satisfies SentryHttpInstrumentationOptions;\n\n // This is Sentry-specific instrumentation for outgoing request breadcrumbs & trace propagation\n instrumentSentryHttp(sentryHttpInstrumentationOptions);\n\n // This is the \"regular\" OTEL instrumentation that emits outgoing request spans\n if (useOtelHttpInstrumentation) {\n const instrumentationConfig = getConfigWithDefaults(options);\n instrumentOtelHttp(instrumentationConfig);\n }\n },\n processEvent(event) {\n // Note: We always run this, even if spans are disabled\n // The reason being that e.g. the remix integration disables span creation here but still wants to use the ignore status codes option\n return serverSpans.processEvent(event);\n },\n };\n});\n\nfunction getConfigWithDefaults(options: Partial<HttpOptions> = {}): HttpInstrumentationConfig {\n const instrumentationConfig = {\n // This is handled by the SentryHttpInstrumentation on Node 22+\n disableOutgoingRequestInstrumentation: FULLY_SUPPORTS_HTTP_DIAGNOSTICS_CHANNEL,\n\n ignoreOutgoingRequestHook: request => {\n const url = getRequestUrl(request);\n\n if (!url) {\n return false;\n }\n\n const _ignoreOutgoingRequests = options.ignoreOutgoingRequests;\n if (_ignoreOutgoingRequests?.(url, request)) {\n return true;\n }\n\n return false;\n },\n\n requireParentforOutgoingSpans: false,\n requestHook: (span, req) => {\n addOriginToSpan(span, 'auto.http.otel.http');\n\n // Sanitize data URLs to prevent long base64 strings in span attributes\n const url = getRequestUrl(req as ClientRequest);\n if (url.startsWith('data:')) {\n const sanitizedUrl = stripDataUrlContent(url);\n span.setAttribute('http.url', sanitizedUrl);\n span.setAttribute(SEMANTIC_ATTRIBUTE_URL_FULL, sanitizedUrl);\n span.updateName(`${(req as ClientRequest).method || 'GET'} ${sanitizedUrl}`);\n }\n\n options.instrumentation?.requestHook?.(span, req);\n },\n responseHook: (span, res) => {\n options.instrumentation?.responseHook?.(span, res);\n },\n applyCustomAttributesOnSpan: (\n span: Span,\n request: ClientRequest | HTTPModuleRequestIncomingMessage,\n response: HTTPModuleRequestIncomingMessage | ServerResponse,\n ) => {\n options.instrumentation?.applyCustomAttributesOnSpan?.(span, request, response);\n },\n } satisfies HttpInstrumentationConfig;\n\n return instrumentationConfig;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sources":["../../../src/integrations/http.ts"],"sourcesContent":["import type { RequestOptions } from 'node:http';\nimport type { HttpClientRequest, HttpIncomingMessage, HttpServerResponse, Span } from '@sentry/core';\nimport {\n defineIntegration,\n hasSpansEnabled,\n SEMANTIC_ATTRIBUTE_URL_FULL,\n stripDataUrlContent,\n getRequestUrlFromClientRequest,\n} from '@sentry/core';\nimport type {\n NodeClient,\n SentryHttpInstrumentationOptions,\n HttpServerIntegrationOptions,\n HttpServerSpansIntegrationOptions,\n} from '@sentry/node-core';\nimport { httpServerIntegration, httpServerSpansIntegration, instrumentHttpOutgoingRequests } from '@sentry/node-core';\n\nconst INTEGRATION_NAME = 'Http' as const;\n\n// TODO(v11): Consolidate all the various HTTP integration options into one,\n// and deprecate the duplicated and aliased options.\ninterface HttpOptions {\n /**\n * Whether breadcrumbs should be recorded for outgoing requests.\n * Defaults to true\n */\n breadcrumbs?: boolean;\n\n /**\n * If set to false, do not emit any spans.\n * This will ensure that the default HttpInstrumentation from OpenTelemetry is not setup,\n * only the Sentry-specific instrumentation for request isolation is applied.\n *\n * If `skipOpenTelemetrySetup: true` is configured, this defaults to `false`, otherwise it defaults to `true`.\n */\n spans?: boolean;\n\n /**\n * Whether the integration should create [Sessions](https://docs.sentry.io/product/releases/health/#sessions) for incoming requests to track the health and crash-free rate of your releases in Sentry.\n * Read more about Release Health: https://docs.sentry.io/product/releases/health/\n *\n * Defaults to `true`.\n */\n trackIncomingRequestsAsSessions?: boolean;\n\n /**\n * Number of milliseconds until sessions tracked with `trackIncomingRequestsAsSessions` will be flushed as a session aggregate.\n *\n * Defaults to `60000` (60s).\n */\n sessionFlushingDelayMS?: number;\n\n /**\n * Whether to inject trace propagation headers (sentry-trace, baggage, traceparent) into outgoing HTTP requests.\n *\n * When set to `false`, Sentry will not inject any trace propagation headers, but will still create breadcrumbs\n * (if `breadcrumbs` is enabled). This is useful when `skipOpenTelemetrySetup: true` is configured and you want\n * to avoid duplicate trace headers being injected by both Sentry and OpenTelemetry's HttpInstrumentation.\n *\n * @default `true`\n */\n tracePropagation?: boolean;\n\n /**\n * Do not capture spans or breadcrumbs for outgoing HTTP requests to URLs where the given callback returns `true`.\n * This controls both span & breadcrumb creation - spans will be non recording if tracing is disabled.\n *\n * The `url` param contains the entire URL, including query string (if any), protocol, host, etc. of the outgoing request.\n * For example: `'https://someService.com/users/details?id=123'`\n *\n * The `request` param contains the original {@type RequestOptions} object used to make the outgoing request.\n * You can use it to filter on additional properties like method, headers, etc.\n */\n ignoreOutgoingRequests?: (url: string, request: RequestOptions) => boolean;\n\n /**\n * Do not capture spans for incoming HTTP requests to URLs where the given callback returns `true`.\n * Spans will be non recording if tracing is disabled.\n *\n * The `urlPath` param consists of the URL path and query string (if any) of the incoming request.\n * For example: `'/users/details?id=123'`\n *\n * The `request` param contains the original {@type IncomingMessage} object of the incoming request.\n * You can use it to filter on additional properties like method, headers, etc.\n */\n ignoreIncomingRequests?: (urlPath: string, request: HttpIncomingMessage) => boolean;\n\n /**\n * A hook that can be used to mutate the span for incoming requests.\n * This is triggered after the span is created, but before it is recorded.\n */\n incomingRequestSpanHook?: (span: Span, request: HttpIncomingMessage, response: HttpServerResponse) => void;\n\n /**\n * Whether to automatically ignore common static asset requests like favicon.ico, robots.txt, etc.\n * This helps reduce noise in your transactions.\n *\n * @default `true`\n */\n ignoreStaticAssets?: boolean;\n\n /**\n * Do not capture spans for incoming HTTP requests with the given status codes.\n * By default, spans with some 3xx and 4xx status codes are ignored (see @default).\n * Expects an array of status codes or a range of status codes, e.g. [[300,399], 404] would ignore 3xx and 404 status codes.\n *\n * @default `[[401, 404], [301, 303], [305, 399]]`\n */\n dropSpansForIncomingRequestStatusCodes?: (number | [number, number])[];\n\n /**\n * Do not capture the request body for incoming HTTP requests to URLs where the given callback returns `true`.\n * This can be useful for long running requests where the body is not needed and we want to avoid capturing it.\n *\n * @param url Contains the entire URL, including query string (if any), protocol, host, etc. of the incoming request.\n * @param request Contains the {@type RequestOptions} object used to make the incoming request.\n */\n ignoreIncomingRequestBody?: (url: string, request: RequestOptions) => boolean;\n\n /**\n * Controls the maximum size of incoming HTTP request bodies attached to events.\n *\n * Available options:\n * - 'none': No request bodies will be attached\n * - 'small': Request bodies up to 1,000 bytes will be attached\n * - 'medium': Request bodies up to 10,000 bytes will be attached (default)\n * - 'always': Request bodies will always be attached\n *\n * Note that even with 'always' setting, bodies exceeding 1MB will never be attached\n * for performance and security reasons.\n *\n * @default 'medium'\n */\n maxIncomingRequestBodySize?: 'none' | 'small' | 'medium' | 'always';\n\n /**\n * If true, do not generate spans for incoming requests at all.\n * This is used by Remix to avoid generating spans for incoming requests, as it generates its own spans.\n */\n disableIncomingRequestSpans?: boolean;\n\n /**\n * Additional instrumentation options that are passed to the underlying HttpInstrumentation.\n */\n instrumentation?: {\n requestHook?: (span: Span, req: HttpIncomingMessage | HttpClientRequest) => void;\n responseHook?: (span: Span, response: HttpIncomingMessage | HttpServerResponse) => void;\n applyCustomAttributesOnSpan?: (\n span: Span,\n request: HttpIncomingMessage | HttpClientRequest,\n response: HttpIncomingMessage | HttpServerResponse,\n ) => void;\n };\n}\n\nexport const instrumentSentryHttp = Object.assign(instrumentHttpOutgoingRequests, {\n id: `${INTEGRATION_NAME}.sentry`,\n});\n\n/**\n * The http integration instruments Node's internal http and https modules.\n * It creates breadcrumbs and spans for outgoing HTTP requests which will be attached to the currently active span.\n */\nexport const httpIntegration = defineIntegration((options: HttpOptions = {}) => {\n const spans = options.spans ?? true;\n const disableIncomingRequestSpans = options.disableIncomingRequestSpans;\n const enableServerSpans = spans && !disableIncomingRequestSpans;\n\n const serverOptions = {\n sessions: options.trackIncomingRequestsAsSessions,\n sessionFlushingDelayMS: options.sessionFlushingDelayMS,\n ignoreRequestBody: options.ignoreIncomingRequestBody,\n maxRequestBodySize: options.maxIncomingRequestBodySize,\n } satisfies HttpServerIntegrationOptions;\n\n const serverSpansOptions: HttpServerSpansIntegrationOptions = {\n ignoreIncomingRequests: options.ignoreIncomingRequests,\n ignoreStaticAssets: options.ignoreStaticAssets,\n ignoreStatusCodes: options.dropSpansForIncomingRequestStatusCodes,\n instrumentation: options.instrumentation,\n onSpanCreated: options.incomingRequestSpanHook,\n };\n\n const server = httpServerIntegration(serverOptions);\n const serverSpans = httpServerSpansIntegration(serverSpansOptions);\n\n return {\n name: INTEGRATION_NAME,\n setup(client: NodeClient) {\n const clientOptions = client.getOptions();\n\n if (enableServerSpans && hasSpansEnabled(clientOptions)) {\n serverSpans.setup(client);\n }\n },\n setupOnce() {\n server.setupOnce();\n\n const sentryHttpInstrumentationOptions: SentryHttpInstrumentationOptions = {\n breadcrumbs: options.breadcrumbs,\n spans,\n propagateTraceInOutgoingRequests: options.tracePropagation ?? true,\n createSpansForOutgoingRequests: spans,\n ignoreOutgoingRequests: options.ignoreOutgoingRequests,\n outgoingRequestHook: (span: Span, request: HttpClientRequest) => {\n // Sanitize data URLs to prevent long base64 strings in span attributes\n const url = getRequestUrlFromClientRequest(request);\n if (url.startsWith('data:')) {\n const sanitizedUrl = stripDataUrlContent(url);\n // TODO(v11): Update these to the Sentry semantic attributes.\n // https://getsentry.github.io/sentry-conventions/attributes/\n span.setAttribute('http.url', sanitizedUrl);\n span.setAttribute(SEMANTIC_ATTRIBUTE_URL_FULL, sanitizedUrl);\n span.updateName(`${request.method || 'GET'} ${sanitizedUrl}`);\n }\n options.instrumentation?.requestHook?.(span, request);\n },\n outgoingResponseHook: options.instrumentation?.responseHook,\n outgoingRequestApplyCustomAttributes: options.instrumentation?.applyCustomAttributesOnSpan,\n };\n\n // This is Sentry-specific instrumentation for outgoing request\n // breadcrumbs & trace propagation. It uses the diagnostic channels on\n // node versions that support it, falling back to monkey-patching when\n // needed.\n instrumentHttpOutgoingRequests(sentryHttpInstrumentationOptions);\n },\n processEvent(event) {\n // Always run this, even if spans are disabled\n // The reason being that e.g. the remix integration disables span\n // creation here but still wants to use the ignore status codes option\n return serverSpans.processEvent(event);\n },\n };\n});\n"],"names":[],"mappings":";;;AAiBA,MAAM,gBAAA,GAAmB,MAAA;AA0IlB,MAAM,oBAAA,GAAuB,MAAA,CAAO,MAAA,CAAO,8BAAA,EAAgC;AAAA,EAChF,EAAA,EAAI,GAAG,gBAAgB,CAAA,OAAA;AACzB,CAAC;AAMM,MAAM,eAAA,GAAkB,iBAAA,CAAkB,CAAC,OAAA,GAAuB,EAAC,KAAM;AAC9E,EAAA,MAAM,KAAA,GAAQ,QAAQ,KAAA,IAAS,IAAA;AAC/B,EAAA,MAAM,8BAA8B,OAAA,CAAQ,2BAAA;AAC5C,EAAA,MAAM,iBAAA,GAAoB,SAAS,CAAC,2BAAA;AAEpC,EAAA,MAAM,aAAA,GAAgB;AAAA,IACpB,UAAU,OAAA,CAAQ,+BAAA;AAAA,IAClB,wBAAwB,OAAA,CAAQ,sBAAA;AAAA,IAChC,mBAAmB,OAAA,CAAQ,yBAAA;AAAA,IAC3B,oBAAoB,OAAA,CAAQ;AAAA,GAC9B;AAEA,EAAA,MAAM,kBAAA,GAAwD;AAAA,IAC5D,wBAAwB,OAAA,CAAQ,sBAAA;AAAA,IAChC,oBAAoB,OAAA,CAAQ,kBAAA;AAAA,IAC5B,mBAAmB,OAAA,CAAQ,sCAAA;AAAA,IAC3B,iBAAiB,OAAA,CAAQ,eAAA;AAAA,IACzB,eAAe,OAAA,CAAQ;AAAA,GACzB;AAEA,EAAA,MAAM,MAAA,GAAS,sBAAsB,aAAa,CAAA;AAClD,EAAA,MAAM,WAAA,GAAc,2BAA2B,kBAAkB,CAAA;AAEjE,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,gBAAA;AAAA,IACN,MAAM,MAAA,EAAoB;AACxB,MAAA,MAAM,aAAA,GAAgB,OAAO,UAAA,EAAW;AAExC,MAAA,IAAI,iBAAA,IAAqB,eAAA,CAAgB,aAAa,CAAA,EAAG;AACvD,QAAA,WAAA,CAAY,MAAM,MAAM,CAAA;AAAA,MAC1B;AAAA,IACF,CAAA;AAAA,IACA,SAAA,GAAY;AACV,MAAA,MAAA,CAAO,SAAA,EAAU;AAEjB,MAAA,MAAM,gCAAA,GAAqE;AAAA,QACzE,aAAa,OAAA,CAAQ,WAAA;AAAA,QACrB,KAAA;AAAA,QACA,gCAAA,EAAkC,QAAQ,gBAAA,IAAoB,IAAA;AAAA,QAC9D,8BAAA,EAAgC,KAAA;AAAA,QAChC,wBAAwB,OAAA,CAAQ,sBAAA;AAAA,QAChC,mBAAA,EAAqB,CAAC,IAAA,EAAY,OAAA,KAA+B;AAE/D,UAAA,MAAM,GAAA,GAAM,+BAA+B,OAAO,CAAA;AAClD,UAAA,IAAI,GAAA,CAAI,UAAA,CAAW,OAAO,CAAA,EAAG;AAC3B,YAAA,MAAM,YAAA,GAAe,oBAAoB,GAAG,CAAA;AAG5C,YAAA,IAAA,CAAK,YAAA,CAAa,YAAY,YAAY,CAAA;AAC1C,YAAA,IAAA,CAAK,YAAA,CAAa,6BAA6B,YAAY,CAAA;AAC3D,YAAA,IAAA,CAAK,WAAW,CAAA,EAAG,OAAA,CAAQ,UAAU,KAAK,CAAA,CAAA,EAAI,YAAY,CAAA,CAAE,CAAA;AAAA,UAC9D;AACA,UAAA,OAAA,CAAQ,eAAA,EAAiB,WAAA,GAAc,IAAA,EAAM,OAAO,CAAA;AAAA,QACtD,CAAA;AAAA,QACA,oBAAA,EAAsB,QAAQ,eAAA,EAAiB,YAAA;AAAA,QAC/C,oCAAA,EAAsC,QAAQ,eAAA,EAAiB;AAAA,OACjE;AAMA,MAAA,8BAAA,CAA+B,gCAAgC,CAAA;AAAA,IACjE,CAAA;AAAA,IACA,aAAa,KAAA,EAAO;AAIlB,MAAA,OAAO,WAAA,CAAY,aAAa,KAAK,CAAA;AAAA,IACvC;AAAA,GACF;AACF,CAAC;;;;"}
@@ -1,105 +1,22 @@
1
- import { UndiciInstrumentation } from '@opentelemetry/instrumentation-undici';
2
- import { defineIntegration, stripDataUrlContent, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME, SEMANTIC_ATTRIBUTE_URL_FULL, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, getClient, hasSpansEnabled } from '@sentry/core';
3
- import { generateInstrumentOnce, SentryNodeFetchInstrumentation } from '@sentry/node-core';
4
-
5
- const INTEGRATION_NAME = 'NodeFetch';
6
-
7
- const instrumentOtelNodeFetch = generateInstrumentOnce(
8
- INTEGRATION_NAME,
9
- UndiciInstrumentation,
10
- (options) => {
11
- return _getConfigWithDefaults(options);
12
- },
13
- );
14
-
15
- const instrumentSentryNodeFetch = generateInstrumentOnce(
16
- `${INTEGRATION_NAME}.sentry`,
17
- SentryNodeFetchInstrumentation,
18
- (options) => {
19
- return options;
20
- },
21
- );
1
+ import { instrumentUndici } from '@sentry/node-core';
2
+ import { defineIntegration, getClient, hasSpansEnabled } from '@sentry/core';
22
3
 
23
4
  const _nativeNodeFetchIntegration = ((options = {}) => {
24
5
  return {
25
- name: 'NodeFetch',
6
+ name: "NodeFetch",
26
7
  setupOnce() {
27
- const instrumentSpans = _shouldInstrumentSpans(options, getClient()?.getOptions());
28
-
29
- // This is the "regular" OTEL instrumentation that emits spans
30
- if (instrumentSpans) {
31
- instrumentOtelNodeFetch(options);
32
- }
33
-
34
- // This is the Sentry-specific instrumentation that creates breadcrumbs & propagates traces
35
- // This must be registered after the OTEL one, to ensure that the core trace propagation logic takes presedence
36
- // Otherwise, the sentry-trace header may be set multiple times
37
- instrumentSentryNodeFetch(options);
38
- },
8
+ const clientOptions = getClient()?.getOptions();
9
+ instrumentUndici({
10
+ ...options,
11
+ spans: _shouldInstrumentSpans(options, clientOptions)
12
+ });
13
+ }
39
14
  };
40
- }) ;
41
-
15
+ });
42
16
  const nativeNodeFetchIntegration = defineIntegration(_nativeNodeFetchIntegration);
43
-
44
- // Matching the behavior of the base instrumentation
45
- function getAbsoluteUrl(origin, path = '/') {
46
- const url = `${origin}`;
47
-
48
- if (url.endsWith('/') && path.startsWith('/')) {
49
- return `${url}${path.slice(1)}`;
50
- }
51
-
52
- if (!url.endsWith('/') && !path.startsWith('/')) {
53
- return `${url}/${path}`;
54
- }
55
-
56
- return `${url}${path}`;
57
- }
58
-
59
17
  function _shouldInstrumentSpans(options, clientOptions = {}) {
60
- // If `spans` is passed in, it takes precedence
61
- // Else, we by default emit spans, unless `skipOpenTelemetrySetup` is set to `true` or spans are not enabled
62
- return typeof options.spans === 'boolean'
63
- ? options.spans
64
- : !clientOptions.skipOpenTelemetrySetup && hasSpansEnabled(clientOptions);
65
- }
66
-
67
- /** Exported only for tests. */
68
- function _getConfigWithDefaults(options = {}) {
69
- const instrumentationConfig = {
70
- requireParentforSpans: false,
71
- ignoreRequestHook: request => {
72
- const url = getAbsoluteUrl(request.origin, request.path);
73
- const _ignoreOutgoingRequests = options.ignoreOutgoingRequests;
74
- const shouldIgnore = _ignoreOutgoingRequests && url && _ignoreOutgoingRequests(url);
75
-
76
- return !!shouldIgnore;
77
- },
78
- startSpanHook: request => {
79
- const url = getAbsoluteUrl(request.origin, request.path);
80
-
81
- // Sanitize data URLs to prevent long base64 strings in span attributes
82
- if (url.startsWith('data:')) {
83
- const sanitizedUrl = stripDataUrlContent(url);
84
- return {
85
- [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.node_fetch',
86
- 'http.url': sanitizedUrl,
87
- [SEMANTIC_ATTRIBUTE_URL_FULL]: sanitizedUrl,
88
- [SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME]: `${request.method || 'GET'} ${sanitizedUrl}`,
89
- };
90
- }
91
-
92
- return {
93
- [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.node_fetch',
94
- };
95
- },
96
- requestHook: options.requestHook,
97
- responseHook: options.responseHook,
98
- headersToSpanAttributes: options.headersToSpanAttributes,
99
- } ;
100
-
101
- return instrumentationConfig;
18
+ return options.spans ?? (!clientOptions.skipOpenTelemetrySetup && hasSpansEnabled(clientOptions));
102
19
  }
103
20
 
104
- export { _getConfigWithDefaults, nativeNodeFetchIntegration };
21
+ export { nativeNodeFetchIntegration };
105
22
  //# sourceMappingURL=node-fetch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-fetch.js","sources":["../../../src/integrations/node-fetch.ts"],"sourcesContent":["import type { UndiciInstrumentationConfig } from '@opentelemetry/instrumentation-undici';\nimport { UndiciInstrumentation } from '@opentelemetry/instrumentation-undici';\nimport type { IntegrationFn } from '@sentry/core';\nimport {\n defineIntegration,\n getClient,\n hasSpansEnabled,\n SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SEMANTIC_ATTRIBUTE_URL_FULL,\n stripDataUrlContent,\n} from '@sentry/core';\nimport type { NodeClient } from '@sentry/node-core';\nimport { generateInstrumentOnce, SentryNodeFetchInstrumentation } from '@sentry/node-core';\nimport type { NodeClientOptions } from '../types';\n\nconst INTEGRATION_NAME = 'NodeFetch';\n\ninterface NodeFetchOptions extends Pick<\n UndiciInstrumentationConfig,\n 'requestHook' | 'responseHook' | 'headersToSpanAttributes'\n> {\n /**\n * Whether breadcrumbs should be recorded for requests.\n * Defaults to true\n */\n breadcrumbs?: boolean;\n\n /**\n * If set to false, do not emit any spans.\n * This will ensure that the default UndiciInstrumentation from OpenTelemetry is not setup,\n * only the Sentry-specific instrumentation for breadcrumbs & trace propagation is applied.\n *\n * If `skipOpenTelemetrySetup: true` is configured, this defaults to `false`, otherwise it defaults to `true`.\n */\n spans?: boolean;\n\n /**\n * Whether to inject trace propagation headers (sentry-trace, baggage, traceparent) into outgoing fetch requests.\n *\n * When set to `false`, Sentry will not inject any trace propagation headers, but will still create breadcrumbs\n * (if `breadcrumbs` is enabled). This is useful when `skipOpenTelemetrySetup: true` is configured and you want\n * to avoid duplicate trace headers being injected by both Sentry and OpenTelemetry's UndiciInstrumentation.\n *\n * @default `true`\n */\n tracePropagation?: boolean;\n\n /**\n * Do not capture spans or breadcrumbs for outgoing fetch requests to URLs where the given callback returns `true`.\n * This controls both span & breadcrumb creation - spans will be non recording if tracing is disabled.\n */\n ignoreOutgoingRequests?: (url: string) => boolean;\n}\n\nconst instrumentOtelNodeFetch = generateInstrumentOnce(\n INTEGRATION_NAME,\n UndiciInstrumentation,\n (options: NodeFetchOptions) => {\n return _getConfigWithDefaults(options);\n },\n);\n\nconst instrumentSentryNodeFetch = generateInstrumentOnce(\n `${INTEGRATION_NAME}.sentry`,\n SentryNodeFetchInstrumentation,\n (options: NodeFetchOptions) => {\n return options;\n },\n);\n\nconst _nativeNodeFetchIntegration = ((options: NodeFetchOptions = {}) => {\n return {\n name: 'NodeFetch',\n setupOnce() {\n const instrumentSpans = _shouldInstrumentSpans(options, getClient<NodeClient>()?.getOptions());\n\n // This is the \"regular\" OTEL instrumentation that emits spans\n if (instrumentSpans) {\n instrumentOtelNodeFetch(options);\n }\n\n // This is the Sentry-specific instrumentation that creates breadcrumbs & propagates traces\n // This must be registered after the OTEL one, to ensure that the core trace propagation logic takes presedence\n // Otherwise, the sentry-trace header may be set multiple times\n instrumentSentryNodeFetch(options);\n },\n };\n}) satisfies IntegrationFn;\n\nexport const nativeNodeFetchIntegration = defineIntegration(_nativeNodeFetchIntegration);\n\n// Matching the behavior of the base instrumentation\nfunction getAbsoluteUrl(origin: string, path: string = '/'): string {\n const url = `${origin}`;\n\n if (url.endsWith('/') && path.startsWith('/')) {\n return `${url}${path.slice(1)}`;\n }\n\n if (!url.endsWith('/') && !path.startsWith('/')) {\n return `${url}/${path}`;\n }\n\n return `${url}${path}`;\n}\n\nfunction _shouldInstrumentSpans(options: NodeFetchOptions, clientOptions: Partial<NodeClientOptions> = {}): boolean {\n // If `spans` is passed in, it takes precedence\n // Else, we by default emit spans, unless `skipOpenTelemetrySetup` is set to `true` or spans are not enabled\n return typeof options.spans === 'boolean'\n ? options.spans\n : !clientOptions.skipOpenTelemetrySetup && hasSpansEnabled(clientOptions);\n}\n\n/** Exported only for tests. */\nexport function _getConfigWithDefaults(options: Partial<NodeFetchOptions> = {}): UndiciInstrumentationConfig {\n const instrumentationConfig = {\n requireParentforSpans: false,\n ignoreRequestHook: request => {\n const url = getAbsoluteUrl(request.origin, request.path);\n const _ignoreOutgoingRequests = options.ignoreOutgoingRequests;\n const shouldIgnore = _ignoreOutgoingRequests && url && _ignoreOutgoingRequests(url);\n\n return !!shouldIgnore;\n },\n startSpanHook: request => {\n const url = getAbsoluteUrl(request.origin, request.path);\n\n // Sanitize data URLs to prevent long base64 strings in span attributes\n if (url.startsWith('data:')) {\n const sanitizedUrl = stripDataUrlContent(url);\n return {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.node_fetch',\n 'http.url': sanitizedUrl,\n [SEMANTIC_ATTRIBUTE_URL_FULL]: sanitizedUrl,\n [SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME]: `${request.method || 'GET'} ${sanitizedUrl}`,\n };\n }\n\n return {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.http.otel.node_fetch',\n };\n },\n requestHook: options.requestHook,\n responseHook: options.responseHook,\n headersToSpanAttributes: options.headersToSpanAttributes,\n } satisfies UndiciInstrumentationConfig;\n\n return instrumentationConfig;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-fetch.js","sources":["../../../src/integrations/node-fetch.ts"],"sourcesContent":["import { instrumentUndici, type NodeFetchOptions } from '@sentry/node-core';\nimport type { NodeClientOptions } from '../types';\nimport type { IntegrationFn } from '@sentry/core';\nimport { defineIntegration, getClient, hasSpansEnabled } from '@sentry/core';\n\n/**\n * This is a variant of the node-core integration where the default for spans is different.\n * In v11, this will be the only implementation.\n */\nconst _nativeNodeFetchIntegration = ((options: NodeFetchOptions = {}) => {\n return {\n name: 'NodeFetch' as const,\n setupOnce() {\n const clientOptions = getClient()?.getOptions();\n instrumentUndici({\n ...options,\n spans: _shouldInstrumentSpans(options, clientOptions),\n });\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Instrument outgoing fetch requests made through the native node `fetch` API.\n * This emits (depending on the integration options) spans and breadcrumbs, as well as injecting trace propagation headers into the request.\n */\nexport const nativeNodeFetchIntegration = defineIntegration(_nativeNodeFetchIntegration);\n\nfunction _shouldInstrumentSpans(options: NodeFetchOptions, clientOptions: Partial<NodeClientOptions> = {}): boolean {\n // If `spans` is passed in, it takes precedence\n // Else, we by default emit spans, unless `skipOpenTelemetrySetup` is set to `true` or spans are not enabled\n return options.spans ?? (!clientOptions.skipOpenTelemetrySetup && hasSpansEnabled(clientOptions));\n}\n"],"names":[],"mappings":";;;AASA,MAAM,2BAAA,IAA+B,CAAC,OAAA,GAA4B,EAAC,KAAM;AACvE,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,WAAA;AAAA,IACN,SAAA,GAAY;AACV,MAAA,MAAM,aAAA,GAAgB,SAAA,EAAU,EAAG,UAAA,EAAW;AAC9C,MAAA,gBAAA,CAAiB;AAAA,QACf,GAAG,OAAA;AAAA,QACH,KAAA,EAAO,sBAAA,CAAuB,OAAA,EAAS,aAAa;AAAA,OACrD,CAAA;AAAA,IACH;AAAA,GACF;AACF,CAAA,CAAA;AAMO,MAAM,0BAAA,GAA6B,kBAAkB,2BAA2B;AAEvF,SAAS,sBAAA,CAAuB,OAAA,EAA2B,aAAA,GAA4C,EAAC,EAAY;AAGlH,EAAA,OAAO,QAAQ,KAAA,KAAU,CAAC,aAAA,CAAc,sBAAA,IAA0B,gBAAgB,aAAa,CAAA,CAAA;AACjG;;;;"}
@@ -0,0 +1,13 @@
1
+ import { normalize } from 'path';
2
+
3
+ class InstrumentationNodeModuleFile {
4
+ constructor(name, supportedVersions, patch, unpatch) {
5
+ this.name = normalize(name);
6
+ this.supportedVersions = supportedVersions;
7
+ this.patch = patch;
8
+ this.unpatch = unpatch;
9
+ }
10
+ }
11
+
12
+ export { InstrumentationNodeModuleFile };
13
+ //# sourceMappingURL=InstrumentationNodeModuleFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InstrumentationNodeModuleFile.js","sources":["../../../../src/integrations/tracing/InstrumentationNodeModuleFile.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * NOTICE from the Sentry authors:\n * - Vendored locally from @opentelemetry/instrumentation to work around a Bun\n * --bytecode bug (https://github.com/getsentry/sentry-javascript/issues/21256).\n * - The upstream class imports `normalize` via an indirect platform/index\n * re-export chain, which Bun's bytecode bundler renames and loses scope for.\n * - This copy imports `normalize` directly from 'path' to break that chain.\n */\n/* oxlint-disable */\n\nimport { normalize } from 'path';\nimport type { InstrumentationModuleFile } from '@opentelemetry/instrumentation';\n\nexport class InstrumentationNodeModuleFile implements InstrumentationModuleFile {\n public name: string;\n public supportedVersions: string[];\n public patch: (moduleExports: any, moduleVersion?: string) => any;\n public unpatch: (moduleExports?: any, moduleVersion?: string) => void;\n\n constructor(\n name: string,\n supportedVersions: string[],\n patch: (moduleExports: any, moduleVersion?: string) => any,\n unpatch: (moduleExports?: any, moduleVersion?: string) => void,\n ) {\n this.name = normalize(name);\n this.supportedVersions = supportedVersions;\n this.patch = patch;\n this.unpatch = unpatch;\n }\n}\n"],"names":[],"mappings":";;AA2BO,MAAM,6BAAA,CAAmE;AAAA,EAM9E,WAAA,CACE,IAAA,EACA,iBAAA,EACA,KAAA,EACA,OAAA,EACA;AACA,IAAA,IAAA,CAAK,IAAA,GAAO,UAAU,IAAI,CAAA;AAC1B,IAAA,IAAA,CAAK,iBAAA,GAAoB,iBAAA;AACzB,IAAA,IAAA,CAAK,KAAA,GAAQ,KAAA;AACb,IAAA,IAAA,CAAK,OAAA,GAAU,OAAA;AAAA,EACjB;AACF;;;;"}
@@ -0,0 +1,18 @@
1
+ import { defineIntegration } from '@sentry/core';
2
+ import { generateInstrumentOnce } from '@sentry/node-core';
3
+ import { AmqplibInstrumentation } from './vendored/instrumentation.js';
4
+
5
+ const INTEGRATION_NAME = "Amqplib";
6
+ const instrumentAmqplib = generateInstrumentOnce(INTEGRATION_NAME, () => new AmqplibInstrumentation());
7
+ const _amqplibIntegration = (() => {
8
+ return {
9
+ name: INTEGRATION_NAME,
10
+ setupOnce() {
11
+ instrumentAmqplib();
12
+ }
13
+ };
14
+ });
15
+ const amqplibIntegration = defineIntegration(_amqplibIntegration);
16
+
17
+ export { amqplibIntegration, instrumentAmqplib };
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/integrations/tracing/amqplib/index.ts"],"sourcesContent":["import type { IntegrationFn } from '@sentry/core';\nimport { defineIntegration } from '@sentry/core';\nimport { generateInstrumentOnce } from '@sentry/node-core';\nimport { AmqplibInstrumentation } from './vendored/instrumentation';\n\nconst INTEGRATION_NAME = 'Amqplib' as const;\n\nexport const instrumentAmqplib = generateInstrumentOnce(INTEGRATION_NAME, () => new AmqplibInstrumentation());\n\nconst _amqplibIntegration = (() => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n instrumentAmqplib();\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for the [amqplib](https://www.npmjs.com/package/amqplib) library.\n *\n * For more information, see the [`amqplibIntegration` documentation](https://docs.sentry.io/platforms/javascript/guides/node/configuration/integrations/amqplib/).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.amqplibIntegration()],\n * });\n * ```\n */\nexport const amqplibIntegration = defineIntegration(_amqplibIntegration);\n"],"names":[],"mappings":";;;;AAKA,MAAM,gBAAA,GAAmB,SAAA;AAElB,MAAM,oBAAoB,sBAAA,CAAuB,gBAAA,EAAkB,MAAM,IAAI,wBAAwB;AAE5G,MAAM,uBAAuB,MAAM;AACjC,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,gBAAA;AAAA,IACN,SAAA,GAAY;AACV,MAAA,iBAAA,EAAkB;AAAA,IACpB;AAAA,GACF;AACF,CAAA,CAAA;AAgBO,MAAM,kBAAA,GAAqB,kBAAkB,mBAAmB;;;;"}