@sentry/node 10.58.0 → 10.59.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (502) hide show
  1. package/build/cjs/index.js +2 -0
  2. package/build/cjs/index.js.map +1 -1
  3. package/build/cjs/integrations/fs/index.js +3 -84
  4. package/build/cjs/integrations/fs/index.js.map +1 -1
  5. package/build/cjs/integrations/fs/vendored/constants.js.map +1 -1
  6. package/build/cjs/integrations/fs/vendored/instrumentation.js +145 -175
  7. package/build/cjs/integrations/fs/vendored/instrumentation.js.map +1 -1
  8. package/build/cjs/integrations/fs/vendored/utils.js.map +1 -1
  9. package/build/cjs/integrations/node-fetch/vendored/undici.js.map +1 -1
  10. package/build/cjs/integrations/tracing/amqplib/vendored/amqplib.js.map +1 -1
  11. package/build/cjs/integrations/tracing/amqplib/vendored/semconv-obsolete.js.map +1 -1
  12. package/build/cjs/integrations/tracing/amqplib/vendored/semconv.js.map +1 -1
  13. package/build/cjs/integrations/tracing/amqplib/vendored/types.js.map +1 -1
  14. package/build/cjs/integrations/tracing/amqplib/vendored/utils.js.map +1 -1
  15. package/build/cjs/integrations/tracing/connect/index.js +0 -21
  16. package/build/cjs/integrations/tracing/connect/index.js.map +1 -1
  17. package/build/cjs/integrations/tracing/connect/vendored/enums/AttributeNames.js +0 -6
  18. package/build/cjs/integrations/tracing/connect/vendored/enums/AttributeNames.js.map +1 -1
  19. package/build/cjs/integrations/tracing/connect/vendored/instrumentation.js +33 -42
  20. package/build/cjs/integrations/tracing/connect/vendored/instrumentation.js.map +1 -1
  21. package/build/cjs/integrations/tracing/connect/vendored/internal-types.js.map +1 -1
  22. package/build/cjs/integrations/tracing/connect/vendored/utils.js +3 -2
  23. package/build/cjs/integrations/tracing/connect/vendored/utils.js.map +1 -1
  24. package/build/cjs/integrations/tracing/dataloader/vendored/instrumentation.js.map +1 -1
  25. package/build/cjs/integrations/tracing/fastify/v3/instrumentation.js +1 -1
  26. package/build/cjs/integrations/tracing/fastify/v3/instrumentation.js.map +1 -1
  27. package/build/cjs/integrations/tracing/fastify/vendored/instrumentation.js.map +1 -1
  28. package/build/cjs/integrations/tracing/genericPool/index.js +1 -15
  29. package/build/cjs/integrations/tracing/genericPool/index.js.map +1 -1
  30. package/build/cjs/integrations/tracing/genericPool/vendored/instrumentation.js +30 -18
  31. package/build/cjs/integrations/tracing/genericPool/vendored/instrumentation.js.map +1 -1
  32. package/build/cjs/integrations/tracing/graphql/index.js +1 -51
  33. package/build/cjs/integrations/tracing/graphql/index.js.map +1 -1
  34. package/build/cjs/integrations/tracing/graphql/vendored/enum.js.map +1 -1
  35. package/build/cjs/integrations/tracing/graphql/vendored/enums/AttributeNames.js +0 -2
  36. package/build/cjs/integrations/tracing/graphql/vendored/enums/AttributeNames.js.map +1 -1
  37. package/build/cjs/integrations/tracing/graphql/vendored/instrumentation.js +67 -57
  38. package/build/cjs/integrations/tracing/graphql/vendored/instrumentation.js.map +1 -1
  39. package/build/cjs/integrations/tracing/graphql/vendored/internal-types.js.map +1 -1
  40. package/build/cjs/integrations/tracing/graphql/vendored/symbols.js.map +1 -1
  41. package/build/cjs/integrations/tracing/graphql/vendored/utils.js +28 -62
  42. package/build/cjs/integrations/tracing/graphql/vendored/utils.js.map +1 -1
  43. package/build/cjs/integrations/tracing/hapi/index.js +0 -17
  44. package/build/cjs/integrations/tracing/hapi/index.js.map +1 -1
  45. package/build/cjs/integrations/tracing/hapi/vendored/enums/AttributeNames.js.map +1 -1
  46. package/build/cjs/integrations/tracing/hapi/vendored/instrumentation.js +28 -45
  47. package/build/cjs/integrations/tracing/hapi/vendored/instrumentation.js.map +1 -1
  48. package/build/cjs/integrations/tracing/hapi/vendored/internal-types.js.map +1 -1
  49. package/build/cjs/integrations/tracing/hapi/vendored/semconv.js.map +1 -1
  50. package/build/cjs/integrations/tracing/hapi/vendored/utils.js +4 -9
  51. package/build/cjs/integrations/tracing/hapi/vendored/utils.js.map +1 -1
  52. package/build/cjs/integrations/tracing/index.js +1 -0
  53. package/build/cjs/integrations/tracing/index.js.map +1 -1
  54. package/build/cjs/integrations/tracing/kafka/vendored/instrumentation.js.map +1 -1
  55. package/build/cjs/integrations/tracing/kafka/vendored/internal-types.js.map +1 -1
  56. package/build/cjs/integrations/tracing/kafka/vendored/propagator.js.map +1 -1
  57. package/build/cjs/integrations/tracing/kafka/vendored/semconv.js.map +1 -1
  58. package/build/cjs/integrations/tracing/knex/index.js +2 -17
  59. package/build/cjs/integrations/tracing/knex/index.js.map +1 -1
  60. package/build/cjs/integrations/tracing/knex/vendored/instrumentation.js +65 -93
  61. package/build/cjs/integrations/tracing/knex/vendored/instrumentation.js.map +1 -1
  62. package/build/cjs/integrations/tracing/knex/vendored/semconv.js +2 -0
  63. package/build/cjs/integrations/tracing/knex/vendored/semconv.js.map +1 -1
  64. package/build/cjs/integrations/tracing/knex/vendored/utils.js +2 -15
  65. package/build/cjs/integrations/tracing/knex/vendored/utils.js.map +1 -1
  66. package/build/cjs/integrations/tracing/koa/index.js +1 -24
  67. package/build/cjs/integrations/tracing/koa/index.js.map +1 -1
  68. package/build/cjs/integrations/tracing/koa/vendored/enums/AttributeNames.js.map +1 -1
  69. package/build/cjs/integrations/tracing/koa/vendored/instrumentation.js +29 -41
  70. package/build/cjs/integrations/tracing/koa/vendored/instrumentation.js.map +1 -1
  71. package/build/cjs/integrations/tracing/koa/vendored/internal-types.js.map +1 -1
  72. package/build/cjs/integrations/tracing/koa/vendored/types.js.map +1 -1
  73. package/build/cjs/integrations/tracing/koa/vendored/utils.js.map +1 -1
  74. package/build/cjs/integrations/tracing/lrumemoizer/vendored/instrumentation.js.map +1 -1
  75. package/build/cjs/integrations/tracing/mongo/index.js +1 -42
  76. package/build/cjs/integrations/tracing/mongo/index.js.map +1 -1
  77. package/build/cjs/integrations/tracing/mongo/vendored/instrumentation.js +12 -562
  78. package/build/cjs/integrations/tracing/mongo/vendored/instrumentation.js.map +1 -1
  79. package/build/cjs/integrations/tracing/mongo/vendored/internal-types.js.map +1 -1
  80. package/build/cjs/integrations/tracing/mongo/vendored/patches.js +151 -0
  81. package/build/cjs/integrations/tracing/mongo/vendored/patches.js.map +1 -0
  82. package/build/cjs/integrations/tracing/mongo/vendored/semconv.js +0 -4
  83. package/build/cjs/integrations/tracing/mongo/vendored/semconv.js.map +1 -1
  84. package/build/cjs/integrations/tracing/mongo/vendored/utils.js +153 -0
  85. package/build/cjs/integrations/tracing/mongo/vendored/utils.js.map +1 -0
  86. package/build/cjs/integrations/tracing/mongoose/index.js +1 -8
  87. package/build/cjs/integrations/tracing/mongoose/index.js.map +1 -1
  88. package/build/cjs/integrations/tracing/mongoose/vendored/mongoose.js +56 -203
  89. package/build/cjs/integrations/tracing/mongoose/vendored/mongoose.js.map +1 -1
  90. package/build/cjs/integrations/tracing/mongoose/vendored/semconv.js +0 -4
  91. package/build/cjs/integrations/tracing/mongoose/vendored/semconv.js.map +1 -1
  92. package/build/cjs/integrations/tracing/mongoose/vendored/utils.js +19 -49
  93. package/build/cjs/integrations/tracing/mongoose/vendored/utils.js.map +1 -1
  94. package/build/cjs/integrations/tracing/mysql/vendored/AttributeNames.js.map +1 -1
  95. package/build/cjs/integrations/tracing/mysql/vendored/instrumentation.js.map +1 -1
  96. package/build/cjs/integrations/tracing/mysql/vendored/semconv.js.map +1 -1
  97. package/build/cjs/integrations/tracing/mysql/vendored/utils.js.map +1 -1
  98. package/build/cjs/integrations/tracing/mysql2/index.js +1 -8
  99. package/build/cjs/integrations/tracing/mysql2/index.js.map +1 -1
  100. package/build/cjs/integrations/tracing/mysql2/vendored/instrumentation.js +21 -59
  101. package/build/cjs/integrations/tracing/mysql2/vendored/instrumentation.js.map +1 -1
  102. package/build/cjs/integrations/tracing/mysql2/vendored/semconv.js.map +1 -1
  103. package/build/cjs/integrations/tracing/mysql2/vendored/utils.js +14 -33
  104. package/build/cjs/integrations/tracing/mysql2/vendored/utils.js.map +1 -1
  105. package/build/cjs/integrations/tracing/postgres/index.js +0 -4
  106. package/build/cjs/integrations/tracing/postgres/index.js.map +1 -1
  107. package/build/cjs/integrations/tracing/postgres/vendored/enums/AttributeNames.js +0 -1
  108. package/build/cjs/integrations/tracing/postgres/vendored/enums/AttributeNames.js.map +1 -1
  109. package/build/cjs/integrations/tracing/postgres/vendored/enums/SpanNames.js.map +1 -1
  110. package/build/cjs/integrations/tracing/postgres/vendored/instrumentation.js +51 -261
  111. package/build/cjs/integrations/tracing/postgres/vendored/instrumentation.js.map +1 -1
  112. package/build/cjs/integrations/tracing/postgres/vendored/semconv.js +0 -12
  113. package/build/cjs/integrations/tracing/postgres/vendored/semconv.js.map +1 -1
  114. package/build/cjs/integrations/tracing/postgres/vendored/utils.js +43 -167
  115. package/build/cjs/integrations/tracing/postgres/vendored/utils.js.map +1 -1
  116. package/build/cjs/integrations/tracing/prisma/vendored/active-tracing-helper.js.map +1 -1
  117. package/build/cjs/integrations/tracing/prisma/vendored/constants.js.map +1 -1
  118. package/build/cjs/integrations/tracing/prisma/vendored/global.js.map +1 -1
  119. package/build/cjs/integrations/tracing/prisma/vendored/instrumentation.js.map +1 -1
  120. package/build/cjs/integrations/tracing/redis/index.js.map +1 -1
  121. package/build/cjs/integrations/tracing/redis/vendored/ioredis-instrumentation.js +89 -160
  122. package/build/cjs/integrations/tracing/redis/vendored/ioredis-instrumentation.js.map +1 -1
  123. package/build/cjs/integrations/tracing/redis/vendored/redis-common.js.map +1 -1
  124. package/build/cjs/integrations/tracing/redis/vendored/redis-instrumentation.js +92 -231
  125. package/build/cjs/integrations/tracing/redis/vendored/redis-instrumentation.js.map +1 -1
  126. package/build/cjs/integrations/tracing/redis/vendored/semconv.js +0 -2
  127. package/build/cjs/integrations/tracing/redis/vendored/semconv.js.map +1 -1
  128. package/build/cjs/integrations/tracing/tedious/index.js +1 -25
  129. package/build/cjs/integrations/tracing/tedious/index.js.map +1 -1
  130. package/build/cjs/integrations/tracing/tedious/vendored/instrumentation.js +25 -76
  131. package/build/cjs/integrations/tracing/tedious/vendored/instrumentation.js.map +1 -1
  132. package/build/cjs/integrations/tracing/tedious/vendored/semconv.js.map +1 -1
  133. package/build/cjs/integrations/tracing/tedious/vendored/utils.js.map +1 -1
  134. package/build/cjs/sdk/diagnosticsChannelInjection.js +21 -0
  135. package/build/cjs/sdk/diagnosticsChannelInjection.js.map +1 -0
  136. package/build/cjs/sdk/experimentalUseDiagnosticsChannelInjection.js +19 -0
  137. package/build/cjs/sdk/experimentalUseDiagnosticsChannelInjection.js.map +1 -0
  138. package/build/cjs/sdk/index.js +17 -1
  139. package/build/cjs/sdk/index.js.map +1 -1
  140. package/build/esm/index.js +1 -0
  141. package/build/esm/index.js.map +1 -1
  142. package/build/esm/integrations/fs/index.js +4 -85
  143. package/build/esm/integrations/fs/index.js.map +1 -1
  144. package/build/esm/integrations/fs/vendored/constants.js.map +1 -1
  145. package/build/esm/integrations/fs/vendored/instrumentation.js +147 -177
  146. package/build/esm/integrations/fs/vendored/instrumentation.js.map +1 -1
  147. package/build/esm/integrations/fs/vendored/utils.js.map +1 -1
  148. package/build/esm/integrations/node-fetch/vendored/undici.js.map +1 -1
  149. package/build/esm/integrations/tracing/amqplib/vendored/amqplib.js.map +1 -1
  150. package/build/esm/integrations/tracing/amqplib/vendored/semconv-obsolete.js.map +1 -1
  151. package/build/esm/integrations/tracing/amqplib/vendored/semconv.js.map +1 -1
  152. package/build/esm/integrations/tracing/amqplib/vendored/types.js.map +1 -1
  153. package/build/esm/integrations/tracing/amqplib/vendored/utils.js.map +1 -1
  154. package/build/esm/integrations/tracing/connect/index.js +1 -22
  155. package/build/esm/integrations/tracing/connect/index.js.map +1 -1
  156. package/build/esm/integrations/tracing/connect/vendored/enums/AttributeNames.js +1 -6
  157. package/build/esm/integrations/tracing/connect/vendored/enums/AttributeNames.js.map +1 -1
  158. package/build/esm/integrations/tracing/connect/vendored/instrumentation.js +36 -44
  159. package/build/esm/integrations/tracing/connect/vendored/instrumentation.js.map +1 -1
  160. package/build/esm/integrations/tracing/connect/vendored/internal-types.js.map +1 -1
  161. package/build/esm/integrations/tracing/connect/vendored/utils.js +3 -2
  162. package/build/esm/integrations/tracing/connect/vendored/utils.js.map +1 -1
  163. package/build/esm/integrations/tracing/dataloader/vendored/instrumentation.js.map +1 -1
  164. package/build/esm/integrations/tracing/fastify/v3/instrumentation.js +1 -1
  165. package/build/esm/integrations/tracing/fastify/v3/instrumentation.js.map +1 -1
  166. package/build/esm/integrations/tracing/fastify/vendored/instrumentation.js.map +1 -1
  167. package/build/esm/integrations/tracing/genericPool/index.js +3 -17
  168. package/build/esm/integrations/tracing/genericPool/index.js.map +1 -1
  169. package/build/esm/integrations/tracing/genericPool/vendored/instrumentation.js +31 -19
  170. package/build/esm/integrations/tracing/genericPool/vendored/instrumentation.js.map +1 -1
  171. package/build/esm/integrations/tracing/graphql/index.js +3 -53
  172. package/build/esm/integrations/tracing/graphql/index.js.map +1 -1
  173. package/build/esm/integrations/tracing/graphql/vendored/enum.js.map +1 -1
  174. package/build/esm/integrations/tracing/graphql/vendored/enums/AttributeNames.js +0 -2
  175. package/build/esm/integrations/tracing/graphql/vendored/enums/AttributeNames.js.map +1 -1
  176. package/build/esm/integrations/tracing/graphql/vendored/instrumentation.js +69 -59
  177. package/build/esm/integrations/tracing/graphql/vendored/instrumentation.js.map +1 -1
  178. package/build/esm/integrations/tracing/graphql/vendored/internal-types.js.map +1 -1
  179. package/build/esm/integrations/tracing/graphql/vendored/symbols.js.map +1 -1
  180. package/build/esm/integrations/tracing/graphql/vendored/utils.js +29 -62
  181. package/build/esm/integrations/tracing/graphql/vendored/utils.js.map +1 -1
  182. package/build/esm/integrations/tracing/hapi/index.js +1 -18
  183. package/build/esm/integrations/tracing/hapi/index.js.map +1 -1
  184. package/build/esm/integrations/tracing/hapi/vendored/enums/AttributeNames.js.map +1 -1
  185. package/build/esm/integrations/tracing/hapi/vendored/instrumentation.js +30 -47
  186. package/build/esm/integrations/tracing/hapi/vendored/instrumentation.js.map +1 -1
  187. package/build/esm/integrations/tracing/hapi/vendored/internal-types.js.map +1 -1
  188. package/build/esm/integrations/tracing/hapi/vendored/semconv.js.map +1 -1
  189. package/build/esm/integrations/tracing/hapi/vendored/utils.js +5 -10
  190. package/build/esm/integrations/tracing/hapi/vendored/utils.js.map +1 -1
  191. package/build/esm/integrations/tracing/index.js +1 -0
  192. package/build/esm/integrations/tracing/index.js.map +1 -1
  193. package/build/esm/integrations/tracing/kafka/vendored/instrumentation.js.map +1 -1
  194. package/build/esm/integrations/tracing/kafka/vendored/internal-types.js.map +1 -1
  195. package/build/esm/integrations/tracing/kafka/vendored/propagator.js.map +1 -1
  196. package/build/esm/integrations/tracing/kafka/vendored/semconv.js.map +1 -1
  197. package/build/esm/integrations/tracing/knex/index.js +4 -19
  198. package/build/esm/integrations/tracing/knex/index.js.map +1 -1
  199. package/build/esm/integrations/tracing/knex/vendored/instrumentation.js +66 -94
  200. package/build/esm/integrations/tracing/knex/vendored/instrumentation.js.map +1 -1
  201. package/build/esm/integrations/tracing/knex/vendored/semconv.js +2 -1
  202. package/build/esm/integrations/tracing/knex/vendored/semconv.js.map +1 -1
  203. package/build/esm/integrations/tracing/knex/vendored/utils.js +3 -15
  204. package/build/esm/integrations/tracing/knex/vendored/utils.js.map +1 -1
  205. package/build/esm/integrations/tracing/koa/index.js +3 -26
  206. package/build/esm/integrations/tracing/koa/index.js.map +1 -1
  207. package/build/esm/integrations/tracing/koa/vendored/enums/AttributeNames.js.map +1 -1
  208. package/build/esm/integrations/tracing/koa/vendored/instrumentation.js +31 -43
  209. package/build/esm/integrations/tracing/koa/vendored/instrumentation.js.map +1 -1
  210. package/build/esm/integrations/tracing/koa/vendored/internal-types.js.map +1 -1
  211. package/build/esm/integrations/tracing/koa/vendored/types.js.map +1 -1
  212. package/build/esm/integrations/tracing/koa/vendored/utils.js.map +1 -1
  213. package/build/esm/integrations/tracing/lrumemoizer/vendored/instrumentation.js.map +1 -1
  214. package/build/esm/integrations/tracing/mongo/index.js +3 -43
  215. package/build/esm/integrations/tracing/mongo/index.js.map +1 -1
  216. package/build/esm/integrations/tracing/mongo/vendored/instrumentation.js +13 -563
  217. package/build/esm/integrations/tracing/mongo/vendored/instrumentation.js.map +1 -1
  218. package/build/esm/integrations/tracing/mongo/vendored/internal-types.js.map +1 -1
  219. package/build/esm/integrations/tracing/mongo/vendored/patches.js +143 -0
  220. package/build/esm/integrations/tracing/mongo/vendored/patches.js.map +1 -0
  221. package/build/esm/integrations/tracing/mongo/vendored/semconv.js +1 -3
  222. package/build/esm/integrations/tracing/mongo/vendored/semconv.js.map +1 -1
  223. package/build/esm/integrations/tracing/mongo/vendored/utils.js +146 -0
  224. package/build/esm/integrations/tracing/mongo/vendored/utils.js.map +1 -0
  225. package/build/esm/integrations/tracing/mongoose/index.js +2 -9
  226. package/build/esm/integrations/tracing/mongoose/index.js.map +1 -1
  227. package/build/esm/integrations/tracing/mongoose/vendored/mongoose.js +59 -206
  228. package/build/esm/integrations/tracing/mongoose/vendored/mongoose.js.map +1 -1
  229. package/build/esm/integrations/tracing/mongoose/vendored/semconv.js +1 -3
  230. package/build/esm/integrations/tracing/mongoose/vendored/semconv.js.map +1 -1
  231. package/build/esm/integrations/tracing/mongoose/vendored/utils.js +20 -50
  232. package/build/esm/integrations/tracing/mongoose/vendored/utils.js.map +1 -1
  233. package/build/esm/integrations/tracing/mysql/vendored/AttributeNames.js.map +1 -1
  234. package/build/esm/integrations/tracing/mysql/vendored/instrumentation.js.map +1 -1
  235. package/build/esm/integrations/tracing/mysql/vendored/semconv.js.map +1 -1
  236. package/build/esm/integrations/tracing/mysql/vendored/utils.js.map +1 -1
  237. package/build/esm/integrations/tracing/mysql2/index.js +2 -9
  238. package/build/esm/integrations/tracing/mysql2/index.js.map +1 -1
  239. package/build/esm/integrations/tracing/mysql2/vendored/instrumentation.js +26 -64
  240. package/build/esm/integrations/tracing/mysql2/vendored/instrumentation.js.map +1 -1
  241. package/build/esm/integrations/tracing/mysql2/vendored/semconv.js.map +1 -1
  242. package/build/esm/integrations/tracing/mysql2/vendored/utils.js +15 -34
  243. package/build/esm/integrations/tracing/mysql2/vendored/utils.js.map +1 -1
  244. package/build/esm/integrations/tracing/postgres/index.js +1 -5
  245. package/build/esm/integrations/tracing/postgres/index.js.map +1 -1
  246. package/build/esm/integrations/tracing/postgres/vendored/enums/AttributeNames.js +0 -1
  247. package/build/esm/integrations/tracing/postgres/vendored/enums/AttributeNames.js.map +1 -1
  248. package/build/esm/integrations/tracing/postgres/vendored/enums/SpanNames.js.map +1 -1
  249. package/build/esm/integrations/tracing/postgres/vendored/instrumentation.js +52 -262
  250. package/build/esm/integrations/tracing/postgres/vendored/instrumentation.js.map +1 -1
  251. package/build/esm/integrations/tracing/postgres/vendored/semconv.js +1 -7
  252. package/build/esm/integrations/tracing/postgres/vendored/semconv.js.map +1 -1
  253. package/build/esm/integrations/tracing/postgres/vendored/utils.js +44 -165
  254. package/build/esm/integrations/tracing/postgres/vendored/utils.js.map +1 -1
  255. package/build/esm/integrations/tracing/prisma/vendored/active-tracing-helper.js.map +1 -1
  256. package/build/esm/integrations/tracing/prisma/vendored/constants.js.map +1 -1
  257. package/build/esm/integrations/tracing/prisma/vendored/global.js.map +1 -1
  258. package/build/esm/integrations/tracing/prisma/vendored/instrumentation.js.map +1 -1
  259. package/build/esm/integrations/tracing/redis/index.js.map +1 -1
  260. package/build/esm/integrations/tracing/redis/vendored/ioredis-instrumentation.js +92 -163
  261. package/build/esm/integrations/tracing/redis/vendored/ioredis-instrumentation.js.map +1 -1
  262. package/build/esm/integrations/tracing/redis/vendored/redis-common.js.map +1 -1
  263. package/build/esm/integrations/tracing/redis/vendored/redis-instrumentation.js +94 -233
  264. package/build/esm/integrations/tracing/redis/vendored/redis-instrumentation.js.map +1 -1
  265. package/build/esm/integrations/tracing/redis/vendored/semconv.js +1 -2
  266. package/build/esm/integrations/tracing/redis/vendored/semconv.js.map +1 -1
  267. package/build/esm/integrations/tracing/tedious/index.js +3 -27
  268. package/build/esm/integrations/tracing/tedious/index.js.map +1 -1
  269. package/build/esm/integrations/tracing/tedious/vendored/instrumentation.js +29 -79
  270. package/build/esm/integrations/tracing/tedious/vendored/instrumentation.js.map +1 -1
  271. package/build/esm/integrations/tracing/tedious/vendored/semconv.js.map +1 -1
  272. package/build/esm/integrations/tracing/tedious/vendored/utils.js.map +1 -1
  273. package/build/esm/package.json +1 -1
  274. package/build/esm/sdk/diagnosticsChannelInjection.js +17 -0
  275. package/build/esm/sdk/diagnosticsChannelInjection.js.map +1 -0
  276. package/build/esm/sdk/experimentalUseDiagnosticsChannelInjection.js +17 -0
  277. package/build/esm/sdk/experimentalUseDiagnosticsChannelInjection.js.map +1 -0
  278. package/build/esm/sdk/index.js +17 -1
  279. package/build/esm/sdk/index.js.map +1 -1
  280. package/build/import-hook.mjs +6 -0
  281. package/build/types/index.d.ts +1 -0
  282. package/build/types/index.d.ts.map +1 -1
  283. package/build/types/integrations/fs/index.d.ts.map +1 -1
  284. package/build/types/integrations/fs/vendored/constants.d.ts.map +1 -1
  285. package/build/types/integrations/fs/vendored/instrumentation.d.ts +6 -10
  286. package/build/types/integrations/fs/vendored/instrumentation.d.ts.map +1 -1
  287. package/build/types/integrations/fs/vendored/types.d.ts +10 -15
  288. package/build/types/integrations/fs/vendored/types.d.ts.map +1 -1
  289. package/build/types/integrations/fs/vendored/utils.d.ts +2 -2
  290. package/build/types/integrations/fs/vendored/utils.d.ts.map +1 -1
  291. package/build/types/integrations/node-fetch/vendored/internal-types.d.ts.map +1 -1
  292. package/build/types/integrations/node-fetch/vendored/types.d.ts.map +1 -1
  293. package/build/types/integrations/node-fetch/vendored/undici.d.ts.map +1 -1
  294. package/build/types/integrations/tracing/amqplib/vendored/amqplib.d.ts.map +1 -1
  295. package/build/types/integrations/tracing/amqplib/vendored/semconv-obsolete.d.ts.map +1 -1
  296. package/build/types/integrations/tracing/amqplib/vendored/semconv.d.ts.map +1 -1
  297. package/build/types/integrations/tracing/amqplib/vendored/types.d.ts.map +1 -1
  298. package/build/types/integrations/tracing/amqplib/vendored/utils.d.ts.map +1 -1
  299. package/build/types/integrations/tracing/connect/index.d.ts.map +1 -1
  300. package/build/types/integrations/tracing/connect/vendored/enums/AttributeNames.d.ts +0 -4
  301. package/build/types/integrations/tracing/connect/vendored/enums/AttributeNames.d.ts.map +1 -1
  302. package/build/types/integrations/tracing/connect/vendored/instrumentation.d.ts +5 -5
  303. package/build/types/integrations/tracing/connect/vendored/instrumentation.d.ts.map +1 -1
  304. package/build/types/integrations/tracing/connect/vendored/internal-types.d.ts +2 -2
  305. package/build/types/integrations/tracing/connect/vendored/internal-types.d.ts.map +1 -1
  306. package/build/types/integrations/tracing/connect/vendored/utils.d.ts +1 -1
  307. package/build/types/integrations/tracing/connect/vendored/utils.d.ts.map +1 -1
  308. package/build/types/integrations/tracing/dataloader/vendored/instrumentation.d.ts.map +1 -1
  309. package/build/types/integrations/tracing/dataloader/vendored/types.d.ts.map +1 -1
  310. package/build/types/integrations/tracing/fastify/vendored/instrumentation.d.ts.map +1 -1
  311. package/build/types/integrations/tracing/genericPool/index.d.ts.map +1 -1
  312. package/build/types/integrations/tracing/genericPool/vendored/instrumentation.d.ts.map +1 -1
  313. package/build/types/integrations/tracing/graphql/index.d.ts.map +1 -1
  314. package/build/types/integrations/tracing/graphql/vendored/enum.d.ts.map +1 -1
  315. package/build/types/integrations/tracing/graphql/vendored/enums/AttributeNames.d.ts +1 -3
  316. package/build/types/integrations/tracing/graphql/vendored/enums/AttributeNames.d.ts.map +1 -1
  317. package/build/types/integrations/tracing/graphql/vendored/instrumentation.d.ts +7 -2
  318. package/build/types/integrations/tracing/graphql/vendored/instrumentation.d.ts.map +1 -1
  319. package/build/types/integrations/tracing/graphql/vendored/internal-types.d.ts +4 -4
  320. package/build/types/integrations/tracing/graphql/vendored/internal-types.d.ts.map +1 -1
  321. package/build/types/integrations/tracing/graphql/vendored/symbols.d.ts.map +1 -1
  322. package/build/types/integrations/tracing/graphql/vendored/types.d.ts +5 -43
  323. package/build/types/integrations/tracing/graphql/vendored/types.d.ts.map +1 -1
  324. package/build/types/integrations/tracing/graphql/vendored/utils.d.ts +8 -11
  325. package/build/types/integrations/tracing/graphql/vendored/utils.d.ts.map +1 -1
  326. package/build/types/integrations/tracing/hapi/index.d.ts.map +1 -1
  327. package/build/types/integrations/tracing/hapi/vendored/enums/AttributeNames.d.ts.map +1 -1
  328. package/build/types/integrations/tracing/hapi/vendored/instrumentation.d.ts +2 -2
  329. package/build/types/integrations/tracing/hapi/vendored/instrumentation.d.ts.map +1 -1
  330. package/build/types/integrations/tracing/hapi/vendored/internal-types.d.ts.map +1 -1
  331. package/build/types/integrations/tracing/hapi/vendored/semconv.d.ts.map +1 -1
  332. package/build/types/integrations/tracing/hapi/vendored/utils.d.ts +3 -4
  333. package/build/types/integrations/tracing/hapi/vendored/utils.d.ts.map +1 -1
  334. package/build/types/integrations/tracing/index.d.ts.map +1 -1
  335. package/build/types/integrations/tracing/kafka/vendored/instrumentation.d.ts.map +1 -1
  336. package/build/types/integrations/tracing/kafka/vendored/internal-types.d.ts.map +1 -1
  337. package/build/types/integrations/tracing/kafka/vendored/propagator.d.ts.map +1 -1
  338. package/build/types/integrations/tracing/kafka/vendored/semconv.d.ts.map +1 -1
  339. package/build/types/integrations/tracing/kafka/vendored/types.d.ts.map +1 -1
  340. package/build/types/integrations/tracing/knex/index.d.ts.map +1 -1
  341. package/build/types/integrations/tracing/knex/vendored/instrumentation.d.ts +8 -10
  342. package/build/types/integrations/tracing/knex/vendored/instrumentation.d.ts.map +1 -1
  343. package/build/types/integrations/tracing/knex/vendored/semconv.d.ts +1 -0
  344. package/build/types/integrations/tracing/knex/vendored/semconv.d.ts.map +1 -1
  345. package/build/types/integrations/tracing/knex/vendored/utils.d.ts +0 -6
  346. package/build/types/integrations/tracing/knex/vendored/utils.d.ts.map +1 -1
  347. package/build/types/integrations/tracing/koa/index.d.ts.map +1 -1
  348. package/build/types/integrations/tracing/koa/vendored/enums/AttributeNames.d.ts.map +1 -1
  349. package/build/types/integrations/tracing/koa/vendored/instrumentation.d.ts +1 -1
  350. package/build/types/integrations/tracing/koa/vendored/instrumentation.d.ts.map +1 -1
  351. package/build/types/integrations/tracing/koa/vendored/internal-types.d.ts +4 -4
  352. package/build/types/integrations/tracing/koa/vendored/internal-types.d.ts.map +1 -1
  353. package/build/types/integrations/tracing/koa/vendored/types.d.ts +2 -39
  354. package/build/types/integrations/tracing/koa/vendored/types.d.ts.map +1 -1
  355. package/build/types/integrations/tracing/koa/vendored/utils.d.ts +3 -3
  356. package/build/types/integrations/tracing/koa/vendored/utils.d.ts.map +1 -1
  357. package/build/types/integrations/tracing/lrumemoizer/vendored/instrumentation.d.ts.map +1 -1
  358. package/build/types/integrations/tracing/mongo/index.d.ts +0 -4
  359. package/build/types/integrations/tracing/mongo/index.d.ts.map +1 -1
  360. package/build/types/integrations/tracing/mongo/vendored/instrumentation.d.ts +4 -72
  361. package/build/types/integrations/tracing/mongo/vendored/instrumentation.d.ts.map +1 -1
  362. package/build/types/integrations/tracing/mongo/vendored/internal-types.d.ts +0 -59
  363. package/build/types/integrations/tracing/mongo/vendored/internal-types.d.ts.map +1 -1
  364. package/build/types/integrations/tracing/mongo/vendored/patches.d.ts +15 -0
  365. package/build/types/integrations/tracing/mongo/vendored/patches.d.ts.map +1 -0
  366. package/build/types/integrations/tracing/mongo/vendored/semconv.d.ts +0 -54
  367. package/build/types/integrations/tracing/mongo/vendored/semconv.d.ts.map +1 -1
  368. package/build/types/integrations/tracing/mongo/vendored/utils.d.ts +24 -0
  369. package/build/types/integrations/tracing/mongo/vendored/utils.d.ts.map +1 -0
  370. package/build/types/integrations/tracing/mongoose/index.d.ts.map +1 -1
  371. package/build/types/integrations/tracing/mongoose/vendored/mongoose-types.d.ts +3 -0
  372. package/build/types/integrations/tracing/mongoose/vendored/mongoose-types.d.ts.map +1 -1
  373. package/build/types/integrations/tracing/mongoose/vendored/mongoose.d.ts +3 -8
  374. package/build/types/integrations/tracing/mongoose/vendored/mongoose.d.ts.map +1 -1
  375. package/build/types/integrations/tracing/mongoose/vendored/semconv.d.ts +0 -14
  376. package/build/types/integrations/tracing/mongoose/vendored/semconv.d.ts.map +1 -1
  377. package/build/types/integrations/tracing/mongoose/vendored/utils.d.ts +4 -6
  378. package/build/types/integrations/tracing/mongoose/vendored/utils.d.ts.map +1 -1
  379. package/build/types/integrations/tracing/mysql/vendored/AttributeNames.d.ts.map +1 -1
  380. package/build/types/integrations/tracing/mysql/vendored/instrumentation.d.ts.map +1 -1
  381. package/build/types/integrations/tracing/mysql/vendored/mysql-types.d.ts.map +1 -1
  382. package/build/types/integrations/tracing/mysql/vendored/semconv.d.ts.map +1 -1
  383. package/build/types/integrations/tracing/mysql/vendored/types.d.ts.map +1 -1
  384. package/build/types/integrations/tracing/mysql/vendored/utils.d.ts.map +1 -1
  385. package/build/types/integrations/tracing/mysql2/index.d.ts.map +1 -1
  386. package/build/types/integrations/tracing/mysql2/vendored/instrumentation.d.ts +3 -6
  387. package/build/types/integrations/tracing/mysql2/vendored/instrumentation.d.ts.map +1 -1
  388. package/build/types/integrations/tracing/mysql2/vendored/semconv.d.ts.map +1 -1
  389. package/build/types/integrations/tracing/mysql2/vendored/utils.d.ts +3 -5
  390. package/build/types/integrations/tracing/mysql2/vendored/utils.d.ts.map +1 -1
  391. package/build/types/integrations/tracing/postgres/index.d.ts.map +1 -1
  392. package/build/types/integrations/tracing/postgres/vendored/enums/AttributeNames.d.ts +0 -1
  393. package/build/types/integrations/tracing/postgres/vendored/enums/AttributeNames.d.ts.map +1 -1
  394. package/build/types/integrations/tracing/postgres/vendored/enums/SpanNames.d.ts.map +1 -1
  395. package/build/types/integrations/tracing/postgres/vendored/instrumentation.d.ts +1 -9
  396. package/build/types/integrations/tracing/postgres/vendored/instrumentation.d.ts.map +1 -1
  397. package/build/types/integrations/tracing/postgres/vendored/internal-types.d.ts +0 -2
  398. package/build/types/integrations/tracing/postgres/vendored/internal-types.d.ts.map +1 -1
  399. package/build/types/integrations/tracing/postgres/vendored/pg-pool-types.d.ts.map +1 -1
  400. package/build/types/integrations/tracing/postgres/vendored/pg-types.d.ts.map +1 -1
  401. package/build/types/integrations/tracing/postgres/vendored/semconv.d.ts +0 -50
  402. package/build/types/integrations/tracing/postgres/vendored/semconv.d.ts.map +1 -1
  403. package/build/types/integrations/tracing/postgres/vendored/types.d.ts +2 -56
  404. package/build/types/integrations/tracing/postgres/vendored/types.d.ts.map +1 -1
  405. package/build/types/integrations/tracing/postgres/vendored/utils.d.ts +13 -26
  406. package/build/types/integrations/tracing/postgres/vendored/utils.d.ts.map +1 -1
  407. package/build/types/integrations/tracing/prisma/vendored/active-tracing-helper.d.ts.map +1 -1
  408. package/build/types/integrations/tracing/prisma/vendored/constants.d.ts.map +1 -1
  409. package/build/types/integrations/tracing/prisma/vendored/global.d.ts.map +1 -1
  410. package/build/types/integrations/tracing/prisma/vendored/instrumentation.d.ts.map +1 -1
  411. package/build/types/integrations/tracing/prisma/vendored/types.d.ts.map +1 -1
  412. package/build/types/integrations/tracing/redis/index.d.ts.map +1 -1
  413. package/build/types/integrations/tracing/redis/vendored/ioredis-instrumentation.d.ts +3 -8
  414. package/build/types/integrations/tracing/redis/vendored/ioredis-instrumentation.d.ts.map +1 -1
  415. package/build/types/integrations/tracing/redis/vendored/redis-common.d.ts.map +1 -1
  416. package/build/types/integrations/tracing/redis/vendored/redis-instrumentation.d.ts.map +1 -1
  417. package/build/types/integrations/tracing/redis/vendored/semconv.d.ts.map +1 -1
  418. package/build/types/integrations/tracing/redis/vendored/types.d.ts +2 -36
  419. package/build/types/integrations/tracing/redis/vendored/types.d.ts.map +1 -1
  420. package/build/types/integrations/tracing/tedious/index.d.ts.map +1 -1
  421. package/build/types/integrations/tracing/tedious/vendored/instrumentation.d.ts +3 -14
  422. package/build/types/integrations/tracing/tedious/vendored/instrumentation.d.ts.map +1 -1
  423. package/build/types/integrations/tracing/tedious/vendored/semconv.d.ts.map +1 -1
  424. package/build/types/integrations/tracing/tedious/vendored/utils.d.ts.map +1 -1
  425. package/build/types/sdk/diagnosticsChannelInjection.d.ts +41 -0
  426. package/build/types/sdk/diagnosticsChannelInjection.d.ts.map +1 -0
  427. package/build/types/sdk/experimentalUseDiagnosticsChannelInjection.d.ts +34 -0
  428. package/build/types/sdk/experimentalUseDiagnosticsChannelInjection.d.ts.map +1 -0
  429. package/build/types/sdk/index.d.ts.map +1 -1
  430. package/build/types-ts3.8/index.d.ts +1 -0
  431. package/build/types-ts3.8/integrations/fs/vendored/instrumentation.d.ts +6 -10
  432. package/build/types-ts3.8/integrations/fs/vendored/types.d.ts +10 -15
  433. package/build/types-ts3.8/integrations/fs/vendored/utils.d.ts +2 -2
  434. package/build/types-ts3.8/integrations/tracing/connect/vendored/enums/AttributeNames.d.ts +0 -4
  435. package/build/types-ts3.8/integrations/tracing/connect/vendored/instrumentation.d.ts +4 -4
  436. package/build/types-ts3.8/integrations/tracing/connect/vendored/internal-types.d.ts +2 -2
  437. package/build/types-ts3.8/integrations/tracing/graphql/vendored/enums/AttributeNames.d.ts +1 -3
  438. package/build/types-ts3.8/integrations/tracing/graphql/vendored/instrumentation.d.ts +6 -1
  439. package/build/types-ts3.8/integrations/tracing/graphql/vendored/internal-types.d.ts +3 -3
  440. package/build/types-ts3.8/integrations/tracing/graphql/vendored/types.d.ts +4 -42
  441. package/build/types-ts3.8/integrations/tracing/graphql/vendored/utils.d.ts +6 -9
  442. package/build/types-ts3.8/integrations/tracing/hapi/vendored/instrumentation.d.ts +2 -2
  443. package/build/types-ts3.8/integrations/tracing/hapi/vendored/utils.d.ts +1 -2
  444. package/build/types-ts3.8/integrations/tracing/knex/vendored/instrumentation.d.ts +8 -10
  445. package/build/types-ts3.8/integrations/tracing/knex/vendored/semconv.d.ts +1 -0
  446. package/build/types-ts3.8/integrations/tracing/knex/vendored/utils.d.ts +0 -6
  447. package/build/types-ts3.8/integrations/tracing/koa/vendored/internal-types.d.ts +4 -4
  448. package/build/types-ts3.8/integrations/tracing/koa/vendored/types.d.ts +1 -38
  449. package/build/types-ts3.8/integrations/tracing/mongo/index.d.ts +0 -4
  450. package/build/types-ts3.8/integrations/tracing/mongo/vendored/instrumentation.d.ts +4 -72
  451. package/build/types-ts3.8/integrations/tracing/mongo/vendored/internal-types.d.ts +0 -59
  452. package/build/types-ts3.8/integrations/tracing/mongo/vendored/patches.d.ts +15 -0
  453. package/build/types-ts3.8/integrations/tracing/mongo/vendored/semconv.d.ts +0 -54
  454. package/build/types-ts3.8/integrations/tracing/mongo/vendored/utils.d.ts +24 -0
  455. package/build/types-ts3.8/integrations/tracing/mongoose/vendored/mongoose-types.d.ts +3 -0
  456. package/build/types-ts3.8/integrations/tracing/mongoose/vendored/mongoose.d.ts +3 -8
  457. package/build/types-ts3.8/integrations/tracing/mongoose/vendored/semconv.d.ts +0 -14
  458. package/build/types-ts3.8/integrations/tracing/mongoose/vendored/utils.d.ts +4 -6
  459. package/build/types-ts3.8/integrations/tracing/mysql2/vendored/instrumentation.d.ts +3 -6
  460. package/build/types-ts3.8/integrations/tracing/mysql2/vendored/utils.d.ts +3 -5
  461. package/build/types-ts3.8/integrations/tracing/postgres/vendored/enums/AttributeNames.d.ts +0 -1
  462. package/build/types-ts3.8/integrations/tracing/postgres/vendored/instrumentation.d.ts +0 -8
  463. package/build/types-ts3.8/integrations/tracing/postgres/vendored/internal-types.d.ts +0 -2
  464. package/build/types-ts3.8/integrations/tracing/postgres/vendored/semconv.d.ts +0 -50
  465. package/build/types-ts3.8/integrations/tracing/postgres/vendored/types.d.ts +1 -55
  466. package/build/types-ts3.8/integrations/tracing/postgres/vendored/utils.d.ts +13 -26
  467. package/build/types-ts3.8/integrations/tracing/redis/vendored/ioredis-instrumentation.d.ts +3 -8
  468. package/build/types-ts3.8/integrations/tracing/redis/vendored/types.d.ts +2 -36
  469. package/build/types-ts3.8/integrations/tracing/tedious/vendored/instrumentation.d.ts +3 -14
  470. package/build/types-ts3.8/sdk/diagnosticsChannelInjection.d.ts +41 -0
  471. package/build/types-ts3.8/sdk/experimentalUseDiagnosticsChannelInjection.d.ts +34 -0
  472. package/package.json +20 -6
  473. package/build/cjs/integrations/tracing/knex/vendored/constants.js +0 -16
  474. package/build/cjs/integrations/tracing/knex/vendored/constants.js.map +0 -1
  475. package/build/cjs/integrations/tracing/postgres/vendored/internal-types.js +0 -6
  476. package/build/cjs/integrations/tracing/postgres/vendored/internal-types.js.map +0 -1
  477. package/build/cjs/integrations/tracing/utils/sql-common.js +0 -43
  478. package/build/cjs/integrations/tracing/utils/sql-common.js.map +0 -1
  479. package/build/esm/integrations/tracing/knex/vendored/constants.js +0 -13
  480. package/build/esm/integrations/tracing/knex/vendored/constants.js.map +0 -1
  481. package/build/esm/integrations/tracing/postgres/vendored/internal-types.js +0 -4
  482. package/build/esm/integrations/tracing/postgres/vendored/internal-types.js.map +0 -1
  483. package/build/esm/integrations/tracing/utils/sql-common.js +0 -41
  484. package/build/esm/integrations/tracing/utils/sql-common.js.map +0 -1
  485. package/build/types/integrations/tracing/knex/vendored/constants.d.ts +0 -3
  486. package/build/types/integrations/tracing/knex/vendored/constants.d.ts.map +0 -1
  487. package/build/types/integrations/tracing/knex/vendored/types.d.ts +0 -8
  488. package/build/types/integrations/tracing/knex/vendored/types.d.ts.map +0 -1
  489. package/build/types/integrations/tracing/mongo/vendored/types.d.ts +0 -51
  490. package/build/types/integrations/tracing/mongo/vendored/types.d.ts.map +0 -1
  491. package/build/types/integrations/tracing/mongoose/vendored/types.d.ts +0 -36
  492. package/build/types/integrations/tracing/mongoose/vendored/types.d.ts.map +0 -1
  493. package/build/types/integrations/tracing/mysql2/vendored/types.d.ts +0 -18
  494. package/build/types/integrations/tracing/mysql2/vendored/types.d.ts.map +0 -1
  495. package/build/types/integrations/tracing/tedious/vendored/types.d.ts +0 -10
  496. package/build/types/integrations/tracing/tedious/vendored/types.d.ts.map +0 -1
  497. package/build/types-ts3.8/integrations/tracing/knex/vendored/constants.d.ts +0 -3
  498. package/build/types-ts3.8/integrations/tracing/knex/vendored/types.d.ts +0 -8
  499. package/build/types-ts3.8/integrations/tracing/mongo/vendored/types.d.ts +0 -51
  500. package/build/types-ts3.8/integrations/tracing/mongoose/vendored/types.d.ts +0 -36
  501. package/build/types-ts3.8/integrations/tracing/mysql2/vendored/types.d.ts +0 -18
  502. package/build/types-ts3.8/integrations/tracing/tedious/vendored/types.d.ts +0 -10
