From 5616b9bc698f57d3174b50fdd91f1223cb47ed72 Mon Sep 17 00:00:00 2001 From: Billy Vong Date: Sat, 7 Jan 2023 07:31:23 -0500 Subject: [PATCH 1/3] fix(replay): Fix ts errors with `replay_type` Fixes type error from https://github.com/getsentry/sentry-javascript/pull/6658 (semantic merge issue). --- packages/replay/src/replay.ts | 4 ++-- packages/types/src/replay.ts | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/replay/src/replay.ts b/packages/replay/src/replay.ts index 4645f151b847..8bf81de0582e 100644 --- a/packages/replay/src/replay.ts +++ b/packages/replay/src/replay.ts @@ -922,7 +922,7 @@ export class ReplayContainer implements ReplayContainerInterface { const transport = client && client.getTransport(); const dsn = client?.getDsn(); - if (!client || !scope || !transport || !dsn) { + if (!client || !scope || !transport || !dsn || !this.session || !this.session.sampled) { return; } @@ -936,7 +936,7 @@ export class ReplayContainer implements ReplayContainerInterface { urls, replay_id: replayId, segment_id, - replay_type: this.session?.sampled, + replay_type: this.session.sampled, }; const replayEvent = await getReplayEvent({ scope, client, replayId, event: baseEvent }); diff --git a/packages/types/src/replay.ts b/packages/types/src/replay.ts index 1bec7202ecdc..35e51abdcad9 100644 --- a/packages/types/src/replay.ts +++ b/packages/types/src/replay.ts @@ -10,6 +10,7 @@ export interface ReplayEvent extends Event { trace_ids: string[]; replay_id: string; segment_id: number; + replay_type: 'session' | 'error'; } /** From 196619b06bfba18d4ee13ac4506302a969b9abba Mon Sep 17 00:00:00 2001 From: Francesco Novy Date: Mon, 9 Jan 2023 09:41:22 +0100 Subject: [PATCH 2/3] ref: Move `ReplayRecordingMode` to @sentry/types --- packages/replay/src/replay.ts | 3 +-- packages/replay/src/types.ts | 4 +--- packages/types/src/index.ts | 2 +- packages/types/src/replay.ts | 8 +++++++- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/packages/replay/src/replay.ts b/packages/replay/src/replay.ts index 8bf81de0582e..84465de40de5 100644 --- a/packages/replay/src/replay.ts +++ b/packages/replay/src/replay.ts @@ -1,6 +1,6 @@ /* eslint-disable max-lines */ // TODO: We might want to split this file up import { addGlobalEventProcessor, captureException, getCurrentHub, setContext } from '@sentry/core'; -import { Breadcrumb, ReplayEvent, TransportMakeRequestResponse } from '@sentry/types'; +import type { Breadcrumb, ReplayEvent, ReplayRecordingMode, TransportMakeRequestResponse } from '@sentry/types'; import { addInstrumentationHandler, logger } from '@sentry/utils'; import { EventType, record } from 'rrweb'; @@ -34,7 +34,6 @@ import type { RecordingOptions, ReplayContainer as ReplayContainerInterface, ReplayPluginOptions, - ReplayRecordingMode, SendReplay, Session, } from './types'; diff --git a/packages/replay/src/types.ts b/packages/replay/src/types.ts index c331273b135e..df35aefd2c60 100644 --- a/packages/replay/src/types.ts +++ b/packages/replay/src/types.ts @@ -1,4 +1,4 @@ -import { ReplayRecordingData } from '@sentry/types'; +import type { ReplayRecordingData, ReplayRecordingMode } from '@sentry/types'; import type { eventWithTime, recordOptions } from './types/rrweb'; @@ -9,8 +9,6 @@ export type RecordedEvents = Uint8Array | string; export type AllPerformanceEntry = PerformancePaintTiming | PerformanceResourceTiming | PerformanceNavigationTiming; -export type ReplayRecordingMode = 'session' | 'error'; - export interface SendReplay { events: RecordedEvents; replayId: string; diff --git a/packages/types/src/index.ts b/packages/types/src/index.ts index 37857ce12155..a3437df77f1f 100644 --- a/packages/types/src/index.ts +++ b/packages/types/src/index.ts @@ -40,7 +40,7 @@ export type { ExtractedNodeRequestData, HttpHeaderValue, Primitive, WorkerLocati export type { ClientOptions, Options } from './options'; export type { Package } from './package'; export type { PolymorphicEvent, PolymorphicRequest } from './polymorphics'; -export type { ReplayEvent, ReplayRecordingData } from './replay'; +export type { ReplayEvent, ReplayRecordingData, ReplayRecordingMode } from './replay'; export type { QueryParams, Request } from './request'; export type { Runtime } from './runtime'; export type { CaptureContext, Scope, ScopeContext } from './scope'; diff --git a/packages/types/src/replay.ts b/packages/types/src/replay.ts index 35e51abdcad9..2027a373bb33 100644 --- a/packages/types/src/replay.ts +++ b/packages/types/src/replay.ts @@ -10,7 +10,7 @@ export interface ReplayEvent extends Event { trace_ids: string[]; replay_id: string; segment_id: number; - replay_type: 'session' | 'error'; + replay_type: ReplayRecordingMode; } /** @@ -18,3 +18,9 @@ export interface ReplayEvent extends Event { * @hidden */ export type ReplayRecordingData = string | Uint8Array; + +/** + * NOTE: These types are still considered Beta and subject to change. + * @hidden + */ +export type ReplayRecordingMode = 'session' | 'error'; From e120865bdf594dd8a3c07a3feb1df7f43b4af27e Mon Sep 17 00:00:00 2001 From: Francesco Novy Date: Mon, 9 Jan 2023 10:06:47 +0100 Subject: [PATCH 3/3] fix test --- packages/replay/test/unit/util/getReplayEvent.test.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/replay/test/unit/util/getReplayEvent.test.ts b/packages/replay/test/unit/util/getReplayEvent.test.ts index 31ab71747771..1949b722c545 100644 --- a/packages/replay/test/unit/util/getReplayEvent.test.ts +++ b/packages/replay/test/unit/util/getReplayEvent.test.ts @@ -34,6 +34,7 @@ describe('getReplayEvent', () => { urls: ['https://sentry.io/'], replay_id: replayId, event_id: replayId, + replay_type: 'session', segment_id: 3, }; @@ -46,6 +47,7 @@ describe('getReplayEvent', () => { trace_ids: ['trace-ID'], urls: ['https://sentry.io/'], replay_id: 'replay-ID', + replay_type: 'session', segment_id: 3, platform: 'javascript', event_id: 'replay-ID',