@spotlightjs/spotlight 4.5.1 → 4.6.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 (650) hide show
  1. package/dist/_virtual/_commonjsHelpers.js +9 -0
  2. package/dist/_virtual/_commonjsHelpers.js.map +1 -0
  3. package/dist/_virtual/cache.js +5 -0
  4. package/dist/_virtual/cache.js.map +1 -0
  5. package/dist/_virtual/index.js +5 -0
  6. package/dist/_virtual/index.js.map +1 -0
  7. package/dist/_virtual/re.js +5 -0
  8. package/dist/_virtual/re.js.map +1 -0
  9. package/dist/_virtual/uri.all.js +5 -0
  10. package/dist/_virtual/uri.all.js.map +1 -0
  11. package/dist/bootstrap.d.ts +0 -0
  12. package/dist/electron-index.d.ts +1 -0
  13. package/dist/index.d.ts +13 -0
  14. package/dist/instrument.js +74 -0
  15. package/dist/instrument.js.map +1 -0
  16. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js +233 -0
  17. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js.map +1 -0
  18. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js +56 -0
  19. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js.map +1 -0
  20. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js +188 -0
  21. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js.map +1 -0
  22. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js +596 -0
  23. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js.map +1 -0
  24. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js +68 -0
  25. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js.map +1 -0
  26. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js +383 -0
  27. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js.map +1 -0
  28. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js +33 -0
  29. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js.map +1 -0
  30. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +1037 -0
  31. package/dist/node_modules/.pnpm/@modelcontextprotocol_sdk@1.16.0/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js.map +1 -0
  32. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/ajv.js +357 -0
  33. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/ajv.js.map +1 -0
  34. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/cache.js +21 -0
  35. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/cache.js.map +1 -0
  36. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/async.js +65 -0
  37. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/async.js.map +1 -0
  38. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/error_classes.js +28 -0
  39. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/error_classes.js.map +1 -0
  40. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/formats.js +110 -0
  41. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/formats.js.map +1 -0
  42. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/index.js +279 -0
  43. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/index.js.map +1 -0
  44. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/resolve.js +219 -0
  45. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/resolve.js.map +1 -0
  46. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/rules.js +92 -0
  47. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/rules.js.map +1 -0
  48. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/schema_obj.js +10 -0
  49. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/schema_obj.js.map +1 -0
  50. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/ucs2length.js +16 -0
  51. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/ucs2length.js.map +1 -0
  52. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/util.js +183 -0
  53. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/compile/util.js.map +1 -0
  54. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/data.js +48 -0
  55. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/data.js.map +1 -0
  56. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/definition_schema.js +39 -0
  57. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/definition_schema.js.map +1 -0
  58. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limit.js +151 -0
  59. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limit.js.map +1 -0
  60. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitItems.js +81 -0
  61. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitItems.js.map +1 -0
  62. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitLength.js +86 -0
  63. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitLength.js.map +1 -0
  64. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitProperties.js +81 -0
  65. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/_limitProperties.js.map +1 -0
  66. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/allOf.js +43 -0
  67. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/allOf.js.map +1 -0
  68. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/anyOf.js +74 -0
  69. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/anyOf.js.map +1 -0
  70. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/comment.js +17 -0
  71. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/comment.js.map +1 -0
  72. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/const.js +54 -0
  73. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/const.js.map +1 -0
  74. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/contains.js +79 -0
  75. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/contains.js.map +1 -0
  76. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/custom.js +221 -0
  77. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/custom.js.map +1 -0
  78. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/dependencies.js +162 -0
  79. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/dependencies.js.map +1 -0
  80. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/enum.js +63 -0
  81. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/enum.js.map +1 -0
  82. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/format.js +148 -0
  83. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/format.js.map +1 -0
  84. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/if.js +101 -0
  85. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/if.js.map +1 -0
  86. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/index.js +58 -0
  87. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/index.js.map +1 -0
  88. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/items.js +138 -0
  89. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/items.js.map +1 -0
  90. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/multipleOf.js +81 -0
  91. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/multipleOf.js.map +1 -0
  92. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/not.js +86 -0
  93. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/not.js.map +1 -0
  94. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/oneOf.js +72 -0
  95. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/oneOf.js.map +1 -0
  96. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/pattern.js +76 -0
  97. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/pattern.js.map +1 -0
  98. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/properties.js +313 -0
  99. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/properties.js.map +1 -0
  100. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/propertyNames.js +75 -0
  101. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/propertyNames.js.map +1 -0
  102. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/ref.js +125 -0
  103. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/ref.js.map +1 -0
  104. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/required.js +254 -0
  105. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/required.js.map +1 -0
  106. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/uniqueItems.js +86 -0
  107. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/uniqueItems.js.map +1 -0
  108. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/validate.js +455 -0
  109. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/dotjs/validate.js.map +1 -0
  110. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/keyword.js +99 -0
  111. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/keyword.js.map +1 -0
  112. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/refs/data.json.js +41 -0
  113. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/refs/data.json.js.map +1 -0
  114. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/refs/json-schema-draft-07.json.js +257 -0
  115. package/dist/node_modules/.pnpm/ajv@6.12.6/node_modules/ajv/lib/refs/json-schema-draft-07.json.js.map +1 -0
  116. package/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js +32 -0
  117. package/dist/node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js.map +1 -0
  118. package/dist/node_modules/.pnpm/fast-json-stable-stringify@2.1.0/node_modules/fast-json-stable-stringify/index.js +53 -0
  119. package/dist/node_modules/.pnpm/fast-json-stable-stringify@2.1.0/node_modules/fast-json-stable-stringify/index.js.map +1 -0
  120. package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/helper/streaming/sse.js +24 -0
  121. package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/helper/streaming/sse.js.map +1 -0
  122. package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/middleware/cors/index.js +87 -0
  123. package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/middleware/cors/index.js.map +1 -0
  124. package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/utils/html.js +35 -0
  125. package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/utils/html.js.map +1 -0
  126. package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/utils/stream.js +69 -0
  127. package/dist/node_modules/.pnpm/hono@4.10.3/node_modules/hono/dist/utils/stream.js.map +1 -0
  128. package/dist/node_modules/.pnpm/json-schema-traverse@0.4.1/node_modules/json-schema-traverse/index.js +83 -0
  129. package/dist/node_modules/.pnpm/json-schema-traverse@0.4.1/node_modules/json-schema-traverse/index.js.map +1 -0
  130. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/comparator.js +123 -0
  131. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/comparator.js.map +1 -0
  132. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/range.js +388 -0
  133. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/range.js.map +1 -0
  134. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/semver.js +277 -0
  135. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/classes/semver.js.map +1 -0
  136. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/clean.js +11 -0
  137. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/clean.js.map +1 -0
  138. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/cmp.js +53 -0
  139. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/cmp.js.map +1 -0
  140. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/coerce.js +46 -0
  141. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/coerce.js.map +1 -0
  142. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-build.js +12 -0
  143. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-build.js.map +1 -0
  144. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-loose.js +8 -0
  145. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare-loose.js.map +1 -0
  146. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare.js +8 -0
  147. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/compare.js.map +1 -0
  148. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/diff.js +42 -0
  149. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/diff.js.map +1 -0
  150. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/eq.js +8 -0
  151. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/eq.js.map +1 -0
  152. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gt.js +8 -0
  153. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gt.js.map +1 -0
  154. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gte.js +8 -0
  155. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/gte.js.map +1 -0
  156. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/inc.js +22 -0
  157. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/inc.js.map +1 -0
  158. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lt.js +8 -0
  159. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lt.js.map +1 -0
  160. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lte.js +8 -0
  161. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/lte.js.map +1 -0
  162. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/major.js +8 -0
  163. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/major.js.map +1 -0
  164. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/minor.js +8 -0
  165. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/minor.js.map +1 -0
  166. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/neq.js +8 -0
  167. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/neq.js.map +1 -0
  168. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/parse.js +20 -0
  169. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/parse.js.map +1 -0
  170. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/patch.js +8 -0
  171. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/patch.js.map +1 -0
  172. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/prerelease.js +11 -0
  173. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/prerelease.js.map +1 -0
  174. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rcompare.js +8 -0
  175. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rcompare.js.map +1 -0
  176. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rsort.js +8 -0
  177. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/rsort.js.map +1 -0
  178. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/satisfies.js +15 -0
  179. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/satisfies.js.map +1 -0
  180. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/sort.js +8 -0
  181. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/sort.js.map +1 -0
  182. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/valid.js +11 -0
  183. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/functions/valid.js.map +1 -0
  184. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/index.js +135 -0
  185. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/index.js.map +1 -0
  186. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/constants.js +29 -0
  187. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/constants.js.map +1 -0
  188. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/debug.js +7 -0
  189. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/debug.js.map +1 -0
  190. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/identifiers.js +22 -0
  191. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/identifiers.js.map +1 -0
  192. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/lrucache.js +35 -0
  193. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/lrucache.js.map +1 -0
  194. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/parse-options.js +16 -0
  195. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/parse-options.js.map +1 -0
  196. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/re.js +91 -0
  197. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/internal/re.js.map +1 -0
  198. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/gtr.js +8 -0
  199. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/gtr.js.map +1 -0
  200. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/intersects.js +12 -0
  201. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/intersects.js.map +1 -0
  202. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/ltr.js +8 -0
  203. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/ltr.js.map +1 -0
  204. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/max-satisfying.js +28 -0
  205. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/max-satisfying.js.map +1 -0
  206. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-satisfying.js +28 -0
  207. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-satisfying.js.map +1 -0
  208. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-version.js +57 -0
  209. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/min-version.js.map +1 -0
  210. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/outside.js +74 -0
  211. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/outside.js.map +1 -0
  212. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/simplify.js +49 -0
  213. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/simplify.js.map +1 -0
  214. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/subset.js +163 -0
  215. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/subset.js.map +1 -0
  216. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/to-comparators.js +8 -0
  217. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/to-comparators.js.map +1 -0
  218. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/valid.js +14 -0
  219. package/dist/node_modules/.pnpm/semver@7.7.3/node_modules/semver/ranges/valid.js.map +1 -0
  220. package/dist/node_modules/.pnpm/uri-js@4.4.1/node_modules/uri-js/dist/es5/uri.all.js +1027 -0
  221. package/dist/node_modules/.pnpm/uri-js@4.4.1/node_modules/uri-js/dist/es5/uri.all.js.map +1 -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 +38 -0
  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/Options.js.map +1 -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 +24 -0
  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/Refs.js.map +1 -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 +19 -0
  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/errorMessages.js.map +1 -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 +12 -0
  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/getRelativePath.js.map +1 -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 +62 -0
  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/parseDef.js.map +1 -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 +19 -0
  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/any.js.map +1 -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 +29 -0
  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/array.js.map +1 -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 +49 -0
  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/bigint.js.map +1 -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 +9 -0
  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/boolean.js.map +1 -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 +8 -0
  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/branded.js.map +1 -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 +8 -0
  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/catch.js.map +1 -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 +62 -0
  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/date.js.map +1 -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 +11 -0
  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/default.js.map +1 -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 +9 -0
  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/effects.js.map +1 -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 +10 -0
  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/enum.js.map +1 -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 +45 -0
  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/intersection.js.map +1 -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 +22 -0
  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/literal.js.map +1 -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 +30 -0
  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/map.js.map +1 -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 +16 -0
  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/nativeEnum.js.map +1 -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 +13 -0
  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/never.js.map +1 -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 +12 -0
  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/null.js.map +1 -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 +36 -0
  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/nullable.js.map +1 -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 +52 -0
  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/number.js.map +1 -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 +73 -0
  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/object.js.map +1 -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 +23 -0
  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/optional.js.map +1 -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 +23 -0
  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/pipeline.js.map +1 -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 +8 -0
  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/promise.js.map +1 -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 +8 -0
  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/readonly.js.map +1 -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 +59 -0
  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/record.js.map +1 -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 +24 -0
  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/set.js.map +1 -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 +322 -0
  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/string.js.map +1 -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 +31 -0
  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/tuple.js.map +1 -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 +10 -0
  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/undefined.js.map +1 -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 +72 -0
  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/union.js.map +1 -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 +8 -0
  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/parsers/unknown.js.map +1 -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 +109 -0
  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/selectParser.js.map +1 -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 +67 -0
  295. 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 -0
  296. package/dist/run.d.ts +0 -1
  297. package/dist/run.js +22 -51777
  298. package/dist/run.js.map +1 -0
  299. package/dist/sentry-config.d.ts +7 -0
  300. package/dist/sentry-config.js +11 -0
  301. package/dist/sentry-config.js.map +1 -0
  302. package/dist/server/cli/help.d.ts +1 -0
  303. package/dist/server/cli/help.js +38 -0
  304. package/dist/server/cli/help.js.map +1 -0
  305. package/dist/server/cli/mcp.d.ts +2 -0
  306. package/dist/server/cli/mcp.js +105 -0
  307. package/dist/server/cli/mcp.js.map +1 -0
  308. package/dist/server/cli/run.d.ts +2 -0
  309. package/dist/server/cli/run.js +271 -0
  310. package/dist/server/cli/run.js.map +1 -0
  311. package/dist/server/cli/server.d.ts +2 -0
  312. package/dist/server/cli/server.js +13 -0
  313. package/dist/server/cli/server.js.map +1 -0
  314. package/dist/server/cli/tail.d.ts +8 -0
  315. package/dist/server/cli/tail.js +97 -0
  316. package/dist/server/cli/tail.js.map +1 -0
  317. package/dist/server/cli.d.ts +16 -0
  318. package/dist/server/cli.js +120 -0
  319. package/dist/server/cli.js.map +1 -0
  320. package/dist/server/constants.d.ts +3 -0
  321. package/dist/server/constants.js +7 -0
  322. package/dist/server/constants.js.map +1 -0
  323. package/dist/server/formatters/human/errors.d.ts +6 -0
  324. package/dist/server/formatters/human/errors.js +28 -0
  325. package/dist/server/formatters/human/errors.js.map +1 -0
  326. package/dist/server/formatters/human/index.d.ts +2 -0
  327. package/dist/server/formatters/human/index.js +13 -0
  328. package/dist/server/formatters/human/index.js.map +1 -0
  329. package/dist/server/formatters/human/logs.d.ts +6 -0
  330. package/dist/server/formatters/human/logs.js +23 -0
  331. package/dist/server/formatters/human/logs.js.map +1 -0
  332. package/dist/server/formatters/human/traces.d.ts +6 -0
  333. package/dist/server/formatters/human/traces.js +29 -0
  334. package/dist/server/formatters/human/traces.js.map +1 -0
  335. package/dist/server/formatters/human/utils.d.ts +43 -0
  336. package/dist/server/formatters/human/utils.js +113 -0
  337. package/dist/server/formatters/human/utils.js.map +1 -0
  338. package/dist/server/formatters/index.d.ts +11 -0
  339. package/dist/server/formatters/index.js +19 -0
  340. package/dist/server/formatters/index.js.map +1 -0
  341. package/dist/server/formatters/json/errors.d.ts +3 -0
  342. package/dist/server/formatters/json/errors.js +8 -0
  343. package/dist/server/formatters/json/errors.js.map +1 -0
  344. package/dist/server/formatters/json/index.d.ts +2 -0
  345. package/dist/server/formatters/json/index.js +13 -0
  346. package/dist/server/formatters/json/index.js.map +1 -0
  347. package/dist/server/formatters/json/logs.d.ts +3 -0
  348. package/dist/server/formatters/json/logs.js +11 -0
  349. package/dist/server/formatters/json/logs.js.map +1 -0
  350. package/dist/server/formatters/json/traces.d.ts +3 -0
  351. package/dist/server/formatters/json/traces.js +8 -0
  352. package/dist/server/formatters/json/traces.js.map +1 -0
  353. package/dist/server/formatters/logfmt/errors.d.ts +3 -0
  354. package/dist/server/formatters/logfmt/errors.js +9 -0
  355. package/dist/server/formatters/logfmt/errors.js.map +1 -0
  356. package/dist/server/formatters/logfmt/index.d.ts +2 -0
  357. package/dist/server/formatters/logfmt/index.js +13 -0
  358. package/dist/server/formatters/logfmt/index.js.map +1 -0
  359. package/dist/server/formatters/logfmt/logs.d.ts +3 -0
  360. package/dist/server/formatters/logfmt/logs.js +27 -0
  361. package/dist/server/formatters/logfmt/logs.js.map +1 -0
  362. package/dist/server/formatters/logfmt/traces.d.ts +3 -0
  363. package/dist/server/formatters/logfmt/traces.js +9 -0
  364. package/dist/server/formatters/logfmt/traces.js.map +1 -0
  365. package/dist/server/formatters/md/errors.d.ts +10 -0
  366. package/dist/server/formatters/md/errors.js +77 -0
  367. package/dist/server/formatters/md/errors.js.map +1 -0
  368. package/dist/server/formatters/md/event.d.ts +11 -0
  369. package/dist/server/formatters/md/event.js +362 -0
  370. package/dist/server/formatters/md/event.js.map +1 -0
  371. package/dist/server/formatters/md/index.d.ts +2 -0
  372. package/dist/server/formatters/md/index.js +13 -0
  373. package/dist/server/formatters/md/index.js.map +1 -0
  374. package/dist/server/formatters/md/logs.d.ts +7 -0
  375. package/dist/server/formatters/md/logs.js +39 -0
  376. package/dist/server/formatters/md/logs.js.map +1 -0
  377. package/dist/server/formatters/md/traces.d.ts +87 -0
  378. package/dist/server/formatters/md/traces.js +300 -0
  379. package/dist/server/formatters/md/traces.js.map +1 -0
  380. package/dist/server/formatters/schema.d.ts +6810 -0
  381. package/dist/server/formatters/shared/data-builders.d.ts +15 -0
  382. package/dist/server/formatters/shared/data-builders.js +120 -0
  383. package/dist/server/formatters/shared/data-builders.js.map +1 -0
  384. package/dist/server/formatters/types.d.ts +33 -0
  385. package/dist/server/formatters/types.js +5 -0
  386. package/dist/server/formatters/types.js.map +1 -0
  387. package/dist/server/formatters/utils.d.ts +25 -0
  388. package/dist/server/formatters/utils.js +46 -0
  389. package/dist/server/formatters/utils.js.map +1 -0
  390. package/dist/server/handlers/fileToServe.d.ts +2 -0
  391. package/dist/server/handlers/fileToServe.js +27 -0
  392. package/dist/server/handlers/fileToServe.js.map +1 -0
  393. package/dist/server/handlers/index.d.ts +1 -0
  394. package/dist/server/logger.d.ts +5 -0
  395. package/dist/server/logger.js +31 -0
  396. package/dist/server/logger.js.map +1 -0
  397. package/dist/server/main.d.ts +6 -0
  398. package/dist/server/main.js +175 -0
  399. package/dist/server/main.js.map +1 -0
  400. package/dist/server/mcp/constants.d.ts +3 -0
  401. package/dist/server/mcp/constants.js +79 -0
  402. package/dist/server/mcp/constants.js.map +1 -0
  403. package/dist/server/mcp/mcp.d.ts +31 -0
  404. package/dist/server/mcp/mcp.js +392 -0
  405. package/dist/server/mcp/mcp.js.map +1 -0
  406. package/dist/server/messageBuffer.d.ts +40 -0
  407. package/dist/server/messageBuffer.js +279 -0
  408. package/dist/server/messageBuffer.js.map +1 -0
  409. package/dist/server/parser/helpers.d.ts +10 -0
  410. package/dist/server/parser/helpers.js +32 -0
  411. package/dist/server/parser/helpers.js.map +1 -0
  412. package/dist/server/parser/index.d.ts +3 -0
  413. package/dist/server/parser/processEnvelope.d.ts +17 -0
  414. package/dist/server/parser/processEnvelope.js +86 -0
  415. package/dist/server/parser/processEnvelope.js.map +1 -0
  416. package/dist/server/parser/types.d.ts +198 -0
  417. package/dist/server/routes/clear.d.ts +3 -0
  418. package/dist/server/routes/clear.js +15 -0
  419. package/dist/server/routes/clear.js.map +1 -0
  420. package/dist/server/routes/contextlines/index.d.ts +3 -0
  421. package/dist/server/routes/contextlines/index.js +44 -0
  422. package/dist/server/routes/contextlines/index.js.map +1 -0
  423. package/dist/server/routes/contextlines/utils.d.ts +20 -0
  424. package/dist/server/routes/contextlines/utils.js +83 -0
  425. package/dist/server/routes/contextlines/utils.js.map +1 -0
  426. package/dist/server/routes/health.d.ts +3 -0
  427. package/dist/server/routes/health.js +7 -0
  428. package/dist/server/routes/health.js.map +1 -0
  429. package/dist/server/routes/index.d.ts +3 -0
  430. package/dist/server/routes/index.js +19 -0
  431. package/dist/server/routes/index.js.map +1 -0
  432. package/dist/server/routes/mcp.d.ts +3 -0
  433. package/dist/server/routes/mcp.js +20 -0
  434. package/dist/server/routes/mcp.js.map +1 -0
  435. package/dist/server/routes/open.d.ts +4 -0
  436. package/dist/server/routes/open.js +25 -0
  437. package/dist/server/routes/open.js.map +1 -0
  438. package/dist/server/routes/stream/debugLogging.d.ts +11 -0
  439. package/dist/server/routes/stream/debugLogging.js +59 -0
  440. package/dist/server/routes/stream/debugLogging.js.map +1 -0
  441. package/dist/server/routes/stream/index.d.ts +34 -0
  442. package/dist/server/routes/stream/index.js +98 -0
  443. package/dist/server/routes/stream/index.js.map +1 -0
  444. package/dist/server/routes/stream/streaming.d.ts +3 -0
  445. package/dist/server/routes/stream/streaming.js +26 -0
  446. package/dist/server/routes/stream/streaming.js.map +1 -0
  447. package/dist/server/routes/stream/userAgent.d.ts +11 -0
  448. package/dist/server/routes/stream/userAgent.js +25 -0
  449. package/dist/server/routes/stream/userAgent.js.map +1 -0
  450. package/dist/server/sdk.d.ts +15 -0
  451. package/dist/server/sdk.js +32 -0
  452. package/dist/server/sdk.js.map +1 -0
  453. package/dist/server/types/cli.d.ts +14 -0
  454. package/dist/server/types/env.d.ts +10 -0
  455. package/dist/server/types/index.d.ts +2 -0
  456. package/dist/server/types/utils.d.ts +44 -0
  457. package/dist/server/utils/cors.d.ts +12 -0
  458. package/dist/server/utils/cors.js +22 -0
  459. package/dist/server/utils/cors.js.map +1 -0
  460. package/dist/server/utils/docker-compose-parser.d.ts +20 -0
  461. package/dist/server/utils/docker-compose-parser.js +61 -0
  462. package/dist/server/utils/docker-compose-parser.js.map +1 -0
  463. package/dist/server/utils/docker-compose.d.ts +30 -0
  464. package/dist/server/utils/docker-compose.js +131 -0
  465. package/dist/server/utils/docker-compose.js.map +1 -0
  466. package/dist/server/utils/eventContainer.d.ts +34 -0
  467. package/dist/server/utils/eventContainer.js +71 -0
  468. package/dist/server/utils/eventContainer.js.map +1 -0
  469. package/dist/server/utils/extras.d.ts +5 -0
  470. package/dist/server/utils/extras.js +63 -0
  471. package/dist/server/utils/extras.js.map +1 -0
  472. package/dist/server/utils/getBuffer.d.ts +1 -0
  473. package/dist/server/utils/getBuffer.js +9 -0
  474. package/dist/server/utils/getBuffer.js.map +1 -0
  475. package/dist/server/utils/index.d.ts +4 -0
  476. package/dist/shared/constants.d.ts +3 -0
  477. package/dist/shared/constants.js +9 -0
  478. package/dist/shared/constants.js.map +1 -0
  479. package/dist/ui/assets/angular-html.js +1 -0
  480. package/dist/ui/assets/angular-ts.js +1 -0
  481. package/dist/ui/assets/astro.js +1 -0
  482. package/dist/ui/assets/blade.js +1 -0
  483. package/dist/ui/assets/client.js +50 -0
  484. package/dist/ui/assets/coffee.js +1 -0
  485. package/dist/ui/assets/cpp.js +1 -0
  486. package/dist/ui/assets/electron-index.js +6 -0
  487. package/dist/ui/assets/firefox.svg +105 -0
  488. package/dist/ui/assets/glsl.js +1 -0
  489. package/dist/ui/assets/graphql.js +1 -0
  490. package/dist/ui/assets/haml.js +1 -0
  491. package/dist/ui/assets/handlebars.js +1 -0
  492. package/dist/ui/assets/html-derivative.js +1 -0
  493. package/dist/ui/assets/html.js +1 -0
  494. package/dist/ui/assets/http.js +1 -0
  495. package/dist/ui/assets/index.js +152 -0
  496. package/dist/ui/assets/index2.js +1 -0
  497. package/dist/ui/assets/instrumentation.js +24 -0
  498. package/dist/ui/assets/jinja.js +1 -0
  499. package/dist/ui/assets/jison.js +1 -0
  500. package/dist/ui/assets/julia.js +1 -0
  501. package/dist/ui/assets/main.css +1 -0
  502. package/dist/ui/assets/main.js +2 -0
  503. package/dist/ui/assets/marko.js +1 -0
  504. package/dist/ui/assets/mdc.js +1 -0
  505. package/dist/ui/assets/nestjs.svg +4 -0
  506. package/dist/ui/assets/php.js +1 -0
  507. package/dist/ui/assets/pug.js +1 -0
  508. package/dist/ui/assets/raleway-cyrillic-400-normal.woff +0 -0
  509. package/dist/ui/assets/raleway-cyrillic-400-normal.woff2 +0 -0
  510. package/dist/ui/assets/raleway-cyrillic-ext-400-normal.woff +0 -0
  511. package/dist/ui/assets/raleway-cyrillic-ext-400-normal.woff2 +0 -0
  512. package/dist/ui/assets/raleway-latin-400-normal.woff +0 -0
  513. package/dist/ui/assets/raleway-latin-400-normal.woff2 +0 -0
  514. package/dist/ui/assets/raleway-latin-ext-400-normal.woff +0 -0
  515. package/dist/ui/assets/raleway-latin-ext-400-normal.woff2 +0 -0
  516. package/dist/ui/assets/raleway-vietnamese-400-normal.woff +0 -0
  517. package/dist/ui/assets/raleway-vietnamese-400-normal.woff2 +0 -0
  518. package/dist/ui/assets/safari.svg +38 -0
  519. package/dist/ui/assets/scss.js +1 -0
  520. package/dist/ui/assets/svelte.js +1 -0
  521. package/dist/ui/assets/ts-tags.js +1 -0
  522. package/dist/ui/assets/vue-html.js +1 -0
  523. package/dist/ui/assets/vue-vine.js +1 -0
  524. package/dist/ui/assets/vue.js +1 -0
  525. package/dist/ui/assets/xml.js +1 -0
  526. package/dist/{overlay/src → ui}/index.html +34 -0
  527. package/dist/ui/manifest.json +1103 -0
  528. package/package.json +109 -19
  529. package/dist/overlay/assets/angular-html-BmadGEgW.js +0 -1
  530. package/dist/overlay/assets/angular-ts-D-QQnnGT.js +0 -1
  531. package/dist/overlay/assets/astro-DHnp0xIo.js +0 -1
  532. package/dist/overlay/assets/blade-OPzGcV14.js +0 -1
  533. package/dist/overlay/assets/coffee-Dl27lzbd.js +0 -1
  534. package/dist/overlay/assets/cpp-Cj177cuW.js +0 -1
  535. package/dist/overlay/assets/glsl-CkUcVZNK.js +0 -1
  536. package/dist/overlay/assets/graphql-BLaPX4fU.js +0 -1
  537. package/dist/overlay/assets/haml-6FagfhCM.js +0 -1
  538. package/dist/overlay/assets/handlebars-Bd5Y4M6I.js +0 -1
  539. package/dist/overlay/assets/html-7XVNRwN7.js +0 -1
  540. package/dist/overlay/assets/html-derivative-BNxZ5Yf6.js +0 -1
  541. package/dist/overlay/assets/http-WC357zBG.js +0 -1
  542. package/dist/overlay/assets/index-BfFEknL3.js +0 -1
  543. package/dist/overlay/assets/jinja-WEhOU5ES.js +0 -1
  544. package/dist/overlay/assets/jison-c2JI40PB.js +0 -1
  545. package/dist/overlay/assets/julia-DcoDQokW.js +0 -1
  546. package/dist/overlay/assets/main.js +0 -224
  547. package/dist/overlay/assets/marko-DDi9qpQP.js +0 -1
  548. package/dist/overlay/assets/mdc-FI2x3BiY.js +0 -1
  549. package/dist/overlay/assets/php-BRU9zhoN.js +0 -1
  550. package/dist/overlay/assets/pug-CJWI-qSo.js +0 -1
  551. package/dist/overlay/assets/scss-B1FaCqwR.js +0 -1
  552. package/dist/overlay/assets/svelte-BjDUPxZ1.js +0 -1
  553. package/dist/overlay/assets/ts-tags-CZMzuZh-.js +0 -1
  554. package/dist/overlay/assets/vue-D-ba2-Rx.js +0 -1
  555. package/dist/overlay/assets/vue-html-Dn2ZoOSz.js +0 -1
  556. package/dist/overlay/assets/vue-vine-Jmfkm6lF.js +0 -1
  557. package/dist/overlay/assets/xml-C2J0sS9M.js +0 -1
  558. package/dist/overlay/manifest.json +0 -1000
  559. package/dist/run.cjs +0 -51848
  560. package/dist/sidecar.cjs +0 -7
  561. package/dist/sidecar.d.ts +0 -1
  562. package/dist/sidecar.js +0 -4
  563. /package/dist/{overlay/assets/andromeeda-BIpZ7gaU.js → ui/assets/andromeeda.js} +0 -0
  564. /package/dist/{overlay/assets/aurora-x-BwoVEUWZ.js → ui/assets/aurora-x.js} +0 -0
  565. /package/dist/{overlay/assets/ayu-dark-CxPZkpb2.js → ui/assets/ayu-dark.js} +0 -0
  566. /package/dist/{overlay/assets/c-eeMepfLm.js → ui/assets/c.js} +0 -0
  567. /package/dist/{overlay/assets/catppuccin-frappe-5udUqgsX.js → ui/assets/catppuccin-frappe.js} +0 -0
  568. /package/dist/{overlay/assets/catppuccin-latte-ufkS-HWv.js → ui/assets/catppuccin-latte.js} +0 -0
  569. /package/dist/{overlay/assets/catppuccin-macchiato-DzL2LPek.js → ui/assets/catppuccin-macchiato.js} +0 -0
  570. /package/dist/{overlay/assets/catppuccin-mocha-DDDDwkUT.js → ui/assets/catppuccin-mocha.js} +0 -0
  571. /package/dist/{overlay/assets/css-CECN5uSL.js → ui/assets/css.js} +0 -0
  572. /package/dist/{overlay/assets/dark-plus-pUHDTVV0.js → ui/assets/dark-plus.js} +0 -0
  573. /package/dist/{overlay/assets/dracula-soft-BKa-aqBv.js → ui/assets/dracula-soft.js} +0 -0
  574. /package/dist/{overlay/assets/dracula-BtZx2Kac.js → ui/assets/dracula.js} +0 -0
  575. /package/dist/{overlay/assets/everforest-dark-DMCBqXCK.js → ui/assets/everforest-dark.js} +0 -0
  576. /package/dist/{overlay/assets/everforest-light-BbXl82Em.js → ui/assets/everforest-light.js} +0 -0
  577. /package/dist/{overlay/assets/github-dark-default-BJPUVz4H.js → ui/assets/github-dark-default.js} +0 -0
  578. /package/dist/{overlay/assets/github-dark-dimmed-DUshB20C.js → ui/assets/github-dark-dimmed.js} +0 -0
  579. /package/dist/{overlay/assets/github-dark-high-contrast-D3aGCnF8.js → ui/assets/github-dark-high-contrast.js} +0 -0
  580. /package/dist/{overlay/assets/github-dark-DenFmJkN.js → ui/assets/github-dark.js} +0 -0
  581. /package/dist/{overlay/assets/github-light-default-D99KPAby.js → ui/assets/github-light-default.js} +0 -0
  582. /package/dist/{overlay/assets/github-light-high-contrast-BbmZE-Mp.js → ui/assets/github-light-high-contrast.js} +0 -0
  583. /package/dist/{overlay/assets/github-light-JYsPkUQd.js → ui/assets/github-light.js} +0 -0
  584. /package/dist/{overlay/assets/gruvbox-dark-hard-C2ND4cMr.js → ui/assets/gruvbox-dark-hard.js} +0 -0
  585. /package/dist/{overlay/assets/gruvbox-dark-medium-C8k4c8au.js → ui/assets/gruvbox-dark-medium.js} +0 -0
  586. /package/dist/{overlay/assets/gruvbox-dark-soft-xx9Q6FaG.js → ui/assets/gruvbox-dark-soft.js} +0 -0
  587. /package/dist/{overlay/assets/gruvbox-light-hard-BpUXv5in.js → ui/assets/gruvbox-light-hard.js} +0 -0
  588. /package/dist/{overlay/assets/gruvbox-light-medium-D3XFCoU1.js → ui/assets/gruvbox-light-medium.js} +0 -0
  589. /package/dist/{overlay/assets/gruvbox-light-soft-u7hpfz6Z.js → ui/assets/gruvbox-light-soft.js} +0 -0
  590. /package/dist/{overlay/assets/houston-BDYrDoDW.js → ui/assets/houston.js} +0 -0
  591. /package/dist/{overlay/assets/imba-CimUv-Uh.js → ui/assets/imba.js} +0 -0
  592. /package/dist/{overlay/assets/java-DY6VlHhP.js → ui/assets/java.js} +0 -0
  593. /package/dist/{overlay/assets/javascript-Dp1Jmi5H.js → ui/assets/javascript.js} +0 -0
  594. /package/dist/{overlay/assets/json-DxJze_jm.js → ui/assets/json.js} +0 -0
  595. /package/dist/{overlay/assets/json5-BT4Fjg39.js → ui/assets/json5.js} +0 -0
  596. /package/dist/{overlay/assets/jsonc-CHjZD8gR.js → ui/assets/jsonc.js} +0 -0
  597. /package/dist/{overlay/assets/jsonl-BGuvDmy9.js → ui/assets/jsonl.js} +0 -0
  598. /package/dist/{overlay/assets/jsx-BtKADgXT.js → ui/assets/jsx.js} +0 -0
  599. /package/dist/{overlay/assets/kanagawa-dragon-CiKur4Hl.js → ui/assets/kanagawa-dragon.js} +0 -0
  600. /package/dist/{overlay/assets/kanagawa-lotus-BKu-smKu.js → ui/assets/kanagawa-lotus.js} +0 -0
  601. /package/dist/{overlay/assets/kanagawa-wave-CQwozSzG.js → ui/assets/kanagawa-wave.js} +0 -0
  602. /package/dist/{overlay/assets/laserwave-6a00oqik.js → ui/assets/laserwave.js} +0 -0
  603. /package/dist/{overlay/assets/less-B1GLI2Di.js → ui/assets/less.js} +0 -0
  604. /package/dist/{overlay/assets/light-plus-CZuVqSLX.js → ui/assets/light-plus.js} +0 -0
  605. /package/dist/{overlay/assets/markdown-CrScaQ96.js → ui/assets/markdown.js} +0 -0
  606. /package/dist/{overlay/assets/material-theme-darker-CkRroheE.js → ui/assets/material-theme-darker.js} +0 -0
  607. /package/dist/{overlay/assets/material-theme-lighter-BUBw43Yz.js → ui/assets/material-theme-lighter.js} +0 -0
  608. /package/dist/{overlay/assets/material-theme-ocean-ClGX14Ja.js → ui/assets/material-theme-ocean.js} +0 -0
  609. /package/dist/{overlay/assets/material-theme-palenight-C1RVm8K1.js → ui/assets/material-theme-palenight.js} +0 -0
  610. /package/dist/{overlay/assets/material-theme-D6KBX41T.js → ui/assets/material-theme.js} +0 -0
  611. /package/dist/{overlay/assets/mdx-BOhZZUJ8.js → ui/assets/mdx.js} +0 -0
  612. /package/dist/{overlay/assets/min-dark-C7ak0t6c.js → ui/assets/min-dark.js} +0 -0
  613. /package/dist/{overlay/assets/min-light-CKFxVcPp.js → ui/assets/min-light.js} +0 -0
  614. /package/dist/{overlay/assets/monokai-C1KBYcO0.js → ui/assets/monokai.js} +0 -0
  615. /package/dist/{overlay/assets/night-owl-Bm2rzalh.js → ui/assets/night-owl.js} +0 -0
  616. /package/dist/{overlay/assets/nord-CC5OiUXg.js → ui/assets/nord.js} +0 -0
  617. /package/dist/{overlay/assets/one-dark-pro-DTA3VF0_.js → ui/assets/one-dark-pro.js} +0 -0
  618. /package/dist/{overlay/assets/one-light-D9sNaUtq.js → ui/assets/one-light.js} +0 -0
  619. /package/dist/{overlay/assets/plastic-CSTz3KZp.js → ui/assets/plastic.js} +0 -0
  620. /package/dist/{overlay/assets/poimandres-C-VADXHD.js → ui/assets/poimandres.js} +0 -0
  621. /package/dist/{overlay/assets/postcss-05aHdL-n.js → ui/assets/postcss.js} +0 -0
  622. /package/dist/{overlay/assets/python-BFNSHbwJ.js → ui/assets/python.js} +0 -0
  623. /package/dist/{overlay/assets/r-Bm0uF0U2.js → ui/assets/r.js} +0 -0
  624. /package/dist/{overlay/assets/red-7y8PH7HH.js → ui/assets/red.js} +0 -0
  625. /package/dist/{overlay/assets/regexp-BazyLpPg.js → ui/assets/regexp.js} +0 -0
  626. /package/dist/{overlay/assets/rose-pine-dawn-ClRRUdXX.js → ui/assets/rose-pine-dawn.js} +0 -0
  627. /package/dist/{overlay/assets/rose-pine-moon-ucNn3Gm8.js → ui/assets/rose-pine-moon.js} +0 -0
  628. /package/dist/{overlay/assets/rose-pine-Cr4kwgAY.js → ui/assets/rose-pine.js} +0 -0
  629. /package/dist/{overlay/assets/sass-DxHp5rTx.js → ui/assets/sass.js} +0 -0
  630. /package/dist/{overlay/assets/shellscript-InADTalH.js → ui/assets/shellscript.js} +0 -0
  631. /package/dist/{overlay/assets/slack-dark-i7wN4OET.js → ui/assets/slack-dark.js} +0 -0
  632. /package/dist/{overlay/assets/slack-ochin-ndHf0LoP.js → ui/assets/slack-ochin.js} +0 -0
  633. /package/dist/{overlay/assets/snazzy-light-BlSJXAu4.js → ui/assets/snazzy-light.js} +0 -0
  634. /package/dist/{overlay/assets/solarized-dark-UTmkh7lw.js → ui/assets/solarized-dark.js} +0 -0
  635. /package/dist/{overlay/assets/solarized-light-BheCkDPT.js → ui/assets/solarized-light.js} +0 -0
  636. /package/dist/{overlay/assets/sql-Cn_v3PB0.js → ui/assets/sql.js} +0 -0
  637. /package/dist/{overlay/assets/stylus-CyKEU1Ej.js → ui/assets/stylus.js} +0 -0
  638. /package/dist/{overlay/assets/synthwave-84-NU3C_KFZ.js → ui/assets/synthwave-84.js} +0 -0
  639. /package/dist/{overlay/assets/tokyo-night-DP4TmcQl.js → ui/assets/tokyo-night.js} +0 -0
  640. /package/dist/{overlay/assets/tsx-B8rCNbgL.js → ui/assets/tsx.js} +0 -0
  641. /package/dist/{overlay/assets/typescript-mg6ATTE8.js → ui/assets/typescript.js} +0 -0
  642. /package/dist/{overlay/assets/vesper-BckBta1U.js → ui/assets/vesper.js} +0 -0
  643. /package/dist/{overlay/assets/vitesse-black-BoGvW84i.js → ui/assets/vitesse-black.js} +0 -0
  644. /package/dist/{overlay/assets/vitesse-dark-Cym-eLtO.js → ui/assets/vitesse-dark.js} +0 -0
  645. /package/dist/{overlay/assets/vitesse-light-CcmG315c.js → ui/assets/vitesse-light.js} +0 -0
  646. /package/dist/{overlay/assets/wasm-BBXxrAl7.js → ui/assets/wasm.js} +0 -0
  647. /package/dist/{overlay/assets/wasm-DQxwEHae.js → ui/assets/wasm2.js} +0 -0
  648. /package/dist/{overlay/assets/wgsl-DY4iK1q1.js → ui/assets/wgsl.js} +0 -0
  649. /package/dist/{overlay/assets/wit-CQMQOlTg.js → ui/assets/wit.js} +0 -0
  650. /package/dist/{overlay/assets/yaml-DaO7k5B1.js → ui/assets/yaml.js} +0 -0
