@sentry/cloudflare 10.70.0 → 11.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (756) hide show
  1. package/README.md +3 -7
  2. package/build/cjs/{sdk.js → dev/baseSdk.js} +27 -17
  3. package/build/cjs/dev/baseSdk.js.map +1 -0
  4. package/build/cjs/dev/client.js.map +1 -0
  5. package/build/cjs/dev/debug-build.js.map +1 -0
  6. package/build/cjs/dev/defineCloudflareOptions.js.map +1 -0
  7. package/build/cjs/{durableobject.js → dev/durableobject.js} +21 -20
  8. package/build/cjs/dev/durableobject.js.map +1 -0
  9. package/build/cjs/dev/flush.js.map +1 -0
  10. package/build/cjs/{index.js → dev/index.js} +16 -17
  11. package/build/cjs/{index.js.map → dev/index.js.map} +1 -1
  12. package/build/cjs/dev/instrument.js.map +1 -0
  13. package/build/cjs/dev/instrumentations/agents/index.js.map +1 -0
  14. package/build/cjs/dev/instrumentations/agents/instrumentAgentCallableRpc.js.map +1 -0
  15. package/build/cjs/dev/instrumentations/agents/instrumentAgentRequestConversation.js.map +1 -0
  16. package/build/cjs/dev/instrumentations/agents/instrumentChatAgentConversation.js.map +1 -0
  17. package/build/cjs/{instrumentations → dev/instrumentations}/agents/types.js +4 -4
  18. package/build/cjs/dev/instrumentations/agents/types.js.map +1 -0
  19. package/build/cjs/dev/instrumentations/instrumentDurableObjectNamespace.js.map +1 -0
  20. package/build/cjs/dev/instrumentations/instrumentDurableObjectStorage.js.map +1 -0
  21. package/build/cjs/dev/instrumentations/instrumentDurableObjectSyncKvStorage.js.map +1 -0
  22. package/build/cjs/dev/instrumentations/instrumentSqlStorage.js.map +1 -0
  23. package/build/cjs/{instrumentations → dev/instrumentations}/instrumentWorkerEntrypoint.js +3 -3
  24. package/build/cjs/dev/instrumentations/instrumentWorkerEntrypoint.js.map +1 -0
  25. package/build/cjs/{instrumentations → dev/instrumentations}/worker/instrumentD1.js +0 -4
  26. package/build/cjs/dev/instrumentations/worker/instrumentD1.js.map +1 -0
  27. package/build/cjs/{instrumentations → dev/instrumentations}/worker/instrumentEmail.js +3 -1
  28. package/build/cjs/dev/instrumentations/worker/instrumentEmail.js.map +1 -0
  29. package/build/cjs/{instrumentations → dev/instrumentations}/worker/instrumentEnv.js +3 -4
  30. package/build/cjs/dev/instrumentations/worker/instrumentEnv.js.map +1 -0
  31. package/build/cjs/{instrumentations → dev/instrumentations}/worker/instrumentFetch.js +9 -3
  32. package/build/cjs/dev/instrumentations/worker/instrumentFetch.js.map +1 -0
  33. package/build/cjs/dev/instrumentations/worker/instrumentFetcher.js.map +1 -0
  34. package/build/cjs/{instrumentations → dev/instrumentations}/worker/instrumentQueue.js +3 -2
  35. package/build/cjs/dev/instrumentations/worker/instrumentQueue.js.map +1 -0
  36. package/build/cjs/dev/instrumentations/worker/instrumentQueueProducer.js.map +1 -0
  37. package/build/cjs/dev/instrumentations/worker/instrumentR2.js.map +1 -0
  38. package/build/cjs/dev/instrumentations/worker/instrumentRateLimit.js.map +1 -0
  39. package/build/cjs/{instrumentations → dev/instrumentations}/worker/instrumentScheduled.js +3 -1
  40. package/build/cjs/dev/instrumentations/worker/instrumentScheduled.js.map +1 -0
  41. package/build/cjs/dev/instrumentations/worker/instrumentTail.js.map +1 -0
  42. package/build/cjs/{integrations → dev/integrations}/fetch.js +1 -1
  43. package/build/cjs/dev/integrations/fetch.js.map +1 -0
  44. package/build/cjs/{integrations → dev/integrations}/httpServer.js +5 -4
  45. package/build/cjs/dev/integrations/httpServer.js.map +1 -0
  46. package/build/cjs/dev/integrations/spotlight.js.map +1 -0
  47. package/build/cjs/{nodejs_compat → dev}/integrations/tracing/vercelai.js +6 -6
  48. package/build/cjs/dev/integrations/tracing/vercelai.js.map +1 -0
  49. package/build/cjs/dev/opentelemetry/tracer.js.map +1 -0
  50. package/build/cjs/{options.js → dev/options.js} +8 -0
  51. package/build/cjs/dev/options.js.map +1 -0
  52. package/build/cjs/{pages-plugin.js → dev/pages-plugin.js} +8 -3
  53. package/build/cjs/dev/pages-plugin.js.map +1 -0
  54. package/build/cjs/{request.js → dev/request.js} +20 -10
  55. package/build/cjs/dev/request.js.map +1 -0
  56. package/build/cjs/dev/scope-utils.js.map +1 -0
  57. package/build/cjs/dev/sdk.js +19 -0
  58. package/build/cjs/dev/sdk.js.map +1 -0
  59. package/build/cjs/dev/transport.js.map +1 -0
  60. package/build/cjs/{utils → dev/utils}/instrumentContext.js +8 -13
  61. package/build/cjs/dev/utils/instrumentContext.js.map +1 -0
  62. package/build/cjs/dev/utils/internalSqlQuery.js.map +1 -0
  63. package/build/cjs/dev/utils/internalStorageKey.js.map +1 -0
  64. package/build/cjs/dev/utils/invocationScope.js.map +1 -0
  65. package/build/cjs/dev/utils/isBinding.js.map +1 -0
  66. package/build/cjs/dev/utils/isCloudflareClass.js.map +1 -0
  67. package/build/cjs/dev/utils/rpcMeta.js.map +1 -0
  68. package/build/cjs/dev/utils/streaming.js.map +1 -0
  69. package/build/cjs/dev/utils/traceLinks.js.map +1 -0
  70. package/build/cjs/dev/vendor/stacktrace.js.map +1 -0
  71. package/build/cjs/dev/vite/agentClass.js.map +1 -0
  72. package/build/cjs/dev/vite/autoInstrument.js.map +1 -0
  73. package/build/cjs/{vite → dev/vite}/index.js +4 -2
  74. package/build/cjs/dev/vite/index.js.map +1 -0
  75. package/build/cjs/dev/vite/instrumentFile.js.map +1 -0
  76. package/build/cjs/dev/vite/moduleShape.js.map +1 -0
  77. package/build/cjs/dev/vite/transform.js.map +1 -0
  78. package/build/cjs/dev/vite/workerEntrypoint.js.map +1 -0
  79. package/build/cjs/dev/vite/wranglerConfig.js.map +1 -0
  80. package/build/cjs/{withSentry.js → dev/withSentry.js} +2 -19
  81. package/build/cjs/dev/withSentry.js.map +1 -0
  82. package/build/cjs/{workflows.js → dev/workflows.js} +8 -3
  83. package/build/cjs/dev/workflows.js.map +1 -0
  84. package/build/cjs/dev/wrapMethodWithSentry.js.map +1 -0
  85. package/build/cjs/prod/baseSdk.js +73 -0
  86. package/build/cjs/prod/baseSdk.js.map +1 -0
  87. package/build/cjs/prod/client.js +122 -0
  88. package/build/cjs/prod/client.js.map +1 -0
  89. package/build/cjs/prod/debug-build.js +6 -0
  90. package/build/cjs/prod/debug-build.js.map +1 -0
  91. package/build/cjs/prod/defineCloudflareOptions.js +11 -0
  92. package/build/cjs/prod/defineCloudflareOptions.js.map +1 -0
  93. package/build/cjs/prod/durableobject.js +234 -0
  94. package/build/cjs/prod/durableobject.js.map +1 -0
  95. package/build/cjs/prod/flush.js +87 -0
  96. package/build/cjs/prod/flush.js.map +1 -0
  97. package/build/cjs/{nodejs_compat → prod}/index.js +34 -37
  98. package/build/cjs/{nodejs_compat → prod}/index.js.map +1 -1
  99. package/build/cjs/prod/instrument.js +52 -0
  100. package/build/cjs/prod/instrument.js.map +1 -0
  101. package/build/cjs/prod/instrumentations/agents/index.js +16 -0
  102. package/build/cjs/prod/instrumentations/agents/index.js.map +1 -0
  103. package/build/cjs/prod/instrumentations/agents/instrumentAgentCallableRpc.js +52 -0
  104. package/build/cjs/prod/instrumentations/agents/instrumentAgentCallableRpc.js.map +1 -0
  105. package/build/cjs/prod/instrumentations/agents/instrumentAgentRequestConversation.js +19 -0
  106. package/build/cjs/prod/instrumentations/agents/instrumentAgentRequestConversation.js.map +1 -0
  107. package/build/cjs/prod/instrumentations/agents/instrumentChatAgentConversation.js +31 -0
  108. package/build/cjs/prod/instrumentations/agents/instrumentChatAgentConversation.js.map +1 -0
  109. package/build/cjs/prod/instrumentations/agents/types.js +77 -0
  110. package/build/cjs/prod/instrumentations/agents/types.js.map +1 -0
  111. package/build/cjs/prod/instrumentations/instrumentDurableObjectNamespace.js +41 -0
  112. package/build/cjs/prod/instrumentations/instrumentDurableObjectNamespace.js.map +1 -0
  113. package/build/cjs/prod/instrumentations/instrumentDurableObjectStorage.js +72 -0
  114. package/build/cjs/prod/instrumentations/instrumentDurableObjectStorage.js.map +1 -0
  115. package/build/cjs/prod/instrumentations/instrumentDurableObjectSyncKvStorage.js +40 -0
  116. package/build/cjs/prod/instrumentations/instrumentDurableObjectSyncKvStorage.js.map +1 -0
  117. package/build/cjs/prod/instrumentations/instrumentSqlStorage.js +42 -0
  118. package/build/cjs/prod/instrumentations/instrumentSqlStorage.js.map +1 -0
  119. package/build/cjs/prod/instrumentations/instrumentWorkerEntrypoint.js +139 -0
  120. package/build/cjs/prod/instrumentations/instrumentWorkerEntrypoint.js.map +1 -0
  121. package/build/cjs/prod/instrumentations/worker/instrumentD1.js +161 -0
  122. package/build/cjs/prod/instrumentations/worker/instrumentD1.js.map +1 -0
  123. package/build/cjs/prod/instrumentations/worker/instrumentEmail.js +63 -0
  124. package/build/cjs/prod/instrumentations/worker/instrumentEmail.js.map +1 -0
  125. package/build/cjs/prod/instrumentations/worker/instrumentEnv.js +90 -0
  126. package/build/cjs/prod/instrumentations/worker/instrumentEnv.js.map +1 -0
  127. package/build/cjs/prod/instrumentations/worker/instrumentFetch.js +54 -0
  128. package/build/cjs/prod/instrumentations/worker/instrumentFetch.js.map +1 -0
  129. package/build/cjs/prod/instrumentations/worker/instrumentFetcher.js +24 -0
  130. package/build/cjs/prod/instrumentations/worker/instrumentFetcher.js.map +1 -0
  131. package/build/cjs/prod/instrumentations/worker/instrumentQueue.js +82 -0
  132. package/build/cjs/prod/instrumentations/worker/instrumentQueue.js.map +1 -0
  133. package/build/cjs/prod/instrumentations/worker/instrumentQueueProducer.js +80 -0
  134. package/build/cjs/prod/instrumentations/worker/instrumentQueueProducer.js.map +1 -0
  135. package/build/cjs/prod/instrumentations/worker/instrumentR2.js +124 -0
  136. package/build/cjs/prod/instrumentations/worker/instrumentR2.js.map +1 -0
  137. package/build/cjs/prod/instrumentations/worker/instrumentRateLimit.js +29 -0
  138. package/build/cjs/prod/instrumentations/worker/instrumentRateLimit.js.map +1 -0
  139. package/build/cjs/prod/instrumentations/worker/instrumentScheduled.js +78 -0
  140. package/build/cjs/prod/instrumentations/worker/instrumentScheduled.js.map +1 -0
  141. package/build/cjs/prod/instrumentations/worker/instrumentTail.js +60 -0
  142. package/build/cjs/prod/instrumentations/worker/instrumentTail.js.map +1 -0
  143. package/build/cjs/prod/integrations/fetch.js +119 -0
  144. package/build/cjs/prod/integrations/fetch.js.map +1 -0
  145. package/build/cjs/prod/integrations/httpServer.js +36 -0
  146. package/build/cjs/prod/integrations/httpServer.js.map +1 -0
  147. package/build/cjs/prod/integrations/spotlight.js +64 -0
  148. package/build/cjs/prod/integrations/spotlight.js.map +1 -0
  149. package/build/cjs/{integrations → prod/integrations}/tracing/vercelai.js +5 -5
  150. package/build/cjs/prod/integrations/tracing/vercelai.js.map +1 -0
  151. package/build/cjs/prod/opentelemetry/tracer.js +49 -0
  152. package/build/cjs/prod/opentelemetry/tracer.js.map +1 -0
  153. package/build/cjs/prod/options.js +33 -0
  154. package/build/cjs/prod/options.js.map +1 -0
  155. package/build/cjs/prod/pages-plugin.js +24 -0
  156. package/build/cjs/prod/pages-plugin.js.map +1 -0
  157. package/build/cjs/prod/request.js +132 -0
  158. package/build/cjs/prod/request.js.map +1 -0
  159. package/build/cjs/prod/scope-utils.js +22 -0
  160. package/build/cjs/prod/scope-utils.js.map +1 -0
  161. package/build/cjs/prod/sdk.js +19 -0
  162. package/build/cjs/prod/sdk.js.map +1 -0
  163. package/build/cjs/prod/transport.js +75 -0
  164. package/build/cjs/prod/transport.js.map +1 -0
  165. package/build/cjs/prod/utils/instrumentContext.js +63 -0
  166. package/build/cjs/prod/utils/instrumentContext.js.map +1 -0
  167. package/build/cjs/prod/utils/internalSqlQuery.js +25 -0
  168. package/build/cjs/prod/utils/internalSqlQuery.js.map +1 -0
  169. package/build/cjs/prod/utils/internalStorageKey.js +44 -0
  170. package/build/cjs/prod/utils/internalStorageKey.js.map +1 -0
  171. package/build/cjs/prod/utils/invocationScope.js +12 -0
  172. package/build/cjs/prod/utils/invocationScope.js.map +1 -0
  173. package/build/cjs/prod/utils/isBinding.js +37 -0
  174. package/build/cjs/prod/utils/isBinding.js.map +1 -0
  175. package/build/cjs/prod/utils/isCloudflareClass.js +23 -0
  176. package/build/cjs/prod/utils/isCloudflareClass.js.map +1 -0
  177. package/build/cjs/prod/utils/rpcMeta.js +39 -0
  178. package/build/cjs/prod/utils/rpcMeta.js.map +1 -0
  179. package/build/cjs/prod/utils/streaming.js +16 -0
  180. package/build/cjs/prod/utils/streaming.js.map +1 -0
  181. package/build/cjs/prod/utils/traceLinks.js +54 -0
  182. package/build/cjs/prod/utils/traceLinks.js.map +1 -0
  183. package/build/cjs/prod/vendor/stacktrace.js +28 -0
  184. package/build/cjs/prod/vendor/stacktrace.js.map +1 -0
  185. package/build/cjs/prod/vite/agentClass.js +114 -0
  186. package/build/cjs/prod/vite/agentClass.js.map +1 -0
  187. package/build/cjs/prod/vite/autoInstrument.js +94 -0
  188. package/build/cjs/prod/vite/autoInstrument.js.map +1 -0
  189. package/build/cjs/prod/vite/index.js +16 -0
  190. package/build/cjs/prod/vite/index.js.map +1 -0
  191. package/build/cjs/prod/vite/instrumentFile.js +31 -0
  192. package/build/cjs/prod/vite/instrumentFile.js.map +1 -0
  193. package/build/cjs/prod/vite/moduleShape.js +231 -0
  194. package/build/cjs/prod/vite/moduleShape.js.map +1 -0
  195. package/build/cjs/prod/vite/transform.js +149 -0
  196. package/build/cjs/prod/vite/transform.js.map +1 -0
  197. package/build/cjs/prod/vite/workerEntrypoint.js +66 -0
  198. package/build/cjs/prod/vite/workerEntrypoint.js.map +1 -0
  199. package/build/cjs/prod/vite/wranglerConfig.js +54 -0
  200. package/build/cjs/prod/vite/wranglerConfig.js.map +1 -0
  201. package/build/cjs/prod/withSentry.js +29 -0
  202. package/build/cjs/prod/withSentry.js.map +1 -0
  203. package/build/cjs/prod/workflows.js +139 -0
  204. package/build/cjs/prod/workflows.js.map +1 -0
  205. package/build/cjs/prod/wrapMethodWithSentry.js +134 -0
  206. package/build/cjs/prod/wrapMethodWithSentry.js.map +1 -0
  207. package/build/esm/{sdk.js → dev/baseSdk.js} +26 -17
  208. package/build/esm/dev/baseSdk.js.map +1 -0
  209. package/build/esm/dev/client.js.map +1 -0
  210. package/build/esm/dev/debug-build.js.map +1 -0
  211. package/build/esm/dev/defineCloudflareOptions.js.map +1 -0
  212. package/build/esm/{durableobject.js → dev/durableobject.js} +21 -20
  213. package/build/esm/dev/durableobject.js.map +1 -0
  214. package/build/esm/dev/flush.js.map +1 -0
  215. package/build/esm/dev/index.js +15 -0
  216. package/build/esm/{index.js.map → dev/index.js.map} +1 -1
  217. package/build/esm/dev/instrument.js.map +1 -0
  218. package/build/esm/dev/instrumentations/agents/index.js.map +1 -0
  219. package/build/esm/dev/instrumentations/agents/instrumentAgentCallableRpc.js.map +1 -0
  220. package/build/esm/dev/instrumentations/agents/instrumentAgentRequestConversation.js.map +1 -0
  221. package/build/esm/dev/instrumentations/agents/instrumentChatAgentConversation.js.map +1 -0
  222. package/build/esm/{instrumentations → dev/instrumentations}/agents/types.js +2 -2
  223. package/build/esm/dev/instrumentations/agents/types.js.map +1 -0
  224. package/build/esm/dev/instrumentations/instrumentDurableObjectNamespace.js.map +1 -0
  225. package/build/esm/dev/instrumentations/instrumentDurableObjectStorage.js.map +1 -0
  226. package/build/esm/dev/instrumentations/instrumentDurableObjectSyncKvStorage.js.map +1 -0
  227. package/build/esm/dev/instrumentations/instrumentSqlStorage.js.map +1 -0
  228. package/build/esm/{instrumentations → dev/instrumentations}/instrumentWorkerEntrypoint.js +2 -2
  229. package/build/esm/dev/instrumentations/instrumentWorkerEntrypoint.js.map +1 -0
  230. package/build/esm/{instrumentations → dev/instrumentations}/worker/instrumentD1.js +1 -4
  231. package/build/esm/dev/instrumentations/worker/instrumentD1.js.map +1 -0
  232. package/build/esm/{instrumentations → dev/instrumentations}/worker/instrumentEmail.js +3 -1
  233. package/build/esm/dev/instrumentations/worker/instrumentEmail.js.map +1 -0
  234. package/build/esm/{instrumentations → dev/instrumentations}/worker/instrumentEnv.js +3 -4
  235. package/build/esm/dev/instrumentations/worker/instrumentEnv.js.map +1 -0
  236. package/build/esm/{instrumentations → dev/instrumentations}/worker/instrumentFetch.js +10 -4
  237. package/build/esm/dev/instrumentations/worker/instrumentFetch.js.map +1 -0
  238. package/build/esm/dev/instrumentations/worker/instrumentFetcher.js.map +1 -0
  239. package/build/esm/{instrumentations → dev/instrumentations}/worker/instrumentQueue.js +4 -3
  240. package/build/esm/dev/instrumentations/worker/instrumentQueue.js.map +1 -0
  241. package/build/esm/dev/instrumentations/worker/instrumentQueueProducer.js.map +1 -0
  242. package/build/esm/dev/instrumentations/worker/instrumentR2.js.map +1 -0
  243. package/build/esm/dev/instrumentations/worker/instrumentRateLimit.js.map +1 -0
  244. package/build/esm/{instrumentations → dev/instrumentations}/worker/instrumentScheduled.js +3 -1
  245. package/build/esm/dev/instrumentations/worker/instrumentScheduled.js.map +1 -0
  246. package/build/esm/dev/instrumentations/worker/instrumentTail.js.map +1 -0
  247. package/build/esm/{integrations → dev/integrations}/fetch.js +1 -1
  248. package/build/esm/dev/integrations/fetch.js.map +1 -0
  249. package/build/esm/{integrations → dev/integrations}/httpServer.js +5 -4
  250. package/build/esm/dev/integrations/httpServer.js.map +1 -0
  251. package/build/esm/dev/integrations/spotlight.js.map +1 -0
  252. package/build/esm/{integrations → dev/integrations}/tracing/vercelai.js +5 -5
  253. package/build/esm/dev/integrations/tracing/vercelai.js.map +1 -0
  254. package/build/esm/dev/opentelemetry/tracer.js.map +1 -0
  255. package/build/esm/{options.js → dev/options.js} +8 -0
  256. package/build/esm/dev/options.js.map +1 -0
  257. package/build/esm/dev/package.json +1 -0
  258. package/build/esm/{pages-plugin.js → dev/pages-plugin.js} +8 -3
  259. package/build/esm/dev/pages-plugin.js.map +1 -0
  260. package/build/esm/{request.js → dev/request.js} +21 -12
  261. package/build/esm/dev/request.js.map +1 -0
  262. package/build/esm/dev/scope-utils.js.map +1 -0
  263. package/build/esm/dev/sdk.js +16 -0
  264. package/build/esm/dev/sdk.js.map +1 -0
  265. package/build/esm/dev/transport.js.map +1 -0
  266. package/build/esm/{utils → dev/utils}/instrumentContext.js +8 -13
  267. package/build/esm/dev/utils/instrumentContext.js.map +1 -0
  268. package/build/esm/dev/utils/internalSqlQuery.js.map +1 -0
  269. package/build/esm/dev/utils/internalStorageKey.js.map +1 -0
  270. package/build/esm/dev/utils/invocationScope.js.map +1 -0
  271. package/build/esm/dev/utils/isBinding.js.map +1 -0
  272. package/build/esm/dev/utils/isCloudflareClass.js.map +1 -0
  273. package/build/esm/dev/utils/rpcMeta.js.map +1 -0
  274. package/build/esm/dev/utils/streaming.js.map +1 -0
  275. package/build/esm/{utils → dev/utils}/traceLinks.js +1 -1
  276. package/build/esm/dev/utils/traceLinks.js.map +1 -0
  277. package/build/esm/dev/vendor/stacktrace.js.map +1 -0
  278. package/build/esm/dev/vite/agentClass.js.map +1 -0
  279. package/build/esm/dev/vite/autoInstrument.js.map +1 -0
  280. package/build/esm/{vite → dev/vite}/index.js +4 -2
  281. package/build/esm/dev/vite/index.js.map +1 -0
  282. package/build/esm/dev/vite/instrumentFile.js.map +1 -0
  283. package/build/esm/dev/vite/moduleShape.js.map +1 -0
  284. package/build/esm/dev/vite/transform.js.map +1 -0
  285. package/build/esm/dev/vite/workerEntrypoint.js.map +1 -0
  286. package/build/esm/dev/vite/wranglerConfig.js.map +1 -0
  287. package/build/esm/{withSentry.js → dev/withSentry.js} +1 -18
  288. package/build/esm/dev/withSentry.js.map +1 -0
  289. package/build/esm/{workflows.js → dev/workflows.js} +7 -2
  290. package/build/esm/dev/workflows.js.map +1 -0
  291. package/build/esm/dev/wrapMethodWithSentry.js.map +1 -0
  292. package/build/esm/prod/baseSdk.js +69 -0
  293. package/build/esm/prod/baseSdk.js.map +1 -0
  294. package/build/esm/prod/client.js +120 -0
  295. package/build/esm/prod/client.js.map +1 -0
  296. package/build/esm/prod/debug-build.js +4 -0
  297. package/build/esm/prod/debug-build.js.map +1 -0
  298. package/build/esm/prod/defineCloudflareOptions.js +9 -0
  299. package/build/esm/prod/defineCloudflareOptions.js.map +1 -0
  300. package/build/esm/prod/durableobject.js +229 -0
  301. package/build/esm/prod/durableobject.js.map +1 -0
  302. package/build/esm/prod/flush.js +83 -0
  303. package/build/esm/prod/flush.js.map +1 -0
  304. package/build/esm/prod/index.js +15 -0
  305. package/build/esm/{nodejs_compat → prod}/index.js.map +1 -1
  306. package/build/esm/prod/instrument.js +48 -0
  307. package/build/esm/prod/instrument.js.map +1 -0
  308. package/build/esm/prod/instrumentations/agents/index.js +14 -0
  309. package/build/esm/prod/instrumentations/agents/index.js.map +1 -0
  310. package/build/esm/prod/instrumentations/agents/instrumentAgentCallableRpc.js +50 -0
  311. package/build/esm/prod/instrumentations/agents/instrumentAgentCallableRpc.js.map +1 -0
  312. package/build/esm/prod/instrumentations/agents/instrumentAgentRequestConversation.js +17 -0
  313. package/build/esm/prod/instrumentations/agents/instrumentAgentRequestConversation.js.map +1 -0
  314. package/build/esm/prod/instrumentations/agents/instrumentChatAgentConversation.js +29 -0
  315. package/build/esm/prod/instrumentations/agents/instrumentChatAgentConversation.js.map +1 -0
  316. package/build/esm/prod/instrumentations/agents/types.js +69 -0
  317. package/build/esm/prod/instrumentations/agents/types.js.map +1 -0
  318. package/build/esm/prod/instrumentations/instrumentDurableObjectNamespace.js +38 -0
  319. package/build/esm/prod/instrumentations/instrumentDurableObjectNamespace.js.map +1 -0
  320. package/build/esm/prod/instrumentations/instrumentDurableObjectStorage.js +70 -0
  321. package/build/esm/prod/instrumentations/instrumentDurableObjectStorage.js.map +1 -0
  322. package/build/esm/prod/instrumentations/instrumentDurableObjectSyncKvStorage.js +38 -0
  323. package/build/esm/prod/instrumentations/instrumentDurableObjectSyncKvStorage.js.map +1 -0
  324. package/build/esm/prod/instrumentations/instrumentSqlStorage.js +40 -0
  325. package/build/esm/prod/instrumentations/instrumentSqlStorage.js.map +1 -0
  326. package/build/esm/prod/instrumentations/instrumentWorkerEntrypoint.js +137 -0
  327. package/build/esm/prod/instrumentations/instrumentWorkerEntrypoint.js.map +1 -0
  328. package/build/esm/prod/instrumentations/worker/instrumentD1.js +159 -0
  329. package/build/esm/prod/instrumentations/worker/instrumentD1.js.map +1 -0
  330. package/build/esm/prod/instrumentations/worker/instrumentEmail.js +61 -0
  331. package/build/esm/prod/instrumentations/worker/instrumentEmail.js.map +1 -0
  332. package/build/esm/prod/instrumentations/worker/instrumentEnv.js +88 -0
  333. package/build/esm/prod/instrumentations/worker/instrumentEnv.js.map +1 -0
  334. package/build/esm/prod/instrumentations/worker/instrumentFetch.js +51 -0
  335. package/build/esm/prod/instrumentations/worker/instrumentFetch.js.map +1 -0
  336. package/build/esm/prod/instrumentations/worker/instrumentFetcher.js +22 -0
  337. package/build/esm/prod/instrumentations/worker/instrumentFetcher.js.map +1 -0
  338. package/build/esm/prod/instrumentations/worker/instrumentQueue.js +79 -0
  339. package/build/esm/prod/instrumentations/worker/instrumentQueue.js.map +1 -0
  340. package/build/esm/prod/instrumentations/worker/instrumentQueueProducer.js +78 -0
  341. package/build/esm/prod/instrumentations/worker/instrumentQueueProducer.js.map +1 -0
  342. package/build/esm/prod/instrumentations/worker/instrumentR2.js +122 -0
  343. package/build/esm/prod/instrumentations/worker/instrumentR2.js.map +1 -0
  344. package/build/esm/prod/instrumentations/worker/instrumentRateLimit.js +27 -0
  345. package/build/esm/prod/instrumentations/worker/instrumentRateLimit.js.map +1 -0
  346. package/build/esm/prod/instrumentations/worker/instrumentScheduled.js +75 -0
  347. package/build/esm/prod/instrumentations/worker/instrumentScheduled.js.map +1 -0
  348. package/build/esm/prod/instrumentations/worker/instrumentTail.js +57 -0
  349. package/build/esm/prod/instrumentations/worker/instrumentTail.js.map +1 -0
  350. package/build/esm/prod/integrations/fetch.js +117 -0
  351. package/build/esm/prod/integrations/fetch.js.map +1 -0
  352. package/build/esm/prod/integrations/httpServer.js +33 -0
  353. package/build/esm/prod/integrations/httpServer.js.map +1 -0
  354. package/build/esm/prod/integrations/spotlight.js +61 -0
  355. package/build/esm/prod/integrations/spotlight.js.map +1 -0
  356. package/build/esm/prod/integrations/tracing/vercelai.js +16 -0
  357. package/build/esm/prod/integrations/tracing/vercelai.js.map +1 -0
  358. package/build/esm/prod/opentelemetry/tracer.js +47 -0
  359. package/build/esm/prod/opentelemetry/tracer.js.map +1 -0
  360. package/build/esm/prod/options.js +31 -0
  361. package/build/esm/prod/options.js.map +1 -0
  362. package/build/esm/prod/package.json +1 -0
  363. package/build/esm/prod/pages-plugin.js +22 -0
  364. package/build/esm/prod/pages-plugin.js.map +1 -0
  365. package/build/esm/prod/request.js +129 -0
  366. package/build/esm/prod/request.js.map +1 -0
  367. package/build/esm/prod/scope-utils.js +18 -0
  368. package/build/esm/prod/scope-utils.js.map +1 -0
  369. package/build/esm/prod/sdk.js +16 -0
  370. package/build/esm/prod/sdk.js.map +1 -0
  371. package/build/esm/prod/transport.js +72 -0
  372. package/build/esm/prod/transport.js.map +1 -0
  373. package/build/esm/prod/utils/instrumentContext.js +61 -0
  374. package/build/esm/prod/utils/instrumentContext.js.map +1 -0
  375. package/build/esm/prod/utils/internalSqlQuery.js +23 -0
  376. package/build/esm/prod/utils/internalSqlQuery.js.map +1 -0
  377. package/build/esm/prod/utils/internalStorageKey.js +41 -0
  378. package/build/esm/prod/utils/internalStorageKey.js.map +1 -0
  379. package/build/esm/prod/utils/invocationScope.js +10 -0
  380. package/build/esm/prod/utils/invocationScope.js.map +1 -0
  381. package/build/esm/prod/utils/isBinding.js +29 -0
  382. package/build/esm/prod/utils/isBinding.js.map +1 -0
  383. package/build/esm/prod/utils/isCloudflareClass.js +21 -0
  384. package/build/esm/prod/utils/isCloudflareClass.js.map +1 -0
  385. package/build/esm/prod/utils/rpcMeta.js +35 -0
  386. package/build/esm/prod/utils/rpcMeta.js.map +1 -0
  387. package/build/esm/prod/utils/streaming.js +14 -0
  388. package/build/esm/prod/utils/streaming.js.map +1 -0
  389. package/build/esm/prod/utils/traceLinks.js +49 -0
  390. package/build/esm/prod/utils/traceLinks.js.map +1 -0
  391. package/build/esm/prod/vendor/stacktrace.js +25 -0
  392. package/build/esm/prod/vendor/stacktrace.js.map +1 -0
  393. package/build/esm/prod/vite/agentClass.js +111 -0
  394. package/build/esm/prod/vite/agentClass.js.map +1 -0
  395. package/build/esm/prod/vite/autoInstrument.js +92 -0
  396. package/build/esm/prod/vite/autoInstrument.js.map +1 -0
  397. package/build/esm/prod/vite/index.js +14 -0
  398. package/build/esm/prod/vite/index.js.map +1 -0
  399. package/build/esm/prod/vite/instrumentFile.js +27 -0
  400. package/build/esm/prod/vite/instrumentFile.js.map +1 -0
  401. package/build/esm/prod/vite/moduleShape.js +227 -0
  402. package/build/esm/prod/vite/moduleShape.js.map +1 -0
  403. package/build/esm/prod/vite/transform.js +147 -0
  404. package/build/esm/prod/vite/transform.js.map +1 -0
  405. package/build/esm/prod/vite/workerEntrypoint.js +64 -0
  406. package/build/esm/prod/vite/workerEntrypoint.js.map +1 -0
  407. package/build/esm/prod/vite/wranglerConfig.js +52 -0
  408. package/build/esm/prod/vite/wranglerConfig.js.map +1 -0
  409. package/build/esm/prod/withSentry.js +27 -0
  410. package/build/esm/prod/withSentry.js.map +1 -0
  411. package/build/esm/prod/workflows.js +136 -0
  412. package/build/esm/prod/workflows.js.map +1 -0
  413. package/build/esm/prod/wrapMethodWithSentry.js +132 -0
  414. package/build/esm/prod/wrapMethodWithSentry.js.map +1 -0
  415. package/build/types/baseSdk.d.ts +28 -0
  416. package/build/types/baseSdk.d.ts.map +1 -0
  417. package/build/types/client.d.ts +12 -39
  418. package/build/types/client.d.ts.map +1 -1
  419. package/build/types/defineCloudflareOptions.d.ts +2 -2
  420. package/build/types/defineCloudflareOptions.d.ts.map +1 -1
  421. package/build/types/durableobject.d.ts +5 -4
  422. package/build/types/durableobject.d.ts.map +1 -1
  423. package/build/types/index.d.ts +3 -5
  424. package/build/types/index.d.ts.map +1 -1
  425. package/build/types/instrumentations/agents/types.d.ts.map +1 -1
  426. package/build/types/instrumentations/instrumentDurableObjectStorage.d.ts.map +1 -1
  427. package/build/types/instrumentations/instrumentSqlStorage.d.ts.map +1 -1
  428. package/build/types/instrumentations/instrumentWorkerEntrypoint.d.ts +2 -1
  429. package/build/types/instrumentations/instrumentWorkerEntrypoint.d.ts.map +1 -1
  430. package/build/types/instrumentations/worker/instrumentD1.d.ts +0 -16
  431. package/build/types/instrumentations/worker/instrumentD1.d.ts.map +1 -1
  432. package/build/types/instrumentations/worker/instrumentEmail.d.ts +2 -2
  433. package/build/types/instrumentations/worker/instrumentEmail.d.ts.map +1 -1
  434. package/build/types/instrumentations/worker/instrumentEnv.d.ts.map +1 -1
  435. package/build/types/instrumentations/worker/instrumentFetch.d.ts +2 -2
  436. package/build/types/instrumentations/worker/instrumentFetch.d.ts.map +1 -1
  437. package/build/types/instrumentations/worker/instrumentQueue.d.ts +2 -2
  438. package/build/types/instrumentations/worker/instrumentQueue.d.ts.map +1 -1
  439. package/build/types/instrumentations/worker/instrumentScheduled.d.ts +2 -2
  440. package/build/types/instrumentations/worker/instrumentScheduled.d.ts.map +1 -1
  441. package/build/types/instrumentations/worker/instrumentTail.d.ts +2 -2
  442. package/build/types/instrumentations/worker/instrumentTail.d.ts.map +1 -1
  443. package/build/types/integrations/httpServer.d.ts.map +1 -1
  444. package/build/types/integrations/spotlight.d.ts +1 -1
  445. package/build/types/integrations/tracing/vercelai.d.ts +2 -10
  446. package/build/types/integrations/tracing/vercelai.d.ts.map +1 -1
  447. package/build/types/options.d.ts.map +1 -1
  448. package/build/types/pages-plugin.d.ts +1 -1
  449. package/build/types/pages-plugin.d.ts.map +1 -1
  450. package/build/types/request.d.ts +17 -2
  451. package/build/types/request.d.ts.map +1 -1
  452. package/build/types/sdk.d.ts +8 -3
  453. package/build/types/sdk.d.ts.map +1 -1
  454. package/build/types/transport.d.ts.map +1 -1
  455. package/build/types/types.d.ts +85 -0
  456. package/build/types/types.d.ts.map +1 -0
  457. package/build/types/utils/instrumentContext.d.ts.map +1 -1
  458. package/build/types/utils/isCloudflareClass.d.ts +1 -1
  459. package/build/types/utils/isCloudflareClass.d.ts.map +1 -1
  460. package/build/types/vite/autoInstrument.d.ts.map +1 -1
  461. package/build/types/vite/index.d.ts +37 -61
  462. package/build/types/vite/index.d.ts.map +1 -1
  463. package/build/types/withSentry.d.ts +2 -2
  464. package/build/types/withSentry.d.ts.map +1 -1
  465. package/build/types/workflows.d.ts +5 -4
  466. package/build/types/workflows.d.ts.map +1 -1
  467. package/package.json +28 -51
  468. package/build/cjs/async.js +0 -63
  469. package/build/cjs/async.js.map +0 -1
  470. package/build/cjs/client.js.map +0 -1
  471. package/build/cjs/debug-build.js.map +0 -1
  472. package/build/cjs/defineCloudflareOptions.js.map +0 -1
  473. package/build/cjs/durableobject.js.map +0 -1
  474. package/build/cjs/flush.js.map +0 -1
  475. package/build/cjs/instrument.js.map +0 -1
  476. package/build/cjs/instrumentations/agents/index.js.map +0 -1
  477. package/build/cjs/instrumentations/agents/instrumentAgentCallableRpc.js.map +0 -1
  478. package/build/cjs/instrumentations/agents/instrumentAgentRequestConversation.js.map +0 -1
  479. package/build/cjs/instrumentations/agents/instrumentChatAgentConversation.js.map +0 -1
  480. package/build/cjs/instrumentations/agents/types.js.map +0 -1
  481. package/build/cjs/instrumentations/instrumentDurableObjectNamespace.js.map +0 -1
  482. package/build/cjs/instrumentations/instrumentDurableObjectStorage.js.map +0 -1
  483. package/build/cjs/instrumentations/instrumentDurableObjectSyncKvStorage.js.map +0 -1
  484. package/build/cjs/instrumentations/instrumentSqlStorage.js.map +0 -1
  485. package/build/cjs/instrumentations/instrumentWorkerEntrypoint.js.map +0 -1
  486. package/build/cjs/instrumentations/worker/instrumentD1.js.map +0 -1
  487. package/build/cjs/instrumentations/worker/instrumentEmail.js.map +0 -1
  488. package/build/cjs/instrumentations/worker/instrumentEnv.js.map +0 -1
  489. package/build/cjs/instrumentations/worker/instrumentFetch.js.map +0 -1
  490. package/build/cjs/instrumentations/worker/instrumentFetcher.js.map +0 -1
  491. package/build/cjs/instrumentations/worker/instrumentQueue.js.map +0 -1
  492. package/build/cjs/instrumentations/worker/instrumentQueueProducer.js.map +0 -1
  493. package/build/cjs/instrumentations/worker/instrumentR2.js.map +0 -1
  494. package/build/cjs/instrumentations/worker/instrumentRateLimit.js.map +0 -1
  495. package/build/cjs/instrumentations/worker/instrumentScheduled.js.map +0 -1
  496. package/build/cjs/instrumentations/worker/instrumentTail.js.map +0 -1
  497. package/build/cjs/integrations/fetch.js.map +0 -1
  498. package/build/cjs/integrations/hono.js +0 -52
  499. package/build/cjs/integrations/hono.js.map +0 -1
  500. package/build/cjs/integrations/httpServer.js.map +0 -1
  501. package/build/cjs/integrations/spotlight.js.map +0 -1
  502. package/build/cjs/integrations/tracing/vercelai.js.map +0 -1
  503. package/build/cjs/nodejs_compat/integrations/tracing/vercelai.js.map +0 -1
  504. package/build/cjs/opentelemetry/tracer.js.map +0 -1
  505. package/build/cjs/options.js.map +0 -1
  506. package/build/cjs/pages-plugin.js.map +0 -1
  507. package/build/cjs/request.js.map +0 -1
  508. package/build/cjs/scope-utils.js.map +0 -1
  509. package/build/cjs/sdk.js.map +0 -1
  510. package/build/cjs/transport.js.map +0 -1
  511. package/build/cjs/utils/instrumentContext.js.map +0 -1
  512. package/build/cjs/utils/internalSqlQuery.js.map +0 -1
  513. package/build/cjs/utils/internalStorageKey.js.map +0 -1
  514. package/build/cjs/utils/invocationScope.js.map +0 -1
  515. package/build/cjs/utils/isBinding.js.map +0 -1
  516. package/build/cjs/utils/isCloudflareClass.js.map +0 -1
  517. package/build/cjs/utils/rpcMeta.js.map +0 -1
  518. package/build/cjs/utils/rpcOptions.js +0 -26
  519. package/build/cjs/utils/rpcOptions.js.map +0 -1
  520. package/build/cjs/utils/streaming.js.map +0 -1
  521. package/build/cjs/utils/traceLinks.js.map +0 -1
  522. package/build/cjs/vendor/stacktrace.js.map +0 -1
  523. package/build/cjs/vite/agentClass.js.map +0 -1
  524. package/build/cjs/vite/autoInstrument.js.map +0 -1
  525. package/build/cjs/vite/index.js.map +0 -1
  526. package/build/cjs/vite/instrumentFile.js.map +0 -1
  527. package/build/cjs/vite/moduleShape.js.map +0 -1
  528. package/build/cjs/vite/transform.js.map +0 -1
  529. package/build/cjs/vite/workerEntrypoint.js.map +0 -1
  530. package/build/cjs/vite/wranglerConfig.js.map +0 -1
  531. package/build/cjs/withSentry.js.map +0 -1
  532. package/build/cjs/workflows.js.map +0 -1
  533. package/build/cjs/wrapMethodWithSentry.js.map +0 -1
  534. package/build/esm/async.js +0 -61
  535. package/build/esm/async.js.map +0 -1
  536. package/build/esm/client.js.map +0 -1
  537. package/build/esm/debug-build.js.map +0 -1
  538. package/build/esm/defineCloudflareOptions.js.map +0 -1
  539. package/build/esm/durableobject.js.map +0 -1
  540. package/build/esm/flush.js.map +0 -1
  541. package/build/esm/index.js +0 -17
  542. package/build/esm/instrument.js.map +0 -1
  543. package/build/esm/instrumentations/agents/index.js.map +0 -1
  544. package/build/esm/instrumentations/agents/instrumentAgentCallableRpc.js.map +0 -1
  545. package/build/esm/instrumentations/agents/instrumentAgentRequestConversation.js.map +0 -1
  546. package/build/esm/instrumentations/agents/instrumentChatAgentConversation.js.map +0 -1
  547. package/build/esm/instrumentations/agents/types.js.map +0 -1
  548. package/build/esm/instrumentations/instrumentDurableObjectNamespace.js.map +0 -1
  549. package/build/esm/instrumentations/instrumentDurableObjectStorage.js.map +0 -1
  550. package/build/esm/instrumentations/instrumentDurableObjectSyncKvStorage.js.map +0 -1
  551. package/build/esm/instrumentations/instrumentSqlStorage.js.map +0 -1
  552. package/build/esm/instrumentations/instrumentWorkerEntrypoint.js.map +0 -1
  553. package/build/esm/instrumentations/worker/instrumentD1.js.map +0 -1
  554. package/build/esm/instrumentations/worker/instrumentEmail.js.map +0 -1
  555. package/build/esm/instrumentations/worker/instrumentEnv.js.map +0 -1
  556. package/build/esm/instrumentations/worker/instrumentFetch.js.map +0 -1
  557. package/build/esm/instrumentations/worker/instrumentFetcher.js.map +0 -1
  558. package/build/esm/instrumentations/worker/instrumentQueue.js.map +0 -1
  559. package/build/esm/instrumentations/worker/instrumentQueueProducer.js.map +0 -1
  560. package/build/esm/instrumentations/worker/instrumentR2.js.map +0 -1
  561. package/build/esm/instrumentations/worker/instrumentRateLimit.js.map +0 -1
  562. package/build/esm/instrumentations/worker/instrumentScheduled.js.map +0 -1
  563. package/build/esm/instrumentations/worker/instrumentTail.js.map +0 -1
  564. package/build/esm/integrations/fetch.js.map +0 -1
  565. package/build/esm/integrations/hono.js +0 -49
  566. package/build/esm/integrations/hono.js.map +0 -1
  567. package/build/esm/integrations/httpServer.js.map +0 -1
  568. package/build/esm/integrations/spotlight.js.map +0 -1
  569. package/build/esm/integrations/tracing/vercelai.js.map +0 -1
  570. package/build/esm/nodejs_compat/index.js +0 -18
  571. package/build/esm/nodejs_compat/integrations/tracing/vercelai.js +0 -16
  572. package/build/esm/nodejs_compat/integrations/tracing/vercelai.js.map +0 -1
  573. package/build/esm/opentelemetry/tracer.js.map +0 -1
  574. package/build/esm/options.js.map +0 -1
  575. package/build/esm/package.json +0 -1
  576. package/build/esm/pages-plugin.js.map +0 -1
  577. package/build/esm/request.js.map +0 -1
  578. package/build/esm/scope-utils.js.map +0 -1
  579. package/build/esm/sdk.js.map +0 -1
  580. package/build/esm/transport.js.map +0 -1
  581. package/build/esm/utils/instrumentContext.js.map +0 -1
  582. package/build/esm/utils/internalSqlQuery.js.map +0 -1
  583. package/build/esm/utils/internalStorageKey.js.map +0 -1
  584. package/build/esm/utils/invocationScope.js.map +0 -1
  585. package/build/esm/utils/isBinding.js.map +0 -1
  586. package/build/esm/utils/isCloudflareClass.js.map +0 -1
  587. package/build/esm/utils/rpcMeta.js.map +0 -1
  588. package/build/esm/utils/rpcOptions.js +0 -24
  589. package/build/esm/utils/rpcOptions.js.map +0 -1
  590. package/build/esm/utils/streaming.js.map +0 -1
  591. package/build/esm/utils/traceLinks.js.map +0 -1
  592. package/build/esm/vendor/stacktrace.js.map +0 -1
  593. package/build/esm/vite/agentClass.js.map +0 -1
  594. package/build/esm/vite/autoInstrument.js.map +0 -1
  595. package/build/esm/vite/index.js.map +0 -1
  596. package/build/esm/vite/instrumentFile.js.map +0 -1
  597. package/build/esm/vite/moduleShape.js.map +0 -1
  598. package/build/esm/vite/transform.js.map +0 -1
  599. package/build/esm/vite/workerEntrypoint.js.map +0 -1
  600. package/build/esm/vite/wranglerConfig.js.map +0 -1
  601. package/build/esm/withSentry.js.map +0 -1
  602. package/build/esm/workflows.js.map +0 -1
  603. package/build/esm/wrapMethodWithSentry.js.map +0 -1
  604. package/build/types/async.d.ts +0 -11
  605. package/build/types/async.d.ts.map +0 -1
  606. package/build/types/integrations/hono.d.ts +0 -42
  607. package/build/types/integrations/hono.d.ts.map +0 -1
  608. package/build/types/nodejs_compat/index.d.ts +0 -4
  609. package/build/types/nodejs_compat/index.d.ts.map +0 -1
  610. package/build/types/nodejs_compat/integrations/tracing/vercelai.d.ts +0 -37
  611. package/build/types/nodejs_compat/integrations/tracing/vercelai.d.ts.map +0 -1
  612. package/build/types/utils/rpcOptions.d.ts +0 -13
  613. package/build/types/utils/rpcOptions.d.ts.map +0 -1
  614. package/build/types-ts3.8/async.d.ts +0 -11
  615. package/build/types-ts3.8/client.d.ts +0 -203
  616. package/build/types-ts3.8/debug-build.d.ts +0 -7
  617. package/build/types-ts3.8/defineCloudflareOptions.d.ts +0 -38
  618. package/build/types-ts3.8/durableobject.d.ts +0 -127
  619. package/build/types-ts3.8/executionContext.d.ts +0 -13
  620. package/build/types-ts3.8/flush.d.ts +0 -47
  621. package/build/types-ts3.8/index.d.ts +0 -19
  622. package/build/types-ts3.8/instrument.d.ts +0 -20
  623. package/build/types-ts3.8/instrumentations/agents/index.d.ts +0 -25
  624. package/build/types-ts3.8/instrumentations/agents/instrumentAgentCallableRpc.d.ts +0 -14
  625. package/build/types-ts3.8/instrumentations/agents/instrumentAgentRequestConversation.d.ts +0 -16
  626. package/build/types-ts3.8/instrumentations/agents/instrumentChatAgentConversation.d.ts +0 -23
  627. package/build/types-ts3.8/instrumentations/agents/types.d.ts +0 -94
  628. package/build/types-ts3.8/instrumentations/instrumentDurableObjectNamespace.d.ts +0 -13
  629. package/build/types-ts3.8/instrumentations/instrumentDurableObjectStorage.d.ts +0 -19
  630. package/build/types-ts3.8/instrumentations/instrumentDurableObjectSyncKvStorage.d.ts +0 -3
  631. package/build/types-ts3.8/instrumentations/instrumentSqlStorage.d.ts +0 -9
  632. package/build/types-ts3.8/instrumentations/instrumentWorkerEntrypoint.d.ts +0 -42
  633. package/build/types-ts3.8/instrumentations/worker/instrumentD1.d.ts +0 -19
  634. package/build/types-ts3.8/instrumentations/worker/instrumentEmail.d.ts +0 -8
  635. package/build/types-ts3.8/instrumentations/worker/instrumentEnv.d.ts +0 -18
  636. package/build/types-ts3.8/instrumentations/worker/instrumentFetch.d.ts +0 -12
  637. package/build/types-ts3.8/instrumentations/worker/instrumentFetcher.d.ts +0 -10
  638. package/build/types-ts3.8/instrumentations/worker/instrumentQueue.d.ts +0 -12
  639. package/build/types-ts3.8/instrumentations/worker/instrumentQueueProducer.d.ts +0 -10
  640. package/build/types-ts3.8/instrumentations/worker/instrumentR2.d.ts +0 -9
  641. package/build/types-ts3.8/instrumentations/worker/instrumentRateLimit.d.ts +0 -6
  642. package/build/types-ts3.8/instrumentations/worker/instrumentScheduled.d.ts +0 -12
  643. package/build/types-ts3.8/instrumentations/worker/instrumentTail.d.ts +0 -12
  644. package/build/types-ts3.8/integrations/fetch.d.ts +0 -19
  645. package/build/types-ts3.8/integrations/hono.d.ts +0 -42
  646. package/build/types-ts3.8/integrations/httpServer.d.ts +0 -63
  647. package/build/types-ts3.8/integrations/spotlight.d.ts +0 -22
  648. package/build/types-ts3.8/integrations/tracing/vercelai.d.ts +0 -47
  649. package/build/types-ts3.8/nodejs_compat/index.d.ts +0 -4
  650. package/build/types-ts3.8/nodejs_compat/integrations/tracing/vercelai.d.ts +0 -37
  651. package/build/types-ts3.8/opentelemetry/tracer.d.ts +0 -6
  652. package/build/types-ts3.8/options.d.ts +0 -17
  653. package/build/types-ts3.8/pages-plugin.d.ts +0 -34
  654. package/build/types-ts3.8/request.d.ts +0 -25
  655. package/build/types-ts3.8/scope-utils.d.ts +0 -15
  656. package/build/types-ts3.8/sdk.d.ts +0 -10
  657. package/build/types-ts3.8/transport.d.ts +0 -34
  658. package/build/types-ts3.8/utils/instrumentContext.d.ts +0 -16
  659. package/build/types-ts3.8/utils/internalSqlQuery.d.ts +0 -20
  660. package/build/types-ts3.8/utils/internalStorageKey.d.ts +0 -22
  661. package/build/types-ts3.8/utils/invocationScope.d.ts +0 -24
  662. package/build/types-ts3.8/utils/isBinding.d.ts +0 -77
  663. package/build/types-ts3.8/utils/isCloudflareClass.d.ts +0 -30
  664. package/build/types-ts3.8/utils/rpcMeta.d.ts +0 -23
  665. package/build/types-ts3.8/utils/rpcOptions.d.ts +0 -13
  666. package/build/types-ts3.8/utils/streaming.d.ts +0 -17
  667. package/build/types-ts3.8/utils/traceLinks.d.ts +0 -28
  668. package/build/types-ts3.8/vendor/stacktrace.d.ts +0 -11
  669. package/build/types-ts3.8/vite/agentClass.d.ts +0 -41
  670. package/build/types-ts3.8/vite/autoInstrument.d.ts +0 -22
  671. package/build/types-ts3.8/vite/index.d.ts +0 -98
  672. package/build/types-ts3.8/vite/instrumentFile.d.ts +0 -22
  673. package/build/types-ts3.8/vite/moduleShape.d.ts +0 -52
  674. package/build/types-ts3.8/vite/transform.d.ts +0 -65
  675. package/build/types-ts3.8/vite/workerEntrypoint.d.ts +0 -12
  676. package/build/types-ts3.8/vite/wranglerConfig.d.ts +0 -43
  677. package/build/types-ts3.8/withSentry.d.ts +0 -16
  678. package/build/types-ts3.8/workflows.d.ts +0 -25
  679. package/build/types-ts3.8/wrapMethodWithSentry.d.ts +0 -43
  680. /package/build/cjs/{client.js → dev/client.js} +0 -0
  681. /package/build/cjs/{debug-build.js → dev/debug-build.js} +0 -0
  682. /package/build/cjs/{defineCloudflareOptions.js → dev/defineCloudflareOptions.js} +0 -0
  683. /package/build/cjs/{flush.js → dev/flush.js} +0 -0
  684. /package/build/cjs/{instrument.js → dev/instrument.js} +0 -0
  685. /package/build/cjs/{instrumentations → dev/instrumentations}/agents/index.js +0 -0
  686. /package/build/cjs/{instrumentations → dev/instrumentations}/agents/instrumentAgentCallableRpc.js +0 -0
  687. /package/build/cjs/{instrumentations → dev/instrumentations}/agents/instrumentAgentRequestConversation.js +0 -0
  688. /package/build/cjs/{instrumentations → dev/instrumentations}/agents/instrumentChatAgentConversation.js +0 -0
  689. /package/build/cjs/{instrumentations → dev/instrumentations}/instrumentDurableObjectNamespace.js +0 -0
  690. /package/build/cjs/{instrumentations → dev/instrumentations}/instrumentDurableObjectStorage.js +0 -0
  691. /package/build/cjs/{instrumentations → dev/instrumentations}/instrumentDurableObjectSyncKvStorage.js +0 -0
  692. /package/build/cjs/{instrumentations → dev/instrumentations}/instrumentSqlStorage.js +0 -0
  693. /package/build/cjs/{instrumentations → dev/instrumentations}/worker/instrumentFetcher.js +0 -0
  694. /package/build/cjs/{instrumentations → dev/instrumentations}/worker/instrumentQueueProducer.js +0 -0
  695. /package/build/cjs/{instrumentations → dev/instrumentations}/worker/instrumentR2.js +0 -0
  696. /package/build/cjs/{instrumentations → dev/instrumentations}/worker/instrumentRateLimit.js +0 -0
  697. /package/build/cjs/{instrumentations → dev/instrumentations}/worker/instrumentTail.js +0 -0
  698. /package/build/cjs/{integrations → dev/integrations}/spotlight.js +0 -0
  699. /package/build/cjs/{opentelemetry → dev/opentelemetry}/tracer.js +0 -0
  700. /package/build/cjs/{scope-utils.js → dev/scope-utils.js} +0 -0
  701. /package/build/cjs/{transport.js → dev/transport.js} +0 -0
  702. /package/build/cjs/{utils → dev/utils}/internalSqlQuery.js +0 -0
  703. /package/build/cjs/{utils → dev/utils}/internalStorageKey.js +0 -0
  704. /package/build/cjs/{utils → dev/utils}/invocationScope.js +0 -0
  705. /package/build/cjs/{utils → dev/utils}/isBinding.js +0 -0
  706. /package/build/cjs/{utils → dev/utils}/isCloudflareClass.js +0 -0
  707. /package/build/cjs/{utils → dev/utils}/rpcMeta.js +0 -0
  708. /package/build/cjs/{utils → dev/utils}/streaming.js +0 -0
  709. /package/build/cjs/{utils → dev/utils}/traceLinks.js +0 -0
  710. /package/build/cjs/{vendor → dev/vendor}/stacktrace.js +0 -0
  711. /package/build/cjs/{vite → dev/vite}/agentClass.js +0 -0
  712. /package/build/cjs/{vite → dev/vite}/autoInstrument.js +0 -0
  713. /package/build/cjs/{vite → dev/vite}/instrumentFile.js +0 -0
  714. /package/build/cjs/{vite → dev/vite}/moduleShape.js +0 -0
  715. /package/build/cjs/{vite → dev/vite}/transform.js +0 -0
  716. /package/build/cjs/{vite → dev/vite}/workerEntrypoint.js +0 -0
  717. /package/build/cjs/{vite → dev/vite}/wranglerConfig.js +0 -0
  718. /package/build/cjs/{wrapMethodWithSentry.js → dev/wrapMethodWithSentry.js} +0 -0
  719. /package/build/esm/{client.js → dev/client.js} +0 -0
  720. /package/build/esm/{debug-build.js → dev/debug-build.js} +0 -0
  721. /package/build/esm/{defineCloudflareOptions.js → dev/defineCloudflareOptions.js} +0 -0
  722. /package/build/esm/{flush.js → dev/flush.js} +0 -0
  723. /package/build/esm/{instrument.js → dev/instrument.js} +0 -0
  724. /package/build/esm/{instrumentations → dev/instrumentations}/agents/index.js +0 -0
  725. /package/build/esm/{instrumentations → dev/instrumentations}/agents/instrumentAgentCallableRpc.js +0 -0
  726. /package/build/esm/{instrumentations → dev/instrumentations}/agents/instrumentAgentRequestConversation.js +0 -0
  727. /package/build/esm/{instrumentations → dev/instrumentations}/agents/instrumentChatAgentConversation.js +0 -0
  728. /package/build/esm/{instrumentations → dev/instrumentations}/instrumentDurableObjectNamespace.js +0 -0
  729. /package/build/esm/{instrumentations → dev/instrumentations}/instrumentDurableObjectStorage.js +0 -0
  730. /package/build/esm/{instrumentations → dev/instrumentations}/instrumentDurableObjectSyncKvStorage.js +0 -0
  731. /package/build/esm/{instrumentations → dev/instrumentations}/instrumentSqlStorage.js +0 -0
  732. /package/build/esm/{instrumentations → dev/instrumentations}/worker/instrumentFetcher.js +0 -0
  733. /package/build/esm/{instrumentations → dev/instrumentations}/worker/instrumentQueueProducer.js +0 -0
  734. /package/build/esm/{instrumentations → dev/instrumentations}/worker/instrumentR2.js +0 -0
  735. /package/build/esm/{instrumentations → dev/instrumentations}/worker/instrumentRateLimit.js +0 -0
  736. /package/build/esm/{instrumentations → dev/instrumentations}/worker/instrumentTail.js +0 -0
  737. /package/build/esm/{integrations → dev/integrations}/spotlight.js +0 -0
  738. /package/build/esm/{opentelemetry → dev/opentelemetry}/tracer.js +0 -0
  739. /package/build/esm/{scope-utils.js → dev/scope-utils.js} +0 -0
  740. /package/build/esm/{transport.js → dev/transport.js} +0 -0
  741. /package/build/esm/{utils → dev/utils}/internalSqlQuery.js +0 -0
  742. /package/build/esm/{utils → dev/utils}/internalStorageKey.js +0 -0
  743. /package/build/esm/{utils → dev/utils}/invocationScope.js +0 -0
  744. /package/build/esm/{utils → dev/utils}/isBinding.js +0 -0
  745. /package/build/esm/{utils → dev/utils}/isCloudflareClass.js +0 -0
  746. /package/build/esm/{utils → dev/utils}/rpcMeta.js +0 -0
  747. /package/build/esm/{utils → dev/utils}/streaming.js +0 -0
  748. /package/build/esm/{vendor → dev/vendor}/stacktrace.js +0 -0
  749. /package/build/esm/{vite → dev/vite}/agentClass.js +0 -0
  750. /package/build/esm/{vite → dev/vite}/autoInstrument.js +0 -0
  751. /package/build/esm/{vite → dev/vite}/instrumentFile.js +0 -0
  752. /package/build/esm/{vite → dev/vite}/moduleShape.js +0 -0
  753. /package/build/esm/{vite → dev/vite}/transform.js +0 -0
  754. /package/build/esm/{vite → dev/vite}/workerEntrypoint.js +0 -0
  755. /package/build/esm/{vite → dev/vite}/wranglerConfig.js +0 -0
  756. /package/build/esm/{wrapMethodWithSentry.js → dev/wrapMethodWithSentry.js} +0 -0
