@@ -86,27 +86,50 @@ function redactSensitiveFields(obj, recursionDepth = 0, maxDepth = 5, seen = new
86
86
}
87
87
seen . add ( obj ) ;
88
88
89
- const redactedObj = Array . isArray ( obj ) ? [ ] : { } ;
90
- for ( const key in obj ) {
91
- if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) {
92
- const lowerKey = key . toLowerCase ( ) ;
93
- let isSensitive = false ;
94
- for ( const keyword of SENSITIVE_KEYWORDS ) {
95
- if ( lowerKey . includes ( keyword ) ) {
96
- isSensitive = true ;
97
- break ;
89
+ if ( Array . isArray ( obj ) ) {
90
+ const redactedArray = [ ] ;
91
+ for ( let i = 0 ; i < obj . length ; i ++ ) {
92
+ const item = obj [ i ] ;
93
+ if ( item !== null && typeof item === 'object' ) {
94
+ redactedArray [ i ] = redactSensitiveFields ( item , recursionDepth + 1 , maxDepth , seen ) ;
95
+ } else if ( typeof item === 'string' ) {
96
+ let isItemSensitive = false ;
97
+ const lowerItem = item . toLowerCase ( ) ;
98
+ for ( const keyword of SENSITIVE_KEYWORDS ) {
99
+ if ( lowerItem . includes ( keyword ) ) {
100
+ isItemSensitive = true ;
101
+ break ;
102
+ }
98
103
}
99
- }
100
- if ( isSensitive ) {
101
- redactedObj [ key ] = 'REDACTED' ;
102
- } else if ( obj [ key ] !== null && typeof obj [ key ] === 'object' ) { // Added obj[key] !== null check
103
- redactedObj [ key ] = redactSensitiveFields ( obj [ key ] , recursionDepth + 1 , maxDepth , seen ) ;
104
+ redactedArray [ i ] = isItemSensitive ? 'REDACTED' : item ;
104
105
} else {
105
- redactedObj [ key ] = obj [ key ] ;
106
+ redactedArray [ i ] = item ;
107
+ }
108
+ }
109
+ return redactedArray ;
110
+ } else {
111
+ const redactedObj = { } ;
112
+ for ( const key in obj ) {
113
+ if ( Object . prototype . hasOwnProperty . call ( obj , key ) ) {
114
+ const lowerKey = key . toLowerCase ( ) ;
115
+ let isKeySensitive = false ;
116
+ for ( const keyword of SENSITIVE_KEYWORDS ) {
117
+ if ( lowerKey . includes ( keyword ) ) {
118
+ isKeySensitive = true ;
119
+ break ;
120
+ }
121
+ }
122
+ if ( isKeySensitive ) {
123
+ redactedObj [ key ] = 'REDACTED' ;
124
+ } else if ( obj [ key ] !== null && typeof obj [ key ] === 'object' ) {
125
+ redactedObj [ key ] = redactSensitiveFields ( obj [ key ] , recursionDepth + 1 , maxDepth , seen ) ;
126
+ } else {
127
+ redactedObj [ key ] = obj [ key ] ;
128
+ }
106
129
}
107
130
}
131
+ return redactedObj ;
108
132
}
109
- return redactedObj ;
110
133
}
111
134
112
135
function setPortProxy ( port , proxyTabId ) {
@@ -139,7 +162,7 @@ function setPortProxy(port, proxyTabId) {
139
162
port . proxy . postMessage ( msg )
140
163
} catch ( e ) {
141
164
console . error ( '[background] Error posting message to proxy tab in _portOnMessage:' , e , msg ) ;
142
- try { // Attempt to notify the original sender about the failure
165
+ try {
143
166
port . postMessage ( { error : 'Failed to forward message to target tab. Tab might be closed or an extension error occurred.' } ) ;
144
167
} catch ( notifyError ) {
145
168
console . error ( '[background] Error sending forwarding failure notification back to original sender:' , notifyError ) ;
@@ -174,11 +197,11 @@ function setPortProxy(port, proxyTabId) {
174
197
try { port . onMessage . removeListener ( port . _portOnMessage ) ; }
175
198
catch ( e ) { console . warn ( "[background] Error removing _portOnMessage on max retries:" , e ) ; }
176
199
}
177
- if ( port . _portOnDisconnect ) { // Cleanup _portOnDisconnect as well
200
+ if ( port . _portOnDisconnect ) {
178
201
try { port . onDisconnect . removeListener ( port . _portOnDisconnect ) ; }
179
- catch ( e ) { console . warn ( "[background] Error removing _portOnDisconnect on max retries:" , e ) ; }
202
+ catch ( e ) { console . warn ( "[background] Error removing _portOnDisconnect from main port on max retries:" , e ) ; }
180
203
}
181
- try { // Notify user about final connection failure
204
+ try {
182
205
port . postMessage ( { error : `Connection to ChatGPT tab lost after ${ RECONNECT_CONFIG . MAX_ATTEMPTS } attempts. Please refresh the page.` } ) ;
183
206
} catch ( e ) {
184
207
console . warn ( "[background] Error sending final error message on max retries:" , e ) ;
@@ -248,7 +271,6 @@ async function executeApi(session, port, config) {
248
271
try {
249
272
if ( isUsingCustomModel ( session ) ) {
250
273
console . debug ( '[background] Using Custom Model API' )
251
- // ... (rest of the logic for custom model remains the same)
252
274
if ( ! session . apiMode )
253
275
await generateAnswersWithCustomApi (
254
276
port ,
@@ -314,7 +336,7 @@ async function executeApi(session, port, config) {
314
336
const accessToken = await getChatGptAccessToken ( )
315
337
await generateAnswersWithChatgptWebApi ( port , session . question , session , accessToken )
316
338
}
317
- } else if ( isUsingClaudeWebModel ( session ) ) { // ... other models
339
+ } else if ( isUsingClaudeWebModel ( session ) ) {
318
340
console . debug ( '[background] Using Claude Web Model' )
319
341
const sessionKey = await getClaudeSessionKey ( )
320
342
await generateAnswersWithClaudeWebApi ( port , session . question , session , sessionKey )
@@ -466,7 +488,7 @@ Browser.runtime.onMessage.addListener(async (message, sender) => {
466
488
try {
467
489
const response = await fetch ( message . data . input , message . data . init )
468
490
const text = await response . text ( )
469
- if ( ! response . ok ) { // Added check for HTTP error statuses
491
+ if ( ! response . ok ) {
470
492
console . warn ( `[background] FETCH received error status: ${ response . status } for ${ message . data . input } ` ) ;
471
493
}
472
494
console . debug (
@@ -475,7 +497,7 @@ Browser.runtime.onMessage.addListener(async (message, sender) => {
475
497
return [
476
498
{
477
499
body : text ,
478
- ok : response . ok , // Added ok status
500
+ ok : response . ok ,
479
501
status : response . status ,
480
502
statusText : response . statusText ,
481
503
headers : Object . fromEntries ( response . headers ) ,
@@ -531,7 +553,7 @@ try {
531
553
) {
532
554
console . log ( '[background] Capturing Arkose public_key request:' , details . url )
533
555
let formData = new URLSearchParams ( )
534
- if ( details . requestBody && details . requestBody . formData ) {
556
+ if ( details . requestBody ?. formData ) { // Optional chaining
535
557
for ( const k in details . requestBody . formData ) {
536
558
formData . append ( k , details . requestBody . formData [ k ] )
537
559
}
0 commit comments