@@ -0,0 +1,97 @@
1
+ import { captureException } from "@sentry/core";
2
+ import { EventSource } from "eventsource";
3
+ import { SENTRY_CONTENT_TYPE } from "../../shared/constants.js";
4
+ import { applyFormatter } from "../formatters/index.js";
5
+ import { logger } from "../logger.js";
6
+ import { setupSpotlight } from "../main.js";
7
+ import { getSpotlightURL } from "../utils/extras.js";
8
+ import { getBuffer } from "../utils/getBuffer.js";
9
+ import "../parser/helpers.js";
10
+ import "uuidv7";
11
+ import { formatters } from "../formatters/human/index.js";
12
+ import { formatters as formatters$1 } from "../formatters/json/index.js";
13
+ import { formatters as formatters$2 } from "../formatters/logfmt/index.js";
14
+ import { formatters as formatters$3 } from "../formatters/md/index.js";
15
+ const NAME_TO_TYPE_MAPPING = Object.freeze({
16
+ traces: ["transaction", "span"],
17
+ // profiles: ["profile"],
18
+ logs: ["log"],
19
+ attachments: ["attachment"],
20
+ errors: ["event"]
21
+ // sessions: ["session"],
22
+ // replays: ["replay_video"],
23
+ // client_report
24
+ });
25
+ const SUPPORTED_ENVELOPE_TYPES = new Set(Object.values(NAME_TO_TYPE_MAPPING).flat());
26
+ const EVERYTHING_MAGIC_WORDS = /* @__PURE__ */ new Set(["everything", "all", "*"]);
27
+ const SUPPORTED_TAIL_ARGS = /* @__PURE__ */ new Set([...Object.keys(NAME_TO_TYPE_MAPPING), ...EVERYTHING_MAGIC_WORDS]);
28
+ const FORMATTERS = {
29
+ md: formatters$3,
30
+ logfmt: formatters$2,
31
+ json: formatters$1,
32
+ human: formatters
33
+ };
34
+ const connectUpstream = async (port) => new Promise((resolve, reject) => {
35
+ const client = new EventSource(getSpotlightURL(port));
36
+ client.onerror = reject;
37
+ client.onopen = () => resolve(client);
38
+ });
39
+ async function tail({ port, cmdArgs, basePath, filesToServe, format = "logfmt" }, onItem) {
40
+ const eventTypes = cmdArgs.length > 0 ? cmdArgs.map((arg) => arg.toLowerCase()) : ["everything"];
41
+ for (const eventType of eventTypes) {
42
+ if (!SUPPORTED_TAIL_ARGS.has(eventType)) {
43
+ logger.error(`Error: Unsupported argument "${eventType}".`);
44
+ logger.error(`Supported arguments are: ${[...SUPPORTED_TAIL_ARGS].join(", ")}`);
45
+ process.exit(1);
46
+ }
47
+ }
48
+ const formatter = FORMATTERS[format];
49
+ const types = eventTypes.some((type) => EVERYTHING_MAGIC_WORDS.has(type)) ? SUPPORTED_ENVELOPE_TYPES : /* @__PURE__ */ new Set([...eventTypes.flatMap((type) => NAME_TO_TYPE_MAPPING[type] || [])]);
50
+ const onEnvelope = (envelope) => {
51
+ const [envelopeHeader, items] = envelope;
52
+ const formatted = [];
53
+ for (const item of items) {
54
+ const [{ type }, payload] = item;
55
+ if (!type || !types.has(type)) {
56
+ continue;
57
+ }
58
+ if (!(type in formatter)) {
59
+ continue;
60
+ }
61
+ if (onItem && !onItem(type, item, envelopeHeader)) {
62
+ continue;
63
+ }
64
+ formatted.push(...applyFormatter(formatter, type, payload, envelopeHeader));
65
+ }
66
+ if (formatted.length > 0) {
67
+ console.log(formatted.join("\n"));
68
+ }
69
+ };
70
+ try {
71
+ const client = await connectUpstream(port);
72
+ client.addEventListener(SENTRY_CONTENT_TYPE, (event) => onEnvelope(JSON.parse(event.data)));
73
+ return void 0;
74
+ } catch (err) {
75
+ if (err instanceof Error && !err.message?.includes(port.toString())) {
76
+ captureException(err);
77
+ logger.error("Error when trying to connect to upstream sidecar:");
78
+ logger.error(err);
79
+ process.exit(1);
80
+ }
81
+ }
82
+ const serverInstance = await setupSpotlight({ port, filesToServe, basePath, isStandalone: true });
83
+ getBuffer().subscribe((container) => {
84
+ const parsedEnvelope = container.getParsedEnvelope();
85
+ if (parsedEnvelope) {
86
+ onEnvelope(parsedEnvelope.envelope);
87
+ }
88
+ });
89
+ return serverInstance;
90
+ }
91
+ export {
92
+ EVERYTHING_MAGIC_WORDS,
93
+ NAME_TO_TYPE_MAPPING,
94
+ SUPPORTED_TAIL_ARGS,
95
+ tail as default
96
+ };
97
+ //# sourceMappingURL=tail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tail.js","sources":["../../../src/server/cli/tail.ts"],"sourcesContent":["import type { ServerType } from \"@hono/node-server\";\nimport { captureException } from \"@sentry/core\";\nimport { EventSource } from \"eventsource\";\nimport { SENTRY_CONTENT_TYPE } from \"../constants.ts\";\nimport {\n type FormatterRegistry,\n type FormatterType,\n applyFormatter,\n humanFormatters,\n jsonFormatters,\n logfmtFormatters,\n mdFormatters,\n} from \"../formatters/index.ts\";\nimport { logger } from \"../logger.ts\";\nimport { setupSpotlight } from \"../main.ts\";\nimport type { ParsedEnvelope } from \"../parser/index.ts\";\nimport type { CLIHandlerOptions } from \"../types/cli.ts\";\nimport { getSpotlightURL } from \"../utils/extras.ts\";\nimport { getBuffer } from \"../utils/index.ts\";\n\nexport type OnItemCallback = (\n type: string,\n item: ParsedEnvelope[\"envelope\"][1][number],\n envelopeHeader: ParsedEnvelope[\"envelope\"][0],\n) => boolean;\nexport const NAME_TO_TYPE_MAPPING: Record<string, string[]> = Object.freeze({\n traces: [\"transaction\", \"span\"],\n // profiles: [\"profile\"],\n logs: [\"log\"],\n attachments: [\"attachment\"],\n errors: [\"event\"],\n // sessions: [\"session\"],\n // replays: [\"replay_video\"],\n // client_report\n});\n\nconst SUPPORTED_ENVELOPE_TYPES = new Set(Object.values(NAME_TO_TYPE_MAPPING).flat());\nexport const EVERYTHING_MAGIC_WORDS = new Set([\"everything\", \"all\", \"*\"]);\nexport const SUPPORTED_TAIL_ARGS = new Set([...Object.keys(NAME_TO_TYPE_MAPPING), ...EVERYTHING_MAGIC_WORDS]);\n\nconst FORMATTERS: Record<FormatterType, FormatterRegistry> = {\n md: mdFormatters,\n logfmt: logfmtFormatters,\n json: jsonFormatters,\n human: humanFormatters,\n};\n\nconst connectUpstream = async (port: number) =>\n new Promise<EventSource>((resolve, reject) => {\n const client = new EventSource(getSpotlightURL(port));\n client.onerror = reject;\n client.onopen = () => resolve(client);\n });\n\nexport default async function tail(\n { port, cmdArgs, basePath, filesToServe, format = \"logfmt\" }: CLIHandlerOptions,\n onItem?: OnItemCallback,\n): Promise<ServerType | undefined> {\n const eventTypes = cmdArgs.length > 0 ? cmdArgs.map(arg => arg.toLowerCase()) : [\"everything\"];\n for (const eventType of eventTypes) {\n if (!SUPPORTED_TAIL_ARGS.has(eventType)) {\n logger.error(`Error: Unsupported argument \"${eventType}\".`);\n logger.error(`Supported arguments are: ${[...SUPPORTED_TAIL_ARGS].join(\", \")}`);\n process.exit(1);\n }\n }\n\n const formatter = FORMATTERS[format];\n const types = eventTypes.some(type => EVERYTHING_MAGIC_WORDS.has(type))\n ? SUPPORTED_ENVELOPE_TYPES\n : new Set([...eventTypes.flatMap(type => NAME_TO_TYPE_MAPPING[type] || [])]);\n const onEnvelope: (envelope: ParsedEnvelope[\"envelope\"]) => void = envelope => {\n const [envelopeHeader, items] = envelope;\n const formatted: string[] = [];\n\n for (const item of items) {\n const [{ type }, payload] = item;\n\n if (!type || !types.has(type)) {\n // Skip if not a type we're interested in\n continue;\n }\n\n // Check if this event type is supported by the formatter\n if (!(type in formatter)) {\n continue;\n }\n\n if (onItem && !onItem(type, item, envelopeHeader)) {\n continue;\n }\n\n formatted.push(...applyFormatter(formatter, type as keyof FormatterRegistry, payload, envelopeHeader));\n }\n\n if (formatted.length > 0) {\n console.log(formatted.join(\"\\n\"));\n }\n };\n\n // try to connect to an already existing server first\n try {\n const client = await connectUpstream(port);\n client.addEventListener(SENTRY_CONTENT_TYPE, event => onEnvelope!(JSON.parse(event.data)));\n // Early return - don't start our own server if we can connect to an upstream one\n return undefined;\n } catch (err) {\n // if we fail, fine then we'll start our own\n if (err instanceof Error && !err.message?.includes(port.toString())) {\n captureException(err);\n logger.error(\"Error when trying to connect to upstream sidecar:\");\n logger.error(err);\n process.exit(1);\n }\n }\n\n const serverInstance = await setupSpotlight({ port, filesToServe, basePath, isStandalone: true });\n\n // Subscribe the onEnvelope callback to the message buffer\n // This ensures it gets called whenever any envelope is added to the buffer\n getBuffer().subscribe(container => {\n const parsedEnvelope = container.getParsedEnvelope();\n if (parsedEnvelope) {\n onEnvelope(parsedEnvelope.envelope);\n }\n });\n\n return serverInstance;\n}\n"],"names":["mdFormatters","logfmtFormatters","jsonFormatters","humanFormatters"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { FormatterType } from './formatters/types.ts';
2
+ import { CLIHandler, CLIHandlerOptions } from './types/cli.ts';
3
+ export type CLIArgs = {
4
+ port: number;
5
+ debug: boolean;
6
+ help: boolean;
7
+ format: FormatterType;
8
+ cmd: string | undefined;
9
+ cmdArgs: string[];
10
+ };
11
+ export declare function parseCLIArgs(): CLIArgs;
12
+ export declare const CLI_CMD_MAP: Map<string | undefined, CLIHandler>;
13
+ export declare function main({ basePath, filesToServe, }?: {
14
+ basePath?: CLIHandlerOptions["basePath"];
15
+ filesToServe?: CLIHandlerOptions["filesToServe"];
16
+ }): Promise<any>;
@@ -0,0 +1,120 @@
1
+ import { parseArgs } from "node:util";
2
+ import showHelp from "./cli/help.js";
3
+ import mcp from "./cli/mcp.js";
4
+ import run from "./cli/run.js";
5
+ import server from "./cli/server.js";
6
+ import tail from "./cli/tail.js";
7
+ import { DEFAULT_PORT } from "./constants.js";
8
+ import { AVAILABLE_FORMATTERS } from "./formatters/types.js";
9
+ import { enableDebugLogging, logger } from "./logger.js";
10
+ const MAGIC_PORT_FOR_DYNAMIC_ASSIGNMENT = 0;
11
+ const PARSE_ARGS_CONFIG = {
12
+ options: {
13
+ port: {
14
+ type: "string",
15
+ short: "p",
16
+ default: void 0
17
+ },
18
+ debug: {
19
+ type: "boolean",
20
+ short: "d",
21
+ default: false
22
+ },
23
+ format: {
24
+ type: "string",
25
+ short: "f",
26
+ default: "human"
27
+ },
28
+ // Deprecated -- use the positional `mcp` argument instead
29
+ "stdio-mcp": {
30
+ type: "boolean",
31
+ default: false
32
+ },
33
+ help: {
34
+ type: "boolean",
35
+ short: "h",
36
+ default: false
37
+ }
38
+ },
39
+ allowPositionals: true,
40
+ strict: true
41
+ };
42
+ function parseCLIArgs() {
43
+ const args = Array.from(process.argv).slice(2);
44
+ const preParse = parseArgs({
45
+ ...PARSE_ARGS_CONFIG,
46
+ strict: false,
47
+ tokens: true
48
+ });
49
+ let cmdArgs = void 0;
50
+ const runToken = preParse.tokens.find((token) => token.kind === "positional" && token.value === "run");
51
+ if (runToken) {
52
+ const cutOff = preParse.tokens.find((token) => token.index > runToken.index && token.kind === "positional");
53
+ cmdArgs = cutOff ? args.splice(cutOff.index) : [];
54
+ }
55
+ const { values, positionals } = parseArgs({
56
+ args,
57
+ ...PARSE_ARGS_CONFIG
58
+ });
59
+ const portInput = positionals.length === 1 && /^\d{1,5}$/.test(positionals[0]) ? positionals.shift() : values.port;
60
+ const port = portInput != null ? Number(portInput) : runToken ? MAGIC_PORT_FOR_DYNAMIC_ASSIGNMENT : DEFAULT_PORT;
61
+ if (Number.isNaN(port)) {
62
+ console.error(`Error: Invalid port number '${portInput}'`);
63
+ console.error("Port must be a valid number between 1 and 65535");
64
+ process.exit(1);
65
+ }
66
+ if (port < 0 || port > 65535) {
67
+ console.error(`Error: Port ${port} is out of valid range (1-65535 or 0 for automatic assignment)`);
68
+ process.exit(1);
69
+ }
70
+ if (values["stdio-mcp"]) {
71
+ positionals.unshift("mcp");
72
+ console.warn("Warning: --stdio-mcp is deprecated. Please use the positional argument 'mcp' instead.");
73
+ }
74
+ const format = values.format;
75
+ if (!AVAILABLE_FORMATTERS.includes(format)) {
76
+ console.error(`Error: Invalid format '${format}'`);
77
+ console.error(`Valid formats are: ${AVAILABLE_FORMATTERS.join(", ")}`);
78
+ process.exit(1);
79
+ }
80
+ const result = {
81
+ debug: values.debug,
82
+ help: values.help,
83
+ format,
84
+ port,
85
+ cmd: positionals[0],
86
+ cmdArgs: cmdArgs ?? positionals.slice(1)
87
+ };
88
+ return result;
89
+ }
90
+ const CLI_CMD_MAP = /* @__PURE__ */ new Map([
91
+ ["help", showHelp],
92
+ ["mcp", mcp],
93
+ ["tail", tail],
94
+ ["run", run],
95
+ ["server", server],
96
+ [void 0, server]
97
+ ]);
98
+ async function main({
99
+ basePath,
100
+ filesToServe
101
+ } = {}) {
102
+ let { cmd, cmdArgs, help, port, debug, format } = parseCLIArgs();
103
+ if (debug || process.env.SPOTLIGHT_DEBUG) {
104
+ enableDebugLogging(true);
105
+ }
106
+ const spotlightVersion = "4.6.0";
107
+ logger.info(`Spotlight by Sentry - v${spotlightVersion}`);
108
+ if (help) {
109
+ cmd = "help";
110
+ cmdArgs = [];
111
+ }
112
+ const handler = CLI_CMD_MAP.get(cmd) || showHelp;
113
+ return await handler({ cmd, cmdArgs, port, help, debug, format, basePath, filesToServe });
114
+ }
115
+ export {
116
+ CLI_CMD_MAP,
117
+ main,
118
+ parseCLIArgs
119
+ };
120
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sources":["../../src/server/cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { parseArgs } from \"node:util\";\nimport showHelp from \"./cli/help.ts\";\nimport mcp from \"./cli/mcp.ts\";\nimport run from \"./cli/run.ts\";\nimport server from \"./cli/server.ts\";\nimport tail from \"./cli/tail.ts\";\nimport { DEFAULT_PORT } from \"./constants.ts\";\nimport { AVAILABLE_FORMATTERS } from \"./formatters/types.ts\";\nimport type { FormatterType } from \"./formatters/types.ts\";\nimport { enableDebugLogging, logger } from \"./logger.ts\";\nimport type { CLIHandler, CLIHandlerOptions } from \"./types/cli.ts\";\n\n// When port is set to `0` for a server to listen on,\n// it tells the OS to find a random available port.\n// This can then be retrieved after the server starts.\nconst MAGIC_PORT_FOR_DYNAMIC_ASSIGNMENT = 0;\nconst PARSE_ARGS_CONFIG = {\n options: {\n port: {\n type: \"string\",\n short: \"p\",\n default: undefined,\n },\n debug: {\n type: \"boolean\",\n short: \"d\",\n default: false,\n },\n format: {\n type: \"string\",\n short: \"f\",\n default: \"human\",\n },\n // Deprecated -- use the positional `mcp` argument instead\n \"stdio-mcp\": {\n type: \"boolean\",\n default: false,\n },\n help: {\n type: \"boolean\",\n short: \"h\",\n default: false,\n },\n },\n allowPositionals: true,\n strict: true,\n} as const;\n\nexport type CLIArgs = {\n port: number;\n debug: boolean;\n help: boolean;\n format: FormatterType;\n cmd: string | undefined;\n cmdArgs: string[];\n};\n\nexport function parseCLIArgs(): CLIArgs {\n const args = Array.from(process.argv).slice(2);\n const preParse = parseArgs({\n ...PARSE_ARGS_CONFIG,\n strict: false,\n tokens: true,\n });\n let cmdArgs: string[] | undefined = undefined;\n const runToken = preParse.tokens.find(token => token.kind === \"positional\" && token.value === \"run\");\n if (runToken) {\n const cutOff = preParse.tokens.find(token => token.index > runToken.index && token.kind === \"positional\");\n cmdArgs = cutOff ? args.splice(cutOff.index) : [];\n }\n const { values, positionals } = parseArgs({\n args,\n ...PARSE_ARGS_CONFIG,\n });\n\n // Handle legacy positional argument for port (backwards compatibility)\n const portInput = positionals.length === 1 && /^\\d{1,5}$/.test(positionals[0]) ? positionals.shift() : values.port;\n\n const port = portInput != null ? Number(portInput) : runToken ? MAGIC_PORT_FOR_DYNAMIC_ASSIGNMENT : DEFAULT_PORT;\n if (Number.isNaN(port)) {\n // Validate port number\n console.error(`Error: Invalid port number '${portInput}'`);\n console.error(\"Port must be a valid number between 1 and 65535\");\n process.exit(1);\n }\n\n if (port < 0 || port > 65535) {\n console.error(`Error: Port ${port} is out of valid range (1-65535 or 0 for automatic assignment)`);\n process.exit(1);\n }\n\n if (values[\"stdio-mcp\"]) {\n positionals.unshift(\"mcp\");\n console.warn(\"Warning: --stdio-mcp is deprecated. Please use the positional argument 'mcp' instead.\");\n }\n\n const format = values.format as string;\n if (!AVAILABLE_FORMATTERS.includes(format as FormatterType)) {\n console.error(`Error: Invalid format '${format}'`);\n console.error(`Valid formats are: ${AVAILABLE_FORMATTERS.join(\", \")}`);\n process.exit(1);\n }\n\n const result: CLIArgs = {\n debug: values.debug as boolean,\n help: values.help as boolean,\n format: format as FormatterType,\n port,\n cmd: positionals[0],\n cmdArgs: cmdArgs ?? positionals.slice(1),\n };\n\n return result;\n}\nexport const CLI_CMD_MAP = new Map<string | undefined, CLIHandler>([\n [\"help\", showHelp],\n [\"mcp\", mcp],\n [\"tail\", tail],\n [\"run\", run],\n [\"server\", server],\n [undefined, server],\n]);\n\nexport async function main({\n basePath,\n filesToServe,\n}: { basePath?: CLIHandlerOptions[\"basePath\"]; filesToServe?: CLIHandlerOptions[\"filesToServe\"] } = {}) {\n let { cmd, cmdArgs, help, port, debug, format } = parseCLIArgs();\n if (debug || process.env.SPOTLIGHT_DEBUG) {\n enableDebugLogging(true);\n }\n const spotlightVersion = process.env.npm_package_version || \"{unknown}\";\n logger.info(`Spotlight by Sentry - v${spotlightVersion}`);\n\n if (help) {\n cmd = \"help\";\n cmdArgs = [];\n }\n\n const handler = CLI_CMD_MAP.get(cmd) || showHelp;\n\n return await handler({ cmd, cmdArgs, port, help, debug, format, basePath, filesToServe });\n}\n"],"names":[],"mappings":";;;;;;;;;AAgBA,MAAM,oCAAoC;AAC1C,MAAM,oBAAoB;AAAA,EACxB,SAAS;AAAA,IACP,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,SAAS;AAAA,IAAA;AAAA,IAEX,OAAO;AAAA,MACL,MAAM;AAAA,MACN,OAAO;AAAA,MACP,SAAS;AAAA,IAAA;AAAA,IAEX,QAAQ;AAAA,MACN,MAAM;AAAA,MACN,OAAO;AAAA,MACP,SAAS;AAAA,IAAA;AAAA;AAAA,IAGX,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA,IAAA;AAAA,IAEX,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,OAAO;AAAA,MACP,SAAS;AAAA,IAAA;AAAA,EACX;AAAA,EAEF,kBAAkB;AAAA,EAClB,QAAQ;AACV;AAWO,SAAS,eAAwB;AACtC,QAAM,OAAO,MAAM,KAAK,QAAQ,IAAI,EAAE,MAAM,CAAC;AAC7C,QAAM,WAAW,UAAU;AAAA,IACzB,GAAG;AAAA,IACH,QAAQ;AAAA,IACR,QAAQ;AAAA,EAAA,CACT;AACD,MAAI,UAAgC;AACpC,QAAM,WAAW,SAAS,OAAO,KAAK,CAAA,UAAS,MAAM,SAAS,gBAAgB,MAAM,UAAU,KAAK;AACnG,MAAI,UAAU;AACZ,UAAM,SAAS,SAAS,OAAO,KAAK,CAAA,UAAS,MAAM,QAAQ,SAAS,SAAS,MAAM,SAAS,YAAY;AACxG,cAAU,SAAS,KAAK,OAAO,OAAO,KAAK,IAAI,CAAA;AAAA,EACjD;AACA,QAAM,EAAE,QAAQ,YAAA,IAAgB,UAAU;AAAA,IACxC;AAAA,IACA,GAAG;AAAA,EAAA,CACJ;AAGD,QAAM,YAAY,YAAY,WAAW,KAAK,YAAY,KAAK,YAAY,CAAC,CAAC,IAAI,YAAY,MAAA,IAAU,OAAO;AAE9G,QAAM,OAAO,aAAa,OAAO,OAAO,SAAS,IAAI,WAAW,oCAAoC;AACpG,MAAI,OAAO,MAAM,IAAI,GAAG;AAEtB,YAAQ,MAAM,+BAA+B,SAAS,GAAG;AACzD,YAAQ,MAAM,iDAAiD;AAC/D,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,MAAI,OAAO,KAAK,OAAO,OAAO;AAC5B,YAAQ,MAAM,eAAe,IAAI,gEAAgE;AACjG,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,MAAI,OAAO,WAAW,GAAG;AACvB,gBAAY,QAAQ,KAAK;AACzB,YAAQ,KAAK,uFAAuF;AAAA,EACtG;AAEA,QAAM,SAAS,OAAO;AACtB,MAAI,CAAC,qBAAqB,SAAS,MAAuB,GAAG;AAC3D,YAAQ,MAAM,0BAA0B,MAAM,GAAG;AACjD,YAAQ,MAAM,sBAAsB,qBAAqB,KAAK,IAAI,CAAC,EAAE;AACrE,YAAQ,KAAK,CAAC;AAAA,EAChB;AAEA,QAAM,SAAkB;AAAA,IACtB,OAAO,OAAO;AAAA,IACd,MAAM,OAAO;AAAA,IACb;AAAA,IACA;AAAA,IACA,KAAK,YAAY,CAAC;AAAA,IAClB,SAAS,WAAW,YAAY,MAAM,CAAC;AAAA,EAAA;AAGzC,SAAO;AACT;AACO,MAAM,kCAAkB,IAAoC;AAAA,EACjE,CAAC,QAAQ,QAAQ;AAAA,EACjB,CAAC,OAAO,GAAG;AAAA,EACX,CAAC,QAAQ,IAAI;AAAA,EACb,CAAC,OAAO,GAAG;AAAA,EACX,CAAC,UAAU,MAAM;AAAA,EACjB,CAAC,QAAW,MAAM;AACpB,CAAC;AAED,eAAsB,KAAK;AAAA,EACzB;AAAA,EACA;AACF,IAAoG,IAAI;AACtG,MAAI,EAAE,KAAK,SAAS,MAAM,MAAM,OAAO,OAAA,IAAW,aAAA;AAClD,MAAI,SAAS,QAAQ,IAAI,iBAAiB;AACxC,uBAAmB,IAAI;AAAA,EACzB;AACA,QAAM,mBAAmB;AACzB,SAAO,KAAK,0BAA0B,gBAAgB,EAAE;AAExD,MAAI,MAAM;AACR,UAAM;AACN,cAAU,CAAA;AAAA,EACZ;AAEA,QAAM,UAAU,YAAY,IAAI,GAAG,KAAK;AAExC,SAAO,MAAM,QAAQ,EAAE,KAAK,SAAS,MAAM,MAAM,OAAO,QAAQ,UAAU,aAAA,CAAc;AAC1F;"}
@@ -0,0 +1,3 @@
1
+ export { CONTEXT_LINES_ENDPOINT, RAW_TYPES, SENTRY_CONTENT_TYPE } from '../shared/constants.ts';
2
+ export declare const DEFAULT_PORT = 8969;
3
+ export declare const SERVER_IDENTIFIER = "spotlight-by-sentry";
@@ -0,0 +1,7 @@
1
+ const DEFAULT_PORT = 8969;
2
+ const SERVER_IDENTIFIER = "spotlight-by-sentry";
3
+ export {
4
+ DEFAULT_PORT,
5
+ SERVER_IDENTIFIER
6
+ };
7
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sources":["../../src/server/constants.ts"],"sourcesContent":["// Re-export shared constants\nexport { CONTEXT_LINES_ENDPOINT, RAW_TYPES, SENTRY_CONTENT_TYPE } from \"../shared/constants.ts\";\n\n// Spotlight server constants\nexport const DEFAULT_PORT = 8969;\nexport const SERVER_IDENTIFIER = \"spotlight-by-sentry\";\n"],"names":[],"mappings":"AAIO,MAAM,eAAe;AACrB,MAAM,oBAAoB;"}
@@ -0,0 +1,6 @@
1
+ import { Envelope } from '@sentry/core';
2
+ import { SentryErrorEvent } from '../../parser/index.ts';
3
+ /**
4
+ * Format an error event with envelope headers for source inference
5
+ */
6
+ export declare function formatError(event: SentryErrorEvent, envelopeHeader: Envelope[0]): string[];
@@ -0,0 +1,28 @@
1
+ import { inferEnvelopeSource, formatLogLine } from "./utils.js";
2
+ function formatError(event, envelopeHeader) {
3
+ const source = inferEnvelopeSource(envelopeHeader, event);
4
+ const exception = event.exception?.values?.[0];
5
+ const errorType = exception?.type || "Error";
6
+ const errorValue = exception?.value || event.message || "Unknown error";
7
+ let message = `${errorType}: ${errorValue}`;
8
+ const frames = exception?.stacktrace?.frames;
9
+ if (frames?.length) {
10
+ const frame = frames.find((f) => f.in_app) || frames[frames.length - 1];
11
+ if (frame) {
12
+ if (frame.filename && frame.lineno) {
13
+ const location = frame.colno ? `${frame.filename}:${frame.lineno}:${frame.colno}` : `${frame.filename}:${frame.lineno}`;
14
+ message += ` [${location}]`;
15
+ } else if (frame.filename) {
16
+ message += ` [${frame.filename}]`;
17
+ }
18
+ if (frame.function && !message.includes(frame.function)) {
19
+ message += ` [${frame.function}]`;
20
+ }
21
+ }
22
+ }
23
+ return [formatLogLine(event.timestamp, source, "error", message)];
24
+ }
25
+ export {
26
+ formatError
27
+ };
28
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sources":["../../../../src/server/formatters/human/errors.ts"],"sourcesContent":["import type { Envelope } from \"@sentry/core\";\nimport type { SentryErrorEvent } from \"../../parser/index.ts\";\nimport { formatLogLine, inferEnvelopeSource } from \"./utils.ts\";\n\n/**\n * Format an error event with envelope headers for source inference\n */\nexport function formatError(event: SentryErrorEvent, envelopeHeader: Envelope[0]): string[] {\n const source = inferEnvelopeSource(envelopeHeader, event);\n\n const exception = event.exception?.values?.[0];\n const errorType = exception?.type || \"Error\";\n const errorValue = exception?.value || event.message || \"Unknown error\";\n\n let message = `${errorType}: ${errorValue}`;\n\n const frames = exception?.stacktrace?.frames;\n if (frames?.length) {\n const frame = frames.find((f: any) => f.in_app) || frames[frames.length - 1];\n if (frame) {\n if (frame.filename && frame.lineno) {\n const location = frame.colno\n ? `${frame.filename}:${frame.lineno}:${frame.colno}`\n : `${frame.filename}:${frame.lineno}`;\n message += ` [${location}]`;\n } else if (frame.filename) {\n message += ` [${frame.filename}]`;\n }\n\n if (frame.function && !message.includes(frame.function)) {\n message += ` [${frame.function}]`;\n }\n }\n }\n\n return [formatLogLine(event.timestamp, source, \"error\", message)];\n}\n"],"names":[],"mappings":";AAOO,SAAS,YAAY,OAAyB,gBAAuC;AAC1F,QAAM,SAAS,oBAAoB,gBAAgB,KAAK;AAExD,QAAM,YAAY,MAAM,WAAW,SAAS,CAAC;AAC7C,QAAM,YAAY,WAAW,QAAQ;AACrC,QAAM,aAAa,WAAW,SAAS,MAAM,WAAW;AAExD,MAAI,UAAU,GAAG,SAAS,KAAK,UAAU;AAEzC,QAAM,SAAS,WAAW,YAAY;AACtC,MAAI,QAAQ,QAAQ;AAClB,UAAM,QAAQ,OAAO,KAAK,CAAC,MAAW,EAAE,MAAM,KAAK,OAAO,OAAO,SAAS,CAAC;AAC3E,QAAI,OAAO;AACT,UAAI,MAAM,YAAY,MAAM,QAAQ;AAClC,cAAM,WAAW,MAAM,QACnB,GAAG,MAAM,QAAQ,IAAI,MAAM,MAAM,IAAI,MAAM,KAAK,KAChD,GAAG,MAAM,QAAQ,IAAI,MAAM,MAAM;AACrC,mBAAW,KAAK,QAAQ;AAAA,MAC1B,WAAW,MAAM,UAAU;AACzB,mBAAW,KAAK,MAAM,QAAQ;AAAA,MAChC;AAEA,UAAI,MAAM,YAAY,CAAC,QAAQ,SAAS,MAAM,QAAQ,GAAG;AACvD,mBAAW,KAAK,MAAM,QAAQ;AAAA,MAChC;AAAA,IACF;AAAA,EACF;AAEA,SAAO,CAAC,cAAc,MAAM,WAAW,QAAQ,SAAS,OAAO,CAAC;AAClE;"}
@@ -0,0 +1,2 @@
1
+ import { FormatterRegistry } from '../types.ts';
2
+ export declare const formatters: FormatterRegistry;
@@ -0,0 +1,13 @@
1
+ import { isTraceEvent, isLogEvent, isErrorEvent } from "../../parser/helpers.js";
2
+ import { formatError } from "./errors.js";
3
+ import { formatLog } from "./logs.js";
4
+ import { formatTrace } from "./traces.js";
5
+ const formatters = {
6
+ event: { typeGuard: isErrorEvent, format: formatError },
7
+ log: { typeGuard: isLogEvent, format: formatLog },
8
+ transaction: { typeGuard: isTraceEvent, format: formatTrace }
9
+ };
10
+ export {
11
+ formatters
12
+ };
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/server/formatters/human/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;"}
@@ -0,0 +1,6 @@
1
+ import { Envelope } from '@sentry/core';
2
+ import { SentryLogEvent } from '../../parser/index.ts';
3
+ /**
4
+ * Format a log event with envelope headers for source inference
5
+ */
6
+ export declare function formatLog(event: SentryLogEvent, envelopeHeader: Envelope[0]): string[];
@@ -0,0 +1,23 @@
1
+ import { inferEnvelopeSource, formatLogLine } from "./utils.js";
2
+ function formatSingleLog(log, source) {
3
+ const level = log.level || "log";
4
+ const message = log.body || "";
5
+ const attrs = [];
6
+ if (log.attributes) {
7
+ for (const [key, attr] of Object.entries(log.attributes)) {
8
+ if (!key.startsWith("sentry.") && attr.value !== void 0 && attr.value !== null) {
9
+ attrs.push(`[${key}=${attr.value}]`);
10
+ }
11
+ }
12
+ }
13
+ const fullMessage = attrs.length > 0 ? `${message} ${attrs.join(" ")}` : message;
14
+ return formatLogLine(log.timestamp, source, level, fullMessage);
15
+ }
16
+ function formatLog(event, envelopeHeader) {
17
+ const source = inferEnvelopeSource(envelopeHeader, event);
18
+ return event.items.map((log) => formatSingleLog(log, source));
19
+ }
20
+ export {
21
+ formatLog
22
+ };
23
+ //# sourceMappingURL=logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.js","sources":["../../../../src/server/formatters/human/logs.ts"],"sourcesContent":["import type { Envelope, SerializedLog } from \"@sentry/core\";\nimport type { SentryLogEvent } from \"../../parser/index.ts\";\nimport { type SourceType, formatLogLine, inferEnvelopeSource } from \"./utils.ts\";\n\n/**\n * Format a single log entry with source inference\n */\nfunction formatSingleLog(log: SerializedLog, source: SourceType): string {\n const level = log.level || \"log\";\n const message = log.body || \"\";\n\n const attrs: string[] = [];\n if (log.attributes) {\n for (const [key, attr] of Object.entries(log.attributes)) {\n if (!key.startsWith(\"sentry.\") && attr.value !== undefined && attr.value !== null) {\n attrs.push(`[${key}=${attr.value}]`);\n }\n }\n }\n\n const fullMessage = attrs.length > 0 ? `${message} ${attrs.join(\" \")}` : message;\n\n return formatLogLine(log.timestamp, source, level, fullMessage);\n}\n\n/**\n * Format a log event with envelope headers for source inference\n */\nexport function formatLog(event: SentryLogEvent, envelopeHeader: Envelope[0]): string[] {\n const source = inferEnvelopeSource(envelopeHeader, event);\n return event.items.map(log => formatSingleLog(log, source));\n}\n"],"names":[],"mappings":";AAOA,SAAS,gBAAgB,KAAoB,QAA4B;AACvE,QAAM,QAAQ,IAAI,SAAS;AAC3B,QAAM,UAAU,IAAI,QAAQ;AAE5B,QAAM,QAAkB,CAAA;AACxB,MAAI,IAAI,YAAY;AAClB,eAAW,CAAC,KAAK,IAAI,KAAK,OAAO,QAAQ,IAAI,UAAU,GAAG;AACxD,UAAI,CAAC,IAAI,WAAW,SAAS,KAAK,KAAK,UAAU,UAAa,KAAK,UAAU,MAAM;AACjF,cAAM,KAAK,IAAI,GAAG,IAAI,KAAK,KAAK,GAAG;AAAA,MACrC;AAAA,IACF;AAAA,EACF;AAEA,QAAM,cAAc,MAAM,SAAS,IAAI,GAAG,OAAO,IAAI,MAAM,KAAK,GAAG,CAAC,KAAK;AAEzE,SAAO,cAAc,IAAI,WAAW,QAAQ,OAAO,WAAW;AAChE;AAKO,SAAS,UAAU,OAAuB,gBAAuC;AACtF,QAAM,SAAS,oBAAoB,gBAAgB,KAAK;AACxD,SAAO,MAAM,MAAM,IAAI,SAAO,gBAAgB,KAAK,MAAM,CAAC;AAC5D;"}
@@ -0,0 +1,6 @@
1
+ import { Envelope } from '@sentry/core';
2
+ import { SentryTransactionEvent } from '../../parser/index.ts';
3
+ /**
4
+ * Format a trace/transaction event with envelope headers for source inference
5
+ */
6
+ export declare function formatTrace(event: SentryTransactionEvent, envelopeHeader: Envelope[0]): string[];
@@ -0,0 +1,29 @@
1
+ import { getDuration } from "../utils.js";
2
+ import { inferEnvelopeSource, formatLogLine } from "./utils.js";
3
+ function formatTrace(event, envelopeHeader) {
4
+ const source = inferEnvelopeSource(envelopeHeader, event);
5
+ const transaction = event.transaction;
6
+ const trace = event.contexts?.trace;
7
+ let message = transaction || trace?.description || "Transaction";
8
+ const op = trace?.op;
9
+ if (op && op !== "default" && op !== "unknown") {
10
+ message = `[${op}] ${message}`;
11
+ }
12
+ const duration = getDuration(event.timestamp, event.start_timestamp);
13
+ if (duration !== void 0) {
14
+ message += ` [${Math.round(duration)}ms]`;
15
+ }
16
+ const status = trace?.status;
17
+ if (status && status !== "ok") {
18
+ message += ` [${status}]`;
19
+ }
20
+ const spanCount = event.spans?.length;
21
+ if (spanCount && spanCount > 0) {
22
+ message += ` [${spanCount} span${spanCount === 1 ? "" : "s"}]`;
23
+ }
24
+ return [formatLogLine(event.timestamp, source, "trace", message)];
25
+ }
26
+ export {
27
+ formatTrace
28
+ };
29
+ //# sourceMappingURL=traces.js.map
@@ -0,0 +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;"}
@@ -0,0 +1,43 @@
1
+ import { Envelope } from '@sentry/core';
2
+ export declare const SOURCE_TYPES: readonly ["browser", "mobile", "server"];
3
+ export type SourceType = (typeof SOURCE_TYPES)[number];
4
+ export declare const LOG_LEVELS: readonly ["error", "warning", "log", "info", "trace", "debug"];
5
+ export type LogLevel = (typeof LOG_LEVELS)[number];
6
+ export declare const SOURCE_COLORS: Record<SourceType, (text: string) => string>;
7
+ export declare const LOG_LEVEL_COLORS: Record<LogLevel, (text: string) => string>;
8
+ /**
9
+ * Infer the source of an envelope as browser, mobile, or server using multiple signals
10
+ * Priority order:
11
+ * 1. Sender User-Agent (from HTTP request header)
12
+ * 2. Platform & Runtime tags (from event payload)
13
+ * 3. SDK name (fallback)
14
+ *
15
+ * Rules based on https://release-registry.services.sentry.io/sdks
16
+ */
17
+ export declare function inferEnvelopeSource(envelopeHeader: Envelope[0], event?: any): SourceType;
18
+ /**
19
+ * Format timestamp as local time HH:MM:SS
20
+ */
21
+ export declare function formatLocalTime(timestamp?: number | string): string;
22
+ /**
23
+ * Padding helper for vertical alignment
24
+ */
25
+ export declare function padLabel(label: string, width: number): string;
26
+ export declare const SOURCE_WIDTH: number;
27
+ export declare const TYPE_WIDTH: number;
28
+ /**
29
+ * Colorize time with dim gray
30
+ */
31
+ export declare function colorizeTime(time: string): string;
32
+ /**
33
+ * Colorize source based on envelope source
34
+ */
35
+ export declare function colorizeSource(source: string): string;
36
+ /**
37
+ * Colorize event type
38
+ */
39
+ export declare function colorizeType(type: string): string;
40
+ /**
41
+ * Format a complete log line with proper alignment and colors
42
+ */
43
+ export declare function formatLogLine(timestamp: number | string | undefined, source: SourceType, type: string, message: string): string;
@@ -0,0 +1,113 @@
1
+ import chalk from "chalk";
2
+ import { parseBrowserFromUserAgent } from "../../routes/stream/userAgent.js";
3
+ const SOURCE_TYPES = ["browser", "mobile", "server"];
4
+ const LOG_LEVELS = ["error", "warning", "log", "info", "trace", "debug"];
5
+ const SOURCE_COLORS = {
6
+ browser: chalk.yellow,
7
+ mobile: chalk.blue,
8
+ server: chalk.magenta
9
+ };
10
+ const LOG_LEVEL_COLORS = {
11
+ error: chalk.red.bold,
12
+ warning: chalk.hex("#FFA500"),
13
+ // Orange
14
+ log: chalk.white,
15
+ info: chalk.cyan,
16
+ trace: chalk.green,
17
+ debug: chalk.dim
18
+ };
19
+ function isBrowserUserAgent(userAgent) {
20
+ const parsed = parseBrowserFromUserAgent(userAgent);
21
+ return parsed !== "unknown" && (parsed.includes("Chrome") || parsed.includes("Firefox") || parsed.includes("Safari") || parsed.includes("Edge"));
22
+ }
23
+ function inferEnvelopeSource(envelopeHeader, event) {
24
+ const sdkName = envelopeHeader?.sdk?.name || "";
25
+ if (sdkName.includes("cocoa") || sdkName.includes("android") || sdkName.includes("react-native") || sdkName.includes("flutter") || sdkName.includes("capacitor") || sdkName.includes("cordova") || sdkName.includes("xamarin") || sdkName.includes("maui") || sdkName.includes("unity") || sdkName.includes("kotlin.kmp")) {
26
+ return "mobile";
27
+ }
28
+ const senderUserAgent = envelopeHeader.__spotlight_sender_user_agent;
29
+ if (senderUserAgent && typeof senderUserAgent === "string") {
30
+ if (isBrowserUserAgent(senderUserAgent)) {
31
+ return "browser";
32
+ }
33
+ }
34
+ if (event?.tags?.runtime === "browser") {
35
+ return "browser";
36
+ }
37
+ if (event?.contexts?.runtime?.name) {
38
+ return "server";
39
+ }
40
+ if (event?.server_name) {
41
+ return "server";
42
+ }
43
+ const platform = event?.platform;
44
+ if (platform === "node" || platform === "python" || platform === "ruby" || platform === "php" || platform === "java" || platform === "go" || platform === "rust" || platform === "perl" || platform === "elixir" || platform === "csharp" || platform === "dotnet") {
45
+ return "server";
46
+ }
47
+ if (sdkName.startsWith("sentry.javascript.") && !sdkName.includes("node") && !sdkName.includes("bun") && !sdkName.includes("deno") && !sdkName.includes("electron") && !sdkName.includes("serverless") && !sdkName.includes("cloudflare") && !sdkName.includes("vercel-edge") && !sdkName.includes("wasm") && !sdkName.includes("opentelemetry") && !sdkName.includes("nextjs") && !sdkName.includes("remix") && !sdkName.includes("gatsby") && !sdkName.includes("astro") && !sdkName.includes("nuxt") && !sdkName.includes("sveltekit") && !sdkName.includes("solidstart") && !sdkName.includes("nestjs") && !sdkName.includes("tanstackstart")) {
48
+ return "browser";
49
+ }
50
+ if (sdkName.includes("blazor.webassembly")) {
51
+ return "browser";
52
+ }
53
+ return "server";
54
+ }
55
+ function formatLocalTime(timestamp) {
56
+ let date;
57
+ if (!timestamp) {
58
+ date = /* @__PURE__ */ new Date();
59
+ } else if (typeof timestamp === "string") {
60
+ date = new Date(timestamp);
61
+ } else {
62
+ date = new Date(timestamp * 1e3);
63
+ }
64
+ if (Number.isNaN(date.getTime())) {
65
+ return "??:??:??";
66
+ }
67
+ const hours = date.getHours().toString().padStart(2, "0");
68
+ const minutes = date.getMinutes().toString().padStart(2, "0");
69
+ const seconds = date.getSeconds().toString().padStart(2, "0");
70
+ return `${hours}:${minutes}:${seconds}`;
71
+ }
72
+ function padLabel(label, width) {
73
+ return label.padEnd(width);
74
+ }
75
+ const SOURCE_WIDTH = Math.max(...SOURCE_TYPES.map((s) => `[${s.toUpperCase()}]`.length));
76
+ const TYPE_WIDTH = Math.max(...LOG_LEVELS.map((l) => `[${l.toUpperCase()}]`.length));
77
+ function colorizeTime(time) {
78
+ return chalk.gray(time);
79
+ }
80
+ function colorizeSource(source) {
81
+ const bracketed = `[${source}]`;
82
+ const padded = padLabel(bracketed, SOURCE_WIDTH);
83
+ const colorFn = SOURCE_COLORS[source] || chalk.white;
84
+ return colorFn(padded);
85
+ }
86
+ function colorizeType(type) {
87
+ const bracketed = `[${type.toUpperCase()}]`;
88
+ const padded = padLabel(bracketed, TYPE_WIDTH);
89
+ const colorFn = LOG_LEVEL_COLORS[type.toLowerCase()] || chalk.white;
90
+ return colorFn(padded);
91
+ }
92
+ function formatLogLine(timestamp, source, type, message) {
93
+ const time = colorizeTime(formatLocalTime(timestamp));
94
+ const coloredSource = colorizeSource(source);
95
+ const coloredType = colorizeType(type);
96
+ return `${time} ${coloredType} ${coloredSource} ${message}`;
97
+ }
98
+ export {
99
+ LOG_LEVELS,
100
+ LOG_LEVEL_COLORS,
101
+ SOURCE_COLORS,
102
+ SOURCE_TYPES,
103
+ SOURCE_WIDTH,
104
+ TYPE_WIDTH,
105
+ colorizeSource,
106
+ colorizeTime,
107
+ colorizeType,
108
+ formatLocalTime,
109
+ formatLogLine,
110
+ inferEnvelopeSource,
111
+ padLabel
112
+ };
113
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +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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"}
@@ -0,0 +1,11 @@
1
+ import { Envelope, EnvelopeItem } from '@sentry/core';
2
+ import { FormatterRegistry } from './types.ts';
3
+ export * from './types.ts';
4
+ export { formatters as mdFormatters } from './md/index.ts';
5
+ export { formatters as logfmtFormatters } from './logfmt/index.ts';
6
+ export { formatters as jsonFormatters } from './json/index.ts';
7
+ export { formatters as humanFormatters } from './human/index.ts';
8
+ /**
9
+ * Generic function to get a formatter from registry and apply it
10
+ */
11
+ export declare function applyFormatter<K extends keyof FormatterRegistry>(registry: FormatterRegistry, eventType: K, payload: EnvelopeItem[1], envelopeHeader: Envelope[0]): string[];