@@ -460,7 +460,7 @@ interface MatchFieldEvaluator<MatcherType, FieldType> {
460
460
isMoreSpecific : ( matcher1 : MatcherType , matcher2 : MatcherType ) => boolean ;
461
461
}
462
462
463
- type FieldType < MatcherType > = MatcherType extends CidrRange ? ( string | undefined ) : MatcherType extends ( ConnectionSourceType ) ? { localAddress : string , remoteAddress ?: ( string | undefined ) } : MatcherType extends number ? number | undefined : never ;
463
+ type FieldType < MatcherType > = MatcherType extends CidrRange ? ( string | undefined ) : MatcherType extends ( ConnectionSourceType ) ? { localAddress ?: ( string | undefined ) , remoteAddress ?: ( string | undefined ) } : MatcherType extends number ? number | undefined : never ;
464
464
465
465
function cidrRangeMatch ( range : CidrRange | undefined , address : string | undefined ) : boolean {
466
466
return ! range || ( ! ! address && inCidrRange ( range , address ) ) ;
@@ -473,14 +473,14 @@ function cidrRangeMoreSpecific(range1: CidrRange | undefined, range2: CidrRange
473
473
return ! ! range1 && range1 . prefixLen > range2 . prefixLen ;
474
474
}
475
475
476
- function sourceTypeMatch ( sourceType : ConnectionSourceType , addresses : { localAddress : string , remoteAddress ?: ( string | undefined ) } ) : boolean {
476
+ function sourceTypeMatch ( sourceType : ConnectionSourceType , addresses : { localAddress ?: ( string | undefined ) , remoteAddress ?: ( string | undefined ) } ) : boolean {
477
477
switch ( sourceType ) {
478
478
case "ANY" :
479
479
return true ;
480
480
case "SAME_IP_OR_LOOPBACK" :
481
- return ! ! addresses . remoteAddress && isSameIpOrLoopback ( addresses . remoteAddress , addresses . localAddress ) ;
481
+ return ! ! addresses . localAddress && ! ! addresses . remoteAddress && isSameIpOrLoopback ( addresses . remoteAddress , addresses . localAddress ) ;
482
482
case "EXTERNAL" :
483
- return ! ! addresses . remoteAddress && ! isSameIpOrLoopback ( addresses . remoteAddress , addresses . localAddress ) ;
483
+ return ! ! addresses . localAddress && ! ! addresses . remoteAddress && ! isSameIpOrLoopback ( addresses . remoteAddress , addresses . localAddress ) ;
484
484
}
485
485
}
486
486
@@ -490,7 +490,7 @@ const cidrRangeEvaluator: MatchFieldEvaluator<CidrRange | undefined, string | un
490
490
isMoreSpecific : cidrRangeMoreSpecific
491
491
} ;
492
492
493
- const sourceTypeEvaluator : MatchFieldEvaluator < ConnectionSourceType , { localAddress : string , remoteAddress ?: ( string | undefined ) } > = {
493
+ const sourceTypeEvaluator : MatchFieldEvaluator < ConnectionSourceType , { localAddress ?: ( string | undefined ) , remoteAddress ?: ( string | undefined ) } > = {
494
494
isMatch : sourceTypeMatch ,
495
495
matcherEqual : ( matcher1 , matcher2 ) => matcher1 === matcher2 ,
496
496
isMoreSpecific : ( matcher1 , matcher2 ) => matcher1 !== 'ANY' && matcher2 === 'ANY'
0 commit comments