@@ -0,0 +1,52 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+
3
+ const core = require('@sentry/core');
4
+ const debugBuild = require('../../debug-build.js');
5
+ const types = require('./types.js');
6
+
7
+ function instrumentAgentCallableRpc(obj) {
8
+ const original = obj.onMessage;
9
+ if (typeof original !== "function") {
10
+ debugBuild.DEBUG_BUILD && core.debug.log("[Sentry] Agent `onMessage` not found \u2014 callable RPC span instrumentation skipped.");
11
+ return;
12
+ }
13
+ obj.onMessage = new Proxy(original, {
14
+ apply(target, thisArg, args) {
15
+ const method = extractCallableMethod(args[1]);
16
+ if (!method) {
17
+ return Reflect.apply(target, thisArg, args);
18
+ }
19
+ return core.startSpan(
20
+ {
21
+ name: method,
22
+ attributes: {
23
+ [core.SEMANTIC_ATTRIBUTE_SENTRY_OP]: "rpc",
24
+ [core.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: types.AGENT_SPAN_ORIGIN,
25
+ ...types.getAgentAttributes(thisArg)
26
+ }
27
+ },
28
+ async () => {
29
+ await types.setAgentConversationId(thisArg);
30
+ return Reflect.apply(target, thisArg, args);
31
+ }
32
+ );
33
+ }
34
+ });
35
+ }
36
+ function extractCallableMethod(message) {
37
+ const text = typeof message === "string" ? message : message instanceof ArrayBuffer ? new TextDecoder().decode(message) : void 0;
38
+ if (!text) {
39
+ return void 0;
40
+ }
41
+ try {
42
+ const parsed = JSON.parse(text);
43
+ if (parsed.type === "rpc" && typeof parsed.method === "string" && Array.isArray(parsed.args)) {
44
+ return parsed.method;
45
+ }
46
+ } catch {
47
+ }
48
+ return void 0;
49
+ }
50
+
51
+ exports.instrumentAgentCallableRpc = instrumentAgentCallableRpc;
52
+ //# sourceMappingURL=instrumentAgentCallableRpc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instrumentAgentCallableRpc.js","sources":["../../../../../src/instrumentations/agents/instrumentAgentCallableRpc.ts"],"sourcesContent":["import { debug, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, startSpan } from '@sentry/core';\nimport { DEBUG_BUILD } from '../../debug-build';\nimport { AGENT_SPAN_ORIGIN, type AgentInternals, getAgentAttributes, setAgentConversationId } from './types';\n\n/**\n * Wraps the Agent's `onMessage` handler to create a span for each `@callable()` RPC invocation.\n * RPC requests arrive as WebSocket messages, so this span nests under the active transaction for\n * the WebSocket message (on Cloudflare, the instrumented Durable Object `webSocketMessage` hook).\n *\n * Also sets the conversation id on the scope for the duration of the call: callable methods are the\n * unit of work for plain (non-chat) agents, which run LLM calls just like chat turns do. It is\n * awaited so the id is on the scope before the method body creates any span; the `agents`\n * `onMessage` own property this wraps is already `async`, so the promise return is nothing new to\n * the WebSocket dispatch upstream.\n */\nexport function instrumentAgentCallableRpc(obj: AgentInternals): void {\n const original = obj.onMessage;\n if (typeof original !== 'function') {\n DEBUG_BUILD && debug.log('[Sentry] Agent `onMessage` not found — callable RPC span instrumentation skipped.');\n return;\n }\n\n obj.onMessage = new Proxy(original, {\n apply(target, thisArg: AgentInternals, args: unknown[]): unknown {\n const method = extractCallableMethod(args[1]);\n\n if (!method) {\n return Reflect.apply(target, thisArg, args);\n }\n\n return startSpan(\n {\n name: method,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_OP]: 'rpc',\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: AGENT_SPAN_ORIGIN,\n ...getAgentAttributes(thisArg),\n },\n },\n async () => {\n await setAgentConversationId(thisArg);\n return Reflect.apply(target, thisArg, args);\n },\n );\n },\n });\n}\n\n/** Extracts the RPC method name from a WebSocket message, mirroring the SDK's `isRPCRequest`. */\nfunction extractCallableMethod(message: unknown): string | undefined {\n const text =\n typeof message === 'string'\n ? message\n : message instanceof ArrayBuffer\n ? new TextDecoder().decode(message)\n : undefined;\n\n if (!text) {\n return undefined;\n }\n\n try {\n const parsed = JSON.parse(text) as { type?: unknown; method?: unknown; args?: unknown };\n if (parsed.type === 'rpc' && typeof parsed.method === 'string' && Array.isArray(parsed.args)) {\n return parsed.method;\n }\n } catch {\n // Not JSON, or not an RPC request — no span.\n }\n\n return undefined;\n}\n"],"names":["DEBUG_BUILD","debug","startSpan","SEMANTIC_ATTRIBUTE_SENTRY_OP","SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN","AGENT_SPAN_ORIGIN","getAgentAttributes","setAgentConversationId"],"mappings":";;;;;;AAeO,SAAS,2BAA2B,GAAA,EAA2B;AACpE,EAAA,MAAM,WAAW,GAAA,CAAI,SAAA;AACrB,EAAA,IAAI,OAAO,aAAa,UAAA,EAAY;AAClC,IAAAA,sBAAA,IAAeC,UAAA,CAAM,IAAI,wFAAmF,CAAA;AAC5G,IAAA;AAAA,EACF;AAEA,EAAA,GAAA,CAAI,SAAA,GAAY,IAAI,KAAA,CAAM,QAAA,EAAU;AAAA,IAClC,KAAA,CAAM,MAAA,EAAQ,OAAA,EAAyB,IAAA,EAA0B;AAC/D,MAAA,MAAM,MAAA,GAAS,qBAAA,CAAsB,IAAA,CAAK,CAAC,CAAC,CAAA;AAE5C,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA,OAAO,OAAA,CAAQ,KAAA,CAAM,MAAA,EAAQ,OAAA,EAAS,IAAI,CAAA;AAAA,MAC5C;AAEA,MAAA,OAAOC,cAAA;AAAA,QACL;AAAA,UACE,IAAA,EAAM,MAAA;AAAA,UACN,UAAA,EAAY;AAAA,YACV,CAACC,iCAA4B,GAAG,KAAA;AAAA,YAChC,CAACC,qCAAgC,GAAGC,uBAAA;AAAA,YACpC,GAAGC,yBAAmB,OAAO;AAAA;AAC/B,SACF;AAAA,QACA,YAAY;AACV,UAAA,MAAMC,6BAAuB,OAAO,CAAA;AACpC,UAAA,OAAO,OAAA,CAAQ,KAAA,CAAM,MAAA,EAAQ,OAAA,EAAS,IAAI,CAAA;AAAA,QAC5C;AAAA,OACF;AAAA,IACF;AAAA,GACD,CAAA;AACH;AAGA,SAAS,sBAAsB,OAAA,EAAsC;AACnE,EAAA,MAAM,IAAA,GACJ,OAAO,OAAA,KAAY,QAAA,GACf,OAAA,GACA,OAAA,YAAmB,WAAA,GACjB,IAAI,WAAA,EAAY,CAAE,MAAA,CAAO,OAAO,CAAA,GAChC,MAAA;AAER,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,IAAI;AACF,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,KAAA,CAAM,IAAI,CAAA;AAC9B,IAAA,IAAI,MAAA,CAAO,IAAA,KAAS,KAAA,IAAS,OAAO,MAAA,CAAO,MAAA,KAAW,QAAA,IAAY,KAAA,CAAM,OAAA,CAAQ,MAAA,CAAO,IAAI,CAAA,EAAG;AAC5F,MAAA,OAAO,MAAA,CAAO,MAAA;AAAA,IAChB;AAAA,EACF,CAAA,CAAA,MAAQ;AAAA,EAER;AAEA,EAAA,OAAO,MAAA;AACT;;;;"}
@@ -0,0 +1,19 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+
3
+ const types = require('./types.js');
4
+
5
+ function instrumentAgentRequestConversation(obj) {
6
+ const original = obj.onRequest;
7
+ if (typeof original !== "function") {
8
+ return;
9
+ }
10
+ obj.onRequest = new Proxy(original, {
11
+ async apply(target, thisArg, args) {
12
+ await types.setAgentConversationId(thisArg);
13
+ return Reflect.apply(target, thisArg, args);
14
+ }
15
+ });
16
+ }
17
+
18
+ exports.instrumentAgentRequestConversation = instrumentAgentRequestConversation;
19
+ //# sourceMappingURL=instrumentAgentRequestConversation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instrumentAgentRequestConversation.js","sources":["../../../../../src/instrumentations/agents/instrumentAgentRequestConversation.ts"],"sourcesContent":["import { type AgentInternals, setAgentConversationId } from './types';\n\n/**\n * Correlates the AI spans of an HTTP-driven agent turn with a conversation id on the active scope.\n *\n * `onRequest` is the third unit of agent work, alongside chat turns and `@callable()` RPC: the\n * `agents` router sends every non-WebSocket request to it, which is how REST endpoints and webhooks\n * reach an agent.\n *\n * `agents` installs `onRequest` as an own property in the `Agent` constructor (as it does\n * `onMessage`), and we instrument after construction, so wrapping the own property is what the\n * router ends up calling. That own property is already `async`, and partyserver's `fetch` awaits it,\n * so returning a promise from this wrapper — to get the conversation id onto the scope before the\n * request handler creates any span — keeps the existing contract.\n */\nexport function instrumentAgentRequestConversation(obj: AgentInternals): void {\n const original = obj.onRequest;\n\n if (typeof original !== 'function') {\n return;\n }\n\n obj.onRequest = new Proxy(original, {\n async apply(target, thisArg: AgentInternals, args: unknown[]): Promise<unknown> {\n await setAgentConversationId(thisArg);\n\n return Reflect.apply(target, thisArg, args);\n },\n });\n}\n"],"names":["setAgentConversationId"],"mappings":";;;;AAeO,SAAS,mCAAmC,GAAA,EAA2B;AAC5E,EAAA,MAAM,WAAW,GAAA,CAAI,SAAA;AAErB,EAAA,IAAI,OAAO,aAAa,UAAA,EAAY;AAClC,IAAA;AAAA,EACF;AAEA,EAAA,GAAA,CAAI,SAAA,GAAY,IAAI,KAAA,CAAM,QAAA,EAAU;AAAA,IAClC,MAAM,KAAA,CAAM,MAAA,EAAQ,OAAA,EAAyB,IAAA,EAAmC;AAC9E,MAAA,MAAMA,6BAAuB,OAAO,CAAA;AAEpC,MAAA,OAAO,OAAA,CAAQ,KAAA,CAAM,MAAA,EAAQ,OAAA,EAAS,IAAI,CAAA;AAAA,IAC5C;AAAA,GACD,CAAA;AACH;;;;"}
@@ -0,0 +1,31 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+
3
+ const core = require('@sentry/core');
4
+ const types = require('./types.js');
5
+
6
+ function instrumentChatAgentConversation(obj) {
7
+ const originalEmit = obj._emit;
8
+ if (typeof originalEmit === "function") {
9
+ obj._emit = new Proxy(originalEmit, {
10
+ apply(target, thisArg, args) {
11
+ if (args[0] === "message:clear") {
12
+ types.storeAgentConversationId(thisArg, core.uuid4());
13
+ }
14
+ return Reflect.apply(target, thisArg, args);
15
+ }
16
+ });
17
+ }
18
+ const original = obj.onChatMessage;
19
+ if (typeof original !== "function") {
20
+ return;
21
+ }
22
+ obj.onChatMessage = new Proxy(original, {
23
+ async apply(target, thisArg, args) {
24
+ await types.setAgentConversationId(thisArg);
25
+ return Reflect.apply(target, thisArg, args);
26
+ }
27
+ });
28
+ }
29
+
30
+ exports.instrumentChatAgentConversation = instrumentChatAgentConversation;
31
+ //# sourceMappingURL=instrumentChatAgentConversation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instrumentChatAgentConversation.js","sources":["../../../../../src/instrumentations/agents/instrumentChatAgentConversation.ts"],"sourcesContent":["import { uuid4 } from '@sentry/core';\nimport { type AgentInternals, setAgentConversationId, storeAgentConversationId } from './types';\n\n/**\n * For chat agents (`AIChatAgent` from `@cloudflare/ai-chat`), correlates each chat turn's AI spans\n * with a conversation id on the active scope.\n *\n * In the Agents model one agent instance is one long-lived conversation, so the conversation id is\n * minted once per instance and persisted to Durable Object storage, which is what carries it across\n * hibernation (that destroys the in-memory instance). When the user clears the chat, they expect a\n * fresh conversation — but recreating the Durable Object for that would also drop the MCP/OAuth\n * state stored per instance (GitHub/Sentry sign-in). To get a fresh conversation id *without*\n * losing that state, we rotate the persisted id when the SDK reports a cleared chat.\n *\n * The id itself is not attached to spans here — `setAgentConversationId` resolves it, and the SDK's\n * `conversationIdIntegration` picks it off the scope at `spanStart` to stamp\n * `gen_ai.conversation.id` onto the AI spans created inside the turn (e.g. by the Workers AI\n * instrumentation), which correlates a turn's model and tool calls.\n *\n * Plain (non-chat) `Agent`s do not define `onChatMessage`, so they are skipped here — their unit\n * of work is the callable RPC method, where `instrumentAgentCallableRpc` sets the conversation id\n * instead.\n */\nexport function instrumentChatAgentConversation(obj: AgentInternals): void {\n // Rotate the conversation id when the chat is cleared. `_emit` is the central choke-point through\n // which all `agents:*` observability events are published, and it already exists on the base\n // `Agent` class — so this hook composes with the RPC instrumentation, which keys off the same\n // surface. We shadow it with an own property so the original stays reachable on the prototype.\n const originalEmit = obj._emit;\n\n if (typeof originalEmit === 'function') {\n obj._emit = new Proxy(originalEmit, {\n apply(target, thisArg: AgentInternals, args: [string, Record<string, unknown>?]) {\n if (args[0] === 'message:clear') {\n storeAgentConversationId(thisArg, uuid4());\n }\n\n return Reflect.apply(target, thisArg, args);\n },\n });\n }\n\n const original = obj.onChatMessage;\n\n if (typeof original !== 'function') {\n return;\n }\n\n obj.onChatMessage = new Proxy(original, {\n async apply(target, thisArg: AgentInternals, args: unknown[]): Promise<unknown> {\n await setAgentConversationId(thisArg);\n\n return Reflect.apply(target, thisArg, args);\n },\n });\n}\n"],"names":["storeAgentConversationId","uuid4","setAgentConversationId"],"mappings":";;;;;AAuBO,SAAS,gCAAgC,GAAA,EAA2B;AAKzE,EAAA,MAAM,eAAe,GAAA,CAAI,KAAA;AAEzB,EAAA,IAAI,OAAO,iBAAiB,UAAA,EAAY;AACtC,IAAA,GAAA,CAAI,KAAA,GAAQ,IAAI,KAAA,CAAM,YAAA,EAAc;AAAA,MAClC,KAAA,CAAM,MAAA,EAAQ,OAAA,EAAyB,IAAA,EAA0C;AAC/E,QAAA,IAAI,IAAA,CAAK,CAAC,CAAA,KAAM,eAAA,EAAiB;AAC/B,UAAAA,8BAAA,CAAyB,OAAA,EAASC,YAAO,CAAA;AAAA,QAC3C;AAEA,QAAA,OAAO,OAAA,CAAQ,KAAA,CAAM,MAAA,EAAQ,OAAA,EAAS,IAAI,CAAA;AAAA,MAC5C;AAAA,KACD,CAAA;AAAA,EACH;AAEA,EAAA,MAAM,WAAW,GAAA,CAAI,aAAA;AAErB,EAAA,IAAI,OAAO,aAAa,UAAA,EAAY;AAClC,IAAA;AAAA,EACF;AAEA,EAAA,GAAA,CAAI,aAAA,GAAgB,IAAI,KAAA,CAAM,QAAA,EAAU;AAAA,IACtC,MAAM,KAAA,CAAM,MAAA,EAAQ,OAAA,EAAyB,IAAA,EAAmC;AAC9E,MAAA,MAAMC,6BAAuB,OAAO,CAAA;AAEpC,MAAA,OAAO,OAAA,CAAQ,KAAA,CAAM,MAAA,EAAQ,OAAA,EAAS,IAAI,CAAA;AAAA,IAC5C;AAAA,GACD,CAAA;AACH;;;;"}
@@ -0,0 +1,77 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+
3
+ const attributes = require('@sentry/conventions/attributes');
4
+ const core = require('@sentry/core');
5
+ const debugBuild = require('../../debug-build.js');
6
+
7
+ const AGENT_SPAN_ORIGIN = "auto.faas.cloudflare.agents";
8
+ const AGENT_CONVERSATION_ID_STORAGE_KEY = "__SENTRY_AGENT_CONVERSATION_ID__";
9
+ const AGENT_CONVERSATION_ID_SYMBOL = /* @__PURE__ */ Symbol("sentryAgentConversationId");
10
+ const AGENT_APPLIED_CONVERSATION_ID_SYMBOL = /* @__PURE__ */ Symbol("sentryAgentAppliedConversationId");
11
+ function getAgentAttributes(instance) {
12
+ const attributes$1 = {};
13
+ const agentClass = instance._ParentClass?.name;
14
+ if (typeof agentClass === "string" && agentClass) {
15
+ attributes$1[attributes.GEN_AI_AGENT_NAME] = agentClass;
16
+ }
17
+ return attributes$1;
18
+ }
19
+ function storeAgentConversationId(instance, conversationId) {
20
+ instance[AGENT_CONVERSATION_ID_SYMBOL] = conversationId;
21
+ const storage = resolveStorage(instance);
22
+ if (!storage) {
23
+ return;
24
+ }
25
+ try {
26
+ storage.put(AGENT_CONVERSATION_ID_STORAGE_KEY, conversationId).catch((error) => debugBuild.DEBUG_BUILD && core.debug.log("[Sentry] Failed to persist agent conversation id", error));
27
+ } catch (error) {
28
+ debugBuild.DEBUG_BUILD && core.debug.log("[Sentry] Failed to persist agent conversation id", error);
29
+ }
30
+ }
31
+ async function setAgentConversationId(instance) {
32
+ const isolationScope = core.getIsolationScope();
33
+ const existing = isolationScope.getScopeData().conversationId ?? core.getCurrentScope().getScopeData().conversationId;
34
+ if (existing && existing !== instance[AGENT_APPLIED_CONVERSATION_ID_SYMBOL]) {
35
+ return;
36
+ }
37
+ const conversationId = instance[AGENT_CONVERSATION_ID_SYMBOL] ?? await loadAgentConversationId(instance);
38
+ instance[AGENT_APPLIED_CONVERSATION_ID_SYMBOL] = conversationId;
39
+ isolationScope.setConversationId(conversationId);
40
+ }
41
+ async function loadAgentConversationId(instance) {
42
+ let stored;
43
+ let readFailed = false;
44
+ try {
45
+ stored = await resolveStorage(instance)?.get(AGENT_CONVERSATION_ID_STORAGE_KEY);
46
+ } catch (error) {
47
+ readFailed = true;
48
+ debugBuild.DEBUG_BUILD && core.debug.log("[Sentry] Failed to read agent conversation id from storage", error);
49
+ }
50
+ const cached = instance[AGENT_CONVERSATION_ID_SYMBOL];
51
+ if (cached !== void 0) {
52
+ return cached;
53
+ }
54
+ if (typeof stored === "string" && stored) {
55
+ instance[AGENT_CONVERSATION_ID_SYMBOL] = stored;
56
+ return stored;
57
+ }
58
+ const conversationId = core.uuid4();
59
+ if (readFailed) {
60
+ instance[AGENT_CONVERSATION_ID_SYMBOL] = conversationId;
61
+ } else {
62
+ storeAgentConversationId(instance, conversationId);
63
+ }
64
+ return conversationId;
65
+ }
66
+ function resolveStorage(instance) {
67
+ return instance.ctx?.originalStorage ?? instance.ctx?.storage;
68
+ }
69
+
70
+ exports.AGENT_APPLIED_CONVERSATION_ID_SYMBOL = AGENT_APPLIED_CONVERSATION_ID_SYMBOL;
71
+ exports.AGENT_CONVERSATION_ID_STORAGE_KEY = AGENT_CONVERSATION_ID_STORAGE_KEY;
72
+ exports.AGENT_CONVERSATION_ID_SYMBOL = AGENT_CONVERSATION_ID_SYMBOL;
73
+ exports.AGENT_SPAN_ORIGIN = AGENT_SPAN_ORIGIN;
74
+ exports.getAgentAttributes = getAgentAttributes;
75
+ exports.setAgentConversationId = setAgentConversationId;
76
+ exports.storeAgentConversationId = storeAgentConversationId;
77
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sources":["../../../../../src/instrumentations/agents/types.ts"],"sourcesContent":["import { GEN_AI_AGENT_NAME } from '@sentry/conventions/attributes';\nimport type { DurableObjectStorage } from '@cloudflare/workers-types';\nimport { debug, getCurrentScope, getIsolationScope, uuid4 } from '@sentry/core';\nimport { DEBUG_BUILD } from '../../debug-build';\nimport type { InstrumentedDurableObjectState } from '../../wrapMethodWithSentry';\n\nexport const AGENT_SPAN_ORIGIN = 'auto.faas.cloudflare.agents';\n\n/** DO storage key under which the conversation id is persisted so it survives hibernation. */\nexport const AGENT_CONVERSATION_ID_STORAGE_KEY = '__SENTRY_AGENT_CONVERSATION_ID__';\n\n/**\n * Instance keys for our conversation-id bookkeeping, keyed by symbol so the state stays invisible\n * to anything enumerating the user-owned agent instance (`Object.keys`, `JSON.stringify`, spread).\n * Exported because the exported `AgentInternals` interface references them.\n */\nexport const AGENT_CONVERSATION_ID_SYMBOL: unique symbol = Symbol('sentryAgentConversationId');\nexport const AGENT_APPLIED_CONVERSATION_ID_SYMBOL: unique symbol = Symbol('sentryAgentAppliedConversationId');\n\n/**\n * The subset of the `agents` `Agent` instance internals that we instrument. These are runtime\n * implementation details of the `agents` package (v0.13.x) rather than part of its public type\n * surface, so every access is guarded and wrapping degrades gracefully if a name changes upstream.\n */\nexport interface AgentInternals {\n /** Central choke-point through which all `agents:*` observability events are published. */\n _emit?: (type: string, payload?: Record<string, unknown>) => void;\n /** WebSocket message handler; dispatches `@callable()` RPC requests. */\n onMessage?: (...args: unknown[]) => unknown;\n /**\n * Chat-turn handler. Only `AIChatAgent` (from `@cloudflare/ai-chat`) defines this; a plain `Agent`\n * does not, so its presence discriminates a chat agent.\n */\n onChatMessage?: (...args: unknown[]) => unknown;\n /** HTTP request handler; the router sends every non-WebSocket request here. */\n onRequest?: (...args: unknown[]) => unknown;\n /** The user's Agent class (used by the SDK for the observability event `agent` field). */\n _ParentClass?: { name?: string };\n /** The Agent instance name, reported as the `cloudflare.agent.name` span attribute. */\n name?: string;\n /**\n * The Durable Object state of the instance. Present on every real Agent; guarded like the other\n * internals so partially-mocked instances keep working.\n */\n ctx?: InstrumentedDurableObjectState;\n /**\n * The current conversation id for this agent instance. It is cached in memory after being loaded\n * from Durable Object storage and updated when the conversation rotates. `undefined` means storage\n * has not been read yet.\n */\n [AGENT_CONVERSATION_ID_SYMBOL]?: string;\n /**\n * The conversation id this instrumentation most recently applied to the isolation scope. It lets\n * subsequent units of work distinguish an SDK-applied id, which may be replaced after rotation,\n * from an id explicitly set by the user, which must be preserved.\n */\n [AGENT_APPLIED_CONVERSATION_ID_SYMBOL]?: string;\n}\n\n/** Reads best-effort agent identity attributes from the instance, tolerating missing internals. */\nexport function getAgentAttributes(instance: AgentInternals): Record<string, string> {\n const attributes: Record<string, string> = {};\n\n const agentClass = instance._ParentClass?.name;\n if (typeof agentClass === 'string' && agentClass) {\n attributes[GEN_AI_AGENT_NAME] = agentClass;\n }\n\n return attributes;\n}\n\n/**\n * Persists the conversation id to Durable Object storage, so it survives hibernation, and updates\n * the in-memory cache synchronously so the current wake is immediately consistent even if the\n * write fails. Uses the async storage API, which exists on KV- and SQLite-backed DOs alike.\n * The write is fire-and-forget: DO storage writes are tracked by the runtime and land without\n * awaiting (`waitUntil` is a no-op in Durable Objects), and the catch keeps a rejection from\n * surfacing as unhandled — a failed write just means the next wake starts a new conversation,\n * which must never throw into user code. Uses the original uninstrumented storage so internal\n * bookkeeping doesn't create spans.\n */\nexport function storeAgentConversationId(instance: AgentInternals, conversationId: string): void {\n instance[AGENT_CONVERSATION_ID_SYMBOL] = conversationId;\n\n const storage = resolveStorage(instance);\n if (!storage) {\n return;\n }\n\n try {\n storage\n .put(AGENT_CONVERSATION_ID_STORAGE_KEY, conversationId)\n .catch(error => DEBUG_BUILD && debug.log('[Sentry] Failed to persist agent conversation id', error));\n } catch (error) {\n DEBUG_BUILD && debug.log('[Sentry] Failed to persist agent conversation id', error);\n }\n}\n\n/**\n * Sets the agent instance's conversation id on the active scope for the duration of the\n * surrounding unit of work (chat turn, callable RPC call, HTTP request). In the Agents model one\n * instance is one long-lived conversation, so the id is minted once per instance and persisted to\n * DO storage — for chat and plain agents alike, since plain agents run LLM calls too (e.g. inside\n * `@callable()` methods). The instance `name` is deliberately not used: it is caller-chosen and can\n * be a stable, guessable, or shared value, whereas a conversation id should identify exactly one\n * conversation. Clearing the chat rotates it (see `storeAgentConversationId`) so subsequent LLM\n * calls group under the fresh conversation.\n *\n * Every handler wrapper awaits this before invoking the original, so the id is on the scope before\n * the unit of work — and any `gen_ai` span it creates — starts. Only the first unit of work per wake\n * pays the storage read; the rest resolve from the in-memory cache. Awaiting is safe on all three\n * paths because the `agents` `Agent` constructor already replaces `onMessage` and `onRequest` with\n * `async` wrappers of its own, and `onChatMessage` is async by contract, so every caller upstream\n * already handles a promise.\n *\n * An id the user set explicitly outranks this inferred one, in either order: a `setConversationId()`\n * call that already happened is detected here and left alone, and one made inside the handler lands\n * on the same scope afterwards and therefore wins. That is why the write targets the isolation scope\n * — it is the scope the public `Sentry.setConversationId()` writes to, and `conversationIdIntegration`\n * prefers the current scope over it, so writing there would make a user's call unoverridable.\n *\n * `conversationIdIntegration` reads the id off the scope at `spanStart` and stamps\n * `gen_ai.conversation.id` onto AI spans created within the unit of work, correlating its model and\n * tool calls.\n */\nexport async function setAgentConversationId(instance: AgentInternals): Promise<void> {\n const isolationScope = getIsolationScope();\n const existing = isolationScope.getScopeData().conversationId ?? getCurrentScope().getScopeData().conversationId;\n\n // An id that isn't the one we put there ourselves came from the user — never override it.\n if (existing && existing !== instance[AGENT_APPLIED_CONVERSATION_ID_SYMBOL]) {\n return;\n }\n\n const conversationId = instance[AGENT_CONVERSATION_ID_SYMBOL] ?? (await loadAgentConversationId(instance));\n\n instance[AGENT_APPLIED_CONVERSATION_ID_SYMBOL] = conversationId;\n isolationScope.setConversationId(conversationId);\n}\n\n/**\n * Reads the persisted id into the instance cache, minting and persisting a fresh one when storage\n * holds none, so subsequent units of work resolve from memory. The async `get` exists on KV- and\n * SQLite-backed DOs alike, so this one path covers both.\n *\n * Anything already cached by the time the read lands wins over the read: that covers a rotation\n * (cleared chat) racing the read, and a second concurrent unit of work that must not mint and\n * persist a competing id for the same conversation.\n */\nasync function loadAgentConversationId(instance: AgentInternals): Promise<string> {\n let stored: unknown;\n let readFailed = false;\n\n try {\n stored = await resolveStorage(instance)?.get<string>(AGENT_CONVERSATION_ID_STORAGE_KEY);\n } catch (error) {\n readFailed = true;\n DEBUG_BUILD && debug.log('[Sentry] Failed to read agent conversation id from storage', error);\n }\n\n const cached = instance[AGENT_CONVERSATION_ID_SYMBOL];\n\n if (cached !== undefined) {\n return cached;\n }\n\n if (typeof stored === 'string' && stored) {\n instance[AGENT_CONVERSATION_ID_SYMBOL] = stored;\n\n return stored;\n }\n\n const conversationId = uuid4();\n\n if (readFailed) {\n // Cache without persisting: a read that failed may still have an id behind it, and overwriting\n // it would split the conversation for good instead of just for this wake.\n instance[AGENT_CONVERSATION_ID_SYMBOL] = conversationId;\n } else {\n storeAgentConversationId(instance, conversationId);\n }\n\n return conversationId;\n}\n\n/**\n * Resolves the uninstrumented DO storage for internal reads/writes, so they don't create spans of\n * their own. Falls back to the instance's regular storage when the uninstrumented one isn't\n * exposed (e.g. when `instrumentCloudflareAgent` is used directly, without `instrumentContext`).\n */\nfunction resolveStorage(instance: AgentInternals): DurableObjectStorage | undefined {\n return instance.ctx?.originalStorage ?? instance.ctx?.storage;\n}\n"],"names":["attributes","GEN_AI_AGENT_NAME","DEBUG_BUILD","debug","getIsolationScope","getCurrentScope","uuid4"],"mappings":";;;;;;AAMO,MAAM,iBAAA,GAAoB;AAG1B,MAAM,iCAAA,GAAoC;AAO1C,MAAM,4BAAA,0BAAqD,2BAA2B;AACtF,MAAM,oCAAA,0BAA6D,kCAAkC;AA2CrG,SAAS,mBAAmB,QAAA,EAAkD;AACnF,EAAA,MAAMA,eAAqC,EAAC;AAE5C,EAAA,MAAM,UAAA,GAAa,SAAS,YAAA,EAAc,IAAA;AAC1C,EAAA,IAAI,OAAO,UAAA,KAAe,QAAA,IAAY,UAAA,EAAY;AAChD,IAAAA,YAAA,CAAWC,4BAAiB,CAAA,GAAI,UAAA;AAAA,EAClC;AAEA,EAAA,OAAOD,YAAA;AACT;AAYO,SAAS,wBAAA,CAAyB,UAA0B,cAAA,EAA8B;AAC/F,EAAA,QAAA,CAAS,4BAA4B,CAAA,GAAI,cAAA;AAEzC,EAAA,MAAM,OAAA,GAAU,eAAe,QAAQ,CAAA;AACvC,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA;AAAA,EACF;AAEA,EAAA,IAAI;AACF,IAAA,OAAA,CACG,GAAA,CAAI,iCAAA,EAAmC,cAAc,CAAA,CACrD,KAAA,CAAM,CAAA,KAAA,KAASE,sBAAA,IAAeC,UAAA,CAAM,GAAA,CAAI,kDAAA,EAAoD,KAAK,CAAC,CAAA;AAAA,EACvG,SAAS,KAAA,EAAO;AACd,IAAAD,sBAAA,IAAeC,UAAA,CAAM,GAAA,CAAI,kDAAA,EAAoD,KAAK,CAAA;AAAA,EACpF;AACF;AA6BA,eAAsB,uBAAuB,QAAA,EAAyC;AACpF,EAAA,MAAM,iBAAiBC,sBAAA,EAAkB;AACzC,EAAA,MAAM,QAAA,GAAW,eAAe,YAAA,EAAa,CAAE,kBAAkBC,oBAAA,EAAgB,CAAE,cAAa,CAAE,cAAA;AAGlG,EAAA,IAAI,QAAA,IAAY,QAAA,KAAa,QAAA,CAAS,oCAAoC,CAAA,EAAG;AAC3E,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,iBAAiB,QAAA,CAAS,4BAA4B,CAAA,IAAM,MAAM,wBAAwB,QAAQ,CAAA;AAExG,EAAA,QAAA,CAAS,oCAAoC,CAAA,GAAI,cAAA;AACjD,EAAA,cAAA,CAAe,kBAAkB,cAAc,CAAA;AACjD;AAWA,eAAe,wBAAwB,QAAA,EAA2C;AAChF,EAAA,IAAI,MAAA;AACJ,EAAA,IAAI,UAAA,GAAa,KAAA;AAEjB,EAAA,IAAI;AACF,IAAA,MAAA,GAAS,MAAM,cAAA,CAAe,QAAQ,CAAA,EAAG,IAAY,iCAAiC,CAAA;AAAA,EACxF,SAAS,KAAA,EAAO;AACd,IAAA,UAAA,GAAa,IAAA;AACb,IAAAH,sBAAA,IAAeC,UAAA,CAAM,GAAA,CAAI,4DAAA,EAA8D,KAAK,CAAA;AAAA,EAC9F;AAEA,EAAA,MAAM,MAAA,GAAS,SAAS,4BAA4B,CAAA;AAEpD,EAAA,IAAI,WAAW,MAAA,EAAW;AACxB,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,IAAI,OAAO,MAAA,KAAW,QAAA,IAAY,MAAA,EAAQ;AACxC,IAAA,QAAA,CAAS,4BAA4B,CAAA,GAAI,MAAA;AAEzC,IAAA,OAAO,MAAA;AAAA,EACT;AAEA,EAAA,MAAM,iBAAiBG,UAAA,EAAM;AAE7B,EAAA,IAAI,UAAA,EAAY;AAGd,IAAA,QAAA,CAAS,4BAA4B,CAAA,GAAI,cAAA;AAAA,EAC3C,CAAA,MAAO;AACL,IAAA,wBAAA,CAAyB,UAAU,cAAc,CAAA;AAAA,EACnD;AAEA,EAAA,OAAO,cAAA;AACT;AAOA,SAAS,eAAe,QAAA,EAA4D;AAClF,EAAA,OAAO,QAAA,CAAS,GAAA,EAAK,eAAA,IAAmB,QAAA,CAAS,GAAA,EAAK,OAAA;AACxD;;;;;;;;;;"}
@@ -0,0 +1,41 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+
3
+ const rpcMeta = require('../utils/rpcMeta.js');
4
+ const instrumentFetcher = require('./worker/instrumentFetcher.js');
5
+
6
+ const STUB_NON_RPC_METHODS = /* @__PURE__ */ new Set(["fetch", "connect", "dup"]);
7
+ function instrumentDurableObjectNamespace(namespace) {
8
+ return new Proxy(namespace, {
9
+ get(target, prop, _receiver) {
10
+ const value = Reflect.get(target, prop);
11
+ if (typeof value !== "function") {
12
+ return value;
13
+ }
14
+ if (prop === "get" || prop === "getByName") {
15
+ return function(...args) {
16
+ const stub = Reflect.apply(value, target, args);
17
+ return instrumentDurableObjectStub(stub);
18
+ };
19
+ }
20
+ return value.bind(target);
21
+ }
22
+ });
23
+ }
24
+ function instrumentDurableObjectStub(stub) {
25
+ return new Proxy(stub, {
26
+ get(target, prop) {
27
+ const value = Reflect.get(target, prop);
28
+ if (prop === "fetch" && typeof value === "function") {
29
+ return instrumentFetcher.instrumentFetcher((...args) => Reflect.apply(value, target, args));
30
+ }
31
+ if (typeof value === "function" && typeof prop === "string" && !STUB_NON_RPC_METHODS.has(prop)) {
32
+ return (...args) => Reflect.apply(value, target, rpcMeta.appendRpcMeta(args));
33
+ }
34
+ return value;
35
+ }
36
+ });
37
+ }
38
+
39
+ exports.STUB_NON_RPC_METHODS = STUB_NON_RPC_METHODS;
40
+ exports.instrumentDurableObjectNamespace = instrumentDurableObjectNamespace;
41
+ //# sourceMappingURL=instrumentDurableObjectNamespace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instrumentDurableObjectNamespace.js","sources":["../../../../src/instrumentations/instrumentDurableObjectNamespace.ts"],"sourcesContent":["import type { DurableObjectNamespace, DurableObjectStub } from '@cloudflare/workers-types';\nimport { appendRpcMeta } from '../utils/rpcMeta';\nimport { instrumentFetcher } from './worker/instrumentFetcher';\n\n// Built-in DurableObjectStub methods that are not RPC calls.\nexport const STUB_NON_RPC_METHODS = new Set(['fetch', 'connect', 'dup']);\n\n/**\n * Instruments a DurableObjectNamespace binding to create spans for DO interactions.\n *\n * Wraps:\n * - `namespace.get(id)` / `namespace.getByName(name)` with a span + instruments returned stub\n * - `namespace.idFromName(name)` / `namespace.idFromString(id)` / `namespace.newUniqueId()` with breadcrumbs\n *\n * @param namespace - The DurableObjectNamespace to instrument\n */\nexport function instrumentDurableObjectNamespace(namespace: DurableObjectNamespace): DurableObjectNamespace {\n return new Proxy(namespace, {\n get(target, prop, _receiver) {\n const value = Reflect.get(target, prop) as unknown;\n\n if (typeof value !== 'function') {\n return value;\n }\n\n if (prop === 'get' || prop === 'getByName') {\n return function (this: unknown, ...args: unknown[]) {\n const stub = Reflect.apply(value, target, args);\n\n return instrumentDurableObjectStub(stub);\n };\n }\n\n return value.bind(target);\n },\n });\n}\n\n/**\n * Instruments a DurableObjectStub to create spans for outgoing fetch calls\n * and propagate trace context across RPC calls.\n *\n * @param stub - The DurableObjectStub to instrument\n */\nfunction instrumentDurableObjectStub(stub: DurableObjectStub): DurableObjectStub {\n return new Proxy(stub, {\n get(target, prop) {\n const value = Reflect.get(target, prop);\n\n if (prop === 'fetch' && typeof value === 'function') {\n return instrumentFetcher((...args) => Reflect.apply(value, target, args));\n }\n\n if (typeof value === 'function' && typeof prop === 'string' && !STUB_NON_RPC_METHODS.has(prop)) {\n return (...args: unknown[]) => Reflect.apply(value, target, appendRpcMeta(args));\n }\n\n return value;\n },\n });\n}\n"],"names":["instrumentFetcher","appendRpcMeta"],"mappings":";;;;;AAKO,MAAM,uCAAuB,IAAI,GAAA,CAAI,CAAC,OAAA,EAAS,SAAA,EAAW,KAAK,CAAC;AAWhE,SAAS,iCAAiC,SAAA,EAA2D;AAC1G,EAAA,OAAO,IAAI,MAAM,SAAA,EAAW;AAAA,IAC1B,GAAA,CAAI,MAAA,EAAQ,IAAA,EAAM,SAAA,EAAW;AAC3B,MAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,GAAA,CAAI,MAAA,EAAQ,IAAI,CAAA;AAEtC,MAAA,IAAI,OAAO,UAAU,UAAA,EAAY;AAC/B,QAAA,OAAO,KAAA;AAAA,MACT;AAEA,MAAA,IAAI,IAAA,KAAS,KAAA,IAAS,IAAA,KAAS,WAAA,EAAa;AAC1C,QAAA,OAAO,YAA4B,IAAA,EAAiB;AAClD,UAAA,MAAM,IAAA,GAAO,OAAA,CAAQ,KAAA,CAAM,KAAA,EAAO,QAAQ,IAAI,CAAA;AAE9C,UAAA,OAAO,4BAA4B,IAAI,CAAA;AAAA,QACzC,CAAA;AAAA,MACF;AAEA,MAAA,OAAO,KAAA,CAAM,KAAK,MAAM,CAAA;AAAA,IAC1B;AAAA,GACD,CAAA;AACH;AAQA,SAAS,4BAA4B,IAAA,EAA4C;AAC/E,EAAA,OAAO,IAAI,MAAM,IAAA,EAAM;AAAA,IACrB,GAAA,CAAI,QAAQ,IAAA,EAAM;AAChB,MAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,GAAA,CAAI,MAAA,EAAQ,IAAI,CAAA;AAEtC,MAAA,IAAI,IAAA,KAAS,OAAA,IAAW,OAAO,KAAA,KAAU,UAAA,EAAY;AACnD,QAAA,OAAOA,mCAAA,CAAkB,IAAI,IAAA,KAAS,OAAA,CAAQ,MAAM,KAAA,EAAO,MAAA,EAAQ,IAAI,CAAC,CAAA;AAAA,MAC1E;AAEA,MAAA,IAAI,OAAO,KAAA,KAAU,UAAA,IAAc,OAAO,IAAA,KAAS,YAAY,CAAC,oBAAA,CAAqB,GAAA,CAAI,IAAI,CAAA,EAAG;AAC9F,QAAA,OAAO,CAAA,GAAI,SAAoB,OAAA,CAAQ,KAAA,CAAM,OAAO,MAAA,EAAQC,qBAAA,CAAc,IAAI,CAAC,CAAA;AAAA,MACjF;AAEA,MAAA,OAAO,KAAA;AAAA,IACT;AAAA,GACD,CAAA;AACH;;;;;"}
@@ -0,0 +1,72 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+
3
+ const core = require('@sentry/core');
4
+ const internalStorageKey = require('../utils/internalStorageKey.js');
5
+ const traceLinks = require('../utils/traceLinks.js');
6
+ const instrumentDurableObjectSyncKvStorage = require('./instrumentDurableObjectSyncKvStorage.js');
7
+ const instrumentSqlStorage = require('./instrumentSqlStorage.js');
8
+
9
+ const STORAGE_METHODS_TO_INSTRUMENT = ["get", "put", "delete", "list", "setAlarm", "getAlarm", "deleteAlarm"];
10
+ function instrumentDurableObjectStorage(storage, waitUntil) {
11
+ return new Proxy(storage, {
12
+ get(target, prop, _receiver) {
13
+ const original = Reflect.get(target, prop, target);
14
+ if (prop === "kv" && original != null && "get" in original && "put" in original) {
15
+ return instrumentDurableObjectSyncKvStorage.instrumentDurableObjectSyncKvStorage(original);
16
+ }
17
+ if (prop === "sql" && original != null && "databaseSize" in original && "exec" in original) {
18
+ return instrumentSqlStorage.instrumentSqlStorage(original);
19
+ }
20
+ if (typeof original !== "function") {
21
+ return original;
22
+ }
23
+ const methodName = prop;
24
+ if (!STORAGE_METHODS_TO_INSTRUMENT.includes(methodName)) {
25
+ return original.bind(target);
26
+ }
27
+ return function(...args) {
28
+ const allowlist = core.getClient()?.getOptions()?.durableObjectStorageSpanAllowlist;
29
+ const keys = internalStorageKey.getStorageKeys(methodName, args);
30
+ if (keys && keys.length > 0 && keys.every((key) => internalStorageKey.targetsCloudflareInternalKey(key, allowlist))) {
31
+ return original.apply(target, args);
32
+ }
33
+ return core.startSpan(
34
+ {
35
+ // Use underscore naming to match Cloudflare's native instrumentation (e.g., "durable_object_storage_get")
36
+ name: `durable_object_storage_${methodName}`,
37
+ op: "db",
38
+ attributes: {
39
+ [core.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: "auto.db.cloudflare.durable_object",
40
+ "db.system.name": "cloudflare.durable_object.storage",
41
+ "db.operation.name": methodName
42
+ }
43
+ },
44
+ () => {
45
+ const teardown = async () => {
46
+ if (methodName === "setAlarm") {
47
+ traceLinks.storeSpanContext(target, "alarm");
48
+ }
49
+ };
50
+ const result = original.apply(target, args);
51
+ if (!core.isThenable(result)) {
52
+ waitUntil?.(teardown());
53
+ return result;
54
+ }
55
+ return result.then(
56
+ (res) => {
57
+ waitUntil?.(teardown());
58
+ return res;
59
+ },
60
+ (e) => {
61
+ throw e;
62
+ }
63
+ );
64
+ }
65
+ );
66
+ };
67
+ }
68
+ });
69
+ }
70
+
71
+ exports.instrumentDurableObjectStorage = instrumentDurableObjectStorage;
72
+ //# sourceMappingURL=instrumentDurableObjectStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instrumentDurableObjectStorage.js","sources":["../../../../src/instrumentations/instrumentDurableObjectStorage.ts"],"sourcesContent":["import type { DurableObjectStorage, SyncKvStorage, SqlStorage } from '@cloudflare/workers-types';\nimport { getClient, isThenable, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, startSpan } from '@sentry/core';\nimport type { CloudflareClientOptions } from '../client';\nimport { getStorageKeys, targetsCloudflareInternalKey } from '../utils/internalStorageKey';\nimport { storeSpanContext } from '../utils/traceLinks';\nimport { instrumentDurableObjectSyncKvStorage } from './instrumentDurableObjectSyncKvStorage';\nimport { instrumentSqlStorage } from './instrumentSqlStorage';\n\nconst STORAGE_METHODS_TO_INSTRUMENT = ['get', 'put', 'delete', 'list', 'setAlarm', 'getAlarm', 'deleteAlarm'] as const;\n\ntype StorageMethod = (typeof STORAGE_METHODS_TO_INSTRUMENT)[number];\n\ntype WaitUntil = (promise: Promise<unknown>) => void;\n\n/**\n * Instruments DurableObjectStorage methods with Sentry spans.\n *\n * Wraps the following async methods:\n * - get, put, delete, list (KV API)\n * - setAlarm, getAlarm, deleteAlarm (Alarm API)\n *\n * When setAlarm is called, it also stores the current span context so that when\n * the alarm fires later, it can link back to the trace that called setAlarm.\n *\n * @param storage - The DurableObjectStorage instance to instrument\n * @param waitUntil - Optional waitUntil function to defer span context storage\n * @returns An instrumented DurableObjectStorage instance\n */\nexport function instrumentDurableObjectStorage(\n storage: DurableObjectStorage,\n waitUntil?: WaitUntil,\n): DurableObjectStorage {\n return new Proxy(storage, {\n get(target, prop, _receiver) {\n // Use `target` as the receiver instead of the proxy (`_receiver`).\n // Native workerd getters (e.g., `storage.sql`) validate `this` via\n // internal slots. Passing the proxy as receiver breaks that check,\n // causing \"Illegal invocation: function called with incorrect `this`\n // reference\" errors.\n const original = Reflect.get(target, prop, target);\n\n if (prop === 'kv' && original != null && 'get' in original && 'put' in original) {\n return instrumentDurableObjectSyncKvStorage(original as SyncKvStorage);\n }\n\n if (prop === 'sql' && original != null && 'databaseSize' in original && 'exec' in original) {\n return instrumentSqlStorage(original as SqlStorage);\n }\n\n if (typeof original !== 'function') {\n return original;\n }\n\n const methodName = prop as string;\n if (!STORAGE_METHODS_TO_INSTRUMENT.includes(methodName as StorageMethod)) {\n return (original as (...args: unknown[]) => unknown).bind(target);\n }\n\n return function (this: unknown, ...args: unknown[]) {\n // KV entries managed by the DO framework itself (agents/partyserver state) are bookkeeping\n // rather than user work — skip the span, mirroring how `cf_` SQL tables are treated.\n // oxlint-disable-next-line typescript/no-unnecessary-type-assertion -- rule false positive: the cast reaches the Cloudflare-only `durableObjectStorageSpanAllowlist`; tsc errors without it\n const allowlist = (getClient()?.getOptions() as CloudflareClientOptions | undefined)\n ?.durableObjectStorageSpanAllowlist;\n const keys = getStorageKeys(methodName, args);\n if (keys && keys.length > 0 && keys.every(key => targetsCloudflareInternalKey(key, allowlist))) {\n return (original as (...a: unknown[]) => unknown).apply(target, args);\n }\n\n return startSpan(\n {\n // Use underscore naming to match Cloudflare's native instrumentation (e.g., \"durable_object_storage_get\")\n name: `durable_object_storage_${methodName}`,\n op: 'db',\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.db.cloudflare.durable_object',\n 'db.system.name': 'cloudflare.durable_object.storage',\n 'db.operation.name': methodName,\n },\n },\n () => {\n const teardown = async (): Promise<void> => {\n // When setAlarm is called, store the current span context so that when the alarm\n // fires later, it can link back to the trace that called setAlarm.\n // We use the original (uninstrumented) storage (target) to avoid creating a span\n // for this internal operation. The storage is deferred via waitUntil to not block.\n if (methodName === 'setAlarm') {\n storeSpanContext(target, 'alarm');\n }\n };\n\n const result = (original as (...args: unknown[]) => unknown).apply(target, args);\n\n if (!isThenable(result)) {\n waitUntil?.(teardown());\n\n return result;\n }\n\n return result.then(\n res => {\n waitUntil?.(teardown());\n return res;\n },\n e => {\n throw e;\n },\n );\n },\n );\n };\n },\n });\n}\n"],"names":["instrumentDurableObjectSyncKvStorage","instrumentSqlStorage","getClient","getStorageKeys","targetsCloudflareInternalKey","startSpan","SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN","storeSpanContext","isThenable"],"mappings":";;;;;;;;AAQA,MAAM,6BAAA,GAAgC,CAAC,KAAA,EAAO,KAAA,EAAO,UAAU,MAAA,EAAQ,UAAA,EAAY,YAAY,aAAa,CAAA;AAoBrG,SAAS,8BAAA,CACd,SACA,SAAA,EACsB;AACtB,EAAA,OAAO,IAAI,MAAM,OAAA,EAAS;AAAA,IACxB,GAAA,CAAI,MAAA,EAAQ,IAAA,EAAM,SAAA,EAAW;AAM3B,MAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,GAAA,CAAI,MAAA,EAAQ,MAAM,MAAM,CAAA;AAEjD,MAAA,IAAI,SAAS,IAAA,IAAQ,QAAA,IAAY,QAAQ,KAAA,IAAS,QAAA,IAAY,SAAS,QAAA,EAAU;AAC/E,QAAA,OAAOA,0EAAqC,QAAyB,CAAA;AAAA,MACvE;AAEA,MAAA,IAAI,SAAS,KAAA,IAAS,QAAA,IAAY,QAAQ,cAAA,IAAkB,QAAA,IAAY,UAAU,QAAA,EAAU;AAC1F,QAAA,OAAOC,0CAAqB,QAAsB,CAAA;AAAA,MACpD;AAEA,MAAA,IAAI,OAAO,aAAa,UAAA,EAAY;AAClC,QAAA,OAAO,QAAA;AAAA,MACT;AAEA,MAAA,MAAM,UAAA,GAAa,IAAA;AACnB,MAAA,IAAI,CAAC,6BAAA,CAA8B,QAAA,CAAS,UAA2B,CAAA,EAAG;AACxE,QAAA,OAAQ,QAAA,CAA6C,KAAK,MAAM,CAAA;AAAA,MAClE;AAEA,MAAA,OAAO,YAA4B,IAAA,EAAiB;AAIlD,QAAA,MAAM,SAAA,GAAaC,cAAA,EAAU,EAAG,UAAA,EAAW,EACvC,iCAAA;AACJ,QAAA,MAAM,IAAA,GAAOC,iCAAA,CAAe,UAAA,EAAY,IAAI,CAAA;AAC5C,QAAA,IAAI,IAAA,IAAQ,IAAA,CAAK,MAAA,GAAS,CAAA,IAAK,IAAA,CAAK,KAAA,CAAM,CAAA,GAAA,KAAOC,+CAAA,CAA6B,GAAA,EAAK,SAAS,CAAC,CAAA,EAAG;AAC9F,UAAA,OAAQ,QAAA,CAA0C,KAAA,CAAM,MAAA,EAAQ,IAAI,CAAA;AAAA,QACtE;AAEA,QAAA,OAAOC,cAAA;AAAA,UACL;AAAA;AAAA,YAEE,IAAA,EAAM,0BAA0B,UAAU,CAAA,CAAA;AAAA,YAC1C,EAAA,EAAI,IAAA;AAAA,YACJ,UAAA,EAAY;AAAA,cACV,CAACC,qCAAgC,GAAG,mCAAA;AAAA,cACpC,gBAAA,EAAkB,mCAAA;AAAA,cAClB,mBAAA,EAAqB;AAAA;AACvB,WACF;AAAA,UACA,MAAM;AACJ,YAAA,MAAM,WAAW,YAA2B;AAK1C,cAAA,IAAI,eAAe,UAAA,EAAY;AAC7B,gBAAAC,2BAAA,CAAiB,QAAQ,OAAO,CAAA;AAAA,cAClC;AAAA,YACF,CAAA;AAEA,YAAA,MAAM,MAAA,GAAU,QAAA,CAA6C,KAAA,CAAM,MAAA,EAAQ,IAAI,CAAA;AAE/E,YAAA,IAAI,CAACC,eAAA,CAAW,MAAM,CAAA,EAAG;AACvB,cAAA,SAAA,GAAY,UAAU,CAAA;AAEtB,cAAA,OAAO,MAAA;AAAA,YACT;AAEA,YAAA,OAAO,MAAA,CAAO,IAAA;AAAA,cACZ,CAAA,GAAA,KAAO;AACL,gBAAA,SAAA,GAAY,UAAU,CAAA;AACtB,gBAAA,OAAO,GAAA;AAAA,cACT,CAAA;AAAA,cACA,CAAA,CAAA,KAAK;AACH,gBAAA,MAAM,CAAA;AAAA,cACR;AAAA,aACF;AAAA,UACF;AAAA,SACF;AAAA,MACF,CAAA;AAAA,IACF;AAAA,GACD,CAAA;AACH;;;;"}
@@ -0,0 +1,40 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+
3
+ const core = require('@sentry/core');
4
+
5
+ const SYNC_KV_METHODS_TO_INSTRUMENT = ["get", "put", "delete", "list"];
6
+ function instrumentDurableObjectSyncKvStorage(syncKv) {
7
+ return new Proxy(syncKv, {
8
+ get(target, prop, _receiver) {
9
+ const original = Reflect.get(target, prop, target);
10
+ if (typeof original !== "function") {
11
+ return original;
12
+ }
13
+ const methodName = prop;
14
+ if (!SYNC_KV_METHODS_TO_INSTRUMENT.includes(methodName)) {
15
+ return original.bind(target);
16
+ }
17
+ return function(...args) {
18
+ return core.startSpan(
19
+ {
20
+ name: `durable_object_storage_kv_${methodName}`,
21
+ op: "db",
22
+ attributes: {
23
+ [core.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: "auto.db.cloudflare.durable_object",
24
+ // keeping the value as close as possible to the Cloudflare Worker KV instrumentation
25
+ // https://github.com/cloudflare/workerd/blob/6b8b11787e2b2a800ab0edd0690bfab3857b0529/src/workerd/api/sync-kv.c%2B%2B#L19
26
+ "db.system.name": "cloudflare-durable-object-sql",
27
+ "db.operation.name": methodName
28
+ }
29
+ },
30
+ () => {
31
+ return original.apply(target, args);
32
+ }
33
+ );
34
+ };
35
+ }
36
+ });
37
+ }
38
+
39
+ exports.instrumentDurableObjectSyncKvStorage = instrumentDurableObjectSyncKvStorage;
40
+ //# sourceMappingURL=instrumentDurableObjectSyncKvStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instrumentDurableObjectSyncKvStorage.js","sources":["../../../../src/instrumentations/instrumentDurableObjectSyncKvStorage.ts"],"sourcesContent":["import type { SyncKvStorage } from '@cloudflare/workers-types';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, startSpan } from '@sentry/core';\n\nconst SYNC_KV_METHODS_TO_INSTRUMENT = ['get', 'put', 'delete', 'list'] as const;\n\ntype SyncKvMethod = (typeof SYNC_KV_METHODS_TO_INSTRUMENT)[number];\n\nexport function instrumentDurableObjectSyncKvStorage(syncKv: SyncKvStorage): SyncKvStorage {\n return new Proxy(syncKv, {\n get(target, prop, _receiver) {\n const original = Reflect.get(target, prop, target);\n\n if (typeof original !== 'function') {\n return original;\n }\n\n const methodName = prop as SyncKvMethod;\n\n if (!SYNC_KV_METHODS_TO_INSTRUMENT.includes(methodName)) {\n return (original as (...args: unknown[]) => unknown).bind(target);\n }\n\n return function (this: unknown, ...args: unknown[]) {\n return startSpan(\n {\n name: `durable_object_storage_kv_${methodName}`,\n op: 'db',\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.db.cloudflare.durable_object',\n // keeping the value as close as possible to the Cloudflare Worker KV instrumentation\n // https://github.com/cloudflare/workerd/blob/6b8b11787e2b2a800ab0edd0690bfab3857b0529/src/workerd/api/sync-kv.c%2B%2B#L19\n 'db.system.name': 'cloudflare-durable-object-sql',\n 'db.operation.name': methodName,\n },\n },\n () => {\n return (original as (...args: unknown[]) => unknown).apply(target, args);\n },\n );\n };\n },\n });\n}\n"],"names":["startSpan","SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN"],"mappings":";;;;AAGA,MAAM,6BAAA,GAAgC,CAAC,KAAA,EAAO,KAAA,EAAO,UAAU,MAAM,CAAA;AAI9D,SAAS,qCAAqC,MAAA,EAAsC;AACzF,EAAA,OAAO,IAAI,MAAM,MAAA,EAAQ;AAAA,IACvB,GAAA,CAAI,MAAA,EAAQ,IAAA,EAAM,SAAA,EAAW;AAC3B,MAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,GAAA,CAAI,MAAA,EAAQ,MAAM,MAAM,CAAA;AAEjD,MAAA,IAAI,OAAO,aAAa,UAAA,EAAY;AAClC,QAAA,OAAO,QAAA;AAAA,MACT;AAEA,MAAA,MAAM,UAAA,GAAa,IAAA;AAEnB,MAAA,IAAI,CAAC,6BAAA,CAA8B,QAAA,CAAS,UAAU,CAAA,EAAG;AACvD,QAAA,OAAQ,QAAA,CAA6C,KAAK,MAAM,CAAA;AAAA,MAClE;AAEA,MAAA,OAAO,YAA4B,IAAA,EAAiB;AAClD,QAAA,OAAOA,cAAA;AAAA,UACL;AAAA,YACE,IAAA,EAAM,6BAA6B,UAAU,CAAA,CAAA;AAAA,YAC7C,EAAA,EAAI,IAAA;AAAA,YACJ,UAAA,EAAY;AAAA,cACV,CAACC,qCAAgC,GAAG,mCAAA;AAAA;AAAA;AAAA,cAGpC,gBAAA,EAAkB,+BAAA;AAAA,cAClB,mBAAA,EAAqB;AAAA;AACvB,WACF;AAAA,UACA,MAAM;AACJ,YAAA,OAAQ,QAAA,CAA6C,KAAA,CAAM,MAAA,EAAQ,IAAI,CAAA;AAAA,UACzE;AAAA,SACF;AAAA,MACF,CAAA;AAAA,IACF;AAAA,GACD,CAAA;AACH;;;;"}
@@ -0,0 +1,42 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+
3
+ const core = require('@sentry/core');
4
+ const internalSqlQuery = require('../utils/internalSqlQuery.js');
5
+
6
+ function instrumentSqlStorage(sql) {
7
+ return new Proxy(sql, {
8
+ get(target, prop, _receiver) {
9
+ const original = Reflect.get(target, prop, target);
10
+ if (prop !== "exec" || typeof original !== "function") {
11
+ return original;
12
+ }
13
+ return function(...args) {
14
+ const [query, ...bindings] = args;
15
+ const sanitizedQuery = core._INTERNAL_sanitizeSqlQuery(query);
16
+ const querySummary = core._INTERNAL_getSqlQuerySummary(sanitizedQuery);
17
+ const allowlist = core.getClient()?.getOptions()?.durableObjectSqlSpanAllowlist;
18
+ if (internalSqlQuery.targetsCloudflareInternalTable(querySummary, allowlist, sanitizedQuery)) {
19
+ return original.apply(target, args);
20
+ }
21
+ return core.startSpan(
22
+ {
23
+ op: "db.query",
24
+ name: querySummary || sanitizedQuery,
25
+ attributes: {
26
+ [core.SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: "auto.db.cloudflare.durable_object.sql",
27
+ "db.system.name": "cloudflare-durable-object-sql",
28
+ "db.operation.name": "exec",
29
+ "db.query.text": sanitizedQuery,
30
+ "db.query.summary": querySummary,
31
+ "cloudflare.durable_object.query.bindings": bindings.length
32
+ }
33
+ },
34
+ () => original.apply(target, args)
35
+ );
36
+ };
37
+ }
38
+ });
39
+ }
40
+
41
+ exports.instrumentSqlStorage = instrumentSqlStorage;
42
+ //# sourceMappingURL=instrumentSqlStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instrumentSqlStorage.js","sources":["../../../../src/instrumentations/instrumentSqlStorage.ts"],"sourcesContent":["import type { SqlStorage } from '@cloudflare/workers-types';\nimport {\n _INTERNAL_getSqlQuerySummary,\n _INTERNAL_sanitizeSqlQuery,\n getClient,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n startSpan,\n} from '@sentry/core';\nimport type { CloudflareClientOptions } from '../client';\nimport { targetsCloudflareInternalTable } from '../utils/internalSqlQuery';\n\n/**\n * Instruments the Durable Object SqlStorage `exec` method with Sentry spans.\n *\n * @param sql - The SqlStorage instance to instrument\n * @returns An instrumented SqlStorage instance\n */\nexport function instrumentSqlStorage(sql: SqlStorage): SqlStorage {\n return new Proxy(sql, {\n get(target, prop, _receiver) {\n const original = Reflect.get(target, prop, target);\n\n if (prop !== 'exec' || typeof original !== 'function') {\n return original;\n }\n\n return function (this: unknown, ...args: unknown[]) {\n const [query, ...bindings] = args as [string, ...unknown[]];\n\n const sanitizedQuery = _INTERNAL_sanitizeSqlQuery(query);\n const querySummary = _INTERNAL_getSqlQuerySummary(sanitizedQuery);\n\n // oxlint-disable-next-line typescript/no-unnecessary-type-assertion -- rule false positive: the cast reaches the Cloudflare-only `durableObjectSqlSpanAllowlist`; tsc errors without it\n const allowlist = (getClient()?.getOptions() as CloudflareClientOptions | undefined)\n ?.durableObjectSqlSpanAllowlist;\n\n if (targetsCloudflareInternalTable(querySummary, allowlist, sanitizedQuery)) {\n return (original as (...a: unknown[]) => ReturnType<SqlStorage['exec']>).apply(target, args);\n }\n\n return startSpan(\n {\n op: 'db.query',\n name: querySummary || sanitizedQuery,\n attributes: {\n [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: 'auto.db.cloudflare.durable_object.sql',\n 'db.system.name': 'cloudflare-durable-object-sql',\n 'db.operation.name': 'exec',\n 'db.query.text': sanitizedQuery,\n 'db.query.summary': querySummary,\n 'cloudflare.durable_object.query.bindings': bindings.length,\n },\n },\n () => (original as (...a: unknown[]) => ReturnType<SqlStorage['exec']>).apply(target, args),\n );\n };\n },\n });\n}\n"],"names":["_INTERNAL_sanitizeSqlQuery","_INTERNAL_getSqlQuerySummary","getClient","targetsCloudflareInternalTable","startSpan","SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN"],"mappings":";;;;;AAiBO,SAAS,qBAAqB,GAAA,EAA6B;AAChE,EAAA,OAAO,IAAI,MAAM,GAAA,EAAK;AAAA,IACpB,GAAA,CAAI,MAAA,EAAQ,IAAA,EAAM,SAAA,EAAW;AAC3B,MAAA,MAAM,QAAA,GAAW,OAAA,CAAQ,GAAA,CAAI,MAAA,EAAQ,MAAM,MAAM,CAAA;AAEjD,MAAA,IAAI,IAAA,KAAS,MAAA,IAAU,OAAO,QAAA,KAAa,UAAA,EAAY;AACrD,QAAA,OAAO,QAAA;AAAA,MACT;AAEA,MAAA,OAAO,YAA4B,IAAA,EAAiB;AAClD,QAAA,MAAM,CAAC,KAAA,EAAO,GAAG,QAAQ,CAAA,GAAI,IAAA;AAE7B,QAAA,MAAM,cAAA,GAAiBA,gCAA2B,KAAK,CAAA;AACvD,QAAA,MAAM,YAAA,GAAeC,kCAA6B,cAAc,CAAA;AAGhE,QAAA,MAAM,SAAA,GAAaC,cAAA,EAAU,EAAG,UAAA,EAAW,EACvC,6BAAA;AAEJ,QAAA,IAAIC,+CAAA,CAA+B,YAAA,EAAc,SAAA,EAAW,cAAc,CAAA,EAAG;AAC3E,UAAA,OAAQ,QAAA,CAAiE,KAAA,CAAM,MAAA,EAAQ,IAAI,CAAA;AAAA,QAC7F;AAEA,QAAA,OAAOC,cAAA;AAAA,UACL;AAAA,YACE,EAAA,EAAI,UAAA;AAAA,YACJ,MAAM,YAAA,IAAgB,cAAA;AAAA,YACtB,UAAA,EAAY;AAAA,cACV,CAACC,qCAAgC,GAAG,uCAAA;AAAA,cACpC,gBAAA,EAAkB,+BAAA;AAAA,cAClB,mBAAA,EAAqB,MAAA;AAAA,cACrB,eAAA,EAAiB,cAAA;AAAA,cACjB,kBAAA,EAAoB,YAAA;AAAA,cACpB,4CAA4C,QAAA,CAAS;AAAA;AACvD,WACF;AAAA,UACA,MAAO,QAAA,CAAiE,KAAA,CAAM,MAAA,EAAQ,IAAI;AAAA,SAC5F;AAAA,MACF,CAAA;AAAA,IACF;AAAA,GACD,CAAA;AACH;;;;"}
@@ -0,0 +1,139 @@
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+
3
+ const noDiagnosticChannels = require('@sentry/server-utils/no-diagnostic-channels');
4
+ const options = require('../options.js');
5
+ const instrumentContext = require('../utils/instrumentContext.js');
6
+ const rpcMeta = require('../utils/rpcMeta.js');
7
+ const wrapMethodWithSentry = require('../wrapMethodWithSentry.js');
8
+ const instrumentEnv = require('./worker/instrumentEnv.js');
9
+ const instrumentFetch = require('./worker/instrumentFetch.js');
10
+ const instrumentQueue = require('./worker/instrumentQueue.js');
11
+ const instrumentScheduled = require('./worker/instrumentScheduled.js');
12
+ const instrumentTail = require('./worker/instrumentTail.js');
13
+
14
+ const WORKER_ENTRYPOINT_ORIGIN = "auto.faas.cloudflare.worker_entrypoint";
15
+ const RESERVED_METHODS = /* @__PURE__ */ new Set([
16
+ "connect",
17
+ "constructor",
18
+ "dup",
19
+ "email",
20
+ "fetch",
21
+ "queue",
22
+ "scheduled",
23
+ "tail",
24
+ "tailStream",
25
+ "test",
26
+ "trace"
27
+ ]);
28
+ function isPrototypeMethod(instance, prop, method) {
29
+ let prototype = Object.getPrototypeOf(instance);
30
+ while (prototype && prototype !== Object.prototype) {
31
+ const descriptor = Object.getOwnPropertyDescriptor(prototype, prop);
32
+ if (descriptor) {
33
+ return descriptor.value === method;
34
+ }
35
+ prototype = Object.getPrototypeOf(prototype);
36
+ }
37
+ return false;
38
+ }
39
+ function bindToInstance(instance, proxy, method) {
40
+ return new Proxy(method, {
41
+ apply(target, thisArg, args) {
42
+ return Reflect.apply(target, thisArg === proxy ? instance : thisArg, args);
43
+ }
44
+ });
45
+ }
46
+ function instrumentMethod(instance, proxy, prop, method, options, context) {
47
+ const ownDescriptor = Object.getOwnPropertyDescriptor(instance, prop);
48
+ if (ownDescriptor && "value" in ownDescriptor && !ownDescriptor.configurable && !ownDescriptor.writable) {
49
+ return method;
50
+ }
51
+ const boundMethod = bindToInstance(instance, proxy, method);
52
+ if (typeof prop !== "string" || RESERVED_METHODS.has(prop) || !isPrototypeMethod(instance, prop, method)) {
53
+ return boundMethod;
54
+ }
55
+ const captureMethod = wrapMethodWithSentry.wrapMethodWithSentry(
56
+ { options, context, spanOp: "rpc", origin: WORKER_ENTRYPOINT_ORIGIN },
57
+ boundMethod,
58
+ void 0,
59
+ true
60
+ );
61
+ if (options.enableRpcTracePropagation === false) {
62
+ return captureMethod;
63
+ }
64
+ const tracedMethod = wrapMethodWithSentry.wrapMethodWithSentry(
65
+ { options, context, spanName: prop, spanOp: "rpc", origin: WORKER_ENTRYPOINT_ORIGIN },
66
+ boundMethod,
67
+ void 0,
68
+ true
69
+ );
70
+ return (...args) => {
71
+ const { rpcMeta: rpcMeta$1 } = rpcMeta.extractRpcMeta(args);
72
+ return rpcMeta$1 ? tracedMethod.call(proxy, ...args) : captureMethod.call(proxy, ...args);
73
+ };
74
+ }
75
+ function instrumentWorkerEntrypoint(optionsCallback, WorkerEntrypointClass) {
76
+ noDiagnosticChannels.setAsyncLocalStorageAsyncContextStrategy();
77
+ return new Proxy(WorkerEntrypointClass, {
78
+ construct(target, [ctx, env]) {
79
+ const context = instrumentContext.instrumentContext(ctx);
80
+ const options$1 = options.getFinalOptions(optionsCallback(env), env);
81
+ const instrumentedEnv = instrumentEnv.instrumentEnv(env, options$1);
82
+ const obj = new target(context, instrumentedEnv);
83
+ if ("ctx" in obj) {
84
+ Object.defineProperty(obj, "ctx", {
85
+ value: context,
86
+ writable: true,
87
+ enumerable: true,
88
+ configurable: true
89
+ });
90
+ }
91
+ if ("env" in obj) {
92
+ Object.defineProperty(obj, "env", {
93
+ value: instrumentedEnv,
94
+ writable: true,
95
+ enumerable: true,
96
+ configurable: true
97
+ });
98
+ }
99
+ Object.defineProperty(obj, "__SENTRY_CONTEXT__", {
100
+ value: context,
101
+ enumerable: false,
102
+ writable: false,
103
+ configurable: false
104
+ });
105
+ Object.defineProperty(obj, "__SENTRY_OPTIONS__", {
106
+ value: options$1,
107
+ enumerable: false,
108
+ writable: false,
109
+ configurable: false
110
+ });
111
+ const entrypoint = obj;
112
+ instrumentFetch.instrumentWorkerEntrypointFetch(entrypoint, options$1, context);
113
+ instrumentScheduled.instrumentWorkerEntrypointScheduled(entrypoint, options$1, context);
114
+ instrumentQueue.instrumentWorkerEntrypointQueue(entrypoint, options$1, context);
115
+ instrumentTail.instrumentWorkerEntrypointTail(entrypoint, options$1, context);
116
+ const methodCache = /* @__PURE__ */ new Map();
117
+ const proxy = new Proxy(obj, {
118
+ get(instance, prop) {
119
+ const value = Reflect.get(instance, prop, instance);
120
+ if (typeof value !== "function") {
121
+ return value;
122
+ }
123
+ const method = value;
124
+ const cached = methodCache.get(prop);
125
+ if (cached?.source === method) {
126
+ return cached.wrapped;
127
+ }
128
+ const wrapped = instrumentMethod(instance, proxy, prop, method, options$1, context);
129
+ methodCache.set(prop, { source: method, wrapped });
130
+ return wrapped;
131
+ }
132
+ });
133
+ return proxy;
134
+ }
135
+ });
136
+ }
137
+
138
+ exports.instrumentWorkerEntrypoint = instrumentWorkerEntrypoint;
139
+ //# sourceMappingURL=instrumentWorkerEntrypoint.js.map