@depup/sentry__server-utils 10.71.0-depup.0 → 10.72.0-depup.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (577) hide show
  1. package/README.md +4 -6
  2. package/build/THIRD-PARTY-LICENSES.txt +976 -0
  3. package/build/cjs/_virtual/_commonjsHelpers.js +8 -0
  4. package/build/cjs/_virtual/_commonjsHelpers.js.map +1 -0
  5. package/build/cjs/_virtual/array-set.js +6 -0
  6. package/build/cjs/_virtual/array-set.js.map +1 -0
  7. package/build/cjs/_virtual/astring.js +6 -0
  8. package/build/cjs/_virtual/astring.js.map +1 -0
  9. package/build/cjs/_virtual/base64-vlq.js +6 -0
  10. package/build/cjs/_virtual/base64-vlq.js.map +1 -0
  11. package/build/cjs/_virtual/base64.js +6 -0
  12. package/build/cjs/_virtual/base64.js.map +1 -0
  13. package/build/cjs/_virtual/binary-search.js +6 -0
  14. package/build/cjs/_virtual/binary-search.js.map +1 -0
  15. package/build/cjs/_virtual/chunk-D6vf50IK.js +6 -0
  16. package/build/cjs/_virtual/chunk-D6vf50IK.js.map +1 -0
  17. package/build/cjs/_virtual/instrumentation-serde-BFky_HG6.js +6 -0
  18. package/build/cjs/_virtual/instrumentation-serde-BFky_HG6.js.map +1 -0
  19. package/build/cjs/_virtual/mapping-list.js +6 -0
  20. package/build/cjs/_virtual/mapping-list.js.map +1 -0
  21. package/build/cjs/_virtual/meriyah.js +6 -0
  22. package/build/cjs/_virtual/meriyah.js.map +1 -0
  23. package/build/cjs/_virtual/node.js +6 -0
  24. package/build/cjs/_virtual/node.js.map +1 -0
  25. package/build/cjs/_virtual/quick-sort.js +6 -0
  26. package/build/cjs/_virtual/quick-sort.js.map +1 -0
  27. package/build/cjs/_virtual/source-map-consumer.js +6 -0
  28. package/build/cjs/_virtual/source-map-consumer.js.map +1 -0
  29. package/build/cjs/_virtual/source-map-generator.js +6 -0
  30. package/build/cjs/_virtual/source-map-generator.js.map +1 -0
  31. package/build/cjs/_virtual/source-map.js +6 -0
  32. package/build/cjs/_virtual/source-map.js.map +1 -0
  33. package/build/cjs/_virtual/source-node.js +6 -0
  34. package/build/cjs/_virtual/source-node.js.map +1 -0
  35. package/build/cjs/_virtual/transforms.js +6 -0
  36. package/build/cjs/_virtual/transforms.js.map +1 -0
  37. package/build/cjs/_virtual/util.js +6 -0
  38. package/build/cjs/_virtual/util.js.map +1 -0
  39. package/build/cjs/debug-build.js.map +1 -1
  40. package/build/cjs/graphql/graphql-dc-subscriber.js.map +1 -1
  41. package/build/cjs/graphql/index.js +15 -2
  42. package/build/cjs/graphql/index.js.map +1 -1
  43. package/build/cjs/graphql/utils.js.map +1 -1
  44. package/build/cjs/integrations/tracing-channel/amqplib.js +24 -11
  45. package/build/cjs/integrations/tracing-channel/amqplib.js.map +1 -1
  46. package/build/cjs/integrations/tracing-channel/anthropic.js +15 -2
  47. package/build/cjs/integrations/tracing-channel/anthropic.js.map +1 -1
  48. package/build/cjs/integrations/tracing-channel/aws-sdk/constants.js.map +1 -1
  49. package/build/cjs/integrations/tracing-channel/aws-sdk/index.js +15 -2
  50. package/build/cjs/integrations/tracing-channel/aws-sdk/index.js.map +1 -1
  51. package/build/cjs/integrations/tracing-channel/aws-sdk/services/MessageAttributes.js.map +1 -1
  52. package/build/cjs/integrations/tracing-channel/aws-sdk/services/ServicesExtensions.js.map +1 -1
  53. package/build/cjs/integrations/tracing-channel/aws-sdk/services/bedrock-runtime.js.map +1 -1
  54. package/build/cjs/integrations/tracing-channel/aws-sdk/services/dynamodb.js.map +1 -1
  55. package/build/cjs/integrations/tracing-channel/aws-sdk/services/kinesis.js.map +1 -1
  56. package/build/cjs/integrations/tracing-channel/aws-sdk/services/lambda.js.map +1 -1
  57. package/build/cjs/integrations/tracing-channel/aws-sdk/services/s3.js.map +1 -1
  58. package/build/cjs/integrations/tracing-channel/aws-sdk/services/secretsmanager.js.map +1 -1
  59. package/build/cjs/integrations/tracing-channel/aws-sdk/services/sns.js.map +1 -1
  60. package/build/cjs/integrations/tracing-channel/aws-sdk/services/sqs.js.map +1 -1
  61. package/build/cjs/integrations/tracing-channel/aws-sdk/services/stepfunctions.js.map +1 -1
  62. package/build/cjs/integrations/tracing-channel/aws-sdk/utils.js.map +1 -1
  63. package/build/cjs/integrations/tracing-channel/dataloader.js +17 -4
  64. package/build/cjs/integrations/tracing-channel/dataloader.js.map +1 -1
  65. package/build/cjs/integrations/tracing-channel/express/index.js +15 -2
  66. package/build/cjs/integrations/tracing-channel/express/index.js.map +1 -1
  67. package/build/cjs/integrations/tracing-channel/express/instrumentation.js.map +1 -1
  68. package/build/cjs/integrations/tracing-channel/express/route.js.map +1 -1
  69. package/build/cjs/integrations/tracing-channel/fastify/errors.js +14 -1
  70. package/build/cjs/integrations/tracing-channel/fastify/errors.js.map +1 -1
  71. package/build/cjs/integrations/tracing-channel/fastify/index.js.map +1 -1
  72. package/build/cjs/integrations/tracing-channel/fastify/instrumentation.js +14 -1
  73. package/build/cjs/integrations/tracing-channel/fastify/instrumentation.js.map +1 -1
  74. package/build/cjs/integrations/tracing-channel/fastify/utils.js.map +1 -1
  75. package/build/cjs/integrations/tracing-channel/firebase/firestore.js +14 -1
  76. package/build/cjs/integrations/tracing-channel/firebase/firestore.js.map +1 -1
  77. package/build/cjs/integrations/tracing-channel/firebase/functions.js.map +1 -1
  78. package/build/cjs/integrations/tracing-channel/firebase/index.js +14 -1
  79. package/build/cjs/integrations/tracing-channel/firebase/index.js.map +1 -1
  80. package/build/cjs/integrations/tracing-channel/firebase/instrumentation.js +15 -2
  81. package/build/cjs/integrations/tracing-channel/firebase/instrumentation.js.map +1 -1
  82. package/build/cjs/integrations/tracing-channel/generic-pool.js +15 -2
  83. package/build/cjs/integrations/tracing-channel/generic-pool.js.map +1 -1
  84. package/build/cjs/integrations/tracing-channel/google-genai.js +15 -2
  85. package/build/cjs/integrations/tracing-channel/google-genai.js.map +1 -1
  86. package/build/cjs/integrations/tracing-channel/graphql/constants.js.map +1 -1
  87. package/build/cjs/integrations/tracing-channel/graphql/index.js +17 -4
  88. package/build/cjs/integrations/tracing-channel/graphql/index.js.map +1 -1
  89. package/build/cjs/integrations/tracing-channel/graphql/resolvers.js.map +1 -1
  90. package/build/cjs/integrations/tracing-channel/graphql/spans.js.map +1 -1
  91. package/build/cjs/integrations/tracing-channel/hapi-types.js.map +1 -1
  92. package/build/cjs/integrations/tracing-channel/hapi-utils.js.map +1 -1
  93. package/build/cjs/integrations/tracing-channel/hapi.js +16 -3
  94. package/build/cjs/integrations/tracing-channel/hapi.js.map +1 -1
  95. package/build/cjs/integrations/tracing-channel/ioredis.js +16 -3
  96. package/build/cjs/integrations/tracing-channel/ioredis.js.map +1 -1
  97. package/build/cjs/integrations/tracing-channel/kafkajs/consumer.js.map +1 -1
  98. package/build/cjs/integrations/tracing-channel/kafkajs/index.js +16 -3
  99. package/build/cjs/integrations/tracing-channel/kafkajs/index.js.map +1 -1
  100. package/build/cjs/integrations/tracing-channel/kafkajs/semconv.js.map +1 -1
  101. package/build/cjs/integrations/tracing-channel/kafkajs/spans.js.map +1 -1
  102. package/build/cjs/integrations/tracing-channel/knex.js +16 -3
  103. package/build/cjs/integrations/tracing-channel/knex.js.map +1 -1
  104. package/build/cjs/integrations/tracing-channel/koa.js +15 -2
  105. package/build/cjs/integrations/tracing-channel/koa.js.map +1 -1
  106. package/build/cjs/integrations/tracing-channel/langchain.js +17 -5
  107. package/build/cjs/integrations/tracing-channel/langchain.js.map +1 -1
  108. package/build/cjs/integrations/tracing-channel/langgraph.js +16 -3
  109. package/build/cjs/integrations/tracing-channel/langgraph.js.map +1 -1
  110. package/build/cjs/integrations/tracing-channel/lru-memoizer.js +15 -2
  111. package/build/cjs/integrations/tracing-channel/lru-memoizer.js.map +1 -1
  112. package/build/cjs/integrations/tracing-channel/mongodb.js +17 -4
  113. package/build/cjs/integrations/tracing-channel/mongodb.js.map +1 -1
  114. package/build/cjs/integrations/tracing-channel/mongoose.js +17 -4
  115. package/build/cjs/integrations/tracing-channel/mongoose.js.map +1 -1
  116. package/build/cjs/integrations/tracing-channel/mysql.js +15 -2
  117. package/build/cjs/integrations/tracing-channel/mysql.js.map +1 -1
  118. package/build/cjs/integrations/tracing-channel/mysql2.js +16 -3
  119. package/build/cjs/integrations/tracing-channel/mysql2.js.map +1 -1
  120. package/build/cjs/integrations/tracing-channel/openai.js +15 -2
  121. package/build/cjs/integrations/tracing-channel/openai.js.map +1 -1
  122. package/build/cjs/integrations/tracing-channel/postgres-js.js +18 -5
  123. package/build/cjs/integrations/tracing-channel/postgres-js.js.map +1 -1
  124. package/build/cjs/integrations/tracing-channel/postgres.js +15 -2
  125. package/build/cjs/integrations/tracing-channel/postgres.js.map +1 -1
  126. package/build/cjs/integrations/tracing-channel/redis.js +18 -5
  127. package/build/cjs/integrations/tracing-channel/redis.js.map +1 -1
  128. package/build/cjs/integrations/tracing-channel/tedious.js +16 -3
  129. package/build/cjs/integrations/tracing-channel/tedious.js.map +1 -1
  130. package/build/cjs/integrations/tracing-channel/vercel-ai.js +15 -2
  131. package/build/cjs/integrations/tracing-channel/vercel-ai.js.map +1 -1
  132. package/build/cjs/mongodb/mongodb-span.js.map +1 -1
  133. package/build/cjs/mongoose/index.js +15 -2
  134. package/build/cjs/mongoose/index.js.map +1 -1
  135. package/build/cjs/mongoose/mongoose-dc-subscriber.js.map +1 -1
  136. package/build/cjs/mongoose/mongoose-legacy-span.js.map +1 -1
  137. package/build/cjs/mysql2/index.js +15 -2
  138. package/build/cjs/mysql2/index.js.map +1 -1
  139. package/build/cjs/mysql2/mysql2-dc-subscriber.js.map +1 -1
  140. package/build/cjs/orchestrion/bundler/esbuild.js +2 -6
  141. package/build/cjs/orchestrion/bundler/esbuild.js.map +1 -1
  142. package/build/cjs/orchestrion/bundler/options.js.map +1 -1
  143. package/build/cjs/orchestrion/bundler/rollup.js +2 -6
  144. package/build/cjs/orchestrion/bundler/rollup.js.map +1 -1
  145. package/build/cjs/orchestrion/bundler/subscribeInjection.js +3 -2
  146. package/build/cjs/orchestrion/bundler/subscribeInjection.js.map +1 -1
  147. package/build/cjs/orchestrion/bundler/vite.js +2 -6
  148. package/build/cjs/orchestrion/bundler/vite.js.map +1 -1
  149. package/build/cjs/orchestrion/bundler/webpack-loader.js +8 -0
  150. package/build/cjs/orchestrion/bundler/webpack-loader.js.map +1 -0
  151. package/build/cjs/orchestrion/bundler/webpack.js +29 -16
  152. package/build/cjs/orchestrion/bundler/webpack.js.map +1 -1
  153. package/build/cjs/orchestrion/channels.js.map +1 -1
  154. package/build/cjs/orchestrion/config/amqplib.js.map +1 -1
  155. package/build/cjs/orchestrion/config/anthropic-ai.js.map +1 -1
  156. package/build/cjs/orchestrion/config/aws-sdk.js.map +1 -1
  157. package/build/cjs/orchestrion/config/channel-integration-definitions.js.map +1 -1
  158. package/build/cjs/orchestrion/config/dataloader.js.map +1 -1
  159. package/build/cjs/orchestrion/config/express.js.map +1 -1
  160. package/build/cjs/orchestrion/config/firebase.js.map +1 -1
  161. package/build/cjs/orchestrion/config/generic-pool.js.map +1 -1
  162. package/build/cjs/orchestrion/config/google-genai.js.map +1 -1
  163. package/build/cjs/orchestrion/config/graphql.js.map +1 -1
  164. package/build/cjs/orchestrion/config/hapi.js.map +1 -1
  165. package/build/cjs/orchestrion/config/index.js.map +1 -1
  166. package/build/cjs/orchestrion/config/ioredis.js.map +1 -1
  167. package/build/cjs/orchestrion/config/kafkajs.js.map +1 -1
  168. package/build/cjs/orchestrion/config/knex.js.map +1 -1
  169. package/build/cjs/orchestrion/config/koa.js.map +1 -1
  170. package/build/cjs/orchestrion/config/langchain.js.map +1 -1
  171. package/build/cjs/orchestrion/config/langgraph.js.map +1 -1
  172. package/build/cjs/orchestrion/config/lru-memoizer.js.map +1 -1
  173. package/build/cjs/orchestrion/config/mongodb.js.map +1 -1
  174. package/build/cjs/orchestrion/config/mongoose.js.map +1 -1
  175. package/build/cjs/orchestrion/config/mysql.js.map +1 -1
  176. package/build/cjs/orchestrion/config/mysql2.js.map +1 -1
  177. package/build/cjs/orchestrion/config/nestjs.js.map +1 -1
  178. package/build/cjs/orchestrion/config/openai.js +4 -4
  179. package/build/cjs/orchestrion/config/openai.js.map +1 -1
  180. package/build/cjs/orchestrion/config/pg.js.map +1 -1
  181. package/build/cjs/orchestrion/config/postgres.js.map +1 -1
  182. package/build/cjs/orchestrion/config/redis.js.map +1 -1
  183. package/build/cjs/orchestrion/config/remix.js.map +1 -1
  184. package/build/cjs/orchestrion/config/subscribe-injection.js.map +1 -1
  185. package/build/cjs/orchestrion/config/tedious.js.map +1 -1
  186. package/build/cjs/orchestrion/config/vercel-ai.js.map +1 -1
  187. package/build/cjs/orchestrion/detect.js.map +1 -1
  188. package/build/cjs/orchestrion/index.js.map +1 -1
  189. package/build/cjs/orchestrion/registerChannelIntegration.js.map +1 -1
  190. package/build/cjs/orchestrion/runtime/hook.js +17 -0
  191. package/build/cjs/orchestrion/runtime/hook.js.map +1 -0
  192. package/build/cjs/orchestrion/runtime/register.js +45 -38
  193. package/build/cjs/orchestrion/runtime/register.js.map +1 -1
  194. package/build/cjs/prisma/global.js.map +1 -1
  195. package/build/cjs/prisma/index.js.map +1 -1
  196. package/build/cjs/prisma/tracing-helper.js.map +1 -1
  197. package/build/cjs/redis/index.js +15 -2
  198. package/build/cjs/redis/index.js.map +1 -1
  199. package/build/cjs/redis/redis-dc-subscriber.js.map +1 -1
  200. package/build/cjs/redis/redis-statement-serializer.js.map +1 -1
  201. package/build/cjs/tracing-channel.js.map +1 -1
  202. package/build/cjs/vendored/@apm-js-collab/code-transformer/index.js +8 -0
  203. package/build/cjs/vendored/@apm-js-collab/code-transformer/index.js.map +1 -0
  204. package/build/cjs/vendored/@apm-js-collab/code-transformer/lib/index.js +12 -0
  205. package/build/cjs/vendored/@apm-js-collab/code-transformer/lib/index.js.map +1 -0
  206. package/build/cjs/vendored/@apm-js-collab/code-transformer/lib/matcher.js +83 -0
  207. package/build/cjs/vendored/@apm-js-collab/code-transformer/lib/matcher.js.map +1 -0
  208. package/build/cjs/vendored/@apm-js-collab/code-transformer/lib/transformer.js +314 -0
  209. package/build/cjs/vendored/@apm-js-collab/code-transformer/lib/transformer.js.map +1 -0
  210. package/build/cjs/vendored/@apm-js-collab/code-transformer/lib/transforms.js +406 -0
  211. package/build/cjs/vendored/@apm-js-collab/code-transformer/lib/transforms.js.map +1 -0
  212. package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/cjs/chunk-D6vf50IK.js +33 -0
  213. package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/cjs/chunk-D6vf50IK.js.map +1 -0
  214. package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/cjs/instrumentation-serde-BFky_HG6.js +66 -0
  215. package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/cjs/instrumentation-serde-BFky_HG6.js.map +1 -0
  216. package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/cjs/webpack-loader.js +90 -0
  217. package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/cjs/webpack-loader.js.map +1 -0
  218. package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/core-dC9TN3Ev.js +219 -0
  219. package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/core-dC9TN3Ev.js.map +1 -0
  220. package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/esbuild.js +98 -0
  221. package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/esbuild.js.map +1 -0
  222. package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/instrumentation-serde-C-Xxv-jj.js +29 -0
  223. package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/instrumentation-serde-C-Xxv-jj.js.map +1 -0
  224. package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/rollup-OTS4ktWb.js +1069 -0
  225. package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/rollup-OTS4ktWb.js.map +1 -0
  226. package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/vite.js +14 -0
  227. package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/vite.js.map +1 -0
  228. package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/webpack.js +75 -0
  229. package/build/cjs/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/webpack.js.map +1 -0
  230. package/build/cjs/vendored/@apm-js-collab/tracing-hooks/hook.js +166 -0
  231. package/build/cjs/vendored/@apm-js-collab/tracing-hooks/hook.js.map +1 -0
  232. package/build/cjs/vendored/@apm-js-collab/tracing-hooks/index.js +88 -0
  233. package/build/cjs/vendored/@apm-js-collab/tracing-hooks/index.js.map +1 -0
  234. package/build/cjs/vendored/@apm-js-collab/tracing-hooks/lib/diagnostics.js +15 -0
  235. package/build/cjs/vendored/@apm-js-collab/tracing-hooks/lib/diagnostics.js.map +1 -0
  236. package/build/cjs/vendored/@apm-js-collab/tracing-hooks/lib/get-package-version.js +30 -0
  237. package/build/cjs/vendored/@apm-js-collab/tracing-hooks/lib/get-package-version.js.map +1 -0
  238. package/build/cjs/vendored/astring/dist/astring.js +1068 -0
  239. package/build/cjs/vendored/astring/dist/astring.js.map +1 -0
  240. package/build/cjs/vendored/debug/src/common.js +178 -0
  241. package/build/cjs/vendored/debug/src/common.js.map +1 -0
  242. package/build/cjs/vendored/debug/src/node.js +186 -0
  243. package/build/cjs/vendored/debug/src/node.js.map +1 -0
  244. package/build/cjs/vendored/esquery/dist/esquery.esm.min.js +847 -0
  245. package/build/cjs/vendored/esquery/dist/esquery.esm.min.js.map +1 -0
  246. package/build/cjs/vendored/has-flag/index.js +11 -0
  247. package/build/cjs/vendored/has-flag/index.js.map +1 -0
  248. package/build/cjs/vendored/meriyah/dist/meriyah.js +9192 -0
  249. package/build/cjs/vendored/meriyah/dist/meriyah.js.map +1 -0
  250. package/build/cjs/vendored/meriyah/dist/meriyah2.js +9209 -0
  251. package/build/cjs/vendored/meriyah/dist/meriyah2.js.map +1 -0
  252. package/build/cjs/vendored/module-details-from-path/index.js +44 -0
  253. package/build/cjs/vendored/module-details-from-path/index.js.map +1 -0
  254. package/build/cjs/vendored/ms/index.js +115 -0
  255. package/build/cjs/vendored/ms/index.js.map +1 -0
  256. package/build/cjs/vendored/semifies/index.js +111 -0
  257. package/build/cjs/vendored/semifies/index.js.map +1 -0
  258. package/build/cjs/vendored/source-map/lib/array-set.js +73 -0
  259. package/build/cjs/vendored/source-map/lib/array-set.js.map +1 -0
  260. package/build/cjs/vendored/source-map/lib/base64-vlq.js +57 -0
  261. package/build/cjs/vendored/source-map/lib/base64-vlq.js.map +1 -0
  262. package/build/cjs/vendored/source-map/lib/base64.js +42 -0
  263. package/build/cjs/vendored/source-map/lib/base64.js.map +1 -0
  264. package/build/cjs/vendored/source-map/lib/binary-search.js +55 -0
  265. package/build/cjs/vendored/source-map/lib/binary-search.js.map +1 -0
  266. package/build/cjs/vendored/source-map/lib/mapping-list.js +42 -0
  267. package/build/cjs/vendored/source-map/lib/mapping-list.js.map +1 -0
  268. package/build/cjs/vendored/source-map/lib/quick-sort.js +36 -0
  269. package/build/cjs/vendored/source-map/lib/quick-sort.js.map +1 -0
  270. package/build/cjs/vendored/source-map/lib/source-map-consumer.js +612 -0
  271. package/build/cjs/vendored/source-map/lib/source-map-consumer.js.map +1 -0
  272. package/build/cjs/vendored/source-map/lib/source-map-generator.js +285 -0
  273. package/build/cjs/vendored/source-map/lib/source-map-generator.js.map +1 -0
  274. package/build/cjs/vendored/source-map/lib/source-node.js +270 -0
  275. package/build/cjs/vendored/source-map/lib/source-node.js.map +1 -0
  276. package/build/cjs/vendored/source-map/lib/util.js +300 -0
  277. package/build/cjs/vendored/source-map/lib/util.js.map +1 -0
  278. package/build/cjs/vendored/source-map/source-map.js +16 -0
  279. package/build/cjs/vendored/source-map/source-map.js.map +1 -0
  280. package/build/cjs/vendored/supports-color/index.js +104 -0
  281. package/build/cjs/vendored/supports-color/index.js.map +1 -0
  282. package/build/cjs/vercel-ai/index.js +15 -2
  283. package/build/cjs/vercel-ai/index.js.map +1 -1
  284. package/build/cjs/vercel-ai/util.js.map +1 -1
  285. package/build/cjs/vercel-ai/vercel-ai-dc-subscriber.js.map +1 -1
  286. package/build/cjs/vercel-ai/vercel-ai-orchestrion-subscriber.js.map +1 -1
  287. package/build/esm/_virtual/_commonjsHelpers.js +6 -0
  288. package/build/esm/_virtual/_commonjsHelpers.js.map +1 -0
  289. package/build/esm/_virtual/array-set.js +4 -0
  290. package/build/esm/_virtual/array-set.js.map +1 -0
  291. package/build/esm/_virtual/astring.js +4 -0
  292. package/build/esm/_virtual/astring.js.map +1 -0
  293. package/build/esm/_virtual/base64-vlq.js +4 -0
  294. package/build/esm/_virtual/base64-vlq.js.map +1 -0
  295. package/build/esm/_virtual/base64.js +4 -0
  296. package/build/esm/_virtual/base64.js.map +1 -0
  297. package/build/esm/_virtual/binary-search.js +4 -0
  298. package/build/esm/_virtual/binary-search.js.map +1 -0
  299. package/build/esm/_virtual/chunk-D6vf50IK.js +4 -0
  300. package/build/esm/_virtual/chunk-D6vf50IK.js.map +1 -0
  301. package/build/esm/_virtual/instrumentation-serde-BFky_HG6.js +4 -0
  302. package/build/esm/_virtual/instrumentation-serde-BFky_HG6.js.map +1 -0
  303. package/build/esm/_virtual/mapping-list.js +4 -0
  304. package/build/esm/_virtual/mapping-list.js.map +1 -0
  305. package/build/esm/_virtual/meriyah.js +4 -0
  306. package/build/esm/_virtual/meriyah.js.map +1 -0
  307. package/build/esm/_virtual/node.js +4 -0
  308. package/build/esm/_virtual/node.js.map +1 -0
  309. package/build/esm/_virtual/quick-sort.js +4 -0
  310. package/build/esm/_virtual/quick-sort.js.map +1 -0
  311. package/build/esm/_virtual/source-map-consumer.js +4 -0
  312. package/build/esm/_virtual/source-map-consumer.js.map +1 -0
  313. package/build/esm/_virtual/source-map-generator.js +4 -0
  314. package/build/esm/_virtual/source-map-generator.js.map +1 -0
  315. package/build/esm/_virtual/source-map.js +4 -0
  316. package/build/esm/_virtual/source-map.js.map +1 -0
  317. package/build/esm/_virtual/source-node.js +4 -0
  318. package/build/esm/_virtual/source-node.js.map +1 -0
  319. package/build/esm/_virtual/transforms.js +4 -0
  320. package/build/esm/_virtual/transforms.js.map +1 -0
  321. package/build/esm/_virtual/util.js +4 -0
  322. package/build/esm/_virtual/util.js.map +1 -0
  323. package/build/esm/debug-build.js.map +1 -1
  324. package/build/esm/graphql/graphql-dc-subscriber.js.map +1 -1
  325. package/build/esm/graphql/index.js.map +1 -1
  326. package/build/esm/graphql/utils.js.map +1 -1
  327. package/build/esm/integrations/tracing-channel/amqplib.js.map +1 -1
  328. package/build/esm/integrations/tracing-channel/anthropic.js.map +1 -1
  329. package/build/esm/integrations/tracing-channel/aws-sdk/constants.js.map +1 -1
  330. package/build/esm/integrations/tracing-channel/aws-sdk/index.js.map +1 -1
  331. package/build/esm/integrations/tracing-channel/aws-sdk/services/MessageAttributes.js.map +1 -1
  332. package/build/esm/integrations/tracing-channel/aws-sdk/services/ServicesExtensions.js.map +1 -1
  333. package/build/esm/integrations/tracing-channel/aws-sdk/services/bedrock-runtime.js.map +1 -1
  334. package/build/esm/integrations/tracing-channel/aws-sdk/services/dynamodb.js.map +1 -1
  335. package/build/esm/integrations/tracing-channel/aws-sdk/services/kinesis.js.map +1 -1
  336. package/build/esm/integrations/tracing-channel/aws-sdk/services/lambda.js.map +1 -1
  337. package/build/esm/integrations/tracing-channel/aws-sdk/services/s3.js.map +1 -1
  338. package/build/esm/integrations/tracing-channel/aws-sdk/services/secretsmanager.js.map +1 -1
  339. package/build/esm/integrations/tracing-channel/aws-sdk/services/sns.js.map +1 -1
  340. package/build/esm/integrations/tracing-channel/aws-sdk/services/sqs.js.map +1 -1
  341. package/build/esm/integrations/tracing-channel/aws-sdk/services/stepfunctions.js.map +1 -1
  342. package/build/esm/integrations/tracing-channel/aws-sdk/utils.js.map +1 -1
  343. package/build/esm/integrations/tracing-channel/dataloader.js.map +1 -1
  344. package/build/esm/integrations/tracing-channel/express/index.js.map +1 -1
  345. package/build/esm/integrations/tracing-channel/express/instrumentation.js.map +1 -1
  346. package/build/esm/integrations/tracing-channel/express/route.js.map +1 -1
  347. package/build/esm/integrations/tracing-channel/fastify/errors.js.map +1 -1
  348. package/build/esm/integrations/tracing-channel/fastify/index.js.map +1 -1
  349. package/build/esm/integrations/tracing-channel/fastify/instrumentation.js.map +1 -1
  350. package/build/esm/integrations/tracing-channel/fastify/utils.js.map +1 -1
  351. package/build/esm/integrations/tracing-channel/firebase/firestore.js.map +1 -1
  352. package/build/esm/integrations/tracing-channel/firebase/functions.js.map +1 -1
  353. package/build/esm/integrations/tracing-channel/firebase/index.js.map +1 -1
  354. package/build/esm/integrations/tracing-channel/firebase/instrumentation.js.map +1 -1
  355. package/build/esm/integrations/tracing-channel/generic-pool.js.map +1 -1
  356. package/build/esm/integrations/tracing-channel/google-genai.js.map +1 -1
  357. package/build/esm/integrations/tracing-channel/graphql/constants.js.map +1 -1
  358. package/build/esm/integrations/tracing-channel/graphql/index.js.map +1 -1
  359. package/build/esm/integrations/tracing-channel/graphql/resolvers.js.map +1 -1
  360. package/build/esm/integrations/tracing-channel/graphql/spans.js.map +1 -1
  361. package/build/esm/integrations/tracing-channel/hapi-types.js.map +1 -1
  362. package/build/esm/integrations/tracing-channel/hapi-utils.js.map +1 -1
  363. package/build/esm/integrations/tracing-channel/hapi.js.map +1 -1
  364. package/build/esm/integrations/tracing-channel/ioredis.js.map +1 -1
  365. package/build/esm/integrations/tracing-channel/kafkajs/consumer.js.map +1 -1
  366. package/build/esm/integrations/tracing-channel/kafkajs/index.js.map +1 -1
  367. package/build/esm/integrations/tracing-channel/kafkajs/semconv.js.map +1 -1
  368. package/build/esm/integrations/tracing-channel/kafkajs/spans.js.map +1 -1
  369. package/build/esm/integrations/tracing-channel/knex.js.map +1 -1
  370. package/build/esm/integrations/tracing-channel/koa.js.map +1 -1
  371. package/build/esm/integrations/tracing-channel/langchain.js +1 -2
  372. package/build/esm/integrations/tracing-channel/langchain.js.map +1 -1
  373. package/build/esm/integrations/tracing-channel/langgraph.js.map +1 -1
  374. package/build/esm/integrations/tracing-channel/lru-memoizer.js.map +1 -1
  375. package/build/esm/integrations/tracing-channel/mongodb.js.map +1 -1
  376. package/build/esm/integrations/tracing-channel/mongoose.js.map +1 -1
  377. package/build/esm/integrations/tracing-channel/mysql.js.map +1 -1
  378. package/build/esm/integrations/tracing-channel/mysql2.js.map +1 -1
  379. package/build/esm/integrations/tracing-channel/openai.js.map +1 -1
  380. package/build/esm/integrations/tracing-channel/postgres-js.js.map +1 -1
  381. package/build/esm/integrations/tracing-channel/postgres.js.map +1 -1
  382. package/build/esm/integrations/tracing-channel/redis.js.map +1 -1
  383. package/build/esm/integrations/tracing-channel/tedious.js.map +1 -1
  384. package/build/esm/integrations/tracing-channel/vercel-ai.js.map +1 -1
  385. package/build/esm/mongodb/mongodb-span.js.map +1 -1
  386. package/build/esm/mongoose/index.js.map +1 -1
  387. package/build/esm/mongoose/mongoose-dc-subscriber.js.map +1 -1
  388. package/build/esm/mongoose/mongoose-legacy-span.js.map +1 -1
  389. package/build/esm/mysql2/index.js.map +1 -1
  390. package/build/esm/mysql2/mysql2-dc-subscriber.js.map +1 -1
  391. package/build/esm/orchestrion/bundler/esbuild.js +2 -2
  392. package/build/esm/orchestrion/bundler/esbuild.js.map +1 -1
  393. package/build/esm/orchestrion/bundler/options.js.map +1 -1
  394. package/build/esm/orchestrion/bundler/rollup.js +2 -2
  395. package/build/esm/orchestrion/bundler/rollup.js.map +1 -1
  396. package/build/esm/orchestrion/bundler/subscribeInjection.js +3 -2
  397. package/build/esm/orchestrion/bundler/subscribeInjection.js.map +1 -1
  398. package/build/esm/orchestrion/bundler/vite.js +2 -2
  399. package/build/esm/orchestrion/bundler/vite.js.map +1 -1
  400. package/build/esm/orchestrion/bundler/webpack-loader.js +6 -0
  401. package/build/esm/orchestrion/bundler/webpack-loader.js.map +1 -0
  402. package/build/esm/orchestrion/bundler/webpack.js +25 -8
  403. package/build/esm/orchestrion/bundler/webpack.js.map +1 -1
  404. package/build/esm/orchestrion/channels.js.map +1 -1
  405. package/build/esm/orchestrion/config/amqplib.js.map +1 -1
  406. package/build/esm/orchestrion/config/anthropic-ai.js.map +1 -1
  407. package/build/esm/orchestrion/config/aws-sdk.js.map +1 -1
  408. package/build/esm/orchestrion/config/channel-integration-definitions.js.map +1 -1
  409. package/build/esm/orchestrion/config/dataloader.js.map +1 -1
  410. package/build/esm/orchestrion/config/express.js.map +1 -1
  411. package/build/esm/orchestrion/config/firebase.js.map +1 -1
  412. package/build/esm/orchestrion/config/generic-pool.js.map +1 -1
  413. package/build/esm/orchestrion/config/google-genai.js.map +1 -1
  414. package/build/esm/orchestrion/config/graphql.js.map +1 -1
  415. package/build/esm/orchestrion/config/hapi.js.map +1 -1
  416. package/build/esm/orchestrion/config/index.js.map +1 -1
  417. package/build/esm/orchestrion/config/ioredis.js.map +1 -1
  418. package/build/esm/orchestrion/config/kafkajs.js.map +1 -1
  419. package/build/esm/orchestrion/config/knex.js.map +1 -1
  420. package/build/esm/orchestrion/config/koa.js.map +1 -1
  421. package/build/esm/orchestrion/config/langchain.js.map +1 -1
  422. package/build/esm/orchestrion/config/langgraph.js.map +1 -1
  423. package/build/esm/orchestrion/config/lru-memoizer.js.map +1 -1
  424. package/build/esm/orchestrion/config/mongodb.js.map +1 -1
  425. package/build/esm/orchestrion/config/mongoose.js.map +1 -1
  426. package/build/esm/orchestrion/config/mysql.js.map +1 -1
  427. package/build/esm/orchestrion/config/mysql2.js.map +1 -1
  428. package/build/esm/orchestrion/config/nestjs.js.map +1 -1
  429. package/build/esm/orchestrion/config/openai.js +4 -4
  430. package/build/esm/orchestrion/config/openai.js.map +1 -1
  431. package/build/esm/orchestrion/config/pg.js.map +1 -1
  432. package/build/esm/orchestrion/config/postgres.js.map +1 -1
  433. package/build/esm/orchestrion/config/redis.js.map +1 -1
  434. package/build/esm/orchestrion/config/remix.js.map +1 -1
  435. package/build/esm/orchestrion/config/subscribe-injection.js.map +1 -1
  436. package/build/esm/orchestrion/config/tedious.js.map +1 -1
  437. package/build/esm/orchestrion/config/vercel-ai.js.map +1 -1
  438. package/build/esm/orchestrion/detect.js.map +1 -1
  439. package/build/esm/orchestrion/index.js.map +1 -1
  440. package/build/esm/orchestrion/registerChannelIntegration.js.map +1 -1
  441. package/build/esm/orchestrion/runtime/hook.js +8 -0
  442. package/build/esm/orchestrion/runtime/hook.js.map +1 -0
  443. package/build/esm/orchestrion/runtime/register.js +33 -40
  444. package/build/esm/orchestrion/runtime/register.js.map +1 -1
  445. package/build/esm/package.json +1 -1
  446. package/build/esm/prisma/global.js.map +1 -1
  447. package/build/esm/prisma/index.js.map +1 -1
  448. package/build/esm/prisma/tracing-helper.js.map +1 -1
  449. package/build/esm/redis/index.js.map +1 -1
  450. package/build/esm/redis/redis-dc-subscriber.js.map +1 -1
  451. package/build/esm/redis/redis-statement-serializer.js.map +1 -1
  452. package/build/esm/tracing-channel.js.map +1 -1
  453. package/build/esm/vendored/@apm-js-collab/code-transformer/index.js +6 -0
  454. package/build/esm/vendored/@apm-js-collab/code-transformer/index.js.map +1 -0
  455. package/build/esm/vendored/@apm-js-collab/code-transformer/lib/index.js +10 -0
  456. package/build/esm/vendored/@apm-js-collab/code-transformer/lib/index.js.map +1 -0
  457. package/build/esm/vendored/@apm-js-collab/code-transformer/lib/matcher.js +81 -0
  458. package/build/esm/vendored/@apm-js-collab/code-transformer/lib/matcher.js.map +1 -0
  459. package/build/esm/vendored/@apm-js-collab/code-transformer/lib/transformer.js +312 -0
  460. package/build/esm/vendored/@apm-js-collab/code-transformer/lib/transformer.js.map +1 -0
  461. package/build/esm/vendored/@apm-js-collab/code-transformer/lib/transforms.js +404 -0
  462. package/build/esm/vendored/@apm-js-collab/code-transformer/lib/transforms.js.map +1 -0
  463. package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/cjs/chunk-D6vf50IK.js +33 -0
  464. package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/cjs/chunk-D6vf50IK.js.map +1 -0
  465. package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/cjs/instrumentation-serde-BFky_HG6.js +66 -0
  466. package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/cjs/instrumentation-serde-BFky_HG6.js.map +1 -0
  467. package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/cjs/webpack-loader.js +88 -0
  468. package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/cjs/webpack-loader.js.map +1 -0
  469. package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/core-dC9TN3Ev.js +213 -0
  470. package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/core-dC9TN3Ev.js.map +1 -0
  471. package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/esbuild.js +96 -0
  472. package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/esbuild.js.map +1 -0
  473. package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/instrumentation-serde-C-Xxv-jj.js +27 -0
  474. package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/instrumentation-serde-C-Xxv-jj.js.map +1 -0
  475. package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/rollup-OTS4ktWb.js +1067 -0
  476. package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/rollup-OTS4ktWb.js.map +1 -0
  477. package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/vite.js +12 -0
  478. package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/vite.js.map +1 -0
  479. package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/webpack.js +72 -0
  480. package/build/esm/vendored/@apm-js-collab/code-transformer-bundler-plugins/dist/esm/webpack.js.map +1 -0
  481. package/build/esm/vendored/@apm-js-collab/tracing-hooks/hook.js +157 -0
  482. package/build/esm/vendored/@apm-js-collab/tracing-hooks/hook.js.map +1 -0
  483. package/build/esm/vendored/@apm-js-collab/tracing-hooks/index.js +86 -0
  484. package/build/esm/vendored/@apm-js-collab/tracing-hooks/index.js.map +1 -0
  485. package/build/esm/vendored/@apm-js-collab/tracing-hooks/lib/diagnostics.js +13 -0
  486. package/build/esm/vendored/@apm-js-collab/tracing-hooks/lib/diagnostics.js.map +1 -0
  487. package/build/esm/vendored/@apm-js-collab/tracing-hooks/lib/get-package-version.js +27 -0
  488. package/build/esm/vendored/@apm-js-collab/tracing-hooks/lib/get-package-version.js.map +1 -0
  489. package/build/esm/vendored/astring/dist/astring.js +1066 -0
  490. package/build/esm/vendored/astring/dist/astring.js.map +1 -0
  491. package/build/esm/vendored/debug/src/common.js +176 -0
  492. package/build/esm/vendored/debug/src/common.js.map +1 -0
  493. package/build/esm/vendored/debug/src/node.js +183 -0
  494. package/build/esm/vendored/debug/src/node.js.map +1 -0
  495. package/build/esm/vendored/esquery/dist/esquery.esm.min.js +845 -0
  496. package/build/esm/vendored/esquery/dist/esquery.esm.min.js.map +1 -0
  497. package/build/esm/vendored/has-flag/index.js +9 -0
  498. package/build/esm/vendored/has-flag/index.js.map +1 -0
  499. package/build/esm/vendored/meriyah/dist/meriyah.js +9190 -0
  500. package/build/esm/vendored/meriyah/dist/meriyah.js.map +1 -0
  501. package/build/esm/vendored/meriyah/dist/meriyah2.js +9207 -0
  502. package/build/esm/vendored/meriyah/dist/meriyah2.js.map +1 -0
  503. package/build/esm/vendored/module-details-from-path/index.js +41 -0
  504. package/build/esm/vendored/module-details-from-path/index.js.map +1 -0
  505. package/build/esm/vendored/ms/index.js +113 -0
  506. package/build/esm/vendored/ms/index.js.map +1 -0
  507. package/build/esm/vendored/semifies/index.js +109 -0
  508. package/build/esm/vendored/semifies/index.js.map +1 -0
  509. package/build/esm/vendored/source-map/lib/array-set.js +71 -0
  510. package/build/esm/vendored/source-map/lib/array-set.js.map +1 -0
  511. package/build/esm/vendored/source-map/lib/base64-vlq.js +55 -0
  512. package/build/esm/vendored/source-map/lib/base64-vlq.js.map +1 -0
  513. package/build/esm/vendored/source-map/lib/base64.js +40 -0
  514. package/build/esm/vendored/source-map/lib/base64.js.map +1 -0
  515. package/build/esm/vendored/source-map/lib/binary-search.js +55 -0
  516. package/build/esm/vendored/source-map/lib/binary-search.js.map +1 -0
  517. package/build/esm/vendored/source-map/lib/mapping-list.js +40 -0
  518. package/build/esm/vendored/source-map/lib/mapping-list.js.map +1 -0
  519. package/build/esm/vendored/source-map/lib/quick-sort.js +34 -0
  520. package/build/esm/vendored/source-map/lib/quick-sort.js.map +1 -0
  521. package/build/esm/vendored/source-map/lib/source-map-consumer.js +610 -0
  522. package/build/esm/vendored/source-map/lib/source-map-consumer.js.map +1 -0
  523. package/build/esm/vendored/source-map/lib/source-map-generator.js +283 -0
  524. package/build/esm/vendored/source-map/lib/source-map-generator.js.map +1 -0
  525. package/build/esm/vendored/source-map/lib/source-node.js +268 -0
  526. package/build/esm/vendored/source-map/lib/source-node.js.map +1 -0
  527. package/build/esm/vendored/source-map/lib/util.js +300 -0
  528. package/build/esm/vendored/source-map/lib/util.js.map +1 -0
  529. package/build/esm/vendored/source-map/source-map.js +14 -0
  530. package/build/esm/vendored/source-map/source-map.js.map +1 -0
  531. package/build/esm/vendored/supports-color/index.js +102 -0
  532. package/build/esm/vendored/supports-color/index.js.map +1 -0
  533. package/build/esm/vercel-ai/index.js.map +1 -1
  534. package/build/esm/vercel-ai/util.js.map +1 -1
  535. package/build/esm/vercel-ai/vercel-ai-dc-subscriber.js.map +1 -1
  536. package/build/esm/vercel-ai/vercel-ai-orchestrion-subscriber.js.map +1 -1
  537. package/build/types/orchestrion/apmTypes.d.ts +169 -0
  538. package/build/types/orchestrion/apmTypes.d.ts.map +1 -0
  539. package/build/types/orchestrion/bundler/esbuild.d.ts +2 -2
  540. package/build/types/orchestrion/bundler/esbuild.d.ts.map +1 -1
  541. package/build/types/orchestrion/bundler/options.d.ts +1 -1
  542. package/build/types/orchestrion/bundler/options.d.ts.map +1 -1
  543. package/build/types/orchestrion/bundler/rollup.d.ts +2 -2
  544. package/build/types/orchestrion/bundler/rollup.d.ts.map +1 -1
  545. package/build/types/orchestrion/bundler/subscribeInjection.d.ts.map +1 -1
  546. package/build/types/orchestrion/bundler/vite.d.ts +2 -2
  547. package/build/types/orchestrion/bundler/vite.d.ts.map +1 -1
  548. package/build/types/orchestrion/bundler/webpack-loader.d.ts +3 -0
  549. package/build/types/orchestrion/bundler/webpack-loader.d.ts.map +1 -0
  550. package/build/types/orchestrion/bundler/webpack.d.ts +21 -10
  551. package/build/types/orchestrion/bundler/webpack.d.ts.map +1 -1
  552. package/build/types/orchestrion/config/aws-sdk.d.ts +1 -1
  553. package/build/types/orchestrion/config/aws-sdk.d.ts.map +1 -1
  554. package/build/types/orchestrion/config/koa.d.ts +1 -1
  555. package/build/types/orchestrion/config/koa.d.ts.map +1 -1
  556. package/build/types/orchestrion/config/langgraph.d.ts +2 -2
  557. package/build/types/orchestrion/config/subscribe-injection.d.ts +1 -1
  558. package/build/types/orchestrion/config/subscribe-injection.d.ts.map +1 -1
  559. package/build/types/orchestrion/index.d.ts +1 -1
  560. package/build/types/orchestrion/index.d.ts.map +1 -1
  561. package/build/types/orchestrion/runtime/register.d.ts +3 -7
  562. package/build/types/orchestrion/runtime/register.d.ts.map +1 -1
  563. package/build/types-ts3.8/orchestrion/apmTypes.d.ts +169 -0
  564. package/build/types-ts3.8/orchestrion/bundler/esbuild.d.ts +2 -2
  565. package/build/types-ts3.8/orchestrion/bundler/options.d.ts +1 -1
  566. package/build/types-ts3.8/orchestrion/bundler/rollup.d.ts +2 -2
  567. package/build/types-ts3.8/orchestrion/bundler/vite.d.ts +2 -2
  568. package/build/types-ts3.8/orchestrion/bundler/webpack-loader.d.ts +3 -0
  569. package/build/types-ts3.8/orchestrion/bundler/webpack.d.ts +21 -10
  570. package/build/types-ts3.8/orchestrion/config/aws-sdk.d.ts +1 -1
  571. package/build/types-ts3.8/orchestrion/config/koa.d.ts +1 -1
  572. package/build/types-ts3.8/orchestrion/config/langgraph.d.ts +2 -2
  573. package/build/types-ts3.8/orchestrion/config/subscribe-injection.d.ts +1 -1
  574. package/build/types-ts3.8/orchestrion/index.d.ts +1 -1
  575. package/build/types-ts3.8/orchestrion/runtime/register.d.ts +3 -7
  576. package/changes.json +3 -11
  577. package/package.json +17 -18
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.js","sources":["../../../../src/integrations/tracing-channel/anthropic.ts"],"sourcesContent":["import * as diagnosticsChannel from 'node:diagnostics_channel';\nimport type { AnthropicAiOptions, AnthropicAiResponse, IntegrationFn, Span, SpanAttributeValue } from '@sentry/core';\nimport {\n _INTERNAL_shouldSkipAiProviderWrapping,\n addAnthropicRequestAttributes,\n addAnthropicResponseAttributes,\n debug,\n defineIntegration,\n extractAnthropicRequestAttributes,\n GEN_AI_REQUEST_MODEL_ATTRIBUTE,\n instrumentAsyncIterableStream,\n instrumentMessageStream,\n resolveAIRecordingOptions,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n shouldEnableTruncation,\n startInactiveSpan,\n waitForTracingChannelBinding,\n} from '@sentry/core';\nimport { DEBUG_BUILD } from '../../debug-build';\nimport { CHANNELS } from '../../orchestrion/channels';\nimport { bindTracingChannelToSpan } from '../../tracing-channel';\n\n// Same name as the OTel integration by design: when enabled, the OTel 'Anthropic_AI'\n// integration is dropped from the default set (see the Node opt-in loader).\nconst INTEGRATION_NAME = 'Anthropic_AI' as const;\n\n// Distinct from the proxy's `auto.ai.anthropic` so spans from the orchestrion path\n// are attributable separately from the OTel/proxy one.\nconst ORIGIN = 'auto.ai.orchestrion.anthropic';\n\n// `stream` determines how the span is ended\nconst INSTRUMENTED_CHANNELS = [\n { channel: CHANNELS.ANTHROPIC_CHAT, operation: 'chat', methodPath: 'messages.create', stream: 'async-iterable' },\n { channel: CHANNELS.ANTHROPIC_MODELS, operation: 'models', methodPath: 'models.retrieve', stream: 'none' },\n {\n channel: CHANNELS.ANTHROPIC_MESSAGES_STREAM,\n operation: 'chat',\n methodPath: 'messages.stream',\n stream: 'message-stream',\n },\n] as const;\n\ntype StreamMode = (typeof INSTRUMENTED_CHANNELS)[number]['stream'];\n\ninterface AnthropicChannelContext {\n arguments: unknown[];\n result?: unknown;\n}\n\nlet subscribed = false;\n\nconst _anthropicChannelIntegration = ((options: AnthropicAiOptions = {}) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n // tracingChannel is unavailable before Node 18.19 and prevent double-subscribe\n if (!diagnosticsChannel.tracingChannel || subscribed) {\n return;\n }\n subscribed = true;\n\n // `bindTracingChannelToSpan` needs the async-context binding that `initOpenTelemetry()` registers\n // after `setupOnce` runs, so wait for it before subscribing.\n waitForTracingChannelBinding(() => {\n for (const { channel, operation, methodPath, stream } of INSTRUMENTED_CHANNELS) {\n DEBUG_BUILD && debug.log(`[orchestrion:anthropic] subscribing to channel \"${channel}\"`);\n bindTracingChannelToSpan(\n diagnosticsChannel.tracingChannel<AnthropicChannelContext>(channel),\n data => createGenAiSpan(data, operation, methodPath, options),\n {\n beforeSpanEnd: (span, data) => {\n addAnthropicResponseAttributes(\n span,\n data.result as AnthropicAiResponse,\n resolveAIRecordingOptions(options).recordOutputs,\n );\n },\n deferSpanEnd: ({ span, data }) => wrapStreamResult(span, data, stream, options),\n },\n );\n }\n });\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Build the span for an instrumented call.\n * Returning `undefined` opts the payload out so no span is opened.\n */\nfunction createGenAiSpan(\n data: AnthropicChannelContext,\n operation: string,\n methodPath: string,\n options: AnthropicAiOptions,\n): Span | undefined {\n const args = data.arguments ?? [];\n\n // When LangChain (or another provider) is driving the SDK, it records the spans itself and marks this\n // provider as skipped — mirror the OTel integration and don't double-instrument.\n if (_INTERNAL_shouldSkipAiProviderWrapping(INTEGRATION_NAME)) {\n return undefined;\n }\n\n // `messages.stream()` internally calls the instrumented `messages.create({ stream: true })` tagged with\n // an `X-Stainless-Helper-Method: 'stream'` header. The messages-stream channel already covers it, so skip\n // the nested create to avoid a duplicate span.\n const requestOptions = args[1] as { headers?: Record<string, unknown> } | undefined;\n if (requestOptions?.headers?.['X-Stainless-Helper-Method'] === 'stream') {\n return undefined;\n }\n\n const params = typeof args[0] === 'object' && args[0] !== null ? (args[0] as Record<string, unknown>) : undefined;\n\n const { recordInputs } = resolveAIRecordingOptions(options);\n const enableTruncation = shouldEnableTruncation(options.enableTruncation);\n\n const attributes = extractAnthropicRequestAttributes(args, methodPath, operation);\n const model = (attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] as string) || 'unknown';\n attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] = ORIGIN;\n\n const span = startInactiveSpan({\n name: `${operation} ${model}`,\n op: `gen_ai.${operation}`,\n attributes: attributes as Record<string, SpanAttributeValue>,\n });\n\n if (recordInputs && params) {\n addAnthropicRequestAttributes(span, params, enableTruncation);\n }\n\n return span;\n}\n\ntype AsyncIterableStream = { [Symbol.asyncIterator]: () => AsyncIterator<unknown> };\ntype MessageStreamEmitter = { on: (...args: unknown[]) => void };\n\nfunction isAsyncIterable(value: unknown): value is AsyncIterableStream {\n return !!value && typeof (value as AsyncIterableStream)[Symbol.asyncIterator] === 'function';\n}\n\nfunction isMessageStream(value: unknown): value is MessageStreamEmitter {\n return !!value && typeof (value as MessageStreamEmitter).on === 'function';\n}\n\n/**\n * Hand span-ending ownership to a streamed result: returns `true` to skip the normal `beforeSpanEnd`,\n * `false` for non-streaming results (which end via `beforeSpanEnd`).\n *\n * - `async-iterable`: patch the `Stream`'s async iterator in place so `instrumentAsyncIterableStream` ends\n * the span when iteration finishes.\n * - `message-stream`: `instrumentMessageStream` attaches `'message'`/`'error'` listeners that end the span.\n */\nfunction wrapStreamResult(\n span: Span,\n data: AnthropicChannelContext,\n stream: StreamMode,\n options: AnthropicAiOptions,\n): boolean {\n const { recordOutputs } = resolveAIRecordingOptions(options);\n const result = data.result;\n\n if (stream === 'async-iterable' && isAsyncIterable(result)) {\n const iterate = result[Symbol.asyncIterator].bind(result);\n const instrumented = instrumentAsyncIterableStream({ [Symbol.asyncIterator]: iterate }, span, recordOutputs);\n result[Symbol.asyncIterator] = () => instrumented;\n return true;\n }\n\n if (stream === 'message-stream' && isMessageStream(result)) {\n instrumentMessageStream(result, span, recordOutputs);\n return true;\n }\n\n return false;\n}\n\n/**\n * EXPERIMENTAL — orchestrion-driven Anthropic integration. Subscribes to the `orchestrion:@anthropic-ai/sdk:*`\n * diagnostics_channels injected into the SDK's chat (`messages`/`completions`/beta `messages`), `models`, and\n * `messages.stream()` methods, so it requires the orchestrion runtime hook or bundler plugin.\n */\nexport const anthropicChannelIntegration = defineIntegration(_anthropicChannelIntegration);\n"],"names":[],"mappings":";;;;;;AAwBA,MAAM,gBAAA,GAAmB,cAAA;AAIzB,MAAM,MAAA,GAAS,+BAAA;AAGf,MAAM,qBAAA,GAAwB;AAAA,EAC5B,EAAE,SAAS,QAAA,CAAS,cAAA,EAAgB,WAAW,MAAA,EAAQ,UAAA,EAAY,iBAAA,EAAmB,MAAA,EAAQ,gBAAA,EAAiB;AAAA,EAC/G,EAAE,SAAS,QAAA,CAAS,gBAAA,EAAkB,WAAW,QAAA,EAAU,UAAA,EAAY,iBAAA,EAAmB,MAAA,EAAQ,MAAA,EAAO;AAAA,EACzG;AAAA,IACE,SAAS,QAAA,CAAS,yBAAA;AAAA,IAClB,SAAA,EAAW,MAAA;AAAA,IACX,UAAA,EAAY,iBAAA;AAAA,IACZ,MAAA,EAAQ;AAAA;AAEZ,CAAA;AASA,IAAI,UAAA,GAAa,KAAA;AAEjB,MAAM,4BAAA,IAAgC,CAAC,OAAA,GAA8B,EAAC,KAAM;AAC1E,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,gBAAA;AAAA,IACN,SAAA,GAAY;AAEV,MAAA,IAAI,CAAC,kBAAA,CAAmB,cAAA,IAAkB,UAAA,EAAY;AACpD,QAAA;AAAA,MACF;AACA,MAAA,UAAA,GAAa,IAAA;AAIb,MAAA,4BAAA,CAA6B,MAAM;AACjC,QAAA,KAAA,MAAW,EAAE,OAAA,EAAS,SAAA,EAAW,UAAA,EAAY,MAAA,MAAY,qBAAA,EAAuB;AAC9E,UAAA,WAAA,IAAe,KAAA,CAAM,GAAA,CAAI,CAAA,gDAAA,EAAmD,OAAO,CAAA,CAAA,CAAG,CAAA;AACtF,UAAA,wBAAA;AAAA,YACE,kBAAA,CAAmB,eAAwC,OAAO,CAAA;AAAA,YAClE,CAAA,IAAA,KAAQ,eAAA,CAAgB,IAAA,EAAM,SAAA,EAAW,YAAY,OAAO,CAAA;AAAA,YAC5D;AAAA,cACE,aAAA,EAAe,CAAC,IAAA,EAAM,IAAA,KAAS;AAC7B,gBAAA,8BAAA;AAAA,kBACE,IAAA;AAAA,kBACA,IAAA,CAAK,MAAA;AAAA,kBACL,yBAAA,CAA0B,OAAO,CAAA,CAAE;AAAA,iBACrC;AAAA,cACF,CAAA;AAAA,cACA,YAAA,EAAc,CAAC,EAAE,IAAA,EAAM,IAAA,OAAW,gBAAA,CAAiB,IAAA,EAAM,IAAA,EAAM,MAAA,EAAQ,OAAO;AAAA;AAChF,WACF;AAAA,QACF;AAAA,MACF,CAAC,CAAA;AAAA,IACH;AAAA,GACF;AACF,CAAA,CAAA;AAMA,SAAS,eAAA,CACP,IAAA,EACA,SAAA,EACA,UAAA,EACA,OAAA,EACkB;AAClB,EAAA,MAAM,IAAA,GAAO,IAAA,CAAK,SAAA,IAAa,EAAC;AAIhC,EAAA,IAAI,sCAAA,CAAuC,gBAAgB,CAAA,EAAG;AAC5D,IAAA,OAAO,MAAA;AAAA,EACT;AAKA,EAAA,MAAM,cAAA,GAAiB,KAAK,CAAC,CAAA;AAC7B,EAAA,IAAI,cAAA,EAAgB,OAAA,GAAU,2BAA2B,CAAA,KAAM,QAAA,EAAU;AACvE,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,MAAM,MAAA,GAAS,OAAO,IAAA,CAAK,CAAC,CAAA,KAAM,QAAA,IAAY,IAAA,CAAK,CAAC,CAAA,KAAM,IAAA,GAAQ,IAAA,CAAK,CAAC,CAAA,GAAgC,MAAA;AAExG,EAAA,MAAM,EAAE,YAAA,EAAa,GAAI,yBAAA,CAA0B,OAAO,CAAA;AAC1D,EAAA,MAAM,gBAAA,GAAmB,sBAAA,CAAuB,OAAA,CAAQ,gBAAgB,CAAA;AAExE,EAAA,MAAM,UAAA,GAAa,iCAAA,CAAkC,IAAA,EAAM,UAAA,EAAY,SAAS,CAAA;AAChF,EAAA,MAAM,KAAA,GAAS,UAAA,CAAW,8BAA8B,CAAA,IAAgB,SAAA;AACxE,EAAA,UAAA,CAAW,gCAAgC,CAAA,GAAI,MAAA;AAE/C,EAAA,MAAM,OAAO,iBAAA,CAAkB;AAAA,IAC7B,IAAA,EAAM,CAAA,EAAG,SAAS,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA;AAAA,IAC3B,EAAA,EAAI,UAAU,SAAS,CAAA,CAAA;AAAA,IACvB;AAAA,GACD,CAAA;AAED,EAAA,IAAI,gBAAgB,MAAA,EAAQ;AAC1B,IAAA,6BAAA,CAA8B,IAAA,EAAM,QAAQ,gBAAgB,CAAA;AAAA,EAC9D;AAEA,EAAA,OAAO,IAAA;AACT;AAKA,SAAS,gBAAgB,KAAA,EAA8C;AACrE,EAAA,OAAO,CAAC,CAAC,KAAA,IAAS,OAAQ,KAAA,CAA8B,MAAA,CAAO,aAAa,CAAA,KAAM,UAAA;AACpF;AAEA,SAAS,gBAAgB,KAAA,EAA+C;AACtE,EAAA,OAAO,CAAC,CAAC,KAAA,IAAS,OAAQ,MAA+B,EAAA,KAAO,UAAA;AAClE;AAUA,SAAS,gBAAA,CACP,IAAA,EACA,IAAA,EACA,MAAA,EACA,OAAA,EACS;AACT,EAAA,MAAM,EAAE,aAAA,EAAc,GAAI,yBAAA,CAA0B,OAAO,CAAA;AAC3D,EAAA,MAAM,SAAS,IAAA,CAAK,MAAA;AAEpB,EAAA,IAAI,MAAA,KAAW,gBAAA,IAAoB,eAAA,CAAgB,MAAM,CAAA,EAAG;AAC1D,IAAA,MAAM,UAAU,MAAA,CAAO,MAAA,CAAO,aAAa,CAAA,CAAE,KAAK,MAAM,CAAA;AACxD,IAAA,MAAM,YAAA,GAAe,6BAAA,CAA8B,EAAE,CAAC,MAAA,CAAO,aAAa,GAAG,OAAA,EAAQ,EAAG,IAAA,EAAM,aAAa,CAAA;AAC3G,IAAA,MAAA,CAAO,MAAA,CAAO,aAAa,CAAA,GAAI,MAAM,YAAA;AACrC,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,IAAI,MAAA,KAAW,gBAAA,IAAoB,eAAA,CAAgB,MAAM,CAAA,EAAG;AAC1D,IAAA,uBAAA,CAAwB,MAAA,EAAQ,MAAM,aAAa,CAAA;AACnD,IAAA,OAAO,IAAA;AAAA,EACT;AAEA,EAAA,OAAO,KAAA;AACT;AAOO,MAAM,2BAAA,GAA8B,kBAAkB,4BAA4B;;;;"}
1
+ {"version":3,"file":"anthropic.js","sources":["../../../../src/integrations/tracing-channel/anthropic.ts"],"sourcesContent":["import * as diagnosticsChannel from 'node:diagnostics_channel';\nimport type { AnthropicAiOptions, AnthropicAiResponse, IntegrationFn, Span, SpanAttributeValue } from '@sentry/core';\nimport {\n _INTERNAL_shouldSkipAiProviderWrapping,\n addAnthropicRequestAttributes,\n addAnthropicResponseAttributes,\n debug,\n defineIntegration,\n extractAnthropicRequestAttributes,\n GEN_AI_REQUEST_MODEL_ATTRIBUTE,\n instrumentAsyncIterableStream,\n instrumentMessageStream,\n resolveAIRecordingOptions,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n shouldEnableTruncation,\n startInactiveSpan,\n waitForTracingChannelBinding,\n} from '@sentry/core';\nimport { DEBUG_BUILD } from '../../debug-build';\nimport { CHANNELS } from '../../orchestrion/channels';\nimport { bindTracingChannelToSpan } from '../../tracing-channel';\n\n// Same name as the OTel integration by design: when enabled, the OTel 'Anthropic_AI'\n// integration is dropped from the default set (see the Node opt-in loader).\nconst INTEGRATION_NAME = 'Anthropic_AI' as const;\n\n// Distinct from the proxy's `auto.ai.anthropic` so spans from the orchestrion path\n// are attributable separately from the OTel/proxy one.\nconst ORIGIN = 'auto.ai.orchestrion.anthropic';\n\n// `stream` determines how the span is ended\nconst INSTRUMENTED_CHANNELS = [\n { channel: CHANNELS.ANTHROPIC_CHAT, operation: 'chat', methodPath: 'messages.create', stream: 'async-iterable' },\n { channel: CHANNELS.ANTHROPIC_MODELS, operation: 'models', methodPath: 'models.retrieve', stream: 'none' },\n {\n channel: CHANNELS.ANTHROPIC_MESSAGES_STREAM,\n operation: 'chat',\n methodPath: 'messages.stream',\n stream: 'message-stream',\n },\n] as const;\n\ntype StreamMode = (typeof INSTRUMENTED_CHANNELS)[number]['stream'];\n\ninterface AnthropicChannelContext {\n arguments: unknown[];\n result?: unknown;\n}\n\nlet subscribed = false;\n\nconst _anthropicChannelIntegration = ((options: AnthropicAiOptions = {}) => {\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n // tracingChannel is unavailable before Node 18.19 and prevent double-subscribe\n if (!diagnosticsChannel.tracingChannel || subscribed) {\n return;\n }\n subscribed = true;\n\n // `bindTracingChannelToSpan` needs the async-context binding that `initOpenTelemetry()` registers\n // after `setupOnce` runs, so wait for it before subscribing.\n waitForTracingChannelBinding(() => {\n for (const { channel, operation, methodPath, stream } of INSTRUMENTED_CHANNELS) {\n DEBUG_BUILD && debug.log(`[orchestrion:anthropic] subscribing to channel \"${channel}\"`);\n bindTracingChannelToSpan(\n diagnosticsChannel.tracingChannel<AnthropicChannelContext>(channel),\n data => createGenAiSpan(data, operation, methodPath, options),\n {\n beforeSpanEnd: (span, data) => {\n addAnthropicResponseAttributes(\n span,\n data.result as AnthropicAiResponse,\n resolveAIRecordingOptions(options).recordOutputs,\n );\n },\n deferSpanEnd: ({ span, data }) => wrapStreamResult(span, data, stream, options),\n },\n );\n }\n });\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Build the span for an instrumented call.\n * Returning `undefined` opts the payload out so no span is opened.\n */\nfunction createGenAiSpan(\n data: AnthropicChannelContext,\n operation: string,\n methodPath: string,\n options: AnthropicAiOptions,\n): Span | undefined {\n const args = data.arguments ?? [];\n\n // When LangChain (or another provider) is driving the SDK, it records the spans itself and marks this\n // provider as skipped — mirror the OTel integration and don't double-instrument.\n if (_INTERNAL_shouldSkipAiProviderWrapping(INTEGRATION_NAME)) {\n return undefined;\n }\n\n // `messages.stream()` internally calls the instrumented `messages.create({ stream: true })` tagged with\n // an `X-Stainless-Helper-Method: 'stream'` header. The messages-stream channel already covers it, so skip\n // the nested create to avoid a duplicate span.\n const requestOptions = args[1] as { headers?: Record<string, unknown> } | undefined;\n if (requestOptions?.headers?.['X-Stainless-Helper-Method'] === 'stream') {\n return undefined;\n }\n\n const params = typeof args[0] === 'object' && args[0] !== null ? (args[0] as Record<string, unknown>) : undefined;\n\n const { recordInputs } = resolveAIRecordingOptions(options);\n const enableTruncation = shouldEnableTruncation(options.enableTruncation);\n\n const attributes = extractAnthropicRequestAttributes(args, methodPath, operation);\n const model = (attributes[GEN_AI_REQUEST_MODEL_ATTRIBUTE] as string) || 'unknown';\n attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] = ORIGIN;\n\n const span = startInactiveSpan({\n name: `${operation} ${model}`,\n op: `gen_ai.${operation}`,\n attributes: attributes as Record<string, SpanAttributeValue>,\n });\n\n if (recordInputs && params) {\n addAnthropicRequestAttributes(span, params, enableTruncation);\n }\n\n return span;\n}\n\ntype AsyncIterableStream = { [Symbol.asyncIterator]: () => AsyncIterator<unknown> };\ntype MessageStreamEmitter = { on: (...args: unknown[]) => void };\n\nfunction isAsyncIterable(value: unknown): value is AsyncIterableStream {\n return !!value && typeof (value as AsyncIterableStream)[Symbol.asyncIterator] === 'function';\n}\n\nfunction isMessageStream(value: unknown): value is MessageStreamEmitter {\n return !!value && typeof (value as MessageStreamEmitter).on === 'function';\n}\n\n/**\n * Hand span-ending ownership to a streamed result: returns `true` to skip the normal `beforeSpanEnd`,\n * `false` for non-streaming results (which end via `beforeSpanEnd`).\n *\n * - `async-iterable`: patch the `Stream`'s async iterator in place so `instrumentAsyncIterableStream` ends\n * the span when iteration finishes.\n * - `message-stream`: `instrumentMessageStream` attaches `'message'`/`'error'` listeners that end the span.\n */\nfunction wrapStreamResult(\n span: Span,\n data: AnthropicChannelContext,\n stream: StreamMode,\n options: AnthropicAiOptions,\n): boolean {\n const { recordOutputs } = resolveAIRecordingOptions(options);\n const result = data.result;\n\n if (stream === 'async-iterable' && isAsyncIterable(result)) {\n const iterate = result[Symbol.asyncIterator].bind(result);\n const instrumented = instrumentAsyncIterableStream({ [Symbol.asyncIterator]: iterate }, span, recordOutputs);\n result[Symbol.asyncIterator] = () => instrumented;\n return true;\n }\n\n if (stream === 'message-stream' && isMessageStream(result)) {\n instrumentMessageStream(result, span, recordOutputs);\n return true;\n }\n\n return false;\n}\n\n/**\n * EXPERIMENTAL — orchestrion-driven Anthropic integration. Subscribes to the `orchestrion:@anthropic-ai/sdk:*`\n * diagnostics_channels injected into the SDK's chat (`messages`/`completions`/beta `messages`), `models`, and\n * `messages.stream()` methods, so it requires the orchestrion runtime hook or bundler plugin.\n */\nexport const anthropicChannelIntegration = defineIntegration(_anthropicChannelIntegration);\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../../../../../src/integrations/tracing-channel/aws-sdk/constants.ts"],"sourcesContent":["/**\n * AWS-specific span constants used by the aws-sdk channel integration that are NOT covered by\n * `@sentry/conventions/attributes` (attribute names that exist there are imported from there\n * directly). These are either Sentry-specific (the span origin), attribute *values* (not keys), or\n * obsolete OTel conventions with no `@sentry/conventions` export.\n */\n\n/** The span origin every aws-sdk channel span carries, mirroring the uniform OTel `auto.otel.aws`. */\nexport const AWS_SDK_ORIGIN = 'auto.aws.orchestrion.aws_sdk';\n\n/** DynamoDB `db.system` value (an attribute value, not a key, so not covered by conventions). */\nexport const DB_SYSTEM_VALUE_DYNAMODB = 'dynamodb';\n\n// Messaging (obsolete OTel convention with no `@sentry/conventions` export, kept for parity)\n// TODO(v11): import from `@sentry/conventions` once a release including it ships (added in\n// getsentry/sentry-conventions#509), and drop this local constant.\nexport const ATTR_MESSAGING_DESTINATION_KIND = 'messaging.destination_kind';\nexport const MESSAGING_DESTINATION_KIND_VALUE_TOPIC = 'topic';\n\n// Bedrock (gen_ai) attribute values (not keys, so not covered by conventions)\nexport const GEN_AI_OPERATION_NAME_VALUE_CHAT = 'chat';\nexport const GEN_AI_SYSTEM_VALUE_AWS_BEDROCK = 'aws.bedrock';\n"],"names":[],"mappings":"AAQO,MAAM,cAAA,GAAiB;AAGvB,MAAM,wBAAA,GAA2B;AAKjC,MAAM,+BAAA,GAAkC;AACxC,MAAM,sCAAA,GAAyC;AAG/C,MAAM,gCAAA,GAAmC;AACzC,MAAM,+BAAA,GAAkC;;;;"}
1
+ {"version":3,"file":"constants.js","sources":["../../../../../src/integrations/tracing-channel/aws-sdk/constants.ts"],"sourcesContent":["/**\n * AWS-specific span constants used by the aws-sdk channel integration that are NOT covered by\n * `@sentry/conventions/attributes` (attribute names that exist there are imported from there\n * directly). These are either Sentry-specific (the span origin), attribute *values* (not keys), or\n * obsolete OTel conventions with no `@sentry/conventions` export.\n */\n\n/** The span origin every aws-sdk channel span carries, mirroring the uniform OTel `auto.otel.aws`. */\nexport const AWS_SDK_ORIGIN = 'auto.aws.orchestrion.aws_sdk';\n\n/** DynamoDB `db.system` value (an attribute value, not a key, so not covered by conventions). */\nexport const DB_SYSTEM_VALUE_DYNAMODB = 'dynamodb';\n\n// Messaging (obsolete OTel convention with no `@sentry/conventions` export, kept for parity)\n// TODO(v11): import from `@sentry/conventions` once a release including it ships (added in\n// getsentry/sentry-conventions#509), and drop this local constant.\nexport const ATTR_MESSAGING_DESTINATION_KIND = 'messaging.destination_kind';\nexport const MESSAGING_DESTINATION_KIND_VALUE_TOPIC = 'topic';\n\n// Bedrock (gen_ai) attribute values (not keys, so not covered by conventions)\nexport const GEN_AI_OPERATION_NAME_VALUE_CHAT = 'chat';\nexport const GEN_AI_SYSTEM_VALUE_AWS_BEDROCK = 'aws.bedrock';\n"],"names":[],"mappings":"AAQO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,cAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAGvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,wBAAA,CAAA,CAAA,CAA2B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAKjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,+BAAA,CAAA,CAAA,CAAkC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,sCAAA,CAAA,CAAA,CAAyC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AAG/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,gCAAA,CAAA,CAAA,CAAmC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM,+BAAA,CAAA,CAAA,CAAkC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../../src/integrations/tracing-channel/aws-sdk/index.ts"],"sourcesContent":["import * as diagnosticsChannel from 'node:diagnostics_channel';\nimport type { IntegrationFn, Span } from '@sentry/core';\nimport {\n debug,\n defineIntegration,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SPAN_KIND,\n startInactiveSpan,\n waitForTracingChannelBinding,\n} from '@sentry/core';\nimport {\n _AWS_REQUEST_ID as AWS_REQUEST_ID,\n AWS_REQUEST_EXTENDED_ID,\n CLOUD_REGION,\n HTTP_STATUS_CODE,\n} from '@sentry/conventions/attributes';\nimport { DEBUG_BUILD } from '../../../debug-build';\nimport { CHANNELS } from '../../../orchestrion/channels';\nimport type { TracingChannelLifeCycleOptions } from '../../../tracing-channel';\nimport { bindTracingChannelToSpan } from '../../../tracing-channel';\nimport { AWS_SDK_ORIGIN } from './constants';\nimport { ServicesExtensions } from './services';\nimport type { NormalizedRequest, NormalizedResponse, RequestMetadata } from './types';\nimport { extractAttributesFromNormalizedRequest, normalizeV3Request, removeSuffixFromStringIfExists } from './utils';\n\n// Same name as the OTel `Aws` integration by design, so enabling injection swaps this in for it.\nconst INTEGRATION_NAME = 'Aws' as const;\n\n// The context orchestrion's transform attaches to the channel: `arguments` is the live args of the\n// wrapped `Client.prototype.send` call (`[command, ...]`), `self` the client, `result`/`error` the\n// settled value. The `_sentry*` fields are stashed by us across the call's lifecycle.\ninterface AwsSendChannelContext {\n arguments: unknown[];\n self?: { config?: AwsClientConfig; constructor?: { name?: string } };\n result?: unknown;\n error?: unknown;\n _sentryNormalizedRequest?: NormalizedRequest;\n _sentryRequestMetadata?: RequestMetadata;\n _sentryRegion?: { settled: boolean; promise: Promise<void> };\n}\n\ninterface AwsClientConfig {\n serviceId?: string;\n region?: () => string | Promise<string> | undefined;\n}\n\ninterface AwsV3Command {\n input?: Record<string, unknown>;\n constructor?: { name?: string };\n}\n\n/** Runs a span-building callback so a throw inside it can never break the user's aws-sdk call. */\nfunction safe<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch (error) {\n DEBUG_BUILD && debug.warn('[orchestrion:aws-sdk] error building span', error);\n return undefined;\n }\n}\n\n// `metadata` is smithy's `ResponseMetadata`, read off the untyped channel result/error (`any` for the\n// same reason as `CommandInput`, see types.ts).\nfunction setMetadataAttributes(span: Span, metadata: Record<string, any> | undefined): void {\n if (!metadata) {\n return;\n }\n if (metadata.requestId) {\n // oxlint-disable-next-line typescript/no-deprecated\n span.setAttribute(AWS_REQUEST_ID, metadata.requestId);\n }\n if (metadata.httpStatusCode) {\n // oxlint-disable-next-line typescript/no-deprecated\n span.setAttribute(HTTP_STATUS_CODE, metadata.httpStatusCode);\n }\n if (metadata.extendedRequestId) {\n // oxlint-disable-next-line typescript/no-deprecated\n span.setAttribute(AWS_REQUEST_EXTENDED_ID, metadata.extendedRequestId);\n }\n}\n\nconst _awsChannelIntegration = (() => {\n const servicesExtensions = new ServicesExtensions();\n\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n // `tracingChannel` is unavailable before Node 18.19 so do nothing in that case.\n if (!diagnosticsChannel.tracingChannel) {\n return;\n }\n\n const getSpan = (data: AwsSendChannelContext): Span | undefined =>\n safe(() => {\n const command = data.arguments[0] as AwsV3Command | undefined;\n const commandName = command?.constructor?.name;\n if (!command || !commandName) {\n // Not a recognizable v3 command call; leave the active context untouched.\n return undefined;\n }\n\n const clientConfig = data.self?.config;\n const serviceName =\n clientConfig?.serviceId ??\n // `clientName` isn't available at the `send` boundary; fall back to the client's\n // constructor name (e.g. `S3Client` -> `S3`). `serviceId` is set for all AWS clients.\n removeSuffixFromStringIfExists(data.self?.constructor?.name || 'AWS', 'Client');\n\n // Commands with all-optional members can be constructed without an input (`new\n // ListBucketsCommand()`); the OTel path traces those too, so default rather than bail.\n // The default is assigned back onto the command (not kept detached) because service hooks\n // mutate `commandInput` (trace-propagation headers, `MessageAttributeNames`) and those\n // writes must reach the serialized request. Current smithy clients already default `input`\n // to `{}` in the command constructor; this only affects older clients in our range.\n if (!command.input) {\n command.input = {};\n }\n const normalizedRequest = normalizeV3Request(serviceName, commandName, command.input, undefined);\n const requestMetadata = servicesExtensions.requestPreSpanHook(normalizedRequest);\n\n const span = startInactiveSpan({\n name: requestMetadata.spanName ?? `${normalizedRequest.serviceName}.${normalizedRequest.commandName}`,\n kind: requestMetadata.spanKind ?? SPAN_KIND.CLIENT,\n // `rpc` matches what the exporter infers from `rpc.service` for the OTel aws-sdk spans;\n // service extensions override it where inference yields a different op (DynamoDB: `db`).\n op: requestMetadata.spanOp || 'rpc',\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: AWS_SDK_ORIGIN,\n ...extractAttributesFromNormalizedRequest(normalizedRequest),\n ...requestMetadata.spanAttributes,\n },\n });\n\n data._sentryNormalizedRequest = normalizedRequest;\n data._sentryRequestMetadata = requestMetadata;\n\n // `region` resolves asynchronously while `send` proceeds (a channel subscriber cannot delay\n // the traced call the way the OTel middleware does). Backfill it onto the span and the\n // normalized request once available; `deferSpanEnd` holds the span open until this settles\n // so `cloud.region` cannot be lost when `send` settles first (e.g. an early failure).\n //\n // The provider call is guarded separately: the span is already started, so a synchronous\n // throw bubbling into the enclosing `safe` would discard it without ending it (a leaked\n // open span).\n let regionResult: string | Promise<string> | undefined;\n try {\n regionResult = clientConfig?.region?.();\n } catch {\n // Nothing to do; continue without a region.\n }\n // The `.finally` self-reference is safe: the callback only runs after initialization.\n const regionHolder: { settled: boolean; promise: Promise<void> } = {\n settled: false,\n promise: Promise.resolve(regionResult)\n .then(region => {\n if (region) {\n normalizedRequest.region = region;\n span.setAttribute(CLOUD_REGION, region);\n }\n })\n .catch(() => {\n // Nothing to do; continue without a region.\n })\n .finally(() => {\n regionHolder.settled = true;\n }),\n };\n data._sentryRegion = regionHolder;\n\n // Inject trace-propagation headers into outgoing messages (SQS/SNS/Lambda). Runs before\n // `send` proceeds, so the mutated `commandInput` is used to build the request.\n safe(() => servicesExtensions.requestPostSpanHook(normalizedRequest, span));\n\n return span;\n });\n\n const opts: TracingChannelLifeCycleOptions<AwsSendChannelContext> = {\n deferSpanEnd({ span, data, end }) {\n const normalizedRequest = data._sentryNormalizedRequest;\n const requestMetadata = data._sentryRequestMetadata;\n if (!normalizedRequest) {\n return false;\n }\n\n const failed = 'error' in data;\n\n // The channel `result`/`error` are untyped; the `$metadata` casts below name smithy's\n // `ResponseMetadata` shape (`any`-valued, see `setMetadataAttributes`).\n safe(() => {\n if (failed) {\n const err = data.error as\n | { $metadata?: Record<string, any>; RequestId?: string; extendedRequestId?: string }\n | undefined;\n const errMetadata = err?.$metadata;\n // Like the OTel path, read RequestId/extendedRequestId off the error itself, with\n // `$metadata` (which smithy service errors also carry) as the fallback. A spread won't\n // do: `$metadata` includes these keys with `undefined` values, clobbering the fallback.\n setMetadataAttributes(span, {\n requestId: err?.RequestId ?? errMetadata?.requestId,\n httpStatusCode: errMetadata?.httpStatusCode,\n extendedRequestId: err?.extendedRequestId ?? errMetadata?.extendedRequestId,\n });\n return;\n }\n\n const output = data.result as { $metadata?: Record<string, any> } | undefined;\n setMetadataAttributes(span, output?.$metadata);\n\n const normalizedResponse: NormalizedResponse = {\n data: output,\n request: normalizedRequest,\n requestId: output?.$metadata?.requestId,\n };\n servicesExtensions.responseHook(normalizedResponse, span);\n });\n\n // Streaming responses end the span when their wrapped stream is consumed (see\n // bedrock-runtime); the helper must not end it on `send` settling. Errors always end here.\n if (requestMetadata?.isStream && !failed) {\n return true;\n }\n\n // Normally the region settles long before `send` does (the SDK awaits it internally to\n // build the endpoint), but when `send` settles first (e.g. an early failure) hold the span\n // open until the region backfill lands. The error status was already applied by the\n // helper's `error` subscriber, so a plain `end()` suffices.\n const region = data._sentryRegion;\n if (region && !region.settled) {\n void region.promise.then(() => end());\n return true;\n }\n\n return false;\n },\n };\n\n // The AWS SDK's `Client.prototype.send` lives in different smithy packages across versions; the\n // transform injects one channel per package. Only the package hosting the app's client fires, so\n // subscribing to all of them is safe and never double-instruments a single call.\n const awsSendChannels = [\n CHANNELS.AWS_SMITHY_CORE_SEND,\n CHANNELS.AWS_SMITHY_CLIENT_SEND,\n CHANNELS.AWS_SDK_SMITHY_CLIENT_SEND,\n ] as const;\n\n DEBUG_BUILD && debug.log(`[orchestrion:aws-sdk] subscribing to channels \"${awsSendChannels.join('\", \"')}\"`);\n\n waitForTracingChannelBinding(() => {\n for (const channelName of awsSendChannels) {\n bindTracingChannelToSpan(\n diagnosticsChannel.tracingChannel<AwsSendChannelContext>(channelName),\n getSpan,\n opts,\n );\n }\n });\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * EXPERIMENTAL — orchestrion-driven aws-sdk (v3) integration.\n *\n * Subscribes to the `orchestrion:@smithy/smithy-client:send` (and equivalent) diagnostics_channel\n * the orchestrion code transform injects into the AWS SDK's smithy `Client.prototype.send`, emitting\n * spans identical to the OTel `@opentelemetry/instrumentation-aws-sdk` integration (with a distinct\n * `auto.aws.orchestrion.aws_sdk` origin). Requires the orchestrion runtime hook or bundler plugin —\n * wire it up via `experimentalUseDiagnosticsChannelInjection()`.\n *\n * @experimental\n */\nexport const awsChannelIntegration = defineIntegration(_awsChannelIntegration);\n"],"names":["AWS_REQUEST_ID"],"mappings":";;;;;;;;;;AA0BA,MAAM,gBAAA,GAAmB,KAAA;AA0BzB,SAAS,KAAQ,EAAA,EAA4B;AAC3C,EAAA,IAAI;AACF,IAAA,OAAO,EAAA,EAAG;AAAA,EACZ,SAAS,KAAA,EAAO;AACd,IAAA,WAAA,IAAe,KAAA,CAAM,IAAA,CAAK,2CAAA,EAA6C,KAAK,CAAA;AAC5E,IAAA,OAAO,MAAA;AAAA,EACT;AACF;AAIA,SAAS,qBAAA,CAAsB,MAAY,QAAA,EAAiD;AAC1F,EAAA,IAAI,CAAC,QAAA,EAAU;AACb,IAAA;AAAA,EACF;AACA,EAAA,IAAI,SAAS,SAAA,EAAW;AAEtB,IAAA,IAAA,CAAK,YAAA,CAAaA,eAAA,EAAgB,QAAA,CAAS,SAAS,CAAA;AAAA,EACtD;AACA,EAAA,IAAI,SAAS,cAAA,EAAgB;AAE3B,IAAA,IAAA,CAAK,YAAA,CAAa,gBAAA,EAAkB,QAAA,CAAS,cAAc,CAAA;AAAA,EAC7D;AACA,EAAA,IAAI,SAAS,iBAAA,EAAmB;AAE9B,IAAA,IAAA,CAAK,YAAA,CAAa,uBAAA,EAAyB,QAAA,CAAS,iBAAiB,CAAA;AAAA,EACvE;AACF;AAEA,MAAM,0BAA0B,MAAM;AACpC,EAAA,MAAM,kBAAA,GAAqB,IAAI,kBAAA,EAAmB;AAElD,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,gBAAA;AAAA,IACN,SAAA,GAAY;AAEV,MAAA,IAAI,CAAC,mBAAmB,cAAA,EAAgB;AACtC,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,OAAA,GAAU,CAAC,IAAA,KACf,IAAA,CAAK,MAAM;AACT,QAAA,MAAM,OAAA,GAAU,IAAA,CAAK,SAAA,CAAU,CAAC,CAAA;AAChC,QAAA,MAAM,WAAA,GAAc,SAAS,WAAA,EAAa,IAAA;AAC1C,QAAA,IAAI,CAAC,OAAA,IAAW,CAAC,WAAA,EAAa;AAE5B,UAAA,OAAO,KAAA,CAAA;AAAA,QACT;AAEA,QAAA,MAAM,YAAA,GAAe,KAAK,IAAA,EAAM,MAAA;AAChC,QAAA,MAAM,cACJ,YAAA,EAAc,SAAA;AAAA;AAAA,QAGd,+BAA+B,IAAA,CAAK,IAAA,EAAM,WAAA,EAAa,IAAA,IAAQ,OAAO,QAAQ,CAAA;AAQhF,QAAA,IAAI,CAAC,QAAQ,KAAA,EAAO;AAClB,UAAA,OAAA,CAAQ,QAAQ,EAAC;AAAA,QACnB;AACA,QAAA,MAAM,oBAAoB,kBAAA,CAAmB,WAAA,EAAa,WAAA,EAAa,OAAA,CAAQ,OAAO,KAAA,CAAS,CAAA;AAC/F,QAAA,MAAM,eAAA,GAAkB,kBAAA,CAAmB,kBAAA,CAAmB,iBAAiB,CAAA;AAE/E,QAAA,MAAM,OAAO,iBAAA,CAAkB;AAAA,UAC7B,IAAA,EAAM,gBAAgB,QAAA,IAAY,CAAA,EAAG,kBAAkB,WAAW,CAAA,CAAA,EAAI,kBAAkB,WAAW,CAAA,CAAA;AAAA,UACnG,IAAA,EAAM,eAAA,CAAgB,QAAA,IAAY,SAAA,CAAU,MAAA;AAAA;AAAA;AAAA,UAG5C,EAAA,EAAI,gBAAgB,MAAA,IAAU,KAAA;AAAA,UAC9B,UAAA,EAAY;AAAA,YACV,CAAC,gCAAgC,GAAG,cAAA;AAAA,YACpC,GAAG,uCAAuC,iBAAiB,CAAA;AAAA,YAC3D,GAAG,eAAA,CAAgB;AAAA;AACrB,SACD,CAAA;AAED,QAAA,IAAA,CAAK,wBAAA,GAA2B,iBAAA;AAChC,QAAA,IAAA,CAAK,sBAAA,GAAyB,eAAA;AAU9B,QAAA,IAAI,YAAA;AACJ,QAAA,IAAI;AACF,UAAA,YAAA,GAAe,cAAc,MAAA,IAAS;AAAA,QACxC,CAAA,CAAA,MAAQ;AAAA,QAER;AAEA,QAAA,MAAM,YAAA,GAA6D;AAAA,UACjE,OAAA,EAAS,KAAA;AAAA,UACT,SAAS,OAAA,CAAQ,OAAA,CAAQ,YAAY,CAAA,CAClC,KAAK,CAAA,MAAA,KAAU;AACd,YAAA,IAAI,MAAA,EAAQ;AACV,cAAA,iBAAA,CAAkB,MAAA,GAAS,MAAA;AAC3B,cAAA,IAAA,CAAK,YAAA,CAAa,cAAc,MAAM,CAAA;AAAA,YACxC;AAAA,UACF,CAAC,CAAA,CACA,KAAA,CAAM,MAAM;AAAA,UAEb,CAAC,CAAA,CACA,OAAA,CAAQ,MAAM;AACb,YAAA,YAAA,CAAa,OAAA,GAAU,IAAA;AAAA,UACzB,CAAC;AAAA,SACL;AACA,QAAA,IAAA,CAAK,aAAA,GAAgB,YAAA;AAIrB,QAAA,IAAA,CAAK,MAAM,kBAAA,CAAmB,mBAAA,CAAoB,iBAAA,EAAmB,IAAI,CAAC,CAAA;AAE1E,QAAA,OAAO,IAAA;AAAA,MACT,CAAC,CAAA;AAEH,MAAA,MAAM,IAAA,GAA8D;AAAA,QAClE,YAAA,CAAa,EAAE,IAAA,EAAM,IAAA,EAAM,KAAI,EAAG;AAChC,UAAA,MAAM,oBAAoB,IAAA,CAAK,wBAAA;AAC/B,UAAA,MAAM,kBAAkB,IAAA,CAAK,sBAAA;AAC7B,UAAA,IAAI,CAAC,iBAAA,EAAmB;AACtB,YAAA,OAAO,KAAA;AAAA,UACT;AAEA,UAAA,MAAM,SAAS,OAAA,IAAW,IAAA;AAI1B,UAAA,IAAA,CAAK,MAAM;AACT,YAAA,IAAI,MAAA,EAAQ;AACV,cAAA,MAAM,MAAM,IAAA,CAAK,KAAA;AAGjB,cAAA,MAAM,cAAc,GAAA,EAAK,SAAA;AAIzB,cAAA,qBAAA,CAAsB,IAAA,EAAM;AAAA,gBAC1B,SAAA,EAAW,GAAA,EAAK,SAAA,IAAa,WAAA,EAAa,SAAA;AAAA,gBAC1C,gBAAgB,WAAA,EAAa,cAAA;AAAA,gBAC7B,iBAAA,EAAmB,GAAA,EAAK,iBAAA,IAAqB,WAAA,EAAa;AAAA,eAC3D,CAAA;AACD,cAAA;AAAA,YACF;AAEA,YAAA,MAAM,SAAS,IAAA,CAAK,MAAA;AACpB,YAAA,qBAAA,CAAsB,IAAA,EAAM,QAAQ,SAAS,CAAA;AAE7C,YAAA,MAAM,kBAAA,GAAyC;AAAA,cAC7C,IAAA,EAAM,MAAA;AAAA,cACN,OAAA,EAAS,iBAAA;AAAA,cACT,SAAA,EAAW,QAAQ,SAAA,EAAW;AAAA,aAChC;AACA,YAAA,kBAAA,CAAmB,YAAA,CAAa,oBAAoB,IAAI,CAAA;AAAA,UAC1D,CAAC,CAAA;AAID,UAAA,IAAI,eAAA,EAAiB,QAAA,IAAY,CAAC,MAAA,EAAQ;AACxC,YAAA,OAAO,IAAA;AAAA,UACT;AAMA,UAAA,MAAM,SAAS,IAAA,CAAK,aAAA;AACpB,UAAA,IAAI,MAAA,IAAU,CAAC,MAAA,CAAO,OAAA,EAAS;AAC7B,YAAA,KAAK,MAAA,CAAO,OAAA,CAAQ,IAAA,CAAK,MAAM,KAAK,CAAA;AACpC,YAAA,OAAO,IAAA;AAAA,UACT;AAEA,UAAA,OAAO,KAAA;AAAA,QACT;AAAA,OACF;AAKA,MAAA,MAAM,eAAA,GAAkB;AAAA,QACtB,QAAA,CAAS,oBAAA;AAAA,QACT,QAAA,CAAS,sBAAA;AAAA,QACT,QAAA,CAAS;AAAA,OACX;AAEA,MAAA,WAAA,IAAe,MAAM,GAAA,CAAI,CAAA,+CAAA,EAAkD,gBAAgB,IAAA,CAAK,MAAM,CAAC,CAAA,CAAA,CAAG,CAAA;AAE1G,MAAA,4BAAA,CAA6B,MAAM;AACjC,QAAA,KAAA,MAAW,eAAe,eAAA,EAAiB;AACzC,UAAA,wBAAA;AAAA,YACE,kBAAA,CAAmB,eAAsC,WAAW,CAAA;AAAA,YACpE,OAAA;AAAA,YACA;AAAA,WACF;AAAA,QACF;AAAA,MACF,CAAC,CAAA;AAAA,IACH;AAAA,GACF;AACF,CAAA,CAAA;AAaO,MAAM,qBAAA,GAAwB,kBAAkB,sBAAsB;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../../src/integrations/tracing-channel/aws-sdk/index.ts"],"sourcesContent":["import * as diagnosticsChannel from 'node:diagnostics_channel';\nimport type { IntegrationFn, Span } from '@sentry/core';\nimport {\n debug,\n defineIntegration,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SPAN_KIND,\n startInactiveSpan,\n waitForTracingChannelBinding,\n} from '@sentry/core';\nimport {\n _AWS_REQUEST_ID as AWS_REQUEST_ID,\n AWS_REQUEST_EXTENDED_ID,\n CLOUD_REGION,\n HTTP_STATUS_CODE,\n} from '@sentry/conventions/attributes';\nimport { DEBUG_BUILD } from '../../../debug-build';\nimport { CHANNELS } from '../../../orchestrion/channels';\nimport type { TracingChannelLifeCycleOptions } from '../../../tracing-channel';\nimport { bindTracingChannelToSpan } from '../../../tracing-channel';\nimport { AWS_SDK_ORIGIN } from './constants';\nimport { ServicesExtensions } from './services';\nimport type { NormalizedRequest, NormalizedResponse, RequestMetadata } from './types';\nimport { extractAttributesFromNormalizedRequest, normalizeV3Request, removeSuffixFromStringIfExists } from './utils';\n\n// Same name as the OTel `Aws` integration by design, so enabling injection swaps this in for it.\nconst INTEGRATION_NAME = 'Aws' as const;\n\n// The context orchestrion's transform attaches to the channel: `arguments` is the live args of the\n// wrapped `Client.prototype.send` call (`[command, ...]`), `self` the client, `result`/`error` the\n// settled value. The `_sentry*` fields are stashed by us across the call's lifecycle.\ninterface AwsSendChannelContext {\n arguments: unknown[];\n self?: { config?: AwsClientConfig; constructor?: { name?: string } };\n result?: unknown;\n error?: unknown;\n _sentryNormalizedRequest?: NormalizedRequest;\n _sentryRequestMetadata?: RequestMetadata;\n _sentryRegion?: { settled: boolean; promise: Promise<void> };\n}\n\ninterface AwsClientConfig {\n serviceId?: string;\n region?: () => string | Promise<string> | undefined;\n}\n\ninterface AwsV3Command {\n input?: Record<string, unknown>;\n constructor?: { name?: string };\n}\n\n/** Runs a span-building callback so a throw inside it can never break the user's aws-sdk call. */\nfunction safe<T>(fn: () => T): T | undefined {\n try {\n return fn();\n } catch (error) {\n DEBUG_BUILD && debug.warn('[orchestrion:aws-sdk] error building span', error);\n return undefined;\n }\n}\n\n// `metadata` is smithy's `ResponseMetadata`, read off the untyped channel result/error (`any` for the\n// same reason as `CommandInput`, see types.ts).\nfunction setMetadataAttributes(span: Span, metadata: Record<string, any> | undefined): void {\n if (!metadata) {\n return;\n }\n if (metadata.requestId) {\n // oxlint-disable-next-line typescript/no-deprecated\n span.setAttribute(AWS_REQUEST_ID, metadata.requestId);\n }\n if (metadata.httpStatusCode) {\n // oxlint-disable-next-line typescript/no-deprecated\n span.setAttribute(HTTP_STATUS_CODE, metadata.httpStatusCode);\n }\n if (metadata.extendedRequestId) {\n // oxlint-disable-next-line typescript/no-deprecated\n span.setAttribute(AWS_REQUEST_EXTENDED_ID, metadata.extendedRequestId);\n }\n}\n\nconst _awsChannelIntegration = (() => {\n const servicesExtensions = new ServicesExtensions();\n\n return {\n name: INTEGRATION_NAME,\n setupOnce() {\n // `tracingChannel` is unavailable before Node 18.19 so do nothing in that case.\n if (!diagnosticsChannel.tracingChannel) {\n return;\n }\n\n const getSpan = (data: AwsSendChannelContext): Span | undefined =>\n safe(() => {\n const command = data.arguments[0] as AwsV3Command | undefined;\n const commandName = command?.constructor?.name;\n if (!command || !commandName) {\n // Not a recognizable v3 command call; leave the active context untouched.\n return undefined;\n }\n\n const clientConfig = data.self?.config;\n const serviceName =\n clientConfig?.serviceId ??\n // `clientName` isn't available at the `send` boundary; fall back to the client's\n // constructor name (e.g. `S3Client` -> `S3`). `serviceId` is set for all AWS clients.\n removeSuffixFromStringIfExists(data.self?.constructor?.name || 'AWS', 'Client');\n\n // Commands with all-optional members can be constructed without an input (`new\n // ListBucketsCommand()`); the OTel path traces those too, so default rather than bail.\n // The default is assigned back onto the command (not kept detached) because service hooks\n // mutate `commandInput` (trace-propagation headers, `MessageAttributeNames`) and those\n // writes must reach the serialized request. Current smithy clients already default `input`\n // to `{}` in the command constructor; this only affects older clients in our range.\n if (!command.input) {\n command.input = {};\n }\n const normalizedRequest = normalizeV3Request(serviceName, commandName, command.input, undefined);\n const requestMetadata = servicesExtensions.requestPreSpanHook(normalizedRequest);\n\n const span = startInactiveSpan({\n name: requestMetadata.spanName ?? `${normalizedRequest.serviceName}.${normalizedRequest.commandName}`,\n kind: requestMetadata.spanKind ?? SPAN_KIND.CLIENT,\n // `rpc` matches what the exporter infers from `rpc.service` for the OTel aws-sdk spans;\n // service extensions override it where inference yields a different op (DynamoDB: `db`).\n op: requestMetadata.spanOp || 'rpc',\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: AWS_SDK_ORIGIN,\n ...extractAttributesFromNormalizedRequest(normalizedRequest),\n ...requestMetadata.spanAttributes,\n },\n });\n\n data._sentryNormalizedRequest = normalizedRequest;\n data._sentryRequestMetadata = requestMetadata;\n\n // `region` resolves asynchronously while `send` proceeds (a channel subscriber cannot delay\n // the traced call the way the OTel middleware does). Backfill it onto the span and the\n // normalized request once available; `deferSpanEnd` holds the span open until this settles\n // so `cloud.region` cannot be lost when `send` settles first (e.g. an early failure).\n //\n // The provider call is guarded separately: the span is already started, so a synchronous\n // throw bubbling into the enclosing `safe` would discard it without ending it (a leaked\n // open span).\n let regionResult: string | Promise<string> | undefined;\n try {\n regionResult = clientConfig?.region?.();\n } catch {\n // Nothing to do; continue without a region.\n }\n // The `.finally` self-reference is safe: the callback only runs after initialization.\n const regionHolder: { settled: boolean; promise: Promise<void> } = {\n settled: false,\n promise: Promise.resolve(regionResult)\n .then(region => {\n if (region) {\n normalizedRequest.region = region;\n span.setAttribute(CLOUD_REGION, region);\n }\n })\n .catch(() => {\n // Nothing to do; continue without a region.\n })\n .finally(() => {\n regionHolder.settled = true;\n }),\n };\n data._sentryRegion = regionHolder;\n\n // Inject trace-propagation headers into outgoing messages (SQS/SNS/Lambda). Runs before\n // `send` proceeds, so the mutated `commandInput` is used to build the request.\n safe(() => servicesExtensions.requestPostSpanHook(normalizedRequest, span));\n\n return span;\n });\n\n const opts: TracingChannelLifeCycleOptions<AwsSendChannelContext> = {\n deferSpanEnd({ span, data, end }) {\n const normalizedRequest = data._sentryNormalizedRequest;\n const requestMetadata = data._sentryRequestMetadata;\n if (!normalizedRequest) {\n return false;\n }\n\n const failed = 'error' in data;\n\n // The channel `result`/`error` are untyped; the `$metadata` casts below name smithy's\n // `ResponseMetadata` shape (`any`-valued, see `setMetadataAttributes`).\n safe(() => {\n if (failed) {\n const err = data.error as\n | { $metadata?: Record<string, any>; RequestId?: string; extendedRequestId?: string }\n | undefined;\n const errMetadata = err?.$metadata;\n // Like the OTel path, read RequestId/extendedRequestId off the error itself, with\n // `$metadata` (which smithy service errors also carry) as the fallback. A spread won't\n // do: `$metadata` includes these keys with `undefined` values, clobbering the fallback.\n setMetadataAttributes(span, {\n requestId: err?.RequestId ?? errMetadata?.requestId,\n httpStatusCode: errMetadata?.httpStatusCode,\n extendedRequestId: err?.extendedRequestId ?? errMetadata?.extendedRequestId,\n });\n return;\n }\n\n const output = data.result as { $metadata?: Record<string, any> } | undefined;\n setMetadataAttributes(span, output?.$metadata);\n\n const normalizedResponse: NormalizedResponse = {\n data: output,\n request: normalizedRequest,\n requestId: output?.$metadata?.requestId,\n };\n servicesExtensions.responseHook(normalizedResponse, span);\n });\n\n // Streaming responses end the span when their wrapped stream is consumed (see\n // bedrock-runtime); the helper must not end it on `send` settling. Errors always end here.\n if (requestMetadata?.isStream && !failed) {\n return true;\n }\n\n // Normally the region settles long before `send` does (the SDK awaits it internally to\n // build the endpoint), but when `send` settles first (e.g. an early failure) hold the span\n // open until the region backfill lands. The error status was already applied by the\n // helper's `error` subscriber, so a plain `end()` suffices.\n const region = data._sentryRegion;\n if (region && !region.settled) {\n void region.promise.then(() => end());\n return true;\n }\n\n return false;\n },\n };\n\n // The AWS SDK's `Client.prototype.send` lives in different smithy packages across versions; the\n // transform injects one channel per package. Only the package hosting the app's client fires, so\n // subscribing to all of them is safe and never double-instruments a single call.\n const awsSendChannels = [\n CHANNELS.AWS_SMITHY_CORE_SEND,\n CHANNELS.AWS_SMITHY_CLIENT_SEND,\n CHANNELS.AWS_SDK_SMITHY_CLIENT_SEND,\n ] as const;\n\n DEBUG_BUILD && debug.log(`[orchestrion:aws-sdk] subscribing to channels \"${awsSendChannels.join('\", \"')}\"`);\n\n waitForTracingChannelBinding(() => {\n for (const channelName of awsSendChannels) {\n bindTracingChannelToSpan(\n diagnosticsChannel.tracingChannel<AwsSendChannelContext>(channelName),\n getSpan,\n opts,\n );\n }\n });\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * EXPERIMENTAL — orchestrion-driven aws-sdk (v3) integration.\n *\n * Subscribes to the `orchestrion:@smithy/smithy-client:send` (and equivalent) diagnostics_channel\n * the orchestrion code transform injects into the AWS SDK's smithy `Client.prototype.send`, emitting\n * spans identical to the OTel `@opentelemetry/instrumentation-aws-sdk` integration (with a distinct\n * `auto.aws.orchestrion.aws_sdk` origin). Requires the orchestrion runtime hook or bundler plugin —\n * wire it up via `experimentalUseDiagnosticsChannelInjection()`.\n *\n * @experimental\n */\nexport const awsChannelIntegration = defineIntegration(_awsChannelIntegration);\n"],"names":["AWS_REQUEST_ID"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MessageAttributes.js","sources":["../../../../../../src/integrations/tracing-channel/aws-sdk/services/MessageAttributes.ts"],"sourcesContent":["import type { SerializedTraceData } from '@sentry/core';\nimport { debug, uniq } from '@sentry/core';\nimport { DEBUG_BUILD } from '../../../../debug-build';\nimport type { SNS, SQS } from '../aws-sdk.types';\n\n// https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-quotas.html\nexport const MAX_MESSAGE_ATTRIBUTES = 10;\n\n// Sentry trace-propagation headers written into / read from AWS message attributes.\nconst SENTRY_TRACE_HEADER = 'sentry-trace';\nconst BAGGAGE_HEADER = 'baggage';\nconst PROPAGATION_FIELDS = [SENTRY_TRACE_HEADER, BAGGAGE_HEADER];\n\nexport interface AwsSdkContextObject {\n [key: string]: {\n StringValue?: string;\n Value?: string;\n };\n}\n\n/**\n * Inject trace-propagation headers (from `getTraceData({ span })`) into an SQS/SNS message-attribute\n * map, so the consumer can continue the trace. Respects the SQS 10-attribute quota. Mirrors the OTel\n * integration's `injectPropagationContext`, but writes Sentry's `sentry-trace`/`baggage` instead of\n * W3C headers. Callers pass the precomputed headers so batch sends serialize them only once.\n */\nexport function injectPropagationContext(\n attributesMap: SQS.MessageBodyAttributeMap | SNS.MessageAttributeMap | undefined,\n traceData: SerializedTraceData,\n): SQS.MessageBodyAttributeMap | SNS.MessageAttributeMap {\n const attributes = attributesMap ?? {};\n const headerKeys = Object.keys(traceData) as (keyof SerializedTraceData)[];\n\n if (Object.keys(attributes).length + headerKeys.length <= MAX_MESSAGE_ATTRIBUTES) {\n for (const key of headerKeys) {\n const value = traceData[key];\n if (value) {\n // Index-assigning into the SQS/SNS map union needs one concrete map type; the written value\n // shape is valid for both.\n (attributes as SQS.MessageBodyAttributeMap)[key] = { DataType: 'String', StringValue: value };\n }\n }\n } else {\n DEBUG_BUILD &&\n debug.warn(\n '[orchestrion:aws-sdk] cannot set trace propagation on SQS/SNS message due to maximum amount of MessageAttributes',\n );\n }\n return attributes;\n}\n\n/** Read the propagation headers back off a received SQS message, if present. */\nexport function extractPropagationHeaders(\n message: SQS.Message,\n): { sentryTrace?: string; baggage?: string } | undefined {\n const carrier = (message.MessageAttributes ?? {}) as AwsSdkContextObject;\n const sentryTrace = carrier[SENTRY_TRACE_HEADER]?.StringValue ?? carrier[SENTRY_TRACE_HEADER]?.Value;\n if (!sentryTrace) {\n return undefined;\n }\n return {\n sentryTrace,\n baggage: carrier[BAGGAGE_HEADER]?.StringValue ?? carrier[BAGGAGE_HEADER]?.Value,\n };\n}\n\nexport function addPropagationFieldsToAttributeNames(messageAttributeNames: string[] = []): string[] {\n return uniq([...messageAttributeNames, ...PROPAGATION_FIELDS]);\n}\n"],"names":[],"mappings":";;;AAMO,MAAM,sBAAA,GAAyB;AAGtC,MAAM,mBAAA,GAAsB,cAAA;AAC5B,MAAM,cAAA,GAAiB,SAAA;AACvB,MAAM,kBAAA,GAAqB,CAAC,mBAAA,EAAqB,cAAc,CAAA;AAexD,SAAS,wBAAA,CACd,eACA,SAAA,EACuD;AACvD,EAAA,MAAM,UAAA,GAAa,iBAAiB,EAAC;AACrC,EAAA,MAAM,UAAA,GAAa,MAAA,CAAO,IAAA,CAAK,SAAS,CAAA;AAExC,EAAA,IAAI,OAAO,IAAA,CAAK,UAAU,EAAE,MAAA,GAAS,UAAA,CAAW,UAAU,sBAAA,EAAwB;AAChF,IAAA,KAAA,MAAW,OAAO,UAAA,EAAY;AAC5B,MAAA,MAAM,KAAA,GAAQ,UAAU,GAAG,CAAA;AAC3B,MAAA,IAAI,KAAA,EAAO;AAGT,QAAC,WAA2C,GAAG,CAAA,GAAI,EAAE,QAAA,EAAU,QAAA,EAAU,aAAa,KAAA,EAAM;AAAA,MAC9F;AAAA,IACF;AAAA,EACF,CAAA,MAAO;AACL,IAAA,WAAA,IACE,KAAA,CAAM,IAAA;AAAA,MACJ;AAAA,KACF;AAAA,EACJ;AACA,EAAA,OAAO,UAAA;AACT;AAGO,SAAS,0BACd,OAAA,EACwD;AACxD,EAAA,MAAM,OAAA,GAAW,OAAA,CAAQ,iBAAA,IAAqB,EAAC;AAC/C,EAAA,MAAM,cAAc,OAAA,CAAQ,mBAAmB,GAAG,WAAA,IAAe,OAAA,CAAQ,mBAAmB,CAAA,EAAG,KAAA;AAC/F,EAAA,IAAI,CAAC,WAAA,EAAa;AAChB,IAAA,OAAO,MAAA;AAAA,EACT;AACA,EAAA,OAAO;AAAA,IACL,WAAA;AAAA,IACA,SAAS,OAAA,CAAQ,cAAc,GAAG,WAAA,IAAe,OAAA,CAAQ,cAAc,CAAA,EAAG;AAAA,GAC5E;AACF;AAEO,SAAS,oCAAA,CAAqC,qBAAA,GAAkC,EAAC,EAAa;AACnG,EAAA,OAAO,KAAK,CAAC,GAAG,qBAAA,EAAuB,GAAG,kBAAkB,CAAC,CAAA;AAC/D;;;;"}
1
+ {"version":3,"file":"MessageAttributes.js","sources":["../../../../../../src/integrations/tracing-channel/aws-sdk/services/MessageAttributes.ts"],"sourcesContent":["import type { SerializedTraceData } from '@sentry/core';\nimport { debug, uniq } from '@sentry/core';\nimport { DEBUG_BUILD } from '../../../../debug-build';\nimport type { SNS, SQS } from '../aws-sdk.types';\n\n// https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-quotas.html\nexport const MAX_MESSAGE_ATTRIBUTES = 10;\n\n// Sentry trace-propagation headers written into / read from AWS message attributes.\nconst SENTRY_TRACE_HEADER = 'sentry-trace';\nconst BAGGAGE_HEADER = 'baggage';\nconst PROPAGATION_FIELDS = [SENTRY_TRACE_HEADER, BAGGAGE_HEADER];\n\nexport interface AwsSdkContextObject {\n [key: string]: {\n StringValue?: string;\n Value?: string;\n };\n}\n\n/**\n * Inject trace-propagation headers (from `getTraceData({ span })`) into an SQS/SNS message-attribute\n * map, so the consumer can continue the trace. Respects the SQS 10-attribute quota. Mirrors the OTel\n * integration's `injectPropagationContext`, but writes Sentry's `sentry-trace`/`baggage` instead of\n * W3C headers. Callers pass the precomputed headers so batch sends serialize them only once.\n */\nexport function injectPropagationContext(\n attributesMap: SQS.MessageBodyAttributeMap | SNS.MessageAttributeMap | undefined,\n traceData: SerializedTraceData,\n): SQS.MessageBodyAttributeMap | SNS.MessageAttributeMap {\n const attributes = attributesMap ?? {};\n const headerKeys = Object.keys(traceData) as (keyof SerializedTraceData)[];\n\n if (Object.keys(attributes).length + headerKeys.length <= MAX_MESSAGE_ATTRIBUTES) {\n for (const key of headerKeys) {\n const value = traceData[key];\n if (value) {\n // Index-assigning into the SQS/SNS map union needs one concrete map type; the written value\n // shape is valid for both.\n (attributes as SQS.MessageBodyAttributeMap)[key] = { DataType: 'String', StringValue: value };\n }\n }\n } else {\n DEBUG_BUILD &&\n debug.warn(\n '[orchestrion:aws-sdk] cannot set trace propagation on SQS/SNS message due to maximum amount of MessageAttributes',\n );\n }\n return attributes;\n}\n\n/** Read the propagation headers back off a received SQS message, if present. */\nexport function extractPropagationHeaders(\n message: SQS.Message,\n): { sentryTrace?: string; baggage?: string } | undefined {\n const carrier = (message.MessageAttributes ?? {}) as AwsSdkContextObject;\n const sentryTrace = carrier[SENTRY_TRACE_HEADER]?.StringValue ?? carrier[SENTRY_TRACE_HEADER]?.Value;\n if (!sentryTrace) {\n return undefined;\n }\n return {\n sentryTrace,\n baggage: carrier[BAGGAGE_HEADER]?.StringValue ?? carrier[BAGGAGE_HEADER]?.Value,\n };\n}\n\nexport function addPropagationFieldsToAttributeNames(messageAttributeNames: string[] = []): string[] {\n return uniq([...messageAttributeNames, ...PROPAGATION_FIELDS]);\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ServicesExtensions.js","sources":["../../../../../../src/integrations/tracing-channel/aws-sdk/services/ServicesExtensions.ts"],"sourcesContent":["import type { Span } from '@sentry/core';\nimport type { NormalizedRequest, NormalizedResponse, RequestMetadata } from '../types';\nimport { BedrockRuntimeServiceExtension } from './bedrock-runtime';\nimport { DynamodbServiceExtension } from './dynamodb';\nimport { KinesisServiceExtension } from './kinesis';\nimport { LambdaServiceExtension } from './lambda';\nimport { S3ServiceExtension } from './s3';\nimport { SecretsManagerServiceExtension } from './secretsmanager';\nimport type { ServiceExtension } from './ServiceExtension';\nimport { SnsServiceExtension } from './sns';\nimport { SqsServiceExtension } from './sqs';\nimport { StepFunctionsServiceExtension } from './stepfunctions';\n\nexport class ServicesExtensions implements ServiceExtension {\n // Per-service extensions, keyed by the client's `serviceId` (e.g. `'S3'`). Services without a\n // registered extension still get the base rpc span from the subscriber.\n private _services: Map<string, ServiceExtension> = new Map<string, ServiceExtension>([\n ['SecretsManager', new SecretsManagerServiceExtension()],\n ['SFN', new StepFunctionsServiceExtension()],\n ['SQS', new SqsServiceExtension()],\n ['SNS', new SnsServiceExtension()],\n ['DynamoDB', new DynamodbServiceExtension()],\n ['Lambda', new LambdaServiceExtension()],\n ['S3', new S3ServiceExtension()],\n ['Kinesis', new KinesisServiceExtension()],\n ['BedrockRuntime', new BedrockRuntimeServiceExtension()],\n ]);\n\n public requestPreSpanHook(request: NormalizedRequest): RequestMetadata {\n const serviceExtension = this._services.get(request.serviceName);\n if (!serviceExtension) {\n return {};\n }\n return serviceExtension.requestPreSpanHook(request);\n }\n\n public requestPostSpanHook(request: NormalizedRequest, span: Span): void {\n const serviceExtension = this._services.get(request.serviceName);\n serviceExtension?.requestPostSpanHook?.(request, span);\n }\n\n public responseHook(response: NormalizedResponse, span: Span): void {\n const serviceExtension = this._services.get(response.request.serviceName);\n serviceExtension?.responseHook?.(response, span);\n }\n}\n"],"names":[],"mappings":";;;;;;;;;;AAaO,MAAM,kBAAA,CAA+C;AAAA,EAArD,WAAA,GAAA;AAGL;AAAA;AAAA,IAAA,IAAA,CAAQ,SAAA,uBAA+C,GAAA,CAA8B;AAAA,MACnF,CAAC,gBAAA,EAAkB,IAAI,8BAAA,EAAgC,CAAA;AAAA,MACvD,CAAC,KAAA,EAAO,IAAI,6BAAA,EAA+B,CAAA;AAAA,MAC3C,CAAC,KAAA,EAAO,IAAI,mBAAA,EAAqB,CAAA;AAAA,MACjC,CAAC,KAAA,EAAO,IAAI,mBAAA,EAAqB,CAAA;AAAA,MACjC,CAAC,UAAA,EAAY,IAAI,wBAAA,EAA0B,CAAA;AAAA,MAC3C,CAAC,QAAA,EAAU,IAAI,sBAAA,EAAwB,CAAA;AAAA,MACvC,CAAC,IAAA,EAAM,IAAI,kBAAA,EAAoB,CAAA;AAAA,MAC/B,CAAC,SAAA,EAAW,IAAI,uBAAA,EAAyB,CAAA;AAAA,MACzC,CAAC,gBAAA,EAAkB,IAAI,8BAAA,EAAgC;AAAA,KACxD,CAAA;AAAA,EAAA;AAAA,EAEM,mBAAmB,OAAA,EAA6C;AACrE,IAAA,MAAM,gBAAA,GAAmB,IAAA,CAAK,SAAA,CAAU,GAAA,CAAI,QAAQ,WAAW,CAAA;AAC/D,IAAA,IAAI,CAAC,gBAAA,EAAkB;AACrB,MAAA,OAAO,EAAC;AAAA,IACV;AACA,IAAA,OAAO,gBAAA,CAAiB,mBAAmB,OAAO,CAAA;AAAA,EACpD;AAAA,EAEO,mBAAA,CAAoB,SAA4B,IAAA,EAAkB;AACvE,IAAA,MAAM,gBAAA,GAAmB,IAAA,CAAK,SAAA,CAAU,GAAA,CAAI,QAAQ,WAAW,CAAA;AAC/D,IAAA,gBAAA,EAAkB,mBAAA,GAAsB,SAAS,IAAI,CAAA;AAAA,EACvD;AAAA,EAEO,YAAA,CAAa,UAA8B,IAAA,EAAkB;AAClE,IAAA,MAAM,mBAAmB,IAAA,CAAK,SAAA,CAAU,GAAA,CAAI,QAAA,CAAS,QAAQ,WAAW,CAAA;AACxE,IAAA,gBAAA,EAAkB,YAAA,GAAe,UAAU,IAAI,CAAA;AAAA,EACjD;AACF;;;;"}
1
+ {"version":3,"file":"ServicesExtensions.js","sources":["../../../../../../src/integrations/tracing-channel/aws-sdk/services/ServicesExtensions.ts"],"sourcesContent":["import type { Span } from '@sentry/core';\nimport type { NormalizedRequest, NormalizedResponse, RequestMetadata } from '../types';\nimport { BedrockRuntimeServiceExtension } from './bedrock-runtime';\nimport { DynamodbServiceExtension } from './dynamodb';\nimport { KinesisServiceExtension } from './kinesis';\nimport { LambdaServiceExtension } from './lambda';\nimport { S3ServiceExtension } from './s3';\nimport { SecretsManagerServiceExtension } from './secretsmanager';\nimport type { ServiceExtension } from './ServiceExtension';\nimport { SnsServiceExtension } from './sns';\nimport { SqsServiceExtension } from './sqs';\nimport { StepFunctionsServiceExtension } from './stepfunctions';\n\nexport class ServicesExtensions implements ServiceExtension {\n // Per-service extensions, keyed by the client's `serviceId` (e.g. `'S3'`). Services without a\n // registered extension still get the base rpc span from the subscriber.\n private _services: Map<string, ServiceExtension> = new Map<string, ServiceExtension>([\n ['SecretsManager', new SecretsManagerServiceExtension()],\n ['SFN', new StepFunctionsServiceExtension()],\n ['SQS', new SqsServiceExtension()],\n ['SNS', new SnsServiceExtension()],\n ['DynamoDB', new DynamodbServiceExtension()],\n ['Lambda', new LambdaServiceExtension()],\n ['S3', new S3ServiceExtension()],\n ['Kinesis', new KinesisServiceExtension()],\n ['BedrockRuntime', new BedrockRuntimeServiceExtension()],\n ]);\n\n public requestPreSpanHook(request: NormalizedRequest): RequestMetadata {\n const serviceExtension = this._services.get(request.serviceName);\n if (!serviceExtension) {\n return {};\n }\n return serviceExtension.requestPreSpanHook(request);\n }\n\n public requestPostSpanHook(request: NormalizedRequest, span: Span): void {\n const serviceExtension = this._services.get(request.serviceName);\n serviceExtension?.requestPostSpanHook?.(request, span);\n }\n\n public responseHook(response: NormalizedResponse, span: Span): void {\n const serviceExtension = this._services.get(response.request.serviceName);\n serviceExtension?.responseHook?.(response, span);\n }\n}\n"],"names":[],"mappings":"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"}