@studyportals/fawkes 8.0.1-0 → 8.0.1-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +2 -2
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './scholarships-seo';
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './scholarships-seo';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ISeoInfoBase } from '../src/common/ISeoInfoBase';
|
|
2
|
+
import { ISeoFilterState } from '../src/common/ISeoFilterState';
|
|
3
|
+
import { IOrganisationSearchApplicationState, SearchIndexabilityManager, ISeoSortingState, types } from '../src/organisations';
|
|
4
|
+
export { ISeoInfoBase, ISeoFilterState, IOrganisationSearchApplicationState, SearchIndexabilityManager, ISeoSortingState, types };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { ISeoFilterState } from '../src/common/ISeoFilterState';
|
|
2
|
+
import { ISeoInfoBase } from '../src/common/ISeoInfoBase';
|
|
3
|
+
import { IProgrammeSearchApplicationState } from '../src/programmes/types/IProgrammeSearchApplicationState';
|
|
4
|
+
import { ISearchIndexabilityManager } from '../src/common/ISearchIndexabilityManager';
|
|
5
|
+
import { SearchIndexabilityManager } from '../src/programmes/SearchIndexabilityManager';
|
|
6
|
+
export { ISeoFilterState, ISeoInfoBase, ISearchIndexabilityManager, IProgrammeSearchApplicationState, SearchIndexabilityManager };
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ISeoIndexabilityPolicy } from '../src/common/ISeoIndexabilityPolicy';
|
|
2
|
+
import { ISeoFilterState, ISearchApplicationState, ISearchIndexabilityManager, ISeoInfoBase } from '../src/common';
|
|
3
|
+
import { SearchIndexabilityManager } from '../src/scholarships/SearchIndexabilityManager';
|
|
4
|
+
import { types } from '../src/scholarships/types';
|
|
5
|
+
export { ISeoFilterState, ISeoIndexabilityPolicy, ISearchApplicationState, ISearchIndexabilityManager, ISeoInfoBase, SearchIndexabilityManager, types };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export { IOrganisationsClient } from '../src/sitemap-generator/IOrganisationsClient';
|
|
2
|
+
export { IOrganisation } from '../src/sitemap-generator/IOrganisation';
|
|
3
|
+
export { IRankingApiClient } from '../src/sitemap-generator/IRankingApiClient';
|
|
4
|
+
export { ISearchApiClient } from '../src/sitemap-generator/ISearchApiClient';
|
|
5
|
+
export { ISitemapUrlGeneratorManager } from '../src/sitemap-generator/ISitemapUrlGeneratorManager';
|
|
6
|
+
export { OrganisationsSitemapUrlGeneratorManager } from '../src/sitemap-generator/OrganisationsSitemapUrlGeneratorManager';
|
|
7
|
+
export { ScholarshipsSitemapUrlGeneratorManager } from '../src/sitemap-generator/ScholarshipsSitemapUrlGeneratorManager';
|
|
8
|
+
export { ProgrammesSitemapUrlGeneratorManager } from '../src/sitemap-generator/ProgrammesSitemapUrlGeneratorManager';
|
|
9
|
+
export { FilterCombinations } from '../src/enums/FilterCombinations';
|
|
10
|
+
export { ISitemapUrlGenerator } from '../src/common/ISitemapUrlGenerator';
|
|
11
|
+
export { FilterKeyValuesMap } from '../src/common/FilterKeyValuesMap';
|
|
12
|
+
export { IPresenter } from '../src/common';
|
|
13
|
+
export { IProgrammeSitemapUrlGenerator } from '../src/programmes/types/IProgrammeSitemapUrlGenerator';
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { OrganisationsSitemapUrlGeneratorManager } from '../src/sitemap-generator/OrganisationsSitemapUrlGeneratorManager';
|
|
2
|
+
export { ScholarshipsSitemapUrlGeneratorManager } from '../src/sitemap-generator/ScholarshipsSitemapUrlGeneratorManager';
|
|
3
|
+
export { ProgrammesSitemapUrlGeneratorManager } from '../src/sitemap-generator/ProgrammesSitemapUrlGeneratorManager';
|
|
4
|
+
export { FilterCombinations } from '../src/enums/FilterCombinations';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FilterKeyValuesMap } from './FilterKeyValuesMap';
|
|
2
|
+
import { ISearchDependencies } from './ISearchDependencies';
|
|
3
|
+
export interface IRule {
|
|
4
|
+
getName(): string;
|
|
5
|
+
forSearch(dependencies: ISearchDependencies): Promise<boolean>;
|
|
6
|
+
forSitemapGenerator(filterKeyValues: FilterKeyValuesMap): Promise<boolean>;
|
|
7
|
+
getDescription(): string;
|
|
8
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ISeoInfoBase, ISeoFilterState, ISearchApplicationState } from '../common';
|
|
2
|
+
import { IDependencies } from './IDependencies';
|
|
3
|
+
export interface ISearchDependencies extends IDependencies {
|
|
4
|
+
seoInfoBase: ISeoInfoBase;
|
|
5
|
+
filterState: ISeoFilterState;
|
|
6
|
+
applicationState: ISearchApplicationState;
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { FilterKey } from '@studyportals/search-filters';
|
|
2
|
+
import { ISeoFilterState } from './ISeoFilterState';
|
|
3
|
+
export interface ISeoInfoBase {
|
|
4
|
+
selectionOnlyFor(filterKeys: FilterKey[], filterSelectionState: ISeoFilterState): Promise<boolean>;
|
|
5
|
+
singleSelectionFor(filterKey: FilterKey, filterSelectionState: ISeoFilterState): Promise<boolean>;
|
|
6
|
+
getFilterOptionValueBy(filterKey: FilterKey, filterSelectionState: ISeoFilterState): string | null;
|
|
7
|
+
getSelectionTypeCount(filterSelectionState: ISeoFilterState): number;
|
|
8
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ISearchDependencies } from '../ISearchDependencies';
|
|
2
|
+
import { IDependencies } from '../IDependencies';
|
|
3
|
+
import { IRule } from '../IRule';
|
|
4
|
+
import { FilterKeyValuesMap } from '../FilterKeyValuesMap';
|
|
5
|
+
import { ISeoIndexabilityPolicy } from '../ISeoIndexabilityPolicy';
|
|
6
|
+
import { ISitemapUrlGenerator } from '../ISitemapUrlGenerator';
|
|
7
|
+
import { FilterCombinations } from '../../enums/FilterCombinations';
|
|
8
|
+
export declare abstract class BaseSeoIndexabilityPolicy<TDependencies extends IDependencies> implements ISeoIndexabilityPolicy, ISitemapUrlGenerator {
|
|
9
|
+
abstract readonly name: string;
|
|
10
|
+
abstract readonly description: string;
|
|
11
|
+
protected readonly dependencies: TDependencies;
|
|
12
|
+
protected abstract readonly rules: IRule[];
|
|
13
|
+
constructor(dependencies: TDependencies);
|
|
14
|
+
abstract get filterCombination(): FilterCombinations;
|
|
15
|
+
protected abstract generateUrls(): Promise<string[]>;
|
|
16
|
+
shouldIndex(): Promise<boolean>;
|
|
17
|
+
generateSitemapUrls(): Promise<string[]>;
|
|
18
|
+
protected isIndexable(): Promise<boolean>;
|
|
19
|
+
protected checkRulesForSearch(dependencies: ISearchDependencies): Promise<boolean>;
|
|
20
|
+
checkRulesForSitemap(filterKeyValues: FilterKeyValuesMap): Promise<boolean>;
|
|
21
|
+
protected isIndexabilityPolicyDependencies(): boolean;
|
|
22
|
+
protected isSitemapUrlGeneratorDependencies(): boolean;
|
|
23
|
+
getAllRules(): IRule[];
|
|
24
|
+
getName(): string;
|
|
25
|
+
getDescription(): string;
|
|
26
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { InvalidDependencyTypeError } from '../../errors/InvalidDependencyTypeError';
|
|
2
|
+
import { DependencyTypes } from '../../enums/DependencyTypes';
|
|
3
|
+
export class BaseSeoIndexabilityPolicy {
|
|
4
|
+
dependencies;
|
|
5
|
+
constructor(dependencies) {
|
|
6
|
+
this.dependencies = dependencies;
|
|
7
|
+
}
|
|
8
|
+
async shouldIndex() {
|
|
9
|
+
if (!this.isIndexabilityPolicyDependencies()) {
|
|
10
|
+
throw new InvalidDependencyTypeError();
|
|
11
|
+
}
|
|
12
|
+
return this.isIndexable();
|
|
13
|
+
}
|
|
14
|
+
async generateSitemapUrls() {
|
|
15
|
+
if (!this.isSitemapUrlGeneratorDependencies()) {
|
|
16
|
+
throw new InvalidDependencyTypeError();
|
|
17
|
+
}
|
|
18
|
+
return await this.generateUrls();
|
|
19
|
+
}
|
|
20
|
+
async isIndexable() {
|
|
21
|
+
return await this.checkRulesForSearch(this.dependencies);
|
|
22
|
+
}
|
|
23
|
+
async checkRulesForSearch(dependencies) {
|
|
24
|
+
for (const rule of this.rules) {
|
|
25
|
+
const result = await rule.forSearch(dependencies);
|
|
26
|
+
if (!result) {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
async checkRulesForSitemap(filterKeyValues) {
|
|
33
|
+
for (const rule of this.rules) {
|
|
34
|
+
const result = await rule.forSitemapGenerator(filterKeyValues);
|
|
35
|
+
if (!result) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return true;
|
|
40
|
+
}
|
|
41
|
+
isIndexabilityPolicyDependencies() {
|
|
42
|
+
return this.dependencies.dependencyType === DependencyTypes.SEARCH;
|
|
43
|
+
}
|
|
44
|
+
isSitemapUrlGeneratorDependencies() {
|
|
45
|
+
return this.dependencies.dependencyType === DependencyTypes.SITEMAP_GENERATOR;
|
|
46
|
+
}
|
|
47
|
+
getAllRules() {
|
|
48
|
+
return this.rules;
|
|
49
|
+
}
|
|
50
|
+
getName() {
|
|
51
|
+
return this.name;
|
|
52
|
+
}
|
|
53
|
+
getDescription() {
|
|
54
|
+
return this.description;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { FilterKeyValuesMap } from '../FilterKeyValuesMap';
|
|
2
|
+
import { IRule } from '../IRule';
|
|
3
|
+
import { ISearchDependencies } from '../ISearchDependencies';
|
|
4
|
+
export declare abstract class BaseFilterKeyValueRule implements IRule {
|
|
5
|
+
private readonly expectedFilterKeyValues;
|
|
6
|
+
constructor(expectedFilterKeyValues: FilterKeyValuesMap);
|
|
7
|
+
abstract getName(): string;
|
|
8
|
+
abstract getDescription(): string;
|
|
9
|
+
forSearch(dependencies: ISearchDependencies): Promise<boolean>;
|
|
10
|
+
forSitemapGenerator(filterKeyValues: FilterKeyValuesMap): Promise<boolean>;
|
|
11
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export class BaseFilterKeyValueRule {
|
|
2
|
+
expectedFilterKeyValues;
|
|
3
|
+
constructor(expectedFilterKeyValues) {
|
|
4
|
+
this.expectedFilterKeyValues = expectedFilterKeyValues;
|
|
5
|
+
}
|
|
6
|
+
forSearch(dependencies) {
|
|
7
|
+
const { seoInfoBase, filterState } = dependencies;
|
|
8
|
+
for (const [key, values] of this.expectedFilterKeyValues) {
|
|
9
|
+
const optionValue = seoInfoBase.getFilterOptionValueBy(key, filterState);
|
|
10
|
+
if (!optionValue || !values.includes(optionValue)) {
|
|
11
|
+
return Promise.resolve(false);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return Promise.resolve(true);
|
|
15
|
+
}
|
|
16
|
+
forSitemapGenerator(filterKeyValues) {
|
|
17
|
+
for (const [key, values] of this.expectedFilterKeyValues) {
|
|
18
|
+
const filterValues = filterKeyValues.get(key);
|
|
19
|
+
if (!filterValues || filterValues.length !== values.length) {
|
|
20
|
+
return Promise.resolve(false);
|
|
21
|
+
}
|
|
22
|
+
if (!values.every((value) => filterValues.includes(value))) {
|
|
23
|
+
return Promise.resolve(false);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return Promise.resolve(true);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { IRule } from '../IRule';
|
|
2
|
+
import { ISearchDependencies } from '../ISearchDependencies';
|
|
3
|
+
export declare class IndexablePageNumberRule implements IRule {
|
|
4
|
+
private readonly minimumPageNumber;
|
|
5
|
+
forSearch(dependencies: ISearchDependencies): Promise<boolean>;
|
|
6
|
+
forSitemapGenerator(): Promise<boolean>;
|
|
7
|
+
getName(): string;
|
|
8
|
+
getDescription(): string;
|
|
9
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export class IndexablePageNumberRule {
|
|
2
|
+
minimumPageNumber = 1;
|
|
3
|
+
forSearch(dependencies) {
|
|
4
|
+
const { applicationState } = dependencies;
|
|
5
|
+
const isPageNumberIndexable = applicationState.getPageNumber() <= this.minimumPageNumber;
|
|
6
|
+
return Promise.resolve(isPageNumberIndexable);
|
|
7
|
+
}
|
|
8
|
+
forSitemapGenerator() {
|
|
9
|
+
return Promise.resolve(true);
|
|
10
|
+
}
|
|
11
|
+
getName() {
|
|
12
|
+
return 'IndexablePageNumberRule';
|
|
13
|
+
}
|
|
14
|
+
getDescription() {
|
|
15
|
+
return 'Indexable if the page number is 1';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { IRule } from '../../common/IRule';
|
|
2
|
+
import { FilterKeyValuesMap } from '../../common/FilterKeyValuesMap';
|
|
3
|
+
import { ISearchDependencies } from '../ISearchDependencies';
|
|
4
|
+
export declare class NoFiltersSelectedRule implements IRule {
|
|
5
|
+
forSearch(dependencies: ISearchDependencies): Promise<boolean>;
|
|
6
|
+
forSitemapGenerator(filterKeyValues: FilterKeyValuesMap): Promise<boolean>;
|
|
7
|
+
getName(): string;
|
|
8
|
+
getDescription(): string;
|
|
9
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export class NoFiltersSelectedRule {
|
|
2
|
+
forSearch(dependencies) {
|
|
3
|
+
const { filterState, seoInfoBase } = dependencies;
|
|
4
|
+
const selectionCount = seoInfoBase.getSelectionTypeCount(filterState);
|
|
5
|
+
return Promise.resolve(selectionCount === 0);
|
|
6
|
+
}
|
|
7
|
+
forSitemapGenerator(filterKeyValues) {
|
|
8
|
+
const filterKeys = Array.from(filterKeyValues.keys());
|
|
9
|
+
return Promise.resolve(filterKeys.length === 0);
|
|
10
|
+
}
|
|
11
|
+
getName() {
|
|
12
|
+
return 'NoFiltersSelectedRule';
|
|
13
|
+
}
|
|
14
|
+
getDescription() {
|
|
15
|
+
return 'No filters are selected';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { FilterKey } from '@studyportals/search-filters';
|
|
2
|
+
import { BaseFilterKeyValueRule } from '../../common/rules/BaseFilterKeyValueRule';
|
|
3
|
+
export class OnlineAttendanceRule extends BaseFilterKeyValueRule {
|
|
4
|
+
constructor() {
|
|
5
|
+
const filterKeyValues = new Map([[FilterKey.DELIVERY_METHOD, ['online']]]);
|
|
6
|
+
super(filterKeyValues);
|
|
7
|
+
}
|
|
8
|
+
getName() {
|
|
9
|
+
return 'OnlineAttendanceRule';
|
|
10
|
+
}
|
|
11
|
+
getDescription() {
|
|
12
|
+
return 'Is indexable if the selected delivery method is online.';
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IRule } from '../../common/IRule';
|
|
2
|
+
import { FilterKey } from '@studyportals/search-filters';
|
|
3
|
+
import { ISearchDependencies } from '../../common/ISearchDependencies';
|
|
4
|
+
import { FilterKeyValuesMap } from '../FilterKeyValuesMap';
|
|
5
|
+
export declare class OnlyFiltersSelectedRule implements IRule {
|
|
6
|
+
private readonly filterKeys;
|
|
7
|
+
constructor(filterKeys: FilterKey[]);
|
|
8
|
+
getName(): string;
|
|
9
|
+
forSearch(dependencies: ISearchDependencies): Promise<boolean>;
|
|
10
|
+
forSitemapGenerator(filterKeyValues: FilterKeyValuesMap): Promise<boolean>;
|
|
11
|
+
getDescription(): string;
|
|
12
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export class OnlyFiltersSelectedRule {
|
|
2
|
+
filterKeys;
|
|
3
|
+
constructor(filterKeys) {
|
|
4
|
+
this.filterKeys = filterKeys;
|
|
5
|
+
}
|
|
6
|
+
getName() {
|
|
7
|
+
return `OnlyFiltersSelectedRule-${this.filterKeys.join('-')}`;
|
|
8
|
+
}
|
|
9
|
+
async forSearch(dependencies) {
|
|
10
|
+
const seoInfoBase = dependencies.seoInfoBase;
|
|
11
|
+
const filterState = dependencies.filterState;
|
|
12
|
+
return await seoInfoBase.selectionOnlyFor(this.filterKeys, filterState);
|
|
13
|
+
}
|
|
14
|
+
forSitemapGenerator(filterKeyValues) {
|
|
15
|
+
const filterKeys = Array.from(filterKeyValues.keys());
|
|
16
|
+
if (filterKeys.length !== this.filterKeys.length) {
|
|
17
|
+
return Promise.resolve(false);
|
|
18
|
+
}
|
|
19
|
+
if (!filterKeys.every((filterKey) => this.filterKeys.includes(filterKey))) {
|
|
20
|
+
return Promise.resolve(false);
|
|
21
|
+
}
|
|
22
|
+
if (!this.filterKeys.every((filterKey) => filterKeys.includes(filterKey))) {
|
|
23
|
+
return Promise.resolve(false);
|
|
24
|
+
}
|
|
25
|
+
return Promise.resolve(true);
|
|
26
|
+
}
|
|
27
|
+
getDescription() {
|
|
28
|
+
return `Only ${this.filterKeys.join(', ')} filters are selected`;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { IRule } from '../../common/IRule';
|
|
2
|
+
import { FilterKey } from '@studyportals/search-filters';
|
|
3
|
+
import { ISearchDependencies } from '../../common/ISearchDependencies';
|
|
4
|
+
import { FilterKeyValuesMap } from '../FilterKeyValuesMap';
|
|
5
|
+
export declare class SingleValueSelectedForFilterRule implements IRule {
|
|
6
|
+
private readonly filterKey;
|
|
7
|
+
constructor(filterKey: FilterKey);
|
|
8
|
+
getName(): string;
|
|
9
|
+
forSearch(dependencies: ISearchDependencies): Promise<boolean>;
|
|
10
|
+
forSitemapGenerator(filterKeyValues: FilterKeyValuesMap): Promise<boolean>;
|
|
11
|
+
getDescription(): string;
|
|
12
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export class SingleValueSelectedForFilterRule {
|
|
2
|
+
filterKey;
|
|
3
|
+
constructor(filterKey) {
|
|
4
|
+
this.filterKey = filterKey;
|
|
5
|
+
}
|
|
6
|
+
getName() {
|
|
7
|
+
return `SingleValueSelectedForFilterRule-${this.filterKey}`;
|
|
8
|
+
}
|
|
9
|
+
async forSearch(dependencies) {
|
|
10
|
+
const seoInfoBase = dependencies.seoInfoBase;
|
|
11
|
+
const filterState = dependencies.filterState;
|
|
12
|
+
return await seoInfoBase.singleSelectionFor(this.filterKey, filterState);
|
|
13
|
+
}
|
|
14
|
+
forSitemapGenerator(filterKeyValues) {
|
|
15
|
+
const filterValues = filterKeyValues.get(this.filterKey);
|
|
16
|
+
if (!filterValues || filterValues.length !== 1) {
|
|
17
|
+
return Promise.resolve(false);
|
|
18
|
+
}
|
|
19
|
+
return Promise.resolve(true);
|
|
20
|
+
}
|
|
21
|
+
getDescription() {
|
|
22
|
+
return `Single value is selected for filter ${this.filterKey}`;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export declare enum FilterCombinations {
|
|
2
|
+
AREA = "area",
|
|
3
|
+
AREA_ATTENDANCE = "areaAttendance",
|
|
4
|
+
AREA_DISCIPLINE = "areaDiscipline",
|
|
5
|
+
COUNTRY = "country",
|
|
6
|
+
DEGREE = "degree",
|
|
7
|
+
COUNTRY_DEGREE = "countryDegree",
|
|
8
|
+
COUNTRY_DURATION = "countryDuration",
|
|
9
|
+
COUNTRY_FORMAT = "countryFormat",
|
|
10
|
+
COUNTRY_TUITION_FEE = "countryTuitionFee",
|
|
11
|
+
COUNTRY_EDUCATIONAL_FORM = "countryEducationalForm",
|
|
12
|
+
COUNTRY_ATTENDANCE_DEGREE = "countryAttendanceDegree",
|
|
13
|
+
COUNTRY_DURATION_DEGREE = "countryDurationDegree",
|
|
14
|
+
DISCIPLINE_AREA = "disciplineArea",
|
|
15
|
+
DISCIPLINE_ATTENDANCE = "disciplineAttendance",
|
|
16
|
+
DISCIPLINE_COUNTRY = "disciplineCountry",
|
|
17
|
+
DISCIPLINE_CONTINENT = "disciplineContinent",
|
|
18
|
+
DISCIPLINE_DEGREE = "disciplineDegree",
|
|
19
|
+
DISCIPLINE_DURATION = "disciplineDuration",
|
|
20
|
+
DISCIPLINE_FORMAT = "disciplineFormat",
|
|
21
|
+
DISCIPLINE_TUITION_FEE = "disciplineTuitionFee",
|
|
22
|
+
DISCIPLINE_EDUCATIONAL_FORM = "disciplineEducationalForm",
|
|
23
|
+
DISCIPLINE_TUITION_FEE_ATTENDANCE = "disciplineTuitionFeeAttendance",
|
|
24
|
+
DISCIPLINE_COUNTRY_EDUCATIONAL_FORM = "disciplineCountryEducationalForm",
|
|
25
|
+
DEGREE_COUNTRY_DISCIPLINE = "degreeCountryDiscipline",
|
|
26
|
+
DEGREE_ATTENDANCE_DISCIPLINE = "degreeAttendanceDiscipline",
|
|
27
|
+
DEGREE_COUNTRY_TUITION_FEE = "degreeCountryTuitionFee",
|
|
28
|
+
DEGREE_COUNTRY_ATTENDANCE = "degreeCountryAttendance",
|
|
29
|
+
DISCIPLINE = "discipline",
|
|
30
|
+
UNFILTERED = "unfiltered",
|
|
31
|
+
UNIVERSITY_COUNTRY = "universityCountry",
|
|
32
|
+
ATTENDANCE_DISCIPLINE = "attendancedDiscipline",
|
|
33
|
+
ATTENDANCE_DEGREE = "attendanceDegree",
|
|
34
|
+
CONTINENT_ATTENDANCE = "continentAttendance",
|
|
35
|
+
COUNTRY_ATTENDANCE = "countryAttendance",
|
|
36
|
+
ATTENDANCE = "attendance",
|
|
37
|
+
CONTINENT = "continent",
|
|
38
|
+
CONTINENT_TUITION_FEE = "continentTuitionFee",
|
|
39
|
+
TUITION_FEE = "tuitionFee",
|
|
40
|
+
SPECIAL_PROGRAMMES = "specialProgrammes",
|
|
41
|
+
RANKED_AREA = "rankedArea",
|
|
42
|
+
RANKED_AREA_DISCIPLINE = "rankedAreaDiscipline",
|
|
43
|
+
RANKED_ATTENDANCE = "rankedAttendance",
|
|
44
|
+
RANKED_ATTENDANCE_DISCIPLINE = "rankedAttendancedDiscipline",
|
|
45
|
+
RANKED_CONTINENT = "rankedContinent",
|
|
46
|
+
RANKED_CONTINENT_ATTENDANCE = "rankedContinentAttendance",
|
|
47
|
+
RANKED_COUNTRY = "rankedCountry",
|
|
48
|
+
RANKED_COUNTRY_ATTENDANCE = "rankedCountryAttendance",
|
|
49
|
+
RANKED_DISCIPLINE_COUNTRY = "rankedDisciplineCountry",
|
|
50
|
+
RANKED_DISCIPLINE = "rankedDiscipline",
|
|
51
|
+
RANKED_UNFILTERED = "rankedUnfiltered"
|
|
52
|
+
}
|