@spotlightjs/overlay 1.6.0 → 1.8.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 (44) hide show
  1. package/dist/index-220f086f.js +36492 -0
  2. package/dist/index-220f086f.js.map +1 -0
  3. package/dist/main-bc9342e9.js +2782 -0
  4. package/dist/main-bc9342e9.js.map +1 -0
  5. package/dist/sentry-spotlight.js +14 -42405
  6. package/dist/sentry-spotlight.js.map +1 -1
  7. package/dist/sentry-spotlight.umd.cjs +205 -232
  8. package/dist/sentry-spotlight.umd.cjs.map +1 -1
  9. package/dist/src/App.d.ts +1 -1
  10. package/dist/src/components/Debugger.d.ts +2 -3
  11. package/dist/src/components/Tooltip.d.ts +1 -1
  12. package/dist/src/index.d.ts +3 -1
  13. package/dist/src/integrations/integration.d.ts +6 -0
  14. package/dist/src/integrations/sentry/components/SpanResizer.d.ts +7 -0
  15. package/dist/src/integrations/sentry/components/developerInfo/EnvelopeDetails.d.ts +8 -0
  16. package/dist/src/integrations/sentry/components/developerInfo/EnvelopeList.d.ts +1 -0
  17. package/dist/src/integrations/sentry/components/developerInfo/JsonViewer.d.ts +8 -0
  18. package/dist/src/integrations/sentry/components/{Events → events}/Event.d.ts +4 -4
  19. package/dist/src/integrations/sentry/components/{EventBreadcrumbs.d.ts → events/EventBreadcrumbs.d.ts} +1 -1
  20. package/dist/src/integrations/sentry/components/{EventContexts.d.ts → events/EventContexts.d.ts} +1 -1
  21. package/dist/src/integrations/sentry/components/{Events → events/error}/Error.d.ts +1 -1
  22. package/dist/src/integrations/sentry/components/{Performance → performance}/QuerySummary.d.ts +1 -1
  23. package/dist/src/integrations/sentry/components/{SpanDetails.d.ts → traces/spans/SpanDetails.d.ts} +1 -1
  24. package/dist/src/integrations/sentry/components/{SpanItem.d.ts → traces/spans/SpanItem.d.ts} +4 -2
  25. package/dist/src/integrations/sentry/components/{SpanTree.d.ts → traces/spans/SpanTree.d.ts} +4 -2
  26. package/dist/src/integrations/sentry/data/sentryDataCache.d.ts +13 -1
  27. package/dist/src/integrations/sentry/data/useSentryEnvelopes.d.ts +4 -0
  28. package/dist/src/integrations/sentry/index.d.ts +4 -1
  29. package/dist/src/integrations/sentry/tabs/DeveloperInfo.d.ts +1 -0
  30. package/dist/src/integrations/sentry/types.d.ts +7 -3
  31. package/dist/src/react-instance.d.ts +3 -0
  32. package/dist/src/types.d.ts +7 -0
  33. package/package.json +2 -1
  34. /package/dist/src/integrations/sentry/components/{EventDetails.d.ts → events/EventDetails.d.ts} +0 -0
  35. /package/dist/src/integrations/sentry/components/{EventList.d.ts → events/EventList.d.ts} +0 -0
  36. /package/dist/src/integrations/sentry/components/{Events/Error → events/error}/Frame.d.ts +0 -0
  37. /package/dist/src/integrations/sentry/components/{Performance → performance}/PerformanceTabDetails.d.ts +0 -0
  38. /package/dist/src/integrations/sentry/components/{Performance → performance}/Queries.d.ts +0 -0
  39. /package/dist/src/integrations/sentry/components/{Performance → performance}/Resources.d.ts +0 -0
  40. /package/dist/src/integrations/sentry/components/{Performance/WebVitals → performance/webVitals}/PerformanceChart.d.ts +0 -0
  41. /package/dist/src/integrations/sentry/components/{Performance/WebVitals → performance/webVitals}/WebVitalsDetail.d.ts +0 -0
  42. /package/dist/src/integrations/sentry/components/{Performance/WebVitals → performance/webVitals}/index.d.ts +0 -0
  43. /package/dist/src/integrations/sentry/components/{TraceDetails.d.ts → traces/TraceDetails.d.ts} +0 -0
  44. /package/dist/src/integrations/sentry/components/{TraceList.d.ts → traces/TraceList.d.ts} +0 -0
package/dist/src/App.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  import { SpotlightOverlayOptions } from './types';
2
2
  type AppProps = Omit<SpotlightOverlayOptions, 'debug' | 'injectImmediately'> & Required<Pick<SpotlightOverlayOptions, 'sidecarUrl'>>;
