@studyportals/fawkes 6.0.1-1 → 6.0.1-2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/dist/sitemap-generator-seo/index.d.ts +13 -13
  2. package/dist/sitemap-generator-seo/index.js +4 -5
  3. package/dist/src/common/IRankingApiClient.d.ts +3 -0
  4. package/dist/src/common/ISitemapDependencies.d.ts +0 -2
  5. package/dist/src/common/ISitemapUrlGenerator.d.ts +1 -1
  6. package/dist/src/organisations/rules/OnlineAttendanceRule.d.ts +0 -1
  7. package/dist/src/organisations/rules/OnlineAttendanceRule.js +0 -3
  8. package/dist/src/organisations/types/IOrganisationsSitemapDependencies.d.ts +2 -0
  9. package/dist/src/programmes/ProgrammesBaseIndexabilityPolicy.d.ts +4 -1
  10. package/dist/src/programmes/policies/Area.d.ts +2 -0
  11. package/dist/src/programmes/policies/Area.js +1 -0
  12. package/dist/src/programmes/policies/Attendance.d.ts +2 -0
  13. package/dist/src/programmes/policies/Attendance.js +1 -0
  14. package/dist/src/programmes/policies/AttendanceDegree.d.ts +2 -0
  15. package/dist/src/programmes/policies/AttendanceDegree.js +1 -0
  16. package/dist/src/programmes/policies/Continent.d.ts +2 -0
  17. package/dist/src/programmes/policies/Continent.js +1 -0
  18. package/dist/src/programmes/policies/ContinentTuitionFee.d.ts +2 -0
  19. package/dist/src/programmes/policies/ContinentTuitionFee.js +1 -0
  20. package/dist/src/programmes/policies/Country.d.ts +2 -0
  21. package/dist/src/programmes/policies/Country.js +1 -0
  22. package/dist/src/programmes/policies/CountryAttendance.d.ts +2 -0
  23. package/dist/src/programmes/policies/CountryAttendance.js +1 -0
  24. package/dist/src/programmes/policies/CountryAttendanceDegree.d.ts +2 -0
  25. package/dist/src/programmes/policies/CountryAttendanceDegree.js +1 -0
  26. package/dist/src/programmes/policies/CountryDegree.d.ts +2 -0
  27. package/dist/src/programmes/policies/CountryDegree.js +1 -0
  28. package/dist/src/programmes/policies/CountryDuration.d.ts +2 -0
  29. package/dist/src/programmes/policies/CountryDuration.js +1 -0
  30. package/dist/src/programmes/policies/CountryDurationDegree.d.ts +2 -0
  31. package/dist/src/programmes/policies/CountryDurationDegree.js +1 -0
  32. package/dist/src/programmes/policies/CountryEducationalForm.d.ts +2 -0
  33. package/dist/src/programmes/policies/CountryEducationalForm.js +1 -0
  34. package/dist/src/programmes/policies/CountryFormat.d.ts +2 -0
  35. package/dist/src/programmes/policies/CountryFormat.js +1 -0
  36. package/dist/src/programmes/policies/CountryTuitionFee.d.ts +2 -0
  37. package/dist/src/programmes/policies/CountryTuitionFee.js +1 -0
  38. package/dist/src/programmes/policies/Discipline.d.ts +2 -0
  39. package/dist/src/programmes/policies/Discipline.js +1 -0
  40. package/dist/src/programmes/policies/DisciplineArea.d.ts +2 -0
  41. package/dist/src/programmes/policies/DisciplineArea.js +1 -0
  42. package/dist/src/programmes/policies/DisciplineAttendance.d.ts +2 -0
  43. package/dist/src/programmes/policies/DisciplineAttendance.js +1 -0
  44. package/dist/src/programmes/policies/DisciplineContinent.d.ts +2 -0
  45. package/dist/src/programmes/policies/DisciplineContinent.js +1 -0
  46. package/dist/src/programmes/policies/DisciplineCountry.d.ts +2 -0
  47. package/dist/src/programmes/policies/DisciplineCountry.js +1 -0
  48. package/dist/src/programmes/policies/DisciplineCountryDegree.d.ts +2 -0
  49. package/dist/src/programmes/policies/DisciplineCountryDegree.js +1 -0
  50. package/dist/src/programmes/policies/DisciplineCountryEducationalForm.d.ts +2 -0
  51. package/dist/src/programmes/policies/DisciplineCountryEducationalForm.js +1 -0
  52. package/dist/src/programmes/policies/DisciplineDegree.d.ts +2 -0
  53. package/dist/src/programmes/policies/DisciplineDegree.js +1 -0
  54. package/dist/src/programmes/policies/DisciplineDuration.d.ts +2 -0
  55. package/dist/src/programmes/policies/DisciplineDuration.js +1 -0
  56. package/dist/src/programmes/policies/DisciplineEducationalForm.d.ts +2 -0
  57. package/dist/src/programmes/policies/DisciplineEducationalForm.js +1 -0
  58. package/dist/src/programmes/policies/DisciplineFormat.d.ts +2 -0
  59. package/dist/src/programmes/policies/DisciplineFormat.js +1 -0
  60. package/dist/src/programmes/policies/DisciplineTuitionFee.d.ts +2 -0
  61. package/dist/src/programmes/policies/DisciplineTuitionFee.js +1 -0
  62. package/dist/src/programmes/policies/DisciplineTuitionFeeAttendance.d.ts +2 -0
  63. package/dist/src/programmes/policies/DisciplineTuitionFeeAttendance.js +1 -0
  64. package/dist/src/programmes/policies/SpecialProgrammes.d.ts +2 -0
  65. package/dist/src/programmes/policies/SpecialProgrammes.js +1 -0
  66. package/dist/src/programmes/policies/TuitionFee.d.ts +2 -0
  67. package/dist/src/programmes/policies/TuitionFee.js +1 -0
  68. package/dist/src/programmes/policies/Unfiltered.d.ts +1 -0
  69. package/dist/src/programmes/policies/Unfiltered.js +1 -0
  70. package/dist/src/programmes/types/IProgrammeSearchSitemapDependencies.d.ts +4 -4
  71. package/dist/src/programmes/types/IProgrammeSitemapUrlGenerator.d.ts +5 -0
  72. package/dist/src/scholarships/policies/Area.d.ts +2 -2
  73. package/dist/src/scholarships/policies/Country.d.ts +2 -2
  74. package/dist/src/scholarships/policies/Discipline.d.ts +2 -2
  75. package/dist/src/scholarships/policies/DisciplineCountry.d.ts +2 -2
  76. package/dist/src/scholarships/policies/Unfiltered.d.ts +2 -2
  77. package/dist/src/scholarships/policies/UniversityCountry.d.ts +2 -2
  78. package/dist/src/scholarships/types/IScholarshipSeoDependencies.d.ts +3 -0
  79. package/dist/src/scholarships/types/IScholarshipSitemapDependencies.d.ts +5 -0
  80. package/dist/src/sitemap-generator/IPageNumberProvider.d.ts +3 -0
  81. package/dist/src/sitemap-generator/IPageNumberProvider.js +1 -0
  82. package/dist/src/sitemap-generator/ProgrammesSitemapUrlGeneratorManager.d.ts +5 -2
  83. package/dist/src/sitemap-generator/ProgrammesSitemapUrlGeneratorManager.js +25 -4
  84. package/dist/src/sitemap-generator/SitemapUrlGeneratorManager.d.ts +9 -0
  85. package/dist/src/sitemap-generator/SitemapUrlGeneratorManager.js +34 -0
  86. package/package.json +2 -2
  87. package/dist/src/common/IPolicyMetaData.d.ts +0 -6
  88. package/dist/src/organisations/OrganisationsRuleBasedIndexabilityPolicy.d.ts +0 -11
  89. package/dist/src/organisations/OrganisationsRuleBasedIndexabilityPolicy.js +0 -19
  90. package/dist/src/programmes/IProgrammeSearchApplicationState.d.ts +0 -4
  91. package/dist/src/programmes/IProgrammeSearchDependencies.d.ts +0 -7
  92. package/dist/src/programmes/IProgrammesSeoDependencies.d.ts +0 -2
  93. package/dist/src/programmes/rules/OnlineAttendanceRule.d.ts +0 -5
  94. package/dist/src/programmes/rules/OnlineAttendanceRule.js +0 -11
  95. /package/dist/src/common/{IPolicyMetaData.js → IRankingApiClient.js} +0 -0
  96. /package/dist/src/programmes/{IProgrammeSearchApplicationState.js → types/IProgrammeSitemapUrlGenerator.js} +0 -0
  97. /package/dist/src/{programmes/IProgrammeSearchDependencies.js → scholarships/types/IScholarshipSeoDependencies.js} +0 -0
  98. /package/dist/src/{programmes/IProgrammesSeoDependencies.js → scholarships/types/IScholarshipSitemapDependencies.js} +0 -0
