@studyportals/fawkes 7.4.2-4 → 8.0.1-1

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 (256) hide show
  1. package/dist/src/common/FilterKeyValuesMap.d.ts +1 -1
  2. package/dist/src/common/IPresenter.d.ts +1 -1
  3. package/dist/src/common/ISeoFilterState.d.ts +1 -1
  4. package/dist/src/common/ISeoInfoBase.d.ts +1 -1
  5. package/dist/src/common/rules/OnlineAttendanceRule.js +1 -1
  6. package/dist/src/common/rules/OnlyFiltersSelectedRule.d.ts +1 -1
  7. package/dist/src/common/rules/SingleValueSelectedForFilterRule.d.ts +1 -1
  8. package/dist/src/enums/FilterCombinations.d.ts +1 -22
  9. package/dist/src/enums/FilterCombinations.js +1 -22
  10. package/dist/src/errors/InvalidFilterValueError.d.ts +1 -1
  11. package/dist/src/organisations/policies/OrganisationsSeoIndexabilityPolicy.d.ts +2 -0
  12. package/dist/src/organisations/policies/OrganisationsSeoIndexabilityPolicy.js +16 -0
  13. package/dist/src/organisations/policies/RankedOrganisationsSeoIndexabilityPolicy.d.ts +1 -1
  14. package/dist/src/organisations/policies/RankedOrganisationsSeoIndexabilityPolicy.js +1 -1
  15. package/dist/src/organisations/policies/our-picks/Area.js +1 -1
  16. package/dist/src/organisations/policies/our-picks/AreaAttendance.js +1 -1
  17. package/dist/src/organisations/policies/our-picks/Attendance.js +1 -1
  18. package/dist/src/organisations/policies/our-picks/Continent.js +1 -1
  19. package/dist/src/organisations/policies/our-picks/Country.js +1 -1
  20. package/dist/src/organisations/policies/our-picks/CountryAttendance.js +1 -1
  21. package/dist/src/organisations/policies/ranked/RankedArea.js +1 -2
  22. package/dist/src/organisations/policies/ranked/RankedAreaDiscipline.js +1 -2
  23. package/dist/src/organisations/policies/ranked/RankedAttendance.js +1 -2
  24. package/dist/src/organisations/policies/ranked/RankedAttendanceDiscipline.js +1 -2
  25. package/dist/src/organisations/policies/ranked/RankedContinent.js +1 -2
  26. package/dist/src/organisations/policies/ranked/RankedContinentAttendance.js +1 -2
  27. package/dist/src/organisations/policies/ranked/RankedCountry.js +1 -2
  28. package/dist/src/organisations/policies/ranked/RankedCountryAttendance.js +1 -2
  29. package/dist/src/organisations/policies/ranked/RankedCountryDiscipline.js +1 -2
  30. package/dist/src/organisations/policies/ranked/RankedDiscipline.js +1 -2
  31. package/dist/src/organisations/policies/ranked/RankedUnfiltered.js +0 -1
  32. package/dist/src/organisations/rules/AtLeastSevenResultsRule.d.ts +15 -0
  33. package/dist/src/organisations/rules/AtLeastSevenResultsRule.js +30 -0
  34. package/dist/src/organisations/rules/BaseSearchVolumeOrganisationsRule.d.ts +1 -1
  35. package/dist/src/organisations/rules/ContinentIsEuropeRule.js +1 -1
  36. package/dist/src/organisations/rules/SearchVolumeAreasAttendanceRule.js +1 -1
  37. package/dist/src/organisations/rules/SearchVolumeAreasDisciplineRule.js +1 -1
  38. package/dist/src/organisations/rules/SearchVolumeCountriesAttendanceRule.js +1 -1
  39. package/dist/src/presenters/AreaPresenter.d.ts +1 -1
  40. package/dist/src/presenters/AreaPresenter.js +1 -1
  41. package/dist/src/presenters/AttendancePresenter.d.ts +1 -1
  42. package/dist/src/presenters/AttendancePresenter.js +1 -5
  43. package/dist/src/presenters/ContinentPresenter.d.ts +1 -1
  44. package/dist/src/presenters/ContinentPresenter.js +1 -1
  45. package/dist/src/presenters/CountryPresenter.d.ts +1 -1
  46. package/dist/src/presenters/CountryPresenter.js +1 -1
  47. package/dist/src/presenters/DegreePresenter.d.ts +1 -1
  48. package/dist/src/presenters/DegreePresenter.js +1 -1
  49. package/dist/src/presenters/DisciplinePresenter.d.ts +1 -1
  50. package/dist/src/presenters/DisciplinePresenter.js +1 -1
  51. package/dist/src/presenters/DurationPresenter.d.ts +1 -1
  52. package/dist/src/presenters/DurationPresenter.js +1 -1
  53. package/dist/src/presenters/EducationalFormPresenter.d.ts +1 -1
  54. package/dist/src/presenters/EducationalFormPresenter.js +1 -1
  55. package/dist/src/presenters/FormatPresenter.d.ts +1 -1
  56. package/dist/src/presenters/FormatPresenter.js +2 -5
  57. package/dist/src/presenters/SpecialProgrammesPresenter.d.ts +1 -1
  58. package/dist/src/presenters/SpecialProgrammesPresenter.js +1 -5
  59. package/dist/src/presenters/TuitionFeePresenter.d.ts +1 -1
  60. package/dist/src/presenters/TuitionFeePresenter.js +1 -1
  61. package/dist/src/programmes/ProgrammesBaseIndexabilityPolicy.d.ts +1 -1
  62. package/dist/src/programmes/SearchIndexabilityManager.js +3 -27
  63. package/dist/src/programmes/policies/Area.d.ts +1 -1
  64. package/dist/src/programmes/policies/Area.js +1 -1
  65. package/dist/src/programmes/policies/Attendance.d.ts +1 -1
  66. package/dist/src/programmes/policies/Attendance.js +1 -1
  67. package/dist/src/programmes/policies/AttendanceDegree.d.ts +4 -3
  68. package/dist/src/programmes/policies/AttendanceDegree.js +7 -8
  69. package/dist/src/programmes/policies/Continent.d.ts +1 -1
  70. package/dist/src/programmes/policies/Continent.js +1 -1
  71. package/dist/src/programmes/policies/ContinentTuitionFee.d.ts +1 -1
  72. package/dist/src/programmes/policies/ContinentTuitionFee.js +1 -1
  73. package/dist/src/programmes/policies/Country.d.ts +1 -1
  74. package/dist/src/programmes/policies/Country.js +1 -1
  75. package/dist/src/programmes/policies/CountryAttendance.d.ts +1 -1
  76. package/dist/src/programmes/policies/CountryAttendance.js +1 -1
  77. package/dist/src/programmes/policies/CountryAttendanceDegree.d.ts +1 -1
  78. package/dist/src/programmes/policies/CountryAttendanceDegree.js +2 -2
  79. package/dist/src/programmes/policies/CountryDegree.d.ts +1 -1
  80. package/dist/src/programmes/policies/CountryDegree.js +1 -1
  81. package/dist/src/programmes/policies/CountryDuration.d.ts +3 -3
  82. package/dist/src/programmes/policies/CountryDuration.js +5 -7
  83. package/dist/src/programmes/policies/CountryDurationDegree.d.ts +1 -1
  84. package/dist/src/programmes/policies/CountryDurationDegree.js +2 -2
  85. package/dist/src/programmes/policies/CountryEducationalForm.d.ts +1 -1
  86. package/dist/src/programmes/policies/CountryEducationalForm.js +2 -2
  87. package/dist/src/programmes/policies/CountryFormat.d.ts +1 -1
  88. package/dist/src/programmes/policies/CountryFormat.js +1 -1
  89. package/dist/src/programmes/policies/CountryTuitionFee.d.ts +1 -1
  90. package/dist/src/programmes/policies/CountryTuitionFee.js +1 -1
  91. package/dist/src/programmes/policies/Degree.d.ts +1 -1
  92. package/dist/src/programmes/policies/Degree.js +1 -1
  93. package/dist/src/programmes/policies/DegreeAttendanceDiscipline.d.ts +2 -3
  94. package/dist/src/programmes/policies/DegreeAttendanceDiscipline.js +14 -14
  95. package/dist/src/programmes/policies/DegreeCountryAttendance.d.ts +1 -1
  96. package/dist/src/programmes/policies/DegreeCountryAttendance.js +2 -2
  97. package/dist/src/programmes/policies/DegreeCountryDiscipline.d.ts +1 -1
  98. package/dist/src/programmes/policies/DegreeCountryDiscipline.js +2 -2
  99. package/dist/src/programmes/policies/DegreeCountryTuitionFee.d.ts +1 -1
  100. package/dist/src/programmes/policies/DegreeCountryTuitionFee.js +3 -3
  101. package/dist/src/programmes/policies/Discipline.d.ts +1 -1
  102. package/dist/src/programmes/policies/Discipline.js +1 -1
  103. package/dist/src/programmes/policies/DisciplineAttendance.d.ts +1 -1
  104. package/dist/src/programmes/policies/DisciplineAttendance.js +1 -1
  105. package/dist/src/programmes/policies/DisciplineContinent.d.ts +1 -1
  106. package/dist/src/programmes/policies/DisciplineContinent.js +1 -1
  107. package/dist/src/programmes/policies/DisciplineCountry.d.ts +1 -1
  108. package/dist/src/programmes/policies/DisciplineCountry.js +1 -1
  109. package/dist/src/programmes/policies/DisciplineCountryEducationalForm.d.ts +1 -1
  110. package/dist/src/programmes/policies/DisciplineCountryEducationalForm.js +2 -2
  111. package/dist/src/programmes/policies/DisciplineDegree.d.ts +1 -1
  112. package/dist/src/programmes/policies/DisciplineDegree.js +1 -1
  113. package/dist/src/programmes/policies/DisciplineDuration.d.ts +1 -1
  114. package/dist/src/programmes/policies/DisciplineDuration.js +1 -1
  115. package/dist/src/programmes/policies/DisciplineEducationalForm.d.ts +1 -1
  116. package/dist/src/programmes/policies/DisciplineEducationalForm.js +2 -2
  117. package/dist/src/programmes/policies/DisciplineFormat.d.ts +1 -1
  118. package/dist/src/programmes/policies/DisciplineFormat.js +1 -1
  119. package/dist/src/programmes/policies/DisciplineTuitionFee.d.ts +1 -1
  120. package/dist/src/programmes/policies/DisciplineTuitionFee.js +1 -1
  121. package/dist/src/programmes/policies/DisciplineTuitionFeeAttendance.d.ts +1 -1
  122. package/dist/src/programmes/policies/DisciplineTuitionFeeAttendance.js +1 -1
  123. package/dist/src/programmes/policies/SpecialProgrammes.d.ts +3 -2
  124. package/dist/src/programmes/policies/SpecialProgrammes.js +4 -2
  125. package/dist/src/programmes/policies/TuitionFee.d.ts +1 -1
  126. package/dist/src/programmes/policies/TuitionFee.js +1 -1
  127. package/dist/src/programmes/policies/index.d.ts +1 -26
  128. package/dist/src/programmes/policies/index.js +1 -26
  129. package/dist/src/programmes/rules/AffordableTuitionFeeRule.js +2 -2
  130. package/dist/src/programmes/rules/AtLeastSevenResultsRule.js +1 -1
  131. package/dist/src/programmes/rules/DegreeAttendanceDisciplineRule.js +2 -2
  132. package/dist/src/programmes/rules/DegreeAttendanceDisciplineSpecificRule.js +2 -2
  133. package/dist/src/programmes/rules/DegreeCountryAttendanceSpecificRule.js +2 -2
  134. package/dist/src/programmes/rules/DegreeCountryDisciplineSpecificRule.js +2 -2
  135. package/dist/src/programmes/rules/DegreeCountryTuitionFeeSpecificRule.js +3 -3
  136. package/dist/src/programmes/rules/DegreeDisciplineRule.js +2 -2
  137. package/dist/src/programmes/rules/IndexableDegreeRule.js +2 -2
  138. package/dist/src/programmes/rules/IndexableDurationRule.js +1 -1
  139. package/dist/src/programmes/rules/IndexableEducationalFormRule.js +2 -2
  140. package/dist/src/programmes/rules/MbaDegreeRule.js +2 -2
  141. package/dist/src/programmes/rules/MbaOrMscDegreeRule.js +2 -2
  142. package/dist/src/programmes/rules/OneYearDurationRule.js +2 -2
  143. package/dist/src/programmes/rules/PartTimeFormatRule.js +2 -2
  144. package/dist/src/programmes/types/IProgrammeSitemapUrlGenerator.d.ts +1 -1
  145. package/dist/src/scholarships/policies/Area.js +1 -1
  146. package/dist/src/scholarships/policies/Country.js +1 -1
  147. package/dist/src/scholarships/policies/Discipline.js +1 -1
  148. package/dist/src/scholarships/policies/DisciplineCountry.js +1 -1
  149. package/dist/src/scholarships/policies/UniversityCountry.js +1 -1
  150. package/dist/src/scholarships/rules/ExceptAustaliaAreasRule.js +1 -1
  151. package/dist/src/scholarships/rules/SearchVolumeAreasRule.js +1 -1
  152. package/dist/src/scholarships/rules/SearchVolumeCountriesDisciplinesRule.js +1 -1
  153. package/dist/src/scholarships/rules/SearchVolumeCountriesRule.js +1 -1
  154. package/dist/src/scholarships/rules/SearchVolumeDisciplinesRule.js +1 -1
  155. package/dist/src/sitemap-generator/BaseSitemapUrlGeneratorManager.d.ts +1 -1
  156. package/dist/src/sitemap-generator/ISearchApiClient.d.ts +1 -1
  157. package/dist/src/sitemap-generator/ISitemapUrlGeneratorManager.d.ts +1 -1
  158. package/dist/src/sitemap-generator/OrganisationsSitemapUrlGeneratorManager.d.ts +1 -1
  159. package/dist/src/sitemap-generator/OrganisationsSitemapUrlGeneratorManager.js +1 -1
  160. package/dist/src/sitemap-generator/ProgrammesSitemapUrlGeneratorManager.d.ts +1 -1
  161. package/dist/src/sitemap-generator/ProgrammesSitemapUrlGeneratorManager.js +4 -28
  162. package/package.json +105 -105
  163. package/dist/src/common/IPolicyMetaData.d.ts +0 -6
  164. package/dist/src/common/IPolicyMetaData.js +0 -1
  165. package/dist/src/organisations/OrganisationsRuleBasedIndexabilityPolicy.d.ts +0 -11
  166. package/dist/src/organisations/OrganisationsRuleBasedIndexabilityPolicy.js +0 -19
  167. package/dist/src/organisations/rules/OnlineAttendanceRule.d.ts +0 -6
  168. package/dist/src/organisations/rules/OnlineAttendanceRule.js +0 -14
  169. package/dist/src/programmes/IProgrammeSearchApplicationState.d.ts +0 -4
  170. package/dist/src/programmes/IProgrammeSearchApplicationState.js +0 -1
  171. package/dist/src/programmes/IProgrammeSearchDependencies.d.ts +0 -7
  172. package/dist/src/programmes/IProgrammeSearchDependencies.js +0 -1
  173. package/dist/src/programmes/IProgrammesSeoDependencies.d.ts +0 -2
  174. package/dist/src/programmes/IProgrammesSeoDependencies.js +0 -1
  175. package/dist/src/programmes/policies/AttendanceArea.d.ts +0 -16
  176. package/dist/src/programmes/policies/AttendanceArea.js +0 -48
  177. package/dist/src/programmes/policies/AttendanceContinent.d.ts +0 -16
  178. package/dist/src/programmes/policies/AttendanceContinent.js +0 -46
  179. package/dist/src/programmes/policies/AttendanceDuration.d.ts +0 -16
  180. package/dist/src/programmes/policies/AttendanceDuration.js +0 -48
  181. package/dist/src/programmes/policies/AttendanceFormat.d.ts +0 -16
  182. package/dist/src/programmes/policies/AttendanceFormat.js +0 -48
  183. package/dist/src/programmes/policies/AttendanceTuitionFee.d.ts +0 -16
  184. package/dist/src/programmes/policies/AttendanceTuitionFee.js +0 -49
  185. package/dist/src/programmes/policies/ContinentDuration.d.ts +0 -15
  186. package/dist/src/programmes/policies/ContinentDuration.js +0 -46
  187. package/dist/src/programmes/policies/ContinentFormat.d.ts +0 -15
  188. package/dist/src/programmes/policies/ContinentFormat.js +0 -46
  189. package/dist/src/programmes/policies/ContinentSpecialProgrammes.d.ts +0 -15
  190. package/dist/src/programmes/policies/ContinentSpecialProgrammes.js +0 -46
  191. package/dist/src/programmes/policies/CountrySpecialProgrammes.d.ts +0 -15
  192. package/dist/src/programmes/policies/CountrySpecialProgrammes.js +0 -46
  193. package/dist/src/programmes/policies/DegreeArea.d.ts +0 -15
  194. package/dist/src/programmes/policies/DegreeArea.js +0 -46
  195. package/dist/src/programmes/policies/DegreeAreaTuitionFee.d.ts +0 -15
  196. package/dist/src/programmes/policies/DegreeAreaTuitionFee.js +0 -52
  197. package/dist/src/programmes/policies/DegreeAttendanceFormat.d.ts +0 -15
  198. package/dist/src/programmes/policies/DegreeAttendanceFormat.js +0 -52
  199. package/dist/src/programmes/policies/DegreeAttendanceSpecialProgrammes.d.ts +0 -16
  200. package/dist/src/programmes/policies/DegreeAttendanceSpecialProgrammes.js +0 -56
  201. package/dist/src/programmes/policies/DegreeAttendanceTuitionFee.d.ts +0 -16
  202. package/dist/src/programmes/policies/DegreeAttendanceTuitionFee.js +0 -55
  203. package/dist/src/programmes/policies/DegreeContinent.d.ts +0 -16
  204. package/dist/src/programmes/policies/DegreeContinent.js +0 -46
  205. package/dist/src/programmes/policies/DegreeContinentTuitionFee.d.ts +0 -16
  206. package/dist/src/programmes/policies/DegreeContinentTuitionFee.js +0 -52
  207. package/dist/src/programmes/policies/DegreeDuration.d.ts +0 -16
  208. package/dist/src/programmes/policies/DegreeDuration.js +0 -48
  209. package/dist/src/programmes/policies/DegreeFormat.d.ts +0 -16
  210. package/dist/src/programmes/policies/DegreeFormat.js +0 -49
  211. package/dist/src/programmes/policies/DegreeFormatTuitionFee.d.ts +0 -16
  212. package/dist/src/programmes/policies/DegreeFormatTuitionFee.js +0 -52
  213. package/dist/src/programmes/policies/DegreeSpecialProgrammes.d.ts +0 -15
  214. package/dist/src/programmes/policies/DegreeSpecialProgrammes.js +0 -48
  215. package/dist/src/programmes/policies/DegreeTuitionFee.d.ts +0 -15
  216. package/dist/src/programmes/policies/DegreeTuitionFee.js +0 -47
  217. package/dist/src/programmes/policies/DisciplineContinentAttendance.d.ts +0 -16
  218. package/dist/src/programmes/policies/DisciplineContinentAttendance.js +0 -54
  219. package/dist/src/programmes/policies/DisciplineCountryAttendance.d.ts +0 -16
  220. package/dist/src/programmes/policies/DisciplineCountryAttendance.js +0 -54
  221. package/dist/src/programmes/policies/DisciplineCountryDegree.d.ts +0 -16
  222. package/dist/src/programmes/policies/DisciplineCountryDegree.js +0 -53
  223. package/dist/src/programmes/policies/DisciplineCountryFormat.d.ts +0 -15
  224. package/dist/src/programmes/policies/DisciplineCountryFormat.js +0 -52
  225. package/dist/src/programmes/policies/DisciplineSpecialProgrammes.d.ts +0 -15
  226. package/dist/src/programmes/policies/DisciplineSpecialProgrammes.js +0 -46
  227. package/dist/src/programmes/policies/Duration.d.ts +0 -15
  228. package/dist/src/programmes/policies/Duration.js +0 -35
  229. package/dist/src/programmes/policies/Format.d.ts +0 -15
  230. package/dist/src/programmes/policies/Format.js +0 -35
  231. package/dist/src/programmes/rules/DegreeAttendanceSpecificRule.d.ts +0 -10
  232. package/dist/src/programmes/rules/DegreeAttendanceSpecificRule.js +0 -42
  233. package/dist/src/programmes/rules/DegreeCountrySpecificRule.d.ts +0 -10
  234. package/dist/src/programmes/rules/DegreeCountrySpecificRule.js +0 -43
  235. package/dist/src/programmes/rules/DegreeCountryTuitionFeeRule.d.ts +0 -11
  236. package/dist/src/programmes/rules/DegreeCountryTuitionFeeRule.js +0 -40
  237. package/dist/src/programmes/rules/MBACountryAttendanceRule.d.ts +0 -11
  238. package/dist/src/programmes/rules/MBACountryAttendanceRule.js +0 -40
  239. package/dist/src/programmes/rules/MasterOfArtsDisciplineRule.d.ts +0 -10
  240. package/dist/src/programmes/rules/MasterOfArtsDisciplineRule.js +0 -41
  241. package/dist/src/programmes/rules/MasterOfEducationCountryDisciplineRule.d.ts +0 -11
  242. package/dist/src/programmes/rules/MasterOfEducationCountryDisciplineRule.js +0 -69
  243. package/dist/src/programmes/rules/MasterOfLawsCountryAttendanceRule.d.ts +0 -12
  244. package/dist/src/programmes/rules/MasterOfLawsCountryAttendanceRule.js +0 -43
  245. package/dist/src/programmes/rules/MasterOfLawsCountryTuitionFeeRule.d.ts +0 -12
  246. package/dist/src/programmes/rules/MasterOfLawsCountryTuitionFeeRule.js +0 -46
  247. package/dist/src/programmes/rules/MasterOfPhilosophyCountryAttendanceRule.d.ts +0 -12
  248. package/dist/src/programmes/rules/MasterOfPhilosophyCountryAttendanceRule.js +0 -43
  249. package/dist/src/programmes/rules/MasterOfScienceDisciplineRule.d.ts +0 -10
  250. package/dist/src/programmes/rules/MasterOfScienceDisciplineRule.js +0 -41
  251. package/dist/src/programmes/rules/OneYearOnlyRule.d.ts +0 -11
  252. package/dist/src/programmes/rules/OneYearOnlyRule.js +0 -34
  253. package/dist/src/programmes/rules/OnlineAttendanceRule.d.ts +0 -6
  254. package/dist/src/programmes/rules/OnlineAttendanceRule.js +0 -15
  255. package/dist/src/sitemap-generator/IPageNumberProvider.d.ts +0 -3
  256. package/dist/src/sitemap-generator/IPageNumberProvider.js +0 -1
