@@ -79,26 +79,32 @@ async function applyHeadersToReplay(sdk: any, requestText: string, authHeaders:
7979 }
8080
8181 // Add new auth headers
82- const modifiedHeaders = { ...filteredHeaders , ...newAuthHeaders } ;
82+ let modifiedHeaders = { ...filteredHeaders , ...newAuthHeaders } ;
8383
8484 // Reconstruct the request
85- const requestLine = lines [ 0 ] ; // GET /path HTTP/1.1
85+ let requestLine = lines [ 0 ] ; // GET /path HTTP/1.1
8686 const body = headerEndIndex < lines . length ? lines . slice ( headerEndIndex + 1 ) . join ( '\r\n' ) : '' ;
8787
88- // Apply match & replace rules to the request body (if any rules are configured )
88+ // Apply match & replace rules across the entire request (headers, request line, and body )
8989 let modifiedBody = body ;
9090 try {
9191 const hasRules = await sdk . backend . hasEnabledMatchReplaceRules ( ) ;
9292 if ( hasRules ) {
93- const modifiedBodyResult = await sdk . backend . applyMatchReplaceRules ( body ) ;
94- modifiedBody = modifiedBodyResult ;
95- if ( modifiedBody !== body ) {
96- console . log ( `Applied match & replace rules to request body` ) ;
93+ const result = await sdk . backend . applyMatchReplaceRules ( body , requestLine , modifiedHeaders ) ;
94+ modifiedBody = result . body ;
95+ if ( result . requestLine !== undefined ) {
96+ requestLine = result . requestLine ;
97+ }
98+ if ( result . headers !== undefined ) {
99+ modifiedHeaders = result . headers ;
100+ }
101+ if ( modifiedBody !== body || requestLine !== lines [ 0 ] ) {
102+ console . log ( `Applied match & replace rules across entire request (headers, path, and body)` ) ;
97103 }
98104 }
99105 } catch ( error ) {
100106 console . warn ( "Error applying match & replace rules:" , error ) ;
101- // Continue with original body if match & replace fails
107+ // Continue with original values if match & replace fails
102108 }
103109
104110 let modifiedRequest = requestLine + '\r\n' ;
0 commit comments