@studyportals/fawkes 8.1.1-4 → 8.1.2-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/dist/src/common/IPolicyMetaData.d.ts +6 -0
  2. package/dist/src/common/IPolicyMetaData.js +1 -0
  3. package/dist/src/enums/FilterCombinations.d.ts +26 -1
  4. package/dist/src/enums/FilterCombinations.js +26 -1
  5. package/dist/src/organisations/OrganisationsRuleBasedIndexabilityPolicy.d.ts +11 -0
  6. package/dist/src/organisations/OrganisationsRuleBasedIndexabilityPolicy.js +19 -0
  7. package/dist/src/organisations/rules/OnlineAttendanceRule.d.ts +6 -0
  8. package/dist/src/organisations/rules/OnlineAttendanceRule.js +14 -0
  9. package/dist/src/presenters/AttendancePresenter.js +4 -0
  10. package/dist/src/presenters/FormatPresenter.js +4 -1
  11. package/dist/src/presenters/SpecialProgrammesPresenter.js +4 -0
  12. package/dist/src/programmes/IProgrammeSearchApplicationState.d.ts +4 -0
  13. package/dist/src/programmes/IProgrammeSearchApplicationState.js +1 -0
  14. package/dist/src/programmes/IProgrammeSearchDependencies.d.ts +7 -0
  15. package/dist/src/programmes/IProgrammeSearchDependencies.js +1 -0
  16. package/dist/src/programmes/IProgrammesSeoDependencies.d.ts +2 -0
  17. package/dist/src/programmes/IProgrammesSeoDependencies.js +1 -0
  18. package/dist/src/programmes/SearchIndexabilityManager.js +31 -3
  19. package/dist/src/programmes/policies/AttendanceArea.d.ts +16 -0
  20. package/dist/src/programmes/policies/AttendanceArea.js +48 -0
  21. package/dist/src/programmes/policies/AttendanceContinent.d.ts +16 -0
  22. package/dist/src/programmes/policies/AttendanceContinent.js +46 -0
  23. package/dist/src/programmes/policies/AttendanceDegree.d.ts +3 -3
  24. package/dist/src/programmes/policies/AttendanceDegree.js +4 -4
  25. package/dist/src/programmes/policies/AttendanceDuration.d.ts +17 -0
  26. package/dist/src/programmes/policies/AttendanceDuration.js +50 -0
  27. package/dist/src/programmes/policies/AttendanceFormat.d.ts +16 -0
  28. package/dist/src/programmes/policies/AttendanceFormat.js +48 -0
  29. package/dist/src/programmes/policies/AttendanceTuitionFee.d.ts +17 -0
  30. package/dist/src/programmes/policies/AttendanceTuitionFee.js +51 -0
  31. package/dist/src/programmes/policies/ContinentDuration.d.ts +16 -0
  32. package/dist/src/programmes/policies/ContinentDuration.js +48 -0
  33. package/dist/src/programmes/policies/ContinentFormat.d.ts +16 -0
  34. package/dist/src/programmes/policies/ContinentFormat.js +48 -0
  35. package/dist/src/programmes/policies/ContinentSpecialProgrammes.d.ts +16 -0
  36. package/dist/src/programmes/policies/ContinentSpecialProgrammes.js +48 -0
  37. package/dist/src/programmes/policies/CountryAttendanceDegree.js +1 -1
  38. package/dist/src/programmes/policies/CountryDuration.d.ts +2 -2
  39. package/dist/src/programmes/policies/CountryDuration.js +6 -4
  40. package/dist/src/programmes/policies/CountryDurationDegree.js +1 -1
  41. package/dist/src/programmes/policies/CountryEducationalForm.js +1 -1
  42. package/dist/src/programmes/policies/CountrySpecialProgrammes.d.ts +16 -0
  43. package/dist/src/programmes/policies/CountrySpecialProgrammes.js +48 -0
  44. package/dist/src/programmes/policies/DegreeArea.d.ts +15 -0
  45. package/dist/src/programmes/policies/DegreeArea.js +46 -0
  46. package/dist/src/programmes/policies/DegreeAreaTuitionFee.d.ts +16 -0
  47. package/dist/src/programmes/policies/DegreeAreaTuitionFee.js +54 -0
  48. package/dist/src/programmes/policies/DegreeAttendanceDiscipline.d.ts +2 -1
  49. package/dist/src/programmes/policies/DegreeAttendanceDiscipline.js +12 -12
  50. package/dist/src/programmes/policies/DegreeAttendanceFormat.d.ts +17 -0
  51. package/dist/src/programmes/policies/DegreeAttendanceFormat.js +56 -0
  52. package/dist/src/programmes/policies/DegreeAttendanceSpecialProgrammes.d.ts +17 -0
  53. package/dist/src/programmes/policies/DegreeAttendanceSpecialProgrammes.js +58 -0
  54. package/dist/src/programmes/policies/DegreeAttendanceTuitionFee.d.ts +18 -0
  55. package/dist/src/programmes/policies/DegreeAttendanceTuitionFee.js +59 -0
  56. package/dist/src/programmes/policies/DegreeContinent.d.ts +16 -0
  57. package/dist/src/programmes/policies/DegreeContinent.js +46 -0
  58. package/dist/src/programmes/policies/DegreeContinentTuitionFee.d.ts +16 -0
  59. package/dist/src/programmes/policies/DegreeContinentTuitionFee.js +52 -0
  60. package/dist/src/programmes/policies/DegreeCountryAttendance.js +3 -3
  61. package/dist/src/programmes/policies/DegreeCountryTuitionFee.js +2 -2
  62. package/dist/src/programmes/policies/DegreeDuration.d.ts +17 -0
  63. package/dist/src/programmes/policies/DegreeDuration.js +50 -0
  64. package/dist/src/programmes/policies/DegreeFormat.d.ts +16 -0
  65. package/dist/src/programmes/policies/DegreeFormat.js +48 -0
  66. package/dist/src/programmes/policies/DegreeFormatTuitionFee.d.ts +18 -0
  67. package/dist/src/programmes/policies/DegreeFormatTuitionFee.js +56 -0
  68. package/dist/src/programmes/policies/DegreeSpecialProgrammes.d.ts +17 -0
  69. package/dist/src/programmes/policies/DegreeSpecialProgrammes.js +52 -0
  70. package/dist/src/programmes/policies/DegreeTuitionFee.d.ts +16 -0
  71. package/dist/src/programmes/policies/DegreeTuitionFee.js +49 -0
  72. package/dist/src/programmes/policies/DisciplineArea.d.ts +1 -1
  73. package/dist/src/programmes/policies/DisciplineArea.js +1 -1
  74. package/dist/src/programmes/policies/DisciplineContinentAttendance.d.ts +16 -0
  75. package/dist/src/programmes/policies/DisciplineContinentAttendance.js +54 -0
  76. package/dist/src/programmes/policies/DisciplineCountryAttendance.d.ts +16 -0
  77. package/dist/src/programmes/policies/DisciplineCountryAttendance.js +54 -0
  78. package/dist/src/programmes/policies/DisciplineCountryDegree.d.ts +16 -0
  79. package/dist/src/programmes/policies/DisciplineCountryDegree.js +53 -0
  80. package/dist/src/programmes/policies/DisciplineCountryEducationalForm.js +1 -1
  81. package/dist/src/programmes/policies/DisciplineCountryFormat.d.ts +16 -0
  82. package/dist/src/programmes/policies/DisciplineCountryFormat.js +54 -0
  83. package/dist/src/programmes/policies/DisciplineDuration.d.ts +2 -2
  84. package/dist/src/programmes/policies/DisciplineDuration.js +2 -2
  85. package/dist/src/programmes/policies/DisciplineEducationalForm.js +1 -1
  86. package/dist/src/programmes/policies/DisciplineSpecialProgrammes.d.ts +16 -0
  87. package/dist/src/programmes/policies/DisciplineSpecialProgrammes.js +48 -0
  88. package/dist/src/programmes/policies/DisciplineTuitionFee.js +1 -1
  89. package/dist/src/programmes/policies/Duration.d.ts +16 -0
  90. package/dist/src/programmes/policies/Duration.js +40 -0
  91. package/dist/src/programmes/policies/Format.d.ts +15 -0
  92. package/dist/src/programmes/policies/Format.js +38 -0
  93. package/dist/src/programmes/policies/SpecialProgrammes.d.ts +1 -2
  94. package/dist/src/programmes/policies/SpecialProgrammes.js +0 -2
  95. package/dist/src/programmes/policies/index.d.ts +27 -1
  96. package/dist/src/programmes/policies/index.js +27 -1
  97. package/dist/src/programmes/rules/AtLeastSevenResultsRule.js +1 -1
  98. package/dist/src/programmes/rules/BlendedOrOnlineAttendanceRule.d.ts +6 -0
  99. package/dist/src/programmes/rules/BlendedOrOnlineAttendanceRule.js +18 -0
  100. package/dist/src/programmes/rules/DegreeAttendanceSpecificRule.d.ts +10 -0
  101. package/dist/src/programmes/rules/DegreeAttendanceSpecificRule.js +42 -0
  102. package/dist/src/programmes/rules/DegreeCountrySpecificRule.d.ts +10 -0
  103. package/dist/src/programmes/rules/DegreeCountrySpecificRule.js +43 -0
  104. package/dist/src/programmes/rules/DegreeCountryTuitionFeeRule.d.ts +11 -0
  105. package/dist/src/programmes/rules/DegreeCountryTuitionFeeRule.js +40 -0
  106. package/dist/src/programmes/rules/ErasmusOrExecutiveSpecialProgrammeRule.d.ts +6 -0
  107. package/dist/src/programmes/rules/ErasmusOrExecutiveSpecialProgrammeRule.js +19 -0
  108. package/dist/src/programmes/rules/ErasmusOrJointSpecialProgrammesRule.js +2 -2
  109. package/dist/src/programmes/rules/ErasmusSpecialProgrammeRule.d.ts +6 -0
  110. package/dist/src/programmes/rules/ErasmusSpecialProgrammeRule.js +19 -0
  111. package/dist/src/programmes/rules/ExecutiveSpecialProgrammeRule.d.ts +6 -0
  112. package/dist/src/programmes/rules/ExecutiveSpecialProgrammeRule.js +19 -0
  113. package/dist/src/programmes/rules/MBACountryAttendanceRule.d.ts +11 -0
  114. package/dist/src/programmes/rules/MBACountryAttendanceRule.js +40 -0
  115. package/dist/src/programmes/rules/MasterOfArtsDisciplineRule.d.ts +10 -0
  116. package/dist/src/programmes/rules/MasterOfArtsDisciplineRule.js +41 -0
  117. package/dist/src/programmes/rules/MasterOfEducationCountryDisciplineRule.d.ts +11 -0
  118. package/dist/src/programmes/rules/MasterOfEducationCountryDisciplineRule.js +69 -0
  119. package/dist/src/programmes/rules/MasterOfLawsCountryAttendanceRule.d.ts +12 -0
  120. package/dist/src/programmes/rules/MasterOfLawsCountryAttendanceRule.js +43 -0
  121. package/dist/src/programmes/rules/MasterOfLawsCountryTuitionFeeRule.d.ts +12 -0
  122. package/dist/src/programmes/rules/MasterOfLawsCountryTuitionFeeRule.js +46 -0
  123. package/dist/src/programmes/rules/MasterOfPhilosophyCountryAttendanceRule.d.ts +12 -0
  124. package/dist/src/programmes/rules/MasterOfPhilosophyCountryAttendanceRule.js +43 -0
  125. package/dist/src/programmes/rules/MasterOfScienceDisciplineRule.d.ts +10 -0
  126. package/dist/src/programmes/rules/MasterOfScienceDisciplineRule.js +41 -0
  127. package/dist/src/programmes/rules/OneOrTwoYearDurationRule.d.ts +6 -0
  128. package/dist/src/programmes/rules/OneOrTwoYearDurationRule.js +19 -0
  129. package/dist/src/programmes/rules/OneYearOnlyRule.d.ts +11 -0
  130. package/dist/src/programmes/rules/OneYearOnlyRule.js +34 -0
  131. package/dist/src/programmes/rules/OnlineAttendanceRule.d.ts +6 -0
  132. package/dist/src/programmes/rules/OnlineAttendanceRule.js +15 -0
  133. package/dist/src/programmes/rules/TwoYearDurationRule.d.ts +6 -0
  134. package/dist/src/programmes/rules/TwoYearDurationRule.js +19 -0
  135. package/dist/src/sitemap-generator/BaseSitemapUrlGeneratorManager.js +0 -1
  136. package/dist/src/sitemap-generator/IPageNumberProvider.d.ts +3 -0
  137. package/dist/src/sitemap-generator/IPageNumberProvider.js +1 -0
  138. package/dist/src/sitemap-generator/ProgrammesSitemapUrlGeneratorManager.js +117 -32
  139. package/package.json +105 -105
  140. package/dist/src/organisations/rules/AtLeastSevenResultsRule.d.ts +0 -15
  141. package/dist/src/organisations/rules/AtLeastSevenResultsRule.js +0 -30
