@spotlightjs/spotlight 4.6.0 → 4.7.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 (664) hide show
  1. package/dist/_virtual/_commonjsHelpers.js +9 -0
  2. package/dist/_virtual/_commonjsHelpers.js.map +1 -1
  3. package/dist/_virtual/_sentry-release-injection-file.js +11 -0
  4. package/dist/_virtual/_sentry-release-injection-file.js.map +1 -0
  5. package/dist/_virtual/cache.js +8 -0
  6. package/dist/_virtual/cache.js.map +1 -1
  7. package/dist/_virtual/index.js +8 -0
  8. package/dist/_virtual/index.js.map +1 -1
  9. package/dist/_virtual/re.js +8 -0
  10. package/dist/_virtual/re.js.map +1 -1
  11. package/dist/_virtual/uri.all.js +8 -0
  12. package/dist/_virtual/uri.all.js.map +1 -1
  13. package/dist/instrument.js +9 -0
  14. package/dist/instrument.js.map +1 -1
  15. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js +8 -0
  16. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js.map +1 -1
  17. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js +8 -0
  18. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js.map +1 -1
  19. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js +8 -0
  20. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js.map +1 -1
  21. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js +8 -0
  22. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js.map +1 -1
  23. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js +8 -0
  24. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js.map +1 -1
  25. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js +8 -0
  26. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js.map +1 -1
  27. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js +8 -0
  28. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js.map +1 -1
  29. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +8 -0
  30. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js.map +1 -1
  31. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/ajv.js +47 -39
  32. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/ajv.js.map +1 -1
  33. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/cache.js +9 -0
  34. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/cache.js.map +1 -1
  35. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/async.js +18 -9
  36. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/async.js.map +1 -1
  37. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/error_classes.js +9 -0
  38. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/error_classes.js.map +1 -1
  39. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/formats.js +9 -0
  40. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/formats.js.map +1 -1
  41. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/index.js +24 -15
  42. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/index.js.map +1 -1
  43. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/resolve.js +14 -5
  44. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/resolve.js.map +1 -1
  45. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/rules.js +9 -0
  46. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/rules.js.map +1 -1
  47. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/schema_obj.js +9 -0
  48. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/schema_obj.js.map +1 -1
  49. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/ucs2length.js +9 -0
  50. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/ucs2length.js.map +1 -1
  51. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/util.js +9 -0
  52. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/util.js.map +1 -1
  53. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/data.js +9 -0
  54. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/data.js.map +1 -1
  55. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/definition_schema.js +9 -0
  56. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/definition_schema.js.map +1 -1
  57. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limit.js +9 -0
  58. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limit.js.map +1 -1
  59. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitItems.js +9 -0
  60. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitItems.js.map +1 -1
  61. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitLength.js +9 -0
  62. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitLength.js.map +1 -1
  63. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitProperties.js +9 -0
  64. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitProperties.js.map +1 -1
  65. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/allOf.js +9 -0
  66. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/allOf.js.map +1 -1
  67. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/anyOf.js +9 -0
  68. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/anyOf.js.map +1 -1
  69. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/comment.js +9 -0
  70. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/comment.js.map +1 -1
  71. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/const.js +9 -0
  72. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/const.js.map +1 -1
  73. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/contains.js +9 -0
  74. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/contains.js.map +1 -1
  75. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/custom.js +9 -0
  76. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/custom.js.map +1 -1
  77. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/dependencies.js +9 -0
  78. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/dependencies.js.map +1 -1
  79. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/enum.js +9 -0
  80. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/enum.js.map +1 -1
  81. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/format.js +9 -0
  82. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/format.js.map +1 -1
  83. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/if.js +9 -0
  84. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/if.js.map +1 -1
  85. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/index.js +9 -0
  86. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/index.js.map +1 -1
  87. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/items.js +9 -0
  88. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/items.js.map +1 -1
  89. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/multipleOf.js +9 -0
  90. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/multipleOf.js.map +1 -1
  91. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/not.js +9 -0
  92. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/not.js.map +1 -1
  93. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/oneOf.js +9 -0
  94. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/oneOf.js.map +1 -1
  95. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/pattern.js +9 -0
  96. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/pattern.js.map +1 -1
  97. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/properties.js +9 -0
  98. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/properties.js.map +1 -1
  99. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/propertyNames.js +9 -0
  100. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/propertyNames.js.map +1 -1
  101. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/ref.js +9 -0
  102. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/ref.js.map +1 -1
  103. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/required.js +9 -0
  104. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/required.js.map +1 -1
  105. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/uniqueItems.js +9 -0
  106. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/uniqueItems.js.map +1 -1
  107. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/validate.js +9 -0
  108. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/validate.js.map +1 -1
  109. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/keyword.js +9 -0
  110. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/keyword.js.map +1 -1
  111. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/refs/data.json.js +8 -0
  112. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/refs/data.json.js.map +1 -1
  113. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/refs/json-schema-draft-07.json.js +8 -0
  114. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/refs/json-schema-draft-07.json.js.map +1 -1
  115. package/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js +9 -0
  116. package/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js.map +1 -1
  117. package/dist/node_modules/.pnpm/fast-json-stable-stringify@2.1.0/node_modules/fast-json-stable-stringify/index.js +9 -0
  118. package/dist/node_modules/.pnpm/fast-json-stable-stringify@2.1.0/node_modules/fast-json-stable-stringify/index.js.map +1 -1
  119. package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/helper/streaming/sse.js +8 -0
  120. package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/helper/streaming/sse.js.map +1 -1
  121. package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/middleware/cors/index.js +8 -0
  122. package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/middleware/cors/index.js.map +1 -1
  123. package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/utils/html.js +8 -0
  124. package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/utils/html.js.map +1 -1
  125. package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/utils/stream.js +8 -0
  126. package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/utils/stream.js.map +1 -1
  127. package/dist/node_modules/.pnpm/json-schema-traverse@0.4.1/node_modules/json-schema-traverse/index.js +9 -0
  128. package/dist/node_modules/.pnpm/json-schema-traverse@0.4.1/node_modules/json-schema-traverse/index.js.map +1 -1
  129. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/comparator.js +9 -0
  130. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/comparator.js.map +1 -1
  131. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/range.js +9 -0
  132. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/range.js.map +1 -1
  133. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/semver.js +9 -0
  134. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/semver.js.map +1 -1
  135. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/clean.js +9 -0
  136. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/clean.js.map +1 -1
  137. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/cmp.js +9 -0
  138. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/cmp.js.map +1 -1
  139. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/coerce.js +9 -0
  140. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/coerce.js.map +1 -1
  141. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-build.js +9 -0
  142. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-build.js.map +1 -1
  143. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-loose.js +9 -0
  144. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-loose.js.map +1 -1
  145. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare.js +9 -0
  146. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare.js.map +1 -1
  147. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/diff.js +9 -0
  148. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/diff.js.map +1 -1
  149. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/eq.js +9 -0
  150. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/eq.js.map +1 -1
  151. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gt.js +9 -0
  152. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gt.js.map +1 -1
  153. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gte.js +9 -0
  154. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gte.js.map +1 -1
  155. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/inc.js +9 -0
  156. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/inc.js.map +1 -1
  157. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lt.js +9 -0
  158. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lt.js.map +1 -1
  159. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lte.js +9 -0
  160. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lte.js.map +1 -1
  161. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/major.js +9 -0
  162. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/major.js.map +1 -1
  163. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/minor.js +9 -0
  164. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/minor.js.map +1 -1
  165. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/neq.js +9 -0
  166. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/neq.js.map +1 -1
  167. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/parse.js +9 -0
  168. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/parse.js.map +1 -1
  169. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/patch.js +9 -0
  170. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/patch.js.map +1 -1
  171. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/prerelease.js +9 -0
  172. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/prerelease.js.map +1 -1
  173. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rcompare.js +9 -0
  174. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rcompare.js.map +1 -1
  175. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rsort.js +9 -0
  176. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rsort.js.map +1 -1
  177. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/satisfies.js +9 -0
  178. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/satisfies.js.map +1 -1
  179. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/sort.js +9 -0
  180. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/sort.js.map +1 -1
  181. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/valid.js +9 -0
  182. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/valid.js.map +1 -1
  183. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/index.js +8 -0
  184. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/index.js.map +1 -1
  185. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/constants.js +9 -0
  186. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/constants.js.map +1 -1
  187. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/debug.js +9 -0
  188. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/debug.js.map +1 -1
  189. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/identifiers.js +9 -0
  190. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/identifiers.js.map +1 -1
  191. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/lrucache.js +9 -0
  192. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/lrucache.js.map +1 -1
  193. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/parse-options.js +9 -0
  194. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/parse-options.js.map +1 -1
  195. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/re.js +9 -0
  196. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/re.js.map +1 -1
  197. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/gtr.js +9 -0
  198. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/gtr.js.map +1 -1
  199. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/intersects.js +9 -0
  200. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/intersects.js.map +1 -1
  201. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/ltr.js +9 -0
  202. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/ltr.js.map +1 -1
  203. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/max-satisfying.js +9 -0
  204. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/max-satisfying.js.map +1 -1
  205. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-satisfying.js +9 -0
  206. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-satisfying.js.map +1 -1
  207. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-version.js +9 -0
  208. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-version.js.map +1 -1
  209. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/outside.js +9 -0
  210. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/outside.js.map +1 -1
  211. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/simplify.js +9 -0
  212. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/simplify.js.map +1 -1
  213. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/subset.js +9 -0
  214. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/subset.js.map +1 -1
  215. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/to-comparators.js +9 -0
  216. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/to-comparators.js.map +1 -1
  217. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/valid.js +9 -0
  218. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/valid.js.map +1 -1
  219. package/dist/node_modules/.pnpm/uri-js@4.4.1/node_modules/uri-js/dist/es5/uri.all.js +9 -1
  220. package/dist/node_modules/.pnpm/uri-js@4.4.1/node_modules/uri-js/dist/es5/uri.all.js.map +1 -1
  221. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Options.js +8 -0
  222. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Options.js.map +1 -1
  223. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Refs.js +8 -0
  224. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/Refs.js.map +1 -1
  225. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/errorMessages.js +8 -0
  226. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/errorMessages.js.map +1 -1
  227. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js +8 -0
  228. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/getRelativePath.js.map +1 -1
  229. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parseDef.js +8 -0
  230. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parseDef.js.map +1 -1
  231. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/any.js +8 -0
  232. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/any.js.map +1 -1
  233. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/array.js +8 -0
  234. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/array.js.map +1 -1
  235. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js +8 -0
  236. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js.map +1 -1
  237. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js +8 -0
  238. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js.map +1 -1
  239. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js +8 -0
  240. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/branded.js.map +1 -1
  241. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js +8 -0
  242. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/catch.js.map +1 -1
  243. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/date.js +8 -0
  244. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/date.js.map +1 -1
  245. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/default.js +8 -0
  246. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/default.js.map +1 -1
  247. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js +8 -0
  248. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/effects.js.map +1 -1
  249. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js +8 -0
  250. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/enum.js.map +1 -1
  251. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js +8 -0
  252. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js.map +1 -1
  253. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js +8 -0
  254. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/literal.js.map +1 -1
  255. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/map.js +8 -0
  256. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/map.js.map +1 -1
  257. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js +8 -0
  258. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js.map +1 -1
  259. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/never.js +8 -0
  260. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/never.js.map +1 -1
  261. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/null.js +8 -0
  262. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/null.js.map +1 -1
  263. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js +8 -0
  264. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js.map +1 -1
  265. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/number.js +8 -0
  266. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/number.js.map +1 -1
  267. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/object.js +8 -0
  268. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/object.js.map +1 -1
  269. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js +8 -0
  270. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/optional.js.map +1 -1
  271. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js +8 -0
  272. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js.map +1 -1
  273. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js +8 -0
  274. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/promise.js.map +1 -1
  275. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js +8 -0
  276. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js.map +1 -1
  277. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/record.js +8 -0
  278. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/record.js.map +1 -1
  279. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/set.js +8 -0
  280. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/set.js.map +1 -1
  281. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/string.js +8 -0
  282. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/string.js.map +1 -1
  283. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js +8 -0
  284. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js.map +1 -1
  285. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js +8 -0
  286. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js.map +1 -1
  287. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/union.js +8 -0
  288. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/union.js.map +1 -1
  289. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js +8 -0
  290. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js.map +1 -1
  291. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/selectParser.js +8 -0
  292. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/selectParser.js.map +1 -1
  293. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js +8 -0
  294. package/dist/node_modules/.pnpm/zod-to-json-schema@3.24.6_zod@3.25.76/node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js.map +1 -1
  295. package/dist/run.js +9 -0
  296. package/dist/run.js.map +1 -1
  297. package/dist/sentry-config.js +10 -1
  298. package/dist/sentry-config.js.map +1 -1
  299. package/dist/server/cli/help.js +17 -0
  300. package/dist/server/cli/help.js.map +1 -1
  301. package/dist/server/cli/mcp.d.ts +1 -1
  302. package/dist/server/cli/mcp.js +21 -9
  303. package/dist/server/cli/mcp.js.map +1 -1
  304. package/dist/server/cli/run.d.ts +1 -1
  305. package/dist/server/cli/run.js +28 -3
  306. package/dist/server/cli/run.js.map +1 -1
  307. package/dist/server/cli/server.d.ts +1 -1
  308. package/dist/server/cli/server.js +12 -2
  309. package/dist/server/cli/server.js.map +1 -1
  310. package/dist/server/cli/tail.d.ts +1 -1
  311. package/dist/server/cli/tail.js +18 -2
  312. package/dist/server/cli/tail.js.map +1 -1
  313. package/dist/server/cli.d.ts +1 -0
  314. package/dist/server/cli.js +30 -4
  315. package/dist/server/cli.js.map +1 -1
  316. package/dist/server/constants.js +9 -0
  317. package/dist/server/constants.js.map +1 -1
  318. package/dist/server/formatters/human/errors.js +9 -0
  319. package/dist/server/formatters/human/errors.js.map +1 -1
  320. package/dist/server/formatters/human/index.js +9 -0
  321. package/dist/server/formatters/human/index.js.map +1 -1
  322. package/dist/server/formatters/human/logs.js +9 -0
  323. package/dist/server/formatters/human/logs.js.map +1 -1
  324. package/dist/server/formatters/human/traces.js +9 -0
  325. package/dist/server/formatters/human/traces.js.map +1 -1
  326. package/dist/server/formatters/human/utils.js +9 -0
  327. package/dist/server/formatters/human/utils.js.map +1 -1
  328. package/dist/server/formatters/index.js +9 -0
  329. package/dist/server/formatters/index.js.map +1 -1
  330. package/dist/server/formatters/json/errors.js +9 -0
  331. package/dist/server/formatters/json/errors.js.map +1 -1
  332. package/dist/server/formatters/json/index.js +9 -0
  333. package/dist/server/formatters/json/index.js.map +1 -1
  334. package/dist/server/formatters/json/logs.js +9 -0
  335. package/dist/server/formatters/json/logs.js.map +1 -1
  336. package/dist/server/formatters/json/traces.js +9 -0
  337. package/dist/server/formatters/json/traces.js.map +1 -1
  338. package/dist/server/formatters/logfmt/errors.js +9 -0
  339. package/dist/server/formatters/logfmt/errors.js.map +1 -1
  340. package/dist/server/formatters/logfmt/index.js +9 -0
  341. package/dist/server/formatters/logfmt/index.js.map +1 -1
  342. package/dist/server/formatters/logfmt/logs.js +9 -0
  343. package/dist/server/formatters/logfmt/logs.js.map +1 -1
  344. package/dist/server/formatters/logfmt/traces.js +9 -0
  345. package/dist/server/formatters/logfmt/traces.js.map +1 -1
  346. package/dist/server/formatters/md/errors.js +9 -0
  347. package/dist/server/formatters/md/errors.js.map +1 -1
  348. package/dist/server/formatters/md/event.js +9 -0
  349. package/dist/server/formatters/md/event.js.map +1 -1
  350. package/dist/server/formatters/md/index.js +9 -0
  351. package/dist/server/formatters/md/index.js.map +1 -1
  352. package/dist/server/formatters/md/logs.js +9 -0
  353. package/dist/server/formatters/md/logs.js.map +1 -1
  354. package/dist/server/formatters/md/traces.js +9 -0
  355. package/dist/server/formatters/md/traces.js.map +1 -1
  356. package/dist/server/formatters/shared/data-builders.js +9 -0
  357. package/dist/server/formatters/shared/data-builders.js.map +1 -1
  358. package/dist/server/formatters/types.js +9 -0
  359. package/dist/server/formatters/types.js.map +1 -1
  360. package/dist/server/formatters/utils.js +9 -0
  361. package/dist/server/formatters/utils.js.map +1 -1
  362. package/dist/server/handlers/fileToServe.js +9 -0
  363. package/dist/server/handlers/fileToServe.js.map +1 -1
  364. package/dist/server/logger.js +9 -0
  365. package/dist/server/logger.js.map +1 -1
  366. package/dist/server/main.d.ts +1 -1
  367. package/dist/server/main.js +22 -4
  368. package/dist/server/main.js.map +1 -1
  369. package/dist/server/mcp/constants.js +9 -0
  370. package/dist/server/mcp/constants.js.map +1 -1
  371. package/dist/server/mcp/mcp.js +13 -1
  372. package/dist/server/mcp/mcp.js.map +1 -1
  373. package/dist/server/messageBuffer.js +9 -0
  374. package/dist/server/messageBuffer.js.map +1 -1
  375. package/dist/server/parser/helpers.js +9 -0
  376. package/dist/server/parser/helpers.js.map +1 -1
  377. package/dist/server/parser/processEnvelope.js +9 -0
  378. package/dist/server/parser/processEnvelope.js.map +1 -1
  379. package/dist/server/routes/clear.js +12 -0
  380. package/dist/server/routes/clear.js.map +1 -1
  381. package/dist/server/routes/contextlines/index.js +9 -0
  382. package/dist/server/routes/contextlines/index.js.map +1 -1
  383. package/dist/server/routes/contextlines/utils.js +9 -0
  384. package/dist/server/routes/contextlines/utils.js.map +1 -1
  385. package/dist/server/routes/health.js +9 -0
  386. package/dist/server/routes/health.js.map +1 -1
  387. package/dist/server/routes/index.js +9 -0
  388. package/dist/server/routes/index.js.map +1 -1
  389. package/dist/server/routes/mcp.js +9 -0
  390. package/dist/server/routes/mcp.js.map +1 -1
  391. package/dist/server/routes/open.js +9 -0
  392. package/dist/server/routes/open.js.map +1 -1
  393. package/dist/server/routes/stream/debugLogging.js +9 -0
  394. package/dist/server/routes/stream/debugLogging.js.map +1 -1
  395. package/dist/server/routes/stream/index.js +12 -0
  396. package/dist/server/routes/stream/index.js.map +1 -1
  397. package/dist/server/routes/stream/streaming.js +9 -0
  398. package/dist/server/routes/stream/streaming.js.map +1 -1
  399. package/dist/server/routes/stream/userAgent.js +9 -0
  400. package/dist/server/routes/stream/userAgent.js.map +1 -1
  401. package/dist/server/sdk.js +9 -0
  402. package/dist/server/sdk.js.map +1 -1
  403. package/dist/server/types/cli.d.ts +1 -0
  404. package/dist/server/types/utils.d.ts +12 -0
  405. package/dist/server/utils/cors.d.ts +35 -5
  406. package/dist/server/utils/cors.js +179 -6
  407. package/dist/server/utils/cors.js.map +1 -1
  408. package/dist/server/utils/docker-compose-parser.js +9 -0
  409. package/dist/server/utils/docker-compose-parser.js.map +1 -1
  410. package/dist/server/utils/docker-compose.js +9 -0
  411. package/dist/server/utils/docker-compose.js.map +1 -1
  412. package/dist/server/utils/eventContainer.js +9 -0
  413. package/dist/server/utils/eventContainer.js.map +1 -1
  414. package/dist/server/utils/extras.js +9 -0
  415. package/dist/server/utils/extras.js.map +1 -1
  416. package/dist/server/utils/getBuffer.js +9 -0
  417. package/dist/server/utils/getBuffer.js.map +1 -1
  418. package/dist/shared/constants.js +9 -0
  419. package/dist/shared/constants.js.map +1 -1
  420. package/dist/ui/assets/andromeeda.js +2 -1
  421. package/dist/ui/assets/andromeeda.js.map +1 -0
  422. package/dist/ui/assets/angular-html.js +2 -1
  423. package/dist/ui/assets/angular-html.js.map +1 -0
  424. package/dist/ui/assets/angular-ts.js +2 -1
  425. package/dist/ui/assets/angular-ts.js.map +1 -0
  426. package/dist/ui/assets/astro.js +2 -1
  427. package/dist/ui/assets/astro.js.map +1 -0
  428. package/dist/ui/assets/aurora-x.js +2 -1
  429. package/dist/ui/assets/aurora-x.js.map +1 -0
  430. package/dist/ui/assets/ayu-dark.js +2 -1
  431. package/dist/ui/assets/ayu-dark.js.map +1 -0
  432. package/dist/ui/assets/blade.js +2 -1
  433. package/dist/ui/assets/blade.js.map +1 -0
  434. package/dist/ui/assets/c.js +2 -1
  435. package/dist/ui/assets/c.js.map +1 -0
  436. package/dist/ui/assets/catppuccin-frappe.js +2 -1
  437. package/dist/ui/assets/catppuccin-frappe.js.map +1 -0
  438. package/dist/ui/assets/catppuccin-latte.js +2 -1
  439. package/dist/ui/assets/catppuccin-latte.js.map +1 -0
  440. package/dist/ui/assets/catppuccin-macchiato.js +2 -1
  441. package/dist/ui/assets/catppuccin-macchiato.js.map +1 -0
  442. package/dist/ui/assets/catppuccin-mocha.js +2 -1
  443. package/dist/ui/assets/catppuccin-mocha.js.map +1 -0
  444. package/dist/ui/assets/coffee.js +2 -1
  445. package/dist/ui/assets/coffee.js.map +1 -0
  446. package/dist/ui/assets/cpp.js +2 -1
  447. package/dist/ui/assets/cpp.js.map +1 -0
  448. package/dist/ui/assets/css.js +2 -1
  449. package/dist/ui/assets/css.js.map +1 -0
  450. package/dist/ui/assets/dark-plus.js +2 -1
  451. package/dist/ui/assets/dark-plus.js.map +1 -0
  452. package/dist/ui/assets/dracula-soft.js +2 -1
  453. package/dist/ui/assets/dracula-soft.js.map +1 -0
  454. package/dist/ui/assets/dracula.js +2 -1
  455. package/dist/ui/assets/dracula.js.map +1 -0
  456. package/dist/ui/assets/everforest-dark.js +2 -1
  457. package/dist/ui/assets/everforest-dark.js.map +1 -0
  458. package/dist/ui/assets/everforest-light.js +2 -1
  459. package/dist/ui/assets/everforest-light.js.map +1 -0
  460. package/dist/ui/assets/github-dark-default.js +2 -1
  461. package/dist/ui/assets/github-dark-default.js.map +1 -0
  462. package/dist/ui/assets/github-dark-dimmed.js +2 -1
  463. package/dist/ui/assets/github-dark-dimmed.js.map +1 -0
  464. package/dist/ui/assets/github-dark-high-contrast.js +2 -1
  465. package/dist/ui/assets/github-dark-high-contrast.js.map +1 -0
  466. package/dist/ui/assets/github-dark.js +2 -1
  467. package/dist/ui/assets/github-dark.js.map +1 -0
  468. package/dist/ui/assets/github-light-default.js +2 -1
  469. package/dist/ui/assets/github-light-default.js.map +1 -0
  470. package/dist/ui/assets/github-light-high-contrast.js +2 -1
  471. package/dist/ui/assets/github-light-high-contrast.js.map +1 -0
  472. package/dist/ui/assets/github-light.js +2 -1
  473. package/dist/ui/assets/github-light.js.map +1 -0
  474. package/dist/ui/assets/glsl.js +2 -1
  475. package/dist/ui/assets/glsl.js.map +1 -0
  476. package/dist/ui/assets/graphql.js +2 -1
  477. package/dist/ui/assets/graphql.js.map +1 -0
  478. package/dist/ui/assets/gruvbox-dark-hard.js +2 -1
  479. package/dist/ui/assets/gruvbox-dark-hard.js.map +1 -0
  480. package/dist/ui/assets/gruvbox-dark-medium.js +2 -1
  481. package/dist/ui/assets/gruvbox-dark-medium.js.map +1 -0
  482. package/dist/ui/assets/gruvbox-dark-soft.js +2 -1
  483. package/dist/ui/assets/gruvbox-dark-soft.js.map +1 -0
  484. package/dist/ui/assets/gruvbox-light-hard.js +2 -1
  485. package/dist/ui/assets/gruvbox-light-hard.js.map +1 -0
  486. package/dist/ui/assets/gruvbox-light-medium.js +2 -1
  487. package/dist/ui/assets/gruvbox-light-medium.js.map +1 -0
  488. package/dist/ui/assets/gruvbox-light-soft.js +2 -1
  489. package/dist/ui/assets/gruvbox-light-soft.js.map +1 -0
  490. package/dist/ui/assets/haml.js +2 -1
  491. package/dist/ui/assets/haml.js.map +1 -0
  492. package/dist/ui/assets/handlebars.js +2 -1
  493. package/dist/ui/assets/handlebars.js.map +1 -0
  494. package/dist/ui/assets/houston.js +2 -1
  495. package/dist/ui/assets/houston.js.map +1 -0
  496. package/dist/ui/assets/html-derivative.js +2 -1
  497. package/dist/ui/assets/html-derivative.js.map +1 -0
  498. package/dist/ui/assets/html.js +2 -1
  499. package/dist/ui/assets/html.js.map +1 -0
  500. package/dist/ui/assets/http.js +2 -1
  501. package/dist/ui/assets/http.js.map +1 -0
  502. package/dist/ui/assets/imba.js +2 -1
  503. package/dist/ui/assets/imba.js.map +1 -0
  504. package/dist/ui/assets/index.js +46 -45
  505. package/dist/ui/assets/index.js.map +1 -0
  506. package/dist/ui/assets/index2.js +2 -1
  507. package/dist/ui/assets/index2.js.map +1 -0
  508. package/dist/ui/assets/instrumentation.js +16 -15
  509. package/dist/ui/assets/instrumentation.js.map +1 -0
  510. package/dist/ui/assets/java.js +2 -1
  511. package/dist/ui/assets/java.js.map +1 -0
  512. package/dist/ui/assets/javascript.js +2 -1
  513. package/dist/ui/assets/javascript.js.map +1 -0
  514. package/dist/ui/assets/jinja.js +2 -1
  515. package/dist/ui/assets/jinja.js.map +1 -0
  516. package/dist/ui/assets/jison.js +2 -1
  517. package/dist/ui/assets/jison.js.map +1 -0
  518. package/dist/ui/assets/json.js +2 -1
  519. package/dist/ui/assets/json.js.map +1 -0
  520. package/dist/ui/assets/json5.js +2 -1
  521. package/dist/ui/assets/json5.js.map +1 -0
  522. package/dist/ui/assets/jsonc.js +2 -1
  523. package/dist/ui/assets/jsonc.js.map +1 -0
  524. package/dist/ui/assets/jsonl.js +2 -1
  525. package/dist/ui/assets/jsonl.js.map +1 -0
  526. package/dist/ui/assets/jsx.js +2 -1
  527. package/dist/ui/assets/jsx.js.map +1 -0
  528. package/dist/ui/assets/julia.js +2 -1
  529. package/dist/ui/assets/julia.js.map +1 -0
  530. package/dist/ui/assets/kanagawa-dragon.js +2 -1
  531. package/dist/ui/assets/kanagawa-dragon.js.map +1 -0
  532. package/dist/ui/assets/kanagawa-lotus.js +2 -1
  533. package/dist/ui/assets/kanagawa-lotus.js.map +1 -0
  534. package/dist/ui/assets/kanagawa-wave.js +2 -1
  535. package/dist/ui/assets/kanagawa-wave.js.map +1 -0
  536. package/dist/ui/assets/laserwave.js +2 -1
  537. package/dist/ui/assets/laserwave.js.map +1 -0
  538. package/dist/ui/assets/less.js +2 -1
  539. package/dist/ui/assets/less.js.map +1 -0
  540. package/dist/ui/assets/light-plus.js +2 -1
  541. package/dist/ui/assets/light-plus.js.map +1 -0
  542. package/dist/ui/assets/main.css +1 -1
  543. package/dist/ui/assets/main.js +3 -2
  544. package/dist/ui/assets/main.js.map +1 -0
  545. package/dist/ui/assets/markdown.js +2 -1
  546. package/dist/ui/assets/markdown.js.map +1 -0
  547. package/dist/ui/assets/marko.js +2 -1
  548. package/dist/ui/assets/marko.js.map +1 -0
  549. package/dist/ui/assets/material-theme-darker.js +2 -1
  550. package/dist/ui/assets/material-theme-darker.js.map +1 -0
  551. package/dist/ui/assets/material-theme-lighter.js +2 -1
  552. package/dist/ui/assets/material-theme-lighter.js.map +1 -0
  553. package/dist/ui/assets/material-theme-ocean.js +2 -1
  554. package/dist/ui/assets/material-theme-ocean.js.map +1 -0
  555. package/dist/ui/assets/material-theme-palenight.js +2 -1
  556. package/dist/ui/assets/material-theme-palenight.js.map +1 -0
  557. package/dist/ui/assets/material-theme.js +2 -1
  558. package/dist/ui/assets/material-theme.js.map +1 -0
  559. package/dist/ui/assets/mdc.js +2 -1
  560. package/dist/ui/assets/mdc.js.map +1 -0
  561. package/dist/ui/assets/mdx.js +2 -1
  562. package/dist/ui/assets/mdx.js.map +1 -0
  563. package/dist/ui/assets/min-dark.js +2 -1
  564. package/dist/ui/assets/min-dark.js.map +1 -0
  565. package/dist/ui/assets/min-light.js +2 -1
  566. package/dist/ui/assets/min-light.js.map +1 -0
  567. package/dist/ui/assets/monokai.js +2 -1
  568. package/dist/ui/assets/monokai.js.map +1 -0
  569. package/dist/ui/assets/night-owl.js +2 -1
  570. package/dist/ui/assets/night-owl.js.map +1 -0
  571. package/dist/ui/assets/nord.js +2 -1
  572. package/dist/ui/assets/nord.js.map +1 -0
  573. package/dist/ui/assets/one-dark-pro.js +2 -1
  574. package/dist/ui/assets/one-dark-pro.js.map +1 -0
  575. package/dist/ui/assets/one-light.js +2 -1
  576. package/dist/ui/assets/one-light.js.map +1 -0
  577. package/dist/ui/assets/php.js +2 -1
  578. package/dist/ui/assets/php.js.map +1 -0
  579. package/dist/ui/assets/plastic.js +2 -1
  580. package/dist/ui/assets/plastic.js.map +1 -0
  581. package/dist/ui/assets/poimandres.js +2 -1
  582. package/dist/ui/assets/poimandres.js.map +1 -0
  583. package/dist/ui/assets/postcss.js +2 -1
  584. package/dist/ui/assets/postcss.js.map +1 -0
  585. package/dist/ui/assets/pug.js +2 -1
  586. package/dist/ui/assets/pug.js.map +1 -0
  587. package/dist/ui/assets/python.js +2 -1
  588. package/dist/ui/assets/python.js.map +1 -0
  589. package/dist/ui/assets/r.js +2 -1
  590. package/dist/ui/assets/r.js.map +1 -0
  591. package/dist/ui/assets/red.js +2 -1
  592. package/dist/ui/assets/red.js.map +1 -0
  593. package/dist/ui/assets/regexp.js +2 -1
  594. package/dist/ui/assets/regexp.js.map +1 -0
  595. package/dist/ui/assets/rose-pine-dawn.js +2 -1
  596. package/dist/ui/assets/rose-pine-dawn.js.map +1 -0
  597. package/dist/ui/assets/rose-pine-moon.js +2 -1
  598. package/dist/ui/assets/rose-pine-moon.js.map +1 -0
  599. package/dist/ui/assets/rose-pine.js +2 -1
  600. package/dist/ui/assets/rose-pine.js.map +1 -0
  601. package/dist/ui/assets/sass.js +2 -1
  602. package/dist/ui/assets/sass.js.map +1 -0
  603. package/dist/ui/assets/scss.js +2 -1
  604. package/dist/ui/assets/scss.js.map +1 -0
  605. package/dist/ui/assets/serverTimingMeta.js +51 -0
  606. package/dist/ui/assets/serverTimingMeta.js.map +1 -0
  607. package/dist/ui/assets/shellscript.js +2 -1
  608. package/dist/ui/assets/shellscript.js.map +1 -0
  609. package/dist/ui/assets/slack-dark.js +2 -1
  610. package/dist/ui/assets/slack-dark.js.map +1 -0
  611. package/dist/ui/assets/slack-ochin.js +2 -1
  612. package/dist/ui/assets/slack-ochin.js.map +1 -0
  613. package/dist/ui/assets/snazzy-light.js +2 -1
  614. package/dist/ui/assets/snazzy-light.js.map +1 -0
  615. package/dist/ui/assets/solarized-dark.js +2 -1
  616. package/dist/ui/assets/solarized-dark.js.map +1 -0
  617. package/dist/ui/assets/solarized-light.js +2 -1
  618. package/dist/ui/assets/solarized-light.js.map +1 -0
  619. package/dist/ui/assets/sql.js +2 -1
  620. package/dist/ui/assets/sql.js.map +1 -0
  621. package/dist/ui/assets/stylus.js +2 -1
  622. package/dist/ui/assets/stylus.js.map +1 -0
  623. package/dist/ui/assets/svelte.js +2 -1
  624. package/dist/ui/assets/svelte.js.map +1 -0
  625. package/dist/ui/assets/synthwave-84.js +2 -1
  626. package/dist/ui/assets/synthwave-84.js.map +1 -0
  627. package/dist/ui/assets/tokyo-night.js +2 -1
  628. package/dist/ui/assets/tokyo-night.js.map +1 -0
  629. package/dist/ui/assets/ts-tags.js +2 -1
  630. package/dist/ui/assets/ts-tags.js.map +1 -0
  631. package/dist/ui/assets/tsx.js +2 -1
  632. package/dist/ui/assets/tsx.js.map +1 -0
  633. package/dist/ui/assets/typescript.js +2 -1
  634. package/dist/ui/assets/typescript.js.map +1 -0
  635. package/dist/ui/assets/vesper.js +2 -1
  636. package/dist/ui/assets/vesper.js.map +1 -0
  637. package/dist/ui/assets/vitesse-black.js +2 -1
  638. package/dist/ui/assets/vitesse-black.js.map +1 -0
  639. package/dist/ui/assets/vitesse-dark.js +2 -1
  640. package/dist/ui/assets/vitesse-dark.js.map +1 -0
  641. package/dist/ui/assets/vitesse-light.js +2 -1
  642. package/dist/ui/assets/vitesse-light.js.map +1 -0
  643. package/dist/ui/assets/vue-html.js +2 -1
  644. package/dist/ui/assets/vue-html.js.map +1 -0
  645. package/dist/ui/assets/vue-vine.js +2 -1
  646. package/dist/ui/assets/vue-vine.js.map +1 -0
  647. package/dist/ui/assets/vue.js +2 -1
  648. package/dist/ui/assets/vue.js.map +1 -0
  649. package/dist/ui/assets/wasm.js +2 -1
  650. package/dist/ui/assets/wasm.js.map +1 -0
  651. package/dist/ui/assets/wasm2.js +2 -1
  652. package/dist/ui/assets/wasm2.js.map +1 -0
  653. package/dist/ui/assets/wgsl.js +2 -1
  654. package/dist/ui/assets/wgsl.js.map +1 -0
  655. package/dist/ui/assets/wit.js +2 -1
  656. package/dist/ui/assets/wit.js.map +1 -0
  657. package/dist/ui/assets/xml.js +2 -1
  658. package/dist/ui/assets/xml.js.map +1 -0
  659. package/dist/ui/assets/yaml.js +2 -1
  660. package/dist/ui/assets/yaml.js.map +1 -0
  661. package/dist/ui/manifest.json +17 -25
  662. package/package.json +2 -2
  663. package/dist/ui/assets/client.js +0 -50
  664. package/dist/ui/assets/electron-index.js +0 -6
