@@ -46,34 +46,109 @@ export class Replay implements Integration {
46
46
initialFlushDelay = INITIAL_FLUSH_DELAY ,
47
47
stickySession = true ,
48
48
useCompression = true ,
49
+ _experiments = { } ,
49
50
sessionSampleRate,
50
51
errorSampleRate,
51
52
maskAllText,
52
- maskTextSelector,
53
53
maskAllInputs = true ,
54
54
blockAllMedia = true ,
55
- _experiments = { } ,
56
- blockClass = 'sentry-block' ,
57
- ignoreClass = 'sentry-ignore' ,
58
- maskTextClass = 'sentry-mask' ,
59
- unmaskTextSelector = '.sentry-unmask' ,
60
- blockSelector = '[data-sentry-block]' ,
61
- ..._recordingOptions
55
+
56
+ mask = [ ] ,
57
+ unmask = [ ] ,
58
+ block= [ ] ,
59
+ unblock= [ ] ,
60
+ ignore = [ ] ,
61
+ maskFn,
62
+
63
+ // @deprecated
64
+ blockClass,
65
+ blockSelector,
66
+ maskTextClass,
67
+ maskTextSelector,
68
+ ignoreClass,
62
69
} : ReplayConfiguration = { } ) {
70
+
71
+ const blockSelectors = [
72
+ ...block ,
73
+ // @deprecated
74
+ ...blockSelector . split ( ',' ) ,
75
+
76
+ // sentry defaults
77
+ '.sentry-block' ,
78
+ '[data-sentry-block]' ,
79
+ ] ;
80
+
81
+ // @deprecated
82
+ if ( blockClass ) {
83
+ blockSelectors . push ( `.${ blockClass } ` ) ;
84
+ }
85
+
86
+ const unblockSelectors = [
87
+ ...unblock ,
88
+
89
+ // sentry defaults
90
+ '.sentry-unblock' ,
91
+ ]
92
+
93
+ const ignoreSelectors = [
94
+ ...ignore ,
95
+ // sentry defaults
96
+ '.sentry-ignore' ,
97
+ ] ;
98
+
99
+ // @deprecated
100
+ if ( ignoreClass ) {
101
+ ignoreSelectors . push ( `.${ ignoreClass } ` )
102
+ }
103
+
104
+ const maskTextSelectors = [
105
+ ...mask ,
106
+
107
+ // sentry defaults
108
+ '.sentry-mask' ,
109
+ ]
110
+
111
+ // @deprecated
112
+ if ( maskTextClass ) {
113
+ maskTextSelectors . push ( maskTextClass ) ;
114
+ }
115
+
116
+
117
+ const unmaskTextSelectors = [
118
+ ...unmask ,
119
+
120
+ // sentry defaults
121
+ '.sentry-unmask' ,
122
+ ] ;
123
+
124
+ const unblockSelector = unblockSelectors . join ( ',' ) ;
125
+ const ignoreSelector = ignoreSelectors . join ( ',' ) ;
126
+ const maskSelector = maskTextSelectors . join ( ',' ) ;
127
+ const unmaskSelector = unmaskTextSelectors . join ( ',' ) ;
128
+
129
+
63
130
this . _recordingOptions = {
64
131
maskAllInputs,
65
- blockClass,
66
- blockSelector,
67
- ignoreClass,
68
- maskTextClass,
69
- maskTextSelector,
70
- unmaskTextSelector,
132
+ blockSelector : blockSelectors . join ( ',' ) ,
133
+ // @TODO
134
+ unblockSelector,
135
+ // @TODO
136
+ ignoreSelector,
137
+ maskTextSelector : maskSelector ,
138
+ unmaskTextSelector : unmaskSelector ,
139
+ maskTextFn : maskFn ,
71
140
72
141
// We are making the decision to make these selectors the same
73
- unmaskInputSelector : unmaskTextSelector ,
74
- maskInputSelector : maskTextSelector ,
75
-
76
- ..._recordingOptions ,
142
+ maskInputSelector : maskSelector ,
143
+ unmaskInputSelector : unmaskSelector ,
144
+ maskInputFn : maskFn ,
145
+
146
+ // Our defaults
147
+ slimDOMOptions : 'all' ,
148
+ inlineStylesheet : true ,
149
+ // Disable inline images/fonts as it can cause CORS, also increases segment size
150
+ inlineImages : false ,
151
+ collectFonts : false ,
77
152
} ;
78
153
79
154
this . _options = {
0 commit comments