@studyportals/fawkes 8.0.1-0 → 8.0.1-2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/organisations-seo/index.d.ts +4 -0
- package/dist/organisations-seo/index.js +2 -0
- package/dist/programmes-seo/index.d.ts +6 -0
- package/dist/programmes-seo/index.js +2 -0
- package/dist/scholarships-seo/index.d.ts +5 -0
- package/dist/scholarships-seo/index.js +3 -0
- package/dist/sitemap-generator-seo/index.d.ts +13 -0
- package/dist/sitemap-generator-seo/index.js +4 -0
- package/dist/src/common/FilterKeyValuesMap.d.ts +2 -0
- package/dist/src/common/FilterKeyValuesMap.js +1 -0
- package/dist/src/common/IDependencies.d.ts +4 -0
- package/dist/src/common/IDependencies.js +1 -0
- package/dist/src/common/IDocumentationManager.d.ts +5 -0
- package/dist/src/common/IDocumentationManager.js +1 -0
- package/dist/src/common/IPresenter.d.ts +6 -0
- package/dist/src/common/IPresenter.js +1 -0
- package/dist/src/common/IRule.d.ts +8 -0
- package/dist/src/common/IRule.js +1 -0
- package/dist/src/common/ISearchApplicationState.d.ts +4 -0
- package/dist/src/common/ISearchApplicationState.js +1 -0
- package/dist/src/common/ISearchDependencies.d.ts +7 -0
- package/dist/src/common/ISearchDependencies.js +1 -0
- package/dist/src/common/ISearchIndexabilityManager.d.ts +4 -0
- package/dist/src/common/ISearchIndexabilityManager.js +1 -0
- package/dist/src/common/ISeoDependencies.d.ts +3 -0
- package/dist/src/common/ISeoDependencies.js +1 -0
- package/dist/src/common/ISeoFilterState.d.ts +5 -0
- package/dist/src/common/ISeoFilterState.js +1 -0
- package/dist/src/common/ISeoIndexabilityPolicy.d.ts +7 -0
- package/dist/src/common/ISeoIndexabilityPolicy.js +1 -0
- package/dist/src/common/ISeoInfoBase.d.ts +8 -0
- package/dist/src/common/ISeoInfoBase.js +1 -0
- package/dist/src/common/ISitemapDependencies.d.ts +5 -0
- package/dist/src/common/ISitemapDependencies.js +1 -0
- package/dist/src/common/ISitemapUrlGenerator.d.ts +7 -0
- package/dist/src/common/ISitemapUrlGenerator.js +1 -0
- package/dist/src/common/index.d.ts +5 -0
- package/dist/src/common/index.js +5 -0
- package/dist/src/common/policies/BaseSeoIndexabilityPolicy.d.ts +26 -0
- package/dist/src/common/policies/BaseSeoIndexabilityPolicy.js +56 -0
- package/dist/src/common/rules/BaseFilterKeyValueRule.d.ts +11 -0
- package/dist/src/common/rules/BaseFilterKeyValueRule.js +28 -0
- package/dist/src/common/rules/IndexablePageNumberRule.d.ts +9 -0
- package/dist/src/common/rules/IndexablePageNumberRule.js +17 -0
- package/dist/src/common/rules/NoFiltersSelectedRule.d.ts +9 -0
- package/dist/src/common/rules/NoFiltersSelectedRule.js +17 -0
- package/dist/src/common/rules/OnlineAttendanceRule.d.ts +6 -0
- package/dist/src/common/rules/OnlineAttendanceRule.js +14 -0
- package/dist/src/common/rules/OnlyFiltersSelectedRule.d.ts +12 -0
- package/dist/src/common/rules/OnlyFiltersSelectedRule.js +30 -0
- package/dist/src/common/rules/SingleValueSelectedForFilterRule.d.ts +12 -0
- package/dist/src/common/rules/SingleValueSelectedForFilterRule.js +24 -0
- package/dist/src/enums/DependencyTypes.d.ts +4 -0
- package/dist/src/enums/DependencyTypes.js +5 -0
- package/dist/src/enums/FilterCombinations.d.ts +52 -0
- package/dist/src/enums/FilterCombinations.js +53 -0
- package/dist/src/enums/SortingOptions.d.ts +4 -0
- package/dist/src/enums/SortingOptions.js +5 -0
- package/dist/src/errors/DependencyMissingError.d.ts +3 -0
- package/dist/src/errors/DependencyMissingError.js +5 -0
- package/dist/src/errors/InvalidDependencyTypeError.d.ts +3 -0
- package/dist/src/errors/InvalidDependencyTypeError.js +5 -0
- package/dist/src/errors/InvalidFilterValueError.d.ts +4 -0
- package/dist/src/errors/InvalidFilterValueError.js +5 -0
- package/dist/src/organisations/IOrganisationSearchApplicationState.d.ts +5 -0
- package/dist/src/organisations/IOrganisationSearchApplicationState.js +1 -0
- package/dist/src/organisations/ISeoSortingState.d.ts +4 -0
- package/dist/src/organisations/ISeoSortingState.js +1 -0
- package/dist/src/organisations/SearchIndexabilityManager.d.ts +12 -0
- package/dist/src/organisations/SearchIndexabilityManager.js +42 -0
- package/dist/src/organisations/index.d.ts +4 -0
- package/dist/src/organisations/index.js +4 -0
- package/dist/src/organisations/policies/OrganisationsSeoIndexabilityPolicy.d.ts +19 -0
- package/dist/src/organisations/policies/OrganisationsSeoIndexabilityPolicy.js +49 -0
- package/dist/src/organisations/policies/RankedOrganisationsSeoIndexabilityPolicy.d.ts +9 -0
- package/dist/src/organisations/policies/RankedOrganisationsSeoIndexabilityPolicy.js +22 -0
- package/dist/src/organisations/policies/index.d.ts +18 -0
- package/dist/src/organisations/policies/index.js +18 -0
- package/dist/src/organisations/policies/our-picks/Area.d.ts +13 -0
- package/dist/src/organisations/policies/our-picks/Area.js +35 -0
- package/dist/src/organisations/policies/our-picks/AreaAttendance.d.ts +15 -0
- package/dist/src/organisations/policies/our-picks/AreaAttendance.js +45 -0
- package/dist/src/organisations/policies/our-picks/Attendance.d.ts +14 -0
- package/dist/src/organisations/policies/our-picks/Attendance.js +33 -0
- package/dist/src/organisations/policies/our-picks/Continent.d.ts +13 -0
- package/dist/src/organisations/policies/our-picks/Continent.js +31 -0
- package/dist/src/organisations/policies/our-picks/Country.d.ts +13 -0
- package/dist/src/organisations/policies/our-picks/Country.js +28 -0
- package/dist/src/organisations/policies/our-picks/CountryAttendance.d.ts +15 -0
- package/dist/src/organisations/policies/our-picks/CountryAttendance.js +43 -0
- package/dist/src/organisations/policies/our-picks/Unfiltered.d.ts +12 -0
- package/dist/src/organisations/policies/our-picks/Unfiltered.js +16 -0
- package/dist/src/organisations/policies/ranked/RankedArea.d.ts +13 -0
- package/dist/src/organisations/policies/ranked/RankedArea.js +36 -0
- package/dist/src/organisations/policies/ranked/RankedAreaDiscipline.d.ts +14 -0
- package/dist/src/organisations/policies/ranked/RankedAreaDiscipline.js +44 -0
- package/dist/src/organisations/policies/ranked/RankedAttendance.d.ts +14 -0
- package/dist/src/organisations/policies/ranked/RankedAttendance.js +34 -0
- package/dist/src/organisations/policies/ranked/RankedAttendanceDiscipline.d.ts +14 -0
- package/dist/src/organisations/policies/ranked/RankedAttendanceDiscipline.js +42 -0
- package/dist/src/organisations/policies/ranked/RankedContinent.d.ts +13 -0
- package/dist/src/organisations/policies/ranked/RankedContinent.js +32 -0
- package/dist/src/organisations/policies/ranked/RankedContinentAttendance.d.ts +15 -0
- package/dist/src/organisations/policies/ranked/RankedContinentAttendance.js +44 -0
- package/dist/src/organisations/policies/ranked/RankedCountry.d.ts +13 -0
- package/dist/src/organisations/policies/ranked/RankedCountry.js +29 -0
- package/dist/src/organisations/policies/ranked/RankedCountryAttendance.d.ts +14 -0
- package/dist/src/organisations/policies/ranked/RankedCountryAttendance.js +42 -0
- package/dist/src/organisations/policies/ranked/RankedCountryDiscipline.d.ts +13 -0
- package/dist/src/organisations/policies/ranked/RankedCountryDiscipline.js +40 -0
- package/dist/src/organisations/policies/ranked/RankedDiscipline.d.ts +13 -0
- package/dist/src/organisations/policies/ranked/RankedDiscipline.js +32 -0
- package/dist/src/organisations/policies/ranked/RankedUnfiltered.d.ts +12 -0
- package/dist/src/organisations/policies/ranked/RankedUnfiltered.js +21 -0
- package/dist/src/organisations/rules/AtLeastSevenResultsRule.d.ts +15 -0
- package/dist/src/organisations/rules/AtLeastSevenResultsRule.js +30 -0
- package/dist/src/organisations/rules/AtLeastTwoRankedResultsRule.d.ts +13 -0
- package/dist/src/organisations/rules/AtLeastTwoRankedResultsRule.js +26 -0
- package/dist/src/organisations/rules/BaseSearchVolumeOrganisationsRule.d.ts +14 -0
- package/dist/src/organisations/rules/BaseSearchVolumeOrganisationsRule.js +33 -0
- package/dist/src/organisations/rules/ContinentIsEuropeRule.d.ts +6 -0
- package/dist/src/organisations/rules/ContinentIsEuropeRule.js +15 -0
- package/dist/src/organisations/rules/NoFiltersSelectedRule.d.ts +9 -0
- package/dist/src/organisations/rules/NoFiltersSelectedRule.js +17 -0
- package/dist/src/organisations/rules/SearchVolumeAreasAttendanceRule.d.ts +6 -0
- package/dist/src/organisations/rules/SearchVolumeAreasAttendanceRule.js +17 -0
- package/dist/src/organisations/rules/SearchVolumeAreasDisciplineRule.d.ts +6 -0
- package/dist/src/organisations/rules/SearchVolumeAreasDisciplineRule.js +18 -0
- package/dist/src/organisations/rules/SearchVolumeCountriesAttendanceRule.d.ts +6 -0
- package/dist/src/organisations/rules/SearchVolumeCountriesAttendanceRule.js +17 -0
- package/dist/src/organisations/types/IOrganisationSearchDependencies.d.ts +9 -0
- package/dist/src/organisations/types/IOrganisationSearchDependencies.js +1 -0
- package/dist/src/organisations/types/IOrganisationsSeoDependencies.d.ts +3 -0
- package/dist/src/organisations/types/IOrganisationsSeoDependencies.js +1 -0
- package/dist/src/organisations/types/IOrganisationsSitemapDependencies.d.ts +9 -0
- package/dist/src/organisations/types/IOrganisationsSitemapDependencies.js +1 -0
- package/dist/src/organisations/types.d.ts +6 -0
- package/dist/src/organisations/types.js +6 -0
- package/dist/src/presenters/AreaPresenter.d.ts +12 -0
- package/dist/src/presenters/AreaPresenter.js +35 -0
- package/dist/src/presenters/AttendancePresenter.d.ts +11 -0
- package/dist/src/presenters/AttendancePresenter.js +23 -0
- package/dist/src/presenters/ContinentPresenter.d.ts +12 -0
- package/dist/src/presenters/ContinentPresenter.js +33 -0
- package/dist/src/presenters/CountryPresenter.d.ts +12 -0
- package/dist/src/presenters/CountryPresenter.js +38 -0
- package/dist/src/presenters/DegreePresenter.d.ts +12 -0
- package/dist/src/presenters/DegreePresenter.js +50 -0
- package/dist/src/presenters/DisciplinePresenter.d.ts +12 -0
- package/dist/src/presenters/DisciplinePresenter.js +33 -0
- package/dist/src/presenters/DurationPresenter.d.ts +15 -0
- package/dist/src/presenters/DurationPresenter.js +47 -0
- package/dist/src/presenters/EducationalFormPresenter.d.ts +12 -0
- package/dist/src/presenters/EducationalFormPresenter.js +45 -0
- package/dist/src/presenters/FormatPresenter.d.ts +11 -0
- package/dist/src/presenters/FormatPresenter.js +24 -0
- package/dist/src/presenters/SpecialProgrammesPresenter.d.ts +11 -0
- package/dist/src/presenters/SpecialProgrammesPresenter.js +27 -0
- package/dist/src/presenters/TuitionFeePresenter.d.ts +11 -0
- package/dist/src/presenters/TuitionFeePresenter.js +23 -0
- package/dist/src/presenters/fragments/IAreaFragment.d.ts +4 -0
- package/dist/src/presenters/fragments/IAreaFragment.js +1 -0
- package/dist/src/presenters/fragments/ICountryFragment.d.ts +4 -0
- package/dist/src/presenters/fragments/ICountryFragment.js +1 -0
- package/dist/src/presenters/fragments/IFragment.d.ts +4 -0
- package/dist/src/presenters/fragments/IFragment.js +1 -0
- package/dist/src/programmes/BaseProgrammeFilterKeyValueRule.d.ts +6 -0
- package/dist/src/programmes/BaseProgrammeFilterKeyValueRule.js +6 -0
- package/dist/src/programmes/BaseProgrammeRule.d.ts +10 -0
- package/dist/src/programmes/BaseProgrammeRule.js +5 -0
- package/dist/src/programmes/IProgrammeRule.d.ts +5 -0
- package/dist/src/programmes/IProgrammeRule.js +1 -0
- package/dist/src/programmes/ProgrammesBaseIndexabilityPolicy.d.ts +15 -0
- package/dist/src/programmes/ProgrammesBaseIndexabilityPolicy.js +42 -0
- package/dist/src/programmes/SearchIndexabilityManager.d.ts +12 -0
- package/dist/src/programmes/SearchIndexabilityManager.js +58 -0
- package/dist/src/programmes/policies/Area.d.ts +15 -0
- package/dist/src/programmes/policies/Area.js +40 -0
- package/dist/src/programmes/policies/Attendance.d.ts +16 -0
- package/dist/src/programmes/policies/Attendance.js +38 -0
- package/dist/src/programmes/policies/AttendanceDegree.d.ts +17 -0
- package/dist/src/programmes/policies/AttendanceDegree.js +48 -0
- package/dist/src/programmes/policies/Continent.d.ts +15 -0
- package/dist/src/programmes/policies/Continent.js +36 -0
- package/dist/src/programmes/policies/ContinentTuitionFee.d.ts +16 -0
- package/dist/src/programmes/policies/ContinentTuitionFee.js +46 -0
- package/dist/src/programmes/policies/Country.d.ts +15 -0
- package/dist/src/programmes/policies/Country.js +33 -0
- package/dist/src/programmes/policies/CountryAttendance.d.ts +16 -0
- package/dist/src/programmes/policies/CountryAttendance.js +46 -0
- package/dist/src/programmes/policies/CountryAttendanceDegree.d.ts +17 -0
- package/dist/src/programmes/policies/CountryAttendanceDegree.js +55 -0
- package/dist/src/programmes/policies/CountryDegree.d.ts +16 -0
- package/dist/src/programmes/policies/CountryDegree.js +46 -0
- package/dist/src/programmes/policies/CountryDuration.d.ts +16 -0
- package/dist/src/programmes/policies/CountryDuration.js +46 -0
- package/dist/src/programmes/policies/CountryDurationDegree.d.ts +17 -0
- package/dist/src/programmes/policies/CountryDurationDegree.js +55 -0
- package/dist/src/programmes/policies/CountryEducationalForm.d.ts +16 -0
- package/dist/src/programmes/policies/CountryEducationalForm.js +47 -0
- package/dist/src/programmes/policies/CountryFormat.d.ts +16 -0
- package/dist/src/programmes/policies/CountryFormat.js +46 -0
- package/dist/src/programmes/policies/CountryTuitionFee.d.ts +16 -0
- package/dist/src/programmes/policies/CountryTuitionFee.js +46 -0
- package/dist/src/programmes/policies/Degree.d.ts +15 -0
- package/dist/src/programmes/policies/Degree.js +38 -0
- package/dist/src/programmes/policies/DegreeAttendanceDiscipline.d.ts +16 -0
- package/dist/src/programmes/policies/DegreeAttendanceDiscipline.js +63 -0
- package/dist/src/programmes/policies/DegreeCountryAttendance.d.ts +16 -0
- package/dist/src/programmes/policies/DegreeCountryAttendance.js +88 -0
- package/dist/src/programmes/policies/DegreeCountryDiscipline.d.ts +16 -0
- package/dist/src/programmes/policies/DegreeCountryDiscipline.js +71 -0
- package/dist/src/programmes/policies/DegreeCountryTuitionFee.d.ts +16 -0
- package/dist/src/programmes/policies/DegreeCountryTuitionFee.js +73 -0
- package/dist/src/programmes/policies/Discipline.d.ts +15 -0
- package/dist/src/programmes/policies/Discipline.js +36 -0
- package/dist/src/programmes/policies/DisciplineArea.d.ts +15 -0
- package/dist/src/programmes/policies/DisciplineArea.js +46 -0
- package/dist/src/programmes/policies/DisciplineAttendance.d.ts +16 -0
- package/dist/src/programmes/policies/DisciplineAttendance.js +46 -0
- package/dist/src/programmes/policies/DisciplineContinent.d.ts +15 -0
- package/dist/src/programmes/policies/DisciplineContinent.js +44 -0
- package/dist/src/programmes/policies/DisciplineCountry.d.ts +15 -0
- package/dist/src/programmes/policies/DisciplineCountry.js +44 -0
- package/dist/src/programmes/policies/DisciplineCountryEducationalForm.d.ts +16 -0
- package/dist/src/programmes/policies/DisciplineCountryEducationalForm.js +53 -0
- package/dist/src/programmes/policies/DisciplineDegree.d.ts +16 -0
- package/dist/src/programmes/policies/DisciplineDegree.js +46 -0
- package/dist/src/programmes/policies/DisciplineDuration.d.ts +16 -0
- package/dist/src/programmes/policies/DisciplineDuration.js +46 -0
- package/dist/src/programmes/policies/DisciplineEducationalForm.d.ts +16 -0
- package/dist/src/programmes/policies/DisciplineEducationalForm.js +47 -0
- package/dist/src/programmes/policies/DisciplineFormat.d.ts +16 -0
- package/dist/src/programmes/policies/DisciplineFormat.js +46 -0
- package/dist/src/programmes/policies/DisciplineTuitionFee.d.ts +16 -0
- package/dist/src/programmes/policies/DisciplineTuitionFee.js +46 -0
- package/dist/src/programmes/policies/DisciplineTuitionFeeAttendance.d.ts +17 -0
- package/dist/src/programmes/policies/DisciplineTuitionFeeAttendance.js +54 -0
- package/dist/src/programmes/policies/SpecialProgrammes.d.ts +16 -0
- package/dist/src/programmes/policies/SpecialProgrammes.js +38 -0
- package/dist/src/programmes/policies/TuitionFee.d.ts +15 -0
- package/dist/src/programmes/policies/TuitionFee.js +32 -0
- package/dist/src/programmes/policies/Unfiltered.d.ts +13 -0
- package/dist/src/programmes/policies/Unfiltered.js +19 -0
- package/dist/src/programmes/policies/index.d.ts +34 -0
- package/dist/src/programmes/policies/index.js +34 -0
- package/dist/src/programmes/rules/AffordableTuitionFeeRule.d.ts +6 -0
- package/dist/src/programmes/rules/AffordableTuitionFeeRule.js +17 -0
- package/dist/src/programmes/rules/AtLeastSevenResultsRule.d.ts +15 -0
- package/dist/src/programmes/rules/AtLeastSevenResultsRule.js +30 -0
- package/dist/src/programmes/rules/DegreeAttendanceDisciplineRule.d.ts +11 -0
- package/dist/src/programmes/rules/DegreeAttendanceDisciplineRule.js +44 -0
- package/dist/src/programmes/rules/DegreeAttendanceDisciplineSpecificRule.d.ts +11 -0
- package/dist/src/programmes/rules/DegreeAttendanceDisciplineSpecificRule.js +39 -0
- package/dist/src/programmes/rules/DegreeCountryAttendanceSpecificRule.d.ts +14 -0
- package/dist/src/programmes/rules/DegreeCountryAttendanceSpecificRule.js +76 -0
- package/dist/src/programmes/rules/DegreeCountryDisciplineSpecificRule.d.ts +11 -0
- package/dist/src/programmes/rules/DegreeCountryDisciplineSpecificRule.js +76 -0
- package/dist/src/programmes/rules/DegreeCountryTuitionFeeSpecificRule.d.ts +12 -0
- package/dist/src/programmes/rules/DegreeCountryTuitionFeeSpecificRule.js +62 -0
- package/dist/src/programmes/rules/DegreeDisciplineRule.d.ts +16 -0
- package/dist/src/programmes/rules/DegreeDisciplineRule.js +189 -0
- package/dist/src/programmes/rules/ErasmusOrJointSpecialProgrammesRule.d.ts +9 -0
- package/dist/src/programmes/rules/ErasmusOrJointSpecialProgrammesRule.js +28 -0
- package/dist/src/programmes/rules/IndexableDegreeRule.d.ts +10 -0
- package/dist/src/programmes/rules/IndexableDegreeRule.js +53 -0
- package/dist/src/programmes/rules/IndexableDurationRule.d.ts +12 -0
- package/dist/src/programmes/rules/IndexableDurationRule.js +37 -0
- package/dist/src/programmes/rules/IndexableEducationalFormRule.d.ts +10 -0
- package/dist/src/programmes/rules/IndexableEducationalFormRule.js +34 -0
- package/dist/src/programmes/rules/IndexablePageNumberRule.d.ts +9 -0
- package/dist/src/programmes/rules/IndexablePageNumberRule.js +17 -0
- package/dist/src/programmes/rules/MbaDegreeRule.d.ts +6 -0
- package/dist/src/programmes/rules/MbaDegreeRule.js +15 -0
- package/dist/src/programmes/rules/MbaOrMscDegreeRule.d.ts +9 -0
- package/dist/src/programmes/rules/MbaOrMscDegreeRule.js +26 -0
- package/dist/src/programmes/rules/NotDistanceLearningPortalRule.d.ts +11 -0
- package/dist/src/programmes/rules/NotDistanceLearningPortalRule.js +28 -0
- package/dist/src/programmes/rules/OneYearDurationRule.d.ts +6 -0
- package/dist/src/programmes/rules/OneYearDurationRule.js +15 -0
- package/dist/src/programmes/rules/PartTimeFormatRule.d.ts +6 -0
- package/dist/src/programmes/rules/PartTimeFormatRule.js +15 -0
- package/dist/src/programmes/types/IProgrammeSearchApplicationState.d.ts +4 -0
- package/dist/src/programmes/types/IProgrammeSearchApplicationState.js +1 -0
- package/dist/src/programmes/types/IProgrammeSearchDependencies.d.ts +7 -0
- package/dist/src/programmes/types/IProgrammeSearchDependencies.js +1 -0
- package/dist/src/programmes/types/IProgrammeSearchSitemapDependencies.d.ts +5 -0
- package/dist/src/programmes/types/IProgrammeSearchSitemapDependencies.js +1 -0
- package/dist/src/programmes/types/IProgrammeSeoDependencies.d.ts +3 -0
- package/dist/src/programmes/types/IProgrammeSeoDependencies.js +1 -0
- package/dist/src/programmes/types/IProgrammeSitemapDependencies.d.ts +7 -0
- package/dist/src/programmes/types/IProgrammeSitemapDependencies.js +1 -0
- package/dist/src/programmes/types/IProgrammeSitemapUrlGenerator.d.ts +5 -0
- package/dist/src/programmes/types/IProgrammeSitemapUrlGenerator.js +1 -0
- package/dist/src/scholarships/SearchIndexabilityManager.d.ts +11 -0
- package/dist/src/scholarships/SearchIndexabilityManager.js +33 -0
- package/dist/src/scholarships/index.d.ts +3 -0
- package/dist/src/scholarships/index.js +3 -0
- package/dist/src/scholarships/policies/Area.d.ts +13 -0
- package/dist/src/scholarships/policies/Area.js +37 -0
- package/dist/src/scholarships/policies/Country.d.ts +12 -0
- package/dist/src/scholarships/policies/Country.js +31 -0
- package/dist/src/scholarships/policies/Discipline.d.ts +12 -0
- package/dist/src/scholarships/policies/Discipline.js +31 -0
- package/dist/src/scholarships/policies/DisciplineCountry.d.ts +12 -0
- package/dist/src/scholarships/policies/DisciplineCountry.js +39 -0
- package/dist/src/scholarships/policies/ScholarshipSeoIndexabilityPolicy.d.ts +7 -0
- package/dist/src/scholarships/policies/ScholarshipSeoIndexabilityPolicy.js +7 -0
- package/dist/src/scholarships/policies/Unfiltered.d.ts +10 -0
- package/dist/src/scholarships/policies/Unfiltered.js +16 -0
- package/dist/src/scholarships/policies/UniversityCountry.d.ts +11 -0
- package/dist/src/scholarships/policies/UniversityCountry.js +41 -0
- package/dist/src/scholarships/rules/ExceptAustaliaAreasRule.d.ts +14 -0
- package/dist/src/scholarships/rules/ExceptAustaliaAreasRule.js +42 -0
- package/dist/src/scholarships/rules/SearchVolumeAreasRule.d.ts +12 -0
- package/dist/src/scholarships/rules/SearchVolumeAreasRule.js +32 -0
- package/dist/src/scholarships/rules/SearchVolumeCountriesDisciplinesRule.d.ts +14 -0
- package/dist/src/scholarships/rules/SearchVolumeCountriesDisciplinesRule.js +43 -0
- package/dist/src/scholarships/rules/SearchVolumeCountriesRule.d.ts +12 -0
- package/dist/src/scholarships/rules/SearchVolumeCountriesRule.js +32 -0
- package/dist/src/scholarships/rules/SearchVolumeDisciplinesRule.d.ts +12 -0
- package/dist/src/scholarships/rules/SearchVolumeDisciplinesRule.js +32 -0
- package/dist/src/scholarships/rules/files/search-volume.json +39334 -0
- package/dist/src/scholarships/types/IScholarshipSeoDependencies.d.ts +3 -0
- package/dist/src/scholarships/types/IScholarshipSeoDependencies.js +1 -0
- package/dist/src/scholarships/types/IScholarshipSitemapDependencies.d.ts +5 -0
- package/dist/src/scholarships/types/IScholarshipSitemapDependencies.js +1 -0
- package/dist/src/scholarships/types.d.ts +5 -0
- package/dist/src/scholarships/types.js +5 -0
- package/dist/src/sitemap-generator/BaseSitemapUrlGeneratorManager.d.ts +14 -0
- package/dist/src/sitemap-generator/BaseSitemapUrlGeneratorManager.js +26 -0
- package/dist/src/sitemap-generator/IOrganisation.d.ts +6 -0
- package/dist/src/sitemap-generator/IOrganisation.js +1 -0
- package/dist/src/sitemap-generator/IOrganisationsClient.d.ts +4 -0
- package/dist/src/sitemap-generator/IOrganisationsClient.js +1 -0
- package/dist/src/sitemap-generator/IRankingApiClient.d.ts +4 -0
- package/dist/src/sitemap-generator/IRankingApiClient.js +1 -0
- package/dist/src/sitemap-generator/ISearchApiClient.d.ts +5 -0
- package/dist/src/sitemap-generator/ISearchApiClient.js +1 -0
- package/dist/src/sitemap-generator/ISitemapUrlGeneratorManager.d.ts +9 -0
- package/dist/src/sitemap-generator/ISitemapUrlGeneratorManager.js +1 -0
- package/dist/src/sitemap-generator/OrganisationsSitemapUrlGeneratorManager.d.ts +14 -0
- package/dist/src/sitemap-generator/OrganisationsSitemapUrlGeneratorManager.js +51 -0
- package/dist/src/sitemap-generator/ProgrammesSitemapUrlGeneratorManager.d.ts +12 -0
- package/dist/src/sitemap-generator/ProgrammesSitemapUrlGeneratorManager.js +77 -0
- package/dist/src/sitemap-generator/ScholarshipsSitemapUrlGeneratorManager.d.ts +9 -0
- package/dist/src/sitemap-generator/ScholarshipsSitemapUrlGeneratorManager.js +28 -0
- package/dist/src/sitemap-generator/index.d.ts +0 -0
- package/dist/src/sitemap-generator/index.js +1 -0
- package/dist/src/structured-data/ProgrammeStructuredDataFactory.d.ts +18 -0
- package/dist/src/structured-data/ProgrammeStructuredDataFactory.js +91 -0
- package/dist/src/structured-data/SearchStructuredDataFactory.d.ts +34 -0
- package/dist/src/structured-data/SearchStructuredDataFactory.js +144 -0
- package/dist/src/structured-data/dto/BreadcrumbDTO.d.ts +5 -0
- package/dist/src/structured-data/dto/BreadcrumbDTO.js +1 -0
- package/dist/src/structured-data/dto/EntityDTO.d.ts +7 -0
- package/dist/src/structured-data/dto/EntityDTO.js +1 -0
- package/dist/src/structured-data/dto/FAQItemDto.d.ts +4 -0
- package/dist/src/structured-data/dto/FAQItemDto.js +1 -0
- package/dist/src/structured-data/dto/OfferDTO.d.ts +5 -0
- package/dist/src/structured-data/dto/OfferDTO.js +1 -0
- package/dist/src/structured-data/dto/ReviewRatingDTO.d.ts +4 -0
- package/dist/src/structured-data/dto/ReviewRatingDTO.js +1 -0
- package/dist/src/structured-data/dto/index.d.ts +5 -0
- package/dist/src/structured-data/dto/index.js +5 -0
- package/dist/src/structured-data/index.d.ts +2 -0
- package/dist/src/structured-data/index.js +2 -0
- package/dist/src/structured-data/interface/StructuredDataCurrencyConversionService.d.ts +3 -0
- package/dist/src/structured-data/interface/StructuredDataCurrencyConversionService.js +1 -0
- package/dist/structured-data-seo/index.d.ts +1 -0
- package/dist/structured-data-seo/index.js +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export var FilterCombinations;
|
|
2
|
+
(function (FilterCombinations) {
|
|
3
|
+
FilterCombinations["AREA"] = "area";
|
|
4
|
+
FilterCombinations["AREA_ATTENDANCE"] = "areaAttendance";
|
|
5
|
+
FilterCombinations["AREA_DISCIPLINE"] = "areaDiscipline";
|
|
6
|
+
FilterCombinations["COUNTRY"] = "country";
|
|
7
|
+
FilterCombinations["DEGREE"] = "degree";
|
|
8
|
+
FilterCombinations["COUNTRY_DEGREE"] = "countryDegree";
|
|
9
|
+
FilterCombinations["COUNTRY_DURATION"] = "countryDuration";
|
|
10
|
+
FilterCombinations["COUNTRY_FORMAT"] = "countryFormat";
|
|
11
|
+
FilterCombinations["COUNTRY_TUITION_FEE"] = "countryTuitionFee";
|
|
12
|
+
FilterCombinations["COUNTRY_EDUCATIONAL_FORM"] = "countryEducationalForm";
|
|
13
|
+
FilterCombinations["COUNTRY_ATTENDANCE_DEGREE"] = "countryAttendanceDegree";
|
|
14
|
+
FilterCombinations["COUNTRY_DURATION_DEGREE"] = "countryDurationDegree";
|
|
15
|
+
FilterCombinations["DISCIPLINE_AREA"] = "disciplineArea";
|
|
16
|
+
FilterCombinations["DISCIPLINE_ATTENDANCE"] = "disciplineAttendance";
|
|
17
|
+
FilterCombinations["DISCIPLINE_COUNTRY"] = "disciplineCountry";
|
|
18
|
+
FilterCombinations["DISCIPLINE_CONTINENT"] = "disciplineContinent";
|
|
19
|
+
FilterCombinations["DISCIPLINE_DEGREE"] = "disciplineDegree";
|
|
20
|
+
FilterCombinations["DISCIPLINE_DURATION"] = "disciplineDuration";
|
|
21
|
+
FilterCombinations["DISCIPLINE_FORMAT"] = "disciplineFormat";
|
|
22
|
+
FilterCombinations["DISCIPLINE_TUITION_FEE"] = "disciplineTuitionFee";
|
|
23
|
+
FilterCombinations["DISCIPLINE_EDUCATIONAL_FORM"] = "disciplineEducationalForm";
|
|
24
|
+
FilterCombinations["DISCIPLINE_TUITION_FEE_ATTENDANCE"] = "disciplineTuitionFeeAttendance";
|
|
25
|
+
FilterCombinations["DISCIPLINE_COUNTRY_EDUCATIONAL_FORM"] = "disciplineCountryEducationalForm";
|
|
26
|
+
FilterCombinations["DEGREE_COUNTRY_DISCIPLINE"] = "degreeCountryDiscipline";
|
|
27
|
+
FilterCombinations["DEGREE_ATTENDANCE_DISCIPLINE"] = "degreeAttendanceDiscipline";
|
|
28
|
+
FilterCombinations["DEGREE_COUNTRY_TUITION_FEE"] = "degreeCountryTuitionFee";
|
|
29
|
+
FilterCombinations["DEGREE_COUNTRY_ATTENDANCE"] = "degreeCountryAttendance";
|
|
30
|
+
FilterCombinations["DISCIPLINE"] = "discipline";
|
|
31
|
+
FilterCombinations["UNFILTERED"] = "unfiltered";
|
|
32
|
+
FilterCombinations["UNIVERSITY_COUNTRY"] = "universityCountry";
|
|
33
|
+
FilterCombinations["ATTENDANCE_DISCIPLINE"] = "attendancedDiscipline";
|
|
34
|
+
FilterCombinations["ATTENDANCE_DEGREE"] = "attendanceDegree";
|
|
35
|
+
FilterCombinations["CONTINENT_ATTENDANCE"] = "continentAttendance";
|
|
36
|
+
FilterCombinations["COUNTRY_ATTENDANCE"] = "countryAttendance";
|
|
37
|
+
FilterCombinations["ATTENDANCE"] = "attendance";
|
|
38
|
+
FilterCombinations["CONTINENT"] = "continent";
|
|
39
|
+
FilterCombinations["CONTINENT_TUITION_FEE"] = "continentTuitionFee";
|
|
40
|
+
FilterCombinations["TUITION_FEE"] = "tuitionFee";
|
|
41
|
+
FilterCombinations["SPECIAL_PROGRAMMES"] = "specialProgrammes";
|
|
42
|
+
FilterCombinations["RANKED_AREA"] = "rankedArea";
|
|
43
|
+
FilterCombinations["RANKED_AREA_DISCIPLINE"] = "rankedAreaDiscipline";
|
|
44
|
+
FilterCombinations["RANKED_ATTENDANCE"] = "rankedAttendance";
|
|
45
|
+
FilterCombinations["RANKED_ATTENDANCE_DISCIPLINE"] = "rankedAttendancedDiscipline";
|
|
46
|
+
FilterCombinations["RANKED_CONTINENT"] = "rankedContinent";
|
|
47
|
+
FilterCombinations["RANKED_CONTINENT_ATTENDANCE"] = "rankedContinentAttendance";
|
|
48
|
+
FilterCombinations["RANKED_COUNTRY"] = "rankedCountry";
|
|
49
|
+
FilterCombinations["RANKED_COUNTRY_ATTENDANCE"] = "rankedCountryAttendance";
|
|
50
|
+
FilterCombinations["RANKED_DISCIPLINE_COUNTRY"] = "rankedDisciplineCountry";
|
|
51
|
+
FilterCombinations["RANKED_DISCIPLINE"] = "rankedDiscipline";
|
|
52
|
+
FilterCombinations["RANKED_UNFILTERED"] = "rankedUnfiltered";
|
|
53
|
+
})(FilterCombinations || (FilterCombinations = {}));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ISearchIndexabilityManager } from '../common/ISearchIndexabilityManager';
|
|
2
|
+
import { ISeoIndexabilityPolicy } from '../common/ISeoIndexabilityPolicy';
|
|
3
|
+
import { IOrganisationSearchApplicationState } from './IOrganisationSearchApplicationState';
|
|
4
|
+
import { ISeoFilterState, ISeoInfoBase } from '../common';
|
|
5
|
+
import { PortalType } from '@studyportals/domain-client';
|
|
6
|
+
import { ISeoSortingState } from '../organisations/ISeoSortingState';
|
|
7
|
+
export declare class SearchIndexabilityManager implements ISearchIndexabilityManager {
|
|
8
|
+
policies: ISeoIndexabilityPolicy[];
|
|
9
|
+
constructor(portalType: PortalType, seoInfoBase: ISeoInfoBase, filterState: ISeoFilterState, sortingState: ISeoSortingState, applicationState: IOrganisationSearchApplicationState);
|
|
10
|
+
shouldIndex(): Promise<boolean>;
|
|
11
|
+
getPolicies(): ISeoIndexabilityPolicy[];
|
|
12
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { DependencyTypes } from '../enums/DependencyTypes';
|
|
2
|
+
import { Area, AreaAttendance, Attendance, Continent, Country, CountryAttendance, Unfiltered, RankedArea, RankedAreaDiscipline, RankedAttendance, RankedAttendanceDiscipline, RankedContinent, RankedContinentAttendance, RankedCountry, RankedCountryAttendance, RankedCountryDiscipline, RankedDiscipline, RankedUnfiltered } from '../organisations/policies';
|
|
3
|
+
export class SearchIndexabilityManager {
|
|
4
|
+
policies;
|
|
5
|
+
constructor(portalType, seoInfoBase, filterState, sortingState, applicationState) {
|
|
6
|
+
const dependencies = {
|
|
7
|
+
dependencyType: DependencyTypes.SEARCH,
|
|
8
|
+
seoInfoBase,
|
|
9
|
+
filterState,
|
|
10
|
+
sortingState,
|
|
11
|
+
applicationState,
|
|
12
|
+
portalType
|
|
13
|
+
};
|
|
14
|
+
this.policies = [
|
|
15
|
+
new Area(dependencies),
|
|
16
|
+
new AreaAttendance(dependencies),
|
|
17
|
+
new Attendance(dependencies),
|
|
18
|
+
new Continent(dependencies),
|
|
19
|
+
new Country(dependencies),
|
|
20
|
+
new CountryAttendance(dependencies),
|
|
21
|
+
new Unfiltered(dependencies),
|
|
22
|
+
new RankedArea(dependencies),
|
|
23
|
+
new RankedAreaDiscipline(dependencies),
|
|
24
|
+
new RankedAttendance(dependencies),
|
|
25
|
+
new RankedAttendanceDiscipline(dependencies),
|
|
26
|
+
new RankedContinent(dependencies),
|
|
27
|
+
new RankedContinentAttendance(dependencies),
|
|
28
|
+
new RankedCountry(dependencies),
|
|
29
|
+
new RankedCountryAttendance(dependencies),
|
|
30
|
+
new RankedCountryDiscipline(dependencies),
|
|
31
|
+
new RankedDiscipline(dependencies),
|
|
32
|
+
new RankedUnfiltered(dependencies)
|
|
33
|
+
];
|
|
34
|
+
}
|
|
35
|
+
async shouldIndex() {
|
|
36
|
+
const results = await Promise.all(this.policies.map((policy) => policy.shouldIndex()));
|
|
37
|
+
return results.some((result) => result);
|
|
38
|
+
}
|
|
39
|
+
getPolicies() {
|
|
40
|
+
return this.policies;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { PortalType } from '@studyportals/domain-client';
|
|
2
|
+
import { BaseSeoIndexabilityPolicy } from '../../common/policies/BaseSeoIndexabilityPolicy';
|
|
3
|
+
import { IOrganisationsSeoDependencies } from '../types/IOrganisationsSeoDependencies';
|
|
4
|
+
import { SortingOptions } from '../../enums/SortingOptions';
|
|
5
|
+
import { IRule } from '../../common/IRule';
|
|
6
|
+
export declare abstract class OrganisationsSeoIndexabilityPolicy extends BaseSeoIndexabilityPolicy<IOrganisationsSeoDependencies> {
|
|
7
|
+
protected readonly indexablePortalTypes: PortalType[];
|
|
8
|
+
protected abstract readonly sortingOption: SortingOptions;
|
|
9
|
+
protected abstract readonly baseRules: IRule[];
|
|
10
|
+
private additionalRules;
|
|
11
|
+
constructor(dependencies: IOrganisationsSeoDependencies);
|
|
12
|
+
protected get rules(): IRule[];
|
|
13
|
+
protected addRule(rule: IRule): void;
|
|
14
|
+
generateSitemapUrls(): Promise<string[]>;
|
|
15
|
+
protected isIndexable(): Promise<boolean>;
|
|
16
|
+
protected addResultsCountRule(): void;
|
|
17
|
+
protected getPathWithSortingOption(path: string): string;
|
|
18
|
+
private matchesSortingOption;
|
|
19
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { PortalType } from '@studyportals/domain-client';
|
|
2
|
+
import { BaseSeoIndexabilityPolicy } from '../../common/policies/BaseSeoIndexabilityPolicy';
|
|
3
|
+
import { IndexablePageNumberRule } from '../../common/rules/IndexablePageNumberRule';
|
|
4
|
+
import { AtLeastSevenResultsRule } from '../../organisations/rules/AtLeastSevenResultsRule';
|
|
5
|
+
export class OrganisationsSeoIndexabilityPolicy extends BaseSeoIndexabilityPolicy {
|
|
6
|
+
indexablePortalTypes = [PortalType.MASTER];
|
|
7
|
+
additionalRules = [];
|
|
8
|
+
constructor(dependencies) {
|
|
9
|
+
super(dependencies);
|
|
10
|
+
this.addResultsCountRule();
|
|
11
|
+
}
|
|
12
|
+
get rules() {
|
|
13
|
+
return [...this.baseRules, ...this.additionalRules, new IndexablePageNumberRule()];
|
|
14
|
+
}
|
|
15
|
+
addRule(rule) {
|
|
16
|
+
this.additionalRules.push(rule);
|
|
17
|
+
}
|
|
18
|
+
async generateSitemapUrls() {
|
|
19
|
+
if (this.indexablePortalTypes.includes(this.dependencies.portalType)) {
|
|
20
|
+
return super.generateSitemapUrls();
|
|
21
|
+
}
|
|
22
|
+
return [];
|
|
23
|
+
}
|
|
24
|
+
async isIndexable() {
|
|
25
|
+
const isIndexable = await super.isIndexable();
|
|
26
|
+
if (!isIndexable) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
return this.indexablePortalTypes.includes(this.dependencies.portalType) && this.matchesSortingOption();
|
|
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
|
+
}
|
|
42
|
+
getPathWithSortingOption(path) {
|
|
43
|
+
return path;
|
|
44
|
+
}
|
|
45
|
+
matchesSortingOption() {
|
|
46
|
+
const dependencies = this.dependencies;
|
|
47
|
+
return dependencies.sortingState.getSelectedOption() === this.sortingOption;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { PortalType } from '@studyportals/domain-client';
|
|
2
|
+
import { SortingOptions } from '../../enums/SortingOptions';
|
|
3
|
+
import { OrganisationsSeoIndexabilityPolicy } from './OrganisationsSeoIndexabilityPolicy';
|
|
4
|
+
export declare abstract class RankedOrganisationsSeoIndexabilityPolicy extends OrganisationsSeoIndexabilityPolicy {
|
|
5
|
+
protected readonly indexablePortalTypes: PortalType[];
|
|
6
|
+
protected readonly sortingOption: SortingOptions;
|
|
7
|
+
protected addResultsCountRule(): void;
|
|
8
|
+
protected getPathWithSortingOption(path: string): string;
|
|
9
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { PortalType } from '@studyportals/domain-client';
|
|
2
|
+
import { SortingOptions } from '../../enums/SortingOptions';
|
|
3
|
+
import { OrganisationsSeoIndexabilityPolicy } from './OrganisationsSeoIndexabilityPolicy';
|
|
4
|
+
import { AtLeastTwoRankedResultsRule } from '../rules/AtLeastTwoRankedResultsRule';
|
|
5
|
+
export class RankedOrganisationsSeoIndexabilityPolicy extends OrganisationsSeoIndexabilityPolicy {
|
|
6
|
+
indexablePortalTypes = [PortalType.MASTER];
|
|
7
|
+
sortingOption = SortingOptions.UNIVERSITY_META_RANKING;
|
|
8
|
+
addResultsCountRule() {
|
|
9
|
+
let rankedResultsCountRule;
|
|
10
|
+
if (super.isSitemapUrlGeneratorDependencies()) {
|
|
11
|
+
const dependencies = this.dependencies;
|
|
12
|
+
rankedResultsCountRule = new AtLeastTwoRankedResultsRule(dependencies.rankingApiClient);
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
rankedResultsCountRule = new AtLeastTwoRankedResultsRule();
|
|
16
|
+
}
|
|
17
|
+
this.addRule(rankedResultsCountRule);
|
|
18
|
+
}
|
|
19
|
+
getPathWithSortingOption(path) {
|
|
20
|
+
return 'rankings/' + path;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export * from './our-picks/Area';
|
|
2
|
+
export * from './our-picks/AreaAttendance';
|
|
3
|
+
export * from './our-picks/Attendance';
|
|
4
|
+
export * from './our-picks/Continent';
|
|
5
|
+
export * from './our-picks/Country';
|
|
6
|
+
export * from './our-picks/CountryAttendance';
|
|
7
|
+
export * from './our-picks/Unfiltered';
|
|
8
|
+
export * from './ranked/RankedArea';
|
|
9
|
+
export * from './ranked/RankedAreaDiscipline';
|
|
10
|
+
export * from './ranked/RankedAttendance';
|
|
11
|
+
export * from './ranked/RankedAttendanceDiscipline';
|
|
12
|
+
export * from './ranked/RankedContinent';
|
|
13
|
+
export * from './ranked/RankedContinentAttendance';
|
|
14
|
+
export * from './ranked/RankedCountry';
|
|
15
|
+
export * from './ranked/RankedCountryAttendance';
|
|
16
|
+
export * from './ranked/RankedCountryDiscipline';
|
|
17
|
+
export * from './ranked/RankedDiscipline';
|
|
18
|
+
export * from './ranked/RankedUnfiltered';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export * from './our-picks/Area';
|
|
2
|
+
export * from './our-picks/AreaAttendance';
|
|
3
|
+
export * from './our-picks/Attendance';
|
|
4
|
+
export * from './our-picks/Continent';
|
|
5
|
+
export * from './our-picks/Country';
|
|
6
|
+
export * from './our-picks/CountryAttendance';
|
|
7
|
+
export * from './our-picks/Unfiltered';
|
|
8
|
+
export * from './ranked/RankedArea';
|
|
9
|
+
export * from './ranked/RankedAreaDiscipline';
|
|
10
|
+
export * from './ranked/RankedAttendance';
|
|
11
|
+
export * from './ranked/RankedAttendanceDiscipline';
|
|
12
|
+
export * from './ranked/RankedContinent';
|
|
13
|
+
export * from './ranked/RankedContinentAttendance';
|
|
14
|
+
export * from './ranked/RankedCountry';
|
|
15
|
+
export * from './ranked/RankedCountryAttendance';
|
|
16
|
+
export * from './ranked/RankedCountryDiscipline';
|
|
17
|
+
export * from './ranked/RankedDiscipline';
|
|
18
|
+
export * from './ranked/RankedUnfiltered';
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { FilterCombinations } from '../../../enums/FilterCombinations';
|
|
2
|
+
import { SortingOptions } from '../../../enums/SortingOptions';
|
|
3
|
+
import { SingleValueSelectedForFilterRule } from '../../../common/rules/SingleValueSelectedForFilterRule';
|
|
4
|
+
import { OrganisationsSeoIndexabilityPolicy } from '../../../organisations/policies/OrganisationsSeoIndexabilityPolicy';
|
|
5
|
+
import { OnlyFiltersSelectedRule } from '../../../common/rules/OnlyFiltersSelectedRule';
|
|
6
|
+
export declare class Area extends OrganisationsSeoIndexabilityPolicy {
|
|
7
|
+
readonly name: string;
|
|
8
|
+
readonly description: string;
|
|
9
|
+
protected readonly sortingOption = SortingOptions.OUR_PICKS;
|
|
10
|
+
protected readonly baseRules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule)[];
|
|
11
|
+
protected generateUrls(): Promise<string[]>;
|
|
12
|
+
get filterCombination(): FilterCombinations;
|
|
13
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { FilterCombinations } from '../../../enums/FilterCombinations';
|
|
2
|
+
import { FilterKey } from '@studyportals/search-filters';
|
|
3
|
+
import { SortingOptions } from '../../../enums/SortingOptions';
|
|
4
|
+
import { SingleValueSelectedForFilterRule } from '../../../common/rules/SingleValueSelectedForFilterRule';
|
|
5
|
+
import { OrganisationsSeoIndexabilityPolicy } from '../../../organisations/policies/OrganisationsSeoIndexabilityPolicy';
|
|
6
|
+
import { OnlyFiltersSelectedRule } from '../../../common/rules/OnlyFiltersSelectedRule';
|
|
7
|
+
import { AreaPresenter } from '../../../presenters/AreaPresenter';
|
|
8
|
+
export class Area extends OrganisationsSeoIndexabilityPolicy {
|
|
9
|
+
name = 'Area Policy';
|
|
10
|
+
description = 'Controls indexing of pages filtered by geographic areas, ensuring only SEO-valuable regional content with sufficient search volume is indexed.';
|
|
11
|
+
sortingOption = SortingOptions.OUR_PICKS;
|
|
12
|
+
baseRules = [
|
|
13
|
+
new SingleValueSelectedForFilterRule(FilterKey.AREA),
|
|
14
|
+
new SingleValueSelectedForFilterRule(FilterKey.COUNTRY),
|
|
15
|
+
new OnlyFiltersSelectedRule([FilterKey.AREA, FilterKey.COUNTRY])
|
|
16
|
+
];
|
|
17
|
+
async generateUrls() {
|
|
18
|
+
const areaFragments = AreaPresenter.getInstance().getFragments();
|
|
19
|
+
const paths = [];
|
|
20
|
+
for (const area of areaFragments) {
|
|
21
|
+
const filterKeyValues = new Map([
|
|
22
|
+
[FilterKey.AREA, [area.id]],
|
|
23
|
+
[FilterKey.COUNTRY, [area.countryId]]
|
|
24
|
+
]);
|
|
25
|
+
const result = await this.checkRulesForSitemap(filterKeyValues);
|
|
26
|
+
if (result) {
|
|
27
|
+
paths.push(this.getPathWithSortingOption(area.path));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return paths;
|
|
31
|
+
}
|
|
32
|
+
get filterCombination() {
|
|
33
|
+
return FilterCombinations.AREA;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { OrganisationsSeoIndexabilityPolicy } from '../../../organisations/policies/OrganisationsSeoIndexabilityPolicy';
|
|
2
|
+
import { FilterCombinations } from '../../../enums/FilterCombinations';
|
|
3
|
+
import { SearchVolumeAreasAttendanceRule } from '../../../organisations/rules/SearchVolumeAreasAttendanceRule';
|
|
4
|
+
import { SortingOptions } from '../../../enums/SortingOptions';
|
|
5
|
+
import { SingleValueSelectedForFilterRule } from '../../../common/rules/SingleValueSelectedForFilterRule';
|
|
6
|
+
import { OnlyFiltersSelectedRule } from '../../../common/rules/OnlyFiltersSelectedRule';
|
|
7
|
+
import { OnlineAttendanceRule } from '../../../common/rules/OnlineAttendanceRule';
|
|
8
|
+
export declare class AreaAttendance extends OrganisationsSeoIndexabilityPolicy {
|
|
9
|
+
readonly name: string;
|
|
10
|
+
readonly description: string;
|
|
11
|
+
protected readonly sortingOption = SortingOptions.OUR_PICKS;
|
|
12
|
+
protected readonly baseRules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | OnlineAttendanceRule | SearchVolumeAreasAttendanceRule)[];
|
|
13
|
+
protected generateUrls(): Promise<string[]>;
|
|
14
|
+
get filterCombination(): FilterCombinations;
|
|
15
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { OrganisationsSeoIndexabilityPolicy } from '../../../organisations/policies/OrganisationsSeoIndexabilityPolicy';
|
|
2
|
+
import { FilterCombinations } from '../../../enums/FilterCombinations';
|
|
3
|
+
import { FilterKey } from '@studyportals/search-filters';
|
|
4
|
+
import { SearchVolumeAreasAttendanceRule } from '../../../organisations/rules/SearchVolumeAreasAttendanceRule';
|
|
5
|
+
import { SortingOptions } from '../../../enums/SortingOptions';
|
|
6
|
+
import { SingleValueSelectedForFilterRule } from '../../../common/rules/SingleValueSelectedForFilterRule';
|
|
7
|
+
import { OnlyFiltersSelectedRule } from '../../../common/rules/OnlyFiltersSelectedRule';
|
|
8
|
+
import { OnlineAttendanceRule } from '../../../common/rules/OnlineAttendanceRule';
|
|
9
|
+
import { AreaPresenter } from '../../../presenters/AreaPresenter';
|
|
10
|
+
import { AttendancePresenter } from '../../../presenters/AttendancePresenter';
|
|
11
|
+
export class AreaAttendance extends OrganisationsSeoIndexabilityPolicy {
|
|
12
|
+
name = 'Area Attendance Policy';
|
|
13
|
+
description = 'Manages indexability for pages filtered by both geographic area and attendance type, optimizing for region-specific study format combinations.';
|
|
14
|
+
sortingOption = SortingOptions.OUR_PICKS;
|
|
15
|
+
baseRules = [
|
|
16
|
+
new SingleValueSelectedForFilterRule(FilterKey.AREA),
|
|
17
|
+
new SingleValueSelectedForFilterRule(FilterKey.COUNTRY),
|
|
18
|
+
new SingleValueSelectedForFilterRule(FilterKey.DELIVERY_METHOD),
|
|
19
|
+
new OnlyFiltersSelectedRule([FilterKey.AREA, FilterKey.COUNTRY, FilterKey.DELIVERY_METHOD]),
|
|
20
|
+
new SearchVolumeAreasAttendanceRule(),
|
|
21
|
+
new OnlineAttendanceRule()
|
|
22
|
+
];
|
|
23
|
+
async generateUrls() {
|
|
24
|
+
const areaFragments = AreaPresenter.getInstance().getFragments();
|
|
25
|
+
const attendanceFragments = AttendancePresenter.getInstance().getFragments();
|
|
26
|
+
const paths = [];
|
|
27
|
+
for (const area of areaFragments) {
|
|
28
|
+
for (const attendance of attendanceFragments) {
|
|
29
|
+
const filterKeyValues = new Map([
|
|
30
|
+
[FilterKey.AREA, [area.id]],
|
|
31
|
+
[FilterKey.COUNTRY, [area.countryId]],
|
|
32
|
+
[FilterKey.DELIVERY_METHOD, [attendance.id]]
|
|
33
|
+
]);
|
|
34
|
+
const result = await this.checkRulesForSitemap(filterKeyValues);
|
|
35
|
+
if (result) {
|
|
36
|
+
paths.push(this.getPathWithSortingOption(`${attendance.path}/${area.path}`));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return paths;
|
|
41
|
+
}
|
|
42
|
+
get filterCombination() {
|
|
43
|
+
return FilterCombinations.AREA_ATTENDANCE;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { FilterCombinations } from '../../../enums/FilterCombinations';
|
|
2
|
+
import { SortingOptions } from '../../../enums/SortingOptions';
|
|
3
|
+
import { OrganisationsSeoIndexabilityPolicy } from '../../../organisations/policies/OrganisationsSeoIndexabilityPolicy';
|
|
4
|
+
import { SingleValueSelectedForFilterRule } from '../../../common/rules/SingleValueSelectedForFilterRule';
|
|
5
|
+
import { OnlyFiltersSelectedRule } from '../../../common/rules/OnlyFiltersSelectedRule';
|
|
6
|
+
import { OnlineAttendanceRule } from '../../../common/rules/OnlineAttendanceRule';
|
|
7
|
+
export declare class Attendance extends OrganisationsSeoIndexabilityPolicy {
|
|
8
|
+
readonly name: string;
|
|
9
|
+
readonly description: string;
|
|
10
|
+
protected readonly sortingOption = SortingOptions.OUR_PICKS;
|
|
11
|
+
protected readonly baseRules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | OnlineAttendanceRule)[];
|
|
12
|
+
protected generateUrls(): Promise<string[]>;
|
|
13
|
+
get filterCombination(): FilterCombinations;
|
|
14
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { FilterCombinations } from '../../../enums/FilterCombinations';
|
|
2
|
+
import { FilterKey } from '@studyportals/search-filters';
|
|
3
|
+
import { SortingOptions } from '../../../enums/SortingOptions';
|
|
4
|
+
import { OrganisationsSeoIndexabilityPolicy } from '../../../organisations/policies/OrganisationsSeoIndexabilityPolicy';
|
|
5
|
+
import { SingleValueSelectedForFilterRule } from '../../../common/rules/SingleValueSelectedForFilterRule';
|
|
6
|
+
import { OnlyFiltersSelectedRule } from '../../../common/rules/OnlyFiltersSelectedRule';
|
|
7
|
+
import { OnlineAttendanceRule } from '../../../common/rules/OnlineAttendanceRule';
|
|
8
|
+
import { AttendancePresenter } from '../../../presenters/AttendancePresenter';
|
|
9
|
+
export class Attendance extends OrganisationsSeoIndexabilityPolicy {
|
|
10
|
+
name = 'Attendance Policy';
|
|
11
|
+
description = 'Determines indexing rules for pages filtered by study format (online, on-campus, etc.), prioritizing formats with demonstrated search demand.';
|
|
12
|
+
sortingOption = SortingOptions.OUR_PICKS;
|
|
13
|
+
baseRules = [
|
|
14
|
+
new SingleValueSelectedForFilterRule(FilterKey.DELIVERY_METHOD),
|
|
15
|
+
new OnlyFiltersSelectedRule([FilterKey.DELIVERY_METHOD]),
|
|
16
|
+
new OnlineAttendanceRule()
|
|
17
|
+
];
|
|
18
|
+
async generateUrls() {
|
|
19
|
+
const attendanceFragments = AttendancePresenter.getInstance().getFragments();
|
|
20
|
+
const paths = [];
|
|
21
|
+
for (const attendance of attendanceFragments) {
|
|
22
|
+
const filterKeyValues = new Map([[FilterKey.DELIVERY_METHOD, [attendance.id]]]);
|
|
23
|
+
const result = await this.checkRulesForSitemap(filterKeyValues);
|
|
24
|
+
if (result) {
|
|
25
|
+
paths.push(this.getPathWithSortingOption(attendance.path));
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return paths;
|
|
29
|
+
}
|
|
30
|
+
get filterCombination() {
|
|
31
|
+
return FilterCombinations.ATTENDANCE;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { FilterCombinations } from '../../../enums/FilterCombinations';
|
|
2
|
+
import { SortingOptions } from '../../../enums/SortingOptions';
|
|
3
|
+
import { OrganisationsSeoIndexabilityPolicy } from '../../../organisations/policies/OrganisationsSeoIndexabilityPolicy';
|
|
4
|
+
import { SingleValueSelectedForFilterRule } from '../../../common/rules/SingleValueSelectedForFilterRule';
|
|
5
|
+
import { OnlyFiltersSelectedRule } from '../../../common/rules/OnlyFiltersSelectedRule';
|
|
6
|
+
export declare class Continent extends OrganisationsSeoIndexabilityPolicy {
|
|
7
|
+
readonly name: string;
|
|
8
|
+
readonly description: string;
|
|
9
|
+
protected readonly sortingOption = SortingOptions.OUR_PICKS;
|
|
10
|
+
protected readonly baseRules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule)[];
|
|
11
|
+
get filterCombination(): FilterCombinations;
|
|
12
|
+
protected generateUrls(): Promise<string[]>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { FilterCombinations } from '../../../enums/FilterCombinations';
|
|
2
|
+
import { FilterKey } from '@studyportals/search-filters';
|
|
3
|
+
import { SortingOptions } from '../../../enums/SortingOptions';
|
|
4
|
+
import { OrganisationsSeoIndexabilityPolicy } from '../../../organisations/policies/OrganisationsSeoIndexabilityPolicy';
|
|
5
|
+
import { SingleValueSelectedForFilterRule } from '../../../common/rules/SingleValueSelectedForFilterRule';
|
|
6
|
+
import { OnlyFiltersSelectedRule } from '../../../common/rules/OnlyFiltersSelectedRule';
|
|
7
|
+
import { ContinentPresenter } from '../../../presenters/ContinentPresenter';
|
|
8
|
+
export class Continent extends OrganisationsSeoIndexabilityPolicy {
|
|
9
|
+
name = 'Continent Policy';
|
|
10
|
+
description = 'Governs indexing of continent-level filtered pages, applying rules to index only continental regions with sufficient search volume and content density.';
|
|
11
|
+
sortingOption = SortingOptions.OUR_PICKS;
|
|
12
|
+
baseRules = [
|
|
13
|
+
new SingleValueSelectedForFilterRule(FilterKey.CONTINENT),
|
|
14
|
+
new OnlyFiltersSelectedRule([FilterKey.CONTINENT])
|
|
15
|
+
];
|
|
16
|
+
get filterCombination() {
|
|
17
|
+
return FilterCombinations.CONTINENT;
|
|
18
|
+
}
|
|
19
|
+
async generateUrls() {
|
|
20
|
+
const continentFragments = ContinentPresenter.getInstance().getFragments();
|
|
21
|
+
const paths = [];
|
|
22
|
+
for (const continent of continentFragments) {
|
|
23
|
+
const filterKeyValues = new Map([[FilterKey.CONTINENT, [continent.id]]]);
|
|
24
|
+
const result = await this.checkRulesForSitemap(filterKeyValues);
|
|
25
|
+
if (result) {
|
|
26
|
+
paths.push(this.getPathWithSortingOption(continent.path));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return paths;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { FilterCombinations } from '../../../enums/FilterCombinations';
|
|
2
|
+
import { SortingOptions } from '../../../enums/SortingOptions';
|
|
3
|
+
import { OrganisationsSeoIndexabilityPolicy } from '../../../organisations/policies/OrganisationsSeoIndexabilityPolicy';
|
|
4
|
+
import { SingleValueSelectedForFilterRule } from '../../../common/rules/SingleValueSelectedForFilterRule';
|
|
5
|
+
import { OnlyFiltersSelectedRule } from '../../../common/rules/OnlyFiltersSelectedRule';
|
|
6
|
+
export declare class Country extends OrganisationsSeoIndexabilityPolicy {
|
|
7
|
+
readonly name: string;
|
|
8
|
+
readonly description: string;
|
|
9
|
+
protected readonly sortingOption = SortingOptions.OUR_PICKS;
|
|
10
|
+
protected readonly baseRules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule)[];
|
|
11
|
+
get filterCombination(): FilterCombinations;
|
|
12
|
+
protected generateUrls(): Promise<string[]>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { FilterCombinations } from '../../../enums/FilterCombinations';
|
|
2
|
+
import { FilterKey } from '@studyportals/search-filters';
|
|
3
|
+
import { SortingOptions } from '../../../enums/SortingOptions';
|
|
4
|
+
import { OrganisationsSeoIndexabilityPolicy } from '../../../organisations/policies/OrganisationsSeoIndexabilityPolicy';
|
|
5
|
+
import { SingleValueSelectedForFilterRule } from '../../../common/rules/SingleValueSelectedForFilterRule';
|
|
6
|
+
import { OnlyFiltersSelectedRule } from '../../../common/rules/OnlyFiltersSelectedRule';
|
|
7
|
+
import { CountryPresenter } from '../../../presenters/CountryPresenter';
|
|
8
|
+
export class Country extends OrganisationsSeoIndexabilityPolicy {
|
|
9
|
+
name = 'Country Policy';
|
|
10
|
+
description = 'Manages indexing of country-specific pages, applying rules to index only countries with adequate search demand and relevant content availability.';
|
|
11
|
+
sortingOption = SortingOptions.OUR_PICKS;
|
|
12
|
+
baseRules = [new SingleValueSelectedForFilterRule(FilterKey.COUNTRY), new OnlyFiltersSelectedRule([FilterKey.COUNTRY])];
|
|
13
|
+
get filterCombination() {
|
|
14
|
+
return FilterCombinations.COUNTRY;
|
|
15
|
+
}
|
|
16
|
+
async generateUrls() {
|
|
17
|
+
const countryFragments = CountryPresenter.getInstance().getFragments();
|
|
18
|
+
const paths = [];
|
|
19
|
+
for (const country of countryFragments) {
|
|
20
|
+
const filterKeyValues = new Map([[FilterKey.COUNTRY, [country.id]]]);
|
|
21
|
+
const result = await this.checkRulesForSitemap(filterKeyValues);
|
|
22
|
+
if (result) {
|
|
23
|
+
paths.push(this.getPathWithSortingOption(country.path));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return paths;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { FilterCombinations } from '../../../enums/FilterCombinations';
|
|
2
|
+
import { SortingOptions } from '../../../enums/SortingOptions';
|
|
3
|
+
import { OrganisationsSeoIndexabilityPolicy } from '../../../organisations/policies/OrganisationsSeoIndexabilityPolicy';
|
|
4
|
+
import { SingleValueSelectedForFilterRule } from '../../../common/rules/SingleValueSelectedForFilterRule';
|
|
5
|
+
import { OnlyFiltersSelectedRule } from '../../../common/rules/OnlyFiltersSelectedRule';
|
|
6
|
+
import { OnlineAttendanceRule } from '../../../common/rules/OnlineAttendanceRule';
|
|
7
|
+
import { SearchVolumeCountriesAttendanceRule } from '../../../organisations/rules/SearchVolumeCountriesAttendanceRule';
|
|
8
|
+
export declare class CountryAttendance extends OrganisationsSeoIndexabilityPolicy {
|
|
9
|
+
readonly name: string;
|
|
10
|
+
readonly description: string;
|
|
11
|
+
protected readonly sortingOption = SortingOptions.OUR_PICKS;
|
|
12
|
+
protected readonly baseRules: (SingleValueSelectedForFilterRule | OnlyFiltersSelectedRule | OnlineAttendanceRule | SearchVolumeCountriesAttendanceRule)[];
|
|
13
|
+
get filterCombination(): FilterCombinations;
|
|
14
|
+
protected generateUrls(): Promise<string[]>;
|
|
15
|
+
}
|