@@ -1,5 +1,14 @@
1
+ ;
2
+ !function() {
3
+ try {
4
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
5
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "9cea3498-c982-4376-a62c-45554f99f0e3", e._sentryDebugIdIdentifier = "sentry-dbid-9cea3498-c982-4376-a62c-45554f99f0e3");
6
+ } catch (e2) {
7
+ }
8
+ }();
1
9
  import { getDuration } from "../utils.js";
2
10
  import { inferEnvelopeSource, formatLogLine } from "./utils.js";
11
+ import "../../../_virtual/_sentry-release-injection-file.js";
3
12
  function formatTrace(event, envelopeHeader) {
4
13
  const source = inferEnvelopeSource(envelopeHeader, event);
5
14
  const transaction = event.transaction;
@@ -1 +1 @@
1
- {"version":3,"file":"traces.js","sources":["../../../../src/server/formatters/human/traces.ts"],"sourcesContent":["import type { Envelope } from \"@sentry/core\";\nimport type { SentryTransactionEvent } from \"../../parser/index.ts\";\nimport { getDuration } from \"../utils.ts\";\nimport { formatLogLine, inferEnvelopeSource } from \"./utils.ts\";\n\n/**\n * Format a trace/transaction event with envelope headers for source inference\n */\nexport function formatTrace(event: SentryTransactionEvent, envelopeHeader: Envelope[0]): string[] {\n const source = inferEnvelopeSource(envelopeHeader, event);\n\n const transaction = event.transaction;\n const trace = event.contexts?.trace;\n\n let message = transaction || trace?.description || \"Transaction\";\n\n const op = trace?.op;\n if (op && op !== \"default\" && op !== \"unknown\") {\n message = `[${op}] ${message}`;\n }\n\n const duration = getDuration(event.timestamp, event.start_timestamp);\n if (duration !== undefined) {\n message += ` [${Math.round(duration)}ms]`;\n }\n\n const status = trace?.status;\n if (status && status !== \"ok\") {\n message += ` [${status}]`;\n }\n\n const spanCount = event.spans?.length;\n if (spanCount && spanCount > 0) {\n message += ` [${spanCount} span${spanCount === 1 ? \"\" : \"s\"}]`;\n }\n\n return [formatLogLine(event.timestamp, source, \"trace\", message)];\n}\n"],"names":[],"mappings":";;AAQO,SAAS,YAAY,OAA+B,gBAAuC;AAChG,QAAM,SAAS,oBAAoB,gBAAgB,KAAK;AAExD,QAAM,cAAc,MAAM;AAC1B,QAAM,QAAQ,MAAM,UAAU;AAE9B,MAAI,UAAU,eAAe,OAAO,eAAe;AAEnD,QAAM,KAAK,OAAO;AAClB,MAAI,MAAM,OAAO,aAAa,OAAO,WAAW;AAC9C,cAAU,IAAI,EAAE,KAAK,OAAO;AAAA,EAC9B;AAEA,QAAM,WAAW,YAAY,MAAM,WAAW,MAAM,eAAe;AACnE,MAAI,aAAa,QAAW;AAC1B,eAAW,KAAK,KAAK,MAAM,QAAQ,CAAC;AAAA,EACtC;AAEA,QAAM,SAAS,OAAO;AACtB,MAAI,UAAU,WAAW,MAAM;AAC7B,eAAW,KAAK,MAAM;AAAA,EACxB;AAEA,QAAM,YAAY,MAAM,OAAO;AAC/B,MAAI,aAAa,YAAY,GAAG;AAC9B,eAAW,KAAK,SAAS,QAAQ,cAAc,IAAI,KAAK,GAAG;AAAA,EAC7D;AAEA,SAAO,CAAC,cAAc,MAAM,WAAW,QAAQ,SAAS,OAAO,CAAC;AAClE;"}
1
+ {"version":3,"file":"traces.js","sources":["../../../../src/server/formatters/human/traces.ts"],"sourcesContent":["import type { Envelope } from \"@sentry/core\";\nimport type { SentryTransactionEvent } from \"../../parser/index.ts\";\nimport { getDuration } from \"../utils.ts\";\nimport { formatLogLine, inferEnvelopeSource } from \"./utils.ts\";\n\n/**\n * Format a trace/transaction event with envelope headers for source inference\n */\nexport function formatTrace(event: SentryTransactionEvent, envelopeHeader: Envelope[0]): string[] {\n const source = inferEnvelopeSource(envelopeHeader, event);\n\n const transaction = event.transaction;\n const trace = event.contexts?.trace;\n\n let message = transaction || trace?.description || \"Transaction\";\n\n const op = trace?.op;\n if (op && op !== \"default\" && op !== \"unknown\") {\n message = `[${op}] ${message}`;\n }\n\n const duration = getDuration(event.timestamp, event.start_timestamp);\n if (duration !== undefined) {\n message += ` [${Math.round(duration)}ms]`;\n }\n\n const status = trace?.status;\n if (status && status !== \"ok\") {\n message += ` [${status}]`;\n }\n\n const spanCount = event.spans?.length;\n if (spanCount && spanCount > 0) {\n message += ` [${spanCount} span${spanCount === 1 ? \"\" : \"s\"}]`;\n }\n\n return [formatLogLine(event.timestamp, source, \"trace\", message)];\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAQO,SAAS,YAAY,OAA+B,gBAAuC;AAChG,QAAM,SAAS,oBAAoB,gBAAgB,KAAK;AAExD,QAAM,cAAc,MAAM;AAC1B,QAAM,QAAQ,MAAM,UAAU;AAE9B,MAAI,UAAU,eAAe,OAAO,eAAe;AAEnD,QAAM,KAAK,OAAO;AAClB,MAAI,MAAM,OAAO,aAAa,OAAO,WAAW;AAC9C,cAAU,IAAI,EAAE,KAAK,OAAO;AAAA,EAC9B;AAEA,QAAM,WAAW,YAAY,MAAM,WAAW,MAAM,eAAe;AACnE,MAAI,aAAa,QAAW;AAC1B,eAAW,KAAK,KAAK,MAAM,QAAQ,CAAC;AAAA,EACtC;AAEA,QAAM,SAAS,OAAO;AACtB,MAAI,UAAU,WAAW,MAAM;AAC7B,eAAW,KAAK,MAAM;AAAA,EACxB;AAEA,QAAM,YAAY,MAAM,OAAO;AAC/B,MAAI,aAAa,YAAY,GAAG;AAC9B,eAAW,KAAK,SAAS,QAAQ,cAAc,IAAI,KAAK,GAAG;AAAA,EAC7D;AAEA,SAAO,CAAC,cAAc,MAAM,WAAW,QAAQ,SAAS,OAAO,CAAC;AAClE;"}
@@ -1,5 +1,14 @@
1
+ ;
2
+ !function() {
3
+ try {
4
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
5
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "6383c656-eec8-4e07-aaa9-d46d61743a55", e._sentryDebugIdIdentifier = "sentry-dbid-6383c656-eec8-4e07-aaa9-d46d61743a55");
6
+ } catch (e2) {
7
+ }
8
+ }();
1
9
  import chalk from "chalk";
2
10
  import { parseBrowserFromUserAgent } from "../../routes/stream/userAgent.js";
11
+ import "../../../_virtual/_sentry-release-injection-file.js";
3
12
  const SOURCE_TYPES = ["browser", "mobile", "server"];
4
13
  const LOG_LEVELS = ["error", "warning", "log", "info", "trace", "debug"];
5
14
  const SOURCE_COLORS = {
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../src/server/formatters/human/utils.ts"],"sourcesContent":["import type { Envelope } from \"@sentry/core\";\nimport chalk from \"chalk\";\nimport { parseBrowserFromUserAgent } from \"../../routes/stream/userAgent.ts\";\n\nexport const SOURCE_TYPES = [\"browser\", \"mobile\", \"server\"] as const;\nexport type SourceType = (typeof SOURCE_TYPES)[number];\n\nexport const LOG_LEVELS = [\"error\", \"warning\", \"log\", \"info\", \"trace\", \"debug\"] as const;\nexport type LogLevel = (typeof LOG_LEVELS)[number];\n\nexport const SOURCE_COLORS: Record<SourceType, (text: string) => string> = {\n browser: chalk.yellow,\n mobile: chalk.blue,\n server: chalk.magenta,\n};\n\nexport const LOG_LEVEL_COLORS: Record<LogLevel, (text: string) => string> = {\n error: chalk.red.bold,\n warning: chalk.hex(\"#FFA500\"), // Orange\n log: chalk.white,\n info: chalk.cyan,\n trace: chalk.green,\n debug: chalk.dim,\n};\n\n/**\n * Helper to detect if a User-Agent string is from a browser\n */\nfunction isBrowserUserAgent(userAgent: string): boolean {\n const parsed = parseBrowserFromUserAgent(userAgent);\n return (\n parsed !== \"unknown\" &&\n (parsed.includes(\"Chrome\") || parsed.includes(\"Firefox\") || parsed.includes(\"Safari\") || parsed.includes(\"Edge\"))\n );\n}\n\n/**\n * Infer the source of an envelope as browser, mobile, or server using multiple signals\n * Priority order:\n * 1. Sender User-Agent (from HTTP request header)\n * 2. Platform & Runtime tags (from event payload)\n * 3. SDK name (fallback)\n *\n * Rules based on https://release-registry.services.sentry.io/sdks\n */\nexport function inferEnvelopeSource(envelopeHeader: Envelope[0], event?: any): SourceType {\n const sdkName = envelopeHeader?.sdk?.name || \"\";\n\n // 1. Mobile check (unchanged - already reliable from SDK name)\n // Mobile: Native mobile platforms and frameworks\n if (\n sdkName.includes(\"cocoa\") ||\n sdkName.includes(\"android\") ||\n sdkName.includes(\"react-native\") ||\n sdkName.includes(\"flutter\") ||\n sdkName.includes(\"capacitor\") ||\n sdkName.includes(\"cordova\") ||\n sdkName.includes(\"xamarin\") ||\n sdkName.includes(\"maui\") ||\n sdkName.includes(\"unity\") ||\n sdkName.includes(\"kotlin.kmp\")\n ) {\n return \"mobile\";\n }\n\n // 2. Sender User-Agent check\n const senderUserAgent = (envelopeHeader as any).__spotlight_sender_user_agent;\n if (senderUserAgent && typeof senderUserAgent === \"string\") {\n if (isBrowserUserAgent(senderUserAgent)) {\n return \"browser\";\n }\n // Server SDKs send server UAs like \"Node.js/*\", \"Python-urllib/*\", etc.\n // If we have a non-browser UA, we continue to further checks\n }\n\n // 3. Runtime tags check\n if (event?.tags?.runtime === \"browser\") {\n return \"browser\";\n }\n\n // 4. Platform & server-specific signals\n if (event?.contexts?.runtime?.name) {\n // Runtime context (node, CPython, etc.) indicates server\n return \"server\";\n }\n\n if (event?.server_name) {\n // server_name is a server-specific field\n return \"server\";\n }\n\n const platform = event?.platform;\n if (\n platform === \"node\" ||\n platform === \"python\" ||\n platform === \"ruby\" ||\n platform === \"php\" ||\n platform === \"java\" ||\n platform === \"go\" ||\n platform === \"rust\" ||\n platform === \"perl\" ||\n platform === \"elixir\" ||\n platform === \"csharp\" ||\n platform === \"dotnet\"\n ) {\n return \"server\";\n }\n\n // 5. SDK name check (existing logic as fallback)\n // Browser: JavaScript frameworks/libraries (excluding server/native runtimes and meta-frameworks)\n if (\n sdkName.startsWith(\"sentry.javascript.\") &&\n !sdkName.includes(\"node\") &&\n !sdkName.includes(\"bun\") &&\n !sdkName.includes(\"deno\") &&\n !sdkName.includes(\"electron\") &&\n !sdkName.includes(\"serverless\") &&\n !sdkName.includes(\"cloudflare\") &&\n !sdkName.includes(\"vercel-edge\") &&\n !sdkName.includes(\"wasm\") &&\n !sdkName.includes(\"opentelemetry\") &&\n !sdkName.includes(\"nextjs\") &&\n !sdkName.includes(\"remix\") &&\n !sdkName.includes(\"gatsby\") &&\n !sdkName.includes(\"astro\") &&\n !sdkName.includes(\"nuxt\") &&\n !sdkName.includes(\"sveltekit\") &&\n !sdkName.includes(\"solidstart\") &&\n !sdkName.includes(\"nestjs\") &&\n !sdkName.includes(\"tanstackstart\")\n ) {\n return \"browser\";\n }\n\n // Special case: Blazor WebAssembly runs in browser\n if (sdkName.includes(\"blazor.webassembly\")) {\n return \"browser\";\n }\n\n // Server: Everything else (node, python, ruby, go, php, java, dotnet, etc.)\n return \"server\";\n}\n\n/**\n * Format timestamp as local time HH:MM:SS\n */\nexport function formatLocalTime(timestamp?: number | string): string {\n let date: Date;\n\n if (!timestamp) {\n date = new Date();\n } else if (typeof timestamp === \"string\") {\n // Handle ISO string format (e.g., \"2023-11-22T16:23:50.406684Z\")\n date = new Date(timestamp);\n } else {\n // Handle Unix timestamp\n date = new Date(timestamp * 1000);\n }\n\n if (Number.isNaN(date.getTime())) {\n // placeholder with same width as valid timestamp for alignment in the logs\n return \"??:??:??\";\n }\n\n const hours = date.getHours().toString().padStart(2, \"0\");\n const minutes = date.getMinutes().toString().padStart(2, \"0\");\n const seconds = date.getSeconds().toString().padStart(2, \"0\");\n return `${hours}:${minutes}:${seconds}`;\n}\n\n/**\n * Padding helper for vertical alignment\n */\nexport function padLabel(label: string, width: number): string {\n return label.padEnd(width);\n}\n\n// Constants for consistent padding (adding brackets)\nexport const SOURCE_WIDTH = Math.max(...SOURCE_TYPES.map(s => `[${s.toUpperCase()}]`.length));\nexport const TYPE_WIDTH = Math.max(...LOG_LEVELS.map(l => `[${l.toUpperCase()}]`.length));\n\n/**\n * Colorize time with dim gray\n */\nexport function colorizeTime(time: string): string {\n return chalk.gray(time);\n}\n\n/**\n * Colorize source based on envelope source\n */\nexport function colorizeSource(source: string): string {\n const bracketed = `[${source}]`;\n const padded = padLabel(bracketed, SOURCE_WIDTH);\n const colorFn = SOURCE_COLORS[source as SourceType] || chalk.white;\n return colorFn(padded);\n}\n\n/**\n * Colorize event type\n */\nexport function colorizeType(type: string): string {\n const bracketed = `[${type.toUpperCase()}]`;\n const padded = padLabel(bracketed, TYPE_WIDTH);\n const colorFn = LOG_LEVEL_COLORS[type.toLowerCase() as LogLevel] || chalk.white;\n return colorFn(padded);\n}\n\n/**\n * Format a complete log line with proper alignment and colors\n */\nexport function formatLogLine(\n timestamp: number | string | undefined,\n source: SourceType,\n type: string,\n message: string,\n): string {\n const time = colorizeTime(formatLocalTime(timestamp));\n const coloredSource = colorizeSource(source);\n const coloredType = colorizeType(type);\n\n return `${time} ${coloredType} ${coloredSource} ${message}`;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../src/server/formatters/human/utils.ts"],"sourcesContent":["import type { Envelope } from \"@sentry/core\";\nimport chalk from \"chalk\";\nimport { parseBrowserFromUserAgent } from \"../../routes/stream/userAgent.ts\";\n\nexport const SOURCE_TYPES = [\"browser\", \"mobile\", \"server\"] as const;\nexport type SourceType = (typeof SOURCE_TYPES)[number];\n\nexport const LOG_LEVELS = [\"error\", \"warning\", \"log\", \"info\", \"trace\", \"debug\"] as const;\nexport type LogLevel = (typeof LOG_LEVELS)[number];\n\nexport const SOURCE_COLORS: Record<SourceType, (text: string) => string> = {\n browser: chalk.yellow,\n mobile: chalk.blue,\n server: chalk.magenta,\n};\n\nexport const LOG_LEVEL_COLORS: Record<LogLevel, (text: string) => string> = {\n error: chalk.red.bold,\n warning: chalk.hex(\"#FFA500\"), // Orange\n log: chalk.white,\n info: chalk.cyan,\n trace: chalk.green,\n debug: chalk.dim,\n};\n\n/**\n * Helper to detect if a User-Agent string is from a browser\n */\nfunction isBrowserUserAgent(userAgent: string): boolean {\n const parsed = parseBrowserFromUserAgent(userAgent);\n return (\n parsed !== \"unknown\" &&\n (parsed.includes(\"Chrome\") || parsed.includes(\"Firefox\") || parsed.includes(\"Safari\") || parsed.includes(\"Edge\"))\n );\n}\n\n/**\n * Infer the source of an envelope as browser, mobile, or server using multiple signals\n * Priority order:\n * 1. Sender User-Agent (from HTTP request header)\n * 2. Platform & Runtime tags (from event payload)\n * 3. SDK name (fallback)\n *\n * Rules based on https://release-registry.services.sentry.io/sdks\n */\nexport function inferEnvelopeSource(envelopeHeader: Envelope[0], event?: any): SourceType {\n const sdkName = envelopeHeader?.sdk?.name || \"\";\n\n // 1. Mobile check (unchanged - already reliable from SDK name)\n // Mobile: Native mobile platforms and frameworks\n if (\n sdkName.includes(\"cocoa\") ||\n sdkName.includes(\"android\") ||\n sdkName.includes(\"react-native\") ||\n sdkName.includes(\"flutter\") ||\n sdkName.includes(\"capacitor\") ||\n sdkName.includes(\"cordova\") ||\n sdkName.includes(\"xamarin\") ||\n sdkName.includes(\"maui\") ||\n sdkName.includes(\"unity\") ||\n sdkName.includes(\"kotlin.kmp\")\n ) {\n return \"mobile\";\n }\n\n // 2. Sender User-Agent check\n const senderUserAgent = (envelopeHeader as any).__spotlight_sender_user_agent;\n if (senderUserAgent && typeof senderUserAgent === \"string\") {\n if (isBrowserUserAgent(senderUserAgent)) {\n return \"browser\";\n }\n // Server SDKs send server UAs like \"Node.js/*\", \"Python-urllib/*\", etc.\n // If we have a non-browser UA, we continue to further checks\n }\n\n // 3. Runtime tags check\n if (event?.tags?.runtime === \"browser\") {\n return \"browser\";\n }\n\n // 4. Platform & server-specific signals\n if (event?.contexts?.runtime?.name) {\n // Runtime context (node, CPython, etc.) indicates server\n return \"server\";\n }\n\n if (event?.server_name) {\n // server_name is a server-specific field\n return \"server\";\n }\n\n const platform = event?.platform;\n if (\n platform === \"node\" ||\n platform === \"python\" ||\n platform === \"ruby\" ||\n platform === \"php\" ||\n platform === \"java\" ||\n platform === \"go\" ||\n platform === \"rust\" ||\n platform === \"perl\" ||\n platform === \"elixir\" ||\n platform === \"csharp\" ||\n platform === \"dotnet\"\n ) {\n return \"server\";\n }\n\n // 5. SDK name check (existing logic as fallback)\n // Browser: JavaScript frameworks/libraries (excluding server/native runtimes and meta-frameworks)\n if (\n sdkName.startsWith(\"sentry.javascript.\") &&\n !sdkName.includes(\"node\") &&\n !sdkName.includes(\"bun\") &&\n !sdkName.includes(\"deno\") &&\n !sdkName.includes(\"electron\") &&\n !sdkName.includes(\"serverless\") &&\n !sdkName.includes(\"cloudflare\") &&\n !sdkName.includes(\"vercel-edge\") &&\n !sdkName.includes(\"wasm\") &&\n !sdkName.includes(\"opentelemetry\") &&\n !sdkName.includes(\"nextjs\") &&\n !sdkName.includes(\"remix\") &&\n !sdkName.includes(\"gatsby\") &&\n !sdkName.includes(\"astro\") &&\n !sdkName.includes(\"nuxt\") &&\n !sdkName.includes(\"sveltekit\") &&\n !sdkName.includes(\"solidstart\") &&\n !sdkName.includes(\"nestjs\") &&\n !sdkName.includes(\"tanstackstart\")\n ) {\n return \"browser\";\n }\n\n // Special case: Blazor WebAssembly runs in browser\n if (sdkName.includes(\"blazor.webassembly\")) {\n return \"browser\";\n }\n\n // Server: Everything else (node, python, ruby, go, php, java, dotnet, etc.)\n return \"server\";\n}\n\n/**\n * Format timestamp as local time HH:MM:SS\n */\nexport function formatLocalTime(timestamp?: number | string): string {\n let date: Date;\n\n if (!timestamp) {\n date = new Date();\n } else if (typeof timestamp === \"string\") {\n // Handle ISO string format (e.g., \"2023-11-22T16:23:50.406684Z\")\n date = new Date(timestamp);\n } else {\n // Handle Unix timestamp\n date = new Date(timestamp * 1000);\n }\n\n if (Number.isNaN(date.getTime())) {\n // placeholder with same width as valid timestamp for alignment in the logs\n return \"??:??:??\";\n }\n\n const hours = date.getHours().toString().padStart(2, \"0\");\n const minutes = date.getMinutes().toString().padStart(2, \"0\");\n const seconds = date.getSeconds().toString().padStart(2, \"0\");\n return `${hours}:${minutes}:${seconds}`;\n}\n\n/**\n * Padding helper for vertical alignment\n */\nexport function padLabel(label: string, width: number): string {\n return label.padEnd(width);\n}\n\n// Constants for consistent padding (adding brackets)\nexport const SOURCE_WIDTH = Math.max(...SOURCE_TYPES.map(s => `[${s.toUpperCase()}]`.length));\nexport const TYPE_WIDTH = Math.max(...LOG_LEVELS.map(l => `[${l.toUpperCase()}]`.length));\n\n/**\n * Colorize time with dim gray\n */\nexport function colorizeTime(time: string): string {\n return chalk.gray(time);\n}\n\n/**\n * Colorize source based on envelope source\n */\nexport function colorizeSource(source: string): string {\n const bracketed = `[${source}]`;\n const padded = padLabel(bracketed, SOURCE_WIDTH);\n const colorFn = SOURCE_COLORS[source as SourceType] || chalk.white;\n return colorFn(padded);\n}\n\n/**\n * Colorize event type\n */\nexport function colorizeType(type: string): string {\n const bracketed = `[${type.toUpperCase()}]`;\n const padded = padLabel(bracketed, TYPE_WIDTH);\n const colorFn = LOG_LEVEL_COLORS[type.toLowerCase() as LogLevel] || chalk.white;\n return colorFn(padded);\n}\n\n/**\n * Format a complete log line with proper alignment and colors\n */\nexport function formatLogLine(\n timestamp: number | string | undefined,\n source: SourceType,\n type: string,\n message: string,\n): string {\n const time = colorizeTime(formatLocalTime(timestamp));\n const coloredSource = colorizeSource(source);\n const coloredType = colorizeType(type);\n\n return `${time} ${coloredType} ${coloredSource} ${message}`;\n}\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,13 @@
1
+ ;
2
+ !function() {
3
+ try {
4
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
5
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "7ad72867-c8d2-42c3-96c1-7d776363cd64", e._sentryDebugIdIdentifier = "sentry-dbid-7ad72867-c8d2-42c3-96c1-7d776363cd64");
6
+ } catch (e2) {
7
+ }
8
+ }();
1
9
  import { logger } from "../logger.js";
10
+ import "../../_virtual/_sentry-release-injection-file.js";
2
11
  import "../parser/helpers.js";
3
12
  import "uuidv7";
4
13
  import "@sentry/node";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/server/formatters/index.ts"],"sourcesContent":["import type { Envelope, EnvelopeItem } from \"@sentry/core\";\nimport { logger } from \"../logger.ts\";\nimport type { SentryEvent } from \"../parser/types.ts\";\nimport type { FormatterRegistry } from \"./types.ts\";\n\nexport * from \"./types.ts\";\n\nexport { formatters as mdFormatters } from \"./md/index.ts\";\nexport { formatters as logfmtFormatters } from \"./logfmt/index.ts\";\nexport { formatters as jsonFormatters } from \"./json/index.ts\";\nexport { formatters as humanFormatters } from \"./human/index.ts\";\n\n/**\n * Generic function to get a formatter from registry and apply it\n */\nexport function applyFormatter<K extends keyof FormatterRegistry>(\n registry: FormatterRegistry,\n eventType: K,\n payload: EnvelopeItem[1],\n envelopeHeader: Envelope[0],\n): string[] {\n const entry = registry[eventType];\n const event = payload as SentryEvent;\n if (!entry.typeGuard(event)) {\n logger.warn(`Skipping event: type guard failed for ${eventType} (event.type=${(event as any).type})`);\n return [];\n }\n // Type assertion needed because TypeScript can't narrow the union type properly\n return entry.format(event as any, envelopeHeader);\n}\n"],"names":[],"mappings":";;;;;;AAeO,SAAS,eACd,UACA,WACA,SACA,gBACU;AACV,QAAM,QAAQ,SAAS,SAAS;AAChC,QAAM,QAAQ;AACd,MAAI,CAAC,MAAM,UAAU,KAAK,GAAG;AAC3B,WAAO,KAAK,yCAAyC,SAAS,gBAAiB,MAAc,IAAI,GAAG;AACpG,WAAO,CAAA;AAAA,EACT;AAEA,SAAO,MAAM,OAAO,OAAc,cAAc;AAClD;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/server/formatters/index.ts"],"sourcesContent":["import type { Envelope, EnvelopeItem } from \"@sentry/core\";\nimport { logger } from \"../logger.ts\";\nimport type { SentryEvent } from \"../parser/types.ts\";\nimport type { FormatterRegistry } from \"./types.ts\";\n\nexport * from \"./types.ts\";\n\nexport { formatters as mdFormatters } from \"./md/index.ts\";\nexport { formatters as logfmtFormatters } from \"./logfmt/index.ts\";\nexport { formatters as jsonFormatters } from \"./json/index.ts\";\nexport { formatters as humanFormatters } from \"./human/index.ts\";\n\n/**\n * Generic function to get a formatter from registry and apply it\n */\nexport function applyFormatter<K extends keyof FormatterRegistry>(\n registry: FormatterRegistry,\n eventType: K,\n payload: EnvelopeItem[1],\n envelopeHeader: Envelope[0],\n): string[] {\n const entry = registry[eventType];\n const event = payload as SentryEvent;\n if (!entry.typeGuard(event)) {\n logger.warn(`Skipping event: type guard failed for ${eventType} (event.type=${(event as any).type})`);\n return [];\n }\n // Type assertion needed because TypeScript can't narrow the union type properly\n return entry.format(event as any, envelopeHeader);\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAeO,SAAS,eACd,UACA,WACA,SACA,gBACU;AACV,QAAM,QAAQ,SAAS,SAAS;AAChC,QAAM,QAAQ;AACd,MAAI,CAAC,MAAM,UAAU,KAAK,GAAG;AAC3B,WAAO,KAAK,yCAAyC,SAAS,gBAAiB,MAAc,IAAI,GAAG;AACpG,WAAO,CAAA;AAAA,EACT;AAEA,SAAO,MAAM,OAAO,OAAc,cAAc;AAClD;"}