@@ -1,13 +1,13 @@
1
- import { IOrganisationsClient } from '../src/sitemap-generator/IOrganisationsClient';
2
- import { IOrganisation } from '../src/sitemap-generator/IOrganisation';
3
- import { IRankingApiClient } from '../src/sitemap-generator/IRankingApiClient';
4
- import { ISearchApiClient } from '../src/sitemap-generator/ISearchApiClient';
5
- import { ISitemapUrlGeneratorManager } from '../src/sitemap-generator/ISitemapUrlGeneratorManager';
6
- import { OrganisationsSitemapUrlGeneratorManager } from '../src/sitemap-generator/OrganisationsSitemapUrlGeneratorManager';
7
- import { ScholarshipsSitemapUrlGeneratorManager } from '../src/sitemap-generator/ScholarshipsSitemapUrlGeneratorManager';
8
- import { ProgrammesSitemapUrlGeneratorManager } from '../src/sitemap-generator/ProgrammesSitemapUrlGeneratorManager';
9
- import { FilterCombinations } from '../src/enums/FilterCombinations';
10
- import { ISitemapUrlGenerator } from '../src/common/ISitemapUrlGenerator';
11
- import { FilterKeyValuesMap } from '../src/common/FilterKeyValuesMap';
12
- import { IPresenter } from '../src/common';
13
- export { IOrganisationsClient, IOrganisation, IRankingApiClient, ISearchApiClient, ISitemapUrlGeneratorManager, OrganisationsSitemapUrlGeneratorManager, ScholarshipsSitemapUrlGeneratorManager, ProgrammesSitemapUrlGeneratorManager, FilterCombinations, ISitemapUrlGenerator, FilterKeyValuesMap, IPresenter };
1
+ export { IOrganisationsClient } from '../src/sitemap-generator/IOrganisationsClient';
2
+ export { IOrganisation } from '../src/sitemap-generator/IOrganisation';
3
+ export { IRankingApiClient } from '../src/sitemap-generator/IRankingApiClient';
4
+ export { ISearchApiClient } from '../src/sitemap-generator/ISearchApiClient';
5
+ export { ISitemapUrlGeneratorManager } from '../src/sitemap-generator/ISitemapUrlGeneratorManager';
6
+ export { OrganisationsSitemapUrlGeneratorManager } from '../src/sitemap-generator/OrganisationsSitemapUrlGeneratorManager';
7
+ export { ScholarshipsSitemapUrlGeneratorManager } from '../src/sitemap-generator/ScholarshipsSitemapUrlGeneratorManager';
8
+ export { ProgrammesSitemapUrlGeneratorManager } from '../src/sitemap-generator/ProgrammesSitemapUrlGeneratorManager';
9
+ export { FilterCombinations } from '../src/enums/FilterCombinations';
10
+ export { ISitemapUrlGenerator } from '../src/common/ISitemapUrlGenerator';
11
+ export { FilterKeyValuesMap } from '../src/common/FilterKeyValuesMap';
12
+ export { IPresenter } from '../src/common';
13
+ export { IProgrammeSitemapUrlGenerator } from '../src/programmes/types/IProgrammeSitemapUrlGenerator';
@@ -1,5 +1,4 @@
1
- import { OrganisationsSitemapUrlGeneratorManager } from '../src/sitemap-generator/OrganisationsSitemapUrlGeneratorManager';
2
- import { ScholarshipsSitemapUrlGeneratorManager } from '../src/sitemap-generator/ScholarshipsSitemapUrlGeneratorManager';
3
- import { ProgrammesSitemapUrlGeneratorManager } from '../src/sitemap-generator/ProgrammesSitemapUrlGeneratorManager';
4
- import { FilterCombinations } from '../src/enums/FilterCombinations';
5
- export { OrganisationsSitemapUrlGeneratorManager, ScholarshipsSitemapUrlGeneratorManager, ProgrammesSitemapUrlGeneratorManager, FilterCombinations };
1
+ export { OrganisationsSitemapUrlGeneratorManager } from '../src/sitemap-generator/OrganisationsSitemapUrlGeneratorManager';
2
+ export { ScholarshipsSitemapUrlGeneratorManager } from '../src/sitemap-generator/ScholarshipsSitemapUrlGeneratorManager';
3
+ export { ProgrammesSitemapUrlGeneratorManager } from '../src/sitemap-generator/ProgrammesSitemapUrlGeneratorManager';
4
+ export { FilterCombinations } from '../src/enums/FilterCombinations';
@@ -0,0 +1,3 @@
1
+ export interface IRankingApiClient {
2
+ getFacets(): Promise<string[]>;
3
+ }
@@ -1,7 +1,5 @@
1
1
  import { IDependencies } from '../common/IDependencies';
