@@ -493,7 +493,7 @@ interface MatchFieldEvaluator<MatcherType, FieldType> {
493
493
isMoreSpecific : ( matcher1 : MatcherType , matcher2 : MatcherType ) => boolean ;
494
494
}
495
495
496
- type FieldType < MatcherType > = MatcherType extends CidrRange ? ( string | undefined ) : MatcherType extends ( ConnectionSourceType ) ? { localAddress : string , remoteAddress ?: ( string | undefined ) } : MatcherType extends number ? number | undefined : never ;
496
+ type FieldType < MatcherType > = MatcherType extends CidrRange ? ( string | undefined ) : MatcherType extends ( ConnectionSourceType ) ? { localAddress ?: ( string | undefined ) , remoteAddress ?: ( string | undefined ) } : MatcherType extends number ? number | undefined : never ;
497
497
498
498
function cidrRangeMatch ( range : CidrRange | undefined , address : string | undefined ) : boolean {
499
499
return ! range || ( ! ! address && inCidrRange ( range , address ) ) ;
@@ -506,14 +506,14 @@ function cidrRangeMoreSpecific(range1: CidrRange | undefined, range2: CidrRange
506
506
return ! ! range1 && range1 . prefixLen > range2 . prefixLen ;
507
507
}
508
508
509
- function sourceTypeMatch ( sourceType : ConnectionSourceType , addresses : { localAddress : string , remoteAddress ?: ( string | undefined ) } ) : boolean {
509
+ function sourceTypeMatch ( sourceType : ConnectionSourceType , addresses : { localAddress ?: ( string | undefined ) , remoteAddress ?: ( string | undefined ) } ) : boolean {
510
510
switch ( sourceType ) {
511
511
case "ANY" :
512
512
return true ;
513
513
case "SAME_IP_OR_LOOPBACK" :
514
- return ! ! addresses . remoteAddress && isSameIpOrLoopback ( addresses . remoteAddress , addresses . localAddress ) ;
514
+ return ! ! addresses . localAddress && ! ! addresses . remoteAddress && isSameIpOrLoopback ( addresses . remoteAddress , addresses . localAddress ) ;
515
515
case "EXTERNAL" :
516
- return ! ! addresses . remoteAddress && ! isSameIpOrLoopback ( addresses . remoteAddress , addresses . localAddress ) ;
516
+ return ! ! addresses . localAddress && ! ! addresses . remoteAddress && ! isSameIpOrLoopback ( addresses . remoteAddress , addresses . localAddress ) ;
517
517
}
518
518
}
519
519
@@ -523,7 +523,7 @@ const cidrRangeEvaluator: MatchFieldEvaluator<CidrRange | undefined, string | un
523
523
isMoreSpecific : cidrRangeMoreSpecific
524
524
} ;
525
525
526
- const sourceTypeEvaluator : MatchFieldEvaluator < ConnectionSourceType , { localAddress : string , remoteAddress ?: ( string | undefined ) } > = {
526
+ const sourceTypeEvaluator : MatchFieldEvaluator < ConnectionSourceType , { localAddress ?: ( string | undefined ) , remoteAddress ?: ( string | undefined ) } > = {
527
527
isMatch : sourceTypeMatch ,
528
528
matcherEqual : ( matcher1 , matcher2 ) => matcher1 === matcher2 ,
529
529
isMoreSpecific : ( matcher1 , matcher2 ) => matcher1 !== 'ANY' && matcher2 === 'ANY'
0 commit comments