@@ -1,4 +1,13 @@
1
+ ;
2
+ !function() {
3
+ try {
4
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
5
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "5e1dce8a-1573-4bfa-b831-65b26db95a95", e._sentryDebugIdIdentifier = "sentry-dbid-5e1dce8a-1573-4bfa-b831-65b26db95a95");
6
+ } catch (e2) {
7
+ }
8
+ }();
1
9
  import { buildErrorData } from "../shared/data-builders.js";
10
+ import "../../../_virtual/_sentry-release-injection-file.js";
2
11
  function formatError(event, _envelopeHeader) {
3
12
  return [JSON.stringify(buildErrorData(event))];
4
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sources":["../../../../src/server/formatters/json/errors.ts"],"sourcesContent":["import type { Envelope } from \"@sentry/core\";\nimport type { SentryErrorEvent } from \"../../parser/index.ts\";\nimport { buildErrorData } from \"../shared/data-builders.ts\";\n\nexport function formatError(event: SentryErrorEvent, _envelopeHeader: Envelope[0]): string[] {\n return [JSON.stringify(buildErrorData(event))];\n}\n"],"names":[],"mappings":";AAIO,SAAS,YAAY,OAAyB,iBAAwC;AAC3F,SAAO,CAAC,KAAK,UAAU,eAAe,KAAK,CAAC,CAAC;AAC/C;"}
1
+ {"version":3,"file":"errors.js","sources":["../../../../src/server/formatters/json/errors.ts"],"sourcesContent":["import type { Envelope } from \"@sentry/core\";\nimport type { SentryErrorEvent } from \"../../parser/index.ts\";\nimport { buildErrorData } from \"../shared/data-builders.ts\";\n\nexport function formatError(event: SentryErrorEvent, _envelopeHeader: Envelope[0]): string[] {\n return [JSON.stringify(buildErrorData(event))];\n}\n"],"names":[],"mappings":";;;;;;;;;;AAIO,SAAS,YAAY,OAAyB,iBAAwC;AAC3F,SAAO,CAAC,KAAK,UAAU,eAAe,KAAK,CAAC,CAAC;AAC/C;"}
@@ -1,7 +1,16 @@
1
+ ;
2
+ !function() {
3
+ try {
4
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
5
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "07c7f71c-5201-4f0b-ad81-eae990612a3f", e._sentryDebugIdIdentifier = "sentry-dbid-07c7f71c-5201-4f0b-ad81-eae990612a3f");
6
+ } catch (e2) {
7
+ }
8
+ }();
1
9
  import { isTraceEvent, isLogEvent, isErrorEvent } from "../../parser/helpers.js";