2
2
  import { ISearchApiClient } from '../sitemap-generator/ISearchApiClient';
3
- import { IOrganisationsClient } from '../sitemap-generator/IOrganisationsClient';
4
3
  export interface ISitemapDependencies extends IDependencies {
5
4
  searchApiClient: ISearchApiClient;
6
- organisationsClient: IOrganisationsClient;
7
5
  }
@@ -1,7 +1,7 @@
1
1
  import { FilterCombinations } from '../enums/FilterCombinations';
2
2
  import { IRule } from './IRule';
3
3
  export interface ISitemapUrlGenerator {
4
- filterCombination: FilterCombinations;
4
+ readonly filterCombination: FilterCombinations;
5
5
  generateSitemapUrls(): Promise<string[]>;
6
6
  getAllRules(): IRule[];
7
7
  }
@@ -2,5 +2,4 @@ import { BaseFilterKeyValueRule } from '../../common/rules/BaseFilterKeyValueRul
2
2
  export declare class OnlineAttendanceRule extends BaseFilterKeyValueRule {
3
3
  constructor();
4
4
  getName(): string;
5
- getDescription(): string;
6
5
  }
@@ -8,7 +8,4 @@ export class OnlineAttendanceRule extends BaseFilterKeyValueRule {
8
8
  getName() {
9
9
  return 'OnlineAttendanceRule';
10
10
  }
11
- getDescription() {
12
- return 'Indexable if attendance is online';
13
- }
14
11
  }
@@ -1,7 +1,9 @@
1
1
  import { ISitemapDependencies } from '../../common/ISitemapDependencies';
2
2
  import { IRankingApiClient } from '../../sitemap-generator/IRankingApiClient';
3
3
  import { PortalType } from '@studyportals/domain-client';
4
+ import { IOrganisationsClient } from '../../sitemap-generator/IOrganisationsClient';
4
5
  export interface IOrganisationsSitemapDependencies extends ISitemapDependencies {
6
+ organisationsClient: IOrganisationsClient;
5
7
  portalType: PortalType;
6
8
  rankingApiClient: IRankingApiClient;
7
9
  }
@@ -1,5 +1,8 @@
1
1
  import { BaseSeoIndexabilityPolicy } from '../common/policies/BaseSeoIndexabilityPolicy';
2
2
  import { IProgrammeSeoDependencies } from './types/IProgrammeSeoDependencies';
