@sentry/node 8.0.0-rc.3 → 8.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/cjs/cron/common.js +56 -0
  2. package/cjs/cron/common.js.map +1 -0
  3. package/cjs/cron/cron.js +112 -0
  4. package/cjs/cron/cron.js.map +1 -0
  5. package/cjs/cron/index.js +15 -0
  6. package/cjs/cron/index.js.map +1 -0
  7. package/cjs/cron/node-cron.js +72 -0
  8. package/cjs/cron/node-cron.js.map +1 -0
  9. package/cjs/cron/node-schedule.js +69 -0
  10. package/cjs/cron/node-schedule.js.map +1 -0
  11. package/cjs/debug-build.js +11 -0
  12. package/cjs/debug-build.js.map +1 -0
  13. package/cjs/index.js +85 -4005
  14. package/cjs/index.js.map +1 -1
  15. package/cjs/integrations/anr/index.js +211 -0
  16. package/cjs/integrations/anr/index.js.map +1 -0
  17. package/cjs/integrations/console.js +40 -0
  18. package/cjs/integrations/console.js.map +1 -0
  19. package/cjs/integrations/context.js +435 -0
  20. package/cjs/integrations/context.js.map +1 -0
  21. package/cjs/integrations/contextlines.js +137 -0
  22. package/cjs/integrations/contextlines.js.map +1 -0
  23. package/cjs/integrations/http.js +161 -0
  24. package/cjs/integrations/http.js.map +1 -0
  25. package/cjs/integrations/local-variables/common.js +87 -0
  26. package/cjs/integrations/local-variables/common.js.map +1 -0
  27. package/cjs/integrations/local-variables/index.js +12 -0
  28. package/cjs/integrations/local-variables/index.js.map +1 -0
  29. package/cjs/integrations/local-variables/local-variables-async.js +149 -0
  30. package/cjs/integrations/local-variables/local-variables-async.js.map +1 -0
  31. package/cjs/integrations/local-variables/local-variables-sync.js +376 -0
  32. package/cjs/integrations/local-variables/local-variables-sync.js.map +1 -0
  33. package/cjs/integrations/modules.js +99 -0
  34. package/cjs/integrations/modules.js.map +1 -0
  35. package/cjs/integrations/node-fetch.js +81 -0
  36. package/cjs/integrations/node-fetch.js.map +1 -0
  37. package/cjs/integrations/onuncaughtexception.js +135 -0
  38. package/cjs/integrations/onuncaughtexception.js.map +1 -0
  39. package/cjs/integrations/onunhandledrejection.js +90 -0
  40. package/cjs/integrations/onunhandledrejection.js.map +1 -0
  41. package/cjs/integrations/spotlight.js +109 -0
  42. package/cjs/integrations/spotlight.js.map +1 -0
  43. package/cjs/integrations/tracing/connect.js +41 -0
  44. package/cjs/integrations/tracing/connect.js.map +1 -0
  45. package/cjs/integrations/tracing/express.js +127 -0
  46. package/cjs/integrations/tracing/express.js.map +1 -0
  47. package/cjs/integrations/tracing/fastify.js +84 -0
  48. package/cjs/integrations/tracing/fastify.js.map +1 -0
  49. package/cjs/integrations/tracing/graphql.js +32 -0
  50. package/cjs/integrations/tracing/graphql.js.map +1 -0
  51. package/cjs/integrations/tracing/hapi/index.js +106 -0
  52. package/cjs/integrations/tracing/hapi/index.js.map +1 -0
  53. package/cjs/integrations/tracing/index.js +43 -0
  54. package/cjs/integrations/tracing/index.js.map +1 -0
  55. package/cjs/integrations/tracing/koa.js +60 -0
  56. package/cjs/integrations/tracing/koa.js.map +1 -0
  57. package/cjs/integrations/tracing/mongo.js +31 -0
  58. package/cjs/integrations/tracing/mongo.js.map +1 -0
  59. package/cjs/integrations/tracing/mongoose.js +31 -0
  60. package/cjs/integrations/tracing/mongoose.js.map +1 -0
  61. package/cjs/integrations/tracing/mysql.js +24 -0
  62. package/cjs/integrations/tracing/mysql.js.map +1 -0
  63. package/cjs/integrations/tracing/mysql2.js +31 -0
  64. package/cjs/integrations/tracing/mysql2.js.map +1 -0
  65. package/cjs/integrations/tracing/nest.js +69 -0
  66. package/cjs/integrations/tracing/nest.js.map +1 -0
  67. package/cjs/integrations/tracing/postgres.js +32 -0
  68. package/cjs/integrations/tracing/postgres.js.map +1 -0
  69. package/cjs/integrations/tracing/prisma.js +48 -0
  70. package/cjs/integrations/tracing/prisma.js.map +1 -0
  71. package/cjs/integrations/tracing/redis.js +29 -0
  72. package/cjs/integrations/tracing/redis.js.map +1 -0
  73. package/cjs/nodeVersion.js +10 -0
  74. package/cjs/nodeVersion.js.map +1 -0
  75. package/cjs/otel/contextManager.js +16 -0
  76. package/cjs/otel/contextManager.js.map +1 -0
  77. package/cjs/proxy/base.js +127 -0
  78. package/cjs/proxy/base.js.map +1 -0
  79. package/cjs/proxy/index.js +178 -0
  80. package/cjs/proxy/index.js.map +1 -0
  81. package/cjs/proxy/parse-proxy-response.js +104 -0
  82. package/cjs/proxy/parse-proxy-response.js.map +1 -0
  83. package/cjs/sdk/api.js +45 -0
  84. package/cjs/sdk/api.js.map +1 -0
  85. package/cjs/sdk/client.js +63 -0
  86. package/cjs/sdk/client.js.map +1 -0
  87. package/cjs/sdk/init.js +318 -0
  88. package/cjs/sdk/init.js.map +1 -0
  89. package/cjs/sdk/initOtel.js +58 -0
  90. package/cjs/sdk/initOtel.js.map +1 -0
  91. package/cjs/sdk/scope.js +18 -0
  92. package/cjs/sdk/scope.js.map +1 -0
  93. package/cjs/transports/http.js +163 -0
  94. package/cjs/transports/http.js.map +1 -0
  95. package/cjs/utils/addOriginToSpan.js +11 -0
  96. package/cjs/utils/addOriginToSpan.js.map +1 -0
  97. package/cjs/utils/errorhandling.js +44 -0
  98. package/cjs/utils/errorhandling.js.map +1 -0
  99. package/cjs/utils/getRequestUrl.js +18 -0
  100. package/cjs/utils/getRequestUrl.js.map +1 -0
  101. package/cjs/utils/module.js +62 -0
  102. package/cjs/utils/module.js.map +1 -0
  103. package/esm/cron/common.js +54 -0
  104. package/esm/cron/common.js.map +1 -0
  105. package/esm/cron/cron.js +110 -0
  106. package/esm/cron/cron.js.map +1 -0
  107. package/esm/cron/index.js +13 -0
  108. package/esm/cron/index.js.map +1 -0
  109. package/esm/cron/node-cron.js +67 -0
  110. package/esm/cron/node-cron.js.map +1 -0
  111. package/esm/cron/node-schedule.js +64 -0
  112. package/esm/cron/node-schedule.js.map +1 -0
  113. package/esm/debug-build.js +9 -0
  114. package/esm/debug-build.js.map +1 -0
  115. package/esm/index.js +35 -3961
  116. package/esm/index.js.map +1 -1
  117. package/esm/integrations/anr/index.js +204 -0
  118. package/esm/integrations/anr/index.js.map +1 -0
  119. package/esm/integrations/anr/worker-script.js +2 -2
  120. package/esm/integrations/console.js +38 -0
  121. package/esm/integrations/console.js.map +1 -0
  122. package/esm/integrations/context.js +427 -0
  123. package/esm/integrations/context.js.map +1 -0
  124. package/esm/integrations/contextlines.js +131 -0
  125. package/esm/integrations/contextlines.js.map +1 -0
  126. package/esm/integrations/http.js +156 -0
  127. package/esm/integrations/http.js.map +1 -0
  128. package/esm/integrations/local-variables/common.js +81 -0
  129. package/esm/integrations/local-variables/common.js.map +1 -0
  130. package/esm/integrations/local-variables/index.js +10 -0
  131. package/esm/integrations/local-variables/index.js.map +1 -0
  132. package/esm/integrations/local-variables/local-variables-async.js +143 -0
  133. package/esm/integrations/local-variables/local-variables-async.js.map +1 -0
  134. package/esm/integrations/local-variables/local-variables-sync.js +370 -0
  135. package/esm/integrations/local-variables/local-variables-sync.js.map +1 -0
  136. package/esm/integrations/local-variables/worker-script.js +1 -1
  137. package/esm/integrations/modules.js +97 -0
  138. package/esm/integrations/modules.js.map +1 -0
  139. package/esm/integrations/node-fetch.js +79 -0
  140. package/esm/integrations/node-fetch.js.map +1 -0
  141. package/esm/integrations/onuncaughtexception.js +132 -0
  142. package/esm/integrations/onuncaughtexception.js.map +1 -0
  143. package/esm/integrations/onunhandledrejection.js +87 -0
  144. package/esm/integrations/onunhandledrejection.js.map +1 -0
  145. package/esm/integrations/spotlight.js +106 -0
  146. package/esm/integrations/spotlight.js.map +1 -0
  147. package/esm/integrations/tracing/connect.js +38 -0
  148. package/esm/integrations/tracing/connect.js.map +1 -0
  149. package/esm/integrations/tracing/express.js +120 -0
  150. package/esm/integrations/tracing/express.js.map +1 -0
  151. package/esm/integrations/tracing/fastify.js +78 -0
  152. package/esm/integrations/tracing/fastify.js.map +1 -0
  153. package/esm/integrations/tracing/graphql.js +30 -0
  154. package/esm/integrations/tracing/graphql.js.map +1 -0
  155. package/esm/integrations/tracing/hapi/index.js +99 -0
  156. package/esm/integrations/tracing/hapi/index.js.map +1 -0
  157. package/esm/integrations/tracing/index.js +41 -0
  158. package/esm/integrations/tracing/index.js.map +1 -0
  159. package/esm/integrations/tracing/koa.js +57 -0
  160. package/esm/integrations/tracing/koa.js.map +1 -0
  161. package/esm/integrations/tracing/mongo.js +29 -0
  162. package/esm/integrations/tracing/mongo.js.map +1 -0
  163. package/esm/integrations/tracing/mongoose.js +29 -0
  164. package/esm/integrations/tracing/mongoose.js.map +1 -0
  165. package/esm/integrations/tracing/mysql.js +22 -0
  166. package/esm/integrations/tracing/mysql.js.map +1 -0
  167. package/esm/integrations/tracing/mysql2.js +29 -0
  168. package/esm/integrations/tracing/mysql2.js.map +1 -0
  169. package/esm/integrations/tracing/nest.js +63 -0
  170. package/esm/integrations/tracing/nest.js.map +1 -0
  171. package/esm/integrations/tracing/postgres.js +30 -0
  172. package/esm/integrations/tracing/postgres.js.map +1 -0
  173. package/esm/integrations/tracing/prisma.js +43 -0
  174. package/esm/integrations/tracing/prisma.js.map +1 -0
  175. package/esm/integrations/tracing/redis.js +27 -0
  176. package/esm/integrations/tracing/redis.js.map +1 -0
  177. package/esm/nodeVersion.js +7 -0
  178. package/esm/nodeVersion.js.map +1 -0
  179. package/esm/otel/contextManager.js +14 -0
  180. package/esm/otel/contextManager.js.map +1 -0
  181. package/esm/proxy/base.js +122 -0
  182. package/esm/proxy/base.js.map +1 -0
  183. package/esm/proxy/index.js +172 -0
  184. package/esm/proxy/index.js.map +1 -0
  185. package/esm/proxy/parse-proxy-response.js +102 -0
  186. package/esm/proxy/parse-proxy-response.js.map +1 -0
  187. package/esm/sdk/api.js +42 -0
  188. package/esm/sdk/api.js.map +1 -0
  189. package/esm/sdk/client.js +58 -0
  190. package/esm/sdk/client.js.map +1 -0
  191. package/esm/sdk/init.js +312 -0
  192. package/esm/sdk/init.js.map +1 -0
  193. package/esm/sdk/initOtel.js +55 -0
  194. package/esm/sdk/initOtel.js.map +1 -0
  195. package/esm/sdk/scope.js +16 -0
  196. package/esm/sdk/scope.js.map +1 -0
  197. package/esm/transports/http.js +158 -0
  198. package/esm/transports/http.js.map +1 -0
  199. package/esm/utils/addOriginToSpan.js +9 -0
  200. package/esm/utils/addOriginToSpan.js.map +1 -0
  201. package/esm/utils/errorhandling.js +42 -0
  202. package/esm/utils/errorhandling.js.map +1 -0
  203. package/esm/utils/getRequestUrl.js +16 -0
  204. package/esm/utils/getRequestUrl.js.map +1 -0
  205. package/esm/utils/module.js +60 -0
  206. package/esm/utils/module.js.map +1 -0
  207. package/package.json +16 -16
  208. package/types/index.d.ts +2 -2
  209. package/types/index.d.ts.map +1 -1
  210. package/types/integrations/tracing/hapi/index.d.ts.map +1 -1
  211. package/types/integrations/tracing/koa.d.ts.map +1 -1
  212. package/types/sdk/init.d.ts +9 -1
  213. package/types/sdk/init.d.ts.map +1 -1
  214. package/types-ts3.8/index.d.ts +2 -2
  215. package/types-ts3.8/sdk/init.d.ts +9 -1