@@ -1,2 +1,2 @@
1
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
1
+ import { FilterKey } from '@studyportals/search-filters';
2
2
  export type FilterKeyValuesMap = Map<FilterKey, string[]>;
@@ -1,5 +1,5 @@
1
1
  import { IFragment } from '../presenters/fragments/IFragment';
2
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
2
+ import { FilterKey } from '@studyportals/search-filters';
3
3
  export interface IPresenter {
4
4
  readonly filterKey: FilterKey;
5
5
  getFragments(): IFragment[];
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
1
+ import { FilterKey } from '@studyportals/search-filters';
2
2
  export interface ISeoFilterState {
3
3
  getSelectedValuesFor(key: FilterKey): readonly string[];
4
4
  getSelectedFilters(): readonly FilterKey[];
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
1
+ import { FilterKey } from '@studyportals/search-filters';
2
2
  import { ISeoFilterState } from './ISeoFilterState';
3
3
  export interface ISeoInfoBase {
4
4
  selectionOnlyFor(filterKeys: FilterKey[], filterSelectionState: ISeoFilterState): Promise<boolean>;
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
1
+ import { FilterKey } from '@studyportals/search-filters';
2
2
  import { BaseFilterKeyValueRule } from '../../common/rules/BaseFilterKeyValueRule';
3
3
  export class OnlineAttendanceRule extends BaseFilterKeyValueRule {
4
4
  constructor() {
@@ -1,5 +1,5 @@
1
1
  import { IRule } from '../../common/IRule';
2
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
2
+ import { FilterKey } from '@studyportals/search-filters';
3
3
  import { ISearchDependencies } from '../../common/ISearchDependencies';
4
4
  import { FilterKeyValuesMap } from '../FilterKeyValuesMap';
5
5
  export declare class OnlyFiltersSelectedRule implements IRule {
@@ -1,5 +1,5 @@
1
1
  import { IRule } from '../../common/IRule';
2
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
2
+ import { FilterKey } from '@studyportals/search-filters';
3
3
  import { ISearchDependencies } from '../../common/ISearchDependencies';
4
4
  import { FilterKeyValuesMap } from '../FilterKeyValuesMap';
5
5
  export declare class SingleValueSelectedForFilterRule implements IRule {
@@ -4,7 +4,6 @@ export declare enum FilterCombinations {
4
4
  AREA_DISCIPLINE = "areaDiscipline",
5
5
  COUNTRY = "country",
6
6
  DEGREE = "degree",
7
- DURATION = "duration",
8
7
  COUNTRY_DEGREE = "countryDegree",
9
8
  COUNTRY_DURATION = "countryDuration",
10
9
  COUNTRY_FORMAT = "countryFormat",
@@ -12,8 +11,6 @@ export declare enum FilterCombinations {
12
11
  COUNTRY_EDUCATIONAL_FORM = "countryEducationalForm",
13
12
  COUNTRY_ATTENDANCE_DEGREE = "countryAttendanceDegree",
14
13
  COUNTRY_DURATION_DEGREE = "countryDurationDegree",
15
- COUNTRY_SPECIAL_PROGRAMMES = "countrySpecialProgrammes",
16
- CONTINENT_FORMAT = "continentFormat",
17
14
  DISCIPLINE_AREA = "disciplineArea",
18
15
  DISCIPLINE_ATTENDANCE = "disciplineAttendance",
19
16
  DISCIPLINE_COUNTRY = "disciplineCountry",
@@ -25,34 +22,16 @@ export declare enum FilterCombinations {
25
22
  DISCIPLINE_EDUCATIONAL_FORM = "disciplineEducationalForm",
26
23
  DISCIPLINE_TUITION_FEE_ATTENDANCE = "disciplineTuitionFeeAttendance",
27
24
  DISCIPLINE_COUNTRY_EDUCATIONAL_FORM = "disciplineCountryEducationalForm",
28
- DISCIPLINE_CONTINENT_ATTENDANCE = "disciplineContinentAttendance",
29
- DISCIPLINE_SPECIAL_PROGRAMMES = "disciplineSpecialProgrammes",
30
- DISCIPLINE_COUNTRY_ATTENDANCE = "disciplineCountryAttendance",
31
25
  DEGREE_COUNTRY_DISCIPLINE = "degreeCountryDiscipline",
32
26
  DEGREE_ATTENDANCE_DISCIPLINE = "degreeAttendanceDiscipline",
33
27
  DEGREE_COUNTRY_TUITION_FEE = "degreeCountryTuitionFee",
34
28
  DEGREE_COUNTRY_ATTENDANCE = "degreeCountryAttendance",
35
- DEGREE_TUITION_FEE = "degreeTuitionFee",
36
- DEGREE_ATTENDANCE_TUITION_FEE = "degreeAttendanceTuitionFee",
37
- DEGREE_ATTENDANCE_FORMAT = "degreeAttendanceFormat",
38
- DEGREE_AREA = "degreeArea",
39
- DEGREE_FORMAT = "degreeFormat",
40
- DEGREE_CONTINENT = "degreeContinent",
41
- DEGREE_AREA_TUITION_FEE = "degreeAreaTuitionFee",
42
- DEGREE_CONTINENT_TUITION_FEE = "degreeContinentTuitionFee",
43
- DEGREE_DURATION = "degreeDuration",
44
- DEGREE_FORMAT_TUITION_FEE = "degreeFormatTuitionFee",
45
- DEGREE_SPECIAL_PROGRAMMES = "degreeSpecialProgrammes",
46
29
  DISCIPLINE = "discipline",
47
30
  UNFILTERED = "unfiltered",
48
31
  UNIVERSITY_COUNTRY = "universityCountry",
49
32
  ATTENDANCE_DISCIPLINE = "attendancedDiscipline",
50
33
  ATTENDANCE_DEGREE = "attendanceDegree",
51
- ATTENDANCE_TUITION_FEE = "attendanceTuitionFee",
52
- ATTENDANCE_DURATION = "attendanceDuration",
53
- ATTENDANCE_FORMAT = "attendanceFormat",
54
- ATTENDANCE_AREA = "attendanceArea",
55
- ATTENDANCE_CONTINENT = "attendanceContinent",
34
+ CONTINENT_ATTENDANCE = "continentAttendance",
56
35
  COUNTRY_ATTENDANCE = "countryAttendance",
57
36
  ATTENDANCE = "attendance",
58
37
  CONTINENT = "continent",
@@ -5,7 +5,6 @@ export var FilterCombinations;
5
5
  FilterCombinations["AREA_DISCIPLINE"] = "areaDiscipline";
6
6
  FilterCombinations["COUNTRY"] = "country";
7
7
  FilterCombinations["DEGREE"] = "degree";
8
- FilterCombinations["DURATION"] = "duration";
9
8
  FilterCombinations["COUNTRY_DEGREE"] = "countryDegree";
10
9
  FilterCombinations["COUNTRY_DURATION"] = "countryDuration";
11
10
  FilterCombinations["COUNTRY_FORMAT"] = "countryFormat";
@@ -13,8 +12,6 @@ export var FilterCombinations;
13
12
  FilterCombinations["COUNTRY_EDUCATIONAL_FORM"] = "countryEducationalForm";
14
13
  FilterCombinations["COUNTRY_ATTENDANCE_DEGREE"] = "countryAttendanceDegree";
15
14
  FilterCombinations["COUNTRY_DURATION_DEGREE"] = "countryDurationDegree";
16
- FilterCombinations["COUNTRY_SPECIAL_PROGRAMMES"] = "countrySpecialProgrammes";
17
- FilterCombinations["CONTINENT_FORMAT"] = "continentFormat";
18
15
  FilterCombinations["DISCIPLINE_AREA"] = "disciplineArea";
19
16
  FilterCombinations["DISCIPLINE_ATTENDANCE"] = "disciplineAttendance";
20
17
  FilterCombinations["DISCIPLINE_COUNTRY"] = "disciplineCountry";
@@ -26,34 +23,16 @@ export var FilterCombinations;
26
23
  FilterCombinations["DISCIPLINE_EDUCATIONAL_FORM"] = "disciplineEducationalForm";
27
24
  FilterCombinations["DISCIPLINE_TUITION_FEE_ATTENDANCE"] = "disciplineTuitionFeeAttendance";
28
25
  FilterCombinations["DISCIPLINE_COUNTRY_EDUCATIONAL_FORM"] = "disciplineCountryEducationalForm";
29
- FilterCombinations["DISCIPLINE_CONTINENT_ATTENDANCE"] = "disciplineContinentAttendance";
30
- FilterCombinations["DISCIPLINE_SPECIAL_PROGRAMMES"] = "disciplineSpecialProgrammes";
31
- FilterCombinations["DISCIPLINE_COUNTRY_ATTENDANCE"] = "disciplineCountryAttendance";
32
26
  FilterCombinations["DEGREE_COUNTRY_DISCIPLINE"] = "degreeCountryDiscipline";
33
27
  FilterCombinations["DEGREE_ATTENDANCE_DISCIPLINE"] = "degreeAttendanceDiscipline";
34
28
  FilterCombinations["DEGREE_COUNTRY_TUITION_FEE"] = "degreeCountryTuitionFee";
35
29
  FilterCombinations["DEGREE_COUNTRY_ATTENDANCE"] = "degreeCountryAttendance";
36
- FilterCombinations["DEGREE_TUITION_FEE"] = "degreeTuitionFee";
37
- FilterCombinations["DEGREE_ATTENDANCE_TUITION_FEE"] = "degreeAttendanceTuitionFee";
38
- FilterCombinations["DEGREE_ATTENDANCE_FORMAT"] = "degreeAttendanceFormat";
39
- FilterCombinations["DEGREE_AREA"] = "degreeArea";
40
- FilterCombinations["DEGREE_FORMAT"] = "degreeFormat";
41
- FilterCombinations["DEGREE_CONTINENT"] = "degreeContinent";
42
- FilterCombinations["DEGREE_AREA_TUITION_FEE"] = "degreeAreaTuitionFee";
43
- FilterCombinations["DEGREE_CONTINENT_TUITION_FEE"] = "degreeContinentTuitionFee";
44
- FilterCombinations["DEGREE_DURATION"] = "degreeDuration";
45
- FilterCombinations["DEGREE_FORMAT_TUITION_FEE"] = "degreeFormatTuitionFee";
46
- FilterCombinations["DEGREE_SPECIAL_PROGRAMMES"] = "degreeSpecialProgrammes";
47
30
  FilterCombinations["DISCIPLINE"] = "discipline";
48
31
  FilterCombinations["UNFILTERED"] = "unfiltered";
49
32
  FilterCombinations["UNIVERSITY_COUNTRY"] = "universityCountry";
50
33
  FilterCombinations["ATTENDANCE_DISCIPLINE"] = "attendancedDiscipline";
51
34
  FilterCombinations["ATTENDANCE_DEGREE"] = "attendanceDegree";
52
- FilterCombinations["ATTENDANCE_TUITION_FEE"] = "attendanceTuitionFee";
53
- FilterCombinations["ATTENDANCE_DURATION"] = "attendanceDuration";
54
- FilterCombinations["ATTENDANCE_FORMAT"] = "attendanceFormat";
55
- FilterCombinations["ATTENDANCE_AREA"] = "attendanceArea";
56
- FilterCombinations["ATTENDANCE_CONTINENT"] = "attendanceContinent";
35
+ FilterCombinations["CONTINENT_ATTENDANCE"] = "continentAttendance";
57
36
  FilterCombinations["COUNTRY_ATTENDANCE"] = "countryAttendance";
58
37
  FilterCombinations["ATTENDANCE"] = "attendance";
59
38
  FilterCombinations["CONTINENT"] = "continent";
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
1
+ import { FilterKey } from '@studyportals/search-filters';
2
2
  export declare class InvalidFilterValueError extends Error {
3
3
  constructor(filterKey: FilterKey, value: string | undefined);
4
4
  }
@@ -8,10 +8,12 @@ export declare abstract class OrganisationsSeoIndexabilityPolicy extends BaseSeo
8
8
  protected abstract readonly sortingOption: SortingOptions;
9
9
  protected abstract readonly baseRules: IRule[];
10
10
  private additionalRules;
11
+ constructor(dependencies: IOrganisationsSeoDependencies);
11
12
  protected get rules(): IRule[];
12
13
  protected addRule(rule: IRule): void;
13
14
  generateSitemapUrls(): Promise<string[]>;
14
15
  protected isIndexable(): Promise<boolean>;
16
+ protected addResultsCountRule(): void;
15
17
  protected getPathWithSortingOption(path: string): string;
16
18
  private matchesSortingOption;
17
19
  }
@@ -1,9 +1,14 @@
1
1
  import { PortalType } from '@studyportals/domain-client';
2
2
  import { BaseSeoIndexabilityPolicy } from '../../common/policies/BaseSeoIndexabilityPolicy';
3
3
  import { IndexablePageNumberRule } from '../../common/rules/IndexablePageNumberRule';
4
+ import { AtLeastSevenResultsRule } from '../../organisations/rules/AtLeastSevenResultsRule';
4
5
  export class OrganisationsSeoIndexabilityPolicy extends BaseSeoIndexabilityPolicy {
5
6
  indexablePortalTypes = [PortalType.MASTER];
6
7
  additionalRules = [];
8
+ constructor(dependencies) {
9
+ super(dependencies);
10
+ this.addResultsCountRule();
11
+ }
7
12
  get rules() {
8
13
  return [...this.baseRules, ...this.additionalRules, new IndexablePageNumberRule()];
9
14
  }
@@ -23,6 +28,17 @@ export class OrganisationsSeoIndexabilityPolicy extends BaseSeoIndexabilityPolic
23
28
  }
24
29
  return this.indexablePortalTypes.includes(this.dependencies.portalType) && this.matchesSortingOption();
25
30
  }
31
+ addResultsCountRule() {
32
+ let resultCountRUle;
33
+ if (super.isSitemapUrlGeneratorDependencies()) {
34
+ const dependencies = this.dependencies;
35
+ resultCountRUle = new AtLeastSevenResultsRule(dependencies.searchApiClient);
36
+ }
37
+ else {
38
+ resultCountRUle = new AtLeastSevenResultsRule();
39
+ }
40
+ this.addRule(resultCountRUle);
41
+ }
26
42
  getPathWithSortingOption(path) {
27
43
  return path;
28
44
  }
@@ -4,6 +4,6 @@ import { OrganisationsSeoIndexabilityPolicy } from './OrganisationsSeoIndexabili
4
4
  export declare abstract class RankedOrganisationsSeoIndexabilityPolicy extends OrganisationsSeoIndexabilityPolicy {
5
5
  protected readonly indexablePortalTypes: PortalType[];
6
6
  protected readonly sortingOption: SortingOptions;
7
- protected addRankedResultsCountRule(): void;
7
+ protected addResultsCountRule(): void;
8
8
  protected getPathWithSortingOption(path: string): string;
9
9
  }
@@ -5,7 +5,7 @@ import { AtLeastTwoRankedResultsRule } from '../rules/AtLeastTwoRankedResultsRul
5
5
  export class RankedOrganisationsSeoIndexabilityPolicy extends OrganisationsSeoIndexabilityPolicy {
6
6
  indexablePortalTypes = [PortalType.MASTER];
7
7
  sortingOption = SortingOptions.UNIVERSITY_META_RANKING;
8
- addRankedResultsCountRule() {
8
+ addResultsCountRule() {
9
9
  let rankedResultsCountRule;
10
10
  if (super.isSitemapUrlGeneratorDependencies()) {
11
11
  const dependencies = this.dependencies;
@@ -1,5 +1,5 @@
1
1
  import { FilterCombinations } from '../../../enums/FilterCombinations';
2
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
2
+ import { FilterKey } from '@studyportals/search-filters';
3
3
  import { SortingOptions } from '../../../enums/SortingOptions';
4
4
  import { SingleValueSelectedForFilterRule } from '../../../common/rules/SingleValueSelectedForFilterRule';
5
5
  import { OrganisationsSeoIndexabilityPolicy } from '../../../organisations/policies/OrganisationsSeoIndexabilityPolicy';
@@ -1,6 +1,6 @@
1
1
  import { OrganisationsSeoIndexabilityPolicy } from '../../../organisations/policies/OrganisationsSeoIndexabilityPolicy';
2
2
  import { FilterCombinations } from '../../../enums/FilterCombinations';
3
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
3
+ import { FilterKey } from '@studyportals/search-filters';
4
4
  import { SearchVolumeAreasAttendanceRule } from '../../../organisations/rules/SearchVolumeAreasAttendanceRule';
5
5
  import { SortingOptions } from '../../../enums/SortingOptions';
6
6
  import { SingleValueSelectedForFilterRule } from '../../../common/rules/SingleValueSelectedForFilterRule';
@@ -1,5 +1,5 @@
1
1
  import { FilterCombinations } from '../../../enums/FilterCombinations';
2
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
2
+ import { FilterKey } from '@studyportals/search-filters';
3
3
  import { SortingOptions } from '../../../enums/SortingOptions';
4
4
  import { OrganisationsSeoIndexabilityPolicy } from '../../../organisations/policies/OrganisationsSeoIndexabilityPolicy';
5
5
  import { SingleValueSelectedForFilterRule } from '../../../common/rules/SingleValueSelectedForFilterRule';
@@ -1,5 +1,5 @@
1
1
  import { FilterCombinations } from '../../../enums/FilterCombinations';
2
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
2
+ import { FilterKey } from '@studyportals/search-filters';
3
3
  import { SortingOptions } from '../../../enums/SortingOptions';
4
4
  import { OrganisationsSeoIndexabilityPolicy } from '../../../organisations/policies/OrganisationsSeoIndexabilityPolicy';
5
5
  import { SingleValueSelectedForFilterRule } from '../../../common/rules/SingleValueSelectedForFilterRule';
@@ -1,5 +1,5 @@
1
1
  import { FilterCombinations } from '../../../enums/FilterCombinations';
2
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
2
+ import { FilterKey } from '@studyportals/search-filters';
3
3
  import { SortingOptions } from '../../../enums/SortingOptions';
4
4
  import { OrganisationsSeoIndexabilityPolicy } from '../../../organisations/policies/OrganisationsSeoIndexabilityPolicy';
5
5
  import { SingleValueSelectedForFilterRule } from '../../../common/rules/SingleValueSelectedForFilterRule';
@@ -1,5 +1,5 @@
1
1
  import { FilterCombinations } from '../../../enums/FilterCombinations';
2
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
2
+ import { FilterKey } from '@studyportals/search-filters';
3
3
  import { SortingOptions } from '../../../enums/SortingOptions';
4
4
  import { OrganisationsSeoIndexabilityPolicy } from '../../../organisations/policies/OrganisationsSeoIndexabilityPolicy';
5
5
  import { SingleValueSelectedForFilterRule } from '../../../common/rules/SingleValueSelectedForFilterRule';
@@ -1,5 +1,5 @@
1
1
  import { FilterCombinations } from '../../../enums/FilterCombinations';
2
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
2
+ import { FilterKey } from '@studyportals/search-filters';
3
3
  import { SingleValueSelectedForFilterRule } from '../../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { OnlyFiltersSelectedRule } from '../../../common/rules/OnlyFiltersSelectedRule';
5
5
  import { AreaPresenter } from '../../../presenters/AreaPresenter';
@@ -14,7 +14,6 @@ export class RankedArea extends RankedOrganisationsSeoIndexabilityPolicy {
14
14
  ];
15
15
  constructor(dependencies) {
16
16
  super(dependencies);
17
- this.addRankedResultsCountRule();
18
17
  }
19
18
  async generateUrls() {
20
19
  const areaFragments = AreaPresenter.getInstance().getFragments();
@@ -1,6 +1,6 @@
1
1
  import { SearchVolumeAreasDisciplineRule } from '../../../organisations/rules/SearchVolumeAreasDisciplineRule';
2
2
  import { FilterCombinations } from '../../../enums/FilterCombinations';
3
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
3
+ import { FilterKey } from '@studyportals/search-filters';
4
4
  import { SingleValueSelectedForFilterRule } from '../../../common/rules/SingleValueSelectedForFilterRule';
5
5
  import { OnlyFiltersSelectedRule } from '../../../common/rules/OnlyFiltersSelectedRule';
6
6
  import { AreaPresenter } from '../../../presenters/AreaPresenter';
@@ -18,7 +18,6 @@ export class RankedAreaDiscipline extends RankedOrganisationsSeoIndexabilityPoli
18
18
  ];
19
19
  constructor(dependencies) {
20
20
  super(dependencies);
21
- this.addRankedResultsCountRule();
22
21
  }
23
22
  get filterCombination() {
24
23
  return FilterCombinations.RANKED_AREA_DISCIPLINE;
@@ -1,6 +1,6 @@
1
1
  import { OnlineAttendanceRule } from '../../../common/rules/OnlineAttendanceRule';
2
2
  import { FilterCombinations } from '../../../enums/FilterCombinations';
3
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
3
+ import { FilterKey } from '@studyportals/search-filters';
4
4
  import { SingleValueSelectedForFilterRule } from '../../../common/rules/SingleValueSelectedForFilterRule';
5
5
  import { OnlyFiltersSelectedRule } from '../../../common/rules/OnlyFiltersSelectedRule';
6
6
  import { AttendancePresenter } from '../../../presenters/AttendancePresenter';
@@ -15,7 +15,6 @@ export class RankedAttendance extends RankedOrganisationsSeoIndexabilityPolicy {
15
15
  ];
16
16
  constructor(dependencies) {
17
17
  super(dependencies);
18
- this.addRankedResultsCountRule();
19
18
  }
20
19
  async generateUrls() {
21
20
  const attendanceFragments = AttendancePresenter.getInstance().getFragments();
@@ -1,5 +1,5 @@
1
1
  import { FilterCombinations } from '../../../enums/FilterCombinations';
2
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
2
+ import { FilterKey } from '@studyportals/search-filters';
3
3
  import { SingleValueSelectedForFilterRule } from '../../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { OnlyFiltersSelectedRule } from '../../../common/rules/OnlyFiltersSelectedRule';
5
5
  import { OnlineAttendanceRule } from '../../../common/rules/OnlineAttendanceRule';
@@ -17,7 +17,6 @@ export class RankedAttendanceDiscipline extends RankedOrganisationsSeoIndexabili
17
17
  ];
18
18
  constructor(dependencies) {
19
19
  super(dependencies);
20
- this.addRankedResultsCountRule();
21
20
  }
22
21
  get filterCombination() {
23
22
  return FilterCombinations.RANKED_ATTENDANCE_DISCIPLINE;
@@ -1,5 +1,5 @@
1
1
  import { FilterCombinations } from '../../../enums/FilterCombinations';
2
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
2
+ import { FilterKey } from '@studyportals/search-filters';
3
3
  import { SingleValueSelectedForFilterRule } from '../../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { OnlyFiltersSelectedRule } from '../../../common/rules/OnlyFiltersSelectedRule';
5
5
  import { ContinentPresenter } from '../../../presenters/ContinentPresenter';
@@ -13,7 +13,6 @@ export class RankedContinent extends RankedOrganisationsSeoIndexabilityPolicy {
13
13
  ];
14
14
  constructor(dependencies) {
15
15
  super(dependencies);
16
- this.addRankedResultsCountRule();
17
16
  }
18
17
  async generateUrls() {
19
18
  const continentFragments = ContinentPresenter.getInstance().getFragments();
@@ -1,5 +1,5 @@
1
1
  import { FilterCombinations } from '../../../enums/FilterCombinations';
2
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
2
+ import { FilterKey } from '@studyportals/search-filters';
3
3
  import { SingleValueSelectedForFilterRule } from '../../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { OnlyFiltersSelectedRule } from '../../../common/rules/OnlyFiltersSelectedRule';
5
5
  import { OnlineAttendanceRule } from '../../../common/rules/OnlineAttendanceRule';
@@ -19,7 +19,6 @@ export class RankedContinentAttendance extends RankedOrganisationsSeoIndexabilit
19
19
  ];
20
20
  constructor(dependencies) {
21
21
  super(dependencies);
22
- this.addRankedResultsCountRule();
23
22
  }
24
23
  async generateUrls() {
25
24
  const continentFragments = ContinentPresenter.getInstance().getFragments();
@@ -1,6 +1,6 @@
1
1
  import { SingleValueSelectedForFilterRule } from '../../../common/rules/SingleValueSelectedForFilterRule';
2
2
  import { FilterCombinations } from '../../../enums/FilterCombinations';
3
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
3
+ import { FilterKey } from '@studyportals/search-filters';
4
4
  import { OnlyFiltersSelectedRule } from '../../../common/rules/OnlyFiltersSelectedRule';
5
5
  import { CountryPresenter } from '../../../presenters/CountryPresenter';
6
6
  import { RankedOrganisationsSeoIndexabilityPolicy } from '../RankedOrganisationsSeoIndexabilityPolicy';
@@ -10,7 +10,6 @@ export class RankedCountry extends RankedOrganisationsSeoIndexabilityPolicy {
10
10
  baseRules = [new SingleValueSelectedForFilterRule(FilterKey.COUNTRY), new OnlyFiltersSelectedRule([FilterKey.COUNTRY])];
11
11
  constructor(dependencies) {
12
12
  super(dependencies);
13
- this.addRankedResultsCountRule();
14
13
  }
15
14
  async generateUrls() {
16
15
  const countryFragments = CountryPresenter.getInstance().getFragments();
@@ -1,5 +1,5 @@
1
1
  import { FilterCombinations } from '../../../enums/FilterCombinations';
2
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
2
+ import { FilterKey } from '@studyportals/search-filters';
3
3
  import { SingleValueSelectedForFilterRule } from '../../../common/rules/SingleValueSelectedForFilterRule';
4
4
  import { OnlyFiltersSelectedRule } from '../../../common/rules/OnlyFiltersSelectedRule';
5
5
  import { OnlineAttendanceRule } from '../../../common/rules/OnlineAttendanceRule';
@@ -17,7 +17,6 @@ export class RankedCountryAttendance extends RankedOrganisationsSeoIndexabilityP
17
17
  ];
18
18
  constructor(dependencies) {
19
19
  super(dependencies);
20
- this.addRankedResultsCountRule();
21
20
  }
22
21
  async generateUrls() {
23
22
  const countryFragments = CountryPresenter.getInstance().getFragments();
@@ -1,6 +1,6 @@
1
1
  import { SingleValueSelectedForFilterRule } from '../../../common/rules/SingleValueSelectedForFilterRule';
2
2
  import { FilterCombinations } from '../../../enums/FilterCombinations';
3
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
3
+ import { FilterKey } from '@studyportals/search-filters';
4
4
  import { OnlyFiltersSelectedRule } from '../../../common/rules/OnlyFiltersSelectedRule';
5
5
  import { CountryPresenter } from '../../../presenters/CountryPresenter';
6
6
  import { DisciplinePresenter } from '../../../presenters/DisciplinePresenter';
@@ -15,7 +15,6 @@ export class RankedCountryDiscipline extends RankedOrganisationsSeoIndexabilityP
15
15
  ];
16
16
  constructor(dependencies) {
17
17
  super(dependencies);
18
- this.addRankedResultsCountRule();
19
18
  }
20
19
  async generateUrls() {
21
20
  const countryFragments = CountryPresenter.getInstance().getFragments();
@@ -1,6 +1,6 @@
1
1
  import { SingleValueSelectedForFilterRule } from '../../../common/rules/SingleValueSelectedForFilterRule';
2
2
  import { FilterCombinations } from '../../../enums/FilterCombinations';
3
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
3
+ import { FilterKey } from '@studyportals/search-filters';
4
4
  import { OnlyFiltersSelectedRule } from '../../../common/rules/OnlyFiltersSelectedRule';
5
5
  import { RankedOrganisationsSeoIndexabilityPolicy } from '../RankedOrganisationsSeoIndexabilityPolicy';
6
6
  import { DisciplinePresenter } from '../../../presenters/DisciplinePresenter';
@@ -13,7 +13,6 @@ export class RankedDiscipline extends RankedOrganisationsSeoIndexabilityPolicy {
13
13
  ];
14
14
  constructor(dependencies) {
15
15
  super(dependencies);
16
- this.addRankedResultsCountRule();
17
16
  }
18
17
  async generateUrls() {
19
18
  const disciplineFragments = DisciplinePresenter.getInstance().getFragments();
@@ -7,7 +7,6 @@ export class RankedUnfiltered extends RankedOrganisationsSeoIndexabilityPolicy {
7
7
  baseRules = [new NoFiltersSelectedRule()];
8
8
  constructor(dependencies) {
9
9
  super(dependencies);
10
- this.addRankedResultsCountRule();
11
10
  }
12
11
  async generateUrls() {
13
12
  const filterKeyValues = new Map([]);
@@ -0,0 +1,15 @@
1
+ import { ISearchDependencies } from '../../common/ISearchDependencies';
2
+ import { FilterKeyValuesMap } from '../../common/FilterKeyValuesMap';
3
+ import { ISearchApiClient } from '../../sitemap-generator/ISearchApiClient';
4
+ import { IRule } from '../../common/IRule';
5
+ export declare class AtLeastSevenResultsRule implements IRule {
6
+ private readonly minimumResultsCount;
7
+ private readonly maximumPageSize;
8
+ private readonly searchApiClient?;
9
+ constructor(searchApiClient?: ISearchApiClient);
10
+ forSearch(dependencies: ISearchDependencies): Promise<boolean>;
11
+ forSitemapGeneratorWithPageNumber(filterKeyValues: FilterKeyValuesMap, pageNumber: number): Promise<boolean>;
12
+ forSitemapGenerator(): Promise<boolean>;
13
+ getName(): string;
14
+ getDescription(): string;
15
+ }
@@ -0,0 +1,30 @@
1
+ import { DependencyMissingError } from '../../errors/DependencyMissingError';
2
+ export class AtLeastSevenResultsRule {
3
+ minimumResultsCount = 7;
4
+ maximumPageSize = 20;
5
+ searchApiClient;
6
+ constructor(searchApiClient) {
7
+ this.searchApiClient = searchApiClient;
8
+ }
9
+ forSearch(dependencies) {
10
+ const { applicationState } = dependencies;
11
+ const resultCount = applicationState.getNumberOfResults();
12
+ return Promise.resolve(resultCount >= this.minimumResultsCount);
13
+ }
14
+ async forSitemapGeneratorWithPageNumber(filterKeyValues, pageNumber) {
15
+ if (!this.searchApiClient) {
16
+ throw new DependencyMissingError('SearchApiClient');
17
+ }
18
+ const count = await this.searchApiClient.getCount(filterKeyValues);
19
+ return count >= (pageNumber - 1) * this.maximumPageSize + this.minimumResultsCount;
20
+ }
21
+ forSitemapGenerator() {
22
+ throw new Error('Method not implemented.');
23
+ }
24
+ getName() {
25
+ return 'AtLeastSevenResultsRule';
26
+ }
27
+ getDescription() {
28
+ return 'Is indexable if there are at least 2 results.';
29
+ }
30
+ }
@@ -1,7 +1,7 @@
1
1
  import { FilterKeyValuesMap } from '../../common/FilterKeyValuesMap';
2
2
  import { IRule } from '../../common/IRule';
3
3
  import { ISearchDependencies } from '../../common/ISearchDependencies';
4
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
4
+ import { FilterKey } from '@studyportals/search-filters';
5
5
  export declare abstract class BaseSearchVolumeOrganisationsRule implements IRule {
6
6
  private readonly filterKey;
7
7
  private readonly idsWithSearchVolume;
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
1
+ import { FilterKey } from '@studyportals/search-filters';
2
2
  import { BaseFilterKeyValueRule } from '../../common/rules/BaseFilterKeyValueRule';
3
3
  export class ContinentIsEuropeRule extends BaseFilterKeyValueRule {
4
4
  constructor() {
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
1
+ import { FilterKey } from '@studyportals/search-filters';
2
2
  import { BaseSearchVolumeOrganisationsRule } from './BaseSearchVolumeOrganisationsRule';
3
3
  export class SearchVolumeAreasAttendanceRule extends BaseSearchVolumeOrganisationsRule {
4
4
  constructor() {
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
1
+ import { FilterKey } from '@studyportals/search-filters';
2
2
  import { BaseSearchVolumeOrganisationsRule } from './BaseSearchVolumeOrganisationsRule';
3
3
  export class SearchVolumeAreasDisciplineRule extends BaseSearchVolumeOrganisationsRule {
4
4
  constructor() {
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
1
+ import { FilterKey } from '@studyportals/search-filters';
2
2
  import { BaseSearchVolumeOrganisationsRule } from './BaseSearchVolumeOrganisationsRule';
3
3
  export class SearchVolumeCountriesAttendanceRule extends BaseSearchVolumeOrganisationsRule {
4
4
  constructor() {
@@ -1,6 +1,6 @@
1
1
  import { IAreaFragment } from './fragments/IAreaFragment';
2
2
  import { IPresenter } from '../common';
3
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
3
+ import { FilterKey } from '@studyportals/search-filters';
4
4
  export declare class AreaPresenter implements IPresenter {
5
5
  readonly filterKey: FilterKey;
6
6
  private static instance;
@@ -1,6 +1,6 @@
1
1
  import { areasAll } from '@studyportals/static-domain-data/areas/areas';
2
2
  import { areaGetPath } from '@studyportals/static-domain-data/areas/area-get-path';
3
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
3
+ import { FilterKey } from '@studyportals/search-filters';
4
4
  export class AreaPresenter {
5
5
  filterKey = FilterKey.AREA;
6
6
  static instance;
@@ -1,6 +1,6 @@
1
1
  import { IPresenter } from '../common';
2
2
  import { IFragment } from './fragments/IFragment';
3
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
3
+ import { FilterKey } from '@studyportals/search-filters';
4
4
  export declare class AttendancePresenter implements IPresenter {
5
5
  readonly filterKey: FilterKey;
6
6
  private static instance;
@@ -1,4 +1,4 @@
1
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
1
+ import { FilterKey } from '@studyportals/search-filters';
2
2
  export class AttendancePresenter {
3
3
  filterKey = FilterKey.DELIVERY_METHOD;
4
4
  static instance;
@@ -8,10 +8,6 @@ export class AttendancePresenter {
8
8
  {
9
9
  id: 'online',
10
10
  path: 'online'
11
- },
12
- {
13
- id: 'blended',
14
- path: 'blended'
15
11
  }
16
12
  ];
17
13
  }
@@ -1,6 +1,6 @@
1
1
  import { IFragment } from './fragments/IFragment';
2
2
  import { IPresenter } from '../common';
3
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
3
+ import { FilterKey } from '@studyportals/search-filters';
4
4
  export declare class ContinentPresenter implements IPresenter {
5
5
  readonly filterKey: FilterKey;
6
6
  private static instance;
@@ -1,6 +1,6 @@
1
1
  import { continentsAll } from '@studyportals/static-domain-data/continents/continents';
2
2
  import { continentGetPath } from '@studyportals/static-domain-data/continents/continent-get-path';
3
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
3
+ import { FilterKey } from '@studyportals/search-filters';
4
4
  export class ContinentPresenter {
5
5
  filterKey = FilterKey.CONTINENT;
6
6
  static instance;
@@ -1,6 +1,6 @@
1
1
  import { ICountryFragment } from './fragments/ICountryFragment';
2
2
  import { IPresenter } from '../common';
3
- import { FilterKey } from '@studyportals/search-filters/search_filters_interfaces';
3
+ import { FilterKey } from '@studyportals/search-filters';
4
4
  export declare class CountryPresenter implements IPresenter {
5
5
  readonly filterKey: FilterKey;
6
6
  private static instance;