2
10
  import { formatError } from "./errors.js";
3
11
  import { formatLog } from "./logs.js";
4
12
  import { formatTrace } from "./traces.js";
13
+ import "../../../_virtual/_sentry-release-injection-file.js";
5
14
  const formatters = {
6
15
  event: { typeGuard: isErrorEvent, format: formatError },
7
16
  log: { typeGuard: isLogEvent, format: formatLog },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/server/formatters/json/index.ts"],"sourcesContent":["import { isErrorEvent, isLogEvent, isTraceEvent } from \"../../parser/helpers.ts\";\nimport type { FormatterRegistry } from \"../types.ts\";\nimport { formatError } from \"./errors.ts\";\nimport { formatLog } from \"./logs.ts\";\nimport { formatTrace } from \"./traces.ts\";\n\nexport const formatters: FormatterRegistry = {\n event: { typeGuard: isErrorEvent, format: formatError },\n log: { typeGuard: isLogEvent, format: formatLog },\n transaction: { typeGuard: isTraceEvent, format: formatTrace },\n};\n"],"names":[],"mappings":";;;;AAMO,MAAM,aAAgC;AAAA,EAC3C,OAAO,EAAE,WAAW,cAAc,QAAQ,YAAA;AAAA,EAC1C,KAAK,EAAE,WAAW,YAAY,QAAQ,UAAA;AAAA,EACtC,aAAa,EAAE,WAAW,cAAc,QAAQ,YAAA;AAClD;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/server/formatters/json/index.ts"],"sourcesContent":["import { isErrorEvent, isLogEvent, isTraceEvent } from \"../../parser/helpers.ts\";\nimport type { FormatterRegistry } from \"../types.ts\";\nimport { formatError } from \"./errors.ts\";\nimport { formatLog } from \"./logs.ts\";\nimport { formatTrace } from \"./traces.ts\";\n\nexport const formatters: FormatterRegistry = {\n event: { typeGuard: isErrorEvent, format: formatError },\n log: { typeGuard: isLogEvent, format: formatLog },\n transaction: { typeGuard: isTraceEvent, format: formatTrace },\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;AAMO,MAAM,aAAgC;AAAA,EAC3C,OAAO,EAAE,WAAW,cAAc,QAAQ,YAAA;AAAA,EAC1C,KAAK,EAAE,WAAW,YAAY,QAAQ,UAAA;AAAA,EACtC,aAAa,EAAE,WAAW,cAAc,QAAQ,YAAA;AAClD;"}
@@ -1,4 +1,13 @@
1
+ ;
2
+ !function() {
3
+ try {
4
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
5
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "b1237a5d-f6db-42ba-9e7a-316218128179", e._sentryDebugIdIdentifier = "sentry-dbid-b1237a5d-f6db-42ba-9e7a-316218128179");
6
+ } catch (e2) {
7
+ }
8
+ }();
1
9
  import { buildLogData } from "../shared/data-builders.js";
10
+ import "../../../_virtual/_sentry-release-injection-file.js";
2
11
  function formatSingleLog(log) {
3
12
  return JSON.stringify(buildLogData(log));
4
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"logs.js","sources":["../../../../src/server/formatters/json/logs.ts"],"sourcesContent":["import type { Envelope, SerializedLog } from \"@sentry/core\";\nimport type { SentryLogEvent } from \"../../parser/index.ts\";\nimport { buildLogData } from \"../shared/data-builders.ts\";\n\nfunction formatSingleLog(log: SerializedLog): string {\n return JSON.stringify(buildLogData(log));\n}\n\nexport function formatLog(event: SentryLogEvent, _envelopeHeader: Envelope[0]): string[] {\n return event.items.map(formatSingleLog);\n}\n"],"names":[],"mappings":";AAIA,SAAS,gBAAgB,KAA4B;AACnD,SAAO,KAAK,UAAU,aAAa,GAAG,CAAC;AACzC;AAEO,SAAS,UAAU,OAAuB,iBAAwC;AACvF,SAAO,MAAM,MAAM,IAAI,eAAe;AACxC;"}
1
+ {"version":3,"file":"logs.js","sources":["../../../../src/server/formatters/json/logs.ts"],"sourcesContent":["import type { Envelope, SerializedLog } from \"@sentry/core\";\nimport type { SentryLogEvent } from \"../../parser/index.ts\";\nimport { buildLogData } from \"../shared/data-builders.ts\";\n\nfunction formatSingleLog(log: SerializedLog): string {\n return JSON.stringify(buildLogData(log));\n}\n\nexport function formatLog(event: SentryLogEvent, _envelopeHeader: Envelope[0]): string[] {\n return event.items.map(formatSingleLog);\n}\n"],"names":[],"mappings":";;;;;;;;;;AAIA,SAAS,gBAAgB,KAA4B;AACnD,SAAO,KAAK,UAAU,aAAa,GAAG,CAAC;AACzC;AAEO,SAAS,UAAU,OAAuB,iBAAwC;AACvF,SAAO,MAAM,MAAM,IAAI,eAAe;AACxC;"}
@@ -1,4 +1,13 @@
1
+ ;
2
+ !function() {
3
+ try {
4
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
5
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "b108a957-210f-4040-8160-94a2d86a3a31", e._sentryDebugIdIdentifier = "sentry-dbid-b108a957-210f-4040-8160-94a2d86a3a31");
6
+ } catch (e2) {
7
+ }
8
+ }();
1
9
  import { buildTraceData } from "../shared/data-builders.js";
10
+ import "../../../_virtual/_sentry-release-injection-file.js";
2
11
  function formatTrace(event, _envelopeHeader) {
3
12
  return [JSON.stringify(buildTraceData(event))];
4
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"traces.js","sources":["../../../../src/server/formatters/json/traces.ts"],"sourcesContent":["import type { Envelope } from \"@sentry/core\";\nimport type { SentryTransactionEvent } from \"../../parser/index.ts\";\nimport { buildTraceData } from \"../shared/data-builders.ts\";\n\nexport function formatTrace(event: SentryTransactionEvent, _envelopeHeader: Envelope[0]): string[] {\n return [JSON.stringify(buildTraceData(event))];\n}\n"],"names":[],"mappings":";AAIO,SAAS,YAAY,OAA+B,iBAAwC;AACjG,SAAO,CAAC,KAAK,UAAU,eAAe,KAAK,CAAC,CAAC;AAC/C;"}
1
+ {"version":3,"file":"traces.js","sources":["../../../../src/server/formatters/json/traces.ts"],"sourcesContent":["import type { Envelope } from \"@sentry/core\";\nimport type { SentryTransactionEvent } from \"../../parser/index.ts\";\nimport { buildTraceData } from \"../shared/data-builders.ts\";\n\nexport function formatTrace(event: SentryTransactionEvent, _envelopeHeader: Envelope[0]): string[] {\n return [JSON.stringify(buildTraceData(event))];\n}\n"],"names":[],"mappings":";;;;;;;;;;AAIO,SAAS,YAAY,OAA+B,iBAAwC;AACjG,SAAO,CAAC,KAAK,UAAU,eAAe,KAAK,CAAC,CAAC;AAC/C;"}
@@ -1,5 +1,14 @@
1
+ ;
2
+ !function() {
3
+ try {
4
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
5
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "f37db638-7330-4322-a5cb-a95c2841183b", e._sentryDebugIdIdentifier = "sentry-dbid-f37db638-7330-4322-a5cb-a95c2841183b");
6
+ } catch (e2) {
7
+ }
8
+ }();
1
9
  import logfmt from "logfmt";
2
10
  import { buildErrorData } from "../shared/data-builders.js";
11
+ import "../../../_virtual/_sentry-release-injection-file.js";
3
12
  function formatError(event, _envelopeHeader) {
4
13
  return [logfmt.stringify(buildErrorData(event))];
5
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sources":["../../../../src/server/formatters/logfmt/errors.ts"],"sourcesContent":["import type { Envelope } from \"@sentry/core\";\nimport logfmt from \"logfmt\";\nimport type { SentryErrorEvent } from \"../../parser/index.ts\";\nimport { buildErrorData } from \"../shared/data-builders.ts\";\n\nexport function formatError(event: SentryErrorEvent, _envelopeHeader: Envelope[0]): string[] {\n return [logfmt.stringify(buildErrorData(event))];\n}\n"],"names":[],"mappings":";;AAKO,SAAS,YAAY,OAAyB,iBAAwC;AAC3F,SAAO,CAAC,OAAO,UAAU,eAAe,KAAK,CAAC,CAAC;AACjD;"}
1
+ {"version":3,"file":"errors.js","sources":["../../../../src/server/formatters/logfmt/errors.ts"],"sourcesContent":["import type { Envelope } from \"@sentry/core\";\nimport logfmt from \"logfmt\";\nimport type { SentryErrorEvent } from \"../../parser/index.ts\";\nimport { buildErrorData } from \"../shared/data-builders.ts\";\n\nexport function formatError(event: SentryErrorEvent, _envelopeHeader: Envelope[0]): string[] {\n return [logfmt.stringify(buildErrorData(event))];\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAKO,SAAS,YAAY,OAAyB,iBAAwC;AAC3F,SAAO,CAAC,OAAO,UAAU,eAAe,KAAK,CAAC,CAAC;AACjD;"}
@@ -1,7 +1,16 @@
1
+ ;
2
+ !function() {
3
+ try {
4
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
5
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "07c7f71c-5201-4f0b-ad81-eae990612a3f", e._sentryDebugIdIdentifier = "sentry-dbid-07c7f71c-5201-4f0b-ad81-eae990612a3f");
6
+ } catch (e2) {
7
+ }
8
+ }();
1
9
  import { isTraceEvent, isLogEvent, isErrorEvent } from "../../parser/helpers.js";
2
10
  import { formatError } from "./errors.js";
3
11
  import { formatLog } from "./logs.js";
4
12
  import { formatTrace } from "./traces.js";
13
+ import "../../../_virtual/_sentry-release-injection-file.js";
5
14
  const formatters = {
6
15
  event: { typeGuard: isErrorEvent, format: formatError },
7
16
  log: { typeGuard: isLogEvent, format: formatLog },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/server/formatters/logfmt/index.ts"],"sourcesContent":["import { isErrorEvent, isLogEvent, isTraceEvent } from \"../../parser/helpers.ts\";\nimport type { FormatterRegistry } from \"../types.ts\";\nimport { formatError } from \"./errors.ts\";\nimport { formatLog } from \"./logs.ts\";\nimport { formatTrace } from \"./traces.ts\";\n\nexport const formatters: FormatterRegistry = {\n event: { typeGuard: isErrorEvent, format: formatError },\n log: { typeGuard: isLogEvent, format: formatLog },\n transaction: { typeGuard: isTraceEvent, format: formatTrace },\n};\n"],"names":[],"mappings":";;;;AAMO,MAAM,aAAgC;AAAA,EAC3C,OAAO,EAAE,WAAW,cAAc,QAAQ,YAAA;AAAA,EAC1C,KAAK,EAAE,WAAW,YAAY,QAAQ,UAAA;AAAA,EACtC,aAAa,EAAE,WAAW,cAAc,QAAQ,YAAA;AAClD;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/server/formatters/logfmt/index.ts"],"sourcesContent":["import { isErrorEvent, isLogEvent, isTraceEvent } from \"../../parser/helpers.ts\";\nimport type { FormatterRegistry } from \"../types.ts\";\nimport { formatError } from \"./errors.ts\";\nimport { formatLog } from \"./logs.ts\";\nimport { formatTrace } from \"./traces.ts\";\n\nexport const formatters: FormatterRegistry = {\n event: { typeGuard: isErrorEvent, format: formatError },\n log: { typeGuard: isLogEvent, format: formatLog },\n transaction: { typeGuard: isTraceEvent, format: formatTrace },\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;AAMO,MAAM,aAAgC;AAAA,EAC3C,OAAO,EAAE,WAAW,cAAc,QAAQ,YAAA;AAAA,EAC1C,KAAK,EAAE,WAAW,YAAY,QAAQ,UAAA;AAAA,EACtC,aAAa,EAAE,WAAW,cAAc,QAAQ,YAAA;AAClD;"}
@@ -1,5 +1,14 @@
1
+ ;
2
+ !function() {
3
+ try {
4
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
5
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "8953ab35-2d69-4ad4-a4c3-faf7d9194b66", e._sentryDebugIdIdentifier = "sentry-dbid-8953ab35-2d69-4ad4-a4c3-faf7d9194b66");
6
+ } catch (e2) {
7
+ }
8
+ }();
1
9
  import logfmt from "logfmt";
2
10
  import { formatTimestamp, mapFields } from "../utils.js";