3
- export declare abstract class ProgrammesBaseIndexabilityPolicy extends BaseSeoIndexabilityPolicy<IProgrammeSeoDependencies> {
3
+ import { IProgrammeSitemapUrlGenerator } from './types/IProgrammeSitemapUrlGenerator';
4
+ import { FilterKey } from '@studyportals/search-filters';
5
+ export declare abstract class ProgrammesBaseIndexabilityPolicy extends BaseSeoIndexabilityPolicy<IProgrammeSeoDependencies> implements IProgrammeSitemapUrlGenerator {
6
+ abstract readonly filterKeys: FilterKey[];
4
7
  protected initateBaseRules(): void;
5
8
  }
@@ -1,3 +1,4 @@
1
+ import { FilterKey } from '@studyportals/search-filters';
1
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
2
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
3
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -6,6 +7,7 @@ import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
6
7
  export declare class Area extends ProgrammesBaseIndexabilityPolicy {
7
8
  readonly name: string;
8
9
  readonly description: string;
10
+ readonly filterKeys: FilterKey[];
9
11
  protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule)[];
10
12
  constructor(dependencies: IProgrammeSeoDependencies);
11
13
  protected generateUrls(): Promise<string[]>;
@@ -7,6 +7,7 @@ import { AreaPresenter } from '../../presenters/AreaPresenter';
7
7
  export class Area extends ProgrammesBaseIndexabilityPolicy {
8
8
  name = 'Area Policy';
9
9
  description = 'Controls indexing of pages filtered by geographic areas.';
10
+ filterKeys = [FilterKey.AREA];
10
11
  rules = [
11
12
  new SingleValueSelectedForFilterRule(FilterKey.AREA),
12
13
  new SingleValueSelectedForFilterRule(FilterKey.COUNTRY),
@@ -1,3 +1,4 @@
1
+ import { FilterKey } from '@studyportals/search-filters';
1
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
2
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
3
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -7,6 +8,7 @@ import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
7
8
  export declare class Attendance extends ProgrammesBaseIndexabilityPolicy {
8
9
  readonly name: string;
9
10
  readonly description: string;
11
+ readonly filterKeys: FilterKey[];
10
12
  protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | OnlineAttendanceRule)[];
11
13
  constructor(dependencies: IProgrammeSeoDependencies);
12
14
  protected generateUrls(): Promise<string[]>;
@@ -8,6 +8,7 @@ import { AttendancePresenter } from '../../presenters/AttendancePresenter';
8
8
  export class Attendance extends ProgrammesBaseIndexabilityPolicy {
9
9
  name = 'Attendance Policy';
10
10
  description = 'Determines indexing rules for pages filtered by study format (online, on-campus, etc.).';
11
+ filterKeys = [FilterKey.DELIVERY_METHOD];
11
12
  rules = [
12
13
  new SingleValueSelectedForFilterRule(FilterKey.DELIVERY_METHOD),
13
14
  new OnlyFiltersSelectedRule([FilterKey.DELIVERY_METHOD]),
@@ -1,3 +1,4 @@
1
+ import { FilterKey } from '@studyportals/search-filters';
1
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
2
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
3
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -8,6 +9,7 @@ import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
8
9
  export declare class AttendanceDegree extends ProgrammesBaseIndexabilityPolicy {
9
10
  readonly name: string;
10
11
  readonly description: string;
12
+ readonly filterKeys: FilterKey[];
11
13
  protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | OnlineAttendanceRule | IndexableDegreeRule)[];
12
14
  constructor(dependencies: IProgrammeSeoDependencies);
13
15
  protected generateUrls(): Promise<string[]>;
@@ -10,6 +10,7 @@ import { DegreePresenter } from '../../presenters/DegreePresenter';
10
10
  export class AttendanceDegree extends ProgrammesBaseIndexabilityPolicy {
11
11
  name = 'Attendance Degree Type Policy';
12
12
  description = 'Determines indexing rules for pages filtered by both study format (online, on-campus, etc.), and degree type prioritizing degrees and formats with demonstrated search demand.';
13
+ filterKeys = [FilterKey.DELIVERY_METHOD, FilterKey.DEGREE_TYPE];
13
14
  rules = [
14
15
  new SingleValueSelectedForFilterRule(FilterKey.DELIVERY_METHOD),
15
16
  new SingleValueSelectedForFilterRule(FilterKey.DEGREE_TYPE),
@@ -1,3 +1,4 @@
1
+ import { FilterKey } from '@studyportals/search-filters';
1
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
2
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
3
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -6,6 +7,7 @@ import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
6
7
  export declare class Continent extends ProgrammesBaseIndexabilityPolicy {
7
8
  readonly name: string;
8
9
  readonly description: string;
10
+ readonly filterKeys: FilterKey[];
9
11
  protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule)[];
10
12
  constructor(dependencies: IProgrammeSeoDependencies);
11
13
  protected generateUrls(): Promise<string[]>;
@@ -7,6 +7,7 @@ import { ContinentPresenter } from '../../presenters/ContinentPresenter';
7
7
  export class Continent extends ProgrammesBaseIndexabilityPolicy {
8
8
  name = 'Continent Policy';
9
9
  description = 'Governs indexing of continent-level filtered pages.';
10
+ filterKeys = [FilterKey.CONTINENT];
10
11
  rules = [
11
12
  new SingleValueSelectedForFilterRule(FilterKey.CONTINENT),
12
13
  new OnlyFiltersSelectedRule([FilterKey.CONTINENT])
@@ -1,3 +1,4 @@
1
+ import { FilterKey } from '@studyportals/search-filters';
1
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
2
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
3
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -7,6 +8,7 @@ import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
7
8
  export declare class ContinentTuitionFee extends ProgrammesBaseIndexabilityPolicy {
8
9
  readonly name: string;
9
10
  readonly description: string;
11
+ readonly filterKeys: FilterKey[];
10
12
  protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | AffordableTuitionFeeRule)[];
11
13
  constructor(dependencies: IProgrammeSeoDependencies);
12
14
  protected generateUrls(): Promise<string[]>;
@@ -9,6 +9,7 @@ import { TuitionFeePresenter } from '../../presenters/TuitionFeePresenter';
9
9
  export class ContinentTuitionFee extends ProgrammesBaseIndexabilityPolicy {
10
10
  name = 'Continent Tuition Fee Policy';
11
11
  description = 'Determines indexing rules for pages filtered by both continent, and tuition fee, priotizing combinations with affordable tuition fees.';
12
+ filterKeys = [FilterKey.CONTINENT, FilterKey.TUITION_FEE];
12
13
  rules = [
13
14
  new SingleValueSelectedForFilterRule(FilterKey.CONTINENT),
14
15
  new SingleValueSelectedForFilterRule(FilterKey.TUITION_FEE),
@@ -1,3 +1,4 @@
1
+ import { FilterKey } from '@studyportals/search-filters';
1
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
2
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
3
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -6,6 +7,7 @@ import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
6
7
  export declare class Country extends ProgrammesBaseIndexabilityPolicy {
7
8
  readonly name: string;
8
9
  readonly description: string;
10
+ readonly filterKeys: FilterKey[];
9
11
  protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule)[];
10
12
  constructor(dependencies: IProgrammeSeoDependencies);
11
13
  protected generateUrls(): Promise<string[]>;
@@ -7,6 +7,7 @@ import { CountryPresenter } from '../../presenters/CountryPresenter';
7
7
  export class Country extends ProgrammesBaseIndexabilityPolicy {
8
8
  name = 'Country Policy';
9
9
  description = 'Governs indexing of country-level filtered pages.';
10
+ filterKeys = [FilterKey.COUNTRY];
10
11
  rules = [new SingleValueSelectedForFilterRule(FilterKey.COUNTRY), new OnlyFiltersSelectedRule([FilterKey.COUNTRY])];
11
12
  constructor(dependencies) {
12
13
  super(dependencies);
@@ -1,3 +1,4 @@
1
+ import { FilterKey } from '@studyportals/search-filters';
1
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
2
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
3
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -7,6 +8,7 @@ import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
7
8
  export declare class CountryAttendance extends ProgrammesBaseIndexabilityPolicy {
8
9
  readonly name: string;
9
10
  readonly description: string;
11
+ readonly filterKeys: FilterKey[];
10
12
  protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | OnlineAttendanceRule)[];
11
13
  constructor(dependencies: IProgrammeSeoDependencies);
12
14
  protected generateUrls(): Promise<string[]>;
@@ -9,6 +9,7 @@ import { AttendancePresenter } from '../../presenters/AttendancePresenter';
9
9
  export class CountryAttendance extends ProgrammesBaseIndexabilityPolicy {
10
10
  name = 'Country Attendance Policy';
11
11
  description = 'Determines indexing rules for pages filtered by both country, and study format (online, on-campus, etc.).';
12
+ filterKeys = [FilterKey.COUNTRY, FilterKey.DELIVERY_METHOD];
12
13
  rules = [
13
14
  new SingleValueSelectedForFilterRule(FilterKey.COUNTRY),
14
15
  new SingleValueSelectedForFilterRule(FilterKey.DELIVERY_METHOD),
@@ -1,3 +1,4 @@
1
+ import { FilterKey } from '@studyportals/search-filters';
1
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
2
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
3
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -8,6 +9,7 @@ import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
8
9
  export declare class CountryAttendanceDegree extends ProgrammesBaseIndexabilityPolicy {
9
10
  readonly name: string;
10
11
  readonly description: string;
12
+ readonly filterKeys: FilterKey[];
11
13
  protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | OnlineAttendanceRule | MbaDegreeRule)[];
12
14
  constructor(dependencies: IProgrammeSeoDependencies);
13
15
  protected generateUrls(): Promise<string[]>;
@@ -12,6 +12,7 @@ export class CountryAttendanceDegree extends ProgrammesBaseIndexabilityPolicy {
12
12
  name = 'Country Attendance Degree Policy';
13
13
  description = `Determines indexing rules for pages filtered by country,
14
14
  study format (online, on-campus, etc.), and degree type.`;
15
+ filterKeys = [FilterKey.COUNTRY, FilterKey.DELIVERY_METHOD, FilterKey.DEGREE_TYPE];
15
16
  rules = [
16
17
  new SingleValueSelectedForFilterRule(FilterKey.COUNTRY),
17
18
  new SingleValueSelectedForFilterRule(FilterKey.DELIVERY_METHOD),
@@ -1,3 +1,4 @@
1
+ import { FilterKey } from '@studyportals/search-filters';
1
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
2
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
3
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -7,6 +8,7 @@ import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
7
8
  export declare class CountryDegree extends ProgrammesBaseIndexabilityPolicy {
8
9
  readonly name: string;
9
10
  readonly description: string;
11
+ readonly filterKeys: FilterKey[];
10
12
  protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | IndexableDegreeRule)[];
11
13
  constructor(dependencies: IProgrammeSeoDependencies);
12
14
  protected generateUrls(): Promise<string[]>;
@@ -9,6 +9,7 @@ import { DegreePresenter } from '../../presenters/DegreePresenter';
9
9
  export class CountryDegree extends ProgrammesBaseIndexabilityPolicy {
10
10
  name = 'Country Degree Policy';
11
11
  description = 'Determines indexing rules for pages filtered by both country, and degree type.';
12
+ filterKeys = [FilterKey.COUNTRY, FilterKey.DEGREE_TYPE];
12
13
  rules = [
13
14
  new SingleValueSelectedForFilterRule(FilterKey.COUNTRY),
14
15
  new SingleValueSelectedForFilterRule(FilterKey.DEGREE_TYPE),
@@ -1,3 +1,4 @@
1
+ import { FilterKey } from '@studyportals/search-filters';
1
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
2
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
3
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -7,6 +8,7 @@ import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
7
8
  export declare class CountryDuration extends ProgrammesBaseIndexabilityPolicy {
8
9
  readonly name: string;
9
10
  readonly description: string;
11
+ readonly filterKeys: FilterKey[];
10
12
  protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | IndexableDurationRule)[];
11
13
  constructor(dependencies: IProgrammeSeoDependencies);
12
14
  protected generateUrls(): Promise<string[]>;
@@ -9,6 +9,7 @@ import { DurationPresenter } from '../../presenters/DurationPresenter';
9
9
  export class CountryDuration extends ProgrammesBaseIndexabilityPolicy {
10
10
  name = 'Country Duration Policy';
11
11
  description = 'Determines indexing rules for pages filtered by both country, and duration (1 year, 2 years, etc.).';
12
+ filterKeys = [FilterKey.COUNTRY, FilterKey.DURATION];
12
13
  rules = [
13
14
  new SingleValueSelectedForFilterRule(FilterKey.COUNTRY),
14
15
  new SingleValueSelectedForFilterRule(FilterKey.DURATION),
@@ -1,3 +1,4 @@
1
+ import { FilterKey } from '@studyportals/search-filters';
1
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
2
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
3
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -8,6 +9,7 @@ import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
8
9
  export declare class CountryDurationDegree extends ProgrammesBaseIndexabilityPolicy {
9
10
  readonly name: string;
10
11
  readonly description: string;
12
+ readonly filterKeys: FilterKey[];
11
13
  protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | OneYearDurationRule | MbaOrMscDegreeRule)[];
12
14
  constructor(dependencies: IProgrammeSeoDependencies);
13
15
  protected generateUrls(): Promise<string[]>;
@@ -12,6 +12,7 @@ export class CountryDurationDegree extends ProgrammesBaseIndexabilityPolicy {
12
12
  name = 'Country Duration Degree Policy';
13
13
  description = `Determines indexing rules for pages filtered by country,
14
14
  duration (1 year, 2 years, etc.), and degree type.`;
15
+ filterKeys = [FilterKey.COUNTRY, FilterKey.DURATION, FilterKey.DEGREE_TYPE];
15
16
  rules = [
16
17
  new SingleValueSelectedForFilterRule(FilterKey.COUNTRY),
17
18
  new SingleValueSelectedForFilterRule(FilterKey.DURATION),
@@ -1,3 +1,4 @@
1
+ import { FilterKey } from '@studyportals/search-filters';
1
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
2
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
3
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -7,6 +8,7 @@ import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
7
8
  export declare class CountryEducationalForm extends ProgrammesBaseIndexabilityPolicy {
8
9
  readonly name: string;
9
10
  readonly description: string;
11
+ readonly filterKeys: FilterKey[];
10
12
  protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | IndexableEducationalFormRule)[];
11
13
  constructor(dependencies: IProgrammeSeoDependencies);
12
14
  protected generateUrls(): Promise<string[]>;
@@ -10,6 +10,7 @@ export class CountryEducationalForm extends ProgrammesBaseIndexabilityPolicy {
10
10
  name = 'Country Educational Form Policy';
11
11
  description = `Determines indexing rules for pages filtered by both country,
12
12
  and educational form (academic, semester, summer school, etc.).`;
13
+ filterKeys = [FilterKey.COUNTRY, FilterKey.EDUCATIONAL_FORM];
13
14
  rules = [
14
15
  new SingleValueSelectedForFilterRule(FilterKey.COUNTRY),
15
16
  new SingleValueSelectedForFilterRule(FilterKey.EDUCATIONAL_FORM),
@@ -1,3 +1,4 @@
1
+ import { FilterKey } from '@studyportals/search-filters';
1
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
2
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
3
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -7,6 +8,7 @@ import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
7
8
  export declare class CountryFormat extends ProgrammesBaseIndexabilityPolicy {
8
9
  readonly name: string;
9
10
  readonly description: string;
11
+ readonly filterKeys: FilterKey[];
10
12
  protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | PartTimeFormatRule)[];
11
13
  constructor(dependencies: IProgrammeSeoDependencies);
12
14
  protected generateUrls(): Promise<string[]>;
@@ -9,6 +9,7 @@ import { FormatPresenter } from '../../presenters/FormatPresenter';
9
9
  export class CountryFormat extends ProgrammesBaseIndexabilityPolicy {
10
10
  name = 'Country Format Policy';
11
11
  description = 'Determines indexing rules for pages filtered by both country, and attendance type (part-time or fulltime).';
12
+ filterKeys = [FilterKey.COUNTRY, FilterKey.ATTENDANCE];
12
13
  rules = [
13
14
  new SingleValueSelectedForFilterRule(FilterKey.COUNTRY),
14
15
  new SingleValueSelectedForFilterRule(FilterKey.ATTENDANCE),
@@ -1,3 +1,4 @@
1
+ import { FilterKey } from '@studyportals/search-filters';
1
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
2
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
3
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -7,6 +8,7 @@ import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
7
8
  export declare class CountryTuitionFee extends ProgrammesBaseIndexabilityPolicy {
8
9
  readonly name: string;
9
10
  readonly description: string;
11
+ readonly filterKeys: FilterKey[];
10
12
  protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | AffordableTuitionFeeRule)[];
11
13
  constructor(dependencies: IProgrammeSeoDependencies);
12
14
  protected generateUrls(): Promise<string[]>;
@@ -9,6 +9,7 @@ import { TuitionFeePresenter } from '../../presenters/TuitionFeePresenter';
9
9
  export class CountryTuitionFee extends ProgrammesBaseIndexabilityPolicy {
10
10
  name = 'Country Tuition Fee Policy';
11
11
  description = 'Determines indexing rules for pages filtered by both country, and tuition fee.';
12
+ filterKeys = [FilterKey.COUNTRY, FilterKey.TUITION_FEE];
12
13
  rules = [
13
14
  new SingleValueSelectedForFilterRule(FilterKey.COUNTRY),
14
15
  new SingleValueSelectedForFilterRule(FilterKey.TUITION_FEE),
@@ -1,3 +1,4 @@
1
+ import { FilterKey } from '@studyportals/search-filters';
1
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
2
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
3
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -6,6 +7,7 @@ import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
6
7
  export declare class Discipline extends ProgrammesBaseIndexabilityPolicy {
7
8
  readonly name: string;
8
9
  readonly description: string;
10
+ readonly filterKeys: FilterKey[];
9
11
  protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule)[];
10
12
  constructor(dependencies: IProgrammeSeoDependencies);
11
13
  protected generateUrls(): Promise<string[]>;
@@ -7,6 +7,7 @@ import { DisciplinePresenter } from '../../presenters/DisciplinePresenter';
7
7
  export class Discipline extends ProgrammesBaseIndexabilityPolicy {
8
8
  name = 'Discipline Policy';
9
9
  description = 'Controls indexing of pages filtered by discipline.';
10
+ filterKeys = [FilterKey.DISCIPLINES];
10
11
  rules = [
11
12
  new SingleValueSelectedForFilterRule(FilterKey.DISCIPLINES),
12
13
  new OnlyFiltersSelectedRule([FilterKey.DISCIPLINES])
@@ -1,3 +1,4 @@
1
+ import { FilterKey } from '@studyportals/search-filters';
1
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
2
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
3
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -6,6 +7,7 @@ import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
6
7
  export declare class DisciplineArea extends ProgrammesBaseIndexabilityPolicy {
7
8
  readonly name: string;
8
9
  readonly description: string;
10
+ readonly filterKeys: FilterKey[];
9
11
  protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule)[];
10
12
  constructor(dependencies: IProgrammeSeoDependencies);
11
13
  protected generateUrls(): Promise<string[]>;
@@ -8,6 +8,7 @@ import { AreaPresenter } from '../../presenters/AreaPresenter';
8
8
  export class DisciplineArea extends ProgrammesBaseIndexabilityPolicy {
9
9
  name = 'Discipline Area Policy';
10
10
  description = 'Determines indexing rules for pages filtered by both discipline, and geographic areas.';
11
+ filterKeys = [FilterKey.DISCIPLINES, FilterKey.AREA];
11
12
  rules = [
12
13
  new SingleValueSelectedForFilterRule(FilterKey.DISCIPLINES),
13
14
  new SingleValueSelectedForFilterRule(FilterKey.AREA),
@@ -1,3 +1,4 @@
1
+ import { FilterKey } from '@studyportals/search-filters';
1
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
2
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
3
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -7,6 +8,7 @@ import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
7
8
  export declare class DisciplineAttendance extends ProgrammesBaseIndexabilityPolicy {
8
9
  readonly name: string;
9
10
  readonly description: string;
11
+ readonly filterKeys: FilterKey[];
10
12
  protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | OnlineAttendanceRule)[];
11
13
  constructor(dependencies: IProgrammeSeoDependencies);
12
14
  protected generateUrls(): Promise<string[]>;
@@ -9,6 +9,7 @@ import { AttendancePresenter } from '../../presenters/AttendancePresenter';
9
9
  export class DisciplineAttendance extends ProgrammesBaseIndexabilityPolicy {
10
10
  name = 'Discipline Attendance Policy';
11
11
  description = 'Determines indexing rules for pages filtered by both discipline, and study format (online, on-campus, etc.).';
12
+ filterKeys = [FilterKey.DISCIPLINES, FilterKey.DELIVERY_METHOD];
12
13
  rules = [
13
14
  new SingleValueSelectedForFilterRule(FilterKey.DISCIPLINES),
14
15
  new SingleValueSelectedForFilterRule(FilterKey.DELIVERY_METHOD),
@@ -1,3 +1,4 @@
1
+ import { FilterKey } from '@studyportals/search-filters';
1
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
2
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
3
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -6,6 +7,7 @@ import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
6
7
  export declare class DisciplineContinent extends ProgrammesBaseIndexabilityPolicy {
7
8
  readonly name: string;
8
9
  readonly description: string;
10
+ readonly filterKeys: FilterKey[];
9
11
  protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule)[];
10
12
  constructor(dependencies: IProgrammeSeoDependencies);
11
13
  protected generateUrls(): Promise<string[]>;
@@ -8,6 +8,7 @@ import { ContinentPresenter } from '../../presenters/ContinentPresenter';
8
8
  export class DisciplineContinent extends ProgrammesBaseIndexabilityPolicy {
9
9
  name = 'Discipline Continent Policy';
10
10
  description = 'Determines indexing rules for pages filtered by both discipline, and continent.';
11
+ filterKeys = [FilterKey.DISCIPLINES, FilterKey.CONTINENT];
11
12
  rules = [
12
13
  new SingleValueSelectedForFilterRule(FilterKey.DISCIPLINES),
13
14
  new SingleValueSelectedForFilterRule(FilterKey.CONTINENT),
@@ -1,3 +1,4 @@
1
+ import { FilterKey } from '@studyportals/search-filters';
1
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
2
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
3
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -6,6 +7,7 @@ import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
6
7
  export declare class DisciplineCountry extends ProgrammesBaseIndexabilityPolicy {
7
8
  readonly name: string;
8
9
  readonly description: string;
10
+ readonly filterKeys: FilterKey[];
9
11
  protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule)[];
10
12
  constructor(dependencies: IProgrammeSeoDependencies);
11
13
  protected generateUrls(): Promise<string[]>;
@@ -8,6 +8,7 @@ import { CountryPresenter } from '../../presenters/CountryPresenter';
8
8
  export class DisciplineCountry extends ProgrammesBaseIndexabilityPolicy {
9
9
  name = 'Discipline Country Policy';
10
10
  description = 'Determines indexing rules for pages filtered by both discipline, and country.';
11
+ filterKeys = [FilterKey.DISCIPLINES, FilterKey.COUNTRY];
11
12
  rules = [
12
13
  new SingleValueSelectedForFilterRule(FilterKey.DISCIPLINES),
13
14
  new SingleValueSelectedForFilterRule(FilterKey.COUNTRY),
@@ -1,3 +1,4 @@
1
+ import { FilterKey } from '@studyportals/search-filters';
1
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
2
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
3
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -7,6 +8,7 @@ import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
7
8
  export declare class DisciplineCountryDegree extends ProgrammesBaseIndexabilityPolicy {
8
9
  readonly name: string;
9
10
  readonly description: string;
11
+ readonly filterKeys: FilterKey[];
10
12
  protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | IndexableDegreeRule)[];
11
13
  constructor(dependencies: IProgrammeSeoDependencies);
12
14
  protected generateUrls(): Promise<string[]>;
@@ -11,6 +11,7 @@ export class DisciplineCountryDegree extends ProgrammesBaseIndexabilityPolicy {
11
11
  name = 'Discipline Country Degree Policy';
12
12
  description = `Determines indexing rules for pages filtered by discipline,
13
13
  country, and degree type.`;
14
+ filterKeys = [FilterKey.DISCIPLINES, FilterKey.COUNTRY, FilterKey.DEGREE_TYPE];
14
15
  rules = [
15
16
  new SingleValueSelectedForFilterRule(FilterKey.DISCIPLINES),
16
17
  new SingleValueSelectedForFilterRule(FilterKey.COUNTRY),
@@ -1,3 +1,4 @@
1
+ import { FilterKey } from '@studyportals/search-filters';
1
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
2
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
3
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -7,6 +8,7 @@ import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
7
8
  export declare class DisciplineCountryEducationalForm extends ProgrammesBaseIndexabilityPolicy {
8
9
  readonly name: string;
9
10
  readonly description: string;
11
+ readonly filterKeys: FilterKey[];
10
12
  protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | IndexableEducationalFormRule)[];
11
13
  constructor(dependencies: IProgrammeSeoDependencies);
12
14
  protected generateUrls(): Promise<string[]>;
@@ -11,6 +11,7 @@ export class DisciplineCountryEducationalForm extends ProgrammesBaseIndexability
11
11
  name = 'Discipline Country Educational Form Policy';
12
12
  description = `Determines indexing rules for pages filtered by discipline,
13
13
  country, and educational form (academic, semester, summer school, etc.).`;
14
+ filterKeys = [FilterKey.DISCIPLINES, FilterKey.COUNTRY, FilterKey.EDUCATIONAL_FORM];
14
15
  rules = [
15
16
  new SingleValueSelectedForFilterRule(FilterKey.DISCIPLINES),
16
17
  new SingleValueSelectedForFilterRule(FilterKey.COUNTRY),
@@ -1,3 +1,4 @@
1
+ import { FilterKey } from '@studyportals/search-filters';
1
2
  import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
2
3
  import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
3
4
  import { FilterCombinations } from '../../enums/FilterCombinations';
@@ -7,6 +8,7 @@ import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
7
8
  export declare class DisciplineDegree extends ProgrammesBaseIndexabilityPolicy {
8
9
  readonly name: string;
9
10
  readonly description: string;
11
+ readonly filterKeys: FilterKey[];
10
12
  protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | IndexableDegreeRule)[];
11
13
  constructor(dependencies: IProgrammeSeoDependencies);
12
14
  protected generateUrls(): Promise<string[]>;