@sentry/node 9.32.0 → 9.34.0-alpha.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 (524) hide show
  1. package/build/cjs/index.js +50 -56
  2. package/build/cjs/index.js.map +1 -1
  3. package/build/cjs/integrations/featureFlagShims/launchDarkly.js +43 -0
  4. package/build/cjs/integrations/featureFlagShims/launchDarkly.js.map +1 -0
  5. package/build/cjs/integrations/featureFlagShims/openFeature.js +55 -0
  6. package/build/cjs/integrations/featureFlagShims/openFeature.js.map +1 -0
  7. package/build/cjs/integrations/featureFlagShims/statsig.js +23 -0
  8. package/build/cjs/integrations/featureFlagShims/statsig.js.map +1 -0
  9. package/build/cjs/integrations/featureFlagShims/unleash.js +23 -0
  10. package/build/cjs/integrations/featureFlagShims/unleash.js.map +1 -0
  11. package/build/cjs/integrations/fs.js +2 -2
  12. package/build/cjs/integrations/fs.js.map +1 -1
  13. package/build/cjs/integrations/http/index.js +7 -11
  14. package/build/cjs/integrations/http/index.js.map +1 -1
  15. package/build/cjs/integrations/node-fetch/index.js +4 -5
  16. package/build/cjs/integrations/node-fetch/index.js.map +1 -1
  17. package/build/cjs/integrations/tracing/amqplib.js +4 -5
  18. package/build/cjs/integrations/tracing/amqplib.js.map +1 -1
  19. package/build/cjs/integrations/tracing/connect.js +3 -4
  20. package/build/cjs/integrations/tracing/connect.js.map +1 -1
  21. package/build/cjs/integrations/tracing/dataloader.js +3 -3
  22. package/build/cjs/integrations/tracing/dataloader.js.map +1 -1
  23. package/build/cjs/integrations/tracing/express.js +5 -7
  24. package/build/cjs/integrations/tracing/express.js.map +1 -1
  25. package/build/cjs/integrations/tracing/fastify/fastify-otel/index.js +5 -10
  26. package/build/cjs/integrations/tracing/fastify/fastify-otel/index.js.map +1 -1
  27. package/build/cjs/integrations/tracing/fastify/index.js +47 -10
  28. package/build/cjs/integrations/tracing/fastify/index.js.map +1 -1
  29. package/build/cjs/integrations/tracing/genericPool.js +3 -3
  30. package/build/cjs/integrations/tracing/genericPool.js.map +1 -1
  31. package/build/cjs/integrations/tracing/graphql.js +3 -4
  32. package/build/cjs/integrations/tracing/graphql.js.map +1 -1
  33. package/build/cjs/integrations/tracing/hapi/index.js +3 -4
  34. package/build/cjs/integrations/tracing/hapi/index.js.map +1 -1
  35. package/build/cjs/integrations/tracing/index.js +3 -0
  36. package/build/cjs/integrations/tracing/index.js.map +1 -1
  37. package/build/cjs/integrations/tracing/kafka.js +4 -5
  38. package/build/cjs/integrations/tracing/kafka.js.map +1 -1
  39. package/build/cjs/integrations/tracing/knex.js +3 -3
  40. package/build/cjs/integrations/tracing/knex.js.map +1 -1
  41. package/build/cjs/integrations/tracing/koa.js +4 -6
  42. package/build/cjs/integrations/tracing/koa.js.map +1 -1
  43. package/build/cjs/integrations/tracing/lrumemoizer.js +2 -2
  44. package/build/cjs/integrations/tracing/lrumemoizer.js.map +1 -1
  45. package/build/cjs/integrations/tracing/mongo.js +3 -4
  46. package/build/cjs/integrations/tracing/mongo.js.map +1 -1
  47. package/build/cjs/integrations/tracing/mongoose.js +3 -4
  48. package/build/cjs/integrations/tracing/mongoose.js.map +1 -1
  49. package/build/cjs/integrations/tracing/mysql.js +2 -2
  50. package/build/cjs/integrations/tracing/mysql.js.map +1 -1
  51. package/build/cjs/integrations/tracing/mysql2.js +3 -4
  52. package/build/cjs/integrations/tracing/mysql2.js.map +1 -1
  53. package/build/cjs/integrations/tracing/postgres.js +3 -4
  54. package/build/cjs/integrations/tracing/postgres.js.map +1 -1
  55. package/build/cjs/integrations/tracing/postgresjs.js +282 -0
  56. package/build/cjs/integrations/tracing/postgresjs.js.map +1 -0
  57. package/build/cjs/integrations/tracing/prisma.js +2 -2
  58. package/build/cjs/integrations/tracing/prisma.js.map +1 -1
  59. package/build/cjs/integrations/tracing/redis.js +3 -3
  60. package/build/cjs/integrations/tracing/redis.js.map +1 -1
  61. package/build/cjs/integrations/tracing/tedious.js +3 -3
  62. package/build/cjs/integrations/tracing/tedious.js.map +1 -1
  63. package/build/cjs/integrations/tracing/vercelai/index.js +9 -185
  64. package/build/cjs/integrations/tracing/vercelai/index.js.map +1 -1
  65. package/build/cjs/preload.js +2 -2
  66. package/build/cjs/preload.js.map +1 -1
  67. package/build/cjs/sdk/index.js +22 -203
  68. package/build/cjs/sdk/index.js.map +1 -1
  69. package/build/cjs/sdk/initOtel.js +4 -22
  70. package/build/cjs/sdk/initOtel.js.map +1 -1
  71. package/build/esm/index.js +7 -21
  72. package/build/esm/index.js.map +1 -1
  73. package/build/esm/integrations/featureFlagShims/launchDarkly.js +40 -0
  74. package/build/esm/integrations/featureFlagShims/launchDarkly.js.map +1 -0
  75. package/build/esm/integrations/featureFlagShims/openFeature.js +52 -0
  76. package/build/esm/integrations/featureFlagShims/openFeature.js.map +1 -0
  77. package/build/esm/integrations/featureFlagShims/statsig.js +21 -0
  78. package/build/esm/integrations/featureFlagShims/statsig.js.map +1 -0
  79. package/build/esm/integrations/featureFlagShims/unleash.js +21 -0
  80. package/build/esm/integrations/featureFlagShims/unleash.js.map +1 -0
  81. package/build/esm/integrations/fs.js +1 -1
  82. package/build/esm/integrations/fs.js.map +1 -1
  83. package/build/esm/integrations/http/index.js +1 -5
  84. package/build/esm/integrations/http/index.js.map +1 -1
  85. package/build/esm/integrations/node-fetch/index.js +2 -3
  86. package/build/esm/integrations/node-fetch/index.js.map +1 -1
  87. package/build/esm/integrations/tracing/amqplib.js +1 -2
  88. package/build/esm/integrations/tracing/amqplib.js.map +1 -1
  89. package/build/esm/integrations/tracing/connect.js +1 -2
  90. package/build/esm/integrations/tracing/connect.js.map +1 -1
  91. package/build/esm/integrations/tracing/dataloader.js +1 -1
  92. package/build/esm/integrations/tracing/dataloader.js.map +1 -1
  93. package/build/esm/integrations/tracing/express.js +2 -4
  94. package/build/esm/integrations/tracing/express.js.map +1 -1
  95. package/build/esm/integrations/tracing/fastify/fastify-otel/index.js +5 -10
  96. package/build/esm/integrations/tracing/fastify/fastify-otel/index.js.map +1 -1
  97. package/build/esm/integrations/tracing/fastify/index.js +46 -9
  98. package/build/esm/integrations/tracing/fastify/index.js.map +1 -1
  99. package/build/esm/integrations/tracing/genericPool.js +1 -1
  100. package/build/esm/integrations/tracing/genericPool.js.map +1 -1
  101. package/build/esm/integrations/tracing/graphql.js +2 -3
  102. package/build/esm/integrations/tracing/graphql.js.map +1 -1
  103. package/build/esm/integrations/tracing/hapi/index.js +1 -2
  104. package/build/esm/integrations/tracing/hapi/index.js.map +1 -1
  105. package/build/esm/integrations/tracing/index.js +3 -0
  106. package/build/esm/integrations/tracing/index.js.map +1 -1
  107. package/build/esm/integrations/tracing/kafka.js +1 -2
  108. package/build/esm/integrations/tracing/kafka.js.map +1 -1
  109. package/build/esm/integrations/tracing/knex.js +1 -1
  110. package/build/esm/integrations/tracing/knex.js.map +1 -1
  111. package/build/esm/integrations/tracing/koa.js +2 -4
  112. package/build/esm/integrations/tracing/koa.js.map +1 -1
  113. package/build/esm/integrations/tracing/lrumemoizer.js +1 -1
  114. package/build/esm/integrations/tracing/lrumemoizer.js.map +1 -1
  115. package/build/esm/integrations/tracing/mongo.js +1 -2
  116. package/build/esm/integrations/tracing/mongo.js.map +1 -1
  117. package/build/esm/integrations/tracing/mongoose.js +1 -2
  118. package/build/esm/integrations/tracing/mongoose.js.map +1 -1
  119. package/build/esm/integrations/tracing/mysql.js +1 -1
  120. package/build/esm/integrations/tracing/mysql.js.map +1 -1
  121. package/build/esm/integrations/tracing/mysql2.js +1 -2
  122. package/build/esm/integrations/tracing/mysql2.js.map +1 -1
  123. package/build/esm/integrations/tracing/postgres.js +1 -2
  124. package/build/esm/integrations/tracing/postgres.js.map +1 -1
  125. package/build/esm/integrations/tracing/postgresjs.js +278 -0
  126. package/build/esm/integrations/tracing/postgresjs.js.map +1 -0
  127. package/build/esm/integrations/tracing/prisma.js +1 -1
  128. package/build/esm/integrations/tracing/prisma.js.map +1 -1
  129. package/build/esm/integrations/tracing/redis.js +1 -1
  130. package/build/esm/integrations/tracing/redis.js.map +1 -1
  131. package/build/esm/integrations/tracing/tedious.js +1 -1
  132. package/build/esm/integrations/tracing/tedious.js.map +1 -1
  133. package/build/esm/integrations/tracing/vercelai/index.js +9 -185
  134. package/build/esm/integrations/tracing/vercelai/index.js.map +1 -1
  135. package/build/esm/package.json +1 -1
  136. package/build/esm/preload.js +1 -1
  137. package/build/esm/preload.js.map +1 -1
  138. package/build/esm/sdk/index.js +22 -202
  139. package/build/esm/sdk/index.js.map +1 -1
  140. package/build/esm/sdk/initOtel.js +3 -21
  141. package/build/esm/sdk/initOtel.js.map +1 -1
  142. package/build/types/index.d.ts +4 -21
  143. package/build/types/index.d.ts.map +1 -1
  144. package/build/types/integrations/featureFlagShims/index.d.ts +5 -0
  145. package/build/types/integrations/featureFlagShims/index.d.ts.map +1 -0
  146. package/build/types/integrations/featureFlagShims/launchDarkly.d.ts +10 -0
  147. package/build/types/integrations/featureFlagShims/launchDarkly.d.ts.map +1 -0
  148. package/build/types/integrations/featureFlagShims/openFeature.d.ts +23 -0
  149. package/build/types/integrations/featureFlagShims/openFeature.d.ts.map +1 -0
  150. package/build/types/integrations/featureFlagShims/statsig.d.ts +6 -0
  151. package/build/types/integrations/featureFlagShims/statsig.d.ts.map +1 -0
  152. package/build/types/integrations/featureFlagShims/unleash.d.ts +6 -0
  153. package/build/types/integrations/featureFlagShims/unleash.d.ts.map +1 -0
  154. package/build/types/integrations/http/index.d.ts +1 -1
  155. package/build/types/integrations/http/index.d.ts.map +1 -1
  156. package/build/types/integrations/node-fetch/index.d.ts.map +1 -1
  157. package/build/types/integrations/tracing/amqplib.d.ts.map +1 -1
  158. package/build/types/integrations/tracing/connect.d.ts.map +1 -1
  159. package/build/types/integrations/tracing/express.d.ts.map +1 -1
  160. package/build/types/integrations/tracing/fastify/index.d.ts +1 -1
  161. package/build/types/integrations/tracing/fastify/index.d.ts.map +1 -1
  162. package/build/types/integrations/tracing/graphql.d.ts.map +1 -1
  163. package/build/types/integrations/tracing/hapi/index.d.ts.map +1 -1
  164. package/build/types/integrations/tracing/index.d.ts.map +1 -1
  165. package/build/types/integrations/tracing/kafka.d.ts.map +1 -1
  166. package/build/types/integrations/tracing/koa.d.ts.map +1 -1
  167. package/build/types/integrations/tracing/mongo.d.ts.map +1 -1
  168. package/build/types/integrations/tracing/mongoose.d.ts.map +1 -1
  169. package/build/types/integrations/tracing/mysql2.d.ts.map +1 -1
  170. package/build/types/integrations/tracing/postgres.d.ts.map +1 -1
  171. package/build/types/integrations/tracing/postgresjs.d.ts +81 -0
  172. package/build/types/integrations/tracing/postgresjs.d.ts.map +1 -0
  173. package/build/types/integrations/tracing/vercelai/index.d.ts +5 -7
  174. package/build/types/integrations/tracing/vercelai/index.d.ts.map +1 -1
  175. package/build/types/sdk/index.d.ts +2 -6
  176. package/build/types/sdk/index.d.ts.map +1 -1
  177. package/build/types/sdk/initOtel.d.ts +1 -1
  178. package/build/types/sdk/initOtel.d.ts.map +1 -1
  179. package/build/types/types.d.ts +1 -1
  180. package/build/types/types.d.ts.map +1 -1
  181. package/build/types-ts3.8/index.d.ts +4 -21
  182. package/build/types-ts3.8/integrations/featureFlagShims/index.d.ts +5 -0
  183. package/build/types-ts3.8/integrations/featureFlagShims/launchDarkly.d.ts +10 -0
  184. package/build/types-ts3.8/integrations/featureFlagShims/openFeature.d.ts +23 -0
  185. package/build/types-ts3.8/integrations/featureFlagShims/statsig.d.ts +6 -0
  186. package/build/types-ts3.8/integrations/featureFlagShims/unleash.d.ts +6 -0
  187. package/build/types-ts3.8/integrations/http/index.d.ts +1 -1
  188. package/build/types-ts3.8/integrations/tracing/fastify/index.d.ts +1 -1
  189. package/build/types-ts3.8/integrations/tracing/postgresjs.d.ts +81 -0
  190. package/build/types-ts3.8/integrations/tracing/vercelai/index.d.ts +5 -7
  191. package/build/types-ts3.8/sdk/index.d.ts +2 -6
  192. package/build/types-ts3.8/sdk/initOtel.d.ts +1 -1
  193. package/build/types-ts3.8/types.d.ts +1 -1
  194. package/package.json +4 -3
  195. package/build/cjs/cron/common.js +0 -56
  196. package/build/cjs/cron/common.js.map +0 -1
  197. package/build/cjs/cron/cron.js +0 -112
  198. package/build/cjs/cron/cron.js.map +0 -1
  199. package/build/cjs/cron/index.js +0 -15
  200. package/build/cjs/cron/index.js.map +0 -1
  201. package/build/cjs/cron/node-cron.js +0 -71
  202. package/build/cjs/cron/node-cron.js.map +0 -1
  203. package/build/cjs/cron/node-schedule.js +0 -65
  204. package/build/cjs/cron/node-schedule.js.map +0 -1
  205. package/build/cjs/integrations/anr/index.js +0 -238
  206. package/build/cjs/integrations/anr/index.js.map +0 -1
  207. package/build/cjs/integrations/childProcess.js +0 -100
  208. package/build/cjs/integrations/childProcess.js.map +0 -1
  209. package/build/cjs/integrations/context.js +0 -457
  210. package/build/cjs/integrations/context.js.map +0 -1
  211. package/build/cjs/integrations/contextlines.js +0 -405
  212. package/build/cjs/integrations/contextlines.js.map +0 -1
  213. package/build/cjs/integrations/http/SentryHttpInstrumentation.js +0 -558
  214. package/build/cjs/integrations/http/SentryHttpInstrumentation.js.map +0 -1
  215. package/build/cjs/integrations/local-variables/common.js +0 -69
  216. package/build/cjs/integrations/local-variables/common.js.map +0 -1
  217. package/build/cjs/integrations/local-variables/index.js +0 -12
  218. package/build/cjs/integrations/local-variables/index.js.map +0 -1
  219. package/build/cjs/integrations/local-variables/local-variables-async.js +0 -143
  220. package/build/cjs/integrations/local-variables/local-variables-async.js.map +0 -1
  221. package/build/cjs/integrations/local-variables/local-variables-sync.js +0 -410
  222. package/build/cjs/integrations/local-variables/local-variables-sync.js.map +0 -1
  223. package/build/cjs/integrations/modules.js +0 -135
  224. package/build/cjs/integrations/modules.js.map +0 -1
  225. package/build/cjs/integrations/node-fetch/SentryNodeFetchInstrumentation.js +0 -291
  226. package/build/cjs/integrations/node-fetch/SentryNodeFetchInstrumentation.js.map +0 -1
  227. package/build/cjs/integrations/onuncaughtexception.js +0 -134
  228. package/build/cjs/integrations/onuncaughtexception.js.map +0 -1
  229. package/build/cjs/integrations/onunhandledrejection.js +0 -89
  230. package/build/cjs/integrations/onunhandledrejection.js.map +0 -1
  231. package/build/cjs/integrations/processSession.js +0 -36
  232. package/build/cjs/integrations/processSession.js.map +0 -1
  233. package/build/cjs/integrations/spotlight.js +0 -101
  234. package/build/cjs/integrations/spotlight.js.map +0 -1
  235. package/build/cjs/integrations/tracing/vercelai/ai_sdk_attributes.js +0 -168
  236. package/build/cjs/integrations/tracing/vercelai/ai_sdk_attributes.js.map +0 -1
  237. package/build/cjs/integrations/winston.js +0 -151
  238. package/build/cjs/integrations/winston.js.map +0 -1
  239. package/build/cjs/logs/capture.js +0 -29
  240. package/build/cjs/logs/capture.js.map +0 -1
  241. package/build/cjs/logs/exports.js +0 -178
  242. package/build/cjs/logs/exports.js.map +0 -1
  243. package/build/cjs/nodeVersion.js +0 -12
  244. package/build/cjs/nodeVersion.js.map +0 -1
  245. package/build/cjs/otel/contextManager.js +0 -16
  246. package/build/cjs/otel/contextManager.js.map +0 -1
  247. package/build/cjs/otel/instrument.js +0 -139
  248. package/build/cjs/otel/instrument.js.map +0 -1
  249. package/build/cjs/proxy/base.js +0 -122
  250. package/build/cjs/proxy/base.js.map +0 -1
  251. package/build/cjs/proxy/index.js +0 -173
  252. package/build/cjs/proxy/index.js.map +0 -1
  253. package/build/cjs/proxy/parse-proxy-response.js +0 -104
  254. package/build/cjs/proxy/parse-proxy-response.js.map +0 -1
  255. package/build/cjs/sdk/api.js +0 -117
  256. package/build/cjs/sdk/api.js.map +0 -1
  257. package/build/cjs/sdk/client.js +0 -156
  258. package/build/cjs/sdk/client.js.map +0 -1
  259. package/build/cjs/transports/http.js +0 -158
  260. package/build/cjs/transports/http.js.map +0 -1
  261. package/build/cjs/utils/addOriginToSpan.js +0 -11
  262. package/build/cjs/utils/addOriginToSpan.js.map +0 -1
  263. package/build/cjs/utils/baggage.js +0 -36
  264. package/build/cjs/utils/baggage.js.map +0 -1
  265. package/build/cjs/utils/commonjs.js +0 -13
  266. package/build/cjs/utils/commonjs.js.map +0 -1
  267. package/build/cjs/utils/createMissingInstrumentationContext.js +0 -11
  268. package/build/cjs/utils/createMissingInstrumentationContext.js.map +0 -1
  269. package/build/cjs/utils/debug.js +0 -23
  270. package/build/cjs/utils/debug.js.map +0 -1
  271. package/build/cjs/utils/ensureIsWrapped.js +0 -41
  272. package/build/cjs/utils/ensureIsWrapped.js.map +0 -1
  273. package/build/cjs/utils/envToBool.js +0 -32
  274. package/build/cjs/utils/envToBool.js.map +0 -1
  275. package/build/cjs/utils/errorhandling.js +0 -42
  276. package/build/cjs/utils/errorhandling.js.map +0 -1
  277. package/build/cjs/utils/getRequestUrl.js +0 -18
  278. package/build/cjs/utils/getRequestUrl.js.map +0 -1
  279. package/build/cjs/utils/module.js +0 -60
  280. package/build/cjs/utils/module.js.map +0 -1
  281. package/build/esm/cron/common.js +0 -54
  282. package/build/esm/cron/common.js.map +0 -1
  283. package/build/esm/cron/cron.js +0 -110
  284. package/build/esm/cron/cron.js.map +0 -1
  285. package/build/esm/cron/index.js +0 -13
  286. package/build/esm/cron/index.js.map +0 -1
  287. package/build/esm/cron/node-cron.js +0 -69
  288. package/build/esm/cron/node-cron.js.map +0 -1
  289. package/build/esm/cron/node-schedule.js +0 -63
  290. package/build/esm/cron/node-schedule.js.map +0 -1
  291. package/build/esm/integrations/anr/index.js +0 -234
  292. package/build/esm/integrations/anr/index.js.map +0 -1
  293. package/build/esm/integrations/anr/worker-script.js +0 -2
  294. package/build/esm/integrations/childProcess.js +0 -98
  295. package/build/esm/integrations/childProcess.js.map +0 -1
  296. package/build/esm/integrations/context.js +0 -451
  297. package/build/esm/integrations/context.js.map +0 -1
  298. package/build/esm/integrations/contextlines.js +0 -399
  299. package/build/esm/integrations/contextlines.js.map +0 -1
  300. package/build/esm/integrations/http/SentryHttpInstrumentation.js +0 -555
  301. package/build/esm/integrations/http/SentryHttpInstrumentation.js.map +0 -1
  302. package/build/esm/integrations/local-variables/common.js +0 -64
  303. package/build/esm/integrations/local-variables/common.js.map +0 -1
  304. package/build/esm/integrations/local-variables/index.js +0 -10
  305. package/build/esm/integrations/local-variables/index.js.map +0 -1
  306. package/build/esm/integrations/local-variables/local-variables-async.js +0 -140
  307. package/build/esm/integrations/local-variables/local-variables-async.js.map +0 -1
  308. package/build/esm/integrations/local-variables/local-variables-sync.js +0 -405
  309. package/build/esm/integrations/local-variables/local-variables-sync.js.map +0 -1
  310. package/build/esm/integrations/local-variables/worker-script.js +0 -2
  311. package/build/esm/integrations/modules.js +0 -133
  312. package/build/esm/integrations/modules.js.map +0 -1
  313. package/build/esm/integrations/node-fetch/SentryNodeFetchInstrumentation.js +0 -289
  314. package/build/esm/integrations/node-fetch/SentryNodeFetchInstrumentation.js.map +0 -1
  315. package/build/esm/integrations/onuncaughtexception.js +0 -131
  316. package/build/esm/integrations/onuncaughtexception.js.map +0 -1
  317. package/build/esm/integrations/onunhandledrejection.js +0 -86
  318. package/build/esm/integrations/onunhandledrejection.js.map +0 -1
  319. package/build/esm/integrations/processSession.js +0 -34
  320. package/build/esm/integrations/processSession.js.map +0 -1
  321. package/build/esm/integrations/spotlight.js +0 -98
  322. package/build/esm/integrations/spotlight.js.map +0 -1
  323. package/build/esm/integrations/tracing/vercelai/ai_sdk_attributes.js +0 -152
  324. package/build/esm/integrations/tracing/vercelai/ai_sdk_attributes.js.map +0 -1
  325. package/build/esm/integrations/winston.js +0 -149
  326. package/build/esm/integrations/winston.js.map +0 -1
  327. package/build/esm/logs/capture.js +0 -27
  328. package/build/esm/logs/capture.js.map +0 -1
  329. package/build/esm/logs/exports.js +0 -170
  330. package/build/esm/logs/exports.js.map +0 -1
  331. package/build/esm/nodeVersion.js +0 -8
  332. package/build/esm/nodeVersion.js.map +0 -1
  333. package/build/esm/otel/contextManager.js +0 -14
  334. package/build/esm/otel/contextManager.js.map +0 -1
  335. package/build/esm/otel/instrument.js +0 -135
  336. package/build/esm/otel/instrument.js.map +0 -1
  337. package/build/esm/proxy/base.js +0 -120
  338. package/build/esm/proxy/base.js.map +0 -1
  339. package/build/esm/proxy/index.js +0 -171
  340. package/build/esm/proxy/index.js.map +0 -1
  341. package/build/esm/proxy/parse-proxy-response.js +0 -102
  342. package/build/esm/proxy/parse-proxy-response.js.map +0 -1
  343. package/build/esm/sdk/api.js +0 -114
  344. package/build/esm/sdk/api.js.map +0 -1
  345. package/build/esm/sdk/client.js +0 -154
  346. package/build/esm/sdk/client.js.map +0 -1
  347. package/build/esm/transports/http.js +0 -156
  348. package/build/esm/transports/http.js.map +0 -1
  349. package/build/esm/utils/addOriginToSpan.js +0 -9
  350. package/build/esm/utils/addOriginToSpan.js.map +0 -1
  351. package/build/esm/utils/baggage.js +0 -34
  352. package/build/esm/utils/baggage.js.map +0 -1
  353. package/build/esm/utils/commonjs.js +0 -11
  354. package/build/esm/utils/commonjs.js.map +0 -1
  355. package/build/esm/utils/createMissingInstrumentationContext.js +0 -9
  356. package/build/esm/utils/createMissingInstrumentationContext.js.map +0 -1
  357. package/build/esm/utils/debug.js +0 -21
  358. package/build/esm/utils/debug.js.map +0 -1
  359. package/build/esm/utils/ensureIsWrapped.js +0 -39
  360. package/build/esm/utils/ensureIsWrapped.js.map +0 -1
  361. package/build/esm/utils/envToBool.js +0 -28
  362. package/build/esm/utils/envToBool.js.map +0 -1
  363. package/build/esm/utils/errorhandling.js +0 -40
  364. package/build/esm/utils/errorhandling.js.map +0 -1
  365. package/build/esm/utils/getRequestUrl.js +0 -16
  366. package/build/esm/utils/getRequestUrl.js.map +0 -1
  367. package/build/esm/utils/module.js +0 -58
  368. package/build/esm/utils/module.js.map +0 -1
  369. package/build/types/cron/common.d.ts +0 -5
  370. package/build/types/cron/common.d.ts.map +0 -1
  371. package/build/types/cron/cron.d.ts +0 -43
  372. package/build/types/cron/cron.d.ts.map +0 -1
  373. package/build/types/cron/index.d.ts +0 -10
  374. package/build/types/cron/index.d.ts.map +0 -1
  375. package/build/types/cron/node-cron.d.ts +0 -27
  376. package/build/types/cron/node-cron.d.ts.map +0 -1
  377. package/build/types/cron/node-schedule.d.ts +0 -19
  378. package/build/types/cron/node-schedule.d.ts.map +0 -1
  379. package/build/types/integrations/anr/common.d.ts +0 -52
  380. package/build/types/integrations/anr/common.d.ts.map +0 -1
  381. package/build/types/integrations/anr/index.d.ts +0 -13
  382. package/build/types/integrations/anr/index.d.ts.map +0 -1
  383. package/build/types/integrations/anr/worker.d.ts +0 -2
  384. package/build/types/integrations/anr/worker.d.ts.map +0 -1
  385. package/build/types/integrations/childProcess.d.ts +0 -20
  386. package/build/types/integrations/childProcess.d.ts.map +0 -1
  387. package/build/types/integrations/context.d.ts +0 -30
  388. package/build/types/integrations/context.d.ts.map +0 -1
  389. package/build/types/integrations/contextlines.d.ts +0 -31
  390. package/build/types/integrations/contextlines.d.ts.map +0 -1
  391. package/build/types/integrations/http/SentryHttpInstrumentation.d.ts +0 -131
  392. package/build/types/integrations/http/SentryHttpInstrumentation.d.ts.map +0 -1
  393. package/build/types/integrations/local-variables/common.d.ts +0 -66
  394. package/build/types/integrations/local-variables/common.d.ts.map +0 -1
  395. package/build/types/integrations/local-variables/index.d.ts +0 -4
  396. package/build/types/integrations/local-variables/index.d.ts.map +0 -1
  397. package/build/types/integrations/local-variables/local-variables-async.d.ts +0 -7
  398. package/build/types/integrations/local-variables/local-variables-async.d.ts.map +0 -1
  399. package/build/types/integrations/local-variables/local-variables-sync.d.ts +0 -34
  400. package/build/types/integrations/local-variables/local-variables-sync.d.ts.map +0 -1
  401. package/build/types/integrations/local-variables/worker.d.ts +0 -2
  402. package/build/types/integrations/local-variables/worker.d.ts.map +0 -1
  403. package/build/types/integrations/modules.d.ts +0 -17
  404. package/build/types/integrations/modules.d.ts.map +0 -1
  405. package/build/types/integrations/node-fetch/SentryNodeFetchInstrumentation.d.ts +0 -56
  406. package/build/types/integrations/node-fetch/SentryNodeFetchInstrumentation.d.ts.map +0 -1
  407. package/build/types/integrations/onuncaughtexception.d.ts +0 -31
  408. package/build/types/integrations/onuncaughtexception.d.ts.map +0 -1
  409. package/build/types/integrations/onunhandledrejection.d.ts +0 -23
  410. package/build/types/integrations/onunhandledrejection.d.ts.map +0 -1
  411. package/build/types/integrations/processSession.d.ts +0 -5
  412. package/build/types/integrations/processSession.d.ts.map +0 -1
  413. package/build/types/integrations/spotlight.d.ts +0 -18
  414. package/build/types/integrations/spotlight.d.ts.map +0 -1
  415. package/build/types/integrations/tracing/vercelai/ai_sdk_attributes.d.ts +0 -669
  416. package/build/types/integrations/tracing/vercelai/ai_sdk_attributes.d.ts.map +0 -1
  417. package/build/types/integrations/winston.d.ts +0 -44
  418. package/build/types/integrations/winston.d.ts.map +0 -1
  419. package/build/types/logs/capture.d.ts +0 -11
  420. package/build/types/logs/capture.d.ts.map +0 -1
  421. package/build/types/logs/exports.d.ts +0 -150
  422. package/build/types/logs/exports.d.ts.map +0 -1
  423. package/build/types/nodeVersion.d.ts +0 -8
  424. package/build/types/nodeVersion.d.ts.map +0 -1
  425. package/build/types/otel/contextManager.d.ts +0 -10
  426. package/build/types/otel/contextManager.d.ts.map +0 -1
  427. package/build/types/otel/instrument.d.ts +0 -23
  428. package/build/types/otel/instrument.d.ts.map +0 -1
  429. package/build/types/proxy/base.d.ts +0 -65
  430. package/build/types/proxy/base.d.ts.map +0 -1
  431. package/build/types/proxy/helpers.d.ts +0 -42
  432. package/build/types/proxy/helpers.d.ts.map +0 -1
  433. package/build/types/proxy/index.d.ts +0 -73
  434. package/build/types/proxy/index.d.ts.map +0 -1
  435. package/build/types/proxy/parse-proxy-response.d.ts +0 -43
  436. package/build/types/proxy/parse-proxy-response.d.ts.map +0 -1
  437. package/build/types/sdk/api.d.ts +0 -8
  438. package/build/types/sdk/api.d.ts.map +0 -1
  439. package/build/types/sdk/client.d.ts +0 -29
  440. package/build/types/sdk/client.d.ts.map +0 -1
  441. package/build/types/sdk/scope.d.ts +0 -7
  442. package/build/types/sdk/scope.d.ts.map +0 -1
  443. package/build/types/transports/http-module.d.ts +0 -31
  444. package/build/types/transports/http-module.d.ts.map +0 -1
  445. package/build/types/transports/http.d.ts +0 -21
  446. package/build/types/transports/http.d.ts.map +0 -1
  447. package/build/types/transports/index.d.ts +0 -3
  448. package/build/types/transports/index.d.ts.map +0 -1
  449. package/build/types/utils/addOriginToSpan.d.ts +0 -5
  450. package/build/types/utils/addOriginToSpan.d.ts.map +0 -1
  451. package/build/types/utils/baggage.d.ts +0 -6
  452. package/build/types/utils/baggage.d.ts.map +0 -1
  453. package/build/types/utils/commonjs.d.ts +0 -3
  454. package/build/types/utils/commonjs.d.ts.map +0 -1
  455. package/build/types/utils/createMissingInstrumentationContext.d.ts +0 -3
  456. package/build/types/utils/createMissingInstrumentationContext.d.ts.map +0 -1
  457. package/build/types/utils/debug.d.ts +0 -5
  458. package/build/types/utils/debug.d.ts.map +0 -1
  459. package/build/types/utils/ensureIsWrapped.d.ts +0 -5
  460. package/build/types/utils/ensureIsWrapped.d.ts.map +0 -1
  461. package/build/types/utils/entry-point.d.ts +0 -24
  462. package/build/types/utils/entry-point.d.ts.map +0 -1
  463. package/build/types/utils/envToBool.d.ts +0 -13
  464. package/build/types/utils/envToBool.d.ts.map +0 -1
  465. package/build/types/utils/errorhandling.d.ts +0 -5
  466. package/build/types/utils/errorhandling.d.ts.map +0 -1
  467. package/build/types/utils/getRequestUrl.d.ts +0 -5
  468. package/build/types/utils/getRequestUrl.d.ts.map +0 -1
  469. package/build/types/utils/module.d.ts +0 -3
  470. package/build/types/utils/module.d.ts.map +0 -1
  471. package/build/types/utils/prepareEvent.d.ts +0 -17
  472. package/build/types/utils/prepareEvent.d.ts.map +0 -1
  473. package/build/types-ts3.8/cron/common.d.ts +0 -5
  474. package/build/types-ts3.8/cron/cron.d.ts +0 -43
  475. package/build/types-ts3.8/cron/index.d.ts +0 -10
  476. package/build/types-ts3.8/cron/node-cron.d.ts +0 -27
  477. package/build/types-ts3.8/cron/node-schedule.d.ts +0 -19
  478. package/build/types-ts3.8/integrations/anr/common.d.ts +0 -52
  479. package/build/types-ts3.8/integrations/anr/index.d.ts +0 -13
  480. package/build/types-ts3.8/integrations/anr/worker.d.ts +0 -2
  481. package/build/types-ts3.8/integrations/childProcess.d.ts +0 -20
  482. package/build/types-ts3.8/integrations/context.d.ts +0 -30
  483. package/build/types-ts3.8/integrations/contextlines.d.ts +0 -31
  484. package/build/types-ts3.8/integrations/http/SentryHttpInstrumentation.d.ts +0 -133
  485. package/build/types-ts3.8/integrations/local-variables/common.d.ts +0 -66
  486. package/build/types-ts3.8/integrations/local-variables/index.d.ts +0 -4
  487. package/build/types-ts3.8/integrations/local-variables/local-variables-async.d.ts +0 -7
  488. package/build/types-ts3.8/integrations/local-variables/local-variables-sync.d.ts +0 -34
  489. package/build/types-ts3.8/integrations/local-variables/worker.d.ts +0 -2
  490. package/build/types-ts3.8/integrations/modules.d.ts +0 -17
  491. package/build/types-ts3.8/integrations/node-fetch/SentryNodeFetchInstrumentation.d.ts +0 -56
  492. package/build/types-ts3.8/integrations/onuncaughtexception.d.ts +0 -31
  493. package/build/types-ts3.8/integrations/onunhandledrejection.d.ts +0 -23
  494. package/build/types-ts3.8/integrations/processSession.d.ts +0 -5
  495. package/build/types-ts3.8/integrations/spotlight.d.ts +0 -18
  496. package/build/types-ts3.8/integrations/tracing/vercelai/ai_sdk_attributes.d.ts +0 -669
  497. package/build/types-ts3.8/integrations/winston.d.ts +0 -44
  498. package/build/types-ts3.8/logs/capture.d.ts +0 -18
  499. package/build/types-ts3.8/logs/exports.d.ts +0 -150
  500. package/build/types-ts3.8/nodeVersion.d.ts +0 -8
  501. package/build/types-ts3.8/otel/contextManager.d.ts +0 -10
  502. package/build/types-ts3.8/otel/instrument.d.ts +0 -23
  503. package/build/types-ts3.8/proxy/base.d.ts +0 -60
  504. package/build/types-ts3.8/proxy/helpers.d.ts +0 -38
  505. package/build/types-ts3.8/proxy/index.d.ts +0 -74
  506. package/build/types-ts3.8/proxy/parse-proxy-response.d.ts +0 -40
  507. package/build/types-ts3.8/sdk/api.d.ts +0 -8
  508. package/build/types-ts3.8/sdk/client.d.ts +0 -32
  509. package/build/types-ts3.8/sdk/scope.d.ts +0 -7
  510. package/build/types-ts3.8/transports/http-module.d.ts +0 -28
  511. package/build/types-ts3.8/transports/http.d.ts +0 -20
  512. package/build/types-ts3.8/transports/index.d.ts +0 -3
  513. package/build/types-ts3.8/utils/addOriginToSpan.d.ts +0 -5
  514. package/build/types-ts3.8/utils/baggage.d.ts +0 -6
  515. package/build/types-ts3.8/utils/commonjs.d.ts +0 -3
  516. package/build/types-ts3.8/utils/createMissingInstrumentationContext.d.ts +0 -3
  517. package/build/types-ts3.8/utils/debug.d.ts +0 -5
  518. package/build/types-ts3.8/utils/ensureIsWrapped.d.ts +0 -5
  519. package/build/types-ts3.8/utils/entry-point.d.ts +0 -24
  520. package/build/types-ts3.8/utils/envToBool.d.ts +0 -13
  521. package/build/types-ts3.8/utils/errorhandling.d.ts +0 -5
  522. package/build/types-ts3.8/utils/getRequestUrl.d.ts +0 -5
  523. package/build/types-ts3.8/utils/module.d.ts +0 -3
  524. package/build/types-ts3.8/utils/prepareEvent.d.ts +0 -17
