diff --git a/packages/replay/src/integration.ts b/packages/replay/src/integration.ts index 9724a15dd6bb..d7c67b403f77 100644 --- a/packages/replay/src/integration.ts +++ b/packages/replay/src/integration.ts @@ -69,6 +69,8 @@ export class Replay implements Integration { // eslint-disable-next-line deprecation/deprecation blockSelector, // eslint-disable-next-line deprecation/deprecation + maskInputOptions, + // eslint-disable-next-line deprecation/deprecation maskTextClass, // eslint-disable-next-line deprecation/deprecation maskTextSelector, @@ -77,6 +79,7 @@ export class Replay implements Integration { }: ReplayConfiguration = {}) { this._recordingOptions = { maskAllInputs, + maskInputOptions: { ...(maskInputOptions || {}), password: true }, maskTextFn: maskFn, maskInputFn: maskFn, diff --git a/packages/replay/src/types.ts b/packages/replay/src/types.ts index a16b3547e0ec..14d3adba17c5 100644 --- a/packages/replay/src/types.ts +++ b/packages/replay/src/types.ts @@ -158,6 +158,14 @@ export interface DeprecatedPrivacyOptions { * @deprecated Use `block` which accepts an array of CSS selectors */ blockClass?: RecordingOptions['blockClass']; + /** + * @deprecated Use `ignore` which accepts an array of CSS selectors + */ + ignoreClass?: RecordingOptions['ignoreClass']; + /** + * @deprecated Use `mask` which accepts an array of CSS selectors + */ + maskInputOptions?: RecordingOptions['maskInputOptions']; /** * @deprecated Use `mask` which accepts an array of CSS selectors */ @@ -166,10 +174,6 @@ export interface DeprecatedPrivacyOptions { * @deprecated Use `mask` which accepts an array of CSS selectors */ maskTextSelector?: RecordingOptions['maskTextSelector']; - /** - * @deprecated Use `ignore` which accepts an array of CSS selectors - */ - ignoreClass?: RecordingOptions['ignoreClass']; } export interface ReplayConfiguration diff --git a/packages/replay/src/types/rrweb.ts b/packages/replay/src/types/rrweb.ts index 780c7279765a..3628d45ef9ab 100644 --- a/packages/replay/src/types/rrweb.ts +++ b/packages/replay/src/types/rrweb.ts @@ -36,4 +36,5 @@ export type recordOptions = { maskTextClass?: maskTextClass; maskTextSelector?: string; blockSelector?: string; + maskInputOptions?: Record; } & Record; diff --git a/packages/replay/src/util/getPrivacyOptions.ts b/packages/replay/src/util/getPrivacyOptions.ts index 0e5c18ff6345..c5943e46f491 100644 --- a/packages/replay/src/util/getPrivacyOptions.ts +++ b/packages/replay/src/util/getPrivacyOptions.ts @@ -1,6 +1,7 @@ import type { DeprecatedPrivacyOptions, ReplayIntegrationPrivacyOptions } from '../types'; -type GetPrivacyOptions = Required> & DeprecatedPrivacyOptions; +type GetPrivacyOptions = Required> & + Omit; interface GetPrivacyReturn { maskTextSelector: string; unmaskTextSelector: string; diff --git a/packages/replay/test/integration/rrweb.test.ts b/packages/replay/test/integration/rrweb.test.ts index 4d74547f18be..00e1fb09af97 100644 --- a/packages/replay/test/integration/rrweb.test.ts +++ b/packages/replay/test/integration/rrweb.test.ts @@ -25,6 +25,9 @@ describe('Integration | rrweb', () => { "inlineStylesheet": true, "maskAllInputs": true, "maskInputFn": undefined, + "maskInputOptions": Object { + "password": true, + }, "maskInputSelector": ".sentry-mask,[data-sentry-mask]", "maskTextFn": undefined, "maskTextSelector": "body *:not(style), body *:not(script)",