package/package.json CHANGED
@@ -1,105 +1,105 @@
1
- {
2
- "name": "@studyportals/fawkes",
3
- "version": "8.1.1-4",
4
- "description": "A package to centralize SEO related logic for SBLP and Sitemap Generator.",
5
- "files": [
6
- "./dist"
7
- ],
8
- "scripts": {
9
- "prepush": "npm run test",
10
- "precommit": "npm run lint",
11
- "compile": "npx tsc && tsc-alias && rm -r ./dist/tests",
12
- "build": "npm run clean && npm run compile",
13
- "clean": "rimraf \"!(node_modules)/**/dist\"",
14
- "prepare-deployment": "npm run test && npm run build",
15
- "publish-major": "npm run prepare-deployment && npm version major && npm publish",
16
- "publish-beta": "npm run prepare-deployment && npm version prerelease && npm publish --tag beta --access=public",
17
- "publish-patch": "npm run prepare-deployment && npm version patch && npm publish",
18
- "publish-minor": "npm run prepare-deployment && npm version minor && npm publish",
19
- "prepare": "husky install",
20
- "test": "vitest run --coverage",
21
- "test:dev": "vitest --coverage tests/programmes",
22
- "lint": "eslint . --ext .ts",
23
- "lint:fix": "eslint . --ext .ts --fix",
24
- "prettier:fix": "npx prettier --use-tabs --ignore-path .gitignore --write ."
25
- },
26
- "exports": {
27
- "./organisations-search-seo": {
28
- "import": "./dist/organisations-seo/index.js",
29
- "require": "./dist/organisations-seo/index.js",
30
- "types": "./dist/organisations-seo/index.d.ts"
31
- },
32
- "./programmes-search-seo": {
33
- "import": "./dist/programmes-seo/index.js",
34
- "require": "./dist/programmes-seo/index.js",
35
- "types": "./dist/programmes-seo/index.d.ts"
36
- },
37
- "./scholarships-search-seo": {
38
- "import": "./dist/scholarships-seo/index.js",
39
- "require": "./dist/scholarships-seo/index.js",
40
- "types": "./dist/scholarships-seo/index.d.ts"
41
- },
42
- "./sitemap-generator-seo": {
43
- "import": "./dist/sitemap-generator-seo/index.js",
44
- "require": "./dist/sitemap-generator-seo/index.js",
45
- "types": "./dist/sitemap-generator-seo/index.d.ts"
46
- },
47
- "./structured-data-seo": {
48
- "import": "./dist/structured-data-seo/index.js",
49
- "require": "./dist/structured-data-seo/index.js",
50
- "types": "./dist/structured-data-seo/index.d.ts"
51
- }
52
- },
53
- "typesVersions": {
54
- "*": {
55
- "organisations-search-seo": [
56
- "dist/organisations-seo/index.d.ts"
57
- ],
58
- "programmes-search-seo": [
59
- "dist/programmes-seo/index.d.ts"
60
- ],
61
- "scholarships-search-seo": [
62
- "dist/scholarships-seo/index.d.ts"
63
- ],
64
- "sitemap-generator-seo": [
65
- "dist/sitemap-generator-seo/index.d.ts"
66
- ],
67
- "structured-data-seo": [
68
- "dist/structured-data-seo/index.d.ts"
69
- ],
70
- "*": [
71
- "dist/index.d.ts"
72
- ]
73
- }
74
- },
75
- "author": "The Jedi Council",
76
- "license": "ISC",
77
- "devDependencies": {
78
- "@adobe/structured-data-validator": "^1.4.1",
79
- "@studyportals/code-style": "^2.2.1",
80
- "@studyportals/webpack-helper": "^6.0.6",
81
- "@vitest/coverage-istanbul": "^2.1.8",
82
- "husky": "^8.0.3",
83
- "jsdom": "^26.0.0",
84
- "prettier": "^3.5.3",
85
- "tsc-alias": "^1.8.11",
86
- "typemoq": "^2.1.0",
87
- "typescript": "^5.7.3",
88
- "vitest": "^2.1.8",
89
- "schema-dts": "^1.1.5",
90
- "ts-loader": "^9.5.2"
91
- },
92
- "dependencies": {
93
- "@studyportals/domain-client": "^6.3.0",
94
- "@studyportals/ranking-api-interface": "^1.3.12",
95
- "@studyportals/search-filters": "^6.1.0",
96
- "@studyportals/static-domain-data": "^6.1.0"
97
- },
98
- "optionalDependencies": {
99
- "@rollup/rollup-linux-x64-gnu": "4.24.0"
100
- },
101
- "engines": {
102
- "node": ">=18 <=22",
103
- "npm": ">=8 <=10"
104
- }
105
- }
1
+ {
2
+ "name": "@studyportals/fawkes",
3
+ "version": "8.1.2-0",
4
+ "description": "A package to centralize SEO related logic for SBLP and Sitemap Generator.",
5
+ "files": [
6
+ "./dist"
7
+ ],
8
+ "scripts": {
9
+ "prepush": "npm run test",
10
+ "precommit": "npm run lint",
11
+ "compile": "npx tsc && tsc-alias && rm -r ./dist/tests",
12
+ "build": "npm run clean && npm run compile",
13
+ "clean": "rimraf \"!(node_modules)/**/dist\"",
14
+ "prepare-deployment": "npm run test && npm run build",
15
+ "publish-major": "npm run prepare-deployment && npm version major && npm publish",
16
+ "publish-beta": "npm run prepare-deployment && npm version prerelease && npm publish --tag beta --access=public",
17
+ "publish-patch": "npm run prepare-deployment && npm version patch && npm publish",
18
+ "publish-minor": "npm run prepare-deployment && npm version minor && npm publish",
19
+ "prepare": "husky install",
20
+ "test": "vitest run --coverage",
21
+ "test:dev": "vitest --coverage tests/programmes",
22
+ "lint": "eslint . --ext .ts",
23
+ "lint:fix": "eslint . --ext .ts --fix",
24
+ "prettier:fix": "npx prettier --use-tabs --ignore-path .gitignore --write ."
25
+ },
26
+ "exports": {
27
+ "./organisations-search-seo": {
28
+ "import": "./dist/organisations-seo/index.js",
29
+ "require": "./dist/organisations-seo/index.js",
30
+ "types": "./dist/organisations-seo/index.d.ts"
31
+ },
32
+ "./programmes-search-seo": {
33
+ "import": "./dist/programmes-seo/index.js",
34
+ "require": "./dist/programmes-seo/index.js",
35
+ "types": "./dist/programmes-seo/index.d.ts"
36
+ },
37
+ "./scholarships-search-seo": {
38
+ "import": "./dist/scholarships-seo/index.js",
39
+ "require": "./dist/scholarships-seo/index.js",
40
+ "types": "./dist/scholarships-seo/index.d.ts"
41
+ },
42
+ "./sitemap-generator-seo": {
43
+ "import": "./dist/sitemap-generator-seo/index.js",
44
+ "require": "./dist/sitemap-generator-seo/index.js",
45
+ "types": "./dist/sitemap-generator-seo/index.d.ts"
46
+ },
47
+ "./structured-data-seo": {
48
+ "import": "./dist/structured-data-seo/index.js",
49
+ "require": "./dist/structured-data-seo/index.js",
50
+ "types": "./dist/structured-data-seo/index.d.ts"
51
+ }
52
+ },
53
+ "typesVersions": {
54
+ "*": {
55
+ "organisations-search-seo": [
56
+ "dist/organisations-seo/index.d.ts"
57
+ ],
58
+ "programmes-search-seo": [
59
+ "dist/programmes-seo/index.d.ts"
60
+ ],
61
+ "scholarships-search-seo": [
62
+ "dist/scholarships-seo/index.d.ts"
63
+ ],
64
+ "sitemap-generator-seo": [
65
+ "dist/sitemap-generator-seo/index.d.ts"
66
+ ],
67
+ "structured-data-seo": [
68
+ "dist/structured-data-seo/index.d.ts"
69
+ ],
70
+ "*": [
71
+ "dist/index.d.ts"
72
+ ]
73
+ }
74
+ },
75
+ "author": "The Jedi Council",
76
+ "license": "ISC",
77
+ "devDependencies": {
78
+ "@adobe/structured-data-validator": "^1.4.1",
79
+ "@studyportals/code-style": "^2.2.1",
80
+ "@studyportals/webpack-helper": "^6.0.6",
81
+ "@vitest/coverage-istanbul": "^2.1.8",
82
+ "husky": "^8.0.3",
83
+ "jsdom": "^26.0.0",
84
+ "prettier": "^3.5.3",
85
+ "schema-dts": "^1.1.5",
86
+ "ts-loader": "^9.5.2",
87
+ "tsc-alias": "^1.8.11",
88
+ "typemoq": "^2.1.0",
89
+ "typescript": "^5.7.3",
90
+ "vitest": "^2.1.8"
91
+ },
92
+ "dependencies": {
93
+ "@studyportals/domain-client": "7.1.0",
94
+ "@studyportals/ranking-api-interface": "^1.3.12",
95
+ "@studyportals/search-filters": "^6.3.1",
96
+ "@studyportals/static-domain-data": "^6.1.0"
97
+ },
98
+ "optionalDependencies": {
99
+ "@rollup/rollup-linux-x64-gnu": "4.24.0"
100
+ },
101
+ "engines": {
102
+ "node": ">=18 <=22",
103
+ "npm": ">=8 <=10"
104
+ }
105
+ }
@@ -1,15 +0,0 @@
1
- import { ISearchDependencies } from '../../common/ISearchDependencies';
2
- import { FilterKeyValuesMap } from '../../common/FilterKeyValuesMap';
3
- import { ISearchApiClient } from '../../sitemap-generator/ISearchApiClient';
4
- import { IRule } from '../../common/IRule';
5
- export declare class AtLeastSevenResultsRule implements IRule {
6
- private readonly minimumResultsCount;
7
- private readonly maximumPageSize;
8
- private readonly searchApiClient?;
9
- constructor(searchApiClient?: ISearchApiClient);
10
- forSearch(dependencies: ISearchDependencies): Promise<boolean>;
11
- forSitemapGeneratorWithPageNumber(filterKeyValues: FilterKeyValuesMap, pageNumber: number): Promise<boolean>;
12
- forSitemapGenerator(): Promise<boolean>;
13
- getName(): string;
14
- getDescription(): string;
15
- }
@@ -1,30 +0,0 @@
1
- import { DependencyMissingError } from '../../errors/DependencyMissingError';
2
- export class AtLeastSevenResultsRule {
3
- minimumResultsCount = 7;
4
- maximumPageSize = 20;
5
- searchApiClient;
6
- constructor(searchApiClient) {
7
- this.searchApiClient = searchApiClient;
8
- }
9
- forSearch(dependencies) {
10
- const { applicationState } = dependencies;
11
- const resultCount = applicationState.getNumberOfResults();
12
- return Promise.resolve(resultCount >= this.minimumResultsCount);
13
- }
14
- async forSitemapGeneratorWithPageNumber(filterKeyValues, pageNumber) {
15
- if (!this.searchApiClient) {
16
- throw new DependencyMissingError('SearchApiClient');
17
- }
18
- const count = await this.searchApiClient.getCount(filterKeyValues);
19
- return count >= (pageNumber - 1) * this.maximumPageSize + this.minimumResultsCount;
20
- }
21
- forSitemapGenerator() {
22
- throw new Error('Method not implemented.');
23
- }
24
- getName() {
25
- return 'AtLeastSevenResultsRule';
26
- }
27
- getDescription() {
28
- return 'Is indexable if there are at least 2 results.';
29
- }
30
- }