3
- export default function App({ openOnInit, showTriggerButton, integrations, sidecarUrl, anchor, fullPage, }: AppProps): import("react/jsx-runtime").JSX.Element;
3
+ export default function App({ openOnInit, showTriggerButton, integrations, sidecarUrl, anchor, fullPage, showClearEventsButton, }: AppProps): import("react/jsx-runtime").JSX.Element;
4
4
  export {};
@@ -1,7 +1,6 @@
1
- /// <reference types="react" />
2
1
  import { Integration, IntegrationData } from '../integrations/integration';
3
2
  import { NotificationCount } from '../types';
4
- export default function Debugger({ integrations, isOpen, setOpen, integrationData, isOnline, setTriggerButtonCount: setNotificationCount, fullPage, setReloadSpotlight, }: {
3
+ export default function Debugger({ integrations, isOpen, setOpen, integrationData, isOnline, setTriggerButtonCount: setNotificationCount, fullPage, showClearEventsButton, }: {
5
4
  integrations: Integration[];
6
5
  isOpen: boolean;
7
6
  setOpen: (value: boolean) => void;
@@ -9,5 +8,5 @@ export default function Debugger({ integrations, isOpen, setOpen, integrationDat
9
8
  isOnline: boolean;
10
9
  setTriggerButtonCount: (count: NotificationCount) => void;
11
10
  fullPage: boolean;
12
- setReloadSpotlight: React.Dispatch<React.SetStateAction<number>>;
11
+ showClearEventsButton: boolean;
13
12
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  import { ReactNode } from 'react';
2
2
  declare const Tooltip: ({ content, position, children, }: {
3
3
  content: string | ReactNode;
4
- position?: "top" | "bottom" | "left" | "right" | undefined;
4
+ position?: "left" | "right" | "top" | "bottom" | undefined;
5
5
  children: ReactNode;
6
6
  }) => import("react/jsx-runtime").JSX.Element;
7
7
  export default Tooltip;
@@ -1,8 +1,10 @@
1
+ import { React, ReactDOM } from './react-instance.tsx';
1
2
  import { SpotlightOverlayOptions } from './types.ts';
2
3
  export { default as console } from './integrations/console/index.ts';
3
4
  export { default as hydrationError } from './integrations/hydration-error/index.ts';
4
5
  export { default as sentry } from './integrations/sentry/index.ts';
5
6
  export { default as viteInspect } from './integrations/vite-inspect/index.ts';
7
+ export { React, ReactDOM };
6
8
  /**
7
9
  * Open the Spotlight debugger Window
8
10
  */
@@ -34,4 +36,4 @@ export declare function onSevereEvent(cb: (count: number) => void): Promise<void
34
36
  * e.g. trigger("sentry.showError", {eventId});
35
37
  */
36
38
  export declare function trigger(eventName: string, payload: unknown): Promise<void>;
37
- export declare function init({ openOnInit, showTriggerButton, injectImmediately, sidecarUrl, anchor, debug, integrations, experiments, fullPage, }?: SpotlightOverlayOptions): Promise<void>;
39
+ export declare function init({ openOnInit, showTriggerButton, injectImmediately, sidecarUrl, anchor, debug, integrations, experiments, fullPage, showClearEventsButton, }?: SpotlightOverlayOptions): Promise<void>;
@@ -41,6 +41,12 @@ export type Integration<T = any> = {
41
41
  * The returned object will be passed to your tabs function.
42
42
  */
43
43
  processEvent?: (eventContext: RawEventContext) => ProcessedEventContainer<T> | undefined;
44
+ /**
45
+ * To reset the integration.
46
+ *
47
+ * @returns void
48
+ */
49
+ reset?: () => void;
44
50
  };
45
51
  export type IntegrationTab<T> = {
46
52
  /**
@@ -0,0 +1,7 @@
1
+ type SpanResizerProps = {
2
+ handleResize: (e: MouseEvent) => void;
3
+ setIsResizing: (val: boolean) => void;
4
+ isResizing: boolean;
5
+ };
6
+ export default function SpanResizer({ handleResize, isResizing, setIsResizing, ...props }: SpanResizerProps): import("react/jsx-runtime").JSX.Element;
7
+ export {};
@@ -0,0 +1,8 @@
1
+ import { Envelope } from '@sentry/types';
2
+ import { RawEventContext } from '../../../../integrations/integration';
3
+ export default function EnvelopeDetails({ data }: {
4
+ data: {
5
+ envelope: Envelope;
6
+ rawEnvelope: RawEventContext;
7
+ };
8
+ }): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export default function EnvelopeList(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,8 @@
1
+ import { Envelope, EnvelopeItem } from '@sentry/types';
2
+ import { RawEventContext } from '../../../../integrations/integration';
3
+ export default function JsonViewer({ data, onUpdateData, editingEnabled, clipboardEnabled, }: {
4
+ data: Envelope[0] | EnvelopeItem | RawEventContext;
5
+ onUpdateData?: (value: unknown) => void;
6
+ editingEnabled?: boolean;
7
+ clipboardEnabled?: boolean;
8
+ }): import("react/jsx-runtime").JSX.Element;
@@ -1,10 +1,10 @@
1
- import { SentryErrorEvent, SentryEvent } from '../../types';
1
+ import { SentryEvent } from '../../types';
2
2
  export declare function EventTitle({ event }: {
3
- event: SentryErrorEvent | SentryEvent;
3
+ event: SentryEvent;
4
4
  }): import("react/jsx-runtime").JSX.Element;
5
5
  export declare function EventSummary({ event }: {
6
- event: SentryErrorEvent | SentryEvent;
6
+ event: SentryEvent;
7
7
  }): import("react/jsx-runtime").JSX.Element;
8
8
  export default function Event({ event }: {
9
- event: SentryErrorEvent | SentryEvent;
9
+ event: SentryEvent;
10
10
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,4 @@
1
- import { SentryEvent } from '../types';
1
+ import { SentryEvent } from '../../types';
2
2
  export default function EventBreadcrumbs({ event }: {
3
3
  event: SentryEvent;
4
4
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,4 @@
1
- import { SentryEvent } from '../types';
1
+ import { SentryEvent } from '../../types';
2
2
  export default function EventContexts({ event }: {
3
3
  event: SentryEvent;
4
4
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,4 @@
1
- import { SentryErrorEvent } from '../../types';
1
+ import { SentryErrorEvent } from '../../../types';
2
2
  export declare function ErrorTitle({ event }: {
3
3
  event: SentryErrorEvent;
4
4
  }): import("react/jsx-runtime").JSX.Element;
@@ -1,4 +1,4 @@
1
1
  declare const QuerySummary: ({ showAll }: {
2
2
  showAll: boolean;
3
- }) => import("react/jsx-runtime").JSX.Element | undefined;
3
+ }) => import("react/jsx-runtime").JSX.Element;
4
4
  export default QuerySummary;
@@ -1,4 +1,4 @@
1
- import { Span, TraceContext } from '../types';
1
+ import { Span, TraceContext } from '../../../types';
2
2
  export default function SpanDetails({ traceContext, span, startTimestamp, totalDuration, collapsible, }: {
3
3
  traceContext: TraceContext;
4
4
  span: Span;
@@ -1,10 +1,12 @@
1
- import { Span, TraceContext } from '../types';
2
- declare const SpanItem: ({ span, startTimestamp, totalDuration, depth, traceContext, collapsible, }: {
1
+ import { Span, TraceContext } from '../../../types';
2
+ declare const SpanItem: ({ span, startTimestamp, totalDuration, depth, traceContext, collapsible, spanNodeWidth, setSpanNodeWidth, }: {
3
3
  span: Span;
4
4
  startTimestamp: number;
5
5
  totalDuration: number;
6
6
  depth?: number | undefined;
7
7
  traceContext: TraceContext;
8
8
  collapsible?: boolean | undefined;
9
+ spanNodeWidth: number;
10
+ setSpanNodeWidth?: ((val: number) => void) | undefined;
9
11
  }) => import("react/jsx-runtime").JSX.Element;
10
12
  export default SpanItem;
@@ -1,9 +1,11 @@
1
- import { Span, TraceContext } from '../types';
2
- export default function SpanTree({ traceContext, tree, startTimestamp, totalDuration, depth, collapsible, }: {
1
+ import { Span, TraceContext } from '../../../types';
2
+ export default function SpanTree({ traceContext, tree, startTimestamp, totalDuration, depth, collapsible, spanNodeWidth, setSpanNodeWidth, }: {
3
3
  traceContext: TraceContext;
4
4
  tree: Span[];
5
5
  startTimestamp: number;
6
6
  totalDuration: number;
7
7
  depth?: number;
8
8
  collapsible?: boolean;
9
+ spanNodeWidth: number;
10
+ setSpanNodeWidth?: (val: number) => void;
9
11
  }): import("react/jsx-runtime").JSX.Element | null;
@@ -1,4 +1,5 @@
1
1
  import { Envelope } from '@sentry/types';
2
+ import { RawEventContext } from '../../../integrations/integration';
2
3
  import { Sdk, SentryEvent, Span, Trace } from '../types';
3
4
  type OnlineSubscription = ['online', (status: boolean) => void];
4
5
  type EventSubscription = ['event', (event: SentryEvent) => void];
@@ -13,18 +14,29 @@ declare class SentryDataCache {
13
14
  [id: string]: Trace;
14
15
  };
15
16
  protected localTraceIds: Set<string>;
17
+ protected envelopes: {
18
+ envelope: Envelope;
19
+ rawEnvelope: RawEventContext;
20
+ }[];
16
21
  protected subscribers: Map<string, Subscription>;
17
22
  constructor(initial?: (SentryEvent & {
18
23
  event_id?: string;
19
24
  })[]);
20
25
  inferSdkFromEvent(event: SentryEvent): Sdk;
21
- pushEnvelope(envelope: Envelope): void;
26
+ pushEnvelope({ envelope, rawEnvelope }: {
27
+ envelope: Envelope;
28
+ rawEnvelope: RawEventContext;
29
+ }): void;
22
30
  pushEvent(event: SentryEvent & {
23
31
  event_id?: string;
24
32
  }): void;
25
33
  getEvents(): SentryEvent[];
26
34
  getTraces(): Trace[];
27
35
  getSdks(): Sdk[];
36
+ getEnvelopes(): {
37
+ envelope: Envelope;
38
+ rawEnvelope: RawEventContext;
39
+ }[];
28
40
  getEventById(id: string): SentryEvent | undefined;
29
41
  getTraceById(id: string): Trace;
30
42
  getEventsByTrace(traceId: string, spanId?: string | null): SentryEvent[];
@@ -0,0 +1,4 @@
1
+ export declare const useSentryEnvelopes: () => {
2
+ envelope: import("@sentry/types").Envelope;
3
+ rawEnvelope: import("../../integration").RawEventContext;
4
+ }[][];
@@ -13,6 +13,7 @@ export default function sentryIntegration(options?: SentryIntegrationOptions): {
13
13
  setup: ({ open }: import("../integration").SpotlightContext) => () => void;
14
14
  processEvent: (event: RawEventContext) => {
15
15
  event: Envelope;
16
+ rawEvent: RawEventContext;
16
17
  };
17
18
  tabs: () => ({
18
19
  id: string;
@@ -36,8 +37,10 @@ export default function sentryIntegration(options?: SentryIntegrationOptions): {
36
37
  content: typeof PerformanceTab;
37
38
  notificationCount?: undefined;
38
39
  })[];
40
+ reset: () => void;
39
41
  };
40
- export declare function processEnvelope({ data }: RawEventContext): {
42
+ export declare function processEnvelope(rawEvent: RawEventContext): {
41
43
  event: Envelope;
44
+ rawEvent: RawEventContext;
42
45
  };
43
46
  export {};
@@ -0,0 +1 @@
1
+ export default function DeveloperInfoTab(): import("react/jsx-runtime").JSX.Element;
@@ -39,7 +39,7 @@ export type Breadcrumb = {
39
39
  type CommonEventAttrs = {
40
40
  event_id: string;
41
41
  timestamp: number;
42
- message?: string;
42
+ message?: SentryFormattedMessage;
43
43
  breadcrumbs?: Breadcrumb[] | {
44
44
  values: Breadcrumb[];
45
45
  };
@@ -76,8 +76,12 @@ export type Contexts = {
76
76
  export type Tags = {
77
77
  [key: string]: string;
78
78
  };
79
+ export type SentryFormattedMessage = string | {
80
+ formatted: string;
81
+ params?: [];
82
+ };
79
83
  export type SentryErrorEvent = CommonEventAttrs & {
80
- type?: 'error' | 'event' | 'default';
84
+ type?: 'error' | 'event' | 'message' | 'default';
81
85
  exception: EventException;
82
86
  };
83
87
  export type Span = {
@@ -96,7 +100,7 @@ export type Span = {
96
100
  };
97
101
  export type SentryTransactionEvent = CommonEventAttrs & {
98
102
  type: 'transaction';
99
- spans: Span[];
103
+ spans?: Span[];
100
104
  start_timestamp: string;
101
105
  contexts: Contexts & {
102
106
  trace: TraceContext;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ import ReactDOM from 'react-dom/client';
3
+ export { React, ReactDOM };
@@ -77,6 +77,13 @@ export type SpotlightOverlayOptions = {
77
77
  * This is useful for replaceing error page or in when directly rendered as an html page
78
78
  */
79
79
  fullPage?: boolean;
80
+ /**
81
+ * If set to `false`, spotlight overlay will not have Clear Events button.
82
+ * This is useful to clear data in spotlight.
83
+ *
84
+ * @default true
85
+ */
86
+ showClearEventsButton?: boolean;
80
87
  };
81
88
  export type NotificationCount = {
82
89
  /**
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@spotlightjs/overlay",
3
3
  "description": "The overlay of Spotlight to add debug interface to your web app.",
4
- "version": "1.6.0",
4
+ "version": "1.8.0",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "files": [
@@ -49,6 +49,7 @@
49
49
  "beautify": "^0.0.8",
50
50
  "react-diff-viewer-continued": "^3.4.0",
51
51
  "@types/beautify": "^0.0.3",
52
+ "react-json-view": "^1.21.3",
52
53
  "@spotlightjs/tsconfig": "1.0.0"
53
54
  },
54
55
  "volta": {