@@ -1,12 +1,95 @@
1
- import * as api from '@opentelemetry/api';
2
- import { isTracingSuppressed, suppressTracing } from '@opentelemetry/core';
1
+ import { context } from '@opentelemetry/api';
3
2
  import { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';
4
- import { SDK_VERSION } from '@sentry/core';
5
- import { SYNC_FUNCTIONS, CALLBACK_FUNCTIONS, PROMISE_FUNCTIONS } from './constants.js';
3
+ import { SDK_VERSION, startInactiveSpan, suppressTracing, SPAN_STATUS_ERROR, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP, startSpan } from '@sentry/core';
6
4
  import { promisify } from 'util';
5
+ import { SYNC_FUNCTIONS, CALLBACK_FUNCTIONS, PROMISE_FUNCTIONS } from './constants.js';
7
6
  import { indexFs } from './utils.js';
8
7
 
9
8
  const PACKAGE_NAME = "@sentry/instrumentation-fs";
9
+ const SPAN_ORIGIN = "auto.file.fs";
10
+ const SPAN_OP = "file";
11
+ const FS_OPERATIONS_WITH_OLD_PATH_NEW_PATH = ["rename", "renameSync"];
12
+ const FS_OPERATIONS_WITH_SRC_DEST = ["copyFile", "cp", "copyFileSync", "cpSync"];
13
+ const FS_OPERATIONS_WITH_EXISTING_PATH_NEW_PATH = ["link", "linkSync"];
14
+ const FS_OPERATIONS_WITH_PREFIX = ["mkdtemp", "mkdtempSync"];
15
+ const FS_OPERATIONS_WITH_TARGET_PATH = ["symlink", "symlinkSync"];
16
+ const FS_OPERATIONS_WITH_PATH_ARG = [
17
+ "access",
18
+ "appendFile",
19
+ "chmod",
20
+ "chown",
21
+ "exists",
22
+ "mkdir",
23
+ "lchown",
24
+ "lstat",
25
+ "lutimes",
26
+ "open",
27
+ "opendir",
28
+ "readdir",
29
+ "readFile",
30
+ "readlink",
31
+ "realpath",
32
+ "realpath.native",
33
+ "rm",
34
+ "rmdir",
35
+ "stat",
36
+ "truncate",
37
+ "unlink",
38
+ "utimes",
39
+ "writeFile",
40
+ "accessSync",
41
+ "appendFileSync",
42
+ "chmodSync",
43
+ "chownSync",
44
+ "existsSync",
45
+ "lchownSync",
46
+ "lstatSync",
47
+ "lutimesSync",
48
+ "opendirSync",
49
+ "mkdirSync",
50
+ "openSync",
51
+ "readdirSync",
52
+ "readFileSync",
53
+ "readlinkSync",
54
+ "realpathSync",
55
+ "realpathSync.native",
56
+ "rmdirSync",
57
+ "rmSync",
58
+ "statSync",
59
+ "truncateSync",
60
+ "unlinkSync",
61
+ "utimesSync",
62
+ "writeFileSync"
63
+ ];
64
+ function getSpanAttributes(functionName, args, config) {
65
+ const attributes = {
66
+ [SEMANTIC_ATTRIBUTE_SENTRY_OP]: SPAN_OP,
67
+ [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: SPAN_ORIGIN
68
+ };
69
+ if (!config.recordFilePaths) {
70
+ return attributes;
71
+ }
72
+ if (typeof args[0] === "string" && FS_OPERATIONS_WITH_PATH_ARG.includes(functionName)) {
73
+ attributes["path_argument"] = args[0];
74
+ } else if (typeof args[0] === "string" && typeof args[1] === "string") {
75
+ if (FS_OPERATIONS_WITH_TARGET_PATH.includes(functionName)) {
76
+ attributes["target_argument"] = args[0];
77
+ attributes["path_argument"] = args[1];
78
+ } else if (FS_OPERATIONS_WITH_EXISTING_PATH_NEW_PATH.includes(functionName)) {
79
+ attributes["existing_path_argument"] = args[0];
80
+ attributes["new_path_argument"] = args[1];
81
+ } else if (FS_OPERATIONS_WITH_SRC_DEST.includes(functionName)) {
82
+ attributes["src_argument"] = args[0];
83
+ attributes["dest_argument"] = args[1];
84
+ } else if (FS_OPERATIONS_WITH_OLD_PATH_NEW_PATH.includes(functionName)) {
85
+ attributes["old_path_argument"] = args[0];
86
+ attributes["new_path_argument"] = args[1];
87
+ }
88
+ } else if (typeof args[0] === "string" && FS_OPERATIONS_WITH_PREFIX.includes(functionName)) {
89
+ attributes["prefix_argument"] = args[0];
90
+ }
91
+ return attributes;
92
+ }
10
93
  function patchedFunctionWithOriginalProperties(patchedFunction, original) {
11
94
  return Object.assign(patchedFunction, original);
12
95
  }
@@ -33,11 +116,7 @@ class FsInstrumentation extends InstrumentationBase {
33
116
  this._unwrap(objectToPatch, functionNameToPatch);
34
117
  }
35
118
  if (fName === "exists") {
36
- this._wrap(
37
- objectToPatch,
38
- functionNameToPatch,
39
- this._patchExistsCallbackFunction.bind(this, fName)
40
- );
119
+ this._wrap(objectToPatch, functionNameToPatch, this._patchExistsCallbackFunction.bind(this, fName));
41
120
  continue;
42
121
  }
43
122
  this._wrap(objectToPatch, functionNameToPatch, this._patchCallbackFunction.bind(this, fName));
@@ -97,131 +176,70 @@ class FsInstrumentation extends InstrumentationBase {
97
176
  _patchSyncFunction(functionName, original) {
98
177
  const instrumentation = this;
99
178
  const patchedFunction = function(...args) {
100
- const activeContext = api.context.active();
101
- if (!instrumentation._shouldTrace(activeContext)) {
102
- return original.apply(this, args);
103
- }
104
- if (instrumentation._runCreateHook(functionName, {
105
- args
106
- }) === false) {
107
- return api.context.with(suppressTracing(activeContext), original, this, ...args);
108
- }
109
- const span = instrumentation.tracer.startSpan(`fs ${functionName}`);
110
- try {
111
- const res = api.context.with(suppressTracing(api.trace.setSpan(activeContext, span)), original, this, ...args);
112
- instrumentation._runEndHook(functionName, { args, span });
113
- return res;
114
- } catch (error) {
115
- span.recordException(error);
116
- span.setStatus({
117
- message: error.message,
118
- code: api.SpanStatusCode.ERROR
119
- });
120
- instrumentation._runEndHook(functionName, { args, span, error });
121
- throw error;
122
- } finally {
123
- span.end();
124
- }
179
+ const config = instrumentation.getConfig();
180
+ const attributes = getSpanAttributes(functionName, args, config);
181
+ return startSpan({ name: `fs.${functionName}`, onlyIfParent: true, attributes }, (span) => {
182
+ try {
183
+ return suppressTracing(() => original.apply(this, args));
184
+ } catch (error) {
185
+ recordError(span, error, config);
186
+ throw error;
187
+ }
188
+ });
125
189
  };
126
190
  return patchedFunctionWithOriginalProperties(patchedFunction, original);
127
191
  }
128
192
  _patchCallbackFunction(functionName, original) {
129
193
  const instrumentation = this;
130
194
  const patchedFunction = function(...args) {
131
- const activeContext = api.context.active();
132
- if (!instrumentation._shouldTrace(activeContext)) {
133
- return original.apply(this, args);
134
- }
135
- if (instrumentation._runCreateHook(functionName, {
136
- args
137
- }) === false) {
138
- return api.context.with(suppressTracing(activeContext), original, this, ...args);
139
- }
195
+ const config = instrumentation.getConfig();
140
196
  const lastIdx = args.length - 1;
141
197
  const cb = args[lastIdx];
142
- if (typeof cb === "function") {
143
- const span = instrumentation.tracer.startSpan(`fs ${functionName}`);
144
- args[lastIdx] = api.context.bind(activeContext, function(error) {
145
- if (error) {
146
- span.recordException(error);
147
- span.setStatus({
148
- message: error.message,
149
- code: api.SpanStatusCode.ERROR
150
- });
151
- }
152
- instrumentation._runEndHook(functionName, {
153
- args,
154
- span,
155
- error
156
- });
157
- span.end();
158
- return cb.apply(this, arguments);
159
- });
160
- try {
161
- return api.context.with(suppressTracing(api.trace.setSpan(activeContext, span)), original, this, ...args);
162
- } catch (error) {
163
- span.recordException(error);
164
- span.setStatus({
165
- message: error.message,
166
- code: api.SpanStatusCode.ERROR
167
- });
168
- instrumentation._runEndHook(functionName, {
169
- args,
170
- span,
171
- error
172
- });
173
- span.end();
174
- throw error;
175
- }
176
- } else {
198
+ if (typeof cb !== "function") {
177
199
  return original.apply(this, args);
178
200
  }
201
+ const attributes = getSpanAttributes(functionName, args, config);
202
+ const span = startInactiveSpan({ name: `fs.${functionName}`, onlyIfParent: true, attributes });
203
+ args[lastIdx] = context.bind(context.active(), function(...cbArgs) {
204
+ const error = cbArgs[0];
205
+ if (error) {
206
+ recordError(span, error, config);
207
+ }
208
+ span.end();
209
+ return cb.apply(this, cbArgs);
210
+ });
211
+ try {
212
+ return suppressTracing(() => original.apply(this, args));
213
+ } catch (error) {
214
+ recordError(span, error, config);
215
+ span.end();
216
+ throw error;
217
+ }
179
218
  };
180
219
  return patchedFunctionWithOriginalProperties(patchedFunction, original);
181
220
  }
182
221
  _patchExistsCallbackFunction(functionName, original) {
183
222
  const instrumentation = this;
184
223
  const patchedFunction = function(...args) {
185
- const activeContext = api.context.active();
186
- if (!instrumentation._shouldTrace(activeContext)) {
187
- return original.apply(this, args);
188
- }
189
- if (instrumentation._runCreateHook(functionName, {
190
- args
191
- }) === false) {
192
- return api.context.with(suppressTracing(activeContext), original, this, ...args);
193
- }
224
+ const config = instrumentation.getConfig();
194
225
  const lastIdx = args.length - 1;
195
226
  const cb = args[lastIdx];
196
- if (typeof cb === "function") {
197
- const span = instrumentation.tracer.startSpan(`fs ${functionName}`);
198
- args[lastIdx] = api.context.bind(activeContext, function() {
199
- instrumentation._runEndHook(functionName, {
200
- args,
201
- span
202
- });
203
- span.end();
204
- return cb.apply(this, arguments);
205
- });
206
- try {
207
- return api.context.with(suppressTracing(api.trace.setSpan(activeContext, span)), original, this, ...args);
208
- } catch (error) {
209
- span.recordException(error);
210
- span.setStatus({
211
- message: error.message,
212
- code: api.SpanStatusCode.ERROR
213
- });
214
- instrumentation._runEndHook(functionName, {
215
- args,
216
- span,
217
- error
218
- });
219
- span.end();
220
- throw error;
221
- }
222
- } else {
227
+ if (typeof cb !== "function") {
223
228
  return original.apply(this, args);
224
229
  }
230
+ const attributes = getSpanAttributes(functionName, args, config);
231
+ const span = startInactiveSpan({ name: `fs.${functionName}`, onlyIfParent: true, attributes });
232
+ args[lastIdx] = context.bind(context.active(), function(...cbArgs) {
233
+ span.end();
234
+ return cb.apply(this, cbArgs);
235
+ });
236
+ try {
237
+ return suppressTracing(() => original.apply(this, args));
238
+ } catch (error) {
239
+ recordError(span, error, config);
240
+ span.end();
241
+ throw error;
242
+ }
225
243
  };
226
244
  const functionWithOriginalProperties = patchedFunctionWithOriginalProperties(patchedFunction, original);
227
245
  const promisified = function(path) {
@@ -236,72 +254,24 @@ class FsInstrumentation extends InstrumentationBase {
236
254
  _patchPromiseFunction(functionName, original) {
237
255
  const instrumentation = this;
238
256
  const patchedFunction = async function(...args) {
239
- const activeContext = api.context.active();
240
- if (!instrumentation._shouldTrace(activeContext)) {
241
- return original.apply(this, args);
242
- }
243
- if (instrumentation._runCreateHook(functionName, {
244
- args
245
- }) === false) {
246
- return api.context.with(suppressTracing(activeContext), original, this, ...args);
247
- }
248
- const span = instrumentation.tracer.startSpan(`fs ${functionName}`);
249
- try {
250
- const res = await api.context.with(
251
- suppressTracing(api.trace.setSpan(activeContext, span)),
252
- original,
253
- this,
254
- ...args
255
- );
256
- instrumentation._runEndHook(functionName, { args, span });
257
- return res;
258
- } catch (error) {
259
- span.recordException(error);
260
- span.setStatus({
261
- message: error.message,
262
- code: api.SpanStatusCode.ERROR
263
- });
264
- instrumentation._runEndHook(functionName, { args, span, error });
265
- throw error;
266
- } finally {
267
- span.end();
268
- }
257
+ const config = instrumentation.getConfig();
258
+ const attributes = getSpanAttributes(functionName, args, config);
259
+ return startSpan({ name: `fs.${functionName}`, onlyIfParent: true, attributes }, async (span) => {
260
+ try {
261
+ return await suppressTracing(() => original.apply(this, args));
262
+ } catch (error) {
263
+ recordError(span, error, config);
264
+ throw error;
265
+ }
266
+ });
269
267
  };
270
268
  return patchedFunctionWithOriginalProperties(patchedFunction, original);
271
269
  }
272
- _runCreateHook(...args) {
273
- const { createHook } = this.getConfig();
274
- if (typeof createHook === "function") {
275
- try {
276
- return createHook(...args);
277
- } catch (e) {
278
- this._diag.error("caught createHook error", e);
279
- }
280
- }
281
- return true;
282
- }
283
- _runEndHook(...args) {
284
- const { endHook } = this.getConfig();
285
- if (typeof endHook === "function") {
286
- try {
287
- endHook(...args);
288
- } catch (e) {
289
- this._diag.error("caught endHook error", e);
290
- }
291
- }
292
- }
293
- _shouldTrace(context) {
294
- if (isTracingSuppressed(context)) {
295
- return false;
296
- }
297
- const { requireParentSpan } = this.getConfig();
298
- if (requireParentSpan) {
299
- const parentSpan = api.trace.getSpan(context);
300
- if (parentSpan == null) {
301
- return false;
302
- }
303
- }
304
- return true;
270
+ }
271
+ function recordError(span, error, config) {
272
+ span.setStatus({ code: SPAN_STATUS_ERROR, message: "internal_error" });
273
+ if (config.recordErrorMessagesAsSpanAttributes && error instanceof Error) {
274
+ span.setAttribute("fs_error", error.message);
305
275
  }
306
276
  }
307
277
 
@@ -1 +1 @@
1
- {"version":3,"file":"instrumentation.js","sources":["../../../../../src/integrations/fs/vendored/instrumentation.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 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 */\n/* eslint-disable */\n\nimport * as api from '@opentelemetry/api';\nimport { isTracingSuppressed, suppressTracing } from '@opentelemetry/core';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport { SDK_VERSION } from '@sentry/core';\nimport { CALLBACK_FUNCTIONS, PROMISE_FUNCTIONS, SYNC_FUNCTIONS } from './constants';\nimport type * as fs from 'fs';\nimport type { FMember, FPMember, CreateHook, EndHook, FsInstrumentationConfig } from './types';\nimport { promisify } from 'util';\nimport { indexFs } from './utils';\n\ntype FS = typeof fs;\ntype FSPromises = (typeof fs)['promises'];\n\nconst PACKAGE_NAME = '@sentry/instrumentation-fs';\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 (...args: any[]) => ReturnType<T>>(\n patchedFunction: T,\n original: T,\n): T {\n return Object.assign(patchedFunction, original);\n}\n\nexport class FsInstrumentation extends InstrumentationBase<FsInstrumentationConfig> {\n constructor(config: FsInstrumentationConfig = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n\n init(): (InstrumentationNodeModuleDefinition | InstrumentationNodeModuleDefinition)[] {\n return [\n new InstrumentationNodeModuleDefinition(\n 'fs',\n ['*'],\n (fs: FS) => {\n for (const fName of SYNC_FUNCTIONS) {\n const { objectToPatch, functionNameToPatch } = indexFs(fs, fName);\n\n if (isWrapped(objectToPatch[functionNameToPatch])) {\n this._unwrap(objectToPatch, functionNameToPatch);\n }\n this._wrap(objectToPatch, functionNameToPatch, this._patchSyncFunction.bind(this, fName) as any);\n }\n for (const fName of CALLBACK_FUNCTIONS) {\n const { objectToPatch, functionNameToPatch } = indexFs(fs, fName);\n if (isWrapped(objectToPatch[functionNameToPatch])) {\n this._unwrap(objectToPatch, functionNameToPatch);\n }\n if (fName === 'exists') {\n // handling separately because of the inconsistent cb style:\n // `exists` doesn't have error as the first argument, but the result\n this._wrap(\n objectToPatch,\n functionNameToPatch,\n this._patchExistsCallbackFunction.bind(this, fName) as any,\n );\n continue;\n }\n this._wrap(objectToPatch, functionNameToPatch, this._patchCallbackFunction.bind(this, fName) as any);\n }\n for (const fName of PROMISE_FUNCTIONS) {\n if (isWrapped(fs.promises[fName])) {\n this._unwrap(fs.promises, fName);\n }\n this._wrap(fs.promises, fName, this._patchPromiseFunction.bind(this, fName) as any);\n }\n return fs;\n },\n (fs: FS) => {\n if (fs === undefined) return;\n for (const fName of SYNC_FUNCTIONS) {\n const { objectToPatch, functionNameToPatch } = indexFs(fs, fName);\n if (isWrapped(objectToPatch[functionNameToPatch])) {\n this._unwrap(objectToPatch, functionNameToPatch);\n }\n }\n for (const fName of CALLBACK_FUNCTIONS) {\n const { objectToPatch, functionNameToPatch } = indexFs(fs, fName);\n if (isWrapped(objectToPatch[functionNameToPatch])) {\n this._unwrap(objectToPatch, functionNameToPatch);\n }\n }\n for (const fName of PROMISE_FUNCTIONS) {\n if (isWrapped(fs.promises[fName])) {\n this._unwrap(fs.promises, fName);\n }\n }\n },\n ),\n new InstrumentationNodeModuleDefinition(\n 'fs/promises',\n ['*'],\n (fsPromises: FSPromises) => {\n for (const fName of PROMISE_FUNCTIONS) {\n if (isWrapped(fsPromises[fName])) {\n this._unwrap(fsPromises, fName);\n }\n this._wrap(fsPromises, fName, this._patchPromiseFunction.bind(this, fName) as any);\n }\n return fsPromises;\n },\n (fsPromises: FSPromises) => {\n if (fsPromises === undefined) return;\n for (const fName of PROMISE_FUNCTIONS) {\n if (isWrapped(fsPromises[fName])) {\n this._unwrap(fsPromises, fName);\n }\n }\n },\n ),\n ];\n }\n\n protected _patchSyncFunction<T extends (...args: any[]) => ReturnType<T>>(functionName: FMember, original: T): T {\n const instrumentation = this;\n const patchedFunction = function (this: any, ...args: any[]) {\n const activeContext = api.context.active();\n\n if (!instrumentation._shouldTrace(activeContext)) {\n return original.apply(this, args);\n }\n if (\n instrumentation._runCreateHook(functionName, {\n args: args,\n }) === false\n ) {\n return api.context.with(suppressTracing(activeContext), original, this, ...args);\n }\n\n const span = instrumentation.tracer.startSpan(`fs ${functionName}`) as api.Span;\n\n try {\n // Suppress tracing for internal fs calls\n const res = api.context.with(suppressTracing(api.trace.setSpan(activeContext, span)), original, this, ...args);\n instrumentation._runEndHook(functionName, { args: args, span });\n return res;\n } catch (error: any) {\n span.recordException(error);\n span.setStatus({\n message: error.message,\n code: api.SpanStatusCode.ERROR,\n });\n instrumentation._runEndHook(functionName, { args: args, span, error });\n throw error;\n } finally {\n span.end();\n }\n };\n return patchedFunctionWithOriginalProperties(patchedFunction as any, original);\n }\n\n protected _patchCallbackFunction<T extends (...args: any[]) => ReturnType<T>>(functionName: FMember, original: T): T {\n const instrumentation = this;\n const patchedFunction = function (this: any, ...args: any[]) {\n const activeContext = api.context.active();\n\n if (!instrumentation._shouldTrace(activeContext)) {\n return original.apply(this, args);\n }\n if (\n instrumentation._runCreateHook(functionName, {\n args: args,\n }) === false\n ) {\n return api.context.with(suppressTracing(activeContext), original, this, ...args);\n }\n\n const lastIdx = args.length - 1;\n const cb = args[lastIdx];\n if (typeof cb === 'function') {\n const span = instrumentation.tracer.startSpan(`fs ${functionName}`) as api.Span;\n\n // Return to the context active during the call in the callback\n args[lastIdx] = api.context.bind(activeContext, function (this: unknown, error?: Error) {\n if (error) {\n span.recordException(error);\n span.setStatus({\n message: error.message,\n code: api.SpanStatusCode.ERROR,\n });\n }\n instrumentation._runEndHook(functionName, {\n args: args,\n span,\n error,\n });\n span.end();\n return cb.apply(this, arguments);\n });\n\n try {\n // Suppress tracing for internal fs calls\n return api.context.with(suppressTracing(api.trace.setSpan(activeContext, span)), original, this, ...args);\n } catch (error: any) {\n span.recordException(error);\n span.setStatus({\n message: error.message,\n code: api.SpanStatusCode.ERROR,\n });\n instrumentation._runEndHook(functionName, {\n args: args,\n span,\n error,\n });\n span.end();\n throw error;\n }\n } else {\n // TODO: what to do if we are pretty sure it's going to throw\n return original.apply(this, args);\n }\n };\n return patchedFunctionWithOriginalProperties(patchedFunction as any, original);\n }\n\n protected _patchExistsCallbackFunction<T extends (...args: any[]) => ReturnType<T>>(\n functionName: 'exists',\n original: T,\n ): T {\n const instrumentation = this;\n const patchedFunction = function (this: any, ...args: any[]) {\n const activeContext = api.context.active();\n\n if (!instrumentation._shouldTrace(activeContext)) {\n return original.apply(this, args);\n }\n if (\n instrumentation._runCreateHook(functionName, {\n args: args,\n }) === false\n ) {\n return api.context.with(suppressTracing(activeContext), original, this, ...args);\n }\n\n const lastIdx = args.length - 1;\n const cb = args[lastIdx];\n if (typeof cb === 'function') {\n const span = instrumentation.tracer.startSpan(`fs ${functionName}`) as api.Span;\n\n // Return to the context active during the call in the callback\n args[lastIdx] = api.context.bind(activeContext, function (this: unknown) {\n // `exists` never calls the callback with an error\n instrumentation._runEndHook(functionName, {\n args: args,\n span,\n });\n span.end();\n return cb.apply(this, arguments);\n });\n\n try {\n // Suppress tracing for internal fs calls\n return api.context.with(suppressTracing(api.trace.setSpan(activeContext, span)), original, this, ...args);\n } catch (error: any) {\n span.recordException(error);\n span.setStatus({\n message: error.message,\n code: api.SpanStatusCode.ERROR,\n });\n instrumentation._runEndHook(functionName, {\n args: args,\n span,\n error,\n });\n span.end();\n throw error;\n }\n } else {\n return original.apply(this, args);\n }\n };\n const functionWithOriginalProperties = patchedFunctionWithOriginalProperties(patchedFunction, 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) {\n return new Promise(resolve => functionWithOriginalProperties(path, resolve));\n };\n Object.defineProperty(promisified, 'name', { value: functionName });\n Object.defineProperty(functionWithOriginalProperties, promisify.custom, {\n value: promisified,\n });\n\n return functionWithOriginalProperties as T;\n }\n\n protected _patchPromiseFunction<T extends (...args: any[]) => ReturnType<T>>(functionName: FPMember, original: T): T {\n const instrumentation = this;\n const patchedFunction = async function (this: any, ...args: any[]) {\n const activeContext = api.context.active();\n\n if (!instrumentation._shouldTrace(activeContext)) {\n return original.apply(this, args);\n }\n if (\n instrumentation._runCreateHook(functionName, {\n args: args,\n }) === false\n ) {\n return api.context.with(suppressTracing(activeContext), original, this, ...args);\n }\n\n const span = instrumentation.tracer.startSpan(`fs ${functionName}`) as api.Span;\n\n try {\n // Suppress tracing for internal fs calls\n const res = await api.context.with(\n suppressTracing(api.trace.setSpan(activeContext, span)),\n original,\n this,\n ...args,\n );\n instrumentation._runEndHook(functionName, { args: args, span });\n return res;\n } catch (error: any) {\n span.recordException(error);\n span.setStatus({\n message: error.message,\n code: api.SpanStatusCode.ERROR,\n });\n instrumentation._runEndHook(functionName, { args: args, span, error });\n throw error;\n } finally {\n span.end();\n }\n };\n return patchedFunctionWithOriginalProperties(patchedFunction as any, original);\n }\n\n protected _runCreateHook(...args: Parameters<CreateHook>): ReturnType<CreateHook> {\n const { createHook } = this.getConfig();\n if (typeof createHook === 'function') {\n try {\n return createHook(...args);\n } catch (e) {\n this._diag.error('caught createHook error', e);\n }\n }\n return true;\n }\n\n protected _runEndHook(...args: Parameters<EndHook>): ReturnType<EndHook> {\n const { endHook } = this.getConfig();\n if (typeof endHook === 'function') {\n try {\n endHook(...args);\n } catch (e) {\n this._diag.error('caught endHook error', e);\n }\n }\n }\n\n protected _shouldTrace(context: api.Context): boolean {\n if (isTracingSuppressed(context)) {\n // Performance optimization. Avoid creating additional contexts and spans\n // if we already know that the tracing is being suppressed.\n return false;\n }\n\n const { requireParentSpan } = this.getConfig();\n if (requireParentSpan) {\n const parentSpan = api.trace.getSpan(context);\n if (parentSpan == null) {\n return false;\n }\n }\n\n return true;\n }\n}\n"],"names":[],"mappings":"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"}
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 */\n\nimport { context } from '@opentelemetry/api';\nimport { InstrumentationBase, InstrumentationNodeModuleDefinition, isWrapped } from '@opentelemetry/instrumentation';\nimport type { Span, SpanAttributes } from '@sentry/core';\nimport {\n SDK_VERSION,\n SEMANTIC_ATTRIBUTE_SENTRY_OP,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SPAN_STATUS_ERROR,\n startInactiveSpan,\n startSpan,\n suppressTracing,\n} from '@sentry/core';\nimport type * 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\ntype FS = typeof fs;\ntype FSPromises = (typeof fs)['promises'];\n\nconst PACKAGE_NAME = '@sentry/instrumentation-fs';\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\nexport class FsInstrumentation extends InstrumentationBase<FsInstrumentationConfig> {\n public constructor(config: FsInstrumentationConfig = {}) {\n super(PACKAGE_NAME, SDK_VERSION, config);\n }\n\n public init(): InstrumentationNodeModuleDefinition[] {\n return [\n new InstrumentationNodeModuleDefinition(\n 'fs',\n ['*'],\n (fs: FS) => {\n for (const fName of SYNC_FUNCTIONS) {\n const { objectToPatch, functionNameToPatch } = indexFs(fs, fName);\n\n if (isWrapped(objectToPatch[functionNameToPatch])) {\n this._unwrap(objectToPatch, functionNameToPatch);\n }\n this._wrap(objectToPatch, functionNameToPatch, this._patchSyncFunction.bind(this, fName));\n }\n for (const fName of CALLBACK_FUNCTIONS) {\n const { objectToPatch, functionNameToPatch } = indexFs(fs, fName);\n if (isWrapped(objectToPatch[functionNameToPatch])) {\n this._unwrap(objectToPatch, functionNameToPatch);\n }\n if (fName === 'exists') {\n // handling separately because of the inconsistent cb style:\n // `exists` doesn't have error as the first argument, but the result\n this._wrap(objectToPatch, functionNameToPatch, this._patchExistsCallbackFunction.bind(this, fName));\n continue;\n }\n this._wrap(objectToPatch, functionNameToPatch, this._patchCallbackFunction.bind(this, fName));\n }\n for (const fName of PROMISE_FUNCTIONS) {\n if (isWrapped(fs.promises[fName])) {\n this._unwrap(fs.promises, fName);\n }\n this._wrap(fs.promises, fName, this._patchPromiseFunction.bind(this, fName));\n }\n return fs;\n },\n (fs: FS) => {\n if (fs === undefined) return;\n for (const fName of SYNC_FUNCTIONS) {\n const { objectToPatch, functionNameToPatch } = indexFs(fs, fName);\n if (isWrapped(objectToPatch[functionNameToPatch])) {\n this._unwrap(objectToPatch, functionNameToPatch);\n }\n }\n for (const fName of CALLBACK_FUNCTIONS) {\n const { objectToPatch, functionNameToPatch } = indexFs(fs, fName);\n if (isWrapped(objectToPatch[functionNameToPatch])) {\n this._unwrap(objectToPatch, functionNameToPatch);\n }\n }\n for (const fName of PROMISE_FUNCTIONS) {\n if (isWrapped(fs.promises[fName])) {\n this._unwrap(fs.promises, fName);\n }\n }\n },\n ),\n new InstrumentationNodeModuleDefinition(\n 'fs/promises',\n ['*'],\n (fsPromises: FSPromises) => {\n for (const fName of PROMISE_FUNCTIONS) {\n if (isWrapped(fsPromises[fName])) {\n this._unwrap(fsPromises, fName);\n }\n this._wrap(fsPromises, fName, this._patchPromiseFunction.bind(this, fName));\n }\n return fsPromises;\n },\n (fsPromises: FSPromises) => {\n if (fsPromises === undefined) return;\n for (const fName of PROMISE_FUNCTIONS) {\n if (isWrapped(fsPromises[fName])) {\n this._unwrap(fsPromises, fName);\n }\n }\n },\n ),\n ];\n }\n\n protected _patchSyncFunction<T extends GenericFunction>(functionName: FMember, original: T): T {\n // oxlint-disable-next-line typescript/no-this-alias\n const instrumentation = this;\n const patchedFunction = function (this: unknown, ...args: Parameters<T>): ReturnType<T> {\n const config = instrumentation.getConfig();\n const attributes = getSpanAttributes(functionName, args, config);\n\n return startSpan({ name: `fs.${functionName}`, onlyIfParent: true, attributes }, span => {\n try {\n // Suppress tracing for internal fs calls\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\n protected _patchCallbackFunction<T extends GenericFunction>(functionName: FMember, original: T): T {\n // oxlint-disable-next-line typescript/no-this-alias\n const instrumentation = this;\n const patchedFunction = function (this: unknown, ...args: Parameters<T>): ReturnType<T> {\n const config = instrumentation.getConfig();\n\n const lastIdx = args.length - 1;\n const cb: unknown = args[lastIdx];\n if (typeof cb !== 'function') {\n // TODO: what to do if we are pretty sure it's going to throw\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\n // Return to the context active during the call in the callback\n args[lastIdx] = context.bind(context.active(), function (this: unknown, ...cbArgs: unknown[]) {\n const error = cbArgs[0];\n if (error) {\n recordError(span, error, config);\n }\n span.end();\n return cb.apply(this, cbArgs);\n });\n\n try {\n // Suppress tracing for internal fs calls\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\n protected _patchExistsCallbackFunction<T extends GenericFunction>(functionName: 'exists', original: T): T {\n // oxlint-disable-next-line typescript/no-this-alias\n const instrumentation = this;\n const patchedFunction = function (this: unknown, ...args: Parameters<T>): ReturnType<T> {\n const config = instrumentation.getConfig();\n\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\n // Return to the context active during the call in the callback\n args[lastIdx] = context.bind(context.active(), function (this: unknown, ...cbArgs: unknown[]) {\n // `exists` never calls the callback with an error\n span.end();\n return cb.apply(this, cbArgs);\n });\n\n try {\n // Suppress tracing for internal fs calls\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\n protected _patchPromiseFunction<T extends GenericFunction>(functionName: FPMember, original: T): T {\n // oxlint-disable-next-line typescript/no-this-alias\n const instrumentation = this;\n const patchedFunction = async function (this: unknown, ...args: Parameters<T>): Promise<unknown> {\n const config = instrumentation.getConfig();\n const attributes = getSpanAttributes(functionName, args, config);\n\n return startSpan({ name: `fs.${functionName}`, onlyIfParent: true, attributes }, async span => {\n try {\n // Suppress tracing for internal fs calls\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}\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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../../src/integrations/fs/vendored/utils.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 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/* eslint-disable */\n\nimport type { FunctionPropertyNames, FMember } from './types';\nimport type * as fs from 'fs';\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: any; 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],\n functionNameToPatch: functionName2,\n };\n } else {\n return {\n objectToPatch: fs,\n functionNameToPatch: functionName1,\n };\n }\n}\n"],"names":[],"mappings":"AAyBO,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,EACqD;AACrD,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
+ {"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;;;;"}