@@ -5,7 +5,26 @@ import { RegroupDomainTldLevel } from '@builder/utils/regroup-domain-tldlevel.js
55import { ConvertWildcardSuffixToRegexPattern } from '@builder/utils/wildcard-suffix-converter.js'
66import { CustomDefinedMatches , CustomExcludeMatches } from './custom-defined.js'
77
8- type TASDomainContainer = Map < 'Normal' , Set < string > > & Map < 'Full' , Set < string > > & Map < 'EachDomain' , Set < Set < string > > > & Map < 'EachDomainFull' , Set < Set < string > > >
8+ export type TASDomainContainer = Map < 'Normal' , Set < string > > & Map < 'Full' , Set < string > > & Map < 'EachDomain' , Set < Set < string > > > & Map < 'EachDomainFull' , Set < Set < string > > >
9+
10+ function ConvertToFlatFullDomains ( Origin : Set < string > ) : Set < string > {
11+ return new Set < string > ( [ ...Origin ] . flatMap ( Domain => ConvertWildcardSuffixToRegexPattern ( Domain ) ) )
12+ }
13+
14+ function IsGroupedDomains ( Origin : Set < string > | Set < Set < string > > ) : Origin is Set < Set < string > > {
15+ const FirstValue = Origin . values ( ) . next ( ) . value
16+ return typeof FirstValue !== 'string' && typeof FirstValue !== 'undefined'
17+ }
18+
19+ function ConvertToFullDomains ( Origin : Set < string > ) : Set < string >
20+ function ConvertToFullDomains ( Origin : Set < Set < string > > ) : Set < Set < string > >
21+ function ConvertToFullDomains ( Origin : Set < string > | Set < Set < string > > ) : Set < string > | Set < Set < string > > {
22+ if ( IsGroupedDomains ( Origin ) ) {
23+ return new Set < Set < string > > ( [ ...Origin ] . map ( DomainGroup => ConvertToFlatFullDomains ( DomainGroup ) ) )
24+ }
25+
26+ return ConvertToFlatFullDomains ( Origin )
27+ }
928
1029export async function FetchAdShieldDomains ( ) : Promise < TASDomainContainer > {
1130 const [ IABSellersDomains , FiltersListsDomains ] = await Promise . all ( [
@@ -18,12 +37,14 @@ export async function FetchAdShieldDomains(): Promise<TASDomainContainer> {
1837 const NormalDomains = DiscardResolvedDupWildcard ( CombinedDomains )
1938 CustomDefinedMatches . forEach ( Match => NormalDomains . add ( Match ) )
2039 CustomExcludeMatches . forEach ( Match => NormalDomains . delete ( Match ) )
21- const FullDomains = new Set < string > ( [ ...NormalDomains ] . flatMap ( Domain => ConvertWildcardSuffixToRegexPattern ( Domain ) ) )
40+ const FullDomains = ConvertToFullDomains ( NormalDomains )
41+ const EachDomain = RegroupDomainTldLevel ( NormalDomains )
42+ const EachDomainFull = ConvertToFullDomains ( EachDomain )
2243
2344 Result . set ( 'Normal' , NormalDomains )
2445 Result . set ( 'Full' , FullDomains )
25- Result . set ( 'EachDomain' , RegroupDomainTldLevel ( NormalDomains ) )
26- Result . set ( 'EachDomainFull' , RegroupDomainTldLevel ( FullDomains ) )
46+ Result . set ( 'EachDomain' , EachDomain )
47+ Result . set ( 'EachDomainFull' , EachDomainFull )
2748
2849 return Result
2950}
0 commit comments