@@ -1,13 +1,11 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
 
3
3
  const core = require('@sentry/core');
4
- const instrument = require('../../../otel/instrument.js');
5
- const addOriginToSpan = require('../../../utils/addOriginToSpan.js');
6
- const ai_sdk_attributes = require('./ai_sdk_attributes.js');
4
+ const nodeCore = require('@sentry/node-core');
7
5
  const constants = require('./constants.js');
8
6
  const instrumentation = require('./instrumentation.js');
9
7
 
10
- const instrumentVercelAi = instrument.generateInstrumentOnce(constants.INTEGRATION_NAME, () => new instrumentation.SentryVercelAiInstrumentation({}));
8
+ const instrumentVercelAi = nodeCore.generateInstrumentOnce(constants.INTEGRATION_NAME, () => new instrumentation.SentryVercelAiInstrumentation({}));
11
9
 
12
10
  /**
13
11
  * Determines if the integration should be forced based on environment and package availability.
@@ -28,175 +26,14 @@ const _vercelAIIntegration = ((options = {}) => {
28
26
  instrumentation = instrumentVercelAi();
29
27
  },
30
28
  afterAllSetup(client) {
31
- function registerProcessors() {
32
- client.on('spanStart', span => {
33
- const { data: attributes, description: name } = core.spanToJSON(span);
34
-
35
- if (!name) {
36
- return;
37
- }
38
-
39
- // Tool call spans
40
- // https://ai-sdk.dev/docs/ai-sdk-core/telemetry#tool-call-spans
41
- if (
42
- attributes[ai_sdk_attributes.AI_TOOL_CALL_NAME_ATTRIBUTE] &&
43
- attributes[ai_sdk_attributes.AI_TOOL_CALL_ID_ATTRIBUTE] &&
44
- name === 'ai.toolCall'
45
- ) {
46
- addOriginToSpan.addOriginToSpan(span, 'auto.vercelai.otel');
47
- span.setAttribute(core.SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.execute_tool');
48
- span.setAttribute('gen_ai.tool.call.id', attributes[ai_sdk_attributes.AI_TOOL_CALL_ID_ATTRIBUTE]);
49
- span.setAttribute('gen_ai.tool.name', attributes[ai_sdk_attributes.AI_TOOL_CALL_NAME_ATTRIBUTE]);
50
- span.updateName(`execute_tool ${attributes[ai_sdk_attributes.AI_TOOL_CALL_NAME_ATTRIBUTE]}`);
51
- return;
52
- }
53
-
54
- // The AI and Provider must be defined for generate, stream, and embed spans.
55
- // The id of the model
56
- const aiModelId = attributes[ai_sdk_attributes.AI_MODEL_ID_ATTRIBUTE];
57
- // the provider of the model
58
- const aiModelProvider = attributes[ai_sdk_attributes.AI_MODEL_PROVIDER_ATTRIBUTE];
59
- if (typeof aiModelId !== 'string' || typeof aiModelProvider !== 'string' || !aiModelId || !aiModelProvider) {
60
- return;
61
- }
62
-
63
- addOriginToSpan.addOriginToSpan(span, 'auto.vercelai.otel');
64
-
65
- const nameWthoutAi = name.replace('ai.', '');
66
- span.setAttribute('ai.pipeline.name', nameWthoutAi);
67
- span.updateName(nameWthoutAi);
68
-
69
- // If a Telemetry name is set and it is a pipeline span, use that as the operation name
70
- const functionId = attributes[ai_sdk_attributes.AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE];
71
- if (functionId && typeof functionId === 'string' && name.split('.').length - 1 === 1) {
72
- span.updateName(`${nameWthoutAi} ${functionId}`);
73
- span.setAttribute('ai.pipeline.name', functionId);
74
- }
75
-
76
- if (attributes[ai_sdk_attributes.AI_PROMPT_ATTRIBUTE]) {
77
- span.setAttribute('gen_ai.prompt', attributes[ai_sdk_attributes.AI_PROMPT_ATTRIBUTE]);
78
- }
79
- if (attributes[ai_sdk_attributes.AI_MODEL_ID_ATTRIBUTE] && !attributes[ai_sdk_attributes.GEN_AI_RESPONSE_MODEL_ATTRIBUTE]) {
80
- span.setAttribute(ai_sdk_attributes.GEN_AI_RESPONSE_MODEL_ATTRIBUTE, attributes[ai_sdk_attributes.AI_MODEL_ID_ATTRIBUTE]);
81
- }
82
- span.setAttribute('ai.streaming', name.includes('stream'));
83
-
84
- // Generate Spans
85
- if (name === 'ai.generateText') {
86
- span.setAttribute(core.SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.invoke_agent');
87
- return;
88
- }
89
-
90
- if (name === 'ai.generateText.doGenerate') {
91
- span.setAttribute(core.SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.generate_text');
92
- span.updateName(`generate_text ${attributes[ai_sdk_attributes.AI_MODEL_ID_ATTRIBUTE]}`);
93
- return;
94
- }
95
-
96
- if (name === 'ai.streamText') {
97
- span.setAttribute(core.SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.invoke_agent');
98
- return;
99
- }
100
-
101
- if (name === 'ai.streamText.doStream') {
102
- span.setAttribute(core.SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.stream_text');
103
- span.updateName(`stream_text ${attributes[ai_sdk_attributes.AI_MODEL_ID_ATTRIBUTE]}`);
104
- return;
105
- }
106
-
107
- if (name === 'ai.generateObject') {
108
- span.setAttribute(core.SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.invoke_agent');
109
- return;
110
- }
111
-
112
- if (name === 'ai.generateObject.doGenerate') {
113
- span.setAttribute(core.SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.generate_object');
114
- span.updateName(`generate_object ${attributes[ai_sdk_attributes.AI_MODEL_ID_ATTRIBUTE]}`);
115
- return;
116
- }
117
-
118
- if (name === 'ai.streamObject') {
119
- span.setAttribute(core.SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.invoke_agent');
120
- return;
121
- }
122
-
123
- if (name === 'ai.streamObject.doStream') {
124
- span.setAttribute(core.SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.stream_object');
125
- span.updateName(`stream_object ${attributes[ai_sdk_attributes.AI_MODEL_ID_ATTRIBUTE]}`);
126
- return;
127
- }
128
-
129
- if (name === 'ai.embed') {
130
- span.setAttribute(core.SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.invoke_agent');
131
- return;
132
- }
133
-
134
- if (name === 'ai.embed.doEmbed') {
135
- span.setAttribute(core.SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.embed');
136
- span.updateName(`embed ${attributes[ai_sdk_attributes.AI_MODEL_ID_ATTRIBUTE]}`);
137
- return;
138
- }
139
-
140
- if (name === 'ai.embedMany') {
141
- span.setAttribute(core.SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.invoke_agent');
142
- return;
143
- }
144
-
145
- if (name === 'ai.embedMany.doEmbed') {
146
- span.setAttribute(core.SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.embed_many');
147
- span.updateName(`embed_many ${attributes[ai_sdk_attributes.AI_MODEL_ID_ATTRIBUTE]}`);
148
- return;
149
- }
150
-
151
- if (name.startsWith('ai.stream')) {
152
- span.setAttribute(core.SEMANTIC_ATTRIBUTE_SENTRY_OP, 'ai.run');
153
- return;
154
- }
155
- });
156
-
157
- client.addEventProcessor(event => {
158
- if (event.type === 'transaction' && event.spans?.length) {
159
- for (const span of event.spans) {
160
- const { data: attributes, description: name } = span;
161
-
162
- if (!name || span.origin !== 'auto.vercelai.otel') {
163
- continue;
164
- }
165
-
166
- renameAttributeKey(
167
- attributes,
168
- ai_sdk_attributes.AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE,
169
- ai_sdk_attributes.GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE,
170
- );
171
- renameAttributeKey(attributes, ai_sdk_attributes.AI_USAGE_PROMPT_TOKENS_ATTRIBUTE, ai_sdk_attributes.GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE);
172
- if (
173
- typeof attributes[ai_sdk_attributes.GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE] === 'number' &&
174
- typeof attributes[ai_sdk_attributes.GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] === 'number'
175
- ) {
176
- attributes['gen_ai.usage.total_tokens'] =
177
- attributes[ai_sdk_attributes.GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE] + attributes[ai_sdk_attributes.GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE];
178
- }
179
-
180
- // Rename AI SDK attributes to standardized gen_ai attributes
181
- renameAttributeKey(attributes, ai_sdk_attributes.AI_PROMPT_MESSAGES_ATTRIBUTE, 'gen_ai.request.messages');
182
- renameAttributeKey(attributes, ai_sdk_attributes.AI_RESPONSE_TEXT_ATTRIBUTE, 'gen_ai.response.text');
183
- renameAttributeKey(attributes, ai_sdk_attributes.AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, 'gen_ai.response.tool_calls');
184
- renameAttributeKey(attributes, ai_sdk_attributes.AI_PROMPT_TOOLS_ATTRIBUTE, 'gen_ai.request.available_tools');
185
- }
186
- }
187
-
188
- return event;
189
- });
190
- }
191
-
192
29
  // Auto-detect if we should force the integration when running with 'ai' package available
193
30
  // Note that this can only be detected if the 'Modules' integration is available, and running in CJS mode
194
31
  const shouldForce = options.force ?? shouldForceIntegration(client);
195
32
 
196
33
  if (shouldForce) {
197
- registerProcessors();
34
+ core.addVercelAiProcessors(client);
198
35
  } else {
199
- instrumentation?.callWhenPatched(registerProcessors);
36
+ instrumentation?.callWhenPatched(() => core.addVercelAiProcessors(client));
200
37
  }
201
38
  },
202
39
  };
@@ -204,6 +41,7 @@ const _vercelAIIntegration = ((options = {}) => {
204
41
 
205
42
  /**
206
43
  * Adds Sentry tracing instrumentation for the [ai](https://www.npmjs.com/package/ai) library.
44
+ * This integration is not enabled by default, you need to manually add it.
207
45
  *
208
46
  * For more information, see the [`ai` documentation](https://sdk.vercel.ai/docs/ai-sdk-core/telemetry).
209
47
  *
@@ -216,17 +54,14 @@ const _vercelAIIntegration = ((options = {}) => {
216
54
  * });
217
55
  * ```
218
56
  *
219
- * The integration automatically detects when to force registration in CommonJS environments
220
- * when the 'ai' package is available. You can still manually set the `force` option if needed.
221
- *
222
- * By default this integration adds tracing support to all `ai` function calls. If you need to disable
223
- * collecting spans for a specific call, you can do so by setting `experimental_telemetry.isEnabled` to
224
- * `false` in the first argument of the function call.
57
+ * This integration adds tracing support to all `ai` function calls.
58
+ * You need to opt-in to collecting spans for a specific call,
59
+ * you can do so by setting `experimental_telemetry.isEnabled` to `true` in the first argument of the function call.
225
60
  *
226
61
  * ```javascript
227
62
  * const result = await generateText({
228
63
  * model: openai('gpt-4-turbo'),
229
- * experimental_telemetry: { isEnabled: false },
64
+ * experimental_telemetry: { isEnabled: true },
230
65
  * });
231
66
  * ```
232
67
  *
@@ -242,17 +77,6 @@ const _vercelAIIntegration = ((options = {}) => {
242
77
  */