@@ -0,0 +1,137 @@
1
+ var {
2
+ _optionalChain
3
+ } = require('@sentry/utils');
4
+
5
+ Object.defineProperty(exports, '__esModule', { value: true });
6
+
7
+ const fs = require('fs');
8
+ const core = require('@sentry/core');
9
+ const utils = require('@sentry/utils');
10
+
11
+ const FILE_CONTENT_CACHE = new utils.LRUMap(100);
12
+ const DEFAULT_LINES_OF_CONTEXT = 7;
13
+ const INTEGRATION_NAME = 'ContextLines';
14
+
15
+ const readFileAsync = fs.promises.readFile;
16
+
17
+ /** Exported only for tests, as a type-safe variant. */
18
+ const _contextLinesIntegration = ((options = {}) => {
19
+ const contextLines = options.frameContextLines !== undefined ? options.frameContextLines : DEFAULT_LINES_OF_CONTEXT;
20
+
21
+ return {
22
+ name: INTEGRATION_NAME,
23
+ processEvent(event) {
24
+ return addSourceContext(event, contextLines);
25
+ },
26
+ };
27
+ }) ;
28
+
29
+ /**
30
+ * Capture the lines before and after the frame's context.
31
+ */
32
+ const contextLinesIntegration = core.defineIntegration(_contextLinesIntegration);
33
+
34
+ async function addSourceContext(event, contextLines) {
35
+ // keep a lookup map of which files we've already enqueued to read,
36
+ // so we don't enqueue the same file multiple times which would cause multiple i/o reads
37
+ const enqueuedReadSourceFileTasks = {};
38
+ const readSourceFileTasks = [];
39
+
40
+ if (contextLines > 0 && _optionalChain([event, 'access', _2 => _2.exception, 'optionalAccess', _3 => _3.values])) {
41
+ for (const exception of event.exception.values) {
42
+ if (!_optionalChain([exception, 'access', _4 => _4.stacktrace, 'optionalAccess', _5 => _5.frames])) {
43
+ continue;
44
+ }
45
+
46
+ // We want to iterate in reverse order as calling cache.get will bump the file in our LRU cache.
47
+ // This ends up prioritizes source context for frames at the top of the stack instead of the bottom.
48
+ for (let i = exception.stacktrace.frames.length - 1; i >= 0; i--) {
49
+ const frame = exception.stacktrace.frames[i];
50
+ // Call cache.get to bump the file to the top of the cache and ensure we have not already
51
+ // enqueued a read operation for this filename
52
+ if (frame.filename && !enqueuedReadSourceFileTasks[frame.filename] && !FILE_CONTENT_CACHE.get(frame.filename)) {
53
+ readSourceFileTasks.push(_readSourceFile(frame.filename));
54
+ enqueuedReadSourceFileTasks[frame.filename] = 1;
55
+ }
56
+ }
57
+ }
58
+ }
59
+
60
+ // check if files to read > 0, if so, await all of them to be read before adding source contexts.
61
+ // Normally, Promise.all here could be short circuited if one of the promises rejects, but we
62
+ // are guarding from that by wrapping the i/o read operation in a try/catch.
63
+ if (readSourceFileTasks.length > 0) {
64
+ await Promise.all(readSourceFileTasks);
65
+ }
66
+
67
+ // Perform the same loop as above, but this time we can assume all files are in the cache
68
+ // and attempt to add source context to frames.
69
+ if (contextLines > 0 && _optionalChain([event, 'access', _6 => _6.exception, 'optionalAccess', _7 => _7.values])) {
70
+ for (const exception of event.exception.values) {
71
+ if (exception.stacktrace && exception.stacktrace.frames) {
72
+ await addSourceContextToFrames(exception.stacktrace.frames, contextLines);
73
+ }
74
+ }
75
+ }
76
+
77
+ return event;
78
+ }
79
+
80
+ /** Adds context lines to frames */
81
+ function addSourceContextToFrames(frames, contextLines) {
82
+ for (const frame of frames) {
83
+ // Only add context if we have a filename and it hasn't already been added
84
+ if (frame.filename && frame.context_line === undefined) {
85
+ const sourceFileLines = FILE_CONTENT_CACHE.get(frame.filename);
86
+
87
+ if (sourceFileLines) {
88
+ try {
89
+ utils.addContextToFrame(sourceFileLines, frame, contextLines);
90
+ } catch (e) {
91
+ // anomaly, being defensive in case
92
+ // unlikely to ever happen in practice but can definitely happen in theory
93
+ }
94
+ }
95
+ }
96
+ }
97
+ }
98
+
99
+ /**
100
+ * Reads file contents and caches them in a global LRU cache.
101
+ * If reading fails, mark the file as null in the cache so we don't try again.
102
+ *
103
+ * @param filename filepath to read content from.
104
+ */
105
+ async function _readSourceFile(filename) {
106
+ const cachedFile = FILE_CONTENT_CACHE.get(filename);
107
+
108
+ // We have already attempted to read this file and failed, do not try again
109
+ if (cachedFile === null) {
110
+ return null;
111
+ }
112
+
113
+ // We have a cache hit, return it
114
+ if (cachedFile !== undefined) {
115
+ return cachedFile;
116
+ }
117
+
118
+ // Guard from throwing if readFile fails, this enables us to use Promise.all and
119
+ // not have it short circuiting if one of the promises rejects + since context lines are added
120
+ // on a best effort basis, we want to throw here anyways.
121
+
122
+ // If we made it to here, it means that our file is not cache nor marked as failed, so attempt to read it
123
+ let content = null;
124
+ try {
125
+ const rawFileContents = await readFileAsync(filename, 'utf-8');
126
+ content = rawFileContents.split('\n');
127
+ } catch (_) {
128
+ // if we fail, we will mark the file as null in the cache and short circuit next time we try to read it
129
+ }
130
+
131
+ FILE_CONTENT_CACHE.set(filename, content);
132
+ return content;
133
+ }
134
+
135
+ exports._contextLinesIntegration = _contextLinesIntegration;
136
+ exports.contextLinesIntegration = contextLinesIntegration;
137
+ //# sourceMappingURL=contextlines.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contextlines.js","sources":["../../../src/integrations/contextlines.ts"],"sourcesContent":["import { promises } from 'fs';\nimport { defineIntegration } from '@sentry/core';\nimport type { Event, IntegrationFn, StackFrame } from '@sentry/types';\nimport { LRUMap, addContextToFrame } from '@sentry/utils';\n\nconst FILE_CONTENT_CACHE = new LRUMap<string, string[] | null>(100);\nconst DEFAULT_LINES_OF_CONTEXT = 7;\nconst INTEGRATION_NAME = 'ContextLines';\n\nconst readFileAsync = promises.readFile;\n\n/**\n * Resets the file cache. Exists for testing purposes.\n * @hidden\n */\nexport function resetFileContentCache(): void {\n FILE_CONTENT_CACHE.clear();\n}\n\ninterface ContextLinesOptions {\n /**\n * Sets the number of context lines for each frame when loading a file.\n * Defaults to 7.\n *\n * Set to 0 to disable loading and inclusion of source files.\n **/\n frameContextLines?: number;\n}\n\n/** Exported only for tests, as a type-safe variant. */\nexport const _contextLinesIntegration = ((options: ContextLinesOptions = {}) => {\n const contextLines = options.frameContextLines !== undefined ? options.frameContextLines : DEFAULT_LINES_OF_CONTEXT;\n\n return {\n name: INTEGRATION_NAME,\n processEvent(event) {\n return addSourceContext(event, contextLines);\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * Capture the lines before and after the frame's context.\n */\nexport const contextLinesIntegration = defineIntegration(_contextLinesIntegration);\n\nasync function addSourceContext(event: Event, contextLines: number): Promise<Event> {\n // keep a lookup map of which files we've already enqueued to read,\n // so we don't enqueue the same file multiple times which would cause multiple i/o reads\n const enqueuedReadSourceFileTasks: Record<string, number> = {};\n const readSourceFileTasks: Promise<string[] | null>[] = [];\n\n if (contextLines > 0 && event.exception?.values) {\n for (const exception of event.exception.values) {\n if (!exception.stacktrace?.frames) {\n continue;\n }\n\n // We want to iterate in reverse order as calling cache.get will bump the file in our LRU cache.\n // This ends up prioritizes source context for frames at the top of the stack instead of the bottom.\n for (let i = exception.stacktrace.frames.length - 1; i >= 0; i--) {\n const frame = exception.stacktrace.frames[i];\n // Call cache.get to bump the file to the top of the cache and ensure we have not already\n // enqueued a read operation for this filename\n if (frame.filename && !enqueuedReadSourceFileTasks[frame.filename] && !FILE_CONTENT_CACHE.get(frame.filename)) {\n readSourceFileTasks.push(_readSourceFile(frame.filename));\n enqueuedReadSourceFileTasks[frame.filename] = 1;\n }\n }\n }\n }\n\n // check if files to read > 0, if so, await all of them to be read before adding source contexts.\n // Normally, Promise.all here could be short circuited if one of the promises rejects, but we\n // are guarding from that by wrapping the i/o read operation in a try/catch.\n if (readSourceFileTasks.length > 0) {\n await Promise.all(readSourceFileTasks);\n }\n\n // Perform the same loop as above, but this time we can assume all files are in the cache\n // and attempt to add source context to frames.\n if (contextLines > 0 && event.exception?.values) {\n for (const exception of event.exception.values) {\n if (exception.stacktrace && exception.stacktrace.frames) {\n await addSourceContextToFrames(exception.stacktrace.frames, contextLines);\n }\n }\n }\n\n return event;\n}\n\n/** Adds context lines to frames */\nfunction addSourceContextToFrames(frames: StackFrame[], contextLines: number): void {\n for (const frame of frames) {\n // Only add context if we have a filename and it hasn't already been added\n if (frame.filename && frame.context_line === undefined) {\n const sourceFileLines = FILE_CONTENT_CACHE.get(frame.filename);\n\n if (sourceFileLines) {\n try {\n addContextToFrame(sourceFileLines, frame, contextLines);\n } catch (e) {\n // anomaly, being defensive in case\n // unlikely to ever happen in practice but can definitely happen in theory\n }\n }\n }\n }\n}\n\n/**\n * Reads file contents and caches them in a global LRU cache.\n * If reading fails, mark the file as null in the cache so we don't try again.\n *\n * @param filename filepath to read content from.\n */\nasync function _readSourceFile(filename: string): Promise<string[] | null> {\n const cachedFile = FILE_CONTENT_CACHE.get(filename);\n\n // We have already attempted to read this file and failed, do not try again\n if (cachedFile === null) {\n return null;\n }\n\n // We have a cache hit, return it\n if (cachedFile !== undefined) {\n return cachedFile;\n }\n\n // Guard from throwing if readFile fails, this enables us to use Promise.all and\n // not have it short circuiting if one of the promises rejects + since context lines are added\n // on a best effort basis, we want to throw here anyways.\n\n // If we made it to here, it means that our file is not cache nor marked as failed, so attempt to read it\n let content: string[] | null = null;\n try {\n const rawFileContents = await readFileAsync(filename, 'utf-8');\n content = rawFileContents.split('\\n');\n } catch (_) {\n // if we fail, we will mark the file as null in the cache and short circuit next time we try to read it\n }\n\n FILE_CONTENT_CACHE.set(filename, content);\n return content;\n}\n"],"names":["LRUMap","promises","defineIntegration","addContextToFrame"],"mappings":"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"}
@@ -0,0 +1,161 @@
1
+ var {
2
+ _optionalChain
3
+ } = require('@sentry/utils');
4
+
5
+ Object.defineProperty(exports, '__esModule', { value: true });
6
+
7
+ const api = require('@opentelemetry/api');
8
+ const instrumentationHttp = require('@opentelemetry/instrumentation-http');
9
+ const opentelemetry = require('@sentry/opentelemetry');
10
+ const core = require('@sentry/core');
11
+ const utils = require('@sentry/utils');
12
+ const scope = require('../sdk/scope.js');
13
+ const addOriginToSpan = require('../utils/addOriginToSpan.js');
14
+ const getRequestUrl = require('../utils/getRequestUrl.js');
15
+
16
+ const _httpIntegration = ((options = {}) => {
17
+ const _breadcrumbs = typeof options.breadcrumbs === 'undefined' ? true : options.breadcrumbs;
18
+ const _ignoreOutgoingRequests = options.ignoreOutgoingRequests;
19
+ const _ignoreIncomingRequests = options.ignoreIncomingRequests;
20
+ const _InstrumentationClass = options._instrumentation || instrumentationHttp.HttpInstrumentation;
21
+
22
+ return {
23
+ name: 'Http',
24
+ setupOnce() {
25
+ opentelemetry.addOpenTelemetryInstrumentation(
26
+ new _InstrumentationClass({
27
+ ignoreOutgoingRequestHook: request => {
28
+ const url = getRequestUrl.getRequestUrl(request);
29
+
30
+ if (!url) {
31
+ return false;
32
+ }
33
+
34
+ if (core.isSentryRequestUrl(url, opentelemetry.getClient())) {
35
+ return true;
36
+ }
37
+
38
+ if (_ignoreOutgoingRequests && _ignoreOutgoingRequests(url)) {
39
+ return true;
40
+ }
41
+
42
+ return false;
43
+ },
44
+
45
+ ignoreIncomingRequestHook: request => {
46
+ const url = getRequestUrl.getRequestUrl(request);
47
+
48
+ const method = _optionalChain([request, 'access', _ => _.method, 'optionalAccess', _2 => _2.toUpperCase, 'call', _3 => _3()]);
49
+ // We do not capture OPTIONS/HEAD requests as transactions
50
+ if (method === 'OPTIONS' || method === 'HEAD') {
51
+ return true;
52
+ }
53
+
54
+ if (_ignoreIncomingRequests && _ignoreIncomingRequests(url)) {
55
+ return true;
56
+ }
57
+
58
+ return false;
59
+ },
60
+
61
+ requireParentforOutgoingSpans: false,
62
+ requireParentforIncomingSpans: false,
63
+ requestHook: (span, req) => {
64
+ addOriginToSpan.addOriginToSpan(span, 'auto.http.otel.http');
65
+
66
+ // both, incoming requests and "client" requests made within the app trigger the requestHook
67
+ // we only want to isolate and further annotate incoming requests (IncomingMessage)
68
+ if (_isClientRequest(req)) {
69
+ return;
70
+ }
71
+
72
+ const scopes = core.getCapturedScopesOnSpan(span);
73
+
74
+ const isolationScope = (scopes.isolationScope || core.getIsolationScope()).clone();
75
+ const scope$1 = scopes.scope || core.getCurrentScope();
76
+
77
+ // Update the isolation scope, isolate this request
78
+ isolationScope.setSDKProcessingMetadata({ request: req });
79
+
80
+ const client = opentelemetry.getClient();
81
+ if (client && client.getOptions().autoSessionTracking) {
82
+ isolationScope.setRequestSession({ status: 'ok' });
83
+ }
84
+ scope.setIsolationScope(isolationScope);
85
+ core.setCapturedScopesOnSpan(span, scope$1, isolationScope);
86
+
87
+ // attempt to update the scope's `transactionName` based on the request URL
88
+ // Ideally, framework instrumentations coming after the HttpInstrumentation
89
+ // update the transactionName once we get a parameterized route.
90
+ const attributes = core.spanToJSON(span).data;
91
+ if (!attributes) {
92
+ return;
93
+ }
94
+
95
+ const httpMethod = String(attributes['http.method']).toUpperCase() || 'GET';
96
+ const httpTarget = utils.stripUrlQueryAndFragment(String(attributes['http.target'])) || '/';
97
+ const bestEffortTransactionName = `${httpMethod} ${httpTarget}`;
98
+
99
+ isolationScope.setTransactionName(bestEffortTransactionName);
100
+ },
101
+ responseHook: (span, res) => {
102
+ if (_breadcrumbs) {
103
+ _addRequestBreadcrumb(span, res);
104
+ }
105
+
106
+ const client = opentelemetry.getClient();
107
+ if (client && client.getOptions().autoSessionTracking) {
108
+ setImmediate(() => {
109
+ client['_captureRequestSession']();
110
+ });
111
+ }
112
+ },
113
+ }),
114
+ );
115
+ },
116
+ };
117
+ }) ;
118
+
119
+ /**
120
+ * The http integration instruments Node's internal http and https modules.
121
+ * It creates breadcrumbs and spans for outgoing HTTP requests which will be attached to the currently active span.
122
+ */
123
+ const httpIntegration = core.defineIntegration(_httpIntegration);
124
+
125
+ /** Add a breadcrumb for outgoing requests. */
126
+ function _addRequestBreadcrumb(span, response) {
127
+ if (opentelemetry.getSpanKind(span) !== api.SpanKind.CLIENT) {
128
+ return;
129
+ }
130
+
131
+ const data = opentelemetry.getRequestSpanData(span);
132
+ core.addBreadcrumb(
133
+ {
134
+ category: 'http',
135
+ data: {
136
+ status_code: response.statusCode,
137
+ ...data,
138
+ },
139
+ type: 'http',
140
+ },
141
+ {
142
+ event: 'response',
143
+ // TODO FN: Do we need access to `request` here?
144
+ // If we do, we'll have to use the `applyCustomAttributesOnSpan` hook instead,
145
+ // but this has worse context semantics than request/responseHook.
146
+ response,
147
+ },
148
+ );
149
+ }
150
+
151
+ /**
152
+ * Determines if @param req is a ClientRequest, meaning the request was created within the express app
153
+ * and it's an outgoing request.
154
+ * Checking for properties instead of using `instanceOf` to avoid importing the request classes.
155
+ */
156
+ function _isClientRequest(req) {
157
+ return 'outputData' in req && 'outputSize' in req && !('client' in req) && !('statusCode' in req);
158
+ }
159
+
160
+ exports.httpIntegration = httpIntegration;
161
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sources":["../../../src/integrations/http.ts"],"sourcesContent":["import type { ClientRequest, IncomingMessage, ServerResponse } from 'http';\nimport type { Span } from '@opentelemetry/api';\nimport { SpanKind } from '@opentelemetry/api';\nimport { HttpInstrumentation } from '@opentelemetry/instrumentation-http';\nimport { addOpenTelemetryInstrumentation } from '@sentry/opentelemetry';\n\nimport {\n addBreadcrumb,\n defineIntegration,\n getCapturedScopesOnSpan,\n getCurrentScope,\n getIsolationScope,\n isSentryRequestUrl,\n setCapturedScopesOnSpan,\n spanToJSON,\n} from '@sentry/core';\nimport { getClient, getRequestSpanData, getSpanKind } from '@sentry/opentelemetry';\nimport type { IntegrationFn } from '@sentry/types';\n\nimport { stripUrlQueryAndFragment } from '@sentry/utils';\nimport type { NodeClient } from '../sdk/client';\nimport { setIsolationScope } from '../sdk/scope';\nimport type { HTTPModuleRequestIncomingMessage } from '../transports/http-module';\nimport { addOriginToSpan } from '../utils/addOriginToSpan';\nimport { getRequestUrl } from '../utils/getRequestUrl';\n\ninterface HttpOptions {\n /**\n * Whether breadcrumbs should be recorded for requests.\n * Defaults to true\n */\n breadcrumbs?: boolean;\n\n /**\n * Do not capture spans or breadcrumbs for outgoing HTTP requests to URLs where the given callback returns `true`.\n * This controls both span & breadcrumb creation - spans will be non recording if tracing is disabled.\n */\n ignoreOutgoingRequests?: (url: string) => boolean;\n\n /**\n * Do not capture spans or breadcrumbs for incoming HTTP requests to URLs where the given callback returns `true`.\n * This controls both span & breadcrumb creation - spans will be non recording if tracing is disabled.\n */\n ignoreIncomingRequests?: (url: string) => boolean;\n\n /** Allows to pass a custom version of HttpInstrumentation. We use this for Next.js. */\n _instrumentation?: typeof HttpInstrumentation;\n}\n\nconst _httpIntegration = ((options: HttpOptions = {}) => {\n const _breadcrumbs = typeof options.breadcrumbs === 'undefined' ? true : options.breadcrumbs;\n const _ignoreOutgoingRequests = options.ignoreOutgoingRequests;\n const _ignoreIncomingRequests = options.ignoreIncomingRequests;\n const _InstrumentationClass = options._instrumentation || HttpInstrumentation;\n\n return {\n name: 'Http',\n setupOnce() {\n addOpenTelemetryInstrumentation(\n new _InstrumentationClass({\n ignoreOutgoingRequestHook: request => {\n const url = getRequestUrl(request);\n\n if (!url) {\n return false;\n }\n\n if (isSentryRequestUrl(url, getClient())) {\n return true;\n }\n\n if (_ignoreOutgoingRequests && _ignoreOutgoingRequests(url)) {\n return true;\n }\n\n return false;\n },\n\n ignoreIncomingRequestHook: request => {\n const url = getRequestUrl(request);\n\n const method = request.method?.toUpperCase();\n // We do not capture OPTIONS/HEAD requests as transactions\n if (method === 'OPTIONS' || method === 'HEAD') {\n return true;\n }\n\n if (_ignoreIncomingRequests && _ignoreIncomingRequests(url)) {\n return true;\n }\n\n return false;\n },\n\n requireParentforOutgoingSpans: false,\n requireParentforIncomingSpans: false,\n requestHook: (span, req) => {\n addOriginToSpan(span, 'auto.http.otel.http');\n\n // both, incoming requests and \"client\" requests made within the app trigger the requestHook\n // we only want to isolate and further annotate incoming requests (IncomingMessage)\n if (_isClientRequest(req)) {\n return;\n }\n\n const scopes = getCapturedScopesOnSpan(span);\n\n const isolationScope = (scopes.isolationScope || getIsolationScope()).clone();\n const scope = scopes.scope || getCurrentScope();\n\n // Update the isolation scope, isolate this request\n isolationScope.setSDKProcessingMetadata({ request: req });\n\n const client = getClient<NodeClient>();\n if (client && client.getOptions().autoSessionTracking) {\n isolationScope.setRequestSession({ status: 'ok' });\n }\n setIsolationScope(isolationScope);\n setCapturedScopesOnSpan(span, scope, isolationScope);\n\n // attempt to update the scope's `transactionName` based on the request URL\n // Ideally, framework instrumentations coming after the HttpInstrumentation\n // update the transactionName once we get a parameterized route.\n const attributes = spanToJSON(span).data;\n if (!attributes) {\n return;\n }\n\n const httpMethod = String(attributes['http.method']).toUpperCase() || 'GET';\n const httpTarget = stripUrlQueryAndFragment(String(attributes['http.target'])) || '/';\n const bestEffortTransactionName = `${httpMethod} ${httpTarget}`;\n\n isolationScope.setTransactionName(bestEffortTransactionName);\n },\n responseHook: (span, res) => {\n if (_breadcrumbs) {\n _addRequestBreadcrumb(span, res);\n }\n\n const client = getClient<NodeClient>();\n if (client && client.getOptions().autoSessionTracking) {\n setImmediate(() => {\n client['_captureRequestSession']();\n });\n }\n },\n }),\n );\n },\n };\n}) satisfies IntegrationFn;\n\n/**\n * The http integration instruments Node's internal http and https modules.\n * It creates breadcrumbs and spans for outgoing HTTP requests which will be attached to the currently active span.\n */\nexport const httpIntegration = defineIntegration(_httpIntegration);\n\n/** Add a breadcrumb for outgoing requests. */\nfunction _addRequestBreadcrumb(span: Span, response: HTTPModuleRequestIncomingMessage | ServerResponse): void {\n if (getSpanKind(span) !== SpanKind.CLIENT) {\n return;\n }\n\n const data = getRequestSpanData(span);\n addBreadcrumb(\n {\n category: 'http',\n data: {\n status_code: response.statusCode,\n ...data,\n },\n type: 'http',\n },\n {\n event: 'response',\n // TODO FN: Do we need access to `request` here?\n // If we do, we'll have to use the `applyCustomAttributesOnSpan` hook instead,\n // but this has worse context semantics than request/responseHook.\n response,\n },\n );\n}\n\n/**\n * Determines if @param req is a ClientRequest, meaning the request was created within the express app\n * and it's an outgoing request.\n * Checking for properties instead of using `instanceOf` to avoid importing the request classes.\n */\nfunction _isClientRequest(req: ClientRequest | IncomingMessage): req is ClientRequest {\n return 'outputData' in req && 'outputSize' in req && !('client' in req) && !('statusCode' in req);\n}\n"],"names":["HttpInstrumentation","addOpenTelemetryInstrumentation","getRequestUrl","isSentryRequestUrl","getClient","addOriginToSpan","getCapturedScopesOnSpan","getIsolationScope","scope","getCurrentScope","setIsolationScope","setCapturedScopesOnSpan","spanToJSON","stripUrlQueryAndFragment","defineIntegration","getSpanKind","SpanKind","getRequestSpanData","addBreadcrumb"],"mappings":"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AAA;IACA;MACA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;MACA,CAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;MACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;IACA,CAAA;EACA,CAAA;AACA;;AAEA,CAAA,CAAA;CACA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA;CACA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;CACA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;CACA,CAAA;AACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA;EACA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,aAAA,CAAA,EAAA,CAAA,CAAA,KAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,IAAA,CAAA,EAAA,CAAA,CAAA,SAAA,CAAA,EAAA,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,aAAA,CAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AACA;;"}
@@ -0,0 +1,87 @@
1
+ Object.defineProperty(exports, '__esModule', { value: true });
2
+
3
+ /**
4
+ * Creates a rate limiter that will call the disable callback when the rate limit is reached and the enable callback
5
+ * when a timeout has occurred.
6
+ * @param maxPerSecond Maximum number of calls per second
7
+ * @param enable Callback to enable capture
8
+ * @param disable Callback to disable capture
9
+ * @returns A function to call to increment the rate limiter count
10
+ */
11
+ function createRateLimiter(
12
+ maxPerSecond,
13
+ enable,
14
+ disable,
15
+ ) {
16
+ let count = 0;
17
+ let retrySeconds = 5;
18
+ let disabledTimeout = 0;
19
+
20
+ setInterval(() => {
21
+ if (disabledTimeout === 0) {
22
+ if (count > maxPerSecond) {
23
+ retrySeconds *= 2;
24
+ disable(retrySeconds);
25
+
26
+ // Cap at one day
27
+ if (retrySeconds > 86400) {
28
+ retrySeconds = 86400;
29
+ }
30
+ disabledTimeout = retrySeconds;
31
+ }
32
+ } else {
33
+ disabledTimeout -= 1;
34
+
35
+ if (disabledTimeout === 0) {
36
+ enable();
37
+ }
38
+ }
39
+
40
+ count = 0;
41
+ }, 1000).unref();
42
+
43
+ return () => {
44
+ count += 1;
45
+ };
46
+ }
47
+
48
+ // Add types for the exception event data
49
+
50
+ /** Could this be an anonymous function? */
51
+ function isAnonymous(name) {
52
+ return name !== undefined && (name.length === 0 || name === '?' || name === '<anonymous>');
53
+ }
54
+
55
+ /** Do the function names appear to match? */
56
+ function functionNamesMatch(a, b) {
57
+ return a === b || (isAnonymous(a) && isAnonymous(b));
58
+ }
59
+
60
+ /** Creates a unique hash from stack frames */
61
+ function hashFrames(frames) {
62
+ if (frames === undefined) {
63
+ return;
64
+ }
65
+
66
+ // Only hash the 10 most recent frames (ie. the last 10)
67
+ return frames.slice(-10).reduce((acc, frame) => `${acc},${frame.function},${frame.lineno},${frame.colno}`, '');
68
+ }
69
+
70
+ /**
71
+ * We use the stack parser to create a unique hash from the exception stack trace
72
+ * This is used to lookup vars when the exception passes through the event processor
73
+ */
74
+ function hashFromStack(stackParser, stack) {
75
+ if (stack === undefined) {
76
+ return undefined;
77
+ }
78
+
79
+ return hashFrames(stackParser(stack, 1));
80
+ }
81
+
82
+ exports.createRateLimiter = createRateLimiter;
83
+ exports.functionNamesMatch = functionNamesMatch;
84
+ exports.hashFrames = hashFrames;
85
+ exports.hashFromStack = hashFromStack;
86
+ exports.isAnonymous = isAnonymous;
87
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sources":["../../../../src/integrations/local-variables/common.ts"],"sourcesContent":["import type { StackFrame, StackParser } from '@sentry/types';\nimport type { Debugger } from 'inspector';\n\nexport type Variables = Record<string, unknown>;\n\nexport type RateLimitIncrement = () => void;\n\n/**\n * Creates a rate limiter that will call the disable callback when the rate limit is reached and the enable callback\n * when a timeout has occurred.\n * @param maxPerSecond Maximum number of calls per second\n * @param enable Callback to enable capture\n * @param disable Callback to disable capture\n * @returns A function to call to increment the rate limiter count\n */\nexport function createRateLimiter(\n maxPerSecond: number,\n enable: () => void,\n disable: (seconds: number) => void,\n): RateLimitIncrement {\n let count = 0;\n let retrySeconds = 5;\n let disabledTimeout = 0;\n\n setInterval(() => {\n if (disabledTimeout === 0) {\n if (count > maxPerSecond) {\n retrySeconds *= 2;\n disable(retrySeconds);\n\n // Cap at one day\n if (retrySeconds > 86400) {\n retrySeconds = 86400;\n }\n disabledTimeout = retrySeconds;\n }\n } else {\n disabledTimeout -= 1;\n\n if (disabledTimeout === 0) {\n enable();\n }\n }\n\n count = 0;\n }, 1_000).unref();\n\n return () => {\n count += 1;\n };\n}\n\n// Add types for the exception event data\nexport type PausedExceptionEvent = Debugger.PausedEventDataType & {\n data: {\n // This contains error.stack\n description: string;\n };\n};\n\n/** Could this be an anonymous function? */\nexport function isAnonymous(name: string | undefined): boolean {\n return name !== undefined && (name.length === 0 || name === '?' || name === '<anonymous>');\n}\n\n/** Do the function names appear to match? */\nexport function functionNamesMatch(a: string | undefined, b: string | undefined): boolean {\n return a === b || (isAnonymous(a) && isAnonymous(b));\n}\n\n/** Creates a unique hash from stack frames */\nexport function hashFrames(frames: StackFrame[] | undefined): string | undefined {\n if (frames === undefined) {\n return;\n }\n\n // Only hash the 10 most recent frames (ie. the last 10)\n return frames.slice(-10).reduce((acc, frame) => `${acc},${frame.function},${frame.lineno},${frame.colno}`, '');\n}\n\n/**\n * We use the stack parser to create a unique hash from the exception stack trace\n * This is used to lookup vars when the exception passes through the event processor\n */\nexport function hashFromStack(stackParser: StackParser, stack: string | undefined): string | undefined {\n if (stack === undefined) {\n return undefined;\n }\n\n return hashFrames(stackParser(stack, 1));\n}\n\nexport interface FrameVariables {\n function: string;\n vars?: Variables;\n}\n\nexport interface LocalVariablesIntegrationOptions {\n /**\n * Capture local variables for both caught and uncaught exceptions\n *\n * - When false, only uncaught exceptions will have local variables\n * - When true, both caught and uncaught exceptions will have local variables.\n *\n * Defaults to `true`.\n *\n * Capturing local variables for all exceptions can be expensive since the debugger pauses for every throw to collect\n * local variables.\n *\n * To reduce the likelihood of this feature impacting app performance or throughput, this feature is rate-limited.\n * Once the rate limit is reached, local variables will only be captured for uncaught exceptions until a timeout has\n * been reached.\n */\n captureAllExceptions?: boolean;\n /**\n * Maximum number of exceptions to capture local variables for per second before rate limiting is triggered.\n */\n maxExceptionsPerSecond?: number;\n}\n\nexport interface LocalVariablesWorkerArgs extends LocalVariablesIntegrationOptions {\n /**\n * Whether to enable debug logging.\n */\n debug: boolean;\n /**\n * Base path used to calculate module name.\n *\n * Defaults to `dirname(process.argv[1])` and falls back to `process.cwd()`\n */\n basePath?: string;\n}\n"],"names":[],"mappings":";;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,iBAAiB;AACjC,EAAE,YAAY;AACd,EAAE,MAAM;AACR,EAAE,OAAO;AACT,EAAsB;AACtB,EAAE,IAAI,KAAM,GAAE,CAAC,CAAA;AACf,EAAE,IAAI,YAAa,GAAE,CAAC,CAAA;AACtB,EAAE,IAAI,eAAgB,GAAE,CAAC,CAAA;AACzB;AACA,EAAE,WAAW,CAAC,MAAM;AACpB,IAAI,IAAI,eAAgB,KAAI,CAAC,EAAE;AAC/B,MAAM,IAAI,KAAM,GAAE,YAAY,EAAE;AAChC,QAAQ,YAAA,IAAgB,CAAC,CAAA;AACzB,QAAQ,OAAO,CAAC,YAAY,CAAC,CAAA;AAC7B;AACA;AACA,QAAQ,IAAI,YAAa,GAAE,KAAK,EAAE;AAClC,UAAU,YAAA,GAAe,KAAK,CAAA;AAC9B,SAAQ;AACR,QAAQ,eAAA,GAAkB,YAAY,CAAA;AACtC,OAAM;AACN,WAAW;AACX,MAAM,eAAA,IAAmB,CAAC,CAAA;AAC1B;AACA,MAAM,IAAI,eAAgB,KAAI,CAAC,EAAE;AACjC,QAAQ,MAAM,EAAE,CAAA;AAChB,OAAM;AACN,KAAI;AACJ;AACA,IAAI,KAAA,GAAQ,CAAC,CAAA;AACb,GAAG,EAAE,IAAK,CAAC,CAAC,KAAK,EAAE,CAAA;AACnB;AACA,EAAE,OAAO,MAAM;AACf,IAAI,KAAA,IAAS,CAAC,CAAA;AACd,GAAG,CAAA;AACH,CAAA;AACA;AACA;;AAQA;AACO,SAAS,WAAW,CAAC,IAAI,EAA+B;AAC/D,EAAE,OAAO,IAAK,KAAI,cAAc,IAAI,CAAC,MAAA,KAAW,CAAE,IAAG,SAAS,GAAA,IAAO,IAAK,KAAI,aAAa,CAAC,CAAA;AAC5F,CAAA;AACA;AACA;AACO,SAAS,kBAAkB,CAAC,CAAC,EAAsB,CAAC,EAA+B;AAC1F,EAAE,OAAO,CAAA,KAAM,CAAA,KAAM,WAAW,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;AACtD,CAAA;AACA;AACA;AACO,SAAS,UAAU,CAAC,MAAM,EAAgD;AACjF,EAAE,IAAI,MAAO,KAAI,SAAS,EAAE;AAC5B,IAAI,OAAM;AACV,GAAE;AACF;AACA;AACA,EAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,EAAA,GAAA,CAAA,CAAA,EAAA,KAAA,CAAA,QAAA,CAAA,CAAA,EAAA,KAAA,CAAA,MAAA,CAAA,CAAA,EAAA,KAAA,CAAA,KAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA;AACA,CAAA;AACA;AACA;AACA;AACA;AACA;AACA,SAAA,aAAA,CAAA,WAAA,EAAA,KAAA,EAAA;AACA,EAAA,IAAA,KAAA,KAAA,SAAA,EAAA;AACA,IAAA,OAAA,SAAA,CAAA;AACA,GAAA;AACA;AACA,EAAA,OAAA,UAAA,CAAA,WAAA,CAAA,KAAA,EAAA,CAAA,CAAA,CAAA,CAAA;AACA;;;;;;;;"}
@@ -0,0 +1,12 @@
1
+ Object.defineProperty(exports, '__esModule', { value: true });
2
+
3
+ const nodeVersion = require('../../nodeVersion.js');
4
+ const localVariablesAsync = require('./local-variables-async.js');
5
+ const localVariablesSync = require('./local-variables-sync.js');
6
+
7
+ const localVariablesIntegration = (options = {}) => {
8
+ return nodeVersion.NODE_VERSION.major < 19 ? localVariablesSync.localVariablesSyncIntegration(options) : localVariablesAsync.localVariablesAsyncIntegration(options);
9
+ };
10
+
11
+ exports.localVariablesIntegration = localVariablesIntegration;
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/integrations/local-variables/index.ts"],"sourcesContent":["import type { Integration } from '@sentry/types';\nimport { NODE_VERSION } from '../../nodeVersion';\nimport type { LocalVariablesIntegrationOptions } from './common';\nimport { localVariablesAsyncIntegration } from './local-variables-async';\nimport { localVariablesSyncIntegration } from './local-variables-sync';\n\nexport const localVariablesIntegration = (options: LocalVariablesIntegrationOptions = {}): Integration => {\n return NODE_VERSION.major < 19 ? localVariablesSyncIntegration(options) : localVariablesAsyncIntegration(options);\n};\n"],"names":["NODE_VERSION","localVariablesSyncIntegration","localVariablesAsyncIntegration"],"mappings":";;;;;;AAMO,MAAM,4BAA4B,CAAC,OAAO,GAAqC,EAAE,KAAkB;AAC1G,EAAE,OAAOA,wBAAY,CAAC,KAAA,GAAQ,EAAG,GAAEC,gDAA6B,CAAC,OAAO,CAAE,GAAEC,kDAA8B,CAAC,OAAO,CAAC,CAAA;AACnH;;;;"}