11
+ import "../../../_virtual/_sentry-release-injection-file.js";
3
12
  function formatSingleLog(log) {
4
13
  const data = {
5
14
  timestamp: formatTimestamp(log.timestamp),
@@ -1 +1 @@
1
- {"version":3,"file":"logs.js","sources":["../../../../src/server/formatters/logfmt/logs.ts"],"sourcesContent":["import type { Envelope, SerializedLog } from \"@sentry/core\";\nimport logfmt from \"logfmt\";\nimport type { SentryLogEvent } from \"../../parser/index.ts\";\nimport { formatTimestamp, mapFields } from \"../utils.ts\";\n\nfunction formatSingleLog(log: SerializedLog): string {\n const data: Record<string, any> = {\n timestamp: formatTimestamp(log.timestamp),\n level: log.level,\n type: \"log\",\n };\n\n mapFields(log, data, {\n message: \"body\",\n trace_id: \"trace_id\",\n severity_number: \"severity_number\",\n });\n\n if (log.attributes) {\n for (const [key, attr] of Object.entries(log.attributes)) {\n data[key] = attr.value;\n }\n }\n\n return logfmt.stringify(data);\n}\n\nexport function formatLog(event: SentryLogEvent, _envelopeHeader: Envelope[0]): string[] {\n return event.items.map(formatSingleLog);\n}\n"],"names":[],"mappings":";;AAKA,SAAS,gBAAgB,KAA4B;AACnD,QAAM,OAA4B;AAAA,IAChC,WAAW,gBAAgB,IAAI,SAAS;AAAA,IACxC,OAAO,IAAI;AAAA,IACX,MAAM;AAAA,EAAA;AAGR,YAAU,KAAK,MAAM;AAAA,IACnB,SAAS;AAAA,IACT,UAAU;AAAA,IACV,iBAAiB;AAAA,EAAA,CAClB;AAED,MAAI,IAAI,YAAY;AAClB,eAAW,CAAC,KAAK,IAAI,KAAK,OAAO,QAAQ,IAAI,UAAU,GAAG;AACxD,WAAK,GAAG,IAAI,KAAK;AAAA,IACnB;AAAA,EACF;AAEA,SAAO,OAAO,UAAU,IAAI;AAC9B;AAEO,SAAS,UAAU,OAAuB,iBAAwC;AACvF,SAAO,MAAM,MAAM,IAAI,eAAe;AACxC;"}
1
+ {"version":3,"file":"logs.js","sources":["../../../../src/server/formatters/logfmt/logs.ts"],"sourcesContent":["import type { Envelope, SerializedLog } from \"@sentry/core\";\nimport logfmt from \"logfmt\";\nimport type { SentryLogEvent } from \"../../parser/index.ts\";\nimport { formatTimestamp, mapFields } from \"../utils.ts\";\n\nfunction formatSingleLog(log: SerializedLog): string {\n const data: Record<string, any> = {\n timestamp: formatTimestamp(log.timestamp),\n level: log.level,\n type: \"log\",\n };\n\n mapFields(log, data, {\n message: \"body\",\n trace_id: \"trace_id\",\n severity_number: \"severity_number\",\n });\n\n if (log.attributes) {\n for (const [key, attr] of Object.entries(log.attributes)) {\n data[key] = attr.value;\n }\n }\n\n return logfmt.stringify(data);\n}\n\nexport function formatLog(event: SentryLogEvent, _envelopeHeader: Envelope[0]): string[] {\n return event.items.map(formatSingleLog);\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAKA,SAAS,gBAAgB,KAA4B;AACnD,QAAM,OAA4B;AAAA,IAChC,WAAW,gBAAgB,IAAI,SAAS;AAAA,IACxC,OAAO,IAAI;AAAA,IACX,MAAM;AAAA,EAAA;AAGR,YAAU,KAAK,MAAM;AAAA,IACnB,SAAS;AAAA,IACT,UAAU;AAAA,IACV,iBAAiB;AAAA,EAAA,CAClB;AAED,MAAI,IAAI,YAAY;AAClB,eAAW,CAAC,KAAK,IAAI,KAAK,OAAO,QAAQ,IAAI,UAAU,GAAG;AACxD,WAAK,GAAG,IAAI,KAAK;AAAA,IACnB;AAAA,EACF;AAEA,SAAO,OAAO,UAAU,IAAI;AAC9B;AAEO,SAAS,UAAU,OAAuB,iBAAwC;AACvF,SAAO,MAAM,MAAM,IAAI,eAAe;AACxC;"}
@@ -1,5 +1,14 @@
1
+ ;
2
+ !function() {
3
+ try {
4
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
5
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "830c9775-5e29-4a08-a01e-0427210d1c3f", e._sentryDebugIdIdentifier = "sentry-dbid-830c9775-5e29-4a08-a01e-0427210d1c3f");
6
+ } catch (e2) {
7
+ }
8
+ }();
1
9
  import logfmt from "logfmt";
2
10
  import { buildTraceData } from "../shared/data-builders.js";
11
+ import "../../../_virtual/_sentry-release-injection-file.js";
3
12
  function formatTrace(event, _envelopeHeader) {
4
13
  return [logfmt.stringify(buildTraceData(event))];
5
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"traces.js","sources":["../../../../src/server/formatters/logfmt/traces.ts"],"sourcesContent":["import type { Envelope } from \"@sentry/core\";\nimport logfmt from \"logfmt\";\nimport type { SentryTransactionEvent } from \"../../parser/index.ts\";\nimport { buildTraceData } from \"../shared/data-builders.ts\";\n\nexport function formatTrace(event: SentryTransactionEvent, _envelopeHeader: Envelope[0]): string[] {\n return [logfmt.stringify(buildTraceData(event))];\n}\n"],"names":[],"mappings":";;AAKO,SAAS,YAAY,OAA+B,iBAAwC;AACjG,SAAO,CAAC,OAAO,UAAU,eAAe,KAAK,CAAC,CAAC;AACjD;"}
1
+ {"version":3,"file":"traces.js","sources":["../../../../src/server/formatters/logfmt/traces.ts"],"sourcesContent":["import type { Envelope } from \"@sentry/core\";\nimport logfmt from \"logfmt\";\nimport type { SentryTransactionEvent } from \"../../parser/index.ts\";\nimport { buildTraceData } from \"../shared/data-builders.ts\";\n\nexport function formatTrace(event: SentryTransactionEvent, _envelopeHeader: Envelope[0]): string[] {\n return [logfmt.stringify(buildTraceData(event))];\n}\n"],"names":[],"mappings":";;;;;;;;;;;AAKO,SAAS,YAAY,OAA+B,iBAAwC;AACjG,SAAO,CAAC,OAAO,UAAU,eAAe,KAAK,CAAC,CAAC;AACjD;"}
@@ -1,5 +1,14 @@
1
+ ;
2
+ !function() {
3
+ try {
4
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
5
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "5f66d754-68a9-4724-a081-63de435bc0a7", e._sentryDebugIdIdentifier = "sentry-dbid-5f66d754-68a9-4724-a081-63de435bc0a7");
6
+ } catch (e2) {
7
+ }
8
+ }();
1
9
  import { isErrorEvent } from "../../parser/helpers.js";
2
10
  import "uuidv7";
11
+ import "../../../_virtual/_sentry-release-injection-file.js";
3
12
  import { formatTimestamp } from "../utils.js";
4
13
  import { formatEventOutput } from "./event.js";
5
14
  function formatErrorEnvelope(container) {
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sources":["../../../../src/server/formatters/md/errors.ts"],"sourcesContent":["import type { Envelope, EnvelopeItem } from \"@sentry/core\";\nimport type { z } from \"zod\";\nimport { type SentryErrorEvent, type SentryEvent, isErrorEvent } from \"../../parser/index.ts\";\nimport type { EventContainer } from \"../../utils/index.ts\";\nimport type { ErrorEventSchema } from \"../schema.ts\";\nimport { formatTimestamp } from \"../utils.ts\";\nimport { formatEventOutput } from \"./event.ts\";\n\nexport function formatErrorEnvelope(container: EventContainer) {\n const processedEnvelope = container.getParsedEnvelope();\n\n const {\n envelope: [envelopeHeader, items],\n } = processedEnvelope;\n\n const formatted: string[] = [];\n for (const item of items) {\n const [{ type }, payload] = item;\n\n if (type === \"event\" && isErrorEvent(payload as SentryEvent)) {\n formatted.push(...formatError(payload, envelopeHeader));\n }\n }\n\n return formatted;\n}\n\nexport function processErrorEvent(event: any): z.infer<typeof ErrorEventSchema> {\n const entries: z.infer<typeof ErrorEventSchema>[\"entries\"] = [];\n\n if (event.exception) {\n entries.push({\n type: \"exception\",\n data: event.exception,\n });\n }\n\n if (event.request) {\n entries.push({\n type: \"request\",\n data: event.request,\n });\n }\n\n if (event.breadcrumbs) {\n entries.push({\n type: \"breadcrumbs\",\n data: event.breadcrumbs,\n });\n }\n\n if (event.spans) {\n entries.push({\n type: \"spans\",\n data: event.spans,\n });\n }\n\n if (event.threads) {\n entries.push({\n type: \"threads\",\n data: event.threads,\n });\n }\n\n const message = typeof event.message === \"string\" ? event.message : (event.message?.formatted ?? \"\");\n\n return {\n message,\n id: event.event_id ?? \"\",\n type: \"error\" as const,\n culprit: event.culprit ?? null,\n tags: Object.entries(event.tags ?? {}).map(([key, value]) => ({\n key,\n value: String(value),\n })),\n dateCreated: formatTimestamp(event.timestamp),\n title: message,\n entries,\n contexts: event.contexts as any,\n platform: event.platform,\n };\n}\n\n/**\n * Format an error event to markdown string\n */\nexport function formatError(payload: EnvelopeItem[1], _envelopeHeader: Envelope[0]): string[] {\n const event = payload as SentryErrorEvent;\n return [formatEventOutput(processErrorEvent(event))];\n}\n"],"names":[],"mappings":";;;;AAQO,SAAS,oBAAoB,WAA2B;AAC7D,QAAM,oBAAoB,UAAU,kBAAA;AAEpC,QAAM;AAAA,IACJ,UAAU,CAAC,gBAAgB,KAAK;AAAA,EAAA,IAC9B;AAEJ,QAAM,YAAsB,CAAA;AAC5B,aAAW,QAAQ,OAAO;AACxB,UAAM,CAAC,EAAE,QAAQ,OAAO,IAAI;AAE5B,QAAI,SAAS,WAAW,aAAa,OAAsB,GAAG;AAC5D,gBAAU,KAAK,GAAG,YAAY,OAAuB,CAAC;AAAA,IACxD;AAAA,EACF;AAEA,SAAO;AACT;AAEO,SAAS,kBAAkB,OAA8C;AAC9E,QAAM,UAAuD,CAAA;AAE7D,MAAI,MAAM,WAAW;AACnB,YAAQ,KAAK;AAAA,MACX,MAAM;AAAA,MACN,MAAM,MAAM;AAAA,IAAA,CACb;AAAA,EACH;AAEA,MAAI,MAAM,SAAS;AACjB,YAAQ,KAAK;AAAA,MACX,MAAM;AAAA,MACN,MAAM,MAAM;AAAA,IAAA,CACb;AAAA,EACH;AAEA,MAAI,MAAM,aAAa;AACrB,YAAQ,KAAK;AAAA,MACX,MAAM;AAAA,MACN,MAAM,MAAM;AAAA,IAAA,CACb;AAAA,EACH;AAEA,MAAI,MAAM,OAAO;AACf,YAAQ,KAAK;AAAA,MACX,MAAM;AAAA,MACN,MAAM,MAAM;AAAA,IAAA,CACb;AAAA,EACH;AAEA,MAAI,MAAM,SAAS;AACjB,YAAQ,KAAK;AAAA,MACX,MAAM;AAAA,MACN,MAAM,MAAM;AAAA,IAAA,CACb;AAAA,EACH;AAEA,QAAM,UAAU,OAAO,MAAM,YAAY,WAAW,MAAM,UAAW,MAAM,SAAS,aAAa;AAEjG,SAAO;AAAA,IACL;AAAA,IACA,IAAI,MAAM,YAAY;AAAA,IACtB,MAAM;AAAA,IACN,SAAS,MAAM,WAAW;AAAA,IAC1B,MAAM,OAAO,QAAQ,MAAM,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,OAAO;AAAA,MAC5D;AAAA,MACA,OAAO,OAAO,KAAK;AAAA,IAAA,EACnB;AAAA,IACF,aAAa,gBAAgB,MAAM,SAAS;AAAA,IAC5C,OAAO;AAAA,IACP;AAAA,IACA,UAAU,MAAM;AAAA,IAChB,UAAU,MAAM;AAAA,EAAA;AAEpB;AAKO,SAAS,YAAY,SAA0B,iBAAwC;AAC5F,QAAM,QAAQ;AACd,SAAO,CAAC,kBAAkB,kBAAkB,KAAK,CAAC,CAAC;AACrD;"}
1
+ {"version":3,"file":"errors.js","sources":["../../../../src/server/formatters/md/errors.ts"],"sourcesContent":["import type { Envelope, EnvelopeItem } from \"@sentry/core\";\nimport type { z } from \"zod\";\nimport { type SentryErrorEvent, type SentryEvent, isErrorEvent } from \"../../parser/index.ts\";\nimport type { EventContainer } from \"../../utils/index.ts\";\nimport type { ErrorEventSchema } from \"../schema.ts\";\nimport { formatTimestamp } from \"../utils.ts\";\nimport { formatEventOutput } from \"./event.ts\";\n\nexport function formatErrorEnvelope(container: EventContainer) {\n const processedEnvelope = container.getParsedEnvelope();\n\n const {\n envelope: [envelopeHeader, items],\n } = processedEnvelope;\n\n const formatted: string[] = [];\n for (const item of items) {\n const [{ type }, payload] = item;\n\n if (type === \"event\" && isErrorEvent(payload as SentryEvent)) {\n formatted.push(...formatError(payload, envelopeHeader));\n }\n }\n\n return formatted;\n}\n\nexport function processErrorEvent(event: any): z.infer<typeof ErrorEventSchema> {\n const entries: z.infer<typeof ErrorEventSchema>[\"entries\"] = [];\n\n if (event.exception) {\n entries.push({\n type: \"exception\",\n data: event.exception,\n });\n }\n\n if (event.request) {\n entries.push({\n type: \"request\",\n data: event.request,\n });\n }\n\n if (event.breadcrumbs) {\n entries.push({\n type: \"breadcrumbs\",\n data: event.breadcrumbs,\n });\n }\n\n if (event.spans) {\n entries.push({\n type: \"spans\",\n data: event.spans,\n });\n }\n\n if (event.threads) {\n entries.push({\n type: \"threads\",\n data: event.threads,\n });\n }\n\n const message = typeof event.message === \"string\" ? event.message : (event.message?.formatted ?? \"\");\n\n return {\n message,\n id: event.event_id ?? \"\",\n type: \"error\" as const,\n culprit: event.culprit ?? null,\n tags: Object.entries(event.tags ?? {}).map(([key, value]) => ({\n key,\n value: String(value),\n })),\n dateCreated: formatTimestamp(event.timestamp),\n title: message,\n entries,\n contexts: event.contexts as any,\n platform: event.platform,\n };\n}\n\n/**\n * Format an error event to markdown string\n */\nexport function formatError(payload: EnvelopeItem[1], _envelopeHeader: Envelope[0]): string[] {\n const event = payload as SentryErrorEvent;\n return [formatEventOutput(processErrorEvent(event))];\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;AAQO,SAAS,oBAAoB,WAA2B;AAC7D,QAAM,oBAAoB,UAAU,kBAAA;AAEpC,QAAM;AAAA,IACJ,UAAU,CAAC,gBAAgB,KAAK;AAAA,EAAA,IAC9B;AAEJ,QAAM,YAAsB,CAAA;AAC5B,aAAW,QAAQ,OAAO;AACxB,UAAM,CAAC,EAAE,QAAQ,OAAO,IAAI;AAE5B,QAAI,SAAS,WAAW,aAAa,OAAsB,GAAG;AAC5D,gBAAU,KAAK,GAAG,YAAY,OAAuB,CAAC;AAAA,IACxD;AAAA,EACF;AAEA,SAAO;AACT;AAEO,SAAS,kBAAkB,OAA8C;AAC9E,QAAM,UAAuD,CAAA;AAE7D,MAAI,MAAM,WAAW;AACnB,YAAQ,KAAK;AAAA,MACX,MAAM;AAAA,MACN,MAAM,MAAM;AAAA,IAAA,CACb;AAAA,EACH;AAEA,MAAI,MAAM,SAAS;AACjB,YAAQ,KAAK;AAAA,MACX,MAAM;AAAA,MACN,MAAM,MAAM;AAAA,IAAA,CACb;AAAA,EACH;AAEA,MAAI,MAAM,aAAa;AACrB,YAAQ,KAAK;AAAA,MACX,MAAM;AAAA,MACN,MAAM,MAAM;AAAA,IAAA,CACb;AAAA,EACH;AAEA,MAAI,MAAM,OAAO;AACf,YAAQ,KAAK;AAAA,MACX,MAAM;AAAA,MACN,MAAM,MAAM;AAAA,IAAA,CACb;AAAA,EACH;AAEA,MAAI,MAAM,SAAS;AACjB,YAAQ,KAAK;AAAA,MACX,MAAM;AAAA,MACN,MAAM,MAAM;AAAA,IAAA,CACb;AAAA,EACH;AAEA,QAAM,UAAU,OAAO,MAAM,YAAY,WAAW,MAAM,UAAW,MAAM,SAAS,aAAa;AAEjG,SAAO;AAAA,IACL;AAAA,IACA,IAAI,MAAM,YAAY;AAAA,IACtB,MAAM;AAAA,IACN,SAAS,MAAM,WAAW;AAAA,IAC1B,MAAM,OAAO,QAAQ,MAAM,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC,KAAK,KAAK,OAAO;AAAA,MAC5D;AAAA,MACA,OAAO,OAAO,KAAK;AAAA,IAAA,EACnB;AAAA,IACF,aAAa,gBAAgB,MAAM,SAAS;AAAA,IAC5C,OAAO;AAAA,IACP;AAAA,IACA,UAAU,MAAM;AAAA,IAChB,UAAU,MAAM;AAAA,EAAA;AAEpB;AAKO,SAAS,YAAY,SAA0B,iBAAwC;AAC5F,QAAM,QAAQ;AACd,SAAO,CAAC,kBAAkB,kBAAkB,KAAK,CAAC,CAAC;AACrD;"}
@@ -1,3 +1,12 @@
1
+ ;
2
+ !function() {
3
+ try {
4
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
5
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "82cfb5f9-e0dd-4c38-af9a-ccf50e456c77", e._sentryDebugIdIdentifier = "sentry-dbid-82cfb5f9-e0dd-4c38-af9a-ccf50e456c77");
6
+ } catch (e2) {
7
+ }
8
+ }();
9
+ import "../../../_virtual/_sentry-release-injection-file.js";
1
10
  const LANGUAGE_EXTENSIONS = {
2
11
  ".java": "java",
3
12
  ".py": "python",
@@ -1 +1 @@
1
- {"version":3,"file":"event.js","sources":["../../../../src/server/formatters/md/event.ts"],"sourcesContent":["/**\n * LLM response formatting utilities for Sentry data.\n *\n * Converts Sentry API responses into structured markdown format optimized\n * for LLM consumption. Handles stacktraces, event details, issue summaries,\n * and contextual information with consistent formatting patterns.\n */\nimport type { z } from \"zod\";\nimport type {\n ErrorEntrySchema,\n EventSchema,\n FrameInterface,\n MessageEntrySchema,\n RequestEntrySchema,\n ThreadsEntrySchema,\n} from \"../schema.ts\";\n\nexport type Event = z.infer<typeof EventSchema>;\n\n// Language detection mappings\nconst LANGUAGE_EXTENSIONS: Record<string, string> = {\n \".java\": \"java\",\n \".py\": \"python\",\n \".js\": \"javascript\",\n \".jsx\": \"javascript\",\n \".ts\": \"javascript\",\n \".tsx\": \"javascript\",\n \".rb\": \"ruby\",\n \".php\": \"php\",\n};\n\nconst LANGUAGE_MODULE_PATTERNS: Array<[RegExp, string]> = [[/^(java\\.|com\\.|org\\.)/, \"java\"]];\n\n/**\n * Detects the programming language of a stack frame based on the file extension.\n * Falls back to the platform parameter if no filename is available or extension is unrecognized.\n *\n * @param frame - The stack frame containing file and location information\n * @param platform - Optional platform hint to use as fallback\n * @returns The detected language or platform fallback or \"unknown\"\n */\nfunction detectLanguage(frame: z.infer<typeof FrameInterface>, platform?: string | null): string {\n // Check filename extensions\n if (frame.filename) {\n const ext = frame.filename.toLowerCase().match(/\\.[^.]+$/)?.[0];\n if (ext && LANGUAGE_EXTENSIONS[ext]) {\n return LANGUAGE_EXTENSIONS[ext];\n }\n }\n\n // Check module patterns\n if (frame.module) {\n for (const [pattern, language] of LANGUAGE_MODULE_PATTERNS) {\n if (pattern.test(frame.module)) {\n return language;\n }\n }\n }\n\n // Fallback to platform or unknown\n return platform || \"unknown\";\n}\n\n/**\n * Formats a stack frame into a language-specific string representation.\n * Different languages have different conventions for displaying stack traces.\n *\n * @param frame - The stack frame to format\n * @param frameIndex - Optional frame index for languages that display frame numbers\n * @param platform - Optional platform hint for language detection fallback\n * @returns Formatted stack frame string\n */\nfunction formatFrameHeader(frame: z.infer<typeof FrameInterface>, frameIndex?: number, platform?: string | null) {\n const language = detectLanguage(frame, platform);\n\n switch (language) {\n case \"java\": {\n // at com.example.ClassName.methodName(FileName.java:123)\n const className = frame.module || \"UnknownClass\";\n const method = frame.function || \"<unknown>\";\n const source = frame.filename || \"Unknown Source\";\n const location = frame.lineNo ? `:${frame.lineNo}` : \"\";\n return `at ${className}.${method}(${source}${location})`;\n }\n\n case \"python\": {\n // File \"/path/to/file.py\", line 42, in function_name\n const file = frame.filename || frame.absPath || frame.module || \"<unknown>\";\n const func = frame.function || \"<module>\";\n const line = frame.lineNo ? `, line ${frame.lineNo}` : \"\";\n return ` File \"${file}\"${line}, in ${func}`;\n }\n\n case \"javascript\": {\n // Original compact format: filename:line:col (function)\n // This preserves backward compatibility\n return `${[frame.filename, frame.lineNo, frame.colNo]\n .filter(i => !!i)\n .join(\":\")}${frame.function ? ` (${frame.function})` : \"\"}`;\n }\n\n case \"ruby\": {\n // from /path/to/file.rb:42:in `method_name'\n const file = frame.filename || frame.module || \"<unknown>\";\n const func = frame.function ? ` \\`${frame.function}\\`` : \"\";\n const line = frame.lineNo ? `:${frame.lineNo}:in` : \"\";\n return ` from ${file}${line}${func}`;\n }\n\n case \"php\": {\n // #0 /path/to/file.php(42): functionName()\n const file = frame.filename || \"<unknown>\";\n const line = frame.lineNo ? `(${frame.lineNo})` : \"\";\n const func = frame.function || \"<unknown>\";\n const prefix = frameIndex !== undefined ? `#${frameIndex} ` : \"\";\n return `${prefix}${file}${line}: ${func}()`;\n }\n\n default: {\n // Generic format for unknown languages\n const func = frame.function || \"<unknown>\";\n const location = frame.filename || frame.module || \"<unknown>\";\n const line = frame.lineNo ? `:${frame.lineNo}` : \"\";\n const col = frame.colNo != null ? `:${frame.colNo}` : \"\";\n return ` at ${func} (${location}${line}${col})`;\n }\n }\n}\n\n/**\n * Formats a Sentry event into a structured markdown output.\n * Includes error messages, stack traces, request info, and contextual data.\n *\n * @param event - The Sentry event to format\n * @returns Formatted markdown string\n */\nexport function formatEventOutput(event: Event) {\n let output = \"\";\n\n // Look for the primary error information\n const messageEntry = event.entries.find(e => e.type === \"message\");\n const exceptionEntry = event.entries.find(e => e.type === \"exception\");\n const threadsEntry = event.entries.find(e => e.type === \"threads\");\n const requestEntry = event.entries.find(e => e.type === \"request\");\n\n // Error message (if present)\n if (messageEntry) {\n output += formatMessageInterfaceOutput(event, messageEntry.data as z.infer<typeof MessageEntrySchema>);\n }\n\n // Stack trace (from exception or threads)\n if (exceptionEntry) {\n output += formatExceptionInterfaceOutput(event, exceptionEntry.data as z.infer<typeof ErrorEntrySchema>);\n } else if (threadsEntry) {\n output += formatThreadsInterfaceOutput(event, threadsEntry.data as z.infer<typeof ThreadsEntrySchema>);\n }\n\n // Request info (if HTTP error)\n if (requestEntry) {\n output += formatRequestInterfaceOutput(event, requestEntry.data as z.infer<typeof RequestEntrySchema>);\n }\n\n output += formatTags(event.tags);\n output += formatContexts(event.contexts);\n return output;\n}\n\n/**\n * Extracts the context line matching the frame's line number for inline display.\n * This is used in the full stacktrace view to show the actual line of code\n * that caused the error inline with the stack frame.\n *\n * @param frame - The stack frame containing context lines\n * @returns The line of code at the frame's line number, or empty string if not available\n */\nfunction renderInlineContext(frame: z.infer<typeof FrameInterface>): string {\n if (!frame.context?.length || !frame.lineNo) {\n return \"\";\n }\n\n const contextLine = frame.context.find(([lineNo]) => lineNo === frame.lineNo);\n return contextLine ? `\\n${contextLine[1]}` : \"\";\n}\n\n/**\n * Renders an enhanced view of a stack frame with context lines and variables.\n * Used for the \"Most Relevant Frame\" section to provide detailed information\n * about the most relevant application frame where the error occurred.\n *\n * @param frame - The stack frame to render with enhanced information\n * @param event - The Sentry event containing platform information for language detection\n * @returns Formatted string with frame header, context lines, and variables table\n */\nfunction renderEnhancedFrame(frame: z.infer<typeof FrameInterface>, event: Event): string {\n const parts: string[] = [];\n\n parts.push(\"**Most Relevant Frame:**\");\n parts.push(\"─────────────────────\");\n parts.push(formatFrameHeader(frame, undefined, event.platform));\n\n // Add context lines if available\n if (frame.context?.length) {\n const contextLines = renderContextLines(frame);\n if (contextLines) {\n parts.push(\"\");\n parts.push(contextLines);\n }\n }\n\n // Add variables table if available\n if (frame.vars && Object.keys(frame.vars).length > 0) {\n parts.push(\"\");\n parts.push(renderVariablesTable(frame.vars));\n }\n\n return parts.join(\"\\n\");\n}\n\nfunction formatExceptionInterfaceOutput(event: Event, data: z.infer<typeof ErrorEntrySchema>) {\n const parts: string[] = [];\n\n // Handle both single exception (value) and chained exceptions (values)\n const exceptions = data.values || (data.value ? [data.value] : []);\n\n if (exceptions.length === 0) {\n return \"\";\n }\n\n // For chained exceptions, they are typically ordered from innermost to outermost\n // We'll render them in reverse order (outermost first) to match how they occurred\n const isChained = exceptions.length > 1;\n\n // Create a copy before reversing to avoid mutating the original array\n [...exceptions].reverse().forEach((exception, index) => {\n if (!exception) return;\n\n // Add language-specific chain indicator for multiple exceptions\n if (isChained && index > 0) {\n parts.push(\"\");\n parts.push(getExceptionChainMessage(event.platform || null, index, exceptions.length));\n parts.push(\"\");\n }\n\n // Use the actual exception type and value as the heading\n const exceptionTitle = `${exception.type}${exception.value ? `: ${exception.value}` : \"\"}`;\n\n parts.push(index === 0 ? \"### Error\" : `### ${exceptionTitle}`);\n parts.push(\"\");\n\n // Add the error details in a code block for the first exception\n // to maintain backward compatibility\n if (index === 0) {\n parts.push(\"```\");\n parts.push(exceptionTitle);\n parts.push(\"```\");\n parts.push(\"\");\n }\n\n if (!exception.stacktrace || !exception.stacktrace.frames) {\n parts.push(\"**Stacktrace:**\");\n parts.push(\"```\");\n parts.push(\"No stacktrace available\");\n parts.push(\"```\");\n return;\n }\n\n const frames = exception.stacktrace.frames;\n\n // Only show enhanced frame for the first (outermost) exception to avoid overwhelming output\n if (index === 0) {\n const firstInAppFrame = findFirstInAppFrame(frames);\n if (firstInAppFrame && (firstInAppFrame.context?.length || firstInAppFrame.vars)) {\n parts.push(renderEnhancedFrame(firstInAppFrame, event));\n parts.push(\"\");\n parts.push(\"**Full Stacktrace:**\");\n parts.push(\"────────────────\");\n } else {\n parts.push(\"**Stacktrace:**\");\n }\n } else {\n parts.push(\"**Stacktrace:**\");\n }\n\n parts.push(\"```\");\n parts.push(\n frames\n .map(frame => {\n const header = formatFrameHeader(frame, undefined, event.platform);\n const context = renderInlineContext(frame);\n return `${header}${context}`;\n })\n .join(\"\\n\"),\n );\n parts.push(\"```\");\n });\n\n parts.push(\"\");\n parts.push(\"\");\n\n return parts.join(\"\\n\");\n}\n\n/**\n * Get the appropriate exception chain message based on the platform\n */\nfunction getExceptionChainMessage(platform: string | null, index: number, _totalExceptions: number): string {\n // Default message for unknown platforms\n const defaultMessage = \"**During handling of the above exception, another exception occurred:**\";\n\n if (!platform) {\n return defaultMessage;\n }\n\n switch (platform.toLowerCase()) {\n case \"python\":\n // Python has two distinct messages, but without additional metadata\n // we default to the implicit chaining message\n return \"**During handling of the above exception, another exception occurred:**\";\n\n case \"java\":\n return \"**Caused by:**\";\n\n case \"csharp\":\n case \"dotnet\":\n return \"**---> Inner Exception:**\";\n\n case \"ruby\":\n return \"**Caused by:**\";\n\n case \"go\":\n return \"**Wrapped error:**\";\n\n case \"rust\":\n return `**Caused by (${index}):**`;\n\n default:\n return defaultMessage;\n }\n}\n\nfunction formatRequestInterfaceOutput(_event: Event, data: z.infer<typeof RequestEntrySchema>) {\n if (!data.method || !data.url) {\n return \"\";\n }\n return `### HTTP Request\\n\\n**Method:** ${data.method}\\n**URL:** ${data.url}\\n\\n`;\n}\n\nfunction formatMessageInterfaceOutput(_event: Event, data: z.infer<typeof MessageEntrySchema>) {\n if (!data.formatted && !data.message) {\n return \"\";\n }\n const message = data.formatted || data.message || \"\";\n return `### Error\\n\\n${\"```\"}\\n${message}\\n${\"```\"}\\n\\n`;\n}\n\nfunction formatThreadsInterfaceOutput(event: Event, data: z.infer<typeof ThreadsEntrySchema>) {\n if (!data.values || data.values.length === 0) {\n return \"\";\n }\n\n // Find the crashed thread only\n const crashedThread = data.values.find(t => t.crashed);\n\n if (!crashedThread?.stacktrace?.frames) {\n return \"\";\n }\n\n const parts: string[] = [];\n\n // Include thread name if available\n if (crashedThread.name) {\n parts.push(`**Thread** (${crashedThread.name})`);\n parts.push(\"\");\n }\n\n const frames = crashedThread.stacktrace.frames;\n\n // Find and format the first in-app frame with enhanced view\n const firstInAppFrame = findFirstInAppFrame(frames);\n if (firstInAppFrame && (firstInAppFrame.context?.length || firstInAppFrame.vars)) {\n parts.push(renderEnhancedFrame(firstInAppFrame, event));\n parts.push(\"\");\n parts.push(\"**Full Stacktrace:**\");\n parts.push(\"────────────────\");\n } else {\n parts.push(\"**Stacktrace:**\");\n }\n\n parts.push(\"```\");\n parts.push(\n frames\n .map(frame => {\n const header = formatFrameHeader(frame, undefined, event.platform);\n const context = renderInlineContext(frame);\n return `${header}${context}`;\n })\n .join(\"\\n\"),\n );\n parts.push(\"```\");\n parts.push(\"\");\n\n return parts.join(\"\\n\");\n}\n\n/**\n * Renders surrounding source code context for a stack frame.\n * Shows a window of code lines around the error line with visual indicators.\n *\n * @param frame - The stack frame containing context lines\n * @param contextSize - Number of lines to show before and after the error line (default: 3)\n * @returns Formatted context lines with line numbers and arrow indicator for the error line\n */\nfunction renderContextLines(frame: z.infer<typeof FrameInterface>, contextSize = 3): string {\n if (!frame.context || frame.context.length === 0 || !frame.lineNo) {\n return \"\";\n }\n\n const lines: string[] = [];\n const errorLine = frame.lineNo;\n const maxLineNoWidth = Math.max(...frame.context.map(([lineNo]) => lineNo.toString().length));\n\n for (const [lineNo, code] of frame.context) {\n const isErrorLine = lineNo === errorLine;\n const lineNoStr = lineNo.toString().padStart(maxLineNoWidth, \" \");\n\n if (Math.abs(lineNo - errorLine) <= contextSize) {\n if (isErrorLine) {\n lines.push(` → ${lineNoStr} │ ${code}`);\n } else {\n lines.push(` ${lineNoStr} │ ${code}`);\n }\n }\n }\n\n return lines.join(\"\\n\");\n}\n\n/**\n * Formats a variable value for display in the variables table.\n * Handles different types appropriately and safely, converting complex objects\n * to readable representations and handling edge cases like circular references.\n *\n * @param value - The variable value to format (can be any type)\n * @param maxLength - Maximum length for stringified objects/arrays (default: 80)\n * @returns markdown string representation of the value\n */\nfunction formatVariableValue(value: unknown, maxLength = 80): string {\n try {\n if (typeof value === \"string\") {\n return `\"${value}\"`;\n }\n if (value === null) {\n return \"null\";\n }\n if (value === undefined) {\n return \"undefined\";\n }\n if (typeof value === \"object\") {\n const stringified = JSON.stringify(value);\n if (stringified.length > maxLength) {\n // Leave room for \", ...]\" or \", ...}\"\n const truncateAt = maxLength - 6;\n let truncated = stringified.substring(0, truncateAt);\n\n // Find the last complete element by looking for the last comma\n const lastComma = truncated.lastIndexOf(\",\");\n if (lastComma > 0) {\n truncated = truncated.substring(0, lastComma);\n }\n\n // Add the appropriate ending\n if (Array.isArray(value)) {\n return `${truncated}, ...]`;\n }\n return `${truncated}, ...}`;\n }\n return stringified;\n }\n return String(value);\n } catch {\n // Handle circular references or other stringify errors\n return `<${typeof value}>`;\n }\n}\n\n/**\n * Renders a table of local variables in a tree-like format.\n * Uses box-drawing characters to create a visual hierarchy of variables\n * and their values at the point where the error occurred.\n *\n * @param vars - Object containing variable names as keys and their values\n * @returns Formatted variables table with tree-style prefix characters\n */\nfunction renderVariablesTable(vars: Record<string, unknown>): string {\n const entries = Object.entries(vars);\n if (entries.length === 0) {\n return \"\";\n }\n\n const lines: string[] = [\"Local Variables:\"];\n const lastIndex = entries.length - 1;\n\n entries.forEach(([key, value], index) => {\n const prefix = index === lastIndex ? \"└─\" : \"├─\";\n const valueStr = formatVariableValue(value);\n lines.push(`${prefix} ${key}: ${valueStr}`);\n });\n\n return lines.join(\"\\n\");\n}\n\n/**\n * Finds the first application frame (in_app) in a stack trace.\n * Searches from the bottom of the stack (oldest frame) to find the first\n * frame that belongs to the user's application code rather than libraries.\n *\n * @param frames - Array of stack frames, typically in reverse chronological order\n * @returns The first in-app frame found, or undefined if none exist\n */\nfunction findFirstInAppFrame(frames: z.infer<typeof FrameInterface>[]): z.infer<typeof FrameInterface> | undefined {\n // Frames are usually in reverse order (most recent first)\n // We want the first in-app frame from the bottom\n for (let i = frames.length - 1; i >= 0; i--) {\n if (frames[i].inApp === true) {\n return frames[i];\n }\n }\n return undefined;\n}\n\nfunction formatTags(tags: z.infer<typeof EventSchema>[\"tags\"]) {\n if (!tags || tags.length === 0) {\n return \"\";\n }\n return `### Tags\\n\\n${tags.map(tag => `**${tag.key}**: ${tag.value}`).join(\"\\n\")}\\n\\n`;\n}\n\nfunction formatContexts(contexts: z.infer<typeof EventSchema>[\"contexts\"]) {\n if (!contexts || Object.keys(contexts).length === 0) {\n return \"\";\n }\n return `### Additional Context\\n\\nThese are additional context provided by the user when they're instrumenting their application.\\n\\n${Object.entries(\n contexts,\n )\n .map(\n ([name, data]) =>\n `**${name}**\\n${Object.entries(data)\n .filter(([key, _]) => key !== \"type\")\n .map(([key, value]) => {\n return `${key}: ${JSON.stringify(value, undefined, 2)}`;\n })\n .join(\"\\n\")}`,\n )\n .join(\"\\n\\n\")}\\n\\n`;\n}\n"],"names":[],"mappings":"AAoBA,MAAM,sBAA8C;AAAA,EAClD,SAAS;AAAA,EACT,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AACV;AAEA,MAAM,2BAAoD,CAAC,CAAC,yBAAyB,MAAM,CAAC;AAU5F,SAAS,eAAe,OAAuC,UAAkC;AAE/F,MAAI,MAAM,UAAU;AAClB,UAAM,MAAM,MAAM,SAAS,YAAA,EAAc,MAAM,UAAU,IAAI,CAAC;AAC9D,QAAI,OAAO,oBAAoB,GAAG,GAAG;AACnC,aAAO,oBAAoB,GAAG;AAAA,IAChC;AAAA,EACF;AAGA,MAAI,MAAM,QAAQ;AAChB,eAAW,CAAC,SAAS,QAAQ,KAAK,0BAA0B;AAC1D,UAAI,QAAQ,KAAK,MAAM,MAAM,GAAG;AAC9B,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAGA,SAAO,YAAY;AACrB;AAWA,SAAS,kBAAkB,OAAuC,YAAqB,UAA0B;AAC/G,QAAM,WAAW,eAAe,OAAO,QAAQ;AAE/C,UAAQ,UAAA;AAAA,IACN,KAAK,QAAQ;AAEX,YAAM,YAAY,MAAM,UAAU;AAClC,YAAM,SAAS,MAAM,YAAY;AACjC,YAAM,SAAS,MAAM,YAAY;AACjC,YAAM,WAAW,MAAM,SAAS,IAAI,MAAM,MAAM,KAAK;AACrD,aAAO,MAAM,SAAS,IAAI,MAAM,IAAI,MAAM,GAAG,QAAQ;AAAA,IACvD;AAAA,IAEA,KAAK,UAAU;AAEb,YAAM,OAAO,MAAM,YAAY,MAAM,WAAW,MAAM,UAAU;AAChE,YAAM,OAAO,MAAM,YAAY;AAC/B,YAAM,OAAO,MAAM,SAAS,UAAU,MAAM,MAAM,KAAK;AACvD,aAAO,WAAW,IAAI,IAAI,IAAI,QAAQ,IAAI;AAAA,IAC5C;AAAA,IAEA,KAAK,cAAc;AAGjB,aAAO,GAAG,CAAC,MAAM,UAAU,MAAM,QAAQ,MAAM,KAAK,EACjD,OAAO,CAAA,MAAK,CAAC,CAAC,CAAC,EACf,KAAK,GAAG,CAAC,GAAG,MAAM,WAAW,KAAK,MAAM,QAAQ,MAAM,EAAE;AAAA,IAC7D;AAAA,IAEA,KAAK,QAAQ;AAEX,YAAM,OAAO,MAAM,YAAY,MAAM,UAAU;AAC/C,YAAM,OAAO,MAAM,WAAW,MAAM,MAAM,QAAQ,OAAO;AACzD,YAAM,OAAO,MAAM,SAAS,IAAI,MAAM,MAAM,QAAQ;AACpD,aAAO,YAAY,IAAI,GAAG,IAAI,GAAG,IAAI;AAAA,IACvC;AAAA,IAEA,KAAK,OAAO;AAEV,YAAM,OAAO,MAAM,YAAY;AAC/B,YAAM,OAAO,MAAM,SAAS,IAAI,MAAM,MAAM,MAAM;AAClD,YAAM,OAAO,MAAM,YAAY;AAC/B,YAAM,SAAwD;AAC9D,aAAO,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,KAAK,IAAI;AAAA,IACzC;AAAA,IAEA,SAAS;AAEP,YAAM,OAAO,MAAM,YAAY;AAC/B,YAAM,WAAW,MAAM,YAAY,MAAM,UAAU;AACnD,YAAM,OAAO,MAAM,SAAS,IAAI,MAAM,MAAM,KAAK;AACjD,YAAM,MAAM,MAAM,SAAS,OAAO,IAAI,MAAM,KAAK,KAAK;AACtD,aAAO,UAAU,IAAI,KAAK,QAAQ,GAAG,IAAI,GAAG,GAAG;AAAA,IACjD;AAAA,EAAA;AAEJ;AASO,SAAS,kBAAkB,OAAc;AAC9C,MAAI,SAAS;AAGb,QAAM,eAAe,MAAM,QAAQ,KAAK,CAAA,MAAK,EAAE,SAAS,SAAS;AACjE,QAAM,iBAAiB,MAAM,QAAQ,KAAK,CAAA,MAAK,EAAE,SAAS,WAAW;AACrE,QAAM,eAAe,MAAM,QAAQ,KAAK,CAAA,MAAK,EAAE,SAAS,SAAS;AACjE,QAAM,eAAe,MAAM,QAAQ,KAAK,CAAA,MAAK,EAAE,SAAS,SAAS;AAGjE,MAAI,cAAc;AAChB,cAAU,6BAA6B,OAAO,aAAa,IAA0C;AAAA,EACvG;AAGA,MAAI,gBAAgB;AAClB,cAAU,+BAA+B,OAAO,eAAe,IAAwC;AAAA,EACzG,WAAW,cAAc;AACvB,cAAU,6BAA6B,OAAO,aAAa,IAA0C;AAAA,EACvG;AAGA,MAAI,cAAc;AAChB,cAAU,6BAA6B,OAAO,aAAa,IAA0C;AAAA,EACvG;AAEA,YAAU,WAAW,MAAM,IAAI;AAC/B,YAAU,eAAe,MAAM,QAAQ;AACvC,SAAO;AACT;AAUA,SAAS,oBAAoB,OAA+C;AAC1E,MAAI,CAAC,MAAM,SAAS,UAAU,CAAC,MAAM,QAAQ;AAC3C,WAAO;AAAA,EACT;AAEA,QAAM,cAAc,MAAM,QAAQ,KAAK,CAAC,CAAC,MAAM,MAAM,WAAW,MAAM,MAAM;AAC5E,SAAO,cAAc;AAAA,EAAK,YAAY,CAAC,CAAC,KAAK;AAC/C;AAWA,SAAS,oBAAoB,OAAuC,OAAsB;AACxF,QAAM,QAAkB,CAAA;AAExB,QAAM,KAAK,0BAA0B;AACrC,QAAM,KAAK,uBAAuB;AAClC,QAAM,KAAK,kBAAkB,OAAO,QAAW,MAAM,QAAQ,CAAC;AAG9D,MAAI,MAAM,SAAS,QAAQ;AACzB,UAAM,eAAe,mBAAmB,KAAK;AAC7C,QAAI,cAAc;AAChB,YAAM,KAAK,EAAE;AACb,YAAM,KAAK,YAAY;AAAA,IACzB;AAAA,EACF;AAGA,MAAI,MAAM,QAAQ,OAAO,KAAK,MAAM,IAAI,EAAE,SAAS,GAAG;AACpD,UAAM,KAAK,EAAE;AACb,UAAM,KAAK,qBAAqB,MAAM,IAAI,CAAC;AAAA,EAC7C;AAEA,SAAO,MAAM,KAAK,IAAI;AACxB;AAEA,SAAS,+BAA+B,OAAc,MAAwC;AAC5F,QAAM,QAAkB,CAAA;AAGxB,QAAM,aAAa,KAAK,WAAW,KAAK,QAAQ,CAAC,KAAK,KAAK,IAAI;AAE/D,MAAI,WAAW,WAAW,GAAG;AAC3B,WAAO;AAAA,EACT;AAIA,QAAM,YAAY,WAAW,SAAS;AAGtC,GAAC,GAAG,UAAU,EAAE,QAAA,EAAU,QAAQ,CAAC,WAAW,UAAU;AACtD,QAAI,CAAC,UAAW;AAGhB,QAAI,aAAa,QAAQ,GAAG;AAC1B,YAAM,KAAK,EAAE;AACb,YAAM,KAAK,yBAAyB,MAAM,YAAY,MAAM,OAAO,WAAW,MAAM,CAAC;AACrF,YAAM,KAAK,EAAE;AAAA,IACf;AAGA,UAAM,iBAAiB,GAAG,UAAU,IAAI,GAAG,UAAU,QAAQ,KAAK,UAAU,KAAK,KAAK,EAAE;AAExF,UAAM,KAAK,UAAU,IAAI,cAAc,OAAO,cAAc,EAAE;AAC9D,UAAM,KAAK,EAAE;AAIb,QAAI,UAAU,GAAG;AACf,YAAM,KAAK,KAAK;AAChB,YAAM,KAAK,cAAc;AACzB,YAAM,KAAK,KAAK;AAChB,YAAM,KAAK,EAAE;AAAA,IACf;AAEA,QAAI,CAAC,UAAU,cAAc,CAAC,UAAU,WAAW,QAAQ;AACzD,YAAM,KAAK,iBAAiB;AAC5B,YAAM,KAAK,KAAK;AAChB,YAAM,KAAK,yBAAyB;AACpC,YAAM,KAAK,KAAK;AAChB;AAAA,IACF;AAEA,UAAM,SAAS,UAAU,WAAW;AAGpC,QAAI,UAAU,GAAG;AACf,YAAM,kBAAkB,oBAAoB,MAAM;AAClD,UAAI,oBAAoB,gBAAgB,SAAS,UAAU,gBAAgB,OAAO;AAChF,cAAM,KAAK,oBAAoB,iBAAiB,KAAK,CAAC;AACtD,cAAM,KAAK,EAAE;AACb,cAAM,KAAK,sBAAsB;AACjC,cAAM,KAAK,kBAAkB;AAAA,MAC/B,OAAO;AACL,cAAM,KAAK,iBAAiB;AAAA,MAC9B;AAAA,IACF,OAAO;AACL,YAAM,KAAK,iBAAiB;AAAA,IAC9B;AAEA,UAAM,KAAK,KAAK;AAChB,UAAM;AAAA,MACJ,OACG,IAAI,CAAA,UAAS;AACZ,cAAM,SAAS,kBAAkB,OAAO,QAAW,MAAM,QAAQ;AACjE,cAAM,UAAU,oBAAoB,KAAK;AACzC,eAAO,GAAG,MAAM,GAAG,OAAO;AAAA,MAC5B,CAAC,EACA,KAAK,IAAI;AAAA,IAAA;AAEd,UAAM,KAAK,KAAK;AAAA,EAClB,CAAC;AAED,QAAM,KAAK,EAAE;AACb,QAAM,KAAK,EAAE;AAEb,SAAO,MAAM,KAAK,IAAI;AACxB;AAKA,SAAS,yBAAyB,UAAyB,OAAe,kBAAkC;AAE1G,QAAM,iBAAiB;AAEvB,MAAI,CAAC,UAAU;AACb,WAAO;AAAA,EACT;AAEA,UAAQ,SAAS,eAAY;AAAA,IAC3B,KAAK;AAGH,aAAO;AAAA,IAET,KAAK;AACH,aAAO;AAAA,IAET,KAAK;AAAA,IACL,KAAK;AACH,aAAO;AAAA,IAET,KAAK;AACH,aAAO;AAAA,IAET,KAAK;AACH,aAAO;AAAA,IAET,KAAK;AACH,aAAO,gBAAgB,KAAK;AAAA,IAE9B;AACE,aAAO;AAAA,EAAA;AAEb;AAEA,SAAS,6BAA6B,QAAe,MAA0C;AAC7F,MAAI,CAAC,KAAK,UAAU,CAAC,KAAK,KAAK;AAC7B,WAAO;AAAA,EACT;AACA,SAAO;AAAA;AAAA,cAAmC,KAAK,MAAM;AAAA,WAAc,KAAK,GAAG;AAAA;AAAA;AAC7E;AAEA,SAAS,6BAA6B,QAAe,MAA0C;AAC7F,MAAI,CAAC,KAAK,aAAa,CAAC,KAAK,SAAS;AACpC,WAAO;AAAA,EACT;AACA,QAAM,UAAU,KAAK,aAAa,KAAK,WAAW;AAClD,SAAO;AAAA;AAAA,EAAgB,KAAK;AAAA,EAAK,OAAO;AAAA,EAAK,KAAK;AAAA;AAAA;AACpD;AAEA,SAAS,6BAA6B,OAAc,MAA0C;AAC5F,MAAI,CAAC,KAAK,UAAU,KAAK,OAAO,WAAW,GAAG;AAC5C,WAAO;AAAA,EACT;AAGA,QAAM,gBAAgB,KAAK,OAAO,KAAK,CAAA,MAAK,EAAE,OAAO;AAErD,MAAI,CAAC,eAAe,YAAY,QAAQ;AACtC,WAAO;AAAA,EACT;AAEA,QAAM,QAAkB,CAAA;AAGxB,MAAI,cAAc,MAAM;AACtB,UAAM,KAAK,eAAe,cAAc,IAAI,GAAG;AAC/C,UAAM,KAAK,EAAE;AAAA,EACf;AAEA,QAAM,SAAS,cAAc,WAAW;AAGxC,QAAM,kBAAkB,oBAAoB,MAAM;AAClD,MAAI,oBAAoB,gBAAgB,SAAS,UAAU,gBAAgB,OAAO;AAChF,UAAM,KAAK,oBAAoB,iBAAiB,KAAK,CAAC;AACtD,UAAM,KAAK,EAAE;AACb,UAAM,KAAK,sBAAsB;AACjC,UAAM,KAAK,kBAAkB;AAAA,EAC/B,OAAO;AACL,UAAM,KAAK,iBAAiB;AAAA,EAC9B;AAEA,QAAM,KAAK,KAAK;AAChB,QAAM;AAAA,IACJ,OACG,IAAI,CAAA,UAAS;AACZ,YAAM,SAAS,kBAAkB,OAAO,QAAW,MAAM,QAAQ;AACjE,YAAM,UAAU,oBAAoB,KAAK;AACzC,aAAO,GAAG,MAAM,GAAG,OAAO;AAAA,IAC5B,CAAC,EACA,KAAK,IAAI;AAAA,EAAA;AAEd,QAAM,KAAK,KAAK;AAChB,QAAM,KAAK,EAAE;AAEb,SAAO,MAAM,KAAK,IAAI;AACxB;AAUA,SAAS,mBAAmB,OAAuC,cAAc,GAAW;AAC1F,MAAI,CAAC,MAAM,WAAW,MAAM,QAAQ,WAAW,KAAK,CAAC,MAAM,QAAQ;AACjE,WAAO;AAAA,EACT;AAEA,QAAM,QAAkB,CAAA;AACxB,QAAM,YAAY,MAAM;AACxB,QAAM,iBAAiB,KAAK,IAAI,GAAG,MAAM,QAAQ,IAAI,CAAC,CAAC,MAAM,MAAM,OAAO,SAAA,EAAW,MAAM,CAAC;AAE5F,aAAW,CAAC,QAAQ,IAAI,KAAK,MAAM,SAAS;AAC1C,UAAM,cAAc,WAAW;AAC/B,UAAM,YAAY,OAAO,SAAA,EAAW,SAAS,gBAAgB,GAAG;AAEhE,QAAI,KAAK,IAAI,SAAS,SAAS,KAAK,aAAa;AAC/C,UAAI,aAAa;AACf,cAAM,KAAK,OAAO,SAAS,MAAM,IAAI,EAAE;AAAA,MACzC,OAAO;AACL,cAAM,KAAK,OAAO,SAAS,MAAM,IAAI,EAAE;AAAA,MACzC;AAAA,IACF;AAAA,EACF;AAEA,SAAO,MAAM,KAAK,IAAI;AACxB;AAWA,SAAS,oBAAoB,OAAgB,YAAY,IAAY;AACnE,MAAI;AACF,QAAI,OAAO,UAAU,UAAU;AAC7B,aAAO,IAAI,KAAK;AAAA,IAClB;AACA,QAAI,UAAU,MAAM;AAClB,aAAO;AAAA,IACT;AACA,QAAI,UAAU,QAAW;AACvB,aAAO;AAAA,IACT;AACA,QAAI,OAAO,UAAU,UAAU;AAC7B,YAAM,cAAc,KAAK,UAAU,KAAK;AACxC,UAAI,YAAY,SAAS,WAAW;AAElC,cAAM,aAAa,YAAY;AAC/B,YAAI,YAAY,YAAY,UAAU,GAAG,UAAU;AAGnD,cAAM,YAAY,UAAU,YAAY,GAAG;AAC3C,YAAI,YAAY,GAAG;AACjB,sBAAY,UAAU,UAAU,GAAG,SAAS;AAAA,QAC9C;AAGA,YAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,iBAAO,GAAG,SAAS;AAAA,QACrB;AACA,eAAO,GAAG,SAAS;AAAA,MACrB;AACA,aAAO;AAAA,IACT;AACA,WAAO,OAAO,KAAK;AAAA,EACrB,QAAQ;AAEN,WAAO,IAAI,OAAO,KAAK;AAAA,EACzB;AACF;AAUA,SAAS,qBAAqB,MAAuC;AACnE,QAAM,UAAU,OAAO,QAAQ,IAAI;AACnC,MAAI,QAAQ,WAAW,GAAG;AACxB,WAAO;AAAA,EACT;AAEA,QAAM,QAAkB,CAAC,kBAAkB;AAC3C,QAAM,YAAY,QAAQ,SAAS;AAEnC,UAAQ,QAAQ,CAAC,CAAC,KAAK,KAAK,GAAG,UAAU;AACvC,UAAM,SAAS,UAAU,YAAY,OAAO;AAC5C,UAAM,WAAW,oBAAoB,KAAK;AAC1C,UAAM,KAAK,GAAG,MAAM,IAAI,GAAG,KAAK,QAAQ,EAAE;AAAA,EAC5C,CAAC;AAED,SAAO,MAAM,KAAK,IAAI;AACxB;AAUA,SAAS,oBAAoB,QAAsF;AAGjH,WAAS,IAAI,OAAO,SAAS,GAAG,KAAK,GAAG,KAAK;AAC3C,QAAI,OAAO,CAAC,EAAE,UAAU,MAAM;AAC5B,aAAO,OAAO,CAAC;AAAA,IACjB;AAAA,EACF;AACA,SAAO;AACT;AAEA,SAAS,WAAW,MAA2C;AAC7D,MAAI,CAAC,QAAQ,KAAK,WAAW,GAAG;AAC9B,WAAO;AAAA,EACT;AACA,SAAO;AAAA;AAAA,EAAe,KAAK,IAAI,CAAA,QAAO,KAAK,IAAI,GAAG,OAAO,IAAI,KAAK,EAAE,EAAE,KAAK,IAAI,CAAC;AAAA;AAAA;AAClF;AAEA,SAAS,eAAe,UAAmD;AACzE,MAAI,CAAC,YAAY,OAAO,KAAK,QAAQ,EAAE,WAAW,GAAG;AACnD,WAAO;AAAA,EACT;AACA,SAAO;AAAA;AAAA;AAAA;AAAA,EAAgI,OAAO;AAAA,IAC5I;AAAA,EAAA,EAEC;AAAA,IACC,CAAC,CAAC,MAAM,IAAI,MACV,KAAK,IAAI;AAAA,EAAO,OAAO,QAAQ,IAAI,EAChC,OAAO,CAAC,CAAC,KAAK,CAAC,MAAM,QAAQ,MAAM,EACnC,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACrB,aAAO,GAAG,GAAG,KAAK,KAAK,UAAU,OAAO,QAAW,CAAC,CAAC;AAAA,IACvD,CAAC,EACA,KAAK,IAAI,CAAC;AAAA,EAAA,EAEhB,KAAK,MAAM,CAAC;AAAA;AAAA;AACjB;"}
1
+ {"version":3,"file":"event.js","sources":["../../../../src/server/formatters/md/event.ts"],"sourcesContent":["/**\n * LLM response formatting utilities for Sentry data.\n *\n * Converts Sentry API responses into structured markdown format optimized\n * for LLM consumption. Handles stacktraces, event details, issue summaries,\n * and contextual information with consistent formatting patterns.\n */\nimport type { z } from \"zod\";\nimport type {\n ErrorEntrySchema,\n EventSchema,\n FrameInterface,\n MessageEntrySchema,\n RequestEntrySchema,\n ThreadsEntrySchema,\n} from \"../schema.ts\";\n\nexport type Event = z.infer<typeof EventSchema>;\n\n// Language detection mappings\nconst LANGUAGE_EXTENSIONS: Record<string, string> = {\n \".java\": \"java\",\n \".py\": \"python\",\n \".js\": \"javascript\",\n \".jsx\": \"javascript\",\n \".ts\": \"javascript\",\n \".tsx\": \"javascript\",\n \".rb\": \"ruby\",\n \".php\": \"php\",\n};\n\nconst LANGUAGE_MODULE_PATTERNS: Array<[RegExp, string]> = [[/^(java\\.|com\\.|org\\.)/, \"java\"]];\n\n/**\n * Detects the programming language of a stack frame based on the file extension.\n * Falls back to the platform parameter if no filename is available or extension is unrecognized.\n *\n * @param frame - The stack frame containing file and location information\n * @param platform - Optional platform hint to use as fallback\n * @returns The detected language or platform fallback or \"unknown\"\n */\nfunction detectLanguage(frame: z.infer<typeof FrameInterface>, platform?: string | null): string {\n // Check filename extensions\n if (frame.filename) {\n const ext = frame.filename.toLowerCase().match(/\\.[^.]+$/)?.[0];\n if (ext && LANGUAGE_EXTENSIONS[ext]) {\n return LANGUAGE_EXTENSIONS[ext];\n }\n }\n\n // Check module patterns\n if (frame.module) {\n for (const [pattern, language] of LANGUAGE_MODULE_PATTERNS) {\n if (pattern.test(frame.module)) {\n return language;\n }\n }\n }\n\n // Fallback to platform or unknown\n return platform || \"unknown\";\n}\n\n/**\n * Formats a stack frame into a language-specific string representation.\n * Different languages have different conventions for displaying stack traces.\n *\n * @param frame - The stack frame to format\n * @param frameIndex - Optional frame index for languages that display frame numbers\n * @param platform - Optional platform hint for language detection fallback\n * @returns Formatted stack frame string\n */\nfunction formatFrameHeader(frame: z.infer<typeof FrameInterface>, frameIndex?: number, platform?: string | null) {\n const language = detectLanguage(frame, platform);\n\n switch (language) {\n case \"java\": {\n // at com.example.ClassName.methodName(FileName.java:123)\n const className = frame.module || \"UnknownClass\";\n const method = frame.function || \"<unknown>\";\n const source = frame.filename || \"Unknown Source\";\n const location = frame.lineNo ? `:${frame.lineNo}` : \"\";\n return `at ${className}.${method}(${source}${location})`;\n }\n\n case \"python\": {\n // File \"/path/to/file.py\", line 42, in function_name\n const file = frame.filename || frame.absPath || frame.module || \"<unknown>\";\n const func = frame.function || \"<module>\";\n const line = frame.lineNo ? `, line ${frame.lineNo}` : \"\";\n return ` File \"${file}\"${line}, in ${func}`;\n }\n\n case \"javascript\": {\n // Original compact format: filename:line:col (function)\n // This preserves backward compatibility\n return `${[frame.filename, frame.lineNo, frame.colNo]\n .filter(i => !!i)\n .join(\":\")}${frame.function ? ` (${frame.function})` : \"\"}`;\n }\n\n case \"ruby\": {\n // from /path/to/file.rb:42:in `method_name'\n const file = frame.filename || frame.module || \"<unknown>\";\n const func = frame.function ? ` \\`${frame.function}\\`` : \"\";\n const line = frame.lineNo ? `:${frame.lineNo}:in` : \"\";\n return ` from ${file}${line}${func}`;\n }\n\n case \"php\": {\n // #0 /path/to/file.php(42): functionName()\n const file = frame.filename || \"<unknown>\";\n const line = frame.lineNo ? `(${frame.lineNo})` : \"\";\n const func = frame.function || \"<unknown>\";\n const prefix = frameIndex !== undefined ? `#${frameIndex} ` : \"\";\n return `${prefix}${file}${line}: ${func}()`;\n }\n\n default: {\n // Generic format for unknown languages\n const func = frame.function || \"<unknown>\";\n const location = frame.filename || frame.module || \"<unknown>\";\n const line = frame.lineNo ? `:${frame.lineNo}` : \"\";\n const col = frame.colNo != null ? `:${frame.colNo}` : \"\";\n return ` at ${func} (${location}${line}${col})`;\n }\n }\n}\n\n/**\n * Formats a Sentry event into a structured markdown output.\n * Includes error messages, stack traces, request info, and contextual data.\n *\n * @param event - The Sentry event to format\n * @returns Formatted markdown string\n */\nexport function formatEventOutput(event: Event) {\n let output = \"\";\n\n // Look for the primary error information\n const messageEntry = event.entries.find(e => e.type === \"message\");\n const exceptionEntry = event.entries.find(e => e.type === \"exception\");\n const threadsEntry = event.entries.find(e => e.type === \"threads\");\n const requestEntry = event.entries.find(e => e.type === \"request\");\n\n // Error message (if present)\n if (messageEntry) {\n output += formatMessageInterfaceOutput(event, messageEntry.data as z.infer<typeof MessageEntrySchema>);\n }\n\n // Stack trace (from exception or threads)\n if (exceptionEntry) {\n output += formatExceptionInterfaceOutput(event, exceptionEntry.data as z.infer<typeof ErrorEntrySchema>);\n } else if (threadsEntry) {\n output += formatThreadsInterfaceOutput(event, threadsEntry.data as z.infer<typeof ThreadsEntrySchema>);\n }\n\n // Request info (if HTTP error)\n if (requestEntry) {\n output += formatRequestInterfaceOutput(event, requestEntry.data as z.infer<typeof RequestEntrySchema>);\n }\n\n output += formatTags(event.tags);\n output += formatContexts(event.contexts);\n return output;\n}\n\n/**\n * Extracts the context line matching the frame's line number for inline display.\n * This is used in the full stacktrace view to show the actual line of code\n * that caused the error inline with the stack frame.\n *\n * @param frame - The stack frame containing context lines\n * @returns The line of code at the frame's line number, or empty string if not available\n */\nfunction renderInlineContext(frame: z.infer<typeof FrameInterface>): string {\n if (!frame.context?.length || !frame.lineNo) {\n return \"\";\n }\n\n const contextLine = frame.context.find(([lineNo]) => lineNo === frame.lineNo);\n return contextLine ? `\\n${contextLine[1]}` : \"\";\n}\n\n/**\n * Renders an enhanced view of a stack frame with context lines and variables.\n * Used for the \"Most Relevant Frame\" section to provide detailed information\n * about the most relevant application frame where the error occurred.\n *\n * @param frame - The stack frame to render with enhanced information\n * @param event - The Sentry event containing platform information for language detection\n * @returns Formatted string with frame header, context lines, and variables table\n */\nfunction renderEnhancedFrame(frame: z.infer<typeof FrameInterface>, event: Event): string {\n const parts: string[] = [];\n\n parts.push(\"**Most Relevant Frame:**\");\n parts.push(\"─────────────────────\");\n parts.push(formatFrameHeader(frame, undefined, event.platform));\n\n // Add context lines if available\n if (frame.context?.length) {\n const contextLines = renderContextLines(frame);\n if (contextLines) {\n parts.push(\"\");\n parts.push(contextLines);\n }\n }\n\n // Add variables table if available\n if (frame.vars && Object.keys(frame.vars).length > 0) {\n parts.push(\"\");\n parts.push(renderVariablesTable(frame.vars));\n }\n\n return parts.join(\"\\n\");\n}\n\nfunction formatExceptionInterfaceOutput(event: Event, data: z.infer<typeof ErrorEntrySchema>) {\n const parts: string[] = [];\n\n // Handle both single exception (value) and chained exceptions (values)\n const exceptions = data.values || (data.value ? [data.value] : []);\n\n if (exceptions.length === 0) {\n return \"\";\n }\n\n // For chained exceptions, they are typically ordered from innermost to outermost\n // We'll render them in reverse order (outermost first) to match how they occurred\n const isChained = exceptions.length > 1;\n\n // Create a copy before reversing to avoid mutating the original array\n [...exceptions].reverse().forEach((exception, index) => {\n if (!exception) return;\n\n // Add language-specific chain indicator for multiple exceptions\n if (isChained && index > 0) {\n parts.push(\"\");\n parts.push(getExceptionChainMessage(event.platform || null, index, exceptions.length));\n parts.push(\"\");\n }\n\n // Use the actual exception type and value as the heading\n const exceptionTitle = `${exception.type}${exception.value ? `: ${exception.value}` : \"\"}`;\n\n parts.push(index === 0 ? \"### Error\" : `### ${exceptionTitle}`);\n parts.push(\"\");\n\n // Add the error details in a code block for the first exception\n // to maintain backward compatibility\n if (index === 0) {\n parts.push(\"```\");\n parts.push(exceptionTitle);\n parts.push(\"```\");\n parts.push(\"\");\n }\n\n if (!exception.stacktrace || !exception.stacktrace.frames) {\n parts.push(\"**Stacktrace:**\");\n parts.push(\"```\");\n parts.push(\"No stacktrace available\");\n parts.push(\"```\");\n return;\n }\n\n const frames = exception.stacktrace.frames;\n\n // Only show enhanced frame for the first (outermost) exception to avoid overwhelming output\n if (index === 0) {\n const firstInAppFrame = findFirstInAppFrame(frames);\n if (firstInAppFrame && (firstInAppFrame.context?.length || firstInAppFrame.vars)) {\n parts.push(renderEnhancedFrame(firstInAppFrame, event));\n parts.push(\"\");\n parts.push(\"**Full Stacktrace:**\");\n parts.push(\"────────────────\");\n } else {\n parts.push(\"**Stacktrace:**\");\n }\n } else {\n parts.push(\"**Stacktrace:**\");\n }\n\n parts.push(\"```\");\n parts.push(\n frames\n .map(frame => {\n const header = formatFrameHeader(frame, undefined, event.platform);\n const context = renderInlineContext(frame);\n return `${header}${context}`;\n })\n .join(\"\\n\"),\n );\n parts.push(\"```\");\n });\n\n parts.push(\"\");\n parts.push(\"\");\n\n return parts.join(\"\\n\");\n}\n\n/**\n * Get the appropriate exception chain message based on the platform\n */\nfunction getExceptionChainMessage(platform: string | null, index: number, _totalExceptions: number): string {\n // Default message for unknown platforms\n const defaultMessage = \"**During handling of the above exception, another exception occurred:**\";\n\n if (!platform) {\n return defaultMessage;\n }\n\n switch (platform.toLowerCase()) {\n case \"python\":\n // Python has two distinct messages, but without additional metadata\n // we default to the implicit chaining message\n return \"**During handling of the above exception, another exception occurred:**\";\n\n case \"java\":\n return \"**Caused by:**\";\n\n case \"csharp\":\n case \"dotnet\":\n return \"**---> Inner Exception:**\";\n\n case \"ruby\":\n return \"**Caused by:**\";\n\n case \"go\":\n return \"**Wrapped error:**\";\n\n case \"rust\":\n return `**Caused by (${index}):**`;\n\n default:\n return defaultMessage;\n }\n}\n\nfunction formatRequestInterfaceOutput(_event: Event, data: z.infer<typeof RequestEntrySchema>) {\n if (!data.method || !data.url) {\n return \"\";\n }\n return `### HTTP Request\\n\\n**Method:** ${data.method}\\n**URL:** ${data.url}\\n\\n`;\n}\n\nfunction formatMessageInterfaceOutput(_event: Event, data: z.infer<typeof MessageEntrySchema>) {\n if (!data.formatted && !data.message) {\n return \"\";\n }\n const message = data.formatted || data.message || \"\";\n return `### Error\\n\\n${\"```\"}\\n${message}\\n${\"```\"}\\n\\n`;\n}\n\nfunction formatThreadsInterfaceOutput(event: Event, data: z.infer<typeof ThreadsEntrySchema>) {\n if (!data.values || data.values.length === 0) {\n return \"\";\n }\n\n // Find the crashed thread only\n const crashedThread = data.values.find(t => t.crashed);\n\n if (!crashedThread?.stacktrace?.frames) {\n return \"\";\n }\n\n const parts: string[] = [];\n\n // Include thread name if available\n if (crashedThread.name) {\n parts.push(`**Thread** (${crashedThread.name})`);\n parts.push(\"\");\n }\n\n const frames = crashedThread.stacktrace.frames;\n\n // Find and format the first in-app frame with enhanced view\n const firstInAppFrame = findFirstInAppFrame(frames);\n if (firstInAppFrame && (firstInAppFrame.context?.length || firstInAppFrame.vars)) {\n parts.push(renderEnhancedFrame(firstInAppFrame, event));\n parts.push(\"\");\n parts.push(\"**Full Stacktrace:**\");\n parts.push(\"────────────────\");\n } else {\n parts.push(\"**Stacktrace:**\");\n }\n\n parts.push(\"```\");\n parts.push(\n frames\n .map(frame => {\n const header = formatFrameHeader(frame, undefined, event.platform);\n const context = renderInlineContext(frame);\n return `${header}${context}`;\n })\n .join(\"\\n\"),\n );\n parts.push(\"```\");\n parts.push(\"\");\n\n return parts.join(\"\\n\");\n}\n\n/**\n * Renders surrounding source code context for a stack frame.\n * Shows a window of code lines around the error line with visual indicators.\n *\n * @param frame - The stack frame containing context lines\n * @param contextSize - Number of lines to show before and after the error line (default: 3)\n * @returns Formatted context lines with line numbers and arrow indicator for the error line\n */\nfunction renderContextLines(frame: z.infer<typeof FrameInterface>, contextSize = 3): string {\n if (!frame.context || frame.context.length === 0 || !frame.lineNo) {\n return \"\";\n }\n\n const lines: string[] = [];\n const errorLine = frame.lineNo;\n const maxLineNoWidth = Math.max(...frame.context.map(([lineNo]) => lineNo.toString().length));\n\n for (const [lineNo, code] of frame.context) {\n const isErrorLine = lineNo === errorLine;\n const lineNoStr = lineNo.toString().padStart(maxLineNoWidth, \" \");\n\n if (Math.abs(lineNo - errorLine) <= contextSize) {\n if (isErrorLine) {\n lines.push(` → ${lineNoStr} │ ${code}`);\n } else {\n lines.push(` ${lineNoStr} │ ${code}`);\n }\n }\n }\n\n return lines.join(\"\\n\");\n}\n\n/**\n * Formats a variable value for display in the variables table.\n * Handles different types appropriately and safely, converting complex objects\n * to readable representations and handling edge cases like circular references.\n *\n * @param value - The variable value to format (can be any type)\n * @param maxLength - Maximum length for stringified objects/arrays (default: 80)\n * @returns markdown string representation of the value\n */\nfunction formatVariableValue(value: unknown, maxLength = 80): string {\n try {\n if (typeof value === \"string\") {\n return `\"${value}\"`;\n }\n if (value === null) {\n return \"null\";\n }\n if (value === undefined) {\n return \"undefined\";\n }\n if (typeof value === \"object\") {\n const stringified = JSON.stringify(value);\n if (stringified.length > maxLength) {\n // Leave room for \", ...]\" or \", ...}\"\n const truncateAt = maxLength - 6;\n let truncated = stringified.substring(0, truncateAt);\n\n // Find the last complete element by looking for the last comma\n const lastComma = truncated.lastIndexOf(\",\");\n if (lastComma > 0) {\n truncated = truncated.substring(0, lastComma);\n }\n\n // Add the appropriate ending\n if (Array.isArray(value)) {\n return `${truncated}, ...]`;\n }\n return `${truncated}, ...}`;\n }\n return stringified;\n }\n return String(value);\n } catch {\n // Handle circular references or other stringify errors\n return `<${typeof value}>`;\n }\n}\n\n/**\n * Renders a table of local variables in a tree-like format.\n * Uses box-drawing characters to create a visual hierarchy of variables\n * and their values at the point where the error occurred.\n *\n * @param vars - Object containing variable names as keys and their values\n * @returns Formatted variables table with tree-style prefix characters\n */\nfunction renderVariablesTable(vars: Record<string, unknown>): string {\n const entries = Object.entries(vars);\n if (entries.length === 0) {\n return \"\";\n }\n\n const lines: string[] = [\"Local Variables:\"];\n const lastIndex = entries.length - 1;\n\n entries.forEach(([key, value], index) => {\n const prefix = index === lastIndex ? \"└─\" : \"├─\";\n const valueStr = formatVariableValue(value);\n lines.push(`${prefix} ${key}: ${valueStr}`);\n });\n\n return lines.join(\"\\n\");\n}\n\n/**\n * Finds the first application frame (in_app) in a stack trace.\n * Searches from the bottom of the stack (oldest frame) to find the first\n * frame that belongs to the user's application code rather than libraries.\n *\n * @param frames - Array of stack frames, typically in reverse chronological order\n * @returns The first in-app frame found, or undefined if none exist\n */\nfunction findFirstInAppFrame(frames: z.infer<typeof FrameInterface>[]): z.infer<typeof FrameInterface> | undefined {\n // Frames are usually in reverse order (most recent first)\n // We want the first in-app frame from the bottom\n for (let i = frames.length - 1; i >= 0; i--) {\n if (frames[i].inApp === true) {\n return frames[i];\n }\n }\n return undefined;\n}\n\nfunction formatTags(tags: z.infer<typeof EventSchema>[\"tags\"]) {\n if (!tags || tags.length === 0) {\n return \"\";\n }\n return `### Tags\\n\\n${tags.map(tag => `**${tag.key}**: ${tag.value}`).join(\"\\n\")}\\n\\n`;\n}\n\nfunction formatContexts(contexts: z.infer<typeof EventSchema>[\"contexts\"]) {\n if (!contexts || Object.keys(contexts).length === 0) {\n return \"\";\n }\n return `### Additional Context\\n\\nThese are additional context provided by the user when they're instrumenting their application.\\n\\n${Object.entries(\n contexts,\n )\n .map(\n ([name, data]) =>\n `**${name}**\\n${Object.entries(data)\n .filter(([key, _]) => key !== \"type\")\n .map(([key, value]) => {\n return `${key}: ${JSON.stringify(value, undefined, 2)}`;\n })\n .join(\"\\n\")}`,\n )\n .join(\"\\n\\n\")}\\n\\n`;\n}\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,16 @@
1
+ ;
2
+ !function() {
3
+ try {
4
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
5
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "07c7f71c-5201-4f0b-ad81-eae990612a3f", e._sentryDebugIdIdentifier = "sentry-dbid-07c7f71c-5201-4f0b-ad81-eae990612a3f");
6
+ } catch (e2) {
7
+ }
8
+ }();
1
9
  import { isTraceEvent, isLogEvent, isErrorEvent } from "../../parser/helpers.js";
2
10
  import { formatError } from "./errors.js";
3
11
  import { formatLog } from "./logs.js";
4
12
  import { formatTrace } from "./traces.js";
13
+ import "../../../_virtual/_sentry-release-injection-file.js";
5
14
  const formatters = {
6
15
  event: { typeGuard: isErrorEvent, format: formatError },
7
16
  log: { typeGuard: isLogEvent, format: formatLog },
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/server/formatters/md/index.ts"],"sourcesContent":["import { isErrorEvent, isLogEvent, isTraceEvent } from \"../../parser/helpers.ts\";\nimport type { FormatterRegistry } from \"../types.ts\";\nimport { formatError } from \"./errors.ts\";\nimport { formatLog } from \"./logs.ts\";\nimport { formatTrace } from \"./traces.ts\";\n\nexport const formatters: FormatterRegistry = {\n event: { typeGuard: isErrorEvent, format: formatError },\n log: { typeGuard: isLogEvent, format: formatLog },\n transaction: { typeGuard: isTraceEvent, format: formatTrace },\n};\n"],"names":[],"mappings":";;;;AAMO,MAAM,aAAgC;AAAA,EAC3C,OAAO,EAAE,WAAW,cAAc,QAAQ,YAAA;AAAA,EAC1C,KAAK,EAAE,WAAW,YAAY,QAAQ,UAAA;AAAA,EACtC,aAAa,EAAE,WAAW,cAAc,QAAQ,YAAA;AAClD;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/server/formatters/md/index.ts"],"sourcesContent":["import { isErrorEvent, isLogEvent, isTraceEvent } from \"../../parser/helpers.ts\";\nimport type { FormatterRegistry } from \"../types.ts\";\nimport { formatError } from \"./errors.ts\";\nimport { formatLog } from \"./logs.ts\";\nimport { formatTrace } from \"./traces.ts\";\n\nexport const formatters: FormatterRegistry = {\n event: { typeGuard: isErrorEvent, format: formatError },\n log: { typeGuard: isLogEvent, format: formatLog },\n transaction: { typeGuard: isTraceEvent, format: formatTrace },\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;AAMO,MAAM,aAAgC;AAAA,EAC3C,OAAO,EAAE,WAAW,cAAc,QAAQ,YAAA;AAAA,EAC1C,KAAK,EAAE,WAAW,YAAY,QAAQ,UAAA;AAAA,EACtC,aAAa,EAAE,WAAW,cAAc,QAAQ,YAAA;AAClD;"}
@@ -1,5 +1,14 @@
1
+ ;
2
+ !function() {
3
+ try {
4
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
5
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "a4a9c10c-673c-4a61-94d6-4a6109e6d754", e._sentryDebugIdIdentifier = "sentry-dbid-a4a9c10c-673c-4a61-94d6-4a6109e6d754");
6
+ } catch (e2) {
7
+ }
8
+ }();
1
9
  import { isLogEvent } from "../../parser/helpers.js";