243
78
  const vercelAIIntegration = core.defineIntegration(_vercelAIIntegration);
244
79
 
245
- /**
246
- * Renames an attribute key in the provided attributes object if the old key exists.
247
- * This function safely handles null and undefined values.
248
- */
249
- function renameAttributeKey(attributes, oldKey, newKey) {
250
- if (attributes[oldKey] != null) {
251
- attributes[newKey] = attributes[oldKey];
252
- delete attributes[oldKey];
253
- }
254
- }
255
-
256
80
  exports.instrumentVercelAi = instrumentVercelAi;
257
81
  exports.vercelAIIntegration = vercelAIIntegration;
258
82
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/integrations/tracing/vercelai/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-dynamic-delete */\n/* eslint-disable complexity */\nimport type { Client, IntegrationFn } from '@sentry/core';\nimport { defineIntegration, SEMANTIC_ATTRIBUTE_SENTRY_OP, spanToJSON } from '@sentry/core';\nimport { generateInstrumentOnce } from '../../../otel/instrument';\nimport { addOriginToSpan } from '../../../utils/addOriginToSpan';\nimport type { modulesIntegration } from '../../modules';\nimport {\n AI_MODEL_ID_ATTRIBUTE,\n AI_MODEL_PROVIDER_ATTRIBUTE,\n AI_PROMPT_ATTRIBUTE,\n AI_PROMPT_MESSAGES_ATTRIBUTE,\n AI_PROMPT_TOOLS_ATTRIBUTE,\n AI_RESPONSE_TEXT_ATTRIBUTE,\n AI_RESPONSE_TOOL_CALLS_ATTRIBUTE,\n AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE,\n AI_TOOL_CALL_ID_ATTRIBUTE,\n AI_TOOL_CALL_NAME_ATTRIBUTE,\n AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE,\n AI_USAGE_PROMPT_TOKENS_ATTRIBUTE,\n GEN_AI_RESPONSE_MODEL_ATTRIBUTE,\n GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE,\n GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE,\n} from './ai_sdk_attributes';\nimport { INTEGRATION_NAME } from './constants';\nimport { SentryVercelAiInstrumentation } from './instrumentation';\nimport type { VercelAiOptions } from './types';\n\nexport const instrumentVercelAi = generateInstrumentOnce(INTEGRATION_NAME, () => new SentryVercelAiInstrumentation({}));\n\n/**\n * Determines if the integration should be forced based on environment and package availability.\n * Returns true if the 'ai' package is available.\n */\nfunction shouldForceIntegration(client: Client): boolean {\n const modules = client.getIntegrationByName<ReturnType<typeof modulesIntegration>>('Modules');\n return !!modules?.getModules?.()?.ai;\n}\n\nconst _vercelAIIntegration = ((options: VercelAiOptions = {}) => {\n let instrumentation: undefined | SentryVercelAiInstrumentation;\n\n return {\n name: INTEGRATION_NAME,\n options,\n setupOnce() {\n instrumentation = instrumentVercelAi();\n },\n afterAllSetup(client) {\n function registerProcessors(): void {\n client.on('spanStart', span => {\n const { data: attributes, description: name } = spanToJSON(span);\n\n if (!name) {\n return;\n }\n\n // Tool call spans\n // https://ai-sdk.dev/docs/ai-sdk-core/telemetry#tool-call-spans\n if (\n attributes[AI_TOOL_CALL_NAME_ATTRIBUTE] &&\n attributes[AI_TOOL_CALL_ID_ATTRIBUTE] &&\n name === 'ai.toolCall'\n ) {\n addOriginToSpan(span, 'auto.vercelai.otel');\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.execute_tool');\n span.setAttribute('gen_ai.tool.call.id', attributes[AI_TOOL_CALL_ID_ATTRIBUTE]);\n span.setAttribute('gen_ai.tool.name', attributes[AI_TOOL_CALL_NAME_ATTRIBUTE]);\n span.updateName(`execute_tool ${attributes[AI_TOOL_CALL_NAME_ATTRIBUTE]}`);\n return;\n }\n\n // The AI and Provider must be defined for generate, stream, and embed spans.\n // The id of the model\n const aiModelId = attributes[AI_MODEL_ID_ATTRIBUTE];\n // the provider of the model\n const aiModelProvider = attributes[AI_MODEL_PROVIDER_ATTRIBUTE];\n if (typeof aiModelId !== 'string' || typeof aiModelProvider !== 'string' || !aiModelId || !aiModelProvider) {\n return;\n }\n\n addOriginToSpan(span, 'auto.vercelai.otel');\n\n const nameWthoutAi = name.replace('ai.', '');\n span.setAttribute('ai.pipeline.name', nameWthoutAi);\n span.updateName(nameWthoutAi);\n\n // If a Telemetry name is set and it is a pipeline span, use that as the operation name\n const functionId = attributes[AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE];\n if (functionId && typeof functionId === 'string' && name.split('.').length - 1 === 1) {\n span.updateName(`${nameWthoutAi} ${functionId}`);\n span.setAttribute('ai.pipeline.name', functionId);\n }\n\n if (attributes[AI_PROMPT_ATTRIBUTE]) {\n span.setAttribute('gen_ai.prompt', attributes[AI_PROMPT_ATTRIBUTE]);\n }\n if (attributes[AI_MODEL_ID_ATTRIBUTE] && !attributes[GEN_AI_RESPONSE_MODEL_ATTRIBUTE]) {\n span.setAttribute(GEN_AI_RESPONSE_MODEL_ATTRIBUTE, attributes[AI_MODEL_ID_ATTRIBUTE]);\n }\n span.setAttribute('ai.streaming', name.includes('stream'));\n\n // Generate Spans\n if (name === 'ai.generateText') {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.invoke_agent');\n return;\n }\n\n if (name === 'ai.generateText.doGenerate') {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.generate_text');\n span.updateName(`generate_text ${attributes[AI_MODEL_ID_ATTRIBUTE]}`);\n return;\n }\n\n if (name === 'ai.streamText') {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.invoke_agent');\n return;\n }\n\n if (name === 'ai.streamText.doStream') {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.stream_text');\n span.updateName(`stream_text ${attributes[AI_MODEL_ID_ATTRIBUTE]}`);\n return;\n }\n\n if (name === 'ai.generateObject') {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.invoke_agent');\n return;\n }\n\n if (name === 'ai.generateObject.doGenerate') {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.generate_object');\n span.updateName(`generate_object ${attributes[AI_MODEL_ID_ATTRIBUTE]}`);\n return;\n }\n\n if (name === 'ai.streamObject') {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.invoke_agent');\n return;\n }\n\n if (name === 'ai.streamObject.doStream') {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.stream_object');\n span.updateName(`stream_object ${attributes[AI_MODEL_ID_ATTRIBUTE]}`);\n return;\n }\n\n if (name === 'ai.embed') {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.invoke_agent');\n return;\n }\n\n if (name === 'ai.embed.doEmbed') {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.embed');\n span.updateName(`embed ${attributes[AI_MODEL_ID_ATTRIBUTE]}`);\n return;\n }\n\n if (name === 'ai.embedMany') {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.invoke_agent');\n return;\n }\n\n if (name === 'ai.embedMany.doEmbed') {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'gen_ai.embed_many');\n span.updateName(`embed_many ${attributes[AI_MODEL_ID_ATTRIBUTE]}`);\n return;\n }\n\n if (name.startsWith('ai.stream')) {\n span.setAttribute(SEMANTIC_ATTRIBUTE_SENTRY_OP, 'ai.run');\n return;\n }\n });\n\n client.addEventProcessor(event => {\n if (event.type === 'transaction' && event.spans?.length) {\n for (const span of event.spans) {\n const { data: attributes, description: name } = span;\n\n if (!name || span.origin !== 'auto.vercelai.otel') {\n continue;\n }\n\n renameAttributeKey(\n attributes,\n AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE,\n GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE,\n );\n renameAttributeKey(attributes, AI_USAGE_PROMPT_TOKENS_ATTRIBUTE, GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE);\n if (\n typeof attributes[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE] === 'number' &&\n typeof attributes[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE] === 'number'\n ) {\n attributes['gen_ai.usage.total_tokens'] =\n attributes[GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE] + attributes[GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE];\n }\n\n // Rename AI SDK attributes to standardized gen_ai attributes\n renameAttributeKey(attributes, AI_PROMPT_MESSAGES_ATTRIBUTE, 'gen_ai.request.messages');\n renameAttributeKey(attributes, AI_RESPONSE_TEXT_ATTRIBUTE, 'gen_ai.response.text');\n renameAttributeKey(attributes, AI_RESPONSE_TOOL_CALLS_ATTRIBUTE, 'gen_ai.response.tool_calls');\n renameAttributeKey(attributes, AI_PROMPT_TOOLS_ATTRIBUTE, 'gen_ai.request.available_tools');\n }\n }\n\n return event;\n });\n }\n\n // Auto-detect if we should force the integration when running with 'ai' package available\n // Note that this can only be detected if the 'Modules' integration is available, and running in CJS mode\n const shouldForce = options.force ?? shouldForceIntegration(client);\n\n if (shouldForce) {\n registerProcessors();\n } else {\n instrumentation?.callWhenPatched(registerProcessors);\n }\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for the [ai](https://www.npmjs.com/package/ai) library.\n *\n * For more information, see the [`ai` documentation](https://sdk.vercel.ai/docs/ai-sdk-core/telemetry).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.vercelAIIntegration()],\n * });\n * ```\n *\n * The integration automatically detects when to force registration in CommonJS environments\n * when the 'ai' package is available. You can still manually set the `force` option if needed.\n *\n * By default this integration adds tracing support to all `ai` function calls. If you need to disable\n * collecting spans for a specific call, you can do so by setting `experimental_telemetry.isEnabled` to\n * `false` in the first argument of the function call.\n *\n * ```javascript\n * const result = await generateText({\n * model: openai('gpt-4-turbo'),\n * experimental_telemetry: { isEnabled: false },\n * });\n * ```\n *\n * If you want to collect inputs and outputs for a specific call, you must specifically opt-in to each\n * function call by setting `experimental_telemetry.recordInputs` and `experimental_telemetry.recordOutputs`\n * to `true`.\n *\n * ```javascript\n * const result = await generateText({\n * model: openai('gpt-4-turbo'),\n * experimental_telemetry: { isEnabled: true, recordInputs: true, recordOutputs: true },\n * });\n */\nexport const vercelAIIntegration = defineIntegration(_vercelAIIntegration);\n\n/**\n * Renames an attribute key in the provided attributes object if the old key exists.\n * This function safely handles null and undefined values.\n */\nfunction renameAttributeKey(attributes: Record<string, unknown>, oldKey: string, newKey: string): void {\n if (attributes[oldKey] != null) {\n attributes[newKey] = attributes[oldKey];\n delete attributes[oldKey];\n }\n}\n"],"names":["generateInstrumentOnce","INTEGRATION_NAME","SentryVercelAiInstrumentation","spanToJSON","AI_TOOL_CALL_NAME_ATTRIBUTE","AI_TOOL_CALL_ID_ATTRIBUTE","addOriginToSpan","SEMANTIC_ATTRIBUTE_SENTRY_OP","AI_MODEL_ID_ATTRIBUTE","AI_MODEL_PROVIDER_ATTRIBUTE","AI_TELEMETRY_FUNCTION_ID_ATTRIBUTE","AI_PROMPT_ATTRIBUTE","GEN_AI_RESPONSE_MODEL_ATTRIBUTE","AI_USAGE_COMPLETION_TOKENS_ATTRIBUTE","GEN_AI_USAGE_OUTPUT_TOKENS_ATTRIBUTE","AI_USAGE_PROMPT_TOKENS_ATTRIBUTE","GEN_AI_USAGE_INPUT_TOKENS_ATTRIBUTE","AI_PROMPT_MESSAGES_ATTRIBUTE","AI_RESPONSE_TEXT_ATTRIBUTE","AI_RESPONSE_TOOL_CALLS_ATTRIBUTE","AI_PROMPT_TOOLS_ATTRIBUTE","defineIntegration"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/integrations/tracing/vercelai/index.ts"],"sourcesContent":["import type { Client, IntegrationFn } from '@sentry/core';\nimport { addVercelAiProcessors, defineIntegration } from '@sentry/core';\nimport { type modulesIntegration, generateInstrumentOnce } from '@sentry/node-core';\nimport { INTEGRATION_NAME } from './constants';\nimport { SentryVercelAiInstrumentation } from './instrumentation';\nimport type { VercelAiOptions } from './types';\n\nexport const instrumentVercelAi = generateInstrumentOnce(INTEGRATION_NAME, () => new SentryVercelAiInstrumentation({}));\n\n/**\n * Determines if the integration should be forced based on environment and package availability.\n * Returns true if the 'ai' package is available.\n */\nfunction shouldForceIntegration(client: Client): boolean {\n const modules = client.getIntegrationByName<ReturnType<typeof modulesIntegration>>('Modules');\n return !!modules?.getModules?.()?.ai;\n}\n\nconst _vercelAIIntegration = ((options: VercelAiOptions = {}) => {\n let instrumentation: undefined | SentryVercelAiInstrumentation;\n\n return {\n name: INTEGRATION_NAME,\n options,\n setupOnce() {\n instrumentation = instrumentVercelAi();\n },\n afterAllSetup(client) {\n // Auto-detect if we should force the integration when running with 'ai' package available\n // Note that this can only be detected if the 'Modules' integration is available, and running in CJS mode\n const shouldForce = options.force ?? shouldForceIntegration(client);\n\n if (shouldForce) {\n addVercelAiProcessors(client);\n } else {\n instrumentation?.callWhenPatched(() => addVercelAiProcessors(client));\n }\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Adds Sentry tracing instrumentation for the [ai](https://www.npmjs.com/package/ai) library.\n * This integration is not enabled by default, you need to manually add it.\n *\n * For more information, see the [`ai` documentation](https://sdk.vercel.ai/docs/ai-sdk-core/telemetry).\n *\n * @example\n * ```javascript\n * const Sentry = require('@sentry/node');\n *\n * Sentry.init({\n * integrations: [Sentry.vercelAIIntegration()],\n * });\n * ```\n *\n * This integration adds tracing support to all `ai` function calls.\n * You need to opt-in to collecting spans for a specific call,\n * you can do so by setting `experimental_telemetry.isEnabled` to `true` in the first argument of the function call.\n *\n * ```javascript\n * const result = await generateText({\n * model: openai('gpt-4-turbo'),\n * experimental_telemetry: { isEnabled: true },\n * });\n * ```\n *\n * If you want to collect inputs and outputs for a specific call, you must specifically opt-in to each\n * function call by setting `experimental_telemetry.recordInputs` and `experimental_telemetry.recordOutputs`\n * to `true`.\n *\n * ```javascript\n * const result = await generateText({\n * model: openai('gpt-4-turbo'),\n * experimental_telemetry: { isEnabled: true, recordInputs: true, recordOutputs: true },\n * });\n */\nexport const vercelAIIntegration = defineIntegration(_vercelAIIntegration);\n"],"names":["generateInstrumentOnce","INTEGRATION_NAME","SentryVercelAiInstrumentation","addVercelAiProcessors","defineIntegration"],"mappings":";;;;;;;MAOa,kBAAmB,GAAEA,+BAAsB,CAACC,0BAAgB,EAAE,MAAM,IAAIC,6CAA6B,CAAC,EAAE,CAAC;;AAEtH;AACA;AACA;AACA;AACA,SAAS,sBAAsB,CAAC,MAAM,EAAmB;AACzD,EAAE,MAAM,UAAU,MAAM,CAAC,oBAAoB,CAAwC,SAAS,CAAC;AAC/F,EAAE,OAAO,CAAC,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,EAAE;AACtC;;AAEA,MAAM,oBAAA,IAAwB,CAAC,OAAO,GAAoB,EAAE,KAAK;AACjE,EAAE,IAAI,eAAe;;AAErB,EAAE,OAAO;AACT,IAAI,IAAI,EAAED,0BAAgB;AAC1B,IAAI,OAAO;AACX,IAAI,SAAS,GAAG;AAChB,MAAM,eAAgB,GAAE,kBAAkB,EAAE;AAC5C,KAAK;AACL,IAAI,aAAa,CAAC,MAAM,EAAE;AAC1B;AACA;AACA,MAAM,MAAM,WAAY,GAAE,OAAO,CAAC,SAAS,sBAAsB,CAAC,MAAM,CAAC;;AAEzE,MAAM,IAAI,WAAW,EAAE;AACvB,QAAQE,0BAAqB,CAAC,MAAM,CAAC;AACrC,aAAa;AACb,QAAQ,eAAe,EAAE,eAAe,CAAC,MAAMA,0BAAqB,CAAC,MAAM,CAAC,CAAC;AAC7E;AACA,KAAK;AACL,GAAG;AACH,CAAC,CAAE;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACa,mBAAoB,GAAEC,sBAAiB,CAAC,oBAAoB;;;;;"}
@@ -1,7 +1,7 @@
1
+ const nodeCore = require('@sentry/node-core');
1
2
  const initOtel = require('./sdk/initOtel.js');
2
- const envToBool = require('./utils/envToBool.js');
3
3
 
4
- const debug = envToBool.envToBool(process.env.SENTRY_DEBUG);
4
+ const debug = nodeCore.envToBool(process.env.SENTRY_DEBUG);
5
5
  const integrationsStr = process.env.SENTRY_PRELOAD_INTEGRATIONS;
6
6
 
7
7
  const integrations = integrationsStr ? integrationsStr.split(',').map(integration => integration.trim()) : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"preload.js","sources":["../../src/preload.ts"],"sourcesContent":["import { preloadOpenTelemetry } from './sdk/initOtel';\nimport { envToBool } from './utils/envToBool';\n\nconst debug = envToBool(process.env.SENTRY_DEBUG);\nconst integrationsStr = process.env.SENTRY_PRELOAD_INTEGRATIONS;\n\nconst integrations = integrationsStr ? integrationsStr.split(',').map(integration => integration.trim()) : undefined;\n\n/**\n * The @sentry/node/preload export can be used with the node --import and --require args to preload the OTEL\n * instrumentation, without initializing the Sentry SDK.\n *\n * This is useful if you cannot initialize the SDK immediately, but still want to preload the instrumentation,\n * e.g. if you have to load the DSN from somewhere else.\n *\n * You can configure this in two ways via environment variables:\n * - `SENTRY_DEBUG` to enable debug logging\n * - `SENTRY_PRELOAD_INTEGRATIONS` to preload specific integrations - e.g. `SENTRY_PRELOAD_INTEGRATIONS=\"Http,Express\"`\n */\npreloadOpenTelemetry({ debug, integrations });\n"],"names":["envToBool","preloadOpenTelemetry"],"mappings":";;;AAGA,MAAM,KAAA,GAAQA,mBAAS,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;AACjD,MAAM,kBAAkB,OAAO,CAAC,GAAG,CAAC,2BAA2B;;AAE/D,MAAM,YAAA,GAAe,eAAgB,GAAE,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,WAAA,IAAe,WAAW,CAAC,IAAI,EAAE,CAAE,GAAE,SAAS;;AAEpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAC,6BAAoB,CAAC,EAAE,KAAK,EAAE,YAAA,EAAc,CAAC;;"}
1
+ {"version":3,"file":"preload.js","sources":["../../src/preload.ts"],"sourcesContent":["import { envToBool } from '@sentry/node-core';\nimport { preloadOpenTelemetry } from './sdk/initOtel';\n\nconst debug = envToBool(process.env.SENTRY_DEBUG);\nconst integrationsStr = process.env.SENTRY_PRELOAD_INTEGRATIONS;\n\nconst integrations = integrationsStr ? integrationsStr.split(',').map(integration => integration.trim()) : undefined;\n\n/**\n * The @sentry/node/preload export can be used with the node --import and --require args to preload the OTEL\n * instrumentation, without initializing the Sentry SDK.\n *\n * This is useful if you cannot initialize the SDK immediately, but still want to preload the instrumentation,\n * e.g. if you have to load the DSN from somewhere else.\n *\n * You can configure this in two ways via environment variables:\n * - `SENTRY_DEBUG` to enable debug logging\n * - `SENTRY_PRELOAD_INTEGRATIONS` to preload specific integrations - e.g. `SENTRY_PRELOAD_INTEGRATIONS=\"Http,Express\"`\n */\npreloadOpenTelemetry({ debug, integrations });\n"],"names":["envToBool","preloadOpenTelemetry"],"mappings":";;;AAGA,MAAM,KAAA,GAAQA,kBAAS,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;AACjD,MAAM,kBAAkB,OAAO,CAAC,GAAG,CAAC,2BAA2B;;AAE/D,MAAM,YAAA,GAAe,eAAgB,GAAE,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,WAAA,IAAe,WAAW,CAAC,IAAI,EAAE,CAAE,GAAE,SAAS;;AAEpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAC,6BAAoB,CAAC,EAAE,KAAK,EAAE,YAAA,EAAc,CAAC;;"}
@@ -1,54 +1,22 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
2
 
3
3
  const core = require('@sentry/core');
4
- const opentelemetry = require('@sentry/opentelemetry');
5
- const debugBuild = require('../debug-build.js');
6
- const childProcess = require('../integrations/childProcess.js');
7
- const context = require('../integrations/context.js');
8
- const contextlines = require('../integrations/contextlines.js');
4
+ const nodeCore = require('@sentry/node-core');
9
5
  const index$1 = require('../integrations/http/index.js');
10
- const index$3 = require('../integrations/local-variables/index.js');
11
- const modules = require('../integrations/modules.js');
12
6
  const index$2 = require('../integrations/node-fetch/index.js');
13
- const onuncaughtexception = require('../integrations/onuncaughtexception.js');
14
- const onunhandledrejection = require('../integrations/onunhandledrejection.js');
15
- const processSession = require('../integrations/processSession.js');
16
- const spotlight = require('../integrations/spotlight.js');
17
7
  const index = require('../integrations/tracing/index.js');
18
- const http = require('../transports/http.js');
19
- const commonjs = require('../utils/commonjs.js');
20
- const envToBool = require('../utils/envToBool.js');
21
- const api = require('./api.js');
22
- const client = require('./client.js');
23
8
  const initOtel = require('./initOtel.js');
24
9
 
25
10
  /**
26
11
  * Get default integrations, excluding performance.
27
12
  */
28
13
  function getDefaultIntegrationsWithoutPerformance() {
29
- return [
30
- // Common
31
- // TODO(v10): Replace with `eventFiltersIntegration` once we remove the deprecated `inboundFiltersIntegration`
32
- // eslint-disable-next-line deprecation/deprecation
33
- core.inboundFiltersIntegration(),
34
- core.functionToStringIntegration(),
35
- core.linkedErrorsIntegration(),
36
- core.requestDataIntegration(),
37
- // Native Wrappers
38
- core.consoleIntegration(),
39
- index$1.httpIntegration(),
40
- index$2.nativeNodeFetchIntegration(),
41
- // Global Handlers
42
- onuncaughtexception.onUncaughtExceptionIntegration(),
43
- onunhandledrejection.onUnhandledRejectionIntegration(),
44
- // Event Info
45
- contextlines.contextLinesIntegration(),
46
- index$3.localVariablesIntegration(),
47
- context.nodeContextIntegration(),
48
- childProcess.childProcessIntegration(),
49
- processSession.processSessionIntegration(),
50
- modules.modulesIntegration(),
51
- ];
14
+ const nodeCoreIntegrations = nodeCore.getDefaultIntegrations();
15
+
16
+ // Filter out the node-core HTTP and NodeFetch integrations and replace them with Node SDK's composite versions
17
+ return nodeCoreIntegrations
18
+ .filter(integration => integration.name !== 'Http' && integration.name !== 'NodeFetch')
19
+ .concat(index$1.httpIntegration(), index$2.nativeNodeFetchIntegration());
52
20
  }
53
21
 
54
22
  /** Get the default integrations for the Node SDK. */
@@ -71,187 +39,38 @@ function init(options = {}) {
71
39
  }
72
40
 
73
41
  /**
74
- * Initialize Sentry for Node, without any integrations added by default.
75
- */
76
- function initWithoutDefaultIntegrations(options = {}) {
77
- return _init(options, () => []);
78
- }
79
-
80
- /**
81
- * Initialize Sentry for Node, without performance instrumentation.
42
+ * Internal initialization function.
82
43
  */
83
44
  function _init(
84
- _options = {},
45
+ options = {},
85
46
  getDefaultIntegrationsImpl,
86
47
  ) {
87
- const options = getClientOptions(_options, getDefaultIntegrationsImpl);
88
-
89
- if (options.debug === true) {
90
- if (debugBuild.DEBUG_BUILD) {
91
- core.logger.enable();
92
- } else {
93
- // use `console.warn` rather than `logger.warn` since by non-debug bundles have all `logger.x` statements stripped
94
- core.consoleSandbox(() => {
95
- // eslint-disable-next-line no-console
96
- console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');
97
- });
98
- }
99
- }
100
-
101
- if (!commonjs.isCjs() && options.registerEsmLoaderHooks !== false) {
102
- initOtel.maybeInitializeEsmLoader();
103
- }
104
-
105
- opentelemetry.setOpenTelemetryContextAsyncContextStrategy();
106
-
107
- const scope = core.getCurrentScope();
108
- scope.update(options.initialScope);
109
-
110
- if (options.spotlight && !options.integrations.some(({ name }) => name === spotlight.INTEGRATION_NAME)) {
111
- options.integrations.push(
112
- spotlight.spotlightIntegration({
113
- sidecarUrl: typeof options.spotlight === 'string' ? options.spotlight : undefined,
114
- }),
115
- );
116
- }
117
-
118
- const client$1 = new client.NodeClient(options);
119
- // The client is on the current scope, from where it generally is inherited
120
- core.getCurrentScope().setClient(client$1);
121
-
122
- client$1.init();
123
-
124
- core.logger.log(`Running in ${commonjs.isCjs() ? 'CommonJS' : 'ESM'} mode.`);
125
-
126
- client$1.startClientReportTracking();
127
-
128
- updateScopeFromEnvVariables();
48
+ const client = nodeCore.init({
49
+ ...options,
50
+ // Only use Node SDK defaults if none provided
51
+ defaultIntegrations: options.defaultIntegrations ?? getDefaultIntegrationsImpl(options),
52
+ });
129
53
 
130
- // If users opt-out of this, they _have_ to set up OpenTelemetry themselves
131
- // There is no way to use this SDK without OpenTelemetry!
132
- if (!options.skipOpenTelemetrySetup) {
133
- initOtel.initOpenTelemetry(client$1, {
54
+ // Add Node SDK specific OpenTelemetry setup
55
+ if (client && !options.skipOpenTelemetrySetup) {
56
+ initOtel.initOpenTelemetry(client, {
134
57
  spanProcessors: options.openTelemetrySpanProcessors,
135
58
  });
136
- validateOpenTelemetrySetup();
137
- }
138
-
139
- opentelemetry.enhanceDscWithOpenTelemetryRootSpanName(client$1);
140
- opentelemetry.setupEventContextTrace(client$1);
141
-
142
- return client$1;
143
- }
144
-
145
- /**
146
- * Validate that your OpenTelemetry setup is correct.
147
- */
148
- function validateOpenTelemetrySetup() {
149
- if (!debugBuild.DEBUG_BUILD) {
150
- return;
59
+ nodeCore.validateOpenTelemetrySetup();
151
60
  }
152
61
 
153
- const setup = opentelemetry.openTelemetrySetupCheck();
154
-
155
- const required = ['SentryContextManager', 'SentryPropagator'];
156
-
157
- if (core.hasSpansEnabled()) {
158
- required.push('SentrySpanProcessor');
159
- }
160
-
161
- for (const k of required) {
162
- if (!setup.includes(k)) {
163
- core.logger.error(
164
- `You have to set up the ${k}. Without this, the OpenTelemetry & Sentry integration will not work properly.`,
165
- );
166
- }
167
- }
168
-
169
- if (!setup.includes('SentrySampler')) {
170
- core.logger.warn(
171
- 'You have to set up the SentrySampler. Without this, the OpenTelemetry & Sentry integration may still work, but sample rates set for the Sentry SDK will not be respected. If you use a custom sampler, make sure to use `wrapSamplingDecision`.',
172
- );
173
- }
174
- }
175
-
176
- function getClientOptions(
177
- options,
178
- getDefaultIntegrationsImpl,
179
- ) {
180
- const release = getRelease(options.release);
181
- const spotlight =
182
- options.spotlight ?? envToBool.envToBool(process.env.SENTRY_SPOTLIGHT, { strict: true }) ?? process.env.SENTRY_SPOTLIGHT;
183
- const tracesSampleRate = getTracesSampleRate(options.tracesSampleRate);
184
-
185
- const mergedOptions = {
186
- ...options,
187
- dsn: options.dsn ?? process.env.SENTRY_DSN,
188
- environment: options.environment ?? process.env.SENTRY_ENVIRONMENT,
189
- sendClientReports: options.sendClientReports ?? true,
190
- transport: options.transport ?? http.makeNodeTransport,
191
- stackParser: core.stackParserFromStackParserOptions(options.stackParser || api.defaultStackParser),
192
- release,
193
- tracesSampleRate,
194
- spotlight,
195
- debug: envToBool.envToBool(options.debug ?? process.env.SENTRY_DEBUG),
196
- };
197
-
198
- const integrations = options.integrations;
199
- const defaultIntegrations = options.defaultIntegrations ?? getDefaultIntegrationsImpl(mergedOptions);
200
-
201
- return {
202
- ...mergedOptions,
203
- integrations: core.getIntegrationsToSetup({
204
- defaultIntegrations,
205
- integrations,
206
- }),
207
- };
208
- }
209
-
210
- function getRelease(release) {
211
- if (release !== undefined) {
212
- return release;
213
- }
214
-
215
- const detectedRelease = api.getSentryRelease();
216
- if (detectedRelease !== undefined) {
217
- return detectedRelease;
218
- }
219
-
220
- return undefined;
221
- }
222
-
223
- function getTracesSampleRate(tracesSampleRate) {
224
- if (tracesSampleRate !== undefined) {
225
- return tracesSampleRate;
226
- }
227
-
228
- const sampleRateFromEnv = process.env.SENTRY_TRACES_SAMPLE_RATE;
229
- if (!sampleRateFromEnv) {
230
- return undefined;
231
- }
232
-
233
- const parsed = parseFloat(sampleRateFromEnv);
234
- return isFinite(parsed) ? parsed : undefined;
62
+ return client;
235
63
  }
236
64
 
237
65
  /**
238
- * Update scope and propagation context based on environmental variables.
239
- *
240
- * See https://github.com/getsentry/rfcs/blob/main/text/0071-continue-trace-over-process-boundaries.md
241
- * for more details.
66
+ * Initialize Sentry for Node, without any integrations added by default.
242
67
  */
243
- function updateScopeFromEnvVariables() {
244
- if (envToBool.envToBool(process.env.SENTRY_USE_ENVIRONMENT) !== false) {
245
- const sentryTraceEnv = process.env.SENTRY_TRACE;
246
- const baggageEnv = process.env.SENTRY_BAGGAGE;
247
- const propagationContext = core.propagationContextFromHeaders(sentryTraceEnv, baggageEnv);
248
- core.getCurrentScope().setPropagationContext(propagationContext);
249
- }
68
+ function initWithoutDefaultIntegrations(options = {}) {
69
+ return _init(options, () => []);
250
70
  }
251
71
 
252
72
  exports.getDefaultIntegrations = getDefaultIntegrations;
253
73
  exports.getDefaultIntegrationsWithoutPerformance = getDefaultIntegrationsWithoutPerformance;
254
74
  exports.init = init;
255
75
  exports.initWithoutDefaultIntegrations = initWithoutDefaultIntegrations;
256
- exports.validateOpenTelemetrySetup = validateOpenTelemetrySetup;
257
76
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/sdk/index.ts"],"sourcesContent":["import type { Integration, Options } from '@sentry/core';\nimport {\n consoleIntegration,\n consoleSandbox,\n functionToStringIntegration,\n getCurrentScope,\n getIntegrationsToSetup,\n hasSpansEnabled,\n inboundFiltersIntegration,\n linkedErrorsIntegration,\n logger,\n propagationContextFromHeaders,\n requestDataIntegration,\n stackParserFromStackParserOptions,\n} from '@sentry/core';\nimport {\n enhanceDscWithOpenTelemetryRootSpanName,\n openTelemetrySetupCheck,\n setOpenTelemetryContextAsyncContextStrategy,\n setupEventContextTrace,\n} from '@sentry/opentelemetry';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { childProcessIntegration } from '../integrations/childProcess';\nimport { nodeContextIntegration } from '../integrations/context';\nimport { contextLinesIntegration } from '../integrations/contextlines';\nimport { httpIntegration } from '../integrations/http';\nimport { localVariablesIntegration } from '../integrations/local-variables';\nimport { modulesIntegration } from '../integrations/modules';\nimport { nativeNodeFetchIntegration } from '../integrations/node-fetch';\nimport { onUncaughtExceptionIntegration } from '../integrations/onuncaughtexception';\nimport { onUnhandledRejectionIntegration } from '../integrations/onunhandledrejection';\nimport { processSessionIntegration } from '../integrations/processSession';\nimport { INTEGRATION_NAME as SPOTLIGHT_INTEGRATION_NAME, spotlightIntegration } from '../integrations/spotlight';\nimport { getAutoPerformanceIntegrations } from '../integrations/tracing';\nimport { makeNodeTransport } from '../transports';\nimport type { NodeClientOptions, NodeOptions } from '../types';\nimport { isCjs } from '../utils/commonjs';\nimport { envToBool } from '../utils/envToBool';\nimport { defaultStackParser, getSentryRelease } from './api';\nimport { NodeClient } from './client';\nimport { initOpenTelemetry, maybeInitializeEsmLoader } from './initOtel';\n\n/**\n * Get default integrations, excluding performance.\n */\nexport function getDefaultIntegrationsWithoutPerformance(): Integration[] {\n return [\n // Common\n // TODO(v10): Replace with `eventFiltersIntegration` once we remove the deprecated `inboundFiltersIntegration`\n // eslint-disable-next-line deprecation/deprecation\n inboundFiltersIntegration(),\n functionToStringIntegration(),\n linkedErrorsIntegration(),\n requestDataIntegration(),\n // Native Wrappers\n consoleIntegration(),\n httpIntegration(),\n nativeNodeFetchIntegration(),\n // Global Handlers\n onUncaughtExceptionIntegration(),\n onUnhandledRejectionIntegration(),\n // Event Info\n contextLinesIntegration(),\n localVariablesIntegration(),\n nodeContextIntegration(),\n childProcessIntegration(),\n processSessionIntegration(),\n modulesIntegration(),\n ];\n}\n\n/** Get the default integrations for the Node SDK. */\nexport function getDefaultIntegrations(options: Options): Integration[] {\n return [\n ...getDefaultIntegrationsWithoutPerformance(),\n // We only add performance integrations if tracing is enabled\n // Note that this means that without tracing enabled, e.g. `expressIntegration()` will not be added\n // This means that generally request isolation will work (because that is done by httpIntegration)\n // But `transactionName` will not be set automatically\n ...(hasSpansEnabled(options) ? getAutoPerformanceIntegrations() : []),\n ];\n}\n\n/**\n * Initialize Sentry for Node.\n */\nexport function init(options: NodeOptions | undefined = {}): NodeClient | undefined {\n return _init(options, getDefaultIntegrations);\n}\n\n/**\n * Initialize Sentry for Node, without any integrations added by default.\n */\nexport function initWithoutDefaultIntegrations(options: NodeOptions | undefined = {}): NodeClient {\n return _init(options, () => []);\n}\n\n/**\n * Initialize Sentry for Node, without performance instrumentation.\n */\nfunction _init(\n _options: NodeOptions | undefined = {},\n getDefaultIntegrationsImpl: (options: Options) => Integration[],\n): NodeClient {\n const options = getClientOptions(_options, getDefaultIntegrationsImpl);\n\n if (options.debug === true) {\n if (DEBUG_BUILD) {\n logger.enable();\n } else {\n // use `console.warn` rather than `logger.warn` since by non-debug bundles have all `logger.x` statements stripped\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');\n });\n }\n }\n\n if (!isCjs() && options.registerEsmLoaderHooks !== false) {\n maybeInitializeEsmLoader();\n }\n\n setOpenTelemetryContextAsyncContextStrategy();\n\n const scope = getCurrentScope();\n scope.update(options.initialScope);\n\n if (options.spotlight && !options.integrations.some(({ name }) => name === SPOTLIGHT_INTEGRATION_NAME)) {\n options.integrations.push(\n spotlightIntegration({\n sidecarUrl: typeof options.spotlight === 'string' ? options.spotlight : undefined,\n }),\n );\n }\n\n const client = new NodeClient(options);\n // The client is on the current scope, from where it generally is inherited\n getCurrentScope().setClient(client);\n\n client.init();\n\n logger.log(`Running in ${isCjs() ? 'CommonJS' : 'ESM'} mode.`);\n\n client.startClientReportTracking();\n\n updateScopeFromEnvVariables();\n\n // If users opt-out of this, they _have_ to set up OpenTelemetry themselves\n // There is no way to use this SDK without OpenTelemetry!\n if (!options.skipOpenTelemetrySetup) {\n initOpenTelemetry(client, {\n spanProcessors: options.openTelemetrySpanProcessors,\n });\n validateOpenTelemetrySetup();\n }\n\n enhanceDscWithOpenTelemetryRootSpanName(client);\n setupEventContextTrace(client);\n\n return client;\n}\n\n/**\n * Validate that your OpenTelemetry setup is correct.\n */\nexport function validateOpenTelemetrySetup(): void {\n if (!DEBUG_BUILD) {\n return;\n }\n\n const setup = openTelemetrySetupCheck();\n\n const required: ReturnType<typeof openTelemetrySetupCheck> = ['SentryContextManager', 'SentryPropagator'];\n\n if (hasSpansEnabled()) {\n required.push('SentrySpanProcessor');\n }\n\n for (const k of required) {\n if (!setup.includes(k)) {\n logger.error(\n `You have to set up the ${k}. Without this, the OpenTelemetry & Sentry integration will not work properly.`,\n );\n }\n }\n\n if (!setup.includes('SentrySampler')) {\n logger.warn(\n 'You have to set up the SentrySampler. Without this, the OpenTelemetry & Sentry integration may still work, but sample rates set for the Sentry SDK will not be respected. If you use a custom sampler, make sure to use `wrapSamplingDecision`.',\n );\n }\n}\n\nfunction getClientOptions(\n options: NodeOptions,\n getDefaultIntegrationsImpl: (options: Options) => Integration[],\n): NodeClientOptions {\n const release = getRelease(options.release);\n const spotlight =\n options.spotlight ?? envToBool(process.env.SENTRY_SPOTLIGHT, { strict: true }) ?? process.env.SENTRY_SPOTLIGHT;\n const tracesSampleRate = getTracesSampleRate(options.tracesSampleRate);\n\n const mergedOptions = {\n ...options,\n dsn: options.dsn ?? process.env.SENTRY_DSN,\n environment: options.environment ?? process.env.SENTRY_ENVIRONMENT,\n sendClientReports: options.sendClientReports ?? true,\n transport: options.transport ?? makeNodeTransport,\n stackParser: stackParserFromStackParserOptions(options.stackParser || defaultStackParser),\n release,\n tracesSampleRate,\n spotlight,\n debug: envToBool(options.debug ?? process.env.SENTRY_DEBUG),\n };\n\n const integrations = options.integrations;\n const defaultIntegrations = options.defaultIntegrations ?? getDefaultIntegrationsImpl(mergedOptions);\n\n return {\n ...mergedOptions,\n integrations: getIntegrationsToSetup({\n defaultIntegrations,\n integrations,\n }),\n };\n}\n\nfunction getRelease(release: NodeOptions['release']): string | undefined {\n if (release !== undefined) {\n return release;\n }\n\n const detectedRelease = getSentryRelease();\n if (detectedRelease !== undefined) {\n return detectedRelease;\n }\n\n return undefined;\n}\n\nfunction getTracesSampleRate(tracesSampleRate: NodeOptions['tracesSampleRate']): number | undefined {\n if (tracesSampleRate !== undefined) {\n return tracesSampleRate;\n }\n\n const sampleRateFromEnv = process.env.SENTRY_TRACES_SAMPLE_RATE;\n if (!sampleRateFromEnv) {\n return undefined;\n }\n\n const parsed = parseFloat(sampleRateFromEnv);\n return isFinite(parsed) ? parsed : undefined;\n}\n\n/**\n * Update scope and propagation context based on environmental variables.\n *\n * See https://github.com/getsentry/rfcs/blob/main/text/0071-continue-trace-over-process-boundaries.md\n * for more details.\n */\nfunction updateScopeFromEnvVariables(): void {\n if (envToBool(process.env.SENTRY_USE_ENVIRONMENT) !== false) {\n const sentryTraceEnv = process.env.SENTRY_TRACE;\n const baggageEnv = process.env.SENTRY_BAGGAGE;\n const propagationContext = propagationContextFromHeaders(sentryTraceEnv, baggageEnv);\n getCurrentScope().setPropagationContext(propagationContext);\n }\n}\n"],"names":["inboundFiltersIntegration","functionToStringIntegration","linkedErrorsIntegration","requestDataIntegration","consoleIntegration","httpIntegration","nativeNodeFetchIntegration","onUncaughtExceptionIntegration","onUnhandledRejectionIntegration","contextLinesIntegration","localVariablesIntegration","nodeContextIntegration","childProcessIntegration","processSessionIntegration","modulesIntegration","hasSpansEnabled","getAutoPerformanceIntegrations","DEBUG_BUILD","logger","consoleSandbox","isCjs","maybeInitializeEsmLoader","setOpenTelemetryContextAsyncContextStrategy","getCurrentScope","SPOTLIGHT_INTEGRATION_NAME","spotlightIntegration","client","NodeClient","initOpenTelemetry","enhanceDscWithOpenTelemetryRootSpanName","setupEventContextTrace","openTelemetrySetupCheck","envToBool","makeNodeTransport","stackParserFromStackParserOptions","defaultStackParser","getIntegrationsToSetup","getSentryRelease","propagationContextFromHeaders"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA0CA;AACA;AACA;AACO,SAAS,wCAAwC,GAAkB;AAC1E,EAAE,OAAO;AACT;AACA;AACA;AACA,IAAIA,8BAAyB,EAAE;AAC/B,IAAIC,gCAA2B,EAAE;AACjC,IAAIC,4BAAuB,EAAE;AAC7B,IAAIC,2BAAsB,EAAE;AAC5B;AACA,IAAIC,uBAAkB,EAAE;AACxB,IAAIC,uBAAe,EAAE;AACrB,IAAIC,kCAA0B,EAAE;AAChC;AACA,IAAIC,kDAA8B,EAAE;AACpC,IAAIC,oDAA+B,EAAE;AACrC;AACA,IAAIC,oCAAuB,EAAE;AAC7B,IAAIC,iCAAyB,EAAE;AAC/B,IAAIC,8BAAsB,EAAE;AAC5B,IAAIC,oCAAuB,EAAE;AAC7B,IAAIC,wCAAyB,EAAE;AAC/B,IAAIC,0BAAkB,EAAE;AACxB,GAAG;AACH;;AAEA;AACO,SAAS,sBAAsB,CAAC,OAAO,EAA0B;AACxE,EAAE,OAAO;AACT,IAAI,GAAG,wCAAwC,EAAE;AACjD;AACA;AACA;AACA;AACA,IAAI,IAAIC,oBAAe,CAAC,OAAO,CAAA,GAAIC,oCAA8B,EAAC,GAAI,EAAE,CAAC;AACzE,GAAG;AACH;;AAEA;AACA;AACA;AACO,SAAS,IAAI,CAAC,OAAO,GAA4B,EAAE,EAA0B;AACpF,EAAE,OAAO,KAAK,CAAC,OAAO,EAAE,sBAAsB,CAAC;AAC/C;;AAEA;AACA;AACA;AACO,SAAS,8BAA8B,CAAC,OAAO,GAA4B,EAAE,EAAc;AAClG,EAAE,OAAO,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;AACjC;;AAEA;AACA;AACA;AACA,SAAS,KAAK;AACd,EAAE,QAAQ,GAA4B,EAAE;AACxC,EAAE,0BAA0B;AAC5B,EAAc;AACd,EAAE,MAAM,UAAU,gBAAgB,CAAC,QAAQ,EAAE,0BAA0B,CAAC;;AAExE,EAAE,IAAI,OAAO,CAAC,KAAM,KAAI,IAAI,EAAE;AAC9B,IAAI,IAAIC,sBAAW,EAAE;AACrB,MAAMC,WAAM,CAAC,MAAM,EAAE;AACrB,WAAW;AACX;AACA,MAAMC,mBAAc,CAAC,MAAM;AAC3B;AACA,QAAQ,OAAO,CAAC,IAAI,CAAC,8EAA8E,CAAC;AACpG,OAAO,CAAC;AACR;AACA;;AAEA,EAAE,IAAI,CAACC,cAAK,EAAC,IAAK,OAAO,CAAC,sBAAA,KAA2B,KAAK,EAAE;AAC5D,IAAIC,iCAAwB,EAAE;AAC9B;;AAEA,EAAEC,yDAA2C,EAAE;;AAE/C,EAAE,MAAM,KAAA,GAAQC,oBAAe,EAAE;AACjC,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;;AAEpC,EAAE,IAAI,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,IAAA,EAAM,KAAK,IAAK,KAAIC,0BAA0B,CAAC,EAAE;AAC1G,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI;AAC7B,MAAMC,8BAAoB,CAAC;AAC3B,QAAQ,UAAU,EAAE,OAAO,OAAO,CAAC,SAAA,KAAc,QAAA,GAAW,OAAO,CAAC,SAAA,GAAY,SAAS;AACzF,OAAO,CAAC;AACR,KAAK;AACL;;AAEA,EAAE,MAAMC,QAAO,GAAE,IAAIC,iBAAU,CAAC,OAAO,CAAC;AACxC;AACA,EAAEJ,oBAAe,EAAE,CAAC,SAAS,CAACG,QAAM,CAAC;;AAErC,EAAEA,QAAM,CAAC,IAAI,EAAE;;AAEf,EAAER,WAAM,CAAC,GAAG,CAAC,CAAC,WAAW,EAAEE,cAAK,EAAC,GAAI,UAAW,GAAE,KAAK,CAAC,MAAM,CAAC,CAAC;;AAEhE,EAAEM,QAAM,CAAC,yBAAyB,EAAE;;AAEpC,EAAE,2BAA2B,EAAE;;AAE/B;AACA;AACA,EAAE,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE;AACvC,IAAIE,0BAAiB,CAACF,QAAM,EAAE;AAC9B,MAAM,cAAc,EAAE,OAAO,CAAC,2BAA2B;AACzD,KAAK,CAAC;AACN,IAAI,0BAA0B,EAAE;AAChC;;AAEA,EAAEG,qDAAuC,CAACH,QAAM,CAAC;AACjD,EAAEI,oCAAsB,CAACJ,QAAM,CAAC;;AAEhC,EAAE,OAAOA,QAAM;AACf;;AAEA;AACA;AACA;AACO,SAAS,0BAA0B,GAAS;AACnD,EAAE,IAAI,CAACT,sBAAW,EAAE;AACpB,IAAI;AACJ;;AAEA,EAAE,MAAM,KAAA,GAAQc,qCAAuB,EAAE;;AAEzC,EAAE,MAAM,QAAQ,GAA+C,CAAC,sBAAsB,EAAE,kBAAkB,CAAC;;AAE3G,EAAE,IAAIhB,oBAAe,EAAE,EAAE;AACzB,IAAI,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC;AACxC;;AAEA,EAAE,KAAK,MAAM,CAAE,IAAG,QAAQ,EAAE;AAC5B,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE;AAC5B,MAAMG,WAAM,CAAC,KAAK;AAClB,QAAQ,CAAC,uBAAuB,EAAE,CAAC,CAAC,8EAA8E,CAAC;AACnH,OAAO;AACP;AACA;;AAEA,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE;AACxC,IAAIA,WAAM,CAAC,IAAI;AACf,MAAM,iPAAiP;AACvP,KAAK;AACL;AACA;;AAEA,SAAS,gBAAgB;AACzB,EAAE,OAAO;AACT,EAAE,0BAA0B;AAC5B,EAAqB;AACrB,EAAE,MAAM,UAAU,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC;AAC7C,EAAE,MAAM,SAAU;AAClB,IAAI,OAAO,CAAC,SAAU,IAAGc,mBAAS,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,IAAA,EAAM,CAAA,IAAK,OAAO,CAAC,GAAG,CAAC,gBAAgB;AAClH,EAAE,MAAM,mBAAmB,mBAAmB,CAAC,OAAO,CAAC,gBAAgB,CAAC;;AAExE,EAAE,MAAM,gBAAgB;AACxB,IAAI,GAAG,OAAO;AACd,IAAI,GAAG,EAAE,OAAO,CAAC,GAAA,IAAO,OAAO,CAAC,GAAG,CAAC,UAAU;AAC9C,IAAI,WAAW,EAAE,OAAO,CAAC,WAAA,IAAe,OAAO,CAAC,GAAG,CAAC,kBAAkB;AACtE,IAAI,iBAAiB,EAAE,OAAO,CAAC,iBAAA,IAAqB,IAAI;AACxD,IAAI,SAAS,EAAE,OAAO,CAAC,SAAA,IAAaC,sBAAiB;AACrD,IAAI,WAAW,EAAEC,sCAAiC,CAAC,OAAO,CAAC,WAAA,IAAeC,sBAAkB,CAAC;AAC7F,IAAI,OAAO;AACX,IAAI,gBAAgB;AACpB,IAAI,SAAS;AACb,IAAI,KAAK,EAAEH,mBAAS,CAAC,OAAO,CAAC,KAAM,IAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;AAC/D,GAAG;;AAEH,EAAE,MAAM,YAAA,GAAe,OAAO,CAAC,YAAY;AAC3C,EAAE,MAAM,mBAAoB,GAAE,OAAO,CAAC,uBAAuB,0BAA0B,CAAC,aAAa,CAAC;;AAEtG,EAAE,OAAO;AACT,IAAI,GAAG,aAAa;AACpB,IAAI,YAAY,EAAEI,2BAAsB,CAAC;AACzC,MAAM,mBAAmB;AACzB,MAAM,YAAY;AAClB,KAAK,CAAC;AACN,GAAG;AACH;;AAEA,SAAS,UAAU,CAAC,OAAO,EAA8C;AACzE,EAAE,IAAI,OAAQ,KAAI,SAAS,EAAE;AAC7B,IAAI,OAAO,OAAO;AAClB;;AAEA,EAAE,MAAM,eAAA,GAAkBC,oBAAgB,EAAE;AAC5C,EAAE,IAAI,eAAgB,KAAI,SAAS,EAAE;AACrC,IAAI,OAAO,eAAe;AAC1B;;AAEA,EAAE,OAAO,SAAS;AAClB;;AAEA,SAAS,mBAAmB,CAAC,gBAAgB,EAAuD;AACpG,EAAE,IAAI,gBAAiB,KAAI,SAAS,EAAE;AACtC,IAAI,OAAO,gBAAgB;AAC3B;;AAEA,EAAE,MAAM,iBAAkB,GAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB;AACjE,EAAE,IAAI,CAAC,iBAAiB,EAAE;AAC1B,IAAI,OAAO,SAAS;AACpB;;AAEA,EAAE,MAAM,MAAO,GAAE,UAAU,CAAC,iBAAiB,CAAC;AAC9C,EAAE,OAAO,QAAQ,CAAC,MAAM,IAAI,MAAA,GAAS,SAAS;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,2BAA2B,GAAS;AAC7C,EAAE,IAAIL,mBAAS,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAA,KAAM,KAAK,EAAE;AAC/D,IAAI,MAAM,cAAe,GAAE,OAAO,CAAC,GAAG,CAAC,YAAY;AACnD,IAAI,MAAM,UAAW,GAAE,OAAO,CAAC,GAAG,CAAC,cAAc;AACjD,IAAI,MAAM,qBAAqBM,kCAA6B,CAAC,cAAc,EAAE,UAAU,CAAC;AACxF,IAAIf,oBAAe,EAAE,CAAC,qBAAqB,CAAC,kBAAkB,CAAC;AAC/D;AACA;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/sdk/index.ts"],"sourcesContent":["import type { Integration, Options } from '@sentry/core';\nimport { hasSpansEnabled } from '@sentry/core';\nimport type { NodeClient } from '@sentry/node-core';\nimport {\n getDefaultIntegrations as getNodeCoreDefaultIntegrations,\n init as initNodeCore,\n validateOpenTelemetrySetup,\n} from '@sentry/node-core';\nimport { httpIntegration } from '../integrations/http';\nimport { nativeNodeFetchIntegration } from '../integrations/node-fetch';\nimport { getAutoPerformanceIntegrations } from '../integrations/tracing';\nimport type { NodeOptions } from '../types';\nimport { initOpenTelemetry } from './initOtel';\n\n/**\n * Get default integrations, excluding performance.\n */\nexport function getDefaultIntegrationsWithoutPerformance(): Integration[] {\n const nodeCoreIntegrations = getNodeCoreDefaultIntegrations();\n\n // Filter out the node-core HTTP and NodeFetch integrations and replace them with Node SDK's composite versions\n return nodeCoreIntegrations\n .filter(integration => integration.name !== 'Http' && integration.name !== 'NodeFetch')\n .concat(httpIntegration(), nativeNodeFetchIntegration());\n}\n\n/** Get the default integrations for the Node SDK. */\nexport function getDefaultIntegrations(options: Options): Integration[] {\n return [\n ...getDefaultIntegrationsWithoutPerformance(),\n // We only add performance integrations if tracing is enabled\n // Note that this means that without tracing enabled, e.g. `expressIntegration()` will not be added\n // This means that generally request isolation will work (because that is done by httpIntegration)\n // But `transactionName` will not be set automatically\n ...(hasSpansEnabled(options) ? getAutoPerformanceIntegrations() : []),\n ];\n}\n\n/**\n * Initialize Sentry for Node.\n */\nexport function init(options: NodeOptions | undefined = {}): NodeClient | undefined {\n return _init(options, getDefaultIntegrations);\n}\n\n/**\n * Internal initialization function.\n */\nfunction _init(\n options: NodeOptions | undefined = {},\n getDefaultIntegrationsImpl: (options: Options) => Integration[],\n): NodeClient | undefined {\n const client = initNodeCore({\n ...options,\n // Only use Node SDK defaults if none provided\n defaultIntegrations: options.defaultIntegrations ?? getDefaultIntegrationsImpl(options),\n });\n\n // Add Node SDK specific OpenTelemetry setup\n if (client && !options.skipOpenTelemetrySetup) {\n initOpenTelemetry(client, {\n spanProcessors: options.openTelemetrySpanProcessors,\n });\n validateOpenTelemetrySetup();\n }\n\n return client;\n}\n\n/**\n * Initialize Sentry for Node, without any integrations added by default.\n */\nexport function initWithoutDefaultIntegrations(options: NodeOptions | undefined = {}): NodeClient | undefined {\n return _init(options, () => []);\n}\n"],"names":["getNodeCoreDefaultIntegrations","httpIntegration","nativeNodeFetchIntegration","hasSpansEnabled","getAutoPerformanceIntegrations","initNodeCore","initOpenTelemetry","validateOpenTelemetrySetup"],"mappings":";;;;;;;;;AAcA;AACA;AACA;AACO,SAAS,wCAAwC,GAAkB;AAC1E,EAAE,MAAM,oBAAA,GAAuBA,+BAA8B,EAAE;;AAE/D;AACA,EAAE,OAAO;AACT,KAAK,MAAM,CAAC,WAAA,IAAe,WAAW,CAAC,IAAK,KAAI,UAAU,WAAW,CAAC,IAAA,KAAS,WAAW;AAC1F,KAAK,MAAM,CAACC,uBAAe,EAAE,EAAEC,kCAA0B,EAAE,CAAC;AAC5D;;AAEA;AACO,SAAS,sBAAsB,CAAC,OAAO,EAA0B;AACxE,EAAE,OAAO;AACT,IAAI,GAAG,wCAAwC,EAAE;AACjD;AACA;AACA;AACA;AACA,IAAI,IAAIC,oBAAe,CAAC,OAAO,CAAA,GAAIC,oCAA8B,EAAC,GAAI,EAAE,CAAC;AACzE,GAAG;AACH;;AAEA;AACA;AACA;AACO,SAAS,IAAI,CAAC,OAAO,GAA4B,EAAE,EAA0B;AACpF,EAAE,OAAO,KAAK,CAAC,OAAO,EAAE,sBAAsB,CAAC;AAC/C;;AAEA;AACA;AACA;AACA,SAAS,KAAK;AACd,EAAE,OAAO,GAA4B,EAAE;AACvC,EAAE,0BAA0B;AAC5B,EAA0B;AAC1B,EAAE,MAAM,MAAA,GAASC,aAAY,CAAC;AAC9B,IAAI,GAAG,OAAO;AACd;AACA,IAAI,mBAAmB,EAAE,OAAO,CAAC,uBAAuB,0BAA0B,CAAC,OAAO,CAAC;AAC3F,GAAG,CAAC;;AAEJ;AACA,EAAE,IAAI,MAAO,IAAG,CAAC,OAAO,CAAC,sBAAsB,EAAE;AACjD,IAAIC,0BAAiB,CAAC,MAAM,EAAE;AAC9B,MAAM,cAAc,EAAE,OAAO,CAAC,2BAA2B;AACzD,KAAK,CAAC;AACN,IAAIC,mCAA0B,EAAE;AAChC;;AAEA,EAAE,OAAO,MAAM;AACf;;AAEA;AACA;AACA;AACO,SAAS,8BAA8B,CAAC,OAAO,GAA4B,EAAE,EAA0B;AAC9G,EAAE,OAAO,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;AACjC;;;;;;;"}