@studyportals/fawkes 7.4.2-3 → 8.0.1-0

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 (466) hide show
  1. package/package.json +105 -105
  2. package/dist/index.d.ts +0 -1
  3. package/dist/index.js +0 -1
  4. package/dist/organisations-seo/index.d.ts +0 -4
  5. package/dist/organisations-seo/index.js +0 -2
  6. package/dist/programmes-seo/index.d.ts +0 -6
  7. package/dist/programmes-seo/index.js +0 -2
  8. package/dist/scholarships-seo/index.d.ts +0 -5
  9. package/dist/scholarships-seo/index.js +0 -3
  10. package/dist/sitemap-generator-seo/index.d.ts +0 -13
  11. package/dist/sitemap-generator-seo/index.js +0 -4
  12. package/dist/src/common/FilterKeyValuesMap.d.ts +0 -2
  13. package/dist/src/common/FilterKeyValuesMap.js +0 -1
  14. package/dist/src/common/IDependencies.d.ts +0 -4
  15. package/dist/src/common/IDependencies.js +0 -1
  16. package/dist/src/common/IDocumentationManager.d.ts +0 -5
  17. package/dist/src/common/IDocumentationManager.js +0 -1
  18. package/dist/src/common/IPolicyMetaData.d.ts +0 -6
  19. package/dist/src/common/IPolicyMetaData.js +0 -1
  20. package/dist/src/common/IPresenter.d.ts +0 -6
  21. package/dist/src/common/IPresenter.js +0 -1
  22. package/dist/src/common/IRule.d.ts +0 -8
  23. package/dist/src/common/IRule.js +0 -1
  24. package/dist/src/common/ISearchApplicationState.d.ts +0 -4
  25. package/dist/src/common/ISearchApplicationState.js +0 -1
  26. package/dist/src/common/ISearchDependencies.d.ts +0 -7
  27. package/dist/src/common/ISearchDependencies.js +0 -1
  28. package/dist/src/common/ISearchIndexabilityManager.d.ts +0 -4
  29. package/dist/src/common/ISearchIndexabilityManager.js +0 -1
  30. package/dist/src/common/ISeoDependencies.d.ts +0 -3
  31. package/dist/src/common/ISeoDependencies.js +0 -1
  32. package/dist/src/common/ISeoFilterState.d.ts +0 -5
  33. package/dist/src/common/ISeoFilterState.js +0 -1
  34. package/dist/src/common/ISeoIndexabilityPolicy.d.ts +0 -7
  35. package/dist/src/common/ISeoIndexabilityPolicy.js +0 -1
  36. package/dist/src/common/ISeoInfoBase.d.ts +0 -8
  37. package/dist/src/common/ISeoInfoBase.js +0 -1
  38. package/dist/src/common/ISitemapDependencies.d.ts +0 -5
  39. package/dist/src/common/ISitemapDependencies.js +0 -1
  40. package/dist/src/common/ISitemapUrlGenerator.d.ts +0 -7
  41. package/dist/src/common/ISitemapUrlGenerator.js +0 -1
  42. package/dist/src/common/index.d.ts +0 -5
  43. package/dist/src/common/index.js +0 -5
  44. package/dist/src/common/policies/BaseSeoIndexabilityPolicy.d.ts +0 -26
  45. package/dist/src/common/policies/BaseSeoIndexabilityPolicy.js +0 -56
  46. package/dist/src/common/rules/BaseFilterKeyValueRule.d.ts +0 -11
  47. package/dist/src/common/rules/BaseFilterKeyValueRule.js +0 -28
  48. package/dist/src/common/rules/IndexablePageNumberRule.d.ts +0 -9
  49. package/dist/src/common/rules/IndexablePageNumberRule.js +0 -17
  50. package/dist/src/common/rules/NoFiltersSelectedRule.d.ts +0 -9
  51. package/dist/src/common/rules/NoFiltersSelectedRule.js +0 -17
  52. package/dist/src/common/rules/OnlineAttendanceRule.d.ts +0 -6
  53. package/dist/src/common/rules/OnlineAttendanceRule.js +0 -14
  54. package/dist/src/common/rules/OnlyFiltersSelectedRule.d.ts +0 -12
  55. package/dist/src/common/rules/OnlyFiltersSelectedRule.js +0 -30
  56. package/dist/src/common/rules/SingleValueSelectedForFilterRule.d.ts +0 -12
  57. package/dist/src/common/rules/SingleValueSelectedForFilterRule.js +0 -24
  58. package/dist/src/enums/DependencyTypes.d.ts +0 -4
  59. package/dist/src/enums/DependencyTypes.js +0 -5
  60. package/dist/src/enums/FilterCombinations.d.ts +0 -73
  61. package/dist/src/enums/FilterCombinations.js +0 -74
  62. package/dist/src/enums/SortingOptions.d.ts +0 -4
  63. package/dist/src/enums/SortingOptions.js +0 -5
  64. package/dist/src/errors/DependencyMissingError.d.ts +0 -3
  65. package/dist/src/errors/DependencyMissingError.js +0 -5
  66. package/dist/src/errors/InvalidDependencyTypeError.d.ts +0 -3
  67. package/dist/src/errors/InvalidDependencyTypeError.js +0 -5
  68. package/dist/src/errors/InvalidFilterValueError.d.ts +0 -4
  69. package/dist/src/errors/InvalidFilterValueError.js +0 -5
  70. package/dist/src/organisations/IOrganisationSearchApplicationState.d.ts +0 -5
  71. package/dist/src/organisations/IOrganisationSearchApplicationState.js +0 -1
  72. package/dist/src/organisations/ISeoSortingState.d.ts +0 -4
  73. package/dist/src/organisations/ISeoSortingState.js +0 -1
  74. package/dist/src/organisations/OrganisationsRuleBasedIndexabilityPolicy.d.ts +0 -11
  75. package/dist/src/organisations/OrganisationsRuleBasedIndexabilityPolicy.js +0 -19
  76. package/dist/src/organisations/SearchIndexabilityManager.d.ts +0 -12
  77. package/dist/src/organisations/SearchIndexabilityManager.js +0 -42
  78. package/dist/src/organisations/index.d.ts +0 -4
  79. package/dist/src/organisations/index.js +0 -4
  80. package/dist/src/organisations/policies/OrganisationsSeoIndexabilityPolicy.d.ts +0 -17
  81. package/dist/src/organisations/policies/OrganisationsSeoIndexabilityPolicy.js +0 -33
  82. package/dist/src/organisations/policies/RankedOrganisationsSeoIndexabilityPolicy.d.ts +0 -9
  83. package/dist/src/organisations/policies/RankedOrganisationsSeoIndexabilityPolicy.js +0 -22
  84. package/dist/src/organisations/policies/index.d.ts +0 -18
  85. package/dist/src/organisations/policies/index.js +0 -18
  86. package/dist/src/organisations/policies/our-picks/Area.d.ts +0 -13
  87. package/dist/src/organisations/policies/our-picks/Area.js +0 -35
  88. package/dist/src/organisations/policies/our-picks/AreaAttendance.d.ts +0 -15
  89. package/dist/src/organisations/policies/our-picks/AreaAttendance.js +0 -45
  90. package/dist/src/organisations/policies/our-picks/Attendance.d.ts +0 -14
  91. package/dist/src/organisations/policies/our-picks/Attendance.js +0 -33
  92. package/dist/src/organisations/policies/our-picks/Continent.d.ts +0 -13
  93. package/dist/src/organisations/policies/our-picks/Continent.js +0 -31
  94. package/dist/src/organisations/policies/our-picks/Country.d.ts +0 -13
  95. package/dist/src/organisations/policies/our-picks/Country.js +0 -28
  96. package/dist/src/organisations/policies/our-picks/CountryAttendance.d.ts +0 -15
  97. package/dist/src/organisations/policies/our-picks/CountryAttendance.js +0 -43
  98. package/dist/src/organisations/policies/our-picks/Unfiltered.d.ts +0 -12
  99. package/dist/src/organisations/policies/our-picks/Unfiltered.js +0 -16
  100. package/dist/src/organisations/policies/ranked/RankedArea.d.ts +0 -13
  101. package/dist/src/organisations/policies/ranked/RankedArea.js +0 -37
  102. package/dist/src/organisations/policies/ranked/RankedAreaDiscipline.d.ts +0 -14
  103. package/dist/src/organisations/policies/ranked/RankedAreaDiscipline.js +0 -45
  104. package/dist/src/organisations/policies/ranked/RankedAttendance.d.ts +0 -14
  105. package/dist/src/organisations/policies/ranked/RankedAttendance.js +0 -35
  106. package/dist/src/organisations/policies/ranked/RankedAttendanceDiscipline.d.ts +0 -14
  107. package/dist/src/organisations/policies/ranked/RankedAttendanceDiscipline.js +0 -43
  108. package/dist/src/organisations/policies/ranked/RankedContinent.d.ts +0 -13
  109. package/dist/src/organisations/policies/ranked/RankedContinent.js +0 -33
  110. package/dist/src/organisations/policies/ranked/RankedContinentAttendance.d.ts +0 -15
  111. package/dist/src/organisations/policies/ranked/RankedContinentAttendance.js +0 -45
  112. package/dist/src/organisations/policies/ranked/RankedCountry.d.ts +0 -13
  113. package/dist/src/organisations/policies/ranked/RankedCountry.js +0 -30
  114. package/dist/src/organisations/policies/ranked/RankedCountryAttendance.d.ts +0 -14
  115. package/dist/src/organisations/policies/ranked/RankedCountryAttendance.js +0 -43
  116. package/dist/src/organisations/policies/ranked/RankedCountryDiscipline.d.ts +0 -13
  117. package/dist/src/organisations/policies/ranked/RankedCountryDiscipline.js +0 -41
  118. package/dist/src/organisations/policies/ranked/RankedDiscipline.d.ts +0 -13
  119. package/dist/src/organisations/policies/ranked/RankedDiscipline.js +0 -33
  120. package/dist/src/organisations/policies/ranked/RankedUnfiltered.d.ts +0 -12
  121. package/dist/src/organisations/policies/ranked/RankedUnfiltered.js +0 -22
  122. package/dist/src/organisations/rules/AtLeastTwoRankedResultsRule.d.ts +0 -13
  123. package/dist/src/organisations/rules/AtLeastTwoRankedResultsRule.js +0 -26
  124. package/dist/src/organisations/rules/BaseSearchVolumeOrganisationsRule.d.ts +0 -14
  125. package/dist/src/organisations/rules/BaseSearchVolumeOrganisationsRule.js +0 -33
  126. package/dist/src/organisations/rules/ContinentIsEuropeRule.d.ts +0 -6
  127. package/dist/src/organisations/rules/ContinentIsEuropeRule.js +0 -15
  128. package/dist/src/organisations/rules/NoFiltersSelectedRule.d.ts +0 -9
  129. package/dist/src/organisations/rules/NoFiltersSelectedRule.js +0 -17
  130. package/dist/src/organisations/rules/OnlineAttendanceRule.d.ts +0 -6
  131. package/dist/src/organisations/rules/OnlineAttendanceRule.js +0 -14
  132. package/dist/src/organisations/rules/SearchVolumeAreasAttendanceRule.d.ts +0 -6
  133. package/dist/src/organisations/rules/SearchVolumeAreasAttendanceRule.js +0 -17
  134. package/dist/src/organisations/rules/SearchVolumeAreasDisciplineRule.d.ts +0 -6
  135. package/dist/src/organisations/rules/SearchVolumeAreasDisciplineRule.js +0 -18
  136. package/dist/src/organisations/rules/SearchVolumeCountriesAttendanceRule.d.ts +0 -6
  137. package/dist/src/organisations/rules/SearchVolumeCountriesAttendanceRule.js +0 -17
  138. package/dist/src/organisations/types/IOrganisationSearchDependencies.d.ts +0 -9
  139. package/dist/src/organisations/types/IOrganisationSearchDependencies.js +0 -1
  140. package/dist/src/organisations/types/IOrganisationsSeoDependencies.d.ts +0 -3
  141. package/dist/src/organisations/types/IOrganisationsSeoDependencies.js +0 -1
  142. package/dist/src/organisations/types/IOrganisationsSitemapDependencies.d.ts +0 -9
  143. package/dist/src/organisations/types/IOrganisationsSitemapDependencies.js +0 -1
  144. package/dist/src/organisations/types.d.ts +0 -6
  145. package/dist/src/organisations/types.js +0 -6
  146. package/dist/src/presenters/AreaPresenter.d.ts +0 -12
  147. package/dist/src/presenters/AreaPresenter.js +0 -35
  148. package/dist/src/presenters/AttendancePresenter.d.ts +0 -11
  149. package/dist/src/presenters/AttendancePresenter.js +0 -27
  150. package/dist/src/presenters/ContinentPresenter.d.ts +0 -12
  151. package/dist/src/presenters/ContinentPresenter.js +0 -33
  152. package/dist/src/presenters/CountryPresenter.d.ts +0 -12
  153. package/dist/src/presenters/CountryPresenter.js +0 -38
  154. package/dist/src/presenters/DegreePresenter.d.ts +0 -12
  155. package/dist/src/presenters/DegreePresenter.js +0 -50
  156. package/dist/src/presenters/DisciplinePresenter.d.ts +0 -12
  157. package/dist/src/presenters/DisciplinePresenter.js +0 -33
  158. package/dist/src/presenters/DurationPresenter.d.ts +0 -15
  159. package/dist/src/presenters/DurationPresenter.js +0 -47
  160. package/dist/src/presenters/EducationalFormPresenter.d.ts +0 -12
  161. package/dist/src/presenters/EducationalFormPresenter.js +0 -45
  162. package/dist/src/presenters/FormatPresenter.d.ts +0 -11
  163. package/dist/src/presenters/FormatPresenter.js +0 -27
  164. package/dist/src/presenters/SpecialProgrammesPresenter.d.ts +0 -11
  165. package/dist/src/presenters/SpecialProgrammesPresenter.js +0 -31
  166. package/dist/src/presenters/TuitionFeePresenter.d.ts +0 -11
  167. package/dist/src/presenters/TuitionFeePresenter.js +0 -23
  168. package/dist/src/presenters/fragments/IAreaFragment.d.ts +0 -4
  169. package/dist/src/presenters/fragments/IAreaFragment.js +0 -1
  170. package/dist/src/presenters/fragments/ICountryFragment.d.ts +0 -4
  171. package/dist/src/presenters/fragments/ICountryFragment.js +0 -1
  172. package/dist/src/presenters/fragments/IFragment.d.ts +0 -4
  173. package/dist/src/presenters/fragments/IFragment.js +0 -1
  174. package/dist/src/programmes/BaseProgrammeFilterKeyValueRule.d.ts +0 -6
  175. package/dist/src/programmes/BaseProgrammeFilterKeyValueRule.js +0 -6
  176. package/dist/src/programmes/BaseProgrammeRule.d.ts +0 -10
  177. package/dist/src/programmes/BaseProgrammeRule.js +0 -5
  178. package/dist/src/programmes/IProgrammeRule.d.ts +0 -5
  179. package/dist/src/programmes/IProgrammeRule.js +0 -1
  180. package/dist/src/programmes/IProgrammeSearchApplicationState.d.ts +0 -4
  181. package/dist/src/programmes/IProgrammeSearchApplicationState.js +0 -1
  182. package/dist/src/programmes/IProgrammeSearchDependencies.d.ts +0 -7
  183. package/dist/src/programmes/IProgrammeSearchDependencies.js +0 -1
  184. package/dist/src/programmes/IProgrammesSeoDependencies.d.ts +0 -2
  185. package/dist/src/programmes/IProgrammesSeoDependencies.js +0 -1
  186. package/dist/src/programmes/ProgrammesBaseIndexabilityPolicy.d.ts +0 -15
  187. package/dist/src/programmes/ProgrammesBaseIndexabilityPolicy.js +0 -42
  188. package/dist/src/programmes/SearchIndexabilityManager.d.ts +0 -12
  189. package/dist/src/programmes/SearchIndexabilityManager.js +0 -82
  190. package/dist/src/programmes/policies/Area.d.ts +0 -15
  191. package/dist/src/programmes/policies/Area.js +0 -40
  192. package/dist/src/programmes/policies/Attendance.d.ts +0 -16
  193. package/dist/src/programmes/policies/Attendance.js +0 -38
  194. package/dist/src/programmes/policies/AttendanceArea.d.ts +0 -16
  195. package/dist/src/programmes/policies/AttendanceArea.js +0 -48
  196. package/dist/src/programmes/policies/AttendanceContinent.d.ts +0 -16
  197. package/dist/src/programmes/policies/AttendanceContinent.js +0 -46
  198. package/dist/src/programmes/policies/AttendanceDegree.d.ts +0 -16
  199. package/dist/src/programmes/policies/AttendanceDegree.js +0 -49
  200. package/dist/src/programmes/policies/AttendanceDuration.d.ts +0 -16
  201. package/dist/src/programmes/policies/AttendanceDuration.js +0 -48
  202. package/dist/src/programmes/policies/AttendanceFormat.d.ts +0 -16
  203. package/dist/src/programmes/policies/AttendanceFormat.js +0 -48
  204. package/dist/src/programmes/policies/AttendanceTuitionFee.d.ts +0 -16
  205. package/dist/src/programmes/policies/AttendanceTuitionFee.js +0 -49
  206. package/dist/src/programmes/policies/Continent.d.ts +0 -15
  207. package/dist/src/programmes/policies/Continent.js +0 -36
  208. package/dist/src/programmes/policies/ContinentDuration.d.ts +0 -15
  209. package/dist/src/programmes/policies/ContinentDuration.js +0 -46
  210. package/dist/src/programmes/policies/ContinentFormat.d.ts +0 -15
  211. package/dist/src/programmes/policies/ContinentFormat.js +0 -46
  212. package/dist/src/programmes/policies/ContinentSpecialProgrammes.d.ts +0 -15
  213. package/dist/src/programmes/policies/ContinentSpecialProgrammes.js +0 -46
  214. package/dist/src/programmes/policies/ContinentTuitionFee.d.ts +0 -16
  215. package/dist/src/programmes/policies/ContinentTuitionFee.js +0 -46
  216. package/dist/src/programmes/policies/Country.d.ts +0 -15
  217. package/dist/src/programmes/policies/Country.js +0 -33
  218. package/dist/src/programmes/policies/CountryAttendance.d.ts +0 -16
  219. package/dist/src/programmes/policies/CountryAttendance.js +0 -46
  220. package/dist/src/programmes/policies/CountryAttendanceDegree.d.ts +0 -17
  221. package/dist/src/programmes/policies/CountryAttendanceDegree.js +0 -55
  222. package/dist/src/programmes/policies/CountryDegree.d.ts +0 -16
  223. package/dist/src/programmes/policies/CountryDegree.js +0 -46
  224. package/dist/src/programmes/policies/CountryDuration.d.ts +0 -16
  225. package/dist/src/programmes/policies/CountryDuration.js +0 -48
  226. package/dist/src/programmes/policies/CountryDurationDegree.d.ts +0 -17
  227. package/dist/src/programmes/policies/CountryDurationDegree.js +0 -55
  228. package/dist/src/programmes/policies/CountryEducationalForm.d.ts +0 -16
  229. package/dist/src/programmes/policies/CountryEducationalForm.js +0 -47
  230. package/dist/src/programmes/policies/CountryFormat.d.ts +0 -16
  231. package/dist/src/programmes/policies/CountryFormat.js +0 -46
  232. package/dist/src/programmes/policies/CountrySpecialProgrammes.d.ts +0 -15
  233. package/dist/src/programmes/policies/CountrySpecialProgrammes.js +0 -46
  234. package/dist/src/programmes/policies/CountryTuitionFee.d.ts +0 -16
  235. package/dist/src/programmes/policies/CountryTuitionFee.js +0 -46
  236. package/dist/src/programmes/policies/Degree.d.ts +0 -15
  237. package/dist/src/programmes/policies/Degree.js +0 -38
  238. package/dist/src/programmes/policies/DegreeArea.d.ts +0 -15
  239. package/dist/src/programmes/policies/DegreeArea.js +0 -46
  240. package/dist/src/programmes/policies/DegreeAreaTuitionFee.d.ts +0 -15
  241. package/dist/src/programmes/policies/DegreeAreaTuitionFee.js +0 -52
  242. package/dist/src/programmes/policies/DegreeAttendanceDiscipline.d.ts +0 -17
  243. package/dist/src/programmes/policies/DegreeAttendanceDiscipline.js +0 -63
  244. package/dist/src/programmes/policies/DegreeAttendanceFormat.d.ts +0 -15
  245. package/dist/src/programmes/policies/DegreeAttendanceFormat.js +0 -52
  246. package/dist/src/programmes/policies/DegreeAttendanceSpecialProgrammes.d.ts +0 -16
  247. package/dist/src/programmes/policies/DegreeAttendanceSpecialProgrammes.js +0 -56
  248. package/dist/src/programmes/policies/DegreeAttendanceTuitionFee.d.ts +0 -16
  249. package/dist/src/programmes/policies/DegreeAttendanceTuitionFee.js +0 -55
  250. package/dist/src/programmes/policies/DegreeContinent.d.ts +0 -16
  251. package/dist/src/programmes/policies/DegreeContinent.js +0 -46
  252. package/dist/src/programmes/policies/DegreeContinentTuitionFee.d.ts +0 -16
  253. package/dist/src/programmes/policies/DegreeContinentTuitionFee.js +0 -52
  254. package/dist/src/programmes/policies/DegreeCountryAttendance.d.ts +0 -16
  255. package/dist/src/programmes/policies/DegreeCountryAttendance.js +0 -88
  256. package/dist/src/programmes/policies/DegreeCountryDiscipline.d.ts +0 -16
  257. package/dist/src/programmes/policies/DegreeCountryDiscipline.js +0 -71
  258. package/dist/src/programmes/policies/DegreeCountryTuitionFee.d.ts +0 -16
  259. package/dist/src/programmes/policies/DegreeCountryTuitionFee.js +0 -73
  260. package/dist/src/programmes/policies/DegreeDuration.d.ts +0 -16
  261. package/dist/src/programmes/policies/DegreeDuration.js +0 -48
  262. package/dist/src/programmes/policies/DegreeFormat.d.ts +0 -16
  263. package/dist/src/programmes/policies/DegreeFormat.js +0 -49
  264. package/dist/src/programmes/policies/DegreeFormatTuitionFee.d.ts +0 -16
  265. package/dist/src/programmes/policies/DegreeFormatTuitionFee.js +0 -52
  266. package/dist/src/programmes/policies/DegreeSpecialProgrammes.d.ts +0 -15
  267. package/dist/src/programmes/policies/DegreeSpecialProgrammes.js +0 -48
  268. package/dist/src/programmes/policies/DegreeTuitionFee.d.ts +0 -15
  269. package/dist/src/programmes/policies/DegreeTuitionFee.js +0 -47
  270. package/dist/src/programmes/policies/Discipline.d.ts +0 -15
  271. package/dist/src/programmes/policies/Discipline.js +0 -36
  272. package/dist/src/programmes/policies/DisciplineArea.d.ts +0 -15
  273. package/dist/src/programmes/policies/DisciplineArea.js +0 -46
  274. package/dist/src/programmes/policies/DisciplineAttendance.d.ts +0 -16
  275. package/dist/src/programmes/policies/DisciplineAttendance.js +0 -46
  276. package/dist/src/programmes/policies/DisciplineContinent.d.ts +0 -15
  277. package/dist/src/programmes/policies/DisciplineContinent.js +0 -44
  278. package/dist/src/programmes/policies/DisciplineContinentAttendance.d.ts +0 -16
  279. package/dist/src/programmes/policies/DisciplineContinentAttendance.js +0 -54
  280. package/dist/src/programmes/policies/DisciplineCountry.d.ts +0 -15
  281. package/dist/src/programmes/policies/DisciplineCountry.js +0 -44
  282. package/dist/src/programmes/policies/DisciplineCountryAttendance.d.ts +0 -16
  283. package/dist/src/programmes/policies/DisciplineCountryAttendance.js +0 -54
  284. package/dist/src/programmes/policies/DisciplineCountryDegree.d.ts +0 -16
  285. package/dist/src/programmes/policies/DisciplineCountryDegree.js +0 -53
  286. package/dist/src/programmes/policies/DisciplineCountryEducationalForm.d.ts +0 -16
  287. package/dist/src/programmes/policies/DisciplineCountryEducationalForm.js +0 -53
  288. package/dist/src/programmes/policies/DisciplineCountryFormat.d.ts +0 -15
  289. package/dist/src/programmes/policies/DisciplineCountryFormat.js +0 -52
  290. package/dist/src/programmes/policies/DisciplineDegree.d.ts +0 -16
  291. package/dist/src/programmes/policies/DisciplineDegree.js +0 -46
  292. package/dist/src/programmes/policies/DisciplineDuration.d.ts +0 -16
  293. package/dist/src/programmes/policies/DisciplineDuration.js +0 -46
  294. package/dist/src/programmes/policies/DisciplineEducationalForm.d.ts +0 -16
  295. package/dist/src/programmes/policies/DisciplineEducationalForm.js +0 -47
  296. package/dist/src/programmes/policies/DisciplineFormat.d.ts +0 -16
  297. package/dist/src/programmes/policies/DisciplineFormat.js +0 -46
  298. package/dist/src/programmes/policies/DisciplineSpecialProgrammes.d.ts +0 -15
  299. package/dist/src/programmes/policies/DisciplineSpecialProgrammes.js +0 -46
  300. package/dist/src/programmes/policies/DisciplineTuitionFee.d.ts +0 -16
  301. package/dist/src/programmes/policies/DisciplineTuitionFee.js +0 -46
  302. package/dist/src/programmes/policies/DisciplineTuitionFeeAttendance.d.ts +0 -17
  303. package/dist/src/programmes/policies/DisciplineTuitionFeeAttendance.js +0 -54
  304. package/dist/src/programmes/policies/Duration.d.ts +0 -15
  305. package/dist/src/programmes/policies/Duration.js +0 -35
  306. package/dist/src/programmes/policies/Format.d.ts +0 -15
  307. package/dist/src/programmes/policies/Format.js +0 -35
  308. package/dist/src/programmes/policies/SpecialProgrammes.d.ts +0 -15
  309. package/dist/src/programmes/policies/SpecialProgrammes.js +0 -36
  310. package/dist/src/programmes/policies/TuitionFee.d.ts +0 -15
  311. package/dist/src/programmes/policies/TuitionFee.js +0 -32
  312. package/dist/src/programmes/policies/Unfiltered.d.ts +0 -13
  313. package/dist/src/programmes/policies/Unfiltered.js +0 -19
  314. package/dist/src/programmes/policies/index.d.ts +0 -59
  315. package/dist/src/programmes/policies/index.js +0 -59
  316. package/dist/src/programmes/rules/AffordableTuitionFeeRule.d.ts +0 -6
  317. package/dist/src/programmes/rules/AffordableTuitionFeeRule.js +0 -17
  318. package/dist/src/programmes/rules/AtLeastSevenResultsRule.d.ts +0 -15
  319. package/dist/src/programmes/rules/AtLeastSevenResultsRule.js +0 -30
  320. package/dist/src/programmes/rules/DegreeAttendanceDisciplineRule.d.ts +0 -11
  321. package/dist/src/programmes/rules/DegreeAttendanceDisciplineRule.js +0 -44
  322. package/dist/src/programmes/rules/DegreeAttendanceDisciplineSpecificRule.d.ts +0 -11
  323. package/dist/src/programmes/rules/DegreeAttendanceDisciplineSpecificRule.js +0 -39
  324. package/dist/src/programmes/rules/DegreeAttendanceSpecificRule.d.ts +0 -10
  325. package/dist/src/programmes/rules/DegreeAttendanceSpecificRule.js +0 -42
  326. package/dist/src/programmes/rules/DegreeCountryAttendanceSpecificRule.d.ts +0 -14
  327. package/dist/src/programmes/rules/DegreeCountryAttendanceSpecificRule.js +0 -76
  328. package/dist/src/programmes/rules/DegreeCountryDisciplineSpecificRule.d.ts +0 -11
  329. package/dist/src/programmes/rules/DegreeCountryDisciplineSpecificRule.js +0 -76
  330. package/dist/src/programmes/rules/DegreeCountrySpecificRule.d.ts +0 -10
  331. package/dist/src/programmes/rules/DegreeCountrySpecificRule.js +0 -43
  332. package/dist/src/programmes/rules/DegreeCountryTuitionFeeRule.d.ts +0 -11
  333. package/dist/src/programmes/rules/DegreeCountryTuitionFeeRule.js +0 -40
  334. package/dist/src/programmes/rules/DegreeCountryTuitionFeeSpecificRule.d.ts +0 -12
  335. package/dist/src/programmes/rules/DegreeCountryTuitionFeeSpecificRule.js +0 -62
  336. package/dist/src/programmes/rules/DegreeDisciplineRule.d.ts +0 -16
  337. package/dist/src/programmes/rules/DegreeDisciplineRule.js +0 -189
  338. package/dist/src/programmes/rules/ErasmusOrJointSpecialProgrammesRule.d.ts +0 -9
  339. package/dist/src/programmes/rules/ErasmusOrJointSpecialProgrammesRule.js +0 -28
  340. package/dist/src/programmes/rules/IndexableDegreeRule.d.ts +0 -10
  341. package/dist/src/programmes/rules/IndexableDegreeRule.js +0 -53
  342. package/dist/src/programmes/rules/IndexableDurationRule.d.ts +0 -12
  343. package/dist/src/programmes/rules/IndexableDurationRule.js +0 -37
  344. package/dist/src/programmes/rules/IndexableEducationalFormRule.d.ts +0 -10
  345. package/dist/src/programmes/rules/IndexableEducationalFormRule.js +0 -34
  346. package/dist/src/programmes/rules/IndexablePageNumberRule.d.ts +0 -9
  347. package/dist/src/programmes/rules/IndexablePageNumberRule.js +0 -17
  348. package/dist/src/programmes/rules/MBACountryAttendanceRule.d.ts +0 -11
  349. package/dist/src/programmes/rules/MBACountryAttendanceRule.js +0 -40
  350. package/dist/src/programmes/rules/MasterOfArtsDisciplineRule.d.ts +0 -10
  351. package/dist/src/programmes/rules/MasterOfArtsDisciplineRule.js +0 -41
  352. package/dist/src/programmes/rules/MasterOfEducationCountryDisciplineRule.d.ts +0 -11
  353. package/dist/src/programmes/rules/MasterOfEducationCountryDisciplineRule.js +0 -69
  354. package/dist/src/programmes/rules/MasterOfLawsCountryAttendanceRule.d.ts +0 -12
  355. package/dist/src/programmes/rules/MasterOfLawsCountryAttendanceRule.js +0 -43
  356. package/dist/src/programmes/rules/MasterOfLawsCountryTuitionFeeRule.d.ts +0 -12
  357. package/dist/src/programmes/rules/MasterOfLawsCountryTuitionFeeRule.js +0 -46
  358. package/dist/src/programmes/rules/MasterOfPhilosophyCountryAttendanceRule.d.ts +0 -12
  359. package/dist/src/programmes/rules/MasterOfPhilosophyCountryAttendanceRule.js +0 -43
  360. package/dist/src/programmes/rules/MasterOfScienceDisciplineRule.d.ts +0 -10
  361. package/dist/src/programmes/rules/MasterOfScienceDisciplineRule.js +0 -41
  362. package/dist/src/programmes/rules/MbaDegreeRule.d.ts +0 -6
  363. package/dist/src/programmes/rules/MbaDegreeRule.js +0 -15
  364. package/dist/src/programmes/rules/MbaOrMscDegreeRule.d.ts +0 -9
  365. package/dist/src/programmes/rules/MbaOrMscDegreeRule.js +0 -26
  366. package/dist/src/programmes/rules/NotDistanceLearningPortalRule.d.ts +0 -11
  367. package/dist/src/programmes/rules/NotDistanceLearningPortalRule.js +0 -28
  368. package/dist/src/programmes/rules/OneYearDurationRule.d.ts +0 -6
  369. package/dist/src/programmes/rules/OneYearDurationRule.js +0 -15
  370. package/dist/src/programmes/rules/OneYearOnlyRule.d.ts +0 -11
  371. package/dist/src/programmes/rules/OneYearOnlyRule.js +0 -34
  372. package/dist/src/programmes/rules/OnlineAttendanceRule.d.ts +0 -6
  373. package/dist/src/programmes/rules/OnlineAttendanceRule.js +0 -15
  374. package/dist/src/programmes/rules/PartTimeFormatRule.d.ts +0 -6
  375. package/dist/src/programmes/rules/PartTimeFormatRule.js +0 -15
  376. package/dist/src/programmes/types/IProgrammeSearchApplicationState.d.ts +0 -4
  377. package/dist/src/programmes/types/IProgrammeSearchApplicationState.js +0 -1
  378. package/dist/src/programmes/types/IProgrammeSearchDependencies.d.ts +0 -7
  379. package/dist/src/programmes/types/IProgrammeSearchDependencies.js +0 -1
  380. package/dist/src/programmes/types/IProgrammeSearchSitemapDependencies.d.ts +0 -5
  381. package/dist/src/programmes/types/IProgrammeSearchSitemapDependencies.js +0 -1
  382. package/dist/src/programmes/types/IProgrammeSeoDependencies.d.ts +0 -3
  383. package/dist/src/programmes/types/IProgrammeSeoDependencies.js +0 -1
  384. package/dist/src/programmes/types/IProgrammeSitemapDependencies.d.ts +0 -7
  385. package/dist/src/programmes/types/IProgrammeSitemapDependencies.js +0 -1
  386. package/dist/src/programmes/types/IProgrammeSitemapUrlGenerator.d.ts +0 -5
  387. package/dist/src/programmes/types/IProgrammeSitemapUrlGenerator.js +0 -1
  388. package/dist/src/scholarships/SearchIndexabilityManager.d.ts +0 -11
  389. package/dist/src/scholarships/SearchIndexabilityManager.js +0 -33
  390. package/dist/src/scholarships/index.d.ts +0 -3
  391. package/dist/src/scholarships/index.js +0 -3
  392. package/dist/src/scholarships/policies/Area.d.ts +0 -13
  393. package/dist/src/scholarships/policies/Area.js +0 -37
  394. package/dist/src/scholarships/policies/Country.d.ts +0 -12
  395. package/dist/src/scholarships/policies/Country.js +0 -31
  396. package/dist/src/scholarships/policies/Discipline.d.ts +0 -12
  397. package/dist/src/scholarships/policies/Discipline.js +0 -31
  398. package/dist/src/scholarships/policies/DisciplineCountry.d.ts +0 -12
  399. package/dist/src/scholarships/policies/DisciplineCountry.js +0 -39
  400. package/dist/src/scholarships/policies/ScholarshipSeoIndexabilityPolicy.d.ts +0 -7
  401. package/dist/src/scholarships/policies/ScholarshipSeoIndexabilityPolicy.js +0 -7
  402. package/dist/src/scholarships/policies/Unfiltered.d.ts +0 -10
  403. package/dist/src/scholarships/policies/Unfiltered.js +0 -16
  404. package/dist/src/scholarships/policies/UniversityCountry.d.ts +0 -11
  405. package/dist/src/scholarships/policies/UniversityCountry.js +0 -41
  406. package/dist/src/scholarships/rules/ExceptAustaliaAreasRule.d.ts +0 -14
  407. package/dist/src/scholarships/rules/ExceptAustaliaAreasRule.js +0 -42
  408. package/dist/src/scholarships/rules/SearchVolumeAreasRule.d.ts +0 -12
  409. package/dist/src/scholarships/rules/SearchVolumeAreasRule.js +0 -32
  410. package/dist/src/scholarships/rules/SearchVolumeCountriesDisciplinesRule.d.ts +0 -14
  411. package/dist/src/scholarships/rules/SearchVolumeCountriesDisciplinesRule.js +0 -43
  412. package/dist/src/scholarships/rules/SearchVolumeCountriesRule.d.ts +0 -12
  413. package/dist/src/scholarships/rules/SearchVolumeCountriesRule.js +0 -32
  414. package/dist/src/scholarships/rules/SearchVolumeDisciplinesRule.d.ts +0 -12
  415. package/dist/src/scholarships/rules/SearchVolumeDisciplinesRule.js +0 -32
  416. package/dist/src/scholarships/rules/files/search-volume.json +0 -39334
  417. package/dist/src/scholarships/types/IScholarshipSeoDependencies.d.ts +0 -3
  418. package/dist/src/scholarships/types/IScholarshipSeoDependencies.js +0 -1
  419. package/dist/src/scholarships/types/IScholarshipSitemapDependencies.d.ts +0 -5
  420. package/dist/src/scholarships/types/IScholarshipSitemapDependencies.js +0 -1
  421. package/dist/src/scholarships/types.d.ts +0 -5
  422. package/dist/src/scholarships/types.js +0 -5
  423. package/dist/src/sitemap-generator/BaseSitemapUrlGeneratorManager.d.ts +0 -14
  424. package/dist/src/sitemap-generator/BaseSitemapUrlGeneratorManager.js +0 -26
  425. package/dist/src/sitemap-generator/IOrganisation.d.ts +0 -6
  426. package/dist/src/sitemap-generator/IOrganisation.js +0 -1
  427. package/dist/src/sitemap-generator/IOrganisationsClient.d.ts +0 -4
  428. package/dist/src/sitemap-generator/IOrganisationsClient.js +0 -1
  429. package/dist/src/sitemap-generator/IPageNumberProvider.d.ts +0 -3
  430. package/dist/src/sitemap-generator/IPageNumberProvider.js +0 -1
  431. package/dist/src/sitemap-generator/IRankingApiClient.d.ts +0 -4
  432. package/dist/src/sitemap-generator/IRankingApiClient.js +0 -1
  433. package/dist/src/sitemap-generator/ISearchApiClient.d.ts +0 -5
  434. package/dist/src/sitemap-generator/ISearchApiClient.js +0 -1
  435. package/dist/src/sitemap-generator/ISitemapUrlGeneratorManager.d.ts +0 -9
  436. package/dist/src/sitemap-generator/ISitemapUrlGeneratorManager.js +0 -1
  437. package/dist/src/sitemap-generator/OrganisationsSitemapUrlGeneratorManager.d.ts +0 -14
  438. package/dist/src/sitemap-generator/OrganisationsSitemapUrlGeneratorManager.js +0 -51
  439. package/dist/src/sitemap-generator/ProgrammesSitemapUrlGeneratorManager.d.ts +0 -12
  440. package/dist/src/sitemap-generator/ProgrammesSitemapUrlGeneratorManager.js +0 -101
  441. package/dist/src/sitemap-generator/ScholarshipsSitemapUrlGeneratorManager.d.ts +0 -9
  442. package/dist/src/sitemap-generator/ScholarshipsSitemapUrlGeneratorManager.js +0 -28
  443. package/dist/src/sitemap-generator/index.d.ts +0 -0
  444. package/dist/src/sitemap-generator/index.js +0 -1
  445. package/dist/src/structured-data/ProgrammeStructuredDataFactory.d.ts +0 -18
  446. package/dist/src/structured-data/ProgrammeStructuredDataFactory.js +0 -91
  447. package/dist/src/structured-data/SearchStructuredDataFactory.d.ts +0 -34
  448. package/dist/src/structured-data/SearchStructuredDataFactory.js +0 -144
  449. package/dist/src/structured-data/dto/BreadcrumbDTO.d.ts +0 -5
  450. package/dist/src/structured-data/dto/BreadcrumbDTO.js +0 -1
  451. package/dist/src/structured-data/dto/EntityDTO.d.ts +0 -7
  452. package/dist/src/structured-data/dto/EntityDTO.js +0 -1
  453. package/dist/src/structured-data/dto/FAQItemDto.d.ts +0 -4
  454. package/dist/src/structured-data/dto/FAQItemDto.js +0 -1
  455. package/dist/src/structured-data/dto/OfferDTO.d.ts +0 -5
  456. package/dist/src/structured-data/dto/OfferDTO.js +0 -1
  457. package/dist/src/structured-data/dto/ReviewRatingDTO.d.ts +0 -4
  458. package/dist/src/structured-data/dto/ReviewRatingDTO.js +0 -1
  459. package/dist/src/structured-data/dto/index.d.ts +0 -5
  460. package/dist/src/structured-data/dto/index.js +0 -5
  461. package/dist/src/structured-data/index.d.ts +0 -2
  462. package/dist/src/structured-data/index.js +0 -2
  463. package/dist/src/structured-data/interface/StructuredDataCurrencyConversionService.d.ts +0 -3
  464. package/dist/src/structured-data/interface/StructuredDataCurrencyConversionService.js +0 -1
  465. package/dist/structured-data-seo/index.d.ts +0 -1
  466. package/dist/structured-data-seo/index.js +0 -1
