@studyportals/fawkes 4.0.2-9 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/scholarships-seo/index.d.ts +2 -4
- package/dist/sitemap-generator-seo/index.d.ts +2 -1
- package/dist/src/organisations/policies/OrganisationsSeoIndexabilityPolicy.js +0 -4
- package/dist/src/organisations/policies/RankedOrganisationsSeoIndexabilityPolicy.d.ts +1 -2
- package/dist/src/organisations/policies/RankedOrganisationsSeoIndexabilityPolicy.js +3 -2
- package/dist/src/scholarships/types.d.ts +3 -4
- package/dist/src/scholarships/types.js +3 -4
- package/dist/src/sitemap-generator/BaseSitemapUrlGeneratorManager.d.ts +1 -1
- package/dist/src/sitemap-generator/BaseSitemapUrlGeneratorManager.js +1 -10
- package/dist/src/sitemap-generator/ISitemapUrlGeneratorManager.d.ts +2 -0
- package/dist/src/sitemap-generator/OrganisationsSitemapUrlGeneratorManager.d.ts +3 -6
- package/dist/src/sitemap-generator/OrganisationsSitemapUrlGeneratorManager.js +7 -7
- package/dist/src/sitemap-generator/ScholarshipsSitemapUrlGeneratorManager.d.ts +1 -1
- package/dist/src/sitemap-generator/ScholarshipsSitemapUrlGeneratorManager.js +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { ISeoFilterState } from '../src/common
|
|
2
|
-
import { ISeoInfoBase } from '../src/common/ISeoInfoBase';
|
|
3
|
-
import { ISearchIndexabilityManager } from '../src/common/ISearchIndexabilityManager';
|
|
1
|
+
import { ISeoFilterState, ISearchApplicationState, ISearchIndexabilityManager, ISeoInfoBase } from '../src/common';
|
|
4
2
|
import { SearchIndexabilityManager } from '../src/scholarships/SearchIndexabilityManager';
|
|
5
3
|
import { types } from '../src/scholarships/types';
|
|
6
|
-
export { ISeoFilterState,
|
|
4
|
+
export { ISeoFilterState, ISearchApplicationState, ISearchIndexabilityManager, ISeoInfoBase, SearchIndexabilityManager, types };
|
|
@@ -7,4 +7,5 @@ import { OrganisationsSitemapUrlGeneratorManager } from '../src/sitemap-generato
|
|
|
7
7
|
import { ScholarshipsSitemapUrlGeneratorManager } from '../src/sitemap-generator/ScholarshipsSitemapUrlGeneratorManager';
|
|
8
8
|
import { FilterCombinations } from '../src/enums/FilterCombinations';
|
|
9
9
|
import { FilterKeyValuesMap } from '../src/common/FilterKeyValuesMap';
|
|
10
|
-
|
|
10
|
+
import { IPresenter } from '../src/common';
|
|
11
|
+
export { IOrganisationsClient, IOrganisation, IRankingApiClient, ISearchApiClient, ISitemapUrlGeneratorManager, OrganisationsSitemapUrlGeneratorManager, ScholarshipsSitemapUrlGeneratorManager, FilterCombinations, FilterKeyValuesMap, IPresenter };
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { PortalType } from '@studyportals/domain-client';
|
|
2
2
|
import { BaseSeoIndexabilityPolicy } from '../../common/policies/BaseSeoIndexabilityPolicy';
|
|
3
|
-
import { SortingOptions } from '../../enums/SortingOptions';
|
|
4
3
|
export class OrganisationsSeoIndexabilityPolicy extends BaseSeoIndexabilityPolicy {
|
|
5
4
|
indexablePortalTypes = [PortalType.MASTER];
|
|
6
5
|
constructor(dependencies) {
|
|
@@ -20,9 +19,6 @@ export class OrganisationsSeoIndexabilityPolicy extends BaseSeoIndexabilityPolic
|
|
|
20
19
|
return this.indexablePortalTypes.includes(this.dependencies.portalType) && this.matchesSortingOption();
|
|
21
20
|
}
|
|
22
21
|
getPathWithSortingOption(path) {
|
|
23
|
-
if (this.sortingOption === SortingOptions.UNIVERSITY_META_RANKING) {
|
|
24
|
-
return 'rankings/' + path;
|
|
25
|
-
}
|
|
26
22
|
return path;
|
|
27
23
|
}
|
|
28
24
|
matchesSortingOption() {
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { PortalType } from '@studyportals/domain-client';
|
|
2
1
|
import { SortingOptions } from '../../enums/SortingOptions';
|
|
3
2
|
import { OrganisationsSeoIndexabilityPolicy } from './OrganisationsSeoIndexabilityPolicy';
|
|
4
3
|
export declare abstract class RankedOrganisationsSeoIndexabilityPolicy extends OrganisationsSeoIndexabilityPolicy {
|
|
5
|
-
protected readonly indexablePortalTypes: PortalType[];
|
|
6
4
|
protected readonly sortingOption: SortingOptions;
|
|
7
5
|
protected addRankedResultsCountRule(): void;
|
|
6
|
+
protected getPathWithSortingOption(path: string): string;
|
|
8
7
|
}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { PortalType } from '@studyportals/domain-client';
|
|
2
1
|
import { SortingOptions } from '../../enums/SortingOptions';
|
|
3
2
|
import { OrganisationsSeoIndexabilityPolicy } from './OrganisationsSeoIndexabilityPolicy';
|
|
4
3
|
import { AtLeastTwoRankedResultsRule } from '../rules/AtLeastTwoRankedResultsRule';
|
|
5
4
|
export class RankedOrganisationsSeoIndexabilityPolicy extends OrganisationsSeoIndexabilityPolicy {
|
|
6
|
-
indexablePortalTypes = [PortalType.MASTER];
|
|
7
5
|
sortingOption = SortingOptions.UNIVERSITY_META_RANKING;
|
|
8
6
|
addRankedResultsCountRule() {
|
|
9
7
|
let rankedResultsCountRule;
|
|
@@ -16,4 +14,7 @@ export class RankedOrganisationsSeoIndexabilityPolicy extends OrganisationsSeoIn
|
|
|
16
14
|
}
|
|
17
15
|
this.rules.push(rankedResultsCountRule);
|
|
18
16
|
}
|
|
17
|
+
getPathWithSortingOption(path) {
|
|
18
|
+
return 'rankings/' + path;
|
|
19
|
+
}
|
|
19
20
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export const types = {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
SearchIndexabilityManager: Symbol.for('SearchIndexabilityManager')
|
|
2
|
+
SeoInfoBase: Symbol.for('ISeoInfoBase'),
|
|
3
|
+
SeoFilterState: Symbol.for('ISeoFilterState'),
|
|
4
|
+
SeoApplicationState: Symbol.for('ISearchApplicationState')
|
|
6
5
|
};
|
|
@@ -5,7 +5,7 @@ import { IPresenter } from '../common';
|
|
|
5
5
|
import { FilterKey } from '@studyportals/search-filters';
|
|
6
6
|
export declare abstract class BaseSitemapUrlGeneratorManager implements ISitemapUrlGeneratorManager {
|
|
7
7
|
abstract readonly policies: ISitemapUrlGenerator[];
|
|
8
|
-
|
|
8
|
+
abstract readonly presenters: Map<FilterKey, IPresenter>;
|
|
9
9
|
protected readonly filterKeyValueCounts: Map<FilterKey, number>;
|
|
10
10
|
generateUrls(): Promise<Map<FilterCombinations, string[]>>;
|
|
11
11
|
getFilterKeyValueCounts(): Map<FilterKey, number>;
|
|
@@ -9,22 +9,13 @@ export class BaseSitemapUrlGeneratorManager {
|
|
|
9
9
|
console.debug(`Generated ${urls.length} urls for policy: ${filterCombination}`); // eslint-disable-line no-console
|
|
10
10
|
map.set(filterCombination, urls);
|
|
11
11
|
}
|
|
12
|
-
// await Promise.all(
|
|
13
|
-
// this.policies.map(async (policy) => {
|
|
14
|
-
// console.debug(`Generating sitemap urls for policy: ${policy.filterCombination}`); // eslint-disable-line no-console
|
|
15
|
-
// const filterCombination = policy.filterCombination;
|
|
16
|
-
// const urls = await policy.generateSitemapUrls();
|
|
17
|
-
// console.debug(`Generated ${urls.length} urls for policy: ${filterCombination}`); // eslint-disable-line no-console
|
|
18
|
-
// map.set(filterCombination, urls);
|
|
19
|
-
// })
|
|
20
|
-
// );
|
|
21
12
|
return map;
|
|
22
13
|
}
|
|
23
14
|
getFilterKeyValueCounts() {
|
|
24
15
|
return this.filterKeyValueCounts;
|
|
25
16
|
}
|
|
26
17
|
setFilterKeyValueCounts() {
|
|
27
|
-
for (const presenter of this.presenters) {
|
|
18
|
+
for (const presenter of this.presenters.values()) {
|
|
28
19
|
const count = presenter.getFragments().length;
|
|
29
20
|
this.filterKeyValueCounts.set(presenter.filterKey, count);
|
|
30
21
|
}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { FilterCombinations } from '../enums/FilterCombinations';
|
|
2
|
+
import { IPresenter } from '../common';
|
|
2
3
|
import { FilterKey } from '@studyportals/search-filters';
|
|
3
4
|
export interface ISitemapUrlGeneratorManager {
|
|
5
|
+
readonly presenters: Map<FilterKey, IPresenter>;
|
|
4
6
|
generateUrls(): Promise<Map<FilterCombinations, string[]>>;
|
|
5
7
|
getFilterKeyValueCounts(): Map<FilterKey, number>;
|
|
6
8
|
}
|
|
@@ -4,14 +4,11 @@ import { ISearchApiClient } from '../sitemap-generator/ISearchApiClient';
|
|
|
4
4
|
import { BaseSitemapUrlGeneratorManager } from './BaseSitemapUrlGeneratorManager';
|
|
5
5
|
import { PortalType } from '@studyportals/domain-client';
|
|
6
6
|
import { IRankingApiClient } from './IRankingApiClient';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { ContinentPresenter } from '../presenters/ContinentPresenter';
|
|
10
|
-
import { CountryPresenter } from '../presenters/CountryPresenter';
|
|
11
|
-
import { DisciplinePresenter } from '../presenters/DisciplinePresenter';
|
|
7
|
+
import { FilterKey } from '@studyportals/search-filters';
|
|
8
|
+
import { IPresenter } from '../common';
|
|
12
9
|
export declare class OrganisationsSitemapUrlGeneratorManager extends BaseSitemapUrlGeneratorManager {
|
|
13
10
|
readonly portalType: PortalType;
|
|
14
11
|
readonly policies: ISitemapUrlGenerator[];
|
|
15
|
-
|
|
12
|
+
readonly presenters: Map<FilterKey, IPresenter>;
|
|
16
13
|
constructor(portalType: PortalType, searchApiClient: ISearchApiClient, organisationsClient: IOrganisationsClient, rankingApiClient: IRankingApiClient);
|
|
17
14
|
}
|
|
@@ -6,16 +6,11 @@ import { AttendancePresenter } from '../presenters/AttendancePresenter';
|
|
|
6
6
|
import { ContinentPresenter } from '../presenters/ContinentPresenter';
|
|
7
7
|
import { CountryPresenter } from '../presenters/CountryPresenter';
|
|
8
8
|
import { DisciplinePresenter } from '../presenters/DisciplinePresenter';
|
|
9
|
+
import { FilterKey } from '@studyportals/search-filters';
|
|
9
10
|
export class OrganisationsSitemapUrlGeneratorManager extends BaseSitemapUrlGeneratorManager {
|
|
10
11
|
portalType;
|
|
11
12
|
policies;
|
|
12
|
-
presenters =
|
|
13
|
-
AreaPresenter.getInstance(),
|
|
14
|
-
AttendancePresenter.getInstance(),
|
|
15
|
-
ContinentPresenter.getInstance(),
|
|
16
|
-
CountryPresenter.getInstance(),
|
|
17
|
-
DisciplinePresenter.getInstance()
|
|
18
|
-
];
|
|
13
|
+
presenters = new Map();
|
|
19
14
|
constructor(portalType, searchApiClient, organisationsClient, rankingApiClient) {
|
|
20
15
|
super();
|
|
21
16
|
this.portalType = portalType;
|
|
@@ -46,6 +41,11 @@ export class OrganisationsSitemapUrlGeneratorManager extends BaseSitemapUrlGener
|
|
|
46
41
|
new RankedDiscipline(dependencies),
|
|
47
42
|
new RankedUnfiltered(dependencies)
|
|
48
43
|
];
|
|
44
|
+
this.presenters.set(FilterKey.AREA, AreaPresenter.getInstance());
|
|
45
|
+
this.presenters.set(FilterKey.DELIVERY_METHOD, AttendancePresenter.getInstance());
|
|
46
|
+
this.presenters.set(FilterKey.CONTINENT, ContinentPresenter.getInstance());
|
|
47
|
+
this.presenters.set(FilterKey.COUNTRY, CountryPresenter.getInstance());
|
|
48
|
+
this.presenters.set(FilterKey.DISCIPLINES, DisciplinePresenter.getInstance());
|
|
49
49
|
this.setFilterKeyValueCounts();
|
|
50
50
|
}
|
|
51
51
|
}
|
|
@@ -4,6 +4,6 @@ import { ISearchApiClient } from '../sitemap-generator/ISearchApiClient';
|
|
|
4
4
|
import { BaseSitemapUrlGeneratorManager } from './BaseSitemapUrlGeneratorManager';
|
|
5
5
|
export declare class ScholarshipsSitemapUrlGeneratorManager extends BaseSitemapUrlGeneratorManager {
|
|
6
6
|
readonly policies: ISitemapUrlGenerator[];
|
|
7
|
-
|
|
7
|
+
readonly presenters: Map<any, any>;
|
|
8
8
|
constructor(searchApiClient: ISearchApiClient, organisationsClient: IOrganisationsClient);
|
|
9
9
|
}
|
|
@@ -8,7 +8,7 @@ import { Unfiltered } from '../scholarships/policies/Unfiltered';
|
|
|
8
8
|
import { BaseSitemapUrlGeneratorManager } from './BaseSitemapUrlGeneratorManager';
|
|
9
9
|
export class ScholarshipsSitemapUrlGeneratorManager extends BaseSitemapUrlGeneratorManager {
|
|
10
10
|
policies;
|
|
11
|
-
presenters =
|
|
11
|
+
presenters = new Map();
|
|
12
12
|
constructor(searchApiClient, organisationsClient) {
|
|
13
13
|
super();
|
|
14
14
|
const dependencies = {
|