2
10
  import "uuidv7";
11
+ import "../../../_virtual/_sentry-release-injection-file.js";
3
12
  import { formatTimestamp } from "../utils.js";
4
13
  function formatLogEnvelope(container) {
5
14
  const parsedEnvelope = container.getParsedEnvelope();
@@ -1 +1 @@
1
- {"version":3,"file":"logs.js","sources":["../../../../src/server/formatters/md/logs.ts"],"sourcesContent":["import type { Envelope, EnvelopeItem, SerializedLog } from \"@sentry/core\";\nimport { type SentryEvent, type SentryLogEvent, isLogEvent } from \"../../parser/index.ts\";\nimport type { EventContainer } from \"../../utils/index.ts\";\nimport { formatTimestamp } from \"../utils.ts\";\n\nexport function formatLogEnvelope(container: EventContainer) {\n const parsedEnvelope = container.getParsedEnvelope();\n\n const {\n envelope: [envelopeHeader, items],\n } = parsedEnvelope;\n\n const formatted: string[] = [];\n for (const item of items) {\n const [{ type }, payload] = item;\n\n if (type === \"log\" && isLogEvent(payload as SentryEvent)) {\n formatted.push(...formatLog(payload, envelopeHeader));\n }\n }\n\n return formatted;\n}\n\n/**\n * Format a single log entry to markdown string\n */\nfunction formatSingleLog(event: SerializedLog): string {\n let attr = \"\";\n for (const [key, property] of Object.entries(event.attributes ?? {})) {\n if (key.startsWith(\"sentry.\")) {\n continue;\n }\n\n attr += `${key}: ${property.value} (${property.type})\\n`;\n }\n\n return `${formatTimestamp(event.timestamp)} ${event.level} ${event.body}\nAttributes:\n${attr}`;\n}\n\n/**\n * Format a log event to markdown string\n */\nexport function formatLog(payload: EnvelopeItem[1], _envelopeHeader: Envelope[0]): string[] {\n const event = payload as SentryLogEvent;\n return event.items.map(formatSingleLog);\n}\n"],"names":[],"mappings":";;;AAKO,SAAS,kBAAkB,WAA2B;AAC3D,QAAM,iBAAiB,UAAU,kBAAA;AAEjC,QAAM;AAAA,IACJ,UAAU,CAAC,gBAAgB,KAAK;AAAA,EAAA,IAC9B;AAEJ,QAAM,YAAsB,CAAA;AAC5B,aAAW,QAAQ,OAAO;AACxB,UAAM,CAAC,EAAE,QAAQ,OAAO,IAAI;AAE5B,QAAI,SAAS,SAAS,WAAW,OAAsB,GAAG;AACxD,gBAAU,KAAK,GAAG,UAAU,OAAuB,CAAC;AAAA,IACtD;AAAA,EACF;AAEA,SAAO;AACT;AAKA,SAAS,gBAAgB,OAA8B;AACrD,MAAI,OAAO;AACX,aAAW,CAAC,KAAK,QAAQ,KAAK,OAAO,QAAQ,MAAM,cAAc,CAAA,CAAE,GAAG;AACpE,QAAI,IAAI,WAAW,SAAS,GAAG;AAC7B;AAAA,IACF;AAEA,YAAQ,GAAG,GAAG,KAAK,SAAS,KAAK,KAAK,SAAS,IAAI;AAAA;AAAA,EACrD;AAEA,SAAO,GAAG,gBAAgB,MAAM,SAAS,CAAC,IAAI,MAAM,KAAK,IAAI,MAAM,IAAI;AAAA;AAAA,EAEvE,IAAI;AACN;AAKO,SAAS,UAAU,SAA0B,iBAAwC;AAC1F,QAAM,QAAQ;AACd,SAAO,MAAM,MAAM,IAAI,eAAe;AACxC;"}
1
+ {"version":3,"file":"logs.js","sources":["../../../../src/server/formatters/md/logs.ts"],"sourcesContent":["import type { Envelope, EnvelopeItem, SerializedLog } from \"@sentry/core\";\nimport { type SentryEvent, type SentryLogEvent, isLogEvent } from \"../../parser/index.ts\";\nimport type { EventContainer } from \"../../utils/index.ts\";\nimport { formatTimestamp } from \"../utils.ts\";\n\nexport function formatLogEnvelope(container: EventContainer) {\n const parsedEnvelope = container.getParsedEnvelope();\n\n const {\n envelope: [envelopeHeader, items],\n } = parsedEnvelope;\n\n const formatted: string[] = [];\n for (const item of items) {\n const [{ type }, payload] = item;\n\n if (type === \"log\" && isLogEvent(payload as SentryEvent)) {\n formatted.push(...formatLog(payload, envelopeHeader));\n }\n }\n\n return formatted;\n}\n\n/**\n * Format a single log entry to markdown string\n */\nfunction formatSingleLog(event: SerializedLog): string {\n let attr = \"\";\n for (const [key, property] of Object.entries(event.attributes ?? {})) {\n if (key.startsWith(\"sentry.\")) {\n continue;\n }\n\n attr += `${key}: ${property.value} (${property.type})\\n`;\n }\n\n return `${formatTimestamp(event.timestamp)} ${event.level} ${event.body}\nAttributes:\n${attr}`;\n}\n\n/**\n * Format a log event to markdown string\n */\nexport function formatLog(payload: EnvelopeItem[1], _envelopeHeader: Envelope[0]): string[] {\n const event = payload as SentryLogEvent;\n return event.items.map(formatSingleLog);\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAKO,SAAS,kBAAkB,WAA2B;AAC3D,QAAM,iBAAiB,UAAU,kBAAA;AAEjC,QAAM;AAAA,IACJ,UAAU,CAAC,gBAAgB,KAAK;AAAA,EAAA,IAC9B;AAEJ,QAAM,YAAsB,CAAA;AAC5B,aAAW,QAAQ,OAAO;AACxB,UAAM,CAAC,EAAE,QAAQ,OAAO,IAAI;AAE5B,QAAI,SAAS,SAAS,WAAW,OAAsB,GAAG;AACxD,gBAAU,KAAK,GAAG,UAAU,OAAuB,CAAC;AAAA,IACtD;AAAA,EACF;AAEA,SAAO;AACT;AAKA,SAAS,gBAAgB,OAA8B;AACrD,MAAI,OAAO;AACX,aAAW,CAAC,KAAK,QAAQ,KAAK,OAAO,QAAQ,MAAM,cAAc,CAAA,CAAE,GAAG;AACpE,QAAI,IAAI,WAAW,SAAS,GAAG;AAC7B;AAAA,IACF;AAEA,YAAQ,GAAG,GAAG,KAAK,SAAS,KAAK,KAAK,SAAS,IAAI;AAAA;AAAA,EACrD;AAEA,SAAO,GAAG,gBAAgB,MAAM,SAAS,CAAC,IAAI,MAAM,KAAK,IAAI,MAAM,IAAI;AAAA;AAAA,EAEvE,IAAI;AACN;AAKO,SAAS,UAAU,SAA0B,iBAAwC;AAC1F,QAAM,QAAQ;AACd,SAAO,MAAM,MAAM,IAAI,eAAe;AACxC;"}
@@ -1,6 +1,15 @@
1
+ ;
2
+ !function() {
3
+ try {
4
+ var e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof globalThis ? globalThis : "undefined" != typeof self ? self : {}, n = new e.Error().stack;
5
+ n && (e._sentryDebugIds = e._sentryDebugIds || {}, e._sentryDebugIds[n] = "835b0cc8-38ea-43fb-9fb0-d5a5d778a8ed", e._sentryDebugIdIdentifier = "sentry-dbid-835b0cc8-38ea-43fb-9fb0-d5a5d778a8ed");
6
+ } catch (e2) {
7
+ }
8
+ }();
1
9
  import { captureException } from "@sentry/node";
2
10
  import "../../parser/helpers.js";
3
11
  import { processEnvelope } from "../../parser/processEnvelope.js";
12
+ import "../../../_virtual/_sentry-release-injection-file.js";
4
13
  import { formatTimestamp, getDuration } from "../utils.js";
5
14
  function extractTracesFromEnvelopes(containers) {
6
15
  const traces = /* @__PURE__ */ new Map();