@@ -1,73 +0,0 @@
1
- import { FilterKey } from '@studyportals/search-filters';
2
- import { DegreeTypeFilterOptionValue } from '@studyportals/search-filters';
3
- import { TuitionFeeFilterOptionValue } from '@studyportals/search-filters';
4
- import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
5
- import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
6
- import { FilterCombinations } from '../../enums/FilterCombinations';
7
- import { DegreeCountryTuitionFeeSpecificRule } from '../rules/DegreeCountryTuitionFeeSpecificRule';
8
- import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
9
- import { DegreePresenter } from '../../presenters/DegreePresenter';
10
- import { CountryPresenter } from '../../presenters/CountryPresenter';
11
- import { TuitionFeePresenter } from '../../presenters/TuitionFeePresenter';
12
- export class DegreeCountryTuitionFee extends ProgrammesBaseIndexabilityPolicy {
13
- name = 'Degree Country Tuition Fee Policy';
14
- description = 'Determines indexing rules for pages filtered by degree type, country, and tuition fee.';
15
- filterKeys = [FilterKey.DEGREE_TYPE, FilterKey.COUNTRY, FilterKey.TUITION_FEE];
16
- rules = [
17
- new SingleValueSelectedForFilterRule(FilterKey.DEGREE_TYPE),
18
- new SingleValueSelectedForFilterRule(FilterKey.COUNTRY),
19
- new SingleValueSelectedForFilterRule(FilterKey.TUITION_FEE),
20
- new OnlyFiltersSelectedRule([FilterKey.DEGREE_TYPE, FilterKey.COUNTRY, FilterKey.TUITION_FEE]),
21
- new DegreeCountryTuitionFeeSpecificRule(),
22
- ];
23
- constructor(dependencies) {
24
- super(dependencies);
25
- this.initateBaseRules();
26
- }
27
- async generateUrls() {
28
- const degreeFragments = DegreePresenter.getInstance().getFragments();
29
- const countryFragments = CountryPresenter.getInstance().getFragments();
30
- const tuitionFeeFragments = TuitionFeePresenter.getInstance().getFragments();
31
- const paths = [];
32
- const mba = degreeFragments.find(d => d.id === DegreeTypeFilterOptionValue.MBA.valueOf());
33
- const llm = degreeFragments.find(d => d.id === DegreeTypeFilterOptionValue.LLM.valueOf());
34
- const affordableTuition = tuitionFeeFragments.find(t => t.id === TuitionFeeFilterOptionValue.ZERO_TO_TWO_THOUSAND_FIVE_HUNDRED);
35
- if (!affordableTuition) {
36
- return paths;
37
- }
38
- const llmAllowedCountryIds = ['82', '30', '56', '108'];
39
- for (const pageNumber of this.indexablePageNumbers) {
40
- if (mba) {
41
- for (const country of countryFragments) {
42
- const filterKeyValues = new Map([
43
- [FilterKey.DEGREE_TYPE, [mba.id]],
44
- [FilterKey.COUNTRY, [country.id]],
45
- [FilterKey.TUITION_FEE, [affordableTuition.id]]
46
- ]);
47
- const result = await this.checkRulesForSitemapWithPageNumber(filterKeyValues, pageNumber);
48
- if (result) {
49
- paths.push(this.getPathWithPageNumber(`${mba.path}/${country.path}/${affordableTuition.path}`, pageNumber));
50
- }
51
- }
52
- }
53
- if (llm) {
54
- const llmCountries = countryFragments.filter(c => llmAllowedCountryIds.includes(c.id));
55
- for (const country of llmCountries) {
56
- const filterKeyValues = new Map([
57
- [FilterKey.DEGREE_TYPE, [llm.id]],
58
- [FilterKey.COUNTRY, [country.id]],
59
- [FilterKey.TUITION_FEE, [affordableTuition.id]]
60
- ]);
61
- const result = await this.checkRulesForSitemapWithPageNumber(filterKeyValues, pageNumber);
62
- if (result) {
63
- paths.push(this.getPathWithPageNumber(`${llm.path}/${country.path}/${affordableTuition.path}`, pageNumber));
64
- }
65
- }
66
- }
67
- }
68
- return paths;
69
- }
70
- get filterCombination() {
71
- return FilterCombinations.DEGREE_COUNTRY_TUITION_FEE;
72
- }
73
- }
@@ -1,16 +0,0 @@
1
- import { FilterKey } from '@studyportals/search-filters';
2
- import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
- import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
- import { FilterCombinations } from '../../enums/FilterCombinations';
5
- import { IndexableDegreeRule } from '../rules/IndexableDegreeRule';
6
- import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
7
- import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
8
- export declare class DegreeDuration extends ProgrammesBaseIndexabilityPolicy {
9
- readonly name: string;
10
- readonly description: string;
11
- readonly filterKeys: FilterKey[];
12
- protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | IndexableDegreeRule)[];
13
- constructor(dependencies: IProgrammeSeoDependencies);
14
- protected generateUrls(): Promise<string[]>;
15
- get filterCombination(): FilterCombinations;
16
- }
@@ -1,48 +0,0 @@
1
- import { FilterKey } from '@studyportals/search-filters';
2
- import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
- import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
- import { FilterCombinations } from '../../enums/FilterCombinations';
5
- import { IndexableDegreeRule } from '../rules/IndexableDegreeRule';
6
- import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
7
- import { DegreePresenter } from '../../presenters/DegreePresenter';
8
- import { DurationPresenter } from '../../presenters/DurationPresenter';
9
- export class DegreeDuration extends ProgrammesBaseIndexabilityPolicy {
10
- name = 'Degree Duration Policy';
11
- description = 'Determines indexing rules for pages filtered by degree type and duration (2 years).';
12
- filterKeys = [FilterKey.DEGREE_TYPE, FilterKey.DURATION];
13
- rules = [
14
- new SingleValueSelectedForFilterRule(FilterKey.DURATION),
15
- new SingleValueSelectedForFilterRule(FilterKey.DEGREE_TYPE),
16
- new OnlyFiltersSelectedRule([FilterKey.DURATION, FilterKey.DEGREE_TYPE]),
17
- new IndexableDegreeRule()
18
- ];
19
- constructor(dependencies) {
20
- super(dependencies);
21
- this.initateBaseRules();
22
- }
23
- async generateUrls() {
24
- const durationFragments = DurationPresenter.getInstance().getFragments();
25
- const degreeFragments = DegreePresenter.getInstance().getFragments();
26
- const paths = [];
27
- const allowedDurationIds = ["[720,720]", "[360,360]"];
28
- const allowedDurations = durationFragments.filter(duration => allowedDurationIds.includes(duration.id));
29
- for (const pageNumber of this.indexablePageNumbers) {
30
- for (const duration of allowedDurations) {
31
- for (const degree of degreeFragments) {
32
- const filterKeyValues = new Map([
33
- [FilterKey.DURATION, [duration.id]],
34
- [FilterKey.DEGREE_TYPE, [degree.id]]
35
- ]);
36
- const result = await this.checkRulesForSitemapWithPageNumber(filterKeyValues, pageNumber);
37
- if (result) {
38
- paths.push(this.getPathWithPageNumber(`${degree.path}/${duration.path}`, pageNumber));
39
- }
40
- }
41
- }
42
- }
43
- return paths;
44
- }
45
- get filterCombination() {
46
- return FilterCombinations.DEGREE_DURATION;
47
- }
48
- }
@@ -1,16 +0,0 @@
1
- import { FilterKey } from '@studyportals/search-filters';
2
- import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
- import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
- import { FilterCombinations } from '../../enums/FilterCombinations';
5
- import { IndexableDegreeRule } from '../rules/IndexableDegreeRule';
6
- import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
7
- import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
8
- export declare class DegreeFormat extends ProgrammesBaseIndexabilityPolicy {
9
- readonly name: string;
10
- readonly description: string;
11
- readonly filterKeys: FilterKey[];
12
- protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | IndexableDegreeRule)[];
13
- constructor(dependencies: IProgrammeSeoDependencies);
14
- protected generateUrls(): Promise<string[]>;
15
- get filterCombination(): FilterCombinations;
16
- }
@@ -1,49 +0,0 @@
1
- import { FilterKey } from '@studyportals/search-filters';
2
- import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
- import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
- import { FilterCombinations } from '../../enums/FilterCombinations';
5
- import { IndexableDegreeRule } from '../rules/IndexableDegreeRule';
6
- import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
7
- import { DegreePresenter } from '../../presenters/DegreePresenter';
8
- import { FormatPresenter } from '../../presenters/FormatPresenter';
9
- export class DegreeFormat extends ProgrammesBaseIndexabilityPolicy {
10
- name = 'Degree Format Policy';
11
- description = 'Determines indexing rules for pages filtered by degree type and format.';
12
- filterKeys = [FilterKey.DEGREE_TYPE, FilterKey.ATTENDANCE];
13
- rules = [
14
- new SingleValueSelectedForFilterRule(FilterKey.ATTENDANCE),
15
- new SingleValueSelectedForFilterRule(FilterKey.DEGREE_TYPE),
16
- new OnlyFiltersSelectedRule([FilterKey.ATTENDANCE, FilterKey.DEGREE_TYPE]),
17
- new IndexableDegreeRule()
18
- ];
19
- constructor(dependencies) {
20
- super(dependencies);
21
- this.initateBaseRules();
22
- }
23
- async generateUrls() {
24
- const formatFragments = FormatPresenter.getInstance().getFragments();
25
- const degreeFragments = DegreePresenter.getInstance().getFragments();
26
- // Only allow fulltime and parttime formats for degree combinations
27
- const allowedFormatIds = ["fulltime", "parttime"];
28
- const allowedFormats = formatFragments.filter(format => allowedFormatIds.includes(format.id));
29
- const paths = [];
30
- for (const pageNumber of this.indexablePageNumbers) {
31
- for (const format of allowedFormats) {
32
- for (const degree of degreeFragments) {
33
- const filterKeyValues = new Map([
34
- [FilterKey.ATTENDANCE, [format.id]],
35
- [FilterKey.DEGREE_TYPE, [degree.id]]
36
- ]);
37
- const result = await this.checkRulesForSitemapWithPageNumber(filterKeyValues, pageNumber);
38
- if (result) {
39
- paths.push(this.getPathWithPageNumber(`${degree.path}/${format.path}`, pageNumber));
40
- }
41
- }
42
- }
43
- }
44
- return paths;
45
- }
46
- get filterCombination() {
47
- return FilterCombinations.DEGREE_FORMAT;
48
- }
49
- }
@@ -1,16 +0,0 @@
1
- import { FilterKey } from '@studyportals/search-filters';
2
- import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
- import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
- import { FilterCombinations } from '../../enums/FilterCombinations';
5
- import { IndexableDegreeRule } from '../rules/IndexableDegreeRule';
6
- import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
7
- import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
8
- export declare class DegreeFormatTuitionFee extends ProgrammesBaseIndexabilityPolicy {
9
- readonly name: string;
10
- readonly description: string;
11
- readonly filterKeys: FilterKey[];
12
- protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | IndexableDegreeRule)[];
13
- constructor(dependencies: IProgrammeSeoDependencies);
14
- protected generateUrls(): Promise<string[]>;
15
- get filterCombination(): FilterCombinations;
16
- }
@@ -1,52 +0,0 @@
1
- import { FilterKey } from '@studyportals/search-filters';
2
- import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
- import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
- import { FilterCombinations } from '../../enums/FilterCombinations';
5
- import { IndexableDegreeRule } from '../rules/IndexableDegreeRule';
6
- import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
7
- import { DegreePresenter } from '../../presenters/DegreePresenter';
8
- import { FormatPresenter } from '../../presenters/FormatPresenter';
9
- import { TuitionFeePresenter } from '../../presenters/TuitionFeePresenter';
10
- export class DegreeFormatTuitionFee extends ProgrammesBaseIndexabilityPolicy {
11
- name = 'Degree Format Tuition Fee Policy';
12
- description = 'Determines indexing rules for pages filtered by degree type, format and tuition fee.';
13
- filterKeys = [FilterKey.DEGREE_TYPE, FilterKey.ATTENDANCE, FilterKey.TUITION_FEE];
14
- rules = [
15
- new SingleValueSelectedForFilterRule(FilterKey.ATTENDANCE),
16
- new SingleValueSelectedForFilterRule(FilterKey.DEGREE_TYPE),
17
- new SingleValueSelectedForFilterRule(FilterKey.TUITION_FEE),
18
- new OnlyFiltersSelectedRule([FilterKey.ATTENDANCE, FilterKey.DEGREE_TYPE, FilterKey.TUITION_FEE]),
19
- new IndexableDegreeRule()
20
- ];
21
- constructor(dependencies) {
22
- super(dependencies);
23
- this.initateBaseRules();
24
- }
25
- async generateUrls() {
26
- const formatFragments = FormatPresenter.getInstance().getFragments();
27
- const degreeFragments = DegreePresenter.getInstance().getFragments();
28
- const tuitionFeeFragments = TuitionFeePresenter.getInstance().getFragments();
29
- const paths = [];
30
- for (const pageNumber of this.indexablePageNumbers) {
31
- for (const format of formatFragments) {
32
- for (const degree of degreeFragments) {
33
- for (const tuitionFee of tuitionFeeFragments) {
34
- const filterKeyValues = new Map([
35
- [FilterKey.ATTENDANCE, [format.id]],
36
- [FilterKey.DEGREE_TYPE, [degree.id]],
37
- [FilterKey.TUITION_FEE, [tuitionFee.id]]
38
- ]);
39
- const result = await this.checkRulesForSitemapWithPageNumber(filterKeyValues, pageNumber);
40
- if (result) {
41
- paths.push(this.getPathWithPageNumber(`${degree.path}/${format.path}/${tuitionFee.path}`, pageNumber));
42
- }
43
- }
44
- }
45
- }
46
- }
47
- return paths;
48
- }
49
- get filterCombination() {
50
- return FilterCombinations.DEGREE_FORMAT_TUITION_FEE;
51
- }
52
- }
@@ -1,15 +0,0 @@
1
- import { FilterKey } from '@studyportals/search-filters';
2
- import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
- import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
- import { FilterCombinations } from '../../enums/FilterCombinations';
5
- import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
6
- import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
7
- export declare class DegreeSpecialProgrammes extends ProgrammesBaseIndexabilityPolicy {
8
- readonly name: string;
9
- readonly description: string;
10
- readonly filterKeys: FilterKey[];
11
- protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule)[];
12
- constructor(dependencies: IProgrammeSeoDependencies);
13
- protected generateUrls(): Promise<string[]>;
14
- get filterCombination(): FilterCombinations;
15
- }
@@ -1,48 +0,0 @@
1
- import { FilterKey } from '@studyportals/search-filters';
2
- import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
- import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
- import { FilterCombinations } from '../../enums/FilterCombinations';
5
- import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
6
- import { DegreePresenter } from '../../presenters/DegreePresenter';
7
- import { SpecialProgrammesPresenter } from '../../presenters/SpecialProgrammesPresenter';
8
- export class DegreeSpecialProgrammes extends ProgrammesBaseIndexabilityPolicy {
9
- name = 'Special Programmes Degree Policy';
10
- description = 'Determines indexing rules for pages filtered by special programmes and degree type.';
11
- filterKeys = [FilterKey.SPECIAL_PROGRAMMES, FilterKey.DEGREE_TYPE];
12
- rules = [
13
- new SingleValueSelectedForFilterRule(FilterKey.DEGREE_TYPE),
14
- new SingleValueSelectedForFilterRule(FilterKey.SPECIAL_PROGRAMMES),
15
- new OnlyFiltersSelectedRule([FilterKey.DEGREE_TYPE, FilterKey.SPECIAL_PROGRAMMES]),
16
- ];
17
- constructor(dependencies) {
18
- super(dependencies);
19
- this.initateBaseRules();
20
- }
21
- async generateUrls() {
22
- const degreeFragments = DegreePresenter.getInstance().getFragments();
23
- const specialProgrammesFragments = SpecialProgrammesPresenter.getInstance().getFragments();
24
- const paths = [];
25
- const allowedDegreeIds = ["mba"];
26
- const allowedDegrees = degreeFragments.filter(sp => allowedDegreeIds.includes(sp.id));
27
- const allowedSpecialProgramIds = ["executive"];
28
- const allowedSpecialProgrammes = specialProgrammesFragments.filter(sp => allowedSpecialProgramIds.includes(sp.id));
29
- for (const pageNumber of this.indexablePageNumbers) {
30
- for (const degree of allowedDegrees) {
31
- for (const specialProgramme of allowedSpecialProgrammes) {
32
- const filterKeyValues = new Map([
33
- [FilterKey.DEGREE_TYPE, [degree.id]],
34
- [FilterKey.SPECIAL_PROGRAMMES, [specialProgramme.id]]
35
- ]);
36
- const result = await this.checkRulesForSitemapWithPageNumber(filterKeyValues, pageNumber);
37
- if (result) {
38
- paths.push(this.getPathWithPageNumber(`${degree.path}/${specialProgramme.path}`, pageNumber));
39
- }
40
- }
41
- }
42
- }
43
- return paths;
44
- }
45
- get filterCombination() {
46
- return FilterCombinations.DEGREE_SPECIAL_PROGRAMMES;
47
- }
48
- }
@@ -1,15 +0,0 @@
1
- import { FilterKey } from '@studyportals/search-filters';
2
- import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
- import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
- import { FilterCombinations } from '../../enums/FilterCombinations';
5
- import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
6
- import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
7
- export declare class DegreeTuitionFee extends ProgrammesBaseIndexabilityPolicy {
8
- readonly name: string;
9
- readonly description: string;
10
- readonly filterKeys: FilterKey[];
11
- protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule)[];
12
- constructor(dependencies: IProgrammeSeoDependencies);
13
- protected generateUrls(): Promise<string[]>;
14
- get filterCombination(): FilterCombinations;
15
- }
@@ -1,47 +0,0 @@
1
- import { FilterKey } from '@studyportals/search-filters';
2
- import { TuitionFeeFilterOptionValue } from '@studyportals/search-filters';
3
- import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
4
- import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
5
- import { FilterCombinations } from '../../enums/FilterCombinations';
6
- import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
7
- import { DegreePresenter } from '../../presenters/DegreePresenter';
8
- import { TuitionFeePresenter } from '../../presenters/TuitionFeePresenter';
9
- export class DegreeTuitionFee extends ProgrammesBaseIndexabilityPolicy {
10
- name = 'Tuition Fee Degree Policy';
11
- description = 'Determines indexing rules for pages filtered by tuition fee and degree type.';
12
- filterKeys = [FilterKey.TUITION_FEE, FilterKey.DEGREE_TYPE];
13
- rules = [
14
- new SingleValueSelectedForFilterRule(FilterKey.DEGREE_TYPE),
15
- new SingleValueSelectedForFilterRule(FilterKey.TUITION_FEE),
16
- new OnlyFiltersSelectedRule([FilterKey.DEGREE_TYPE, FilterKey.TUITION_FEE]),
17
- ];
18
- constructor(dependencies) {
19
- super(dependencies);
20
- this.initateBaseRules();
21
- }
22
- async generateUrls() {
23
- const degreeFragments = DegreePresenter.getInstance().getFragments();
24
- const tuitionFeeFragments = TuitionFeePresenter.getInstance().getFragments();
25
- const paths = [];
26
- const affordableTuition = tuitionFeeFragments.find(t => t.id === TuitionFeeFilterOptionValue.ZERO_TO_TWO_THOUSAND_FIVE_HUNDRED);
27
- if (!affordableTuition) {
28
- return paths;
29
- }
30
- for (const pageNumber of this.indexablePageNumbers) {
31
- for (const degree of degreeFragments) {
32
- const filterKeyValues = new Map([
33
- [FilterKey.DEGREE_TYPE, [degree.id]],
34
- [FilterKey.TUITION_FEE, [affordableTuition.id]]
35
- ]);
36
- const result = await this.checkRulesForSitemapWithPageNumber(filterKeyValues, pageNumber);
37
- if (result) {
38
- paths.push(this.getPathWithPageNumber(`${degree.path}/${affordableTuition.path}`, pageNumber));
39
- }
40
- }
41
- }
42
- return paths;
43
- }
44
- get filterCombination() {
45
- return FilterCombinations.DEGREE_TUITION_FEE;
46
- }
47
- }
@@ -1,15 +0,0 @@
1
- import { FilterKey } from '@studyportals/search-filters';
2
- import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
- import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
- import { FilterCombinations } from '../../enums/FilterCombinations';
5
- import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
6
- import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
7
- export declare class Discipline extends ProgrammesBaseIndexabilityPolicy {
8
- readonly name: string;
9
- readonly description: string;
10
- readonly filterKeys: FilterKey[];
11
- protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule)[];
12
- constructor(dependencies: IProgrammeSeoDependencies);
13
- protected generateUrls(): Promise<string[]>;
14
- get filterCombination(): FilterCombinations;
15
- }
@@ -1,36 +0,0 @@
1
- import { FilterKey } from '@studyportals/search-filters';
2
- import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
- import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
- import { FilterCombinations } from '../../enums/FilterCombinations';
5
- import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
6
- import { DisciplinePresenter } from '../../presenters/DisciplinePresenter';
7
- export class Discipline extends ProgrammesBaseIndexabilityPolicy {
8
- name = 'Discipline Policy';
9
- description = 'Controls indexing of pages filtered by discipline.';
10
- filterKeys = [FilterKey.DISCIPLINES];
11
- rules = [
12
- new SingleValueSelectedForFilterRule(FilterKey.DISCIPLINES),
13
- new OnlyFiltersSelectedRule([FilterKey.DISCIPLINES])
14
- ];
15
- constructor(dependencies) {
16
- super(dependencies);
17
- this.initateBaseRules();
18
- }
19
- async generateUrls() {
20
- const disciplineFragments = DisciplinePresenter.getInstance().getFragments();
21
- const paths = [];
22
- for (const pageNumber of this.indexablePageNumbers) {
23
- for (const discipline of disciplineFragments) {
24
- const filterKeyValues = new Map([[FilterKey.DISCIPLINES, [discipline.id]]]);
25
- const result = await this.checkRulesForSitemapWithPageNumber(filterKeyValues, pageNumber);
26
- if (result) {
27
- paths.push(this.getPathWithPageNumber(discipline.path, pageNumber));
28
- }
29
- }
30
- }
31
- return paths;
32
- }
33
- get filterCombination() {
34
- return FilterCombinations.DISCIPLINE;
35
- }
36
- }
@@ -1,15 +0,0 @@
1
- import { FilterKey } from '@studyportals/search-filters';
2
- import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
- import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
- import { FilterCombinations } from '../../enums/FilterCombinations';
5
- import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
6
- import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
7
- export declare class DisciplineArea extends ProgrammesBaseIndexabilityPolicy {
8
- readonly name: string;
9
- readonly description: string;
10
- readonly filterKeys: FilterKey[];
11
- protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule)[];
12
- constructor(dependencies: IProgrammeSeoDependencies);
13
- protected generateUrls(): Promise<string[]>;
14
- get filterCombination(): FilterCombinations;
15
- }
@@ -1,46 +0,0 @@
1
- import { FilterKey } from '@studyportals/search-filters';
2
- import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
- import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
- import { FilterCombinations } from '../../enums/FilterCombinations';
5
- import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
6
- import { DisciplinePresenter } from '../../presenters/DisciplinePresenter';
7
- import { AreaPresenter } from '../../presenters/AreaPresenter';
8
- export class DisciplineArea extends ProgrammesBaseIndexabilityPolicy {
9
- name = 'Discipline Area Policy';
10
- description = 'Determines indexing rules for pages filtered by both discipline, and geographic areas.';
11
- filterKeys = [FilterKey.DISCIPLINES, FilterKey.AREA];
12
- rules = [
13
- new SingleValueSelectedForFilterRule(FilterKey.DISCIPLINES),
14
- new SingleValueSelectedForFilterRule(FilterKey.AREA),
15
- new SingleValueSelectedForFilterRule(FilterKey.COUNTRY),
16
- new OnlyFiltersSelectedRule([FilterKey.DISCIPLINES, FilterKey.AREA, FilterKey.COUNTRY])
17
- ];
18
- constructor(dependencies) {
19
- super(dependencies);
20
- this.initateBaseRules();
21
- }
22
- async generateUrls() {
23
- const disciplineFragments = DisciplinePresenter.getInstance().getFragments();
24
- const areaFragments = AreaPresenter.getInstance().getFragments();
25
- const paths = [];
26
- for (const pageNumber of this.indexablePageNumbers) {
27
- for (const discipline of disciplineFragments) {
28
- for (const area of areaFragments) {
29
- const filterKeyValues = new Map([
30
- [FilterKey.DISCIPLINES, [discipline.id]],
31
- [FilterKey.AREA, [area.id]],
32
- [FilterKey.COUNTRY, [area.countryId]]
33
- ]);
34
- const result = await this.checkRulesForSitemapWithPageNumber(filterKeyValues, pageNumber);
35
- if (result) {
36
- paths.push(this.getPathWithPageNumber(`${discipline.path}/${area.path}`, pageNumber));
37
- }
38
- }
39
- }
40
- }
41
- return paths;
42
- }
43
- get filterCombination() {
44
- return FilterCombinations.DISCIPLINE_AREA;
45
- }
46
- }
@@ -1,16 +0,0 @@
1
- import { FilterKey } from '@studyportals/search-filters';
2
- import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
- import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
- import { FilterCombinations } from '../../enums/FilterCombinations';
5
- import { OnlineAttendanceRule } from '../../common/rules/OnlineAttendanceRule';
6
- import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
7
- import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
8
- export declare class DisciplineAttendance extends ProgrammesBaseIndexabilityPolicy {
9
- readonly name: string;
10
- readonly description: string;
11
- readonly filterKeys: FilterKey[];
12
- protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | OnlineAttendanceRule)[];
13
- constructor(dependencies: IProgrammeSeoDependencies);
14
- protected generateUrls(): Promise<string[]>;
15
- get filterCombination(): FilterCombinations;
16
- }
@@ -1,46 +0,0 @@
1
- import { FilterKey } from '@studyportals/search-filters';
2
- import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
- import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
- import { FilterCombinations } from '../../enums/FilterCombinations';
5
- import { OnlineAttendanceRule } from '../../common/rules/OnlineAttendanceRule';
6
- import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
7
- import { DisciplinePresenter } from '../../presenters/DisciplinePresenter';
8
- import { AttendancePresenter } from '../../presenters/AttendancePresenter';
9
- export class DisciplineAttendance extends ProgrammesBaseIndexabilityPolicy {
10
- name = 'Discipline Attendance Policy';
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];
13
- rules = [
14
- new SingleValueSelectedForFilterRule(FilterKey.DISCIPLINES),
15
- new SingleValueSelectedForFilterRule(FilterKey.DELIVERY_METHOD),
16
- new OnlyFiltersSelectedRule([FilterKey.DISCIPLINES, FilterKey.DELIVERY_METHOD]),
17
- new OnlineAttendanceRule()
18
- ];
19
- constructor(dependencies) {
20
- super(dependencies);
21
- this.initateBaseRules();
22
- }
23
- async generateUrls() {
24
- const disciplineFragments = DisciplinePresenter.getInstance().getFragments();
25
- const attendanceFragments = AttendancePresenter.getInstance().getFragments();
26
- const paths = [];
27
- for (const pageNumber of this.indexablePageNumbers) {
28
- for (const discipline of disciplineFragments) {
29
- for (const attendance of attendanceFragments) {
30
- const filterKeyValues = new Map([
31
- [FilterKey.DISCIPLINES, [discipline.id]],
32
- [FilterKey.DELIVERY_METHOD, [attendance.id]]
33
- ]);
34
- const result = await this.checkRulesForSitemapWithPageNumber(filterKeyValues, pageNumber);
35
- if (result) {
36
- paths.push(this.getPathWithPageNumber(`${attendance.path}/${discipline.path}`, pageNumber));
37
- }
38
- }
39
- }
40
- }
41
- return paths;
42
- }
43
- get filterCombination() {
44
- return FilterCombinations.DISCIPLINE_ATTENDANCE;
45
- }
46
- }
@@ -1,15 +0,0 @@
1
- import { FilterKey } from '@studyportals/search-filters';
2
- import { OnlyFiltersSelectedRule } from '../../common/rules/OnlyFiltersSelectedRule';
3
- import { SingleValueSelectedForFilterRule } from '../../common/rules/SingleValueSelectedForFilterRule';
4
- import { FilterCombinations } from '../../enums/FilterCombinations';
5
- import { ProgrammesBaseIndexabilityPolicy } from '../ProgrammesBaseIndexabilityPolicy';
6
- import { IProgrammeSeoDependencies } from '../types/IProgrammeSeoDependencies';
7
- export declare class DisciplineContinent extends ProgrammesBaseIndexabilityPolicy {
8
- readonly name: string;
9
- readonly description: string;
10
- readonly filterKeys: FilterKey[];
11
- protected readonly rules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule)[];
12
- constructor(dependencies: IProgrammeSeoDependencies);
13
- protected generateUrls(): Promise<string[]>;
14
- get filterCombination(): FilterCombinations;
15
- }