@sentry/core 10.31.0 → 10.32.0-alpha.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 (159) hide show
  1. package/build/cjs/attributes.js +98 -0
  2. package/build/cjs/attributes.js.map +1 -0
  3. package/build/cjs/client.js +11 -6
  4. package/build/cjs/client.js.map +1 -1
  5. package/build/cjs/envelope.js +41 -7
  6. package/build/cjs/envelope.js.map +1 -1
  7. package/build/cjs/index.js +29 -0
  8. package/build/cjs/index.js.map +1 -1
  9. package/build/cjs/integrations/eventFilters.js +1 -1
  10. package/build/cjs/integrations/eventFilters.js.map +1 -1
  11. package/build/cjs/integrations/mcp-server/correlation.js +17 -3
  12. package/build/cjs/integrations/mcp-server/correlation.js.map +1 -1
  13. package/build/cjs/integrations/mcp-server/sessionExtraction.js +44 -0
  14. package/build/cjs/integrations/mcp-server/sessionExtraction.js.map +1 -1
  15. package/build/cjs/integrations/mcp-server/transport.js +17 -3
  16. package/build/cjs/integrations/mcp-server/transport.js.map +1 -1
  17. package/build/cjs/integrations/requestdata.js +72 -6
  18. package/build/cjs/integrations/requestdata.js.map +1 -1
  19. package/build/cjs/integrations/serverSpanStreaming.js +51 -0
  20. package/build/cjs/integrations/serverSpanStreaming.js.map +1 -0
  21. package/build/cjs/semanticAttributes.js +36 -0
  22. package/build/cjs/semanticAttributes.js.map +1 -1
  23. package/build/cjs/spans/captureSpan.js +107 -0
  24. package/build/cjs/spans/captureSpan.js.map +1 -0
  25. package/build/cjs/spans/spanBuffer.js +117 -0
  26. package/build/cjs/spans/spanBuffer.js.map +1 -0
  27. package/build/cjs/spans/spanFirstUtils.js +187 -0
  28. package/build/cjs/spans/spanFirstUtils.js.map +1 -0
  29. package/build/cjs/tracing/sentrySpan.js +31 -0
  30. package/build/cjs/tracing/sentrySpan.js.map +1 -1
  31. package/build/cjs/tracing/trace.js +1 -0
  32. package/build/cjs/tracing/trace.js.map +1 -1
  33. package/build/cjs/tracing/vercel-ai/index.js +1 -0
  34. package/build/cjs/tracing/vercel-ai/index.js.map +1 -1
  35. package/build/cjs/utils/applyScopeDataToEvent.js +5 -0
  36. package/build/cjs/utils/applyScopeDataToEvent.js.map +1 -1
  37. package/build/cjs/utils/beforeSendSpan.js +36 -0
  38. package/build/cjs/utils/beforeSendSpan.js.map +1 -0
  39. package/build/cjs/utils/featureFlags.js +1 -0
  40. package/build/cjs/utils/featureFlags.js.map +1 -1
  41. package/build/cjs/utils/should-ignore-span.js +31 -9
  42. package/build/cjs/utils/should-ignore-span.js.map +1 -1
  43. package/build/cjs/utils/spanUtils.js +101 -2
  44. package/build/cjs/utils/spanUtils.js.map +1 -1
  45. package/build/cjs/utils/version.js +1 -1
  46. package/build/cjs/utils/version.js.map +1 -1
  47. package/build/esm/attributes.js +95 -0
  48. package/build/esm/attributes.js.map +1 -0
  49. package/build/esm/client.js +6 -1
  50. package/build/esm/client.js.map +1 -1
  51. package/build/esm/envelope.js +41 -8
  52. package/build/esm/envelope.js.map +1 -1
  53. package/build/esm/index.js +9 -3
  54. package/build/esm/index.js.map +1 -1
  55. package/build/esm/integrations/eventFilters.js +1 -1
  56. package/build/esm/integrations/eventFilters.js.map +1 -1
  57. package/build/esm/integrations/mcp-server/correlation.js +17 -3
  58. package/build/esm/integrations/mcp-server/correlation.js.map +1 -1
  59. package/build/esm/integrations/mcp-server/sessionExtraction.js +43 -1
  60. package/build/esm/integrations/mcp-server/sessionExtraction.js.map +1 -1
  61. package/build/esm/integrations/mcp-server/transport.js +18 -4
  62. package/build/esm/integrations/mcp-server/transport.js.map +1 -1
  63. package/build/esm/integrations/requestdata.js +72 -6
  64. package/build/esm/integrations/requestdata.js.map +1 -1
  65. package/build/esm/integrations/serverSpanStreaming.js +49 -0
  66. package/build/esm/integrations/serverSpanStreaming.js.map +1 -0
  67. package/build/esm/package.json +1 -1
  68. package/build/esm/semanticAttributes.js +26 -1
  69. package/build/esm/semanticAttributes.js.map +1 -1
  70. package/build/esm/spans/captureSpan.js +105 -0
  71. package/build/esm/spans/captureSpan.js.map +1 -0
  72. package/build/esm/spans/spanBuffer.js +115 -0
  73. package/build/esm/spans/spanBuffer.js.map +1 -0
  74. package/build/esm/spans/spanFirstUtils.js +183 -0
  75. package/build/esm/spans/spanFirstUtils.js.map +1 -0
  76. package/build/esm/tracing/sentrySpan.js +32 -1
  77. package/build/esm/tracing/sentrySpan.js.map +1 -1
  78. package/build/esm/tracing/trace.js +1 -0
  79. package/build/esm/tracing/trace.js.map +1 -1
  80. package/build/esm/tracing/vercel-ai/index.js +1 -0
  81. package/build/esm/tracing/vercel-ai/index.js.map +1 -1
  82. package/build/esm/utils/applyScopeDataToEvent.js +5 -0
  83. package/build/esm/utils/applyScopeDataToEvent.js.map +1 -1
  84. package/build/esm/utils/beforeSendSpan.js +33 -0
  85. package/build/esm/utils/beforeSendSpan.js.map +1 -0
  86. package/build/esm/utils/featureFlags.js +1 -0
  87. package/build/esm/utils/featureFlags.js.map +1 -1
  88. package/build/esm/utils/should-ignore-span.js +31 -9
  89. package/build/esm/utils/should-ignore-span.js.map +1 -1
  90. package/build/esm/utils/spanUtils.js +97 -3
  91. package/build/esm/utils/spanUtils.js.map +1 -1
  92. package/build/esm/utils/version.js +1 -1
  93. package/build/esm/utils/version.js.map +1 -1
  94. package/build/types/attributes.d.ts +2 -2
  95. package/build/types/attributes.d.ts.map +1 -1
  96. package/build/types/client.d.ts +40 -2
  97. package/build/types/client.d.ts.map +1 -1
  98. package/build/types/envelope.d.ts +6 -1
  99. package/build/types/envelope.d.ts.map +1 -1
  100. package/build/types/index.d.ts +10 -4
  101. package/build/types/index.d.ts.map +1 -1
  102. package/build/types/integrations/mcp-server/correlation.d.ts +2 -2
  103. package/build/types/integrations/mcp-server/correlation.d.ts.map +1 -1
  104. package/build/types/integrations/mcp-server/sessionExtraction.d.ts +13 -1
  105. package/build/types/integrations/mcp-server/sessionExtraction.d.ts.map +1 -1
  106. package/build/types/integrations/mcp-server/transport.d.ts.map +1 -1
  107. package/build/types/integrations/requestdata.d.ts.map +1 -1
  108. package/build/types/integrations/serverSpanStreaming.d.ts +8 -0
  109. package/build/types/integrations/serverSpanStreaming.d.ts.map +1 -0
  110. package/build/types/semanticAttributes.d.ts +21 -0
  111. package/build/types/semanticAttributes.d.ts.map +1 -1
  112. package/build/types/spans/captureSpan.d.ts +10 -0
  113. package/build/types/spans/captureSpan.d.ts.map +1 -0
  114. package/build/types/spans/spanBuffer.d.ts +31 -0
  115. package/build/types/spans/spanBuffer.d.ts.map +1 -0
  116. package/build/types/spans/spanFirstUtils.d.ts +20 -0
  117. package/build/types/spans/spanFirstUtils.d.ts.map +1 -0
  118. package/build/types/tracing/sentrySpan.d.ts +10 -1
  119. package/build/types/tracing/sentrySpan.d.ts.map +1 -1
  120. package/build/types/tracing/vercel-ai/index.d.ts.map +1 -1
  121. package/build/types/types-hoist/attributes.d.ts +19 -0
  122. package/build/types/types-hoist/attributes.d.ts.map +1 -0
  123. package/build/types/types-hoist/envelope.d.ts +22 -2
  124. package/build/types/types-hoist/envelope.d.ts.map +1 -1
  125. package/build/types/types-hoist/link.d.ts +2 -2
  126. package/build/types/types-hoist/link.d.ts.map +1 -1
  127. package/build/types/types-hoist/options.d.ts +18 -2
  128. package/build/types/types-hoist/options.d.ts.map +1 -1
  129. package/build/types/types-hoist/span.d.ts +27 -0
  130. package/build/types/types-hoist/span.d.ts.map +1 -1
  131. package/build/types/utils/applyScopeDataToEvent.d.ts.map +1 -1
  132. package/build/types/utils/beforeSendSpan.d.ts +22 -0
  133. package/build/types/utils/beforeSendSpan.d.ts.map +1 -0
  134. package/build/types/utils/featureFlags.d.ts.map +1 -1
  135. package/build/types/utils/should-ignore-span.d.ts +3 -3
  136. package/build/types/utils/should-ignore-span.d.ts.map +1 -1
  137. package/build/types/utils/spanUtils.d.ts +26 -2
  138. package/build/types/utils/spanUtils.d.ts.map +1 -1
  139. package/build/types-ts3.8/attributes.d.ts +2 -2
  140. package/build/types-ts3.8/client.d.ts +40 -2
  141. package/build/types-ts3.8/envelope.d.ts +6 -1
  142. package/build/types-ts3.8/index.d.ts +10 -4
  143. package/build/types-ts3.8/integrations/mcp-server/correlation.d.ts +2 -2
  144. package/build/types-ts3.8/integrations/mcp-server/sessionExtraction.d.ts +13 -1
  145. package/build/types-ts3.8/integrations/serverSpanStreaming.d.ts +8 -0
  146. package/build/types-ts3.8/semanticAttributes.d.ts +21 -0
  147. package/build/types-ts3.8/spans/captureSpan.d.ts +10 -0
  148. package/build/types-ts3.8/spans/spanBuffer.d.ts +31 -0
  149. package/build/types-ts3.8/spans/spanFirstUtils.d.ts +20 -0
  150. package/build/types-ts3.8/tracing/sentrySpan.d.ts +10 -1
  151. package/build/types-ts3.8/types-hoist/attributes.d.ts +19 -0
  152. package/build/types-ts3.8/types-hoist/envelope.d.ts +22 -2
  153. package/build/types-ts3.8/types-hoist/link.d.ts +2 -2
  154. package/build/types-ts3.8/types-hoist/options.d.ts +18 -2
  155. package/build/types-ts3.8/types-hoist/span.d.ts +27 -0
  156. package/build/types-ts3.8/utils/beforeSendSpan.d.ts +22 -0
  157. package/build/types-ts3.8/utils/should-ignore-span.d.ts +3 -3
  158. package/build/types-ts3.8/utils/spanUtils.d.ts +26 -2
  159. package/package.json +1 -1
@@ -1,9 +1,10 @@
1
1
  import { DEBUG_BUILD } from '../debug-build.js';
2
+ import { SEMANTIC_ATTRIBUTE_SENTRY_OP } from '../semanticAttributes.js';
2
3
  import { debug } from './debug-logger.js';
3
4
  import { isMatchingPattern } from './string.js';
4
5
 
5
- function logIgnoredSpan(droppedSpan) {
6
- debug.log(`Ignoring span ${droppedSpan.op} - ${droppedSpan.description} because it matches \`ignoreSpans\`.`);
6
+ function logIgnoredSpan(spanName, spanOp) {
7
+ debug.log(`Ignoring span ${spanOp ? `${spanOp} - ` : ''}${spanName} because it matches \`ignoreSpans\`.`);
7
8
  }
8
9
 
9
10
  /**
@@ -13,14 +14,32 @@ function shouldIgnoreSpan(
13
14
  span,
14
15
  ignoreSpans,
15
16
  ) {
16
- if (!ignoreSpans?.length || !span.description) {
17
+ if (!ignoreSpans?.length) {
18
+ return false;
19
+ }
20
+
21
+ const { spanName, spanOp: spanOpAttributeOrString } =
22
+ 'description' in span
23
+ ? { spanName: span.description, spanOp: span.op }
24
+ : 'name' in span
25
+ ? { spanName: span.name, spanOp: span.attributes?.[SEMANTIC_ATTRIBUTE_SENTRY_OP] }
26
+ : { spanName: '', spanOp: '' };
27
+
28
+ const spanOp =
29
+ typeof spanOpAttributeOrString === 'string'
30
+ ? spanOpAttributeOrString
31
+ : spanOpAttributeOrString?.type === 'string'
32
+ ? spanOpAttributeOrString.value
33
+ : undefined;
34
+
35
+ if (!spanName) {
17
36
  return false;
18
37
  }
19
38
 
20
39
  for (const pattern of ignoreSpans) {
21
40
  if (isStringOrRegExp(pattern)) {
22
- if (isMatchingPattern(span.description, pattern)) {
23
- DEBUG_BUILD && logIgnoredSpan(span);
41
+ if (isMatchingPattern(spanName, pattern)) {
42
+ DEBUG_BUILD && logIgnoredSpan(spanName, spanOp);
24
43
  return true;
25
44
  }
26
45
  continue;
@@ -30,15 +49,15 @@ function shouldIgnoreSpan(
30
49
  continue;
31
50
  }
32
51
 
33
- const nameMatches = pattern.name ? isMatchingPattern(span.description, pattern.name) : true;
34
- const opMatches = pattern.op ? span.op && isMatchingPattern(span.op, pattern.op) : true;
52
+ const nameMatches = pattern.name ? isMatchingPattern(spanName, pattern.name) : true;
53
+ const opMatches = pattern.op ? spanOp && isMatchingPattern(spanOp, pattern.op) : true;
35
54
 
36
55
  // This check here is only correct because we can guarantee that we ran `isMatchingPattern`
37
56
  // for at least one of `nameMatches` and `opMatches`. So in contrary to how this looks,
38
57
  // not both op and name actually have to match. This is the most efficient way to check
39
58
  // for all combinations of name and op patterns.
40
59
  if (nameMatches && opMatches) {
41
- DEBUG_BUILD && logIgnoredSpan(span);
60
+ DEBUG_BUILD && logIgnoredSpan(spanName, spanOp);
42
61
  return true;
43
62
  }
44
63
  }
@@ -50,7 +69,10 @@ function shouldIgnoreSpan(
50
69
  * Takes a list of spans, and a span that was dropped, and re-parents the child spans of the dropped span to the parent of the dropped span, if possible.
51
70
  * This mutates the spans array in place!
52
71
  */
53
- function reparentChildSpans(spans, dropSpan) {
72
+ function reparentChildSpans(
73
+ spans,
74
+ dropSpan,
75
+ ) {
54
76
  const droppedSpanParentId = dropSpan.parent_span_id;
55
77
  const droppedSpanId = dropSpan.span_id;
56
78
 
@@ -1 +1 @@
1
- {"version":3,"file":"should-ignore-span.js","sources":["../../../src/utils/should-ignore-span.ts"],"sourcesContent":["import { DEBUG_BUILD } from '../debug-build';\nimport type { ClientOptions } from '../types-hoist/options';\nimport type { SpanJSON } from '../types-hoist/span';\nimport { debug } from './debug-logger';\nimport { isMatchingPattern } from './string';\n\nfunction logIgnoredSpan(droppedSpan: Pick<SpanJSON, 'description' | 'op'>): void {\n debug.log(`Ignoring span ${droppedSpan.op} - ${droppedSpan.description} because it matches \\`ignoreSpans\\`.`);\n}\n\n/**\n * Check if a span should be ignored based on the ignoreSpans configuration.\n */\nexport function shouldIgnoreSpan(\n span: Pick<SpanJSON, 'description' | 'op'>,\n ignoreSpans: Required<ClientOptions>['ignoreSpans'],\n): boolean {\n if (!ignoreSpans?.length || !span.description) {\n return false;\n }\n\n for (const pattern of ignoreSpans) {\n if (isStringOrRegExp(pattern)) {\n if (isMatchingPattern(span.description, pattern)) {\n DEBUG_BUILD && logIgnoredSpan(span);\n return true;\n }\n continue;\n }\n\n if (!pattern.name && !pattern.op) {\n continue;\n }\n\n const nameMatches = pattern.name ? isMatchingPattern(span.description, pattern.name) : true;\n const opMatches = pattern.op ? span.op && isMatchingPattern(span.op, pattern.op) : true;\n\n // This check here is only correct because we can guarantee that we ran `isMatchingPattern`\n // for at least one of `nameMatches` and `opMatches`. So in contrary to how this looks,\n // not both op and name actually have to match. This is the most efficient way to check\n // for all combinations of name and op patterns.\n if (nameMatches && opMatches) {\n DEBUG_BUILD && logIgnoredSpan(span);\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Takes a list of spans, and a span that was dropped, and re-parents the child spans of the dropped span to the parent of the dropped span, if possible.\n * This mutates the spans array in place!\n */\nexport function reparentChildSpans(spans: SpanJSON[], dropSpan: SpanJSON): void {\n const droppedSpanParentId = dropSpan.parent_span_id;\n const droppedSpanId = dropSpan.span_id;\n\n // This should generally not happen, as we do not apply this on root spans\n // but to be safe, we just bail in this case\n if (!droppedSpanParentId) {\n return;\n }\n\n for (const span of spans) {\n if (span.parent_span_id === droppedSpanId) {\n span.parent_span_id = droppedSpanParentId;\n }\n }\n}\n\nfunction isStringOrRegExp(value: unknown): value is string | RegExp {\n return typeof value === 'string' || value instanceof RegExp;\n}\n"],"names":[],"mappings":";;;;AAMA,SAAS,cAAc,CAAC,WAAW,EAA8C;AACjF,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,WAAW,CAAC,oCAAoC,CAAC,CAAC;AAC/G;;AAEA;AACA;AACA;AACO,SAAS,gBAAgB;AAChC,EAAE,IAAI;AACN,EAAE,WAAW;AACb,EAAW;AACX,EAAE,IAAI,CAAC,WAAW,EAAE,MAAA,IAAU,CAAC,IAAI,CAAC,WAAW,EAAE;AACjD,IAAI,OAAO,KAAK;AAChB,EAAE;;AAEF,EAAE,KAAK,MAAM,OAAA,IAAW,WAAW,EAAE;AACrC,IAAI,IAAI,gBAAgB,CAAC,OAAO,CAAC,EAAE;AACnC,MAAM,IAAI,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE;AACxD,QAAQ,WAAA,IAAe,cAAc,CAAC,IAAI,CAAC;AAC3C,QAAQ,OAAO,IAAI;AACnB,MAAM;AACN,MAAM;AACN,IAAI;;AAEJ,IAAI,IAAI,CAAC,OAAO,CAAC,IAAA,IAAQ,CAAC,OAAO,CAAC,EAAE,EAAE;AACtC,MAAM;AACN,IAAI;;AAEJ,IAAI,MAAM,WAAA,GAAc,OAAO,CAAC,IAAA,GAAO,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAA,GAAI,IAAI;AAC/F,IAAI,MAAM,YAAY,OAAO,CAAC,EAAA,GAAK,IAAI,CAAC,EAAA,IAAM,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAA,GAAI,IAAI;;AAE3F;AACA;AACA;AACA;AACA,IAAI,IAAI,WAAA,IAAe,SAAS,EAAE;AAClC,MAAM,WAAA,IAAe,cAAc,CAAC,IAAI,CAAC;AACzC,MAAM,OAAO,IAAI;AACjB,IAAI;AACJ,EAAE;;AAEF,EAAE,OAAO,KAAK;AACd;;AAEA;AACA;AACA;AACA;AACO,SAAS,kBAAkB,CAAC,KAAK,EAAc,QAAQ,EAAkB;AAChF,EAAE,MAAM,mBAAA,GAAsB,QAAQ,CAAC,cAAc;AACrD,EAAE,MAAM,aAAA,GAAgB,QAAQ,CAAC,OAAO;;AAExC;AACA;AACA,EAAE,IAAI,CAAC,mBAAmB,EAAE;AAC5B,IAAI;AACJ,EAAE;;AAEF,EAAE,KAAK,MAAM,IAAA,IAAQ,KAAK,EAAE;AAC5B,IAAI,IAAI,IAAI,CAAC,cAAA,KAAmB,aAAa,EAAE;AAC/C,MAAM,IAAI,CAAC,cAAA,GAAiB,mBAAmB;AAC/C,IAAI;AACJ,EAAE;AACF;;AAEA,SAAS,gBAAgB,CAAC,KAAK,EAAqC;AACpE,EAAE,OAAO,OAAO,KAAA,KAAU,YAAY,KAAA,YAAiB,MAAM;AAC7D;;;;"}
1
+ {"version":3,"file":"should-ignore-span.js","sources":["../../../src/utils/should-ignore-span.ts"],"sourcesContent":["import { DEBUG_BUILD } from '../debug-build';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP } from '../semanticAttributes';\nimport type { ClientOptions } from '../types-hoist/options';\nimport type { SpanJSON, SpanV2JSON } from '../types-hoist/span';\nimport { debug } from './debug-logger';\nimport { isMatchingPattern } from './string';\n\nfunction logIgnoredSpan(spanName: string, spanOp: string | undefined): void {\n debug.log(`Ignoring span ${spanOp ? `${spanOp} - ` : ''}${spanName} because it matches \\`ignoreSpans\\`.`);\n}\n\n/**\n * Check if a span should be ignored based on the ignoreSpans configuration.\n */\nexport function shouldIgnoreSpan(\n span: Pick<SpanJSON, 'description' | 'op'> | Pick<SpanV2JSON, 'name' | 'attributes'>,\n ignoreSpans: Required<ClientOptions>['ignoreSpans'],\n): boolean {\n if (!ignoreSpans?.length) {\n return false;\n }\n\n const { spanName, spanOp: spanOpAttributeOrString } =\n 'description' in span\n ? { spanName: span.description, spanOp: span.op }\n : 'name' in span\n ? { spanName: span.name, spanOp: span.attributes?.[SEMANTIC_ATTRIBUTE_SENTRY_OP] }\n : { spanName: '', spanOp: '' };\n\n const spanOp =\n typeof spanOpAttributeOrString === 'string'\n ? spanOpAttributeOrString\n : spanOpAttributeOrString?.type === 'string'\n ? spanOpAttributeOrString.value\n : undefined;\n\n if (!spanName) {\n return false;\n }\n\n for (const pattern of ignoreSpans) {\n if (isStringOrRegExp(pattern)) {\n if (isMatchingPattern(spanName, pattern)) {\n DEBUG_BUILD && logIgnoredSpan(spanName, spanOp);\n return true;\n }\n continue;\n }\n\n if (!pattern.name && !pattern.op) {\n continue;\n }\n\n const nameMatches = pattern.name ? isMatchingPattern(spanName, pattern.name) : true;\n const opMatches = pattern.op ? spanOp && isMatchingPattern(spanOp, pattern.op) : true;\n\n // This check here is only correct because we can guarantee that we ran `isMatchingPattern`\n // for at least one of `nameMatches` and `opMatches`. So in contrary to how this looks,\n // not both op and name actually have to match. This is the most efficient way to check\n // for all combinations of name and op patterns.\n if (nameMatches && opMatches) {\n DEBUG_BUILD && logIgnoredSpan(spanName, spanOp);\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Takes a list of spans, and a span that was dropped, and re-parents the child spans of the dropped span to the parent of the dropped span, if possible.\n * This mutates the spans array in place!\n */\nexport function reparentChildSpans(\n spans: Pick<SpanV2JSON, 'parent_span_id' | 'span_id'>[],\n dropSpan: Pick<SpanV2JSON, 'parent_span_id' | 'span_id'>,\n): void {\n const droppedSpanParentId = dropSpan.parent_span_id;\n const droppedSpanId = dropSpan.span_id;\n\n // This should generally not happen, as we do not apply this on root spans\n // but to be safe, we just bail in this case\n if (!droppedSpanParentId) {\n return;\n }\n\n for (const span of spans) {\n if (span.parent_span_id === droppedSpanId) {\n span.parent_span_id = droppedSpanParentId;\n }\n }\n}\n\nfunction isStringOrRegExp(value: unknown): value is string | RegExp {\n return typeof value === 'string' || value instanceof RegExp;\n}\n"],"names":[],"mappings":";;;;;AAOA,SAAS,cAAc,CAAC,QAAQ,EAAU,MAAM,EAA4B;AAC5E,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,MAAA,GAAS,CAAC,EAAA,MAAA,CAAA,GAAA,CAAA,GAAA,EAAA,CAAA,EAAA,QAAA,CAAA,oCAAA,CAAA,CAAA;AACA;;AAEA;AACA;AACA;AACA,SAAA,gBAAA;AACA,EAAA,IAAA;AACA,EAAA,WAAA;AACA,EAAA;AACA,EAAA,IAAA,CAAA,WAAA,EAAA,MAAA,EAAA;AACA,IAAA,OAAA,KAAA;AACA,EAAA;;AAEA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,uBAAA,EAAA;AACA,IAAA,aAAA,IAAA;AACA,QAAA,EAAA,QAAA,EAAA,IAAA,CAAA,WAAA,EAAA,MAAA,EAAA,IAAA,CAAA,EAAA;AACA,QAAA,MAAA,IAAA;AACA,UAAA,EAAA,QAAA,EAAA,IAAA,CAAA,IAAA,EAAA,MAAA,EAAA,IAAA,CAAA,UAAA,GAAA,4BAAA,CAAA;AACA,UAAA,EAAA,QAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,EAAA;;AAEA,EAAA,MAAA,MAAA;AACA,IAAA,OAAA,uBAAA,KAAA;AACA,QAAA;AACA,QAAA,uBAAA,EAAA,IAAA,KAAA;AACA,UAAA,uBAAA,CAAA;AACA,UAAA,SAAA;;AAEA,EAAA,IAAA,CAAA,QAAA,EAAA;AACA,IAAA,OAAA,KAAA;AACA,EAAA;;AAEA,EAAA,KAAA,MAAA,OAAA,IAAA,WAAA,EAAA;AACA,IAAA,IAAA,gBAAA,CAAA,OAAA,CAAA,EAAA;AACA,MAAA,IAAA,iBAAA,CAAA,QAAA,EAAA,OAAA,CAAA,EAAA;AACA,QAAA,WAAA,IAAA,cAAA,CAAA,QAAA,EAAA,MAAA,CAAA;AACA,QAAA,OAAA,IAAA;AACA,MAAA;AACA,MAAA;AACA,IAAA;;AAEA,IAAA,IAAA,CAAA,OAAA,CAAA,IAAA,IAAA,CAAA,OAAA,CAAA,EAAA,EAAA;AACA,MAAA;AACA,IAAA;;AAEA,IAAA,MAAA,WAAA,GAAA,OAAA,CAAA,IAAA,GAAA,iBAAA,CAAA,QAAA,EAAA,OAAA,CAAA,IAAA,CAAA,GAAA,IAAA;AACA,IAAA,MAAA,SAAA,GAAA,OAAA,CAAA,EAAA,GAAA,MAAA,IAAA,iBAAA,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,GAAA,IAAA;;AAEA;AACA;AACA;AACA;AACA,IAAA,IAAA,WAAA,IAAA,SAAA,EAAA;AACA,MAAA,WAAA,IAAA,cAAA,CAAA,QAAA,EAAA,MAAA,CAAA;AACA,MAAA,OAAA,IAAA;AACA,IAAA;AACA,EAAA;;AAEA,EAAA,OAAA,KAAA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAA,kBAAA;AACA,EAAA,KAAA;AACA,EAAA,QAAA;AACA,EAAA;AACA,EAAA,MAAA,mBAAA,GAAA,QAAA,CAAA,cAAA;AACA,EAAA,MAAA,aAAA,GAAA,QAAA,CAAA,OAAA;;AAEA;AACA;AACA,EAAA,IAAA,CAAA,mBAAA,EAAA;AACA,IAAA;AACA,EAAA;;AAEA,EAAA,KAAA,MAAA,IAAA,IAAA,KAAA,EAAA;AACA,IAAA,IAAA,IAAA,CAAA,cAAA,KAAA,aAAA,EAAA;AACA,MAAA,IAAA,CAAA,cAAA,GAAA,mBAAA;AACA,IAAA;AACA,EAAA;AACA;;AAEA,SAAA,gBAAA,CAAA,KAAA,EAAA;AACA,EAAA,OAAA,OAAA,KAAA,KAAA,QAAA,IAAA,KAAA,YAAA,MAAA;AACA;;;;"}
@@ -1,4 +1,5 @@
1
1
  import { getAsyncContextStrategy } from '../asyncContext/index.js';
2
+ import { attributeValueToTypedAttributeValue } from '../attributes.js';
2
3
  import { getMainCarrier } from '../carrier.js';
3
4
  import { getCurrentScope } from '../currentScopes.js';
4
5
  import { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME, SEMANTIC_ATTRIBUTE_SENTRY_SOURCE } from '../semanticAttributes.js';
@@ -82,7 +83,7 @@ function spanToTraceparentHeader(span) {
82
83
  * If the links array is empty, it returns `undefined` so the empty value can be dropped before it's sent.
83
84
  */
84
85
  function convertSpanLinksForEnvelope(links) {
85
- if (links && links.length > 0) {
86
+ if (links?.length) {
86
87
  return links.map(({ context: { spanId, traceId, traceFlags, ...restContext }, attributes }) => ({
87
88
  span_id: spanId,
88
89
  trace_id: traceId,
@@ -94,6 +95,24 @@ function convertSpanLinksForEnvelope(links) {
94
95
  return undefined;
95
96
  }
96
97
  }
98
+ /**
99
+ *
100
+ * @param links
101
+ * @returns
102
+ */
103
+ function getV2SpanLinks(links) {
104
+ if (links?.length) {
105
+ return links.map(({ context: { spanId, traceId, traceFlags, ...restContext }, attributes }) => ({
106
+ span_id: spanId,
107
+ trace_id: traceId,
108
+ sampled: traceFlags === TRACE_FLAG_SAMPLED,
109
+ ...(attributes && { attributes: getV2Attributes(attributes) }),
110
+ ...restContext,
111
+ }));
112
+ } else {
113
+ return undefined;
114
+ }
115
+ }
97
116
 
98
117
  /**
99
118
  * Convert a span time input into a timestamp in seconds.
@@ -177,6 +196,59 @@ function spanToJSON(span) {
177
196
  };
178
197
  }
179
198
 
199
+ /**
200
+ * Convert a span to a SpanV2JSON representation.
201
+ * @returns
202
+ */
203
+ function spanToV2JSON(span) {
204
+ if (spanIsSentrySpan(span)) {
205
+ return span.getSpanV2JSON();
206
+ }
207
+
208
+ const { spanId: span_id, traceId: trace_id } = span.spanContext();
209
+
210
+ // Handle a span from @opentelemetry/sdk-base-trace's `Span` class
211
+ if (spanIsOpenTelemetrySdkTraceBaseSpan(span)) {
212
+ const { attributes, startTime, name, endTime, status, links } = span;
213
+
214
+ // In preparation for the next major of OpenTelemetry, we want to support
215
+ // looking up the parent span id according to the new API
216
+ // In OTel v1, the parent span id is accessed as `parentSpanId`
217
+ // In OTel v2, the parent span id is accessed as `spanId` on the `parentSpanContext`
218
+ const parentSpanId =
219
+ 'parentSpanId' in span
220
+ ? span.parentSpanId
221
+ : 'parentSpanContext' in span
222
+ ? (span.parentSpanContext )?.spanId
223
+ : undefined;
224
+
225
+ return {
226
+ name,
227
+ span_id,
228
+ trace_id,
229
+ parent_span_id: parentSpanId,
230
+ start_timestamp: spanTimeInputToSeconds(startTime),
231
+ end_timestamp: spanTimeInputToSeconds(endTime),
232
+ is_segment: span === INTERNAL_getSegmentSpan(span),
233
+ status: getV2StatusMessage(status),
234
+ attributes: getV2Attributes(attributes),
235
+ links: getV2SpanLinks(links),
236
+ };
237
+ }
238
+
239
+ // Finally, as a fallback, at least we have `spanContext()`....
240
+ // This should not actually happen in reality, but we need to handle it for type safety.
241
+ return {
242
+ span_id,
243
+ trace_id,
244
+ start_timestamp: 0,
245
+ name: '',
246
+ end_timestamp: 0,
247
+ status: 'ok',
248
+ is_segment: span === INTERNAL_getSegmentSpan(span),
249
+ };
250
+ }
251
+
180
252
  function spanIsOpenTelemetrySdkTraceBaseSpan(span) {
181
253
  const castSpan = span ;
182
254
  return !!castSpan.attributes && !!castSpan.startTime && !!castSpan.name && !!castSpan.endTime && !!castSpan.status;
@@ -218,6 +290,23 @@ function getStatusMessage(status) {
218
290
  return status.message || 'internal_error';
219
291
  }
220
292
 
293
+ /**
294
+ * Convert the various statuses to the ones expected by Sentry ('ok' is default)
295
+ */
296
+ function getV2StatusMessage(status) {
297
+ return !status || status.code === SPAN_STATUS_OK || status.code === SPAN_STATUS_UNSET ? 'ok' : 'error';
298
+ }
299
+
300
+ /**
301
+ * Convert the attributes to the ones expected by Sentry, including the type annotation
302
+ */
303
+ function getV2Attributes(attributes) {
304
+ return Object.entries(attributes).reduce((acc, [key, value]) => {
305
+ acc[key] = attributeValueToTypedAttributeValue(value);
306
+ return acc;
307
+ }, {} );
308
+ }
309
+
221
310
  const CHILD_SPANS_FIELD = '_sentryChildSpans';
222
311
  const ROOT_SPAN_FIELD = '_sentryRootSpan';
223
312
 
@@ -274,7 +363,12 @@ function getSpanDescendants(span) {
274
363
  /**
275
364
  * Returns the root span of a given span.
276
365
  */
277
- function getRootSpan(span) {
366
+ const getRootSpan = INTERNAL_getSegmentSpan;
367
+
368
+ /**
369
+ * Returns the segment span of a given span.
370
+ */
371
+ function INTERNAL_getSegmentSpan(span) {
278
372
  return span[ROOT_SPAN_FIELD] || span;
279
373
  }
280
374
 
@@ -330,5 +424,5 @@ function updateSpanName(span, name) {
330
424
  });
331
425
  }
332
426
 
333
- export { TRACE_FLAG_NONE, TRACE_FLAG_SAMPLED, addChildSpanToSpan, convertSpanLinksForEnvelope, getActiveSpan, getRootSpan, getSpanDescendants, getStatusMessage, removeChildSpanFromSpan, showSpanDropWarning, spanIsSampled, spanTimeInputToSeconds, spanToJSON, spanToTraceContext, spanToTraceHeader, spanToTraceparentHeader, spanToTransactionTraceContext, updateSpanName };
427
+ export { INTERNAL_getSegmentSpan, TRACE_FLAG_NONE, TRACE_FLAG_SAMPLED, addChildSpanToSpan, convertSpanLinksForEnvelope, getActiveSpan, getRootSpan, getSpanDescendants, getStatusMessage, getV2Attributes, getV2SpanLinks, getV2StatusMessage, removeChildSpanFromSpan, showSpanDropWarning, spanIsSampled, spanTimeInputToSeconds, spanToJSON, spanToTraceContext, spanToTraceHeader, spanToTraceparentHeader, spanToTransactionTraceContext, spanToV2JSON, updateSpanName };
334
428
  //# sourceMappingURL=spanUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spanUtils.js","sources":["../../../src/utils/spanUtils.ts"],"sourcesContent":["import { getAsyncContextStrategy } from '../asyncContext';\nimport { getMainCarrier } from '../carrier';\nimport { getCurrentScope } from '../currentScopes';\nimport {\n SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME,\n SEMANTIC_ATTRIBUTE_SENTRY_OP,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n} from '../semanticAttributes';\nimport type { SentrySpan } from '../tracing/sentrySpan';\nimport { SPAN_STATUS_OK, SPAN_STATUS_UNSET } from '../tracing/spanstatus';\nimport { getCapturedScopesOnSpan } from '../tracing/utils';\nimport type { TraceContext } from '../types-hoist/context';\nimport type { SpanLink, SpanLinkJSON } from '../types-hoist/link';\nimport type { Span, SpanAttributes, SpanJSON, SpanOrigin, SpanTimeInput } from '../types-hoist/span';\nimport type { SpanStatus } from '../types-hoist/spanStatus';\nimport { addNonEnumerableProperty } from '../utils/object';\nimport { generateSpanId } from '../utils/propagationContext';\nimport { timestampInSeconds } from '../utils/time';\nimport { generateSentryTraceHeader, generateTraceparentHeader } from '../utils/tracing';\nimport { consoleSandbox } from './debug-logger';\nimport { _getSpanForScope } from './spanOnScope';\n\n// These are aligned with OpenTelemetry trace flags\nexport const TRACE_FLAG_NONE = 0x0;\nexport const TRACE_FLAG_SAMPLED = 0x1;\n\nlet hasShownSpanDropWarning = false;\n\n/**\n * Convert a span to a trace context, which can be sent as the `trace` context in an event.\n * By default, this will only include trace_id, span_id & parent_span_id.\n * If `includeAllData` is true, it will also include data, op, status & origin.\n */\nexport function spanToTransactionTraceContext(span: Span): TraceContext {\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n const { data, op, parent_span_id, status, origin, links } = spanToJSON(span);\n\n return {\n parent_span_id,\n span_id,\n trace_id,\n data,\n op,\n status,\n origin,\n links,\n };\n}\n\n/**\n * Convert a span to a trace context, which can be sent as the `trace` context in a non-transaction event.\n */\nexport function spanToTraceContext(span: Span): TraceContext {\n const { spanId, traceId: trace_id, isRemote } = span.spanContext();\n\n // If the span is remote, we use a random/virtual span as span_id to the trace context,\n // and the remote span as parent_span_id\n const parent_span_id = isRemote ? spanId : spanToJSON(span).parent_span_id;\n const scope = getCapturedScopesOnSpan(span).scope;\n\n const span_id = isRemote ? scope?.getPropagationContext().propagationSpanId || generateSpanId() : spanId;\n\n return {\n parent_span_id,\n span_id,\n trace_id,\n };\n}\n\n/**\n * Convert a Span to a Sentry trace header.\n */\nexport function spanToTraceHeader(span: Span): string {\n const { traceId, spanId } = span.spanContext();\n const sampled = spanIsSampled(span);\n return generateSentryTraceHeader(traceId, spanId, sampled);\n}\n\n/**\n * Convert a Span to a W3C traceparent header.\n */\nexport function spanToTraceparentHeader(span: Span): string {\n const { traceId, spanId } = span.spanContext();\n const sampled = spanIsSampled(span);\n return generateTraceparentHeader(traceId, spanId, sampled);\n}\n\n/**\n * Converts the span links array to a flattened version to be sent within an envelope.\n *\n * If the links array is empty, it returns `undefined` so the empty value can be dropped before it's sent.\n */\nexport function convertSpanLinksForEnvelope(links?: SpanLink[]): SpanLinkJSON[] | undefined {\n if (links && links.length > 0) {\n return links.map(({ context: { spanId, traceId, traceFlags, ...restContext }, attributes }) => ({\n span_id: spanId,\n trace_id: traceId,\n sampled: traceFlags === TRACE_FLAG_SAMPLED,\n attributes,\n ...restContext,\n }));\n } else {\n return undefined;\n }\n}\n\n/**\n * Convert a span time input into a timestamp in seconds.\n */\nexport function spanTimeInputToSeconds(input: SpanTimeInput | undefined): number {\n if (typeof input === 'number') {\n return ensureTimestampInSeconds(input);\n }\n\n if (Array.isArray(input)) {\n // See {@link HrTime} for the array-based time format\n return input[0] + input[1] / 1e9;\n }\n\n if (input instanceof Date) {\n return ensureTimestampInSeconds(input.getTime());\n }\n\n return timestampInSeconds();\n}\n\n/**\n * Converts a timestamp to second, if it was in milliseconds, or keeps it as second.\n */\nfunction ensureTimestampInSeconds(timestamp: number): number {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp / 1000 : timestamp;\n}\n\n/**\n * Convert a span to a JSON representation.\n */\n// Note: Because of this, we currently have a circular type dependency (which we opted out of in package.json).\n// This is not avoidable as we need `spanToJSON` in `spanUtils.ts`, which in turn is needed by `span.ts` for backwards compatibility.\n// And `spanToJSON` needs the Span class from `span.ts` to check here.\nexport function spanToJSON(span: Span): SpanJSON {\n if (spanIsSentrySpan(span)) {\n return span.getSpanJSON();\n }\n\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n\n // Handle a span from @opentelemetry/sdk-base-trace's `Span` class\n if (spanIsOpenTelemetrySdkTraceBaseSpan(span)) {\n const { attributes, startTime, name, endTime, status, links } = span;\n\n // In preparation for the next major of OpenTelemetry, we want to support\n // looking up the parent span id according to the new API\n // In OTel v1, the parent span id is accessed as `parentSpanId`\n // In OTel v2, the parent span id is accessed as `spanId` on the `parentSpanContext`\n const parentSpanId =\n 'parentSpanId' in span\n ? span.parentSpanId\n : 'parentSpanContext' in span\n ? (span.parentSpanContext as { spanId?: string } | undefined)?.spanId\n : undefined;\n\n return {\n span_id,\n trace_id,\n data: attributes,\n description: name,\n parent_span_id: parentSpanId,\n start_timestamp: spanTimeInputToSeconds(startTime),\n // This is [0,0] by default in OTEL, in which case we want to interpret this as no end time\n timestamp: spanTimeInputToSeconds(endTime) || undefined,\n status: getStatusMessage(status),\n op: attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP],\n origin: attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] as SpanOrigin | undefined,\n links: convertSpanLinksForEnvelope(links),\n };\n }\n\n // Finally, at least we have `spanContext()`....\n // This should not actually happen in reality, but we need to handle it for type safety.\n return {\n span_id,\n trace_id,\n start_timestamp: 0,\n data: {},\n };\n}\n\nfunction spanIsOpenTelemetrySdkTraceBaseSpan(span: Span): span is OpenTelemetrySdkTraceBaseSpan {\n const castSpan = span as Partial<OpenTelemetrySdkTraceBaseSpan>;\n return !!castSpan.attributes && !!castSpan.startTime && !!castSpan.name && !!castSpan.endTime && !!castSpan.status;\n}\n\n/** Exported only for tests. */\nexport interface OpenTelemetrySdkTraceBaseSpan extends Span {\n attributes: SpanAttributes;\n startTime: SpanTimeInput;\n name: string;\n status: SpanStatus;\n endTime: SpanTimeInput;\n parentSpanId?: string;\n links?: SpanLink[];\n}\n\n/**\n * Sadly, due to circular dependency checks we cannot actually import the Span class here and check for instanceof.\n * :( So instead we approximate this by checking if it has the `getSpanJSON` method.\n */\nfunction spanIsSentrySpan(span: Span): span is SentrySpan {\n return typeof (span as SentrySpan).getSpanJSON === 'function';\n}\n\n/**\n * Returns true if a span is sampled.\n * In most cases, you should just use `span.isRecording()` instead.\n * However, this has a slightly different semantic, as it also returns false if the span is finished.\n * So in the case where this distinction is important, use this method.\n */\nexport function spanIsSampled(span: Span): boolean {\n // We align our trace flags with the ones OpenTelemetry use\n // So we also check for sampled the same way they do.\n const { traceFlags } = span.spanContext();\n return traceFlags === TRACE_FLAG_SAMPLED;\n}\n\n/** Get the status message to use for a JSON representation of a span. */\nexport function getStatusMessage(status: SpanStatus | undefined): string | undefined {\n if (!status || status.code === SPAN_STATUS_UNSET) {\n return undefined;\n }\n\n if (status.code === SPAN_STATUS_OK) {\n return 'ok';\n }\n\n return status.message || 'internal_error';\n}\n\nconst CHILD_SPANS_FIELD = '_sentryChildSpans';\nconst ROOT_SPAN_FIELD = '_sentryRootSpan';\n\ntype SpanWithPotentialChildren = Span & {\n [CHILD_SPANS_FIELD]?: Set<Span>;\n [ROOT_SPAN_FIELD]?: Span;\n};\n\n/**\n * Adds an opaque child span reference to a span.\n */\nexport function addChildSpanToSpan(span: SpanWithPotentialChildren, childSpan: Span): void {\n // We store the root span reference on the child span\n // We need this for `getRootSpan()` to work\n const rootSpan = span[ROOT_SPAN_FIELD] || span;\n addNonEnumerableProperty(childSpan as SpanWithPotentialChildren, ROOT_SPAN_FIELD, rootSpan);\n\n // We store a list of child spans on the parent span\n // We need this for `getSpanDescendants()` to work\n if (span[CHILD_SPANS_FIELD]) {\n span[CHILD_SPANS_FIELD].add(childSpan);\n } else {\n addNonEnumerableProperty(span, CHILD_SPANS_FIELD, new Set([childSpan]));\n }\n}\n\n/** This is only used internally by Idle Spans. */\nexport function removeChildSpanFromSpan(span: SpanWithPotentialChildren, childSpan: Span): void {\n if (span[CHILD_SPANS_FIELD]) {\n span[CHILD_SPANS_FIELD].delete(childSpan);\n }\n}\n\n/**\n * Returns an array of the given span and all of its descendants.\n */\nexport function getSpanDescendants(span: SpanWithPotentialChildren): Span[] {\n const resultSet = new Set<Span>();\n\n function addSpanChildren(span: SpanWithPotentialChildren): void {\n // This exit condition is required to not infinitely loop in case of a circular dependency.\n if (resultSet.has(span)) {\n return;\n // We want to ignore unsampled spans (e.g. non recording spans)\n } else if (spanIsSampled(span)) {\n resultSet.add(span);\n const childSpans = span[CHILD_SPANS_FIELD] ? Array.from(span[CHILD_SPANS_FIELD]) : [];\n for (const childSpan of childSpans) {\n addSpanChildren(childSpan);\n }\n }\n }\n\n addSpanChildren(span);\n\n return Array.from(resultSet);\n}\n\n/**\n * Returns the root span of a given span.\n */\nexport function getRootSpan(span: SpanWithPotentialChildren): Span {\n return span[ROOT_SPAN_FIELD] || span;\n}\n\n/**\n * Returns the currently active span.\n */\nexport function getActiveSpan(): Span | undefined {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n if (acs.getActiveSpan) {\n return acs.getActiveSpan();\n }\n\n return _getSpanForScope(getCurrentScope());\n}\n\n/**\n * Logs a warning once if `beforeSendSpan` is used to drop spans.\n */\nexport function showSpanDropWarning(): void {\n if (!hasShownSpanDropWarning) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n '[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.',\n );\n });\n hasShownSpanDropWarning = true;\n }\n}\n\n/**\n * Updates the name of the given span and ensures that the span name is not\n * overwritten by the Sentry SDK.\n *\n * Use this function instead of `span.updateName()` if you want to make sure that\n * your name is kept. For some spans, for example root `http.server` spans the\n * Sentry SDK would otherwise overwrite the span name with a high-quality name\n * it infers when the span ends.\n *\n * Use this function in server code or when your span is started on the server\n * and on the client (browser). If you only update a span name on the client,\n * you can also use `span.updateName()` the SDK does not overwrite the name.\n *\n * @param span - The span to update the name of.\n * @param name - The name to set on the span.\n */\nexport function updateSpanName(span: Span, name: string): void {\n span.updateName(name);\n span.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'custom',\n [SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME]: name,\n });\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"spanUtils.js","sources":["../../../src/utils/spanUtils.ts"],"sourcesContent":["import { getAsyncContextStrategy } from '../asyncContext';\nimport type { TypedAttributes } from '../attributes';\nimport { attributeValueToTypedAttributeValue } from '../attributes';\nimport { getMainCarrier } from '../carrier';\nimport { getCurrentScope } from '../currentScopes';\nimport {\n SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME,\n SEMANTIC_ATTRIBUTE_SENTRY_OP,\n SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN,\n SEMANTIC_ATTRIBUTE_SENTRY_SOURCE,\n} from '../semanticAttributes';\nimport type { SentrySpan } from '../tracing/sentrySpan';\nimport { SPAN_STATUS_OK, SPAN_STATUS_UNSET } from '../tracing/spanstatus';\nimport { getCapturedScopesOnSpan } from '../tracing/utils';\nimport type { TraceContext } from '../types-hoist/context';\nimport type { SpanLink, SpanLinkJSON } from '../types-hoist/link';\nimport type { Span, SpanAttributes, SpanJSON, SpanOrigin, SpanTimeInput, SpanV2JSON } from '../types-hoist/span';\nimport type { SpanStatus } from '../types-hoist/spanStatus';\nimport { addNonEnumerableProperty } from '../utils/object';\nimport { generateSpanId } from '../utils/propagationContext';\nimport { timestampInSeconds } from '../utils/time';\nimport { generateSentryTraceHeader, generateTraceparentHeader } from '../utils/tracing';\nimport { consoleSandbox } from './debug-logger';\nimport { _getSpanForScope } from './spanOnScope';\n\n// These are aligned with OpenTelemetry trace flags\nexport const TRACE_FLAG_NONE = 0x0;\nexport const TRACE_FLAG_SAMPLED = 0x1;\n\nlet hasShownSpanDropWarning = false;\n\n/**\n * Convert a span to a trace context, which can be sent as the `trace` context in an event.\n * By default, this will only include trace_id, span_id & parent_span_id.\n * If `includeAllData` is true, it will also include data, op, status & origin.\n */\nexport function spanToTransactionTraceContext(span: Span): TraceContext {\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n const { data, op, parent_span_id, status, origin, links } = spanToJSON(span);\n\n return {\n parent_span_id,\n span_id,\n trace_id,\n data,\n op,\n status,\n origin,\n links,\n };\n}\n\n/**\n * Convert a span to a trace context, which can be sent as the `trace` context in a non-transaction event.\n */\nexport function spanToTraceContext(span: Span): TraceContext {\n const { spanId, traceId: trace_id, isRemote } = span.spanContext();\n\n // If the span is remote, we use a random/virtual span as span_id to the trace context,\n // and the remote span as parent_span_id\n const parent_span_id = isRemote ? spanId : spanToJSON(span).parent_span_id;\n const scope = getCapturedScopesOnSpan(span).scope;\n\n const span_id = isRemote ? scope?.getPropagationContext().propagationSpanId || generateSpanId() : spanId;\n\n return {\n parent_span_id,\n span_id,\n trace_id,\n };\n}\n\n/**\n * Convert a Span to a Sentry trace header.\n */\nexport function spanToTraceHeader(span: Span): string {\n const { traceId, spanId } = span.spanContext();\n const sampled = spanIsSampled(span);\n return generateSentryTraceHeader(traceId, spanId, sampled);\n}\n\n/**\n * Convert a Span to a W3C traceparent header.\n */\nexport function spanToTraceparentHeader(span: Span): string {\n const { traceId, spanId } = span.spanContext();\n const sampled = spanIsSampled(span);\n return generateTraceparentHeader(traceId, spanId, sampled);\n}\n\n/**\n * Converts the span links array to a flattened version to be sent within an envelope.\n *\n * If the links array is empty, it returns `undefined` so the empty value can be dropped before it's sent.\n */\nexport function convertSpanLinksForEnvelope(links?: SpanLink[]): SpanLinkJSON[] | undefined {\n if (links?.length) {\n return links.map(({ context: { spanId, traceId, traceFlags, ...restContext }, attributes }) => ({\n span_id: spanId,\n trace_id: traceId,\n sampled: traceFlags === TRACE_FLAG_SAMPLED,\n attributes,\n ...restContext,\n }));\n } else {\n return undefined;\n }\n}\n/**\n *\n * @param links\n * @returns\n */\nexport function getV2SpanLinks(links?: SpanLink[]): SpanLinkJSON<TypedAttributes>[] | undefined {\n if (links?.length) {\n return links.map(({ context: { spanId, traceId, traceFlags, ...restContext }, attributes }) => ({\n span_id: spanId,\n trace_id: traceId,\n sampled: traceFlags === TRACE_FLAG_SAMPLED,\n ...(attributes && { attributes: getV2Attributes(attributes) }),\n ...restContext,\n }));\n } else {\n return undefined;\n }\n}\n\n/**\n * Convert a span time input into a timestamp in seconds.\n */\nexport function spanTimeInputToSeconds(input: SpanTimeInput | undefined): number {\n if (typeof input === 'number') {\n return ensureTimestampInSeconds(input);\n }\n\n if (Array.isArray(input)) {\n // See {@link HrTime} for the array-based time format\n return input[0] + input[1] / 1e9;\n }\n\n if (input instanceof Date) {\n return ensureTimestampInSeconds(input.getTime());\n }\n\n return timestampInSeconds();\n}\n\n/**\n * Converts a timestamp to second, if it was in milliseconds, or keeps it as second.\n */\nfunction ensureTimestampInSeconds(timestamp: number): number {\n const isMs = timestamp > 9999999999;\n return isMs ? timestamp / 1000 : timestamp;\n}\n\n/**\n * Convert a span to a JSON representation.\n */\n// Note: Because of this, we currently have a circular type dependency (which we opted out of in package.json).\n// This is not avoidable as we need `spanToJSON` in `spanUtils.ts`, which in turn is needed by `span.ts` for backwards compatibility.\n// And `spanToJSON` needs the Span class from `span.ts` to check here.\nexport function spanToJSON(span: Span): SpanJSON {\n if (spanIsSentrySpan(span)) {\n return span.getSpanJSON();\n }\n\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n\n // Handle a span from @opentelemetry/sdk-base-trace's `Span` class\n if (spanIsOpenTelemetrySdkTraceBaseSpan(span)) {\n const { attributes, startTime, name, endTime, status, links } = span;\n\n // In preparation for the next major of OpenTelemetry, we want to support\n // looking up the parent span id according to the new API\n // In OTel v1, the parent span id is accessed as `parentSpanId`\n // In OTel v2, the parent span id is accessed as `spanId` on the `parentSpanContext`\n const parentSpanId =\n 'parentSpanId' in span\n ? span.parentSpanId\n : 'parentSpanContext' in span\n ? (span.parentSpanContext as { spanId?: string } | undefined)?.spanId\n : undefined;\n\n return {\n span_id,\n trace_id,\n data: attributes,\n description: name,\n parent_span_id: parentSpanId,\n start_timestamp: spanTimeInputToSeconds(startTime),\n // This is [0,0] by default in OTEL, in which case we want to interpret this as no end time\n timestamp: spanTimeInputToSeconds(endTime) || undefined,\n status: getStatusMessage(status),\n op: attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP],\n origin: attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN] as SpanOrigin | undefined,\n links: convertSpanLinksForEnvelope(links),\n };\n }\n\n // Finally, at least we have `spanContext()`....\n // This should not actually happen in reality, but we need to handle it for type safety.\n return {\n span_id,\n trace_id,\n start_timestamp: 0,\n data: {},\n };\n}\n\n/**\n * Convert a span to a SpanV2JSON representation.\n * @returns\n */\nexport function spanToV2JSON(span: Span): SpanV2JSON {\n if (spanIsSentrySpan(span)) {\n return span.getSpanV2JSON();\n }\n\n const { spanId: span_id, traceId: trace_id } = span.spanContext();\n\n // Handle a span from @opentelemetry/sdk-base-trace's `Span` class\n if (spanIsOpenTelemetrySdkTraceBaseSpan(span)) {\n const { attributes, startTime, name, endTime, status, links } = span;\n\n // In preparation for the next major of OpenTelemetry, we want to support\n // looking up the parent span id according to the new API\n // In OTel v1, the parent span id is accessed as `parentSpanId`\n // In OTel v2, the parent span id is accessed as `spanId` on the `parentSpanContext`\n const parentSpanId =\n 'parentSpanId' in span\n ? span.parentSpanId\n : 'parentSpanContext' in span\n ? (span.parentSpanContext as { spanId?: string } | undefined)?.spanId\n : undefined;\n\n return {\n name,\n span_id,\n trace_id,\n parent_span_id: parentSpanId,\n start_timestamp: spanTimeInputToSeconds(startTime),\n end_timestamp: spanTimeInputToSeconds(endTime),\n is_segment: span === INTERNAL_getSegmentSpan(span),\n status: getV2StatusMessage(status),\n attributes: getV2Attributes(attributes),\n links: getV2SpanLinks(links),\n };\n }\n\n // Finally, as a fallback, at least we have `spanContext()`....\n // This should not actually happen in reality, but we need to handle it for type safety.\n return {\n span_id,\n trace_id,\n start_timestamp: 0,\n name: '',\n end_timestamp: 0,\n status: 'ok',\n is_segment: span === INTERNAL_getSegmentSpan(span),\n };\n}\n\nfunction spanIsOpenTelemetrySdkTraceBaseSpan(span: Span): span is OpenTelemetrySdkTraceBaseSpan {\n const castSpan = span as Partial<OpenTelemetrySdkTraceBaseSpan>;\n return !!castSpan.attributes && !!castSpan.startTime && !!castSpan.name && !!castSpan.endTime && !!castSpan.status;\n}\n\n/** Exported only for tests. */\nexport interface OpenTelemetrySdkTraceBaseSpan extends Span {\n attributes: SpanAttributes;\n startTime: SpanTimeInput;\n name: string;\n status: SpanStatus;\n endTime: SpanTimeInput;\n parentSpanId?: string;\n links?: SpanLink[];\n}\n\n/**\n * Sadly, due to circular dependency checks we cannot actually import the Span class here and check for instanceof.\n * :( So instead we approximate this by checking if it has the `getSpanJSON` method.\n */\nfunction spanIsSentrySpan(span: Span): span is SentrySpan {\n return typeof (span as SentrySpan).getSpanJSON === 'function';\n}\n\n/**\n * Returns true if a span is sampled.\n * In most cases, you should just use `span.isRecording()` instead.\n * However, this has a slightly different semantic, as it also returns false if the span is finished.\n * So in the case where this distinction is important, use this method.\n */\nexport function spanIsSampled(span: Span): boolean {\n // We align our trace flags with the ones OpenTelemetry use\n // So we also check for sampled the same way they do.\n const { traceFlags } = span.spanContext();\n return traceFlags === TRACE_FLAG_SAMPLED;\n}\n\n/** Get the status message to use for a JSON representation of a span. */\nexport function getStatusMessage(status: SpanStatus | undefined): string | undefined {\n if (!status || status.code === SPAN_STATUS_UNSET) {\n return undefined;\n }\n\n if (status.code === SPAN_STATUS_OK) {\n return 'ok';\n }\n\n return status.message || 'internal_error';\n}\n\n/**\n * Convert the various statuses to the ones expected by Sentry ('ok' is default)\n */\nexport function getV2StatusMessage(status: SpanStatus | undefined): 'ok' | 'error' {\n return !status || status.code === SPAN_STATUS_OK || status.code === SPAN_STATUS_UNSET ? 'ok' : 'error';\n}\n\n/**\n * Convert the attributes to the ones expected by Sentry, including the type annotation\n */\nexport function getV2Attributes(attributes: SpanAttributes): TypedAttributes {\n return Object.entries(attributes).reduce((acc, [key, value]) => {\n acc[key] = attributeValueToTypedAttributeValue(value);\n return acc;\n }, {} as TypedAttributes);\n}\n\nconst CHILD_SPANS_FIELD = '_sentryChildSpans';\nconst ROOT_SPAN_FIELD = '_sentryRootSpan';\n\ntype SpanWithPotentialChildren = Span & {\n [CHILD_SPANS_FIELD]?: Set<Span>;\n [ROOT_SPAN_FIELD]?: Span;\n};\n\n/**\n * Adds an opaque child span reference to a span.\n */\nexport function addChildSpanToSpan(span: SpanWithPotentialChildren, childSpan: Span): void {\n // We store the root span reference on the child span\n // We need this for `getRootSpan()` to work\n const rootSpan = span[ROOT_SPAN_FIELD] || span;\n addNonEnumerableProperty(childSpan as SpanWithPotentialChildren, ROOT_SPAN_FIELD, rootSpan);\n\n // We store a list of child spans on the parent span\n // We need this for `getSpanDescendants()` to work\n if (span[CHILD_SPANS_FIELD]) {\n span[CHILD_SPANS_FIELD].add(childSpan);\n } else {\n addNonEnumerableProperty(span, CHILD_SPANS_FIELD, new Set([childSpan]));\n }\n}\n\n/** This is only used internally by Idle Spans. */\nexport function removeChildSpanFromSpan(span: SpanWithPotentialChildren, childSpan: Span): void {\n if (span[CHILD_SPANS_FIELD]) {\n span[CHILD_SPANS_FIELD].delete(childSpan);\n }\n}\n\n/**\n * Returns an array of the given span and all of its descendants.\n */\nexport function getSpanDescendants(span: SpanWithPotentialChildren): Span[] {\n const resultSet = new Set<Span>();\n\n function addSpanChildren(span: SpanWithPotentialChildren): void {\n // This exit condition is required to not infinitely loop in case of a circular dependency.\n if (resultSet.has(span)) {\n return;\n // We want to ignore unsampled spans (e.g. non recording spans)\n } else if (spanIsSampled(span)) {\n resultSet.add(span);\n const childSpans = span[CHILD_SPANS_FIELD] ? Array.from(span[CHILD_SPANS_FIELD]) : [];\n for (const childSpan of childSpans) {\n addSpanChildren(childSpan);\n }\n }\n }\n\n addSpanChildren(span);\n\n return Array.from(resultSet);\n}\n\n/**\n * Returns the root span of a given span.\n */\nexport const getRootSpan = INTERNAL_getSegmentSpan;\n\n/**\n * Returns the segment span of a given span.\n */\nexport function INTERNAL_getSegmentSpan(span: SpanWithPotentialChildren): Span {\n return span[ROOT_SPAN_FIELD] || span;\n}\n\n/**\n * Returns the currently active span.\n */\nexport function getActiveSpan(): Span | undefined {\n const carrier = getMainCarrier();\n const acs = getAsyncContextStrategy(carrier);\n if (acs.getActiveSpan) {\n return acs.getActiveSpan();\n }\n\n return _getSpanForScope(getCurrentScope());\n}\n\n/**\n * Logs a warning once if `beforeSendSpan` is used to drop spans.\n */\nexport function showSpanDropWarning(): void {\n if (!hasShownSpanDropWarning) {\n consoleSandbox(() => {\n // eslint-disable-next-line no-console\n console.warn(\n '[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.',\n );\n });\n hasShownSpanDropWarning = true;\n }\n}\n\n/**\n * Updates the name of the given span and ensures that the span name is not\n * overwritten by the Sentry SDK.\n *\n * Use this function instead of `span.updateName()` if you want to make sure that\n * your name is kept. For some spans, for example root `http.server` spans the\n * Sentry SDK would otherwise overwrite the span name with a high-quality name\n * it infers when the span ends.\n *\n * Use this function in server code or when your span is started on the server\n * and on the client (browser). If you only update a span name on the client,\n * you can also use `span.updateName()` the SDK does not overwrite the name.\n *\n * @param span - The span to update the name of.\n * @param name - The name to set on the span.\n */\nexport function updateSpanName(span: Span, name: string): void {\n span.updateName(name);\n span.setAttributes({\n [SEMANTIC_ATTRIBUTE_SENTRY_SOURCE]: 'custom',\n [SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME]: name,\n });\n}\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  // This is a magic string replaced by rollup
2
2
 
3
- const SDK_VERSION = "10.31.0" ;
3
+ const SDK_VERSION = "10.32.0-alpha.0" ;
4
4
 
5
5
  export { SDK_VERSION };
6
6
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sources":["../../../src/utils/version.ts"],"sourcesContent":["// This is a magic string replaced by rollup\ndeclare const __SENTRY_SDK_VERSION__: string;\n\nexport const SDK_VERSION = typeof __SENTRY_SDK_VERSION__ === 'string' ? __SENTRY_SDK_VERSION__ : '0.0.0-unknown.0';\n"],"names":[],"mappings":"AAAA;;AAGO,MAAM,WAAA,GAA2D,SAAA;;;;"}
1
+ {"version":3,"file":"version.js","sources":["../../../src/utils/version.ts"],"sourcesContent":["// This is a magic string replaced by rollup\ndeclare const __SENTRY_SDK_VERSION__: string;\n\nexport const SDK_VERSION = typeof __SENTRY_SDK_VERSION__ === 'string' ? __SENTRY_SDK_VERSION__ : '0.0.0-unknown.0';\n"],"names":[],"mappings":"AAAA;;AAGO,MAAM,WAAA,GAA2D,iBAAA;;;;"}
@@ -5,7 +5,7 @@ export type RawAttribute<T> = T extends {
5
5
  } | {
6
6
  unit: any;
7
7
  } ? AttributeObject : T;
8
- export type Attributes = Record<string, TypedAttributeValue>;
8
+ export type TypedAttributes = Record<string, TypedAttributeValue>;
9
9
  export type AttributeValueType = string | number | boolean | Array<string> | Array<number> | Array<boolean>;
10
10
  type AttributeTypeMap = {
11
11
  string: string;
@@ -30,7 +30,7 @@ export type AttributeObject = {
30
30
  value: unknown;
31
31
  unit?: AttributeUnit;
32
32
  };
33
- type AttributeUnit = DurationUnit | InformationUnit | FractionUnit;
33
+ export type AttributeUnit = DurationUnit | InformationUnit | FractionUnit;
34
34
  export type ValidatedAttributes<T> = {
35
35
  [K in keyof T]: T[K] extends {
36
36
  value: any;
@@ -1 +1 @@
1
- {"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../../src/attributes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAG7F,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAE1D,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,KAAK,EAAE,GAAG,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,GAAG,CAAA;CAAE,GAAG,eAAe,GAAG,CAAC,CAAC;AAE7F,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAE7D,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AAE5G,KAAK,gBAAgB,GAAG;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;CAC7B,CAAC;AAOF,KAAK,cAAc,GAAG;KACnB,CAAC,IAAI,MAAM,gBAAgB,GAAG;QAC7B,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,EAAE,CAAC,CAAC;KACT;CACF,CAAC,MAAM,gBAAgB,CAAC,CAAC;AAE1B,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG;IAAE,IAAI,CAAC,EAAE,aAAa,CAAA;CAAE,CAAC;AAE5E,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB,CAAC;AAIF,KAAK,aAAa,GAAG,YAAY,GAAG,eAAe,GAAG,YAAY,CAAC;AAGnE,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;KAElC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;QAAE,KAAK,EAAE,GAAG,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,GAAG,CAAA;KAAE,GAAG,eAAe,GAAG,OAAO;CACxF,CAAC;AAEF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,eAAe,CAOhF;AAED;;;;;;;;GAQG;AACH,wBAAgB,mCAAmC,CAAC,QAAQ,EAAE,OAAO,GAAG,mBAAmB,CAG1F"}
1
+ {"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../../src/attributes.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAG7F,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAE1D,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,KAAK,EAAE,GAAG,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,GAAG,CAAA;CAAE,GAAG,eAAe,GAAG,CAAC,CAAC;AAE7F,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAElE,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AAE5G,KAAK,gBAAgB,GAAG;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3B,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,WAAW,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;CAC7B,CAAC;AAOF,KAAK,cAAc,GAAG;KACnB,CAAC,IAAI,MAAM,gBAAgB,GAAG;QAC7B,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC3B,IAAI,EAAE,CAAC,CAAC;KACT;CACF,CAAC,MAAM,gBAAgB,CAAC,CAAC;AAE1B,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG;IAAE,IAAI,CAAC,EAAE,aAAa,CAAA;CAAE,CAAC;AAE5E,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB,CAAC;AAIF,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,eAAe,GAAG,YAAY,CAAC;AAG1E,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI;KAElC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS;QAAE,KAAK,EAAE,GAAG,CAAA;KAAE,GAAG;QAAE,IAAI,EAAE,GAAG,CAAA;KAAE,GAAG,eAAe,GAAG,OAAO;CACxF,CAAC;AAEF;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,eAAe,CAOhF;AAED;;;;;;;;GAQG;AACH,wBAAgB,mCAAmC,CAAC,QAAQ,EAAE,OAAO,GAAG,mBAAmB,CAG1F"}
@@ -1,5 +1,5 @@
1
1
  import type { IntegrationIndex } from './integration';
2
- import type { Scope } from './scope';
2
+ import type { Scope, ScopeData } from './scope';
3
3
  import type { Breadcrumb, BreadcrumbHint, FetchBreadcrumbHint, XhrBreadcrumbHint } from './types-hoist/breadcrumb';
4
4
  import type { CheckIn, MonitorConfig } from './types-hoist/checkin';
5
5
  import type { EventDropReason, Outcome } from './types-hoist/clientreport';
@@ -18,7 +18,7 @@ import type { RequestEventData } from './types-hoist/request';
18
18
  import type { SdkMetadata } from './types-hoist/sdkmetadata';
19
19
  import type { Session, SessionAggregates } from './types-hoist/session';
20
20
  import type { SeverityLevel } from './types-hoist/severity';
21
- import type { Span, SpanAttributes, SpanContextData } from './types-hoist/span';
21
+ import type { Span, SpanAttributes, SpanContextData, SpanV2JSON, SpanV2JSONWithSegmentRef } from './types-hoist/span';
22
22
  import type { StartSpanOptions } from './types-hoist/startSpanOptions';
23
23
  import type { Transport, TransportMakeRequestResponse } from './types-hoist/transport';
24
24
  /**
@@ -207,6 +207,30 @@ export declare abstract class Client<O extends ClientOptions = ClientOptions> {
207
207
  * @returns {() => void} A function that, when executed, removes the registered callback.
208
208
  */
209
209
  on(hook: 'spanEnd', callback: (span: Span) => void): () => void;
210
+ /**
211
+ * Register a callback for after a span is ended.
212
+ */
213
+ on(hook: 'afterSpanEnd', callback: (span: Span) => void): () => void;
214
+ /**
215
+ * Register a callback for after a segment span is ended.
216
+ */
217
+ on(hook: 'afterSegmentSpanEnd', callback: (span: Span) => void): () => void;
218
+ /**
219
+ * Register a callback for when the span JSON is ready to be enqueued into the span buffer.
220
+ */
221
+ on(hook: 'enqueueSpan', callback: (spanJSON: SpanV2JSONWithSegmentRef) => void): () => void;
222
+ /**
223
+ * Register a callback for when a span JSON is processed, to add some data to the span JSON.
224
+ */
225
+ on(hook: 'processSpan', callback: (spanJSON: SpanV2JSON, hint: {
226
+ readOnlySpan: Span;
227
+ }) => void): () => void;
228
+ /**
229
+ * Register a callback for when a segment span JSON is processed, to add some data to the segment span JSON.
230
+ */
231
+ on(hook: 'processSegmentSpan', callback: (spanJSON: SpanV2JSON, hint: {
232
+ scopeData: ScopeData;
233
+ }) => void): () => void;
210
234
  /**
211
235
  * Register a callback for when an idle span is allowed to auto-finish.
212
236
  * @returns {() => void} A function that, when executed, removes the registered callback.
@@ -402,6 +426,20 @@ export declare abstract class Client<O extends ClientOptions = ClientOptions> {
402
426
  }): void;
403
427
  /** Fire a hook whenever a span ends. */
404
428
  emit(hook: 'spanEnd', span: Span): void;
429
+ /** Fire a hook after the `spanEnd` hook */
430
+ emit(hook: 'afterSpanEnd', span: Span): void;
431
+ /** Fire a hook after a span is processed, to add some attributes to the span JSON. */
432
+ emit(hook: 'processSpan', spanJSON: SpanV2JSON, hint: {
433
+ readOnlySpan: Span;
434
+ }): void;
435
+ /** Fire a hook after a span is processed, to add some attributes to the span JSON. */
436
+ emit(hook: 'processSegmentSpan', spanJSON: SpanV2JSON, hint: {
437
+ scopeData: ScopeData;
438
+ }): void;
439
+ /** Fire a hook after the `segmentSpanEnd` hook is fired. */
440
+ emit(hook: 'afterSegmentSpanEnd', span: Span): void;
441
+ /** Fire a hook after a span ready to be enqueued into the span buffer. */
442
+ emit(hook: 'enqueueSpan', spanJSON: SpanV2JSONWithSegmentRef): void;
405
443
  /**
406
444
  * Fire a hook indicating that an idle span is allowed to auto finish.
407
445
  */
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"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"}
@@ -2,11 +2,12 @@ import type { Client } from './client';
2
2
  import type { SentrySpan } from './tracing/sentrySpan';
3
3
  import type { LegacyCSPReport } from './types-hoist/csp';
4
4
  import type { DsnComponents } from './types-hoist/dsn';
5
- import type { EventEnvelope, RawSecurityEnvelope, SessionEnvelope, SpanEnvelope } from './types-hoist/envelope';
5
+ import type { DynamicSamplingContext, EventEnvelope, RawSecurityEnvelope, SessionEnvelope, SpanEnvelope, SpanV2Envelope } from './types-hoist/envelope';
6
6
  import type { Event } from './types-hoist/event';
7
7
  import type { SdkInfo } from './types-hoist/sdkinfo';
8
8
  import type { SdkMetadata } from './types-hoist/sdkmetadata';
9
9
  import type { Session, SessionAggregates } from './types-hoist/session';
10
+ import type { SpanV2JSON } from './types-hoist/span';
10
11
  /**
11
12
  * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.
12
13
  * Merge with existing data if any.
@@ -26,6 +27,10 @@ export declare function createEventEnvelope(event: Event, dsn?: DsnComponents, m
26
27
  * Takes an optional client and runs spans through `beforeSendSpan` if available.
27
28
  */
28
29
  export declare function createSpanEnvelope(spans: [SentrySpan, ...SentrySpan[]], client?: Client): SpanEnvelope;
30
+ /**
31
+ * Creates a span v2 envelope
32
+ */
33
+ export declare function createSpanV2Envelope(serializedSpans: SpanV2JSON[], dsc: Partial<DynamicSamplingContext>, client: Client): SpanV2Envelope;
29
34
  /**
30
35
  * Create an Envelope from a CSP report.
31
36
  */
@@ -1 +1 @@
1
- {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/envelope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAEV,aAAa,EAEb,mBAAmB,EAEnB,eAAe,EAEf,YAAY,EAEb,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAYxE;;;;;IAKI;AACJ,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,KAAK,CAuBlF;AAED,yCAAyC;AACzC,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,GAAG,iBAAiB,EACpC,GAAG,CAAC,EAAE,aAAa,EACnB,QAAQ,CAAC,EAAE,WAAW,EACtB,MAAM,CAAC,EAAE,MAAM,GACd,eAAe,CAYjB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,KAAK,EACZ,GAAG,CAAC,EAAE,aAAa,EACnB,QAAQ,CAAC,EAAE,WAAW,EACtB,MAAM,CAAC,EAAE,MAAM,GACd,aAAa,CAwBf;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAqDtG;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,aAAa,EAClB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,mBAAmB,CAYrB"}
1
+ {"version":3,"file":"envelope.d.ts","sourceRoot":"","sources":["../../src/envelope.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EACV,sBAAsB,EACtB,aAAa,EAEb,mBAAmB,EAEnB,eAAe,EAGf,YAAY,EAEZ,cAAc,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAarD;;;;;IAKI;AACJ,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,KAAK,CAuBlF;AAED,yCAAyC;AACzC,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,GAAG,iBAAiB,EACpC,GAAG,CAAC,EAAE,aAAa,EACnB,QAAQ,CAAC,EAAE,WAAW,EACtB,MAAM,CAAC,EAAE,MAAM,GACd,eAAe,CAYjB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,KAAK,EACZ,GAAG,CAAC,EAAE,aAAa,EACnB,QAAQ,CAAC,EAAE,WAAW,EACtB,MAAM,CAAC,EAAE,MAAM,GACd,aAAa,CAwBf;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,CAAC,UAAU,EAAE,GAAG,UAAU,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,CAsDtG;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,eAAe,EAAE,UAAU,EAAE,EAC7B,GAAG,EAAE,OAAO,CAAC,sBAAsB,CAAC,EACpC,MAAM,EAAE,MAAM,GACb,cAAc,CAkBhB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,eAAe,EACvB,GAAG,EAAE,aAAa,EAClB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,mBAAmB,CAYrB"}