@kth/om-kursen-ladok-client 2.3.2 → 2.4.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 (88) hide show
  1. package/dist/attributVardenConstants.d.ts +5 -5
  2. package/dist/attributVardenConstants.js +8 -8
  3. package/dist/attributVardenConstants.js.map +1 -1
  4. package/dist/createApiClient.js +41 -41
  5. package/dist/createApiClient.js.map +1 -1
  6. package/dist/kth/KTHPeriod/calculateKTHPeriodSemesterFromTillfallesperiod.d.ts +1 -1
  7. package/dist/kth/KTHPeriod/extractKTHPeriodSemesterFromLasperiodsfordelning.d.ts +1 -1
  8. package/dist/kth/KTHPeriod/getKTHPeriodSemesters.d.ts +1 -1
  9. package/dist/{mapCourseRound.d.ts → mapCourseInstance.d.ts} +2 -2
  10. package/dist/{mapCourseRound.js → mapCourseInstance.js} +4 -4
  11. package/dist/mapCourseInstance.js.map +1 -0
  12. package/dist/{mapCourse.d.ts → mapCourseVersion.d.ts} +2 -2
  13. package/dist/{mapCourse.js → mapCourseVersion.js} +4 -4
  14. package/dist/mapCourseVersion.js.map +1 -0
  15. package/dist/{mapProgramTillfalle.d.ts → mapProgrammeInstance.d.ts} +2 -2
  16. package/dist/{mapProgramTillfalle.js → mapProgrammeInstance.js} +4 -4
  17. package/dist/mapProgrammeInstance.js.map +1 -0
  18. package/dist/{mapProgramTerm.d.ts → mapProgrammeSemester.d.ts} +2 -3
  19. package/dist/{mapProgramTerm.js → mapProgrammeSemester.js} +4 -4
  20. package/dist/mapProgrammeSemester.js.map +1 -0
  21. package/dist/{mapProgramSyllabus.d.ts → mapProgrammeSyllabus.d.ts} +3 -3
  22. package/dist/{mapProgramSyllabus.js → mapProgrammeSyllabus.js} +9 -9
  23. package/dist/mapProgrammeSyllabus.js.map +1 -0
  24. package/dist/mapSearchResult.d.ts +1 -1
  25. package/dist/mapSearchResult.js +21 -21
  26. package/dist/mapSearchResult.js.map +1 -1
  27. package/dist/programme/createProgrammeApi.js +5 -5
  28. package/dist/programme/createProgrammeApi.js.map +1 -1
  29. package/dist/programme/types.d.ts +5 -5
  30. package/dist/programme/utbildningsTypIdConstants.d.ts +1 -1
  31. package/dist/programme/utbildningsTypIdConstants.js +1 -1
  32. package/dist/programme/utils/programmeVersionUtil.d.ts +3 -3
  33. package/dist/programme/utils/programmeVersionUtil.js +6 -6
  34. package/dist/programme/utils/programmeVersionUtil.js.map +1 -1
  35. package/dist/search/createSearchApi.js +4 -4
  36. package/dist/search/createSearchApi.js.map +1 -1
  37. package/dist/search/searchService.js +6 -6
  38. package/dist/search/searchService.js.map +1 -1
  39. package/dist/search/types.d.ts +2 -2
  40. package/dist/search/utils/educationalTypeUtils.d.ts +1 -1
  41. package/dist/search/utils/educationalTypeUtils.js +3 -3
  42. package/dist/search/utils/educationalTypeUtils.js.map +1 -1
  43. package/dist/search/utils/getLatestCompletedCourseVersions.d.ts +2 -2
  44. package/dist/search/utils/mapCourseInstanceSearchDTO.d.ts +3 -0
  45. package/dist/search/utils/mapCourseInstanceSearchDTO.js +42 -0
  46. package/dist/search/utils/mapCourseInstanceSearchDTO.js.map +1 -0
  47. package/dist/search/utils/mapCourseVersionDTO.d.ts +2 -2
  48. package/dist/search/utils/mapCourseVersionDTO.js.map +1 -1
  49. package/dist/search/utils/searchUtils.d.ts +3 -3
  50. package/dist/search/utils/searchUtils.js +7 -7
  51. package/dist/search/utils/searchUtils.js.map +1 -1
  52. package/dist/supportApis/supportService.js +1 -1
  53. package/dist/supportApis/supportService.js.map +1 -1
  54. package/dist/types/OmKursenLadokApiClient.d.ts +16 -16
  55. package/dist/utils/filterCourseInstanceUtils.d.ts +7 -0
  56. package/dist/utils/filterCourseInstanceUtils.js +20 -0
  57. package/dist/utils/filterCourseInstanceUtils.js.map +1 -0
  58. package/dist/utils/index.d.ts +1 -1
  59. package/dist/utils/index.js +1 -1
  60. package/dist/utils/index.js.map +1 -1
  61. package/dist/utils/periodUtil.d.ts +1 -1
  62. package/dist/utils/periodUtil.js +12 -12
  63. package/dist/utils/periodUtil.js.map +1 -1
  64. package/dist/utils/{programStrukturUtil.d.ts → programmeStructureUtil.d.ts} +7 -7
  65. package/dist/utils/{programStrukturUtil.js → programmeStructureUtil.js} +40 -40
  66. package/dist/utils/programmeStructureUtil.js.map +1 -0
  67. package/dist/utils/programmeUtil.d.ts +39 -0
  68. package/dist/utils/{programUtil.js → programmeUtil.js} +128 -128
  69. package/dist/utils/programmeUtil.js.map +1 -0
  70. package/dist/utils/studyYearUtil.d.ts +3 -3
  71. package/dist/utils/studyYearUtil.js.map +1 -1
  72. package/dist/utils/syllabusExtractionUtil.js +2 -2
  73. package/dist/utils/syllabusExtractionUtil.js.map +1 -1
  74. package/package.json +2 -2
  75. package/dist/mapCourse.js.map +0 -1
  76. package/dist/mapCourseRound.js.map +0 -1
  77. package/dist/mapProgramSyllabus.js.map +0 -1
  78. package/dist/mapProgramTerm.js.map +0 -1
  79. package/dist/mapProgramTillfalle.js.map +0 -1
  80. package/dist/search/utils/mapCourseRoundSearchDTO.d.ts +0 -3
  81. package/dist/search/utils/mapCourseRoundSearchDTO.js +0 -42
  82. package/dist/search/utils/mapCourseRoundSearchDTO.js.map +0 -1
  83. package/dist/utils/filterCourseRoundUtils.d.ts +0 -7
  84. package/dist/utils/filterCourseRoundUtils.js +0 -20
  85. package/dist/utils/filterCourseRoundUtils.js.map +0 -1
  86. package/dist/utils/programStrukturUtil.js.map +0 -1
  87. package/dist/utils/programUtil.d.ts +0 -39
  88. package/dist/utils/programUtil.js.map +0 -1
@@ -9,21 +9,21 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.createProgramCurriculumsData = exports.generateCurriculumsFromSyllabusOnly = exports.findProgramSyllabusForSemester = exports.determineCurriculumFetchFlags = exports.findProgramInstance = exports.findProgramVersion = exports.getProgramTerms = exports.hasCourseListMarking = exports.filterAndMapProgramInstans = exports.selectProgramInstans = exports.filterAndMapProgramTillfalle = void 0;
13
- exports.getAllProgrammeSpecializationCodes = getAllProgrammeSpecializationCodes;
12
+ exports.createProgrammeCurriculumsData = exports.generateCurriculumsFromSyllabusOnly = exports.findProgrammeSyllabusForSemester = exports.determineCurriculumFetchFlags = exports.findProgrammeInstance = exports.findProgrammeVersion = exports.getProgrammeVersionSemesters = exports.hasCourseListMarking = exports.filterAndMapProgrammeVersion = exports.selectProgrammeVersion = exports.filterAndMapProgrammeInstance = void 0;
13
+ exports.getAllProgrammeSpecialisationCodes = getAllProgrammeSpecialisationCodes;
14
14
  exports.enrichCurriculumsInformationDataWithSyllabusData = enrichCurriculumsInformationDataWithSyllabusData;
15
15
  exports.enrichCurriculumsCourseListDataWithSyllabusData = enrichCurriculumsCourseListDataWithSyllabusData;
16
- const mapProgramTillfalle_1 = require("../mapProgramTillfalle");
16
+ const mapProgrammeInstance_1 = require("../mapProgrammeInstance");
17
17
  const mapProgrammeVersion_1 = require("../mapProgrammeVersion");
18
18
  const periodUtil_1 = require("./periodUtil");
19
19
  const ladok_attributvarde_utils_1 = require("@kth/ladok-attributvarde-utils");
20
- const mapProgramTerm_1 = require("../mapProgramTerm");
20
+ const mapProgrammeSemester_1 = require("../mapProgrammeSemester");
21
21
  const studyYearUtil_1 = require("./studyYearUtil");
22
22
  const typeChecking_1 = require("./typeChecking");
23
23
  const versionUtils_1 = require("./versionUtils");
24
- const programStrukturUtil_1 = require("./programStrukturUtil");
24
+ const programmeStructureUtil_1 = require("./programmeStructureUtil");
25
25
  const courseSyllabusUtil_1 = require("./courseSyllabusUtil");
26
- const mapProgramSyllabus_1 = require("../mapProgramSyllabus");
26
+ const mapProgrammeSyllabus_1 = require("../mapProgrammeSyllabus");
27
27
  const attributVardenConstants_1 = require("../attributVardenConstants");
28
28
  const AcademicSemester_1 = require("./AcademicSemester");
29
29
  const mergeResponses_1 = require("./mergeResponses");
@@ -31,7 +31,7 @@ const getAllEntitiesByUseOfContinuation_1 = require("./getAllEntitiesByUseOfCont
31
31
  const queryConstants_1 = require("../queryConstants");
32
32
  const responseUtils_1 = require("./responseUtils");
33
33
  const SEMESTER_FOR_START_READING_STRUCTURES = {
34
- code: 'HT2025', // we will increase 2025 by {lengthInStudyYear} (maximum study year that we have for a program) since there can be ongoing programs until 2025
34
+ code: 'HT2025', // we will increase 2025 by {lengthInStudyYear} (maximum study year that we have for a programme) since there can be ongoing programmes until 2025
35
35
  year: 2025,
36
36
  }; // Based on the following document: https://confluence.sys.kth.se/confluence/pages/viewpage.action?pageId=262933569
37
37
  const DATE_FOR_START_READING_SYLLABUSES = '1998-01-01';
@@ -39,61 +39,61 @@ const SEMESTER_FOR_END_READING_SYLLABUSES = {
39
39
  code: 'VT2025',
40
40
  date: '2025-06-02',
41
41
  }; // Based on the follwoing document: https://confluence.sys.kth.se/confluence/pages/viewpage.action?pageId=262933569
42
- const filterAndMapProgramTillfalle = (items, language) => {
42
+ const filterAndMapProgrammeInstance = (items, language) => {
43
43
  return items
44
- .map(x => (0, mapProgramTillfalle_1.mapProgramTillfalle)(x, language))
44
+ .map(x => (0, mapProgrammeInstance_1.mapProgrammeInstance)(x, language))
45
45
  .filter(x => x !== undefined)
46
46
  .filter(x => (0, exports.hasCourseListMarking)(x.lokalmarkning));
47
47
  };
48
- exports.filterAndMapProgramTillfalle = filterAndMapProgramTillfalle;
49
- const selectProgramInstans = (code, periods, programs) => {
48
+ exports.filterAndMapProgrammeInstance = filterAndMapProgrammeInstance;
49
+ const selectProgrammeVersion = (code, periods, programmeVersions) => {
50
50
  if (code) {
51
- return (0, periodUtil_1.findValidProgramForCode)(code, periods, programs);
51
+ return (0, periodUtil_1.findValidProgrammeVersionForCode)(code, periods, programmeVersions);
52
52
  }
53
- return (0, versionUtils_1.findLatestVersion)(programs);
53
+ return (0, versionUtils_1.findLatestVersion)(programmeVersions);
54
54
  };
55
- exports.selectProgramInstans = selectProgramInstans;
56
- const filterAndMapProgramInstans = (items, periods, code, language, ladokClient
57
- // TODO: needs to be refactored to use addFirstAdmissionTerm when we are moving programme related stuff to Programme scope
55
+ exports.selectProgrammeVersion = selectProgrammeVersion;
56
+ const filterAndMapProgrammeVersion = (items, periods, code, language, ladokClient
57
+ // TODO: needs to be refactored to use addFirstAdmissionSemester when we are moving programme related stuff to Programme scope
58
58
  ) => __awaiter(void 0, void 0, void 0, function* () {
59
59
  var _a, _b;
60
- const mappedPrograms = items
60
+ const mappedProgrammeVersions = items
61
61
  .map(item => (0, mapProgrammeVersion_1.mapProgrammeVersion)(item, language))
62
- .filter((program) => !!program);
63
- // A program can have different versions, we need to have the oldest one to know what is the first admission date for the program
64
- const oldestVersion = (0, versionUtils_1.findOldestVersion)(mappedPrograms);
65
- const selectedProgram = (0, exports.selectProgramInstans)(code, periods, mappedPrograms);
66
- if (!selectedProgram || !oldestVersion)
62
+ .filter((programme) => !!programme);
63
+ // A programem can have different versions, we need to have the oldest one to know what is the first admission date for the programme
64
+ const oldestProgrammeVersion = (0, versionUtils_1.findOldestVersion)(mappedProgrammeVersions);
65
+ const selectedProgrammeVersion = (0, exports.selectProgrammeVersion)(code, periods, mappedProgrammeVersions);
66
+ if (!selectedProgrammeVersion || !oldestProgrammeVersion)
67
67
  return undefined;
68
- const approvedStudyProgrammeTerms = yield (0, exports.getProgramTerms)(selectedProgram, oldestVersion, language, ladokClient);
69
- const firstAdmissionTerm = ((_a = oldestVersion.giltigFrom) === null || _a === void 0 ? void 0 : _a.code)
70
- ? AcademicSemester_1.AcademicSemester.fromLadokPeriodString((_b = oldestVersion.giltigFrom) === null || _b === void 0 ? void 0 : _b.code)
68
+ const approvedStudyProgrammeSemesters = yield (0, exports.getProgrammeVersionSemesters)(selectedProgrammeVersion, oldestProgrammeVersion, ladokClient);
69
+ const firstAdmissionSemester = ((_a = oldestProgrammeVersion.giltigFrom) === null || _a === void 0 ? void 0 : _a.code)
70
+ ? AcademicSemester_1.AcademicSemester.fromLadokPeriodString((_b = oldestProgrammeVersion.giltigFrom) === null || _b === void 0 ? void 0 : _b.code)
71
71
  : undefined;
72
- return Object.assign(Object.assign({}, selectedProgram), { approvedStudyProgrammeTerms, firstAdmissionTerm });
72
+ return Object.assign(Object.assign({}, selectedProgrammeVersion), { approvedStudyProgrammeSemesters, firstAdmissionSemester });
73
73
  });
74
- exports.filterAndMapProgramInstans = filterAndMapProgramInstans;
74
+ exports.filterAndMapProgrammeVersion = filterAndMapProgrammeVersion;
75
75
  const hasCourseListMarking = (lokalmarkning) => {
76
76
  var _a;
77
77
  return ((_a = lokalmarkning === null || lokalmarkning === void 0 ? void 0 : lokalmarkning.some(attr => attr.markningsnyckel.code === ladok_attributvarde_utils_1.MarkningsnyckelCode.Kurslista &&
78
78
  attr.markningsvarde.code === ladok_attributvarde_utils_1.MarkningsvardeCode.Ja)) !== null && _a !== void 0 ? _a : false);
79
79
  };
80
80
  exports.hasCourseListMarking = hasCourseListMarking;
81
- const getTerminKodStartForFetchStructures = (programLengthInYears) => {
81
+ const getTerminKodStartForFetchStructures = (programmeLengthInYears) => {
82
82
  /*
83
- * Calculates the earliest term code (`terminKodStart`) from which to start reading program structures to find activeProgramTerms.
83
+ * Calculates the earliest semester code (`terminKodStart`) from which to start reading programme structures to find activeProgramSemesters.
84
84
  *
85
- * Example: If the current semester is HT2025 and the program runs for 3 years,
86
- * we calculate HT2022 to ensure we capture all ongoing or overlapping program instances.
85
+ * Example: If the current semester is HT2025 and the programme runs for 3 years,
86
+ * we calculate HT2022 to ensure we capture all ongoing or overlapping programme instances.
87
87
  */
88
- const startYear = SEMESTER_FOR_START_READING_STRUCTURES.year - programLengthInYears + 1;
88
+ const startYear = SEMESTER_FOR_START_READING_STRUCTURES.year - programmeLengthInYears + 1;
89
89
  return `HT${startYear}`;
90
90
  };
91
- const getProgramTerms = (program, oldestProgram, language, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
91
+ const getProgrammeVersionSemesters = (programmeVersion, oldestProgram, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
92
92
  var _a, _b, _c, _d;
93
- const { kod, sistaAntagningstermin } = program;
93
+ const { kod, sistaAntagningstermin } = programmeVersion;
94
94
  const periods = yield ladokClient.period();
95
95
  const periodsData = (0, responseUtils_1.throwIfError)(periods);
96
- const lastAdmissionTermData = sistaAntagningstermin
96
+ const lastAdmissionSemesterData = sistaAntagningstermin
97
97
  ? (0, periodUtil_1.findPeriodByKod)(sistaAntagningstermin.toLadokPeriodString(), periodsData.Period)
98
98
  : undefined;
99
99
  // 1. getting period data
@@ -101,7 +101,7 @@ const getProgramTerms = (program, oldestProgram, language, ladokClient) => __awa
101
101
  kodEllerBenamning: kod,
102
102
  baraSistaVersion: 'false',
103
103
  striktKod: 'true',
104
- terminKodStart: getTerminKodStartForFetchStructures(program.lengthInStudyYears),
104
+ terminKodStart: getTerminKodStartForFetchStructures(programmeVersion.lengthInStudyYears),
105
105
  attributVarden: 'status,utbildning.attribut.lokalmarkning,utbildning.attribut.startperiod,utbildning.attribut.kod',
106
106
  antalTraffar: queryConstants_1.MAX_ANTAL_TRAFFAR,
107
107
  };
@@ -109,84 +109,84 @@ const getProgramTerms = (program, oldestProgram, language, ladokClient) => __awa
109
109
  // 2. searching for structures
110
110
  const skipSyllabusesCheck = !!((_a = oldestProgram.giltigFrom) === null || _a === void 0 ? void 0 : _a.startDay) && oldestProgram.giltigFrom.startDay > SEMESTER_FOR_END_READING_SYLLABUSES.date;
111
111
  let allEntitiesForSyllabuses;
112
- // here we will sort out invalid syllabuses terms as well, we need syllabuses being valid after the giltigFran data and before sistaAntagningstermin date
112
+ // here we will sort out invalid syllabuses semesters as well, we need syllabuses being valid after the giltigFran data and before sistaAntagningstermin date
113
113
  if (!skipSyllabusesCheck) {
114
114
  const requestObjectForSyllabuses = {
115
115
  kodEllerBenamning: kod,
116
116
  striktKod: 'true',
117
117
  tillstand: 'BESLUTAD',
118
118
  attributVarden: 'utbildning.lokalt.attribut.29.utgava',
119
- giltigTill: (_b = lastAdmissionTermData === null || lastAdmissionTermData === void 0 ? void 0 : lastAdmissionTermData.TomDatum) !== null && _b !== void 0 ? _b : SEMESTER_FOR_END_READING_SYLLABUSES.date,
119
+ giltigTill: (_b = lastAdmissionSemesterData === null || lastAdmissionSemesterData === void 0 ? void 0 : lastAdmissionSemesterData.TomDatum) !== null && _b !== void 0 ? _b : SEMESTER_FOR_END_READING_SYLLABUSES.date,
120
120
  giltigFran: (_d = (_c = oldestProgram.giltigFrom) === null || _c === void 0 ? void 0 : _c.startDay) !== null && _d !== void 0 ? _d : DATE_FOR_START_READING_SYLLABUSES, // we are not able to add giltigTill without giltigFran so this is added for that purpose only
121
121
  antalTraffar: queryConstants_1.MAX_ANTAL_TRAFFAR,
122
122
  };
123
123
  const { allEntities } = yield (0, getAllEntitiesByUseOfContinuation_1.getAllEntitiesByUseOfContinuation)(ladokClient.sokPlanSlim, requestObjectForSyllabuses);
124
124
  allEntitiesForSyllabuses = allEntities;
125
125
  }
126
- // 3. searching for sylabuses
127
- let programTermsFromStructures = [];
126
+ // 3. searching for syllabuses
127
+ let programmeSemestersFromStructures = [];
128
128
  if (allEntitiesForStructures) {
129
- const mappedTerms = allEntitiesForStructures.map(x => (0, mapProgramTerm_1.mapProgramTerm)(x, language)).filter(Boolean);
130
- const filteredTerms = mappedTerms.filter(x => (0, exports.hasCourseListMarking)(x.lokalmarkning));
131
- const startPeriods = filteredTerms.map(x => x.startPeriod);
132
- programTermsFromStructures = startPeriods;
129
+ const mappedSemesters = allEntitiesForStructures.map(x => (0, mapProgrammeSemester_1.mapProgrammeSemester)(x)).filter(Boolean);
130
+ const filteredSemesters = mappedSemesters.filter(x => (0, exports.hasCourseListMarking)(x.lokalmarkning));
131
+ const startPeriods = filteredSemesters.map(x => x.startPeriod);
132
+ programmeSemestersFromStructures = startPeriods;
133
133
  }
134
134
  // 4. startPeriod for all found structures
135
- let programTermsFromSyllabuses = [];
135
+ let programmeSemestersFromSyllabuses = [];
136
136
  if (allEntitiesForSyllabuses) {
137
137
  const validSyllabuses = allEntitiesForSyllabuses.filter((syllabus) => !!syllabus && 'GiltigFran' in syllabus);
138
138
  const matchedPeriodCodes = validSyllabuses
139
139
  .map(x => { var _a; return (_a = (0, studyYearUtil_1.findMatchingPeriod)(x.GiltigFran, periodsData.Period)) === null || _a === void 0 ? void 0 : _a.Kod; })
140
140
  .filter(typeChecking_1.isDefined);
141
- const filteredTerms = matchedPeriodCodes.filter(x => (x === null || x === void 0 ? void 0 : x.includes('VT')) || (x === null || x === void 0 ? void 0 : x.includes('HT')));
142
- programTermsFromSyllabuses = filteredTerms;
141
+ const filteredSemesters = matchedPeriodCodes.filter(x => (x === null || x === void 0 ? void 0 : x.includes('VT')) || (x === null || x === void 0 ? void 0 : x.includes('HT')));
142
+ programmeSemestersFromSyllabuses = filteredSemesters;
143
143
  }
144
144
  // 5. converted GiltigFran for all founded syllabuses
145
- const uniqueProgramTerms = Array.from(new Set([...programTermsFromStructures, ...programTermsFromSyllabuses]));
146
- const finalProgramTerms = uniqueProgramTerms.length
147
- ? uniqueProgramTerms
148
- .map(term => (0, periodUtil_1.transformPeriodInDigits)(term))
145
+ const uniqueProgrammeSemesters = Array.from(new Set([...programmeSemestersFromStructures, ...programmeSemestersFromSyllabuses]));
146
+ const finalProgrammeSemesters = uniqueProgrammeSemesters.length
147
+ ? uniqueProgrammeSemesters
148
+ .map(semester => (0, periodUtil_1.transformPeriodInDigits)(semester))
149
149
  .filter((period) => typeof period === 'string')
150
150
  : [];
151
- return finalProgramTerms;
151
+ return finalProgrammeSemesters;
152
152
  });
153
- exports.getProgramTerms = getProgramTerms;
154
- const findProgramVersion = (programCode, semester, language, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
153
+ exports.getProgrammeVersionSemesters = getProgrammeVersionSemesters;
154
+ const findProgrammeVersion = (programmeCode, semester, language, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
155
155
  const requestObject = {
156
- kodEllerBenamning: programCode,
156
+ kodEllerBenamning: programmeCode,
157
157
  striktKod: 'true',
158
158
  typ: 'program',
159
- instansAttributVarden: attributVardenConstants_1.INSTANS_ATTRIBUT_VARDEN_FOR_PROGRAM_VERSION,
159
+ instansAttributVarden: attributVardenConstants_1.INSTANS_ATTRIBUT_VARDEN_FOR_PROGRAMME_VERSION,
160
160
  };
161
- const [{ allEntities: allEntitiesActiveProgrammes }, { allEntities: allEntitiesAvveckladProgrammes }] = yield Promise.all([
161
+ const [{ allEntities: allEntitiesActiveProgrammes }, { allEntities: allEntitiesDiscontinuedProgrammes }] = yield Promise.all([
162
162
  (0, getAllEntitiesByUseOfContinuation_1.getAllEntitiesByUseOfContinuation)(ladokClient.sokUtbildningsInstansSlim, Object.assign({}, requestObject)),
163
163
  (0, getAllEntitiesByUseOfContinuation_1.getAllEntitiesByUseOfContinuation)(ladokClient.sokUtbildningsInstansSlim, Object.assign({ avvecklad: 'true' }, requestObject)),
164
164
  ]);
165
- const response = (0, mergeResponses_1.mergePlainArrays)(allEntitiesActiveProgrammes, allEntitiesAvveckladProgrammes, item => item.instans_uid);
165
+ const response = (0, mergeResponses_1.mergePlainArrays)(allEntitiesActiveProgrammes, allEntitiesDiscontinuedProgrammes, item => item.instans_uid);
166
166
  const periods = yield ladokClient.period(); // TODO: Use cached values
167
167
  const periodsData = (0, responseUtils_1.throwIfError)(periods);
168
- const programInstans = yield (0, exports.filterAndMapProgramInstans)(response, periodsData.Period, semester, language, ladokClient);
169
- return programInstans;
168
+ const programmeVersion = yield (0, exports.filterAndMapProgrammeVersion)(response, periodsData.Period, semester, language, ladokClient);
169
+ return programmeVersion;
170
170
  });
171
- exports.findProgramVersion = findProgramVersion;
172
- const findProgramInstance = (programCode, semester, language, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
171
+ exports.findProgrammeVersion = findProgrammeVersion;
172
+ const findProgrammeInstance = (programmeCode, semester, language, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
173
173
  const requestObject = {
174
- kodEllerBenamning: programCode,
174
+ kodEllerBenamning: programmeCode,
175
175
  startPeriod: semester,
176
176
  striktKod: 'true',
177
177
  baraSistaVersion: 'false',
178
- attributVarden: attributVardenConstants_1.ATTRIBUT_VARDEN_FOR_ACTIVE_PROGRAM_INSTANCE,
179
- instansAttributVarden: attributVardenConstants_1.INSTANS_ATTRIBUT_VARDEN_FOR_ACTIVE_PROGRAM_INSTANCE,
178
+ attributVarden: attributVardenConstants_1.ATTRIBUT_VARDEN_FOR_ACTIVE_PROGRAMME_INSTANCE,
179
+ instansAttributVarden: attributVardenConstants_1.INSTANS_ATTRIBUT_VARDEN_FOR_ACTIVE_PROGRAMME_INSTANCE,
180
180
  antalTraffar: queryConstants_1.MAX_ANTAL_TRAFFAR,
181
181
  };
182
182
  const { allEntities } = yield (0, getAllEntitiesByUseOfContinuation_1.getAllEntitiesByUseOfContinuation)(ladokClient.sokProgramTillfalleSlim, requestObject, {
183
183
  maxSearchResultsToReturn: 1000,
184
184
  maxContinuationIterations: 10,
185
185
  });
186
- const programTillfalleList = (0, exports.filterAndMapProgramTillfalle)(allEntities, language);
187
- return (programTillfalleList === null || programTillfalleList === void 0 ? void 0 : programTillfalleList.length) ? programTillfalleList[0] : undefined;
186
+ const programmeInstanceList = (0, exports.filterAndMapProgrammeInstance)(allEntities, language);
187
+ return (programmeInstanceList === null || programmeInstanceList === void 0 ? void 0 : programmeInstanceList.length) ? programmeInstanceList[0] : undefined;
188
188
  });
189
- exports.findProgramInstance = findProgramInstance;
189
+ exports.findProgrammeInstance = findProgrammeInstance;
190
190
  const determineCurriculumFetchFlags = (studyYear, lengthInStudyYears) => {
191
191
  const startYearDiff = lengthInStudyYears + studyYear - SEMESTER_FOR_START_READING_STRUCTURES.year;
192
192
  const onlyStructure = startYearDiff >= lengthInStudyYears;
@@ -198,17 +198,17 @@ const determineCurriculumFetchFlags = (studyYear, lengthInStudyYears) => {
198
198
  };
199
199
  };
200
200
  exports.determineCurriculumFetchFlags = determineCurriculumFetchFlags;
201
- function getAllProgrammeSpecializationCodes(curriculums) {
201
+ function getAllProgrammeSpecialisationCodes(curriculums) {
202
202
  return curriculums
203
- .map(c => { var _a; return (_a = c.programmeSpecialization) === null || _a === void 0 ? void 0 : _a.programmeSpecializationCode; })
203
+ .map(c => { var _a; return (_a = c.programmeSpecialisation) === null || _a === void 0 ? void 0 : _a.programmeSpecialisationCode; })
204
204
  .filter((code) => typeof code === 'string');
205
205
  }
206
- const findProgramSyllabusForSemester = (programCode, semester, language, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
206
+ const findProgrammeSyllabusForSemester = (programmeCode, semester, language, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
207
207
  const periods = yield ladokClient.period(); // TODO: get this from cached value in future
208
208
  const periodsData = (0, responseUtils_1.throwIfError)(periods);
209
209
  const smesterPeriodData = (0, periodUtil_1.findPeriodByKod)(semester, periodsData.Period);
210
210
  const requestObjectForSyllabuses = {
211
- kodEllerBenamning: programCode,
211
+ kodEllerBenamning: programmeCode,
212
212
  striktKod: 'true',
213
213
  tillstand: 'BESLUTAD',
214
214
  attributVarden: 'utbildning.lokalt.attribut.29.utgava',
@@ -220,38 +220,38 @@ const findProgramSyllabusForSemester = (programCode, semester, language, ladokCl
220
220
  const { allEntities } = yield (0, getAllEntitiesByUseOfContinuation_1.getAllEntitiesByUseOfContinuation)(ladokClient.sokPlanSlim, requestObjectForSyllabuses);
221
221
  const validSyllabuses = allEntities.filter((syllabus) => !!syllabus && 'GiltigFran' in syllabus);
222
222
  if (!(validSyllabuses === null || validSyllabuses === void 0 ? void 0 : validSyllabuses.length))
223
- throw new Error(`No program syllabuses found for ${programCode} - ${semester}`);
223
+ throw new Error(`No programme syllabuses found for ${programmeCode} - ${semester}`);
224
224
  const sortedSyllabuses = (0, courseSyllabusUtil_1.sortSyllabuses)(validSyllabuses);
225
225
  if (!sortedSyllabuses.length)
226
- throw new Error(`No program syllabuses found for ${programCode} - ${semester}`);
226
+ throw new Error(`No programme syllabuses found for ${programmeCode} - ${semester}`);
227
227
  const plan_uid = sortedSyllabuses[0].plan_uid;
228
228
  const responseForSelectedSyllabus = yield ladokClient.planForUtbildning(plan_uid);
229
229
  if (!(responseForSelectedSyllabus === null || responseForSelectedSyllabus === void 0 ? void 0 : responseForSelectedSyllabus.data))
230
230
  throw new Error(`Error in fetching syllabus data for ${plan_uid}`);
231
- return (0, mapProgramSyllabus_1.mapProgramSyllabus)(responseForSelectedSyllabus.data, periodsData.Period, language);
231
+ return (0, mapProgrammeSyllabus_1.mapProgrammeSyllabus)(responseForSelectedSyllabus.data, periodsData.Period, language);
232
232
  });
233
- exports.findProgramSyllabusForSemester = findProgramSyllabusForSemester;
234
- const hasSpecialization = (curriculum) => {
233
+ exports.findProgrammeSyllabusForSemester = findProgrammeSyllabusForSemester;
234
+ const hasSpecialisation = (curriculum) => {
235
235
  var _a, _b;
236
- return (!!((_a = curriculum.programmeSpecialization) === null || _a === void 0 ? void 0 : _a.programmeSpecializationCode) && !!((_b = curriculum.programmeSpecialization) === null || _b === void 0 ? void 0 : _b.title));
236
+ return (!!((_a = curriculum.programmeSpecialisation) === null || _a === void 0 ? void 0 : _a.programmeSpecialisationCode) && !!((_b = curriculum.programmeSpecialisation) === null || _b === void 0 ? void 0 : _b.title));
237
237
  };
238
238
  function enrichCurriculumsInformationDataWithSyllabusData(curriculums, syllabusData) {
239
- // Index specializations by their 'kod'
239
+ // Index specialisations by their 'kod'
240
240
  if (!syllabusData)
241
241
  return curriculums;
242
- const specializationDataMap = new Map();
243
- for (const specialization of syllabusData.specializations || []) {
244
- if (specialization.kod) {
245
- specializationDataMap.set(specialization.kod, specialization);
242
+ const specialisationDataMap = new Map();
243
+ for (const specialisation of syllabusData.specialisations || []) {
244
+ if (specialisation.kod) {
245
+ specialisationDataMap.set(specialisation.kod, specialisation);
246
246
  }
247
247
  }
248
248
  return curriculums.map(curriculum => {
249
249
  var _a;
250
- const isSpecialization = hasSpecialization(curriculum);
251
- const specCode = (_a = curriculum.programmeSpecialization) === null || _a === void 0 ? void 0 : _a.programmeSpecializationCode;
252
- const dataSource = isSpecialization ? specializationDataMap.get(specCode) : syllabusData;
253
- if (isSpecialization)
254
- curriculum.programmeSpecialization.description = dataSource === null || dataSource === void 0 ? void 0 : dataSource.beskrivning;
250
+ const isSpecialisation = hasSpecialisation(curriculum);
251
+ const specCode = (_a = curriculum.programmeSpecialisation) === null || _a === void 0 ? void 0 : _a.programmeSpecialisationCode;
252
+ const dataSource = isSpecialisation ? specialisationDataMap.get(specCode) : syllabusData;
253
+ if (isSpecialisation)
254
+ curriculum.programmeSpecialisation.description = dataSource === null || dataSource === void 0 ? void 0 : dataSource.beskrivning;
255
255
  const enrichedStudyYears = curriculum.studyYears.map(studyYear => {
256
256
  const year = studyYear.yearNumber;
257
257
  return Object.assign(Object.assign({}, studyYear), { supplementaryInfo: (dataSource === null || dataSource === void 0 ? void 0 : dataSource[`arskursinformationAr${year}`]) || undefined, conditionallyElectiveCoursesInfo: (dataSource === null || dataSource === void 0 ? void 0 : dataSource[`infoVvkurserAr${year}`]) || undefined });
@@ -259,18 +259,18 @@ function enrichCurriculumsInformationDataWithSyllabusData(curriculums, syllabusD
259
259
  return Object.assign(Object.assign({}, curriculum), { studyYears: enrichedStudyYears });
260
260
  });
261
261
  }
262
- function enrichCurriculumsCourseListDataWithSyllabusData(curriculums, programSyllabus, baseYear) {
263
- if (!programSyllabus)
262
+ function enrichCurriculumsCourseListDataWithSyllabusData(curriculums, programmeSyllabus, baseYear) {
263
+ if (!programmeSyllabus)
264
264
  return curriculums;
265
265
  return curriculums.map(curriculum => {
266
- // Only update the main (non-specialization) curriculum
267
- if (curriculum.programmeSpecialization)
266
+ // Only update the main (non-specialisation) curriculum
267
+ if (curriculum.programmeSpecialisation)
268
268
  return curriculum;
269
269
  const updatedStudyYears = curriculum.studyYears.map(studyYear => {
270
270
  const yearNum = studyYear.yearNumber;
271
271
  const fullYear = baseYear + (yearNum - 1);
272
272
  const syllabusField = `kurslistaar${yearNum}`;
273
- const syllabusHtml = programSyllabus[syllabusField];
273
+ const syllabusHtml = programmeSyllabus[syllabusField];
274
274
  if (fullYear < SEMESTER_FOR_START_READING_STRUCTURES.year && typeof syllabusHtml === 'string') {
275
275
  return Object.assign(Object.assign({}, studyYear), { courses: syllabusHtml });
276
276
  }
@@ -279,13 +279,13 @@ function enrichCurriculumsCourseListDataWithSyllabusData(curriculums, programSyl
279
279
  return Object.assign(Object.assign({}, curriculum), { studyYears: updatedStudyYears });
280
280
  });
281
281
  }
282
- const generateCurriculumsFromSyllabusOnly = (programSyllabus, baseYear, lengthInStudyYears) => {
282
+ const generateCurriculumsFromSyllabusOnly = (programmeSyllabus, lengthInStudyYears) => {
283
283
  var _a;
284
- const programCurriculum = [];
284
+ const programmeCurriculum = [];
285
285
  // --- Main curriculum ---
286
286
  const mainStudyYears = [];
287
287
  for (let year = 1; year <= lengthInStudyYears; year++) {
288
- const courseHtml = programSyllabus[`kurslistaar${year}`];
288
+ const courseHtml = programmeSyllabus[`kurslistaar${year}`];
289
289
  if (typeof courseHtml === 'string') {
290
290
  mainStudyYears.push({
291
291
  yearNumber: year,
@@ -294,61 +294,61 @@ const generateCurriculumsFromSyllabusOnly = (programSyllabus, baseYear, lengthIn
294
294
  }
295
295
  }
296
296
  if (mainStudyYears.length > 0) {
297
- programCurriculum.push({ studyYears: mainStudyYears });
297
+ programmeCurriculum.push({ studyYears: mainStudyYears });
298
298
  }
299
- // --- Specializations ---
300
- for (const spec of (_a = programSyllabus.specializations) !== null && _a !== void 0 ? _a : []) {
299
+ // --- Specialisations ---
300
+ for (const spec of (_a = programmeSyllabus.specialisations) !== null && _a !== void 0 ? _a : []) {
301
301
  const studyYears = [];
302
- programCurriculum.push({
302
+ programmeCurriculum.push({
303
303
  studyYears,
304
- programmeSpecialization: {
305
- programmeSpecializationCode: spec.kod,
304
+ programmeSpecialisation: {
305
+ programmeSpecialisationCode: spec.kod,
306
306
  title: spec.benamning,
307
307
  description: spec.beskrivning,
308
308
  },
309
309
  });
310
310
  }
311
- return programCurriculum;
311
+ return programmeCurriculum;
312
312
  };
313
313
  exports.generateCurriculumsFromSyllabusOnly = generateCurriculumsFromSyllabusOnly;
314
- const createProgramCurriculumsData = (programCode, semester, language, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
315
- const programVersion = yield (0, exports.findProgramVersion)(programCode, semester, language, ladokClient);
316
- if (!programVersion)
317
- throw new Error(`programVersion could not be found for ${programCode} - ${semester}`);
318
- const { lengthInStudyYears } = programVersion;
314
+ const createProgrammeCurriculumsData = (programmeCode, semester, language, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
315
+ const programmeVersion = yield (0, exports.findProgrammeVersion)(programmeCode, semester, language, ladokClient);
316
+ if (!programmeVersion)
317
+ throw new Error(`programmeVersion could not be found for ${programmeCode} - ${semester}`);
318
+ const { lengthInStudyYears } = programmeVersion;
319
319
  const studyYear = (0, studyYearUtil_1.extractYear)(semester, (0, studyYearUtil_1.isSpring)(semester));
320
320
  const { shouldUseStructureData, shouldUseSyllabusData } = (0, exports.determineCurriculumFetchFlags)(studyYear, lengthInStudyYears);
321
- let programCurriculum = [];
321
+ let programmeCurriculum = [];
322
322
  if (shouldUseStructureData) {
323
- const programInstance = yield (0, exports.findProgramInstance)(programCode, semester, language, ladokClient);
323
+ const programInstance = yield (0, exports.findProgrammeInstance)(programmeCode, semester, language, ladokClient);
324
324
  const tillfalleUid = programInstance === null || programInstance === void 0 ? void 0 : programInstance.uid;
325
325
  if (tillfalleUid) {
326
- programCurriculum = yield (0, programStrukturUtil_1.fetchProgramStructure)(tillfalleUid, language, ladokClient);
326
+ programmeCurriculum = yield (0, programmeStructureUtil_1.fetchProgrammeStructure)(tillfalleUid, language, ladokClient);
327
327
  }
328
328
  }
329
- let programSpecializationCodes = [];
330
- if (programCurriculum.length) {
331
- programSpecializationCodes = getAllProgrammeSpecializationCodes(programCurriculum);
329
+ let programmeSpecialisationCodes = [];
330
+ if (programmeCurriculum.length) {
331
+ programmeSpecialisationCodes = getAllProgrammeSpecialisationCodes(programmeCurriculum);
332
332
  }
333
- const programSyllabus = yield (0, exports.findProgramSyllabusForSemester)(programCode, semester, language, ladokClient);
334
- if (programSyllabus === null || programSyllabus === void 0 ? void 0 : programSyllabus.specializations) {
335
- const specializationsToCheck = programSpecializationCodes.length
336
- ? programSpecializationCodes
337
- : programSyllabus.inriktningar;
338
- if (specializationsToCheck === null || specializationsToCheck === void 0 ? void 0 : specializationsToCheck.length) {
339
- programSyllabus.specializations = programSyllabus.specializations.filter(spec => specializationsToCheck.includes(spec.kod));
333
+ const programmeSyllabus = yield (0, exports.findProgrammeSyllabusForSemester)(programmeCode, semester, language, ladokClient);
334
+ if (programmeSyllabus === null || programmeSyllabus === void 0 ? void 0 : programmeSyllabus.specialisations) {
335
+ const specialisationsToCheck = programmeSpecialisationCodes.length
336
+ ? programmeSpecialisationCodes
337
+ : programmeSyllabus.inriktningar;
338
+ if (specialisationsToCheck === null || specialisationsToCheck === void 0 ? void 0 : specialisationsToCheck.length) {
339
+ programmeSyllabus.specialisations = programmeSyllabus.specialisations.filter(spec => specialisationsToCheck.includes(spec.kod));
340
340
  }
341
341
  }
342
- programCurriculum = enrichCurriculumsInformationDataWithSyllabusData(programCurriculum, programSyllabus);
342
+ programmeCurriculum = enrichCurriculumsInformationDataWithSyllabusData(programmeCurriculum, programmeSyllabus);
343
343
  if (shouldUseSyllabusData) {
344
- if (!programCurriculum.length) {
345
- programCurriculum = (0, exports.generateCurriculumsFromSyllabusOnly)(programSyllabus, studyYear, lengthInStudyYears);
344
+ if (!programmeCurriculum.length) {
345
+ programmeCurriculum = (0, exports.generateCurriculumsFromSyllabusOnly)(programmeSyllabus, lengthInStudyYears);
346
346
  }
347
347
  else {
348
- programCurriculum = enrichCurriculumsCourseListDataWithSyllabusData(programCurriculum, programSyllabus, studyYear);
348
+ programmeCurriculum = enrichCurriculumsCourseListDataWithSyllabusData(programmeCurriculum, programmeSyllabus, studyYear);
349
349
  }
350
350
  }
351
- return programCurriculum;
351
+ return programmeCurriculum;
352
352
  });
353
- exports.createProgramCurriculumsData = createProgramCurriculumsData;
354
- //# sourceMappingURL=programUtil.js.map
353
+ exports.createProgrammeCurriculumsData = createProgrammeCurriculumsData;
354
+ //# sourceMappingURL=programmeUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"programmeUtil.js","sourceRoot":"","sources":["../../src/utils/programmeUtil.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,15 @@
1
1
  import { Fritext, PeriodItem, SokUtbildningsTillfalleItem, SokUtbildningsTillfalleSlimItem } from '@kth/ladok-mellanlager-client';
2
- import { ProgramCourse } from './programStrukturUtil';
2
+ import { ProgrammeCourse } from './programmeStructureUtil';
3
3
  export declare const LAST_YEAR_TO_USE_SYLLABUSES_FOR_KURSLISTA = 2025;
4
4
  export type StudyYear = {
5
5
  yearNumber: number;
6
- courses: ProgramCourse[];
6
+ courses: ProgrammeCourse[];
7
7
  freeTexts: Fritext[];
8
8
  };
9
9
  export declare const findMatchingPeriod: (date: string, periods: PeriodItem[]) => PeriodItem | undefined;
10
10
  export declare const extractYear: (kod: string, startDateIsInSpring?: boolean) => number;
11
11
  export declare const isSpring: (kod: string) => boolean;
12
12
  export declare const getStudyYearFromDate: (periodEndDate: string, periodDetails: PeriodItem[], mainStartPeriod: string) => number | undefined;
13
- export declare const generateStudyYearData: (coursesData: ProgramCourse[], freeTexts: Fritext[], periodDetails: PeriodItem[], mainStartPeriod: string, lengthStudyYear: number) => StudyYear[];
13
+ export declare const generateStudyYearData: (coursesData: ProgrammeCourse[], freeTexts: Fritext[], periodDetails: PeriodItem[], mainStartPeriod: string, lengthStudyYear: number) => StudyYear[];
14
14
  export declare const getStudyYearFromSemesters: (programmeStartSemester: string, courseStartSemester: string) => number | null;
15
15
  export declare const extractStudyYears: (courseInstance: SokUtbildningsTillfalleItem | SokUtbildningsTillfalleSlimItem, programmeInstance: SokUtbildningsTillfalleItem | SokUtbildningsTillfalleSlimItem, periodItems: PeriodItem[]) => number[];
@@ -1 +1 @@
1
- {"version":3,"file":"studyYearUtil.js","sourceRoot":"","sources":["../../src/utils/studyYearUtil.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"studyYearUtil.js","sourceRoot":"","sources":["../../src/utils/studyYearUtil.ts"],"names":[],"mappings":"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"}
@@ -31,7 +31,7 @@ const extractAndConvertMarkdownToHtml = (attributvarden, attributeName, language
31
31
  }
32
32
  if (!rawMarkdown)
33
33
  return undefined;
34
- // Only normalize tables for course lists in programs
34
+ // Only normalize tables for course lists in programmes
35
35
  const processedMarkdown = isCourseList ? normalizeMarkdownTables(rawMarkdown) : rawMarkdown;
36
36
  return convertMarkdownToHtml(processedMarkdown);
37
37
  };
@@ -46,7 +46,7 @@ const convertMarkdownToHtml = (markdownText) => {
46
46
  return converter.makeHtml(markdownText);
47
47
  };
48
48
  /**
49
- * Normalizes markdown tables for course lists in programs.
49
+ * Normalizes markdown tables for course lists in programmes.
50
50
  * This implements the specific table normalization logic for program course lists.
51
51
  */
52
52
  const normalizeMarkdownTables = (raw) => {
@@ -1 +1 @@
1
- {"version":3,"file":"syllabusExtractionUtil.js","sourceRoot":"","sources":["../../src/utils/syllabusExtractionUtil.ts"],"names":[],"mappings":";;;;;;AAAA,8EAMuC;AAEvC,wDAA+B;AAE/B;;;;GAIG;AACI,MAAM,+BAA+B,GAAG,CAC7C,cAA4E,EAC5E,aAAqB,EACrB,QAAkB,EAClB,eAAwB,KAAK,EAC7B,eAAwB,KAAK,EACT,EAAE;IACtB,uDAAuD;IACvD,MAAM,cAAc,GAAI,CAAC,8CAAkB,CAAC,QAAQ,EAAE,8CAAkB,CAAC,eAAe,CAAW;SAChG,GAAG,CAAC,IAAI,CAAC,EAAE,CACV,YAAY;QACV,CAAC,CAAC,IAAA,iDAAqB,EAAC,cAAc,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC;QAClE,CAAC,CAAC,IAAA,iDAAqB,EAAC,cAAc,EAAE,aAAa,EAAE,IAAI,CAAC,CAC/D;SACA,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAA;IAEvC,IAAI,CAAC,cAAc;QAAE,OAAO,SAAS,CAAA;IAErC,iDAAiD;IACjD,IAAI,WAA+B,CAAA;IACnC,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;QACvC,WAAW,GAAG,cAAc,CAAA;IAC9B,CAAC;SAAM,CAAC;QACN,qFAAqF;QACrF,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;IACxC,CAAC;IAED,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAA;IAElC,qDAAqD;IACrD,MAAM,iBAAiB,GAAG,YAAY,CAAC,CAAC,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAA;IAC3F,OAAO,qBAAqB,CAAC,iBAAiB,CAAC,CAAA;AACjD,CAAC,CAAA;AAhCY,QAAA,+BAA+B,mCAgC3C;AAED;;GAEG;AACH,MAAM,qBAAqB,GAAG,CAAC,YAAgC,EAAsB,EAAE;IACrF,IAAI,CAAC,YAAY;QAAE,OAAO,SAAS,CAAA;IACnC,MAAM,SAAS,GAAG,IAAI,kBAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1D,OAAO,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;AACzC,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,uBAAuB,GAAG,CAAC,GAAuB,EAAsB,EAAE;IAC9E,IAAI,CAAC,GAAG;QAAE,OAAO,GAAG,CAAA;IAEpB,IAAI,UAAU,GAAG,GAAG;QAClB,8CAA8C;SAC7C,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;QAEtB,8EAA8E;SAC7E,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;QAE9B,yDAAyD;SACxD,OAAO,CAAC,mBAAmB,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC;SACzD,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;QAEtB,iDAAiD;SAChD,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;QAEvB,2EAA2E;SAC1E,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;QAEvC,2CAA2C;SAC1C,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAE7B,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA"}
1
+ {"version":3,"file":"syllabusExtractionUtil.js","sourceRoot":"","sources":["../../src/utils/syllabusExtractionUtil.ts"],"names":[],"mappings":";;;;;;AAAA,8EAMuC;AAEvC,wDAA+B;AAE/B;;;;GAIG;AACI,MAAM,+BAA+B,GAAG,CAC7C,cAA4E,EAC5E,aAAqB,EACrB,QAAkB,EAClB,eAAwB,KAAK,EAC7B,eAAwB,KAAK,EACT,EAAE;IACtB,uDAAuD;IACvD,MAAM,cAAc,GAAI,CAAC,8CAAkB,CAAC,QAAQ,EAAE,8CAAkB,CAAC,eAAe,CAAW;SAChG,GAAG,CAAC,IAAI,CAAC,EAAE,CACV,YAAY;QACV,CAAC,CAAC,IAAA,iDAAqB,EAAC,cAAc,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC;QAClE,CAAC,CAAC,IAAA,iDAAqB,EAAC,cAAc,EAAE,aAAa,EAAE,IAAI,CAAC,CAC/D;SACA,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,SAAS,CAAC,CAAA;IAEvC,IAAI,CAAC,cAAc;QAAE,OAAO,SAAS,CAAA;IAErC,iDAAiD;IACjD,IAAI,WAA+B,CAAA;IACnC,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;QACvC,WAAW,GAAG,cAAc,CAAA;IAC9B,CAAC;SAAM,CAAC;QACN,qFAAqF;QACrF,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAA;IACxC,CAAC;IAED,IAAI,CAAC,WAAW;QAAE,OAAO,SAAS,CAAA;IAElC,uDAAuD;IACvD,MAAM,iBAAiB,GAAG,YAAY,CAAC,CAAC,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAA;IAC3F,OAAO,qBAAqB,CAAC,iBAAiB,CAAC,CAAA;AACjD,CAAC,CAAA;AAhCY,QAAA,+BAA+B,mCAgC3C;AAED;;GAEG;AACH,MAAM,qBAAqB,GAAG,CAAC,YAAgC,EAAsB,EAAE;IACrF,IAAI,CAAC,YAAY;QAAE,OAAO,SAAS,CAAA;IACnC,MAAM,SAAS,GAAG,IAAI,kBAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IAC1D,OAAO,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;AACzC,CAAC,CAAA;AAED;;;GAGG;AACH,MAAM,uBAAuB,GAAG,CAAC,GAAuB,EAAsB,EAAE;IAC9E,IAAI,CAAC,GAAG;QAAE,OAAO,GAAG,CAAA;IAEpB,IAAI,UAAU,GAAG,GAAG;QAClB,8CAA8C;SAC7C,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;QAEtB,8EAA8E;SAC7E,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC;QAE9B,yDAAyD;SACxD,OAAO,CAAC,mBAAmB,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC;SACzD,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC;QAEtB,iDAAiD;SAChD,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;QAEvB,2EAA2E;SAC1E,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;QAEvC,2CAA2C;SAC1C,OAAO,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAE7B,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kth/om-kursen-ladok-client",
3
- "version": "2.3.2",
3
+ "version": "2.4.0",
4
4
  "description": "Om kursen specific logic and mappings, uses both @kth/ladok-mellanlager-client and @kth/ladok-attributevarde-utils.",
5
5
  "main": "dist/index.js",
6
6
  "files": [
@@ -21,7 +21,7 @@
21
21
  "build:publish": "npm install --no-workspaces && npm run build"
22
22
  },
23
23
  "dependencies": {
24
- "@kth/ladok-attributvarde-utils": "1.0.3",
24
+ "@kth/ladok-attributvarde-utils": "1.0.4",
25
25
  "@kth/ladok-mellanlager-client": "1.1.0",
26
26
  "date-fns": "^4.1.0",
27
27
  "showdown": "^2.1.0"
@@ -1 +0,0 @@
1
- {"version":3,"file":"mapCourse.js","sourceRoot":"","sources":["../src/mapCourse.ts"],"names":[],"mappings":";;;AAAA,8EASuC;AAGvC,uDAQ6B;AAC7B,mDAAsE;AAEtE,kGAAmH;AACnH,0FAAmG;AAiBnG,MAAM,gBAAgB,GAAG,CACvB,MAAiE,EACjE,QAAkB,EACL,EAAE;IACf,OAAO,IAAA,+CAAsB,EAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,CAAA;AACpF,CAAC,CAAA;AAED,MAAM,oCAAoC,GAAG,CAC3C,MAAiE,EACjE,QAAkB,EAClB,UAA4B,EACP,EAAE;IACvB,OAAO,IAAA,uDAA0B,EAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAA;AAChF,CAAC,CAAA;AAEM,MAAM,SAAS,GAAG,CACvB,MAAiE,EACjE,QAAkB,EAClB,kBAAsC,EAC9B,EAAE;IACV,MAAM,MAAM,GAAG,IAAA,8CAAkB,EAAC,MAAM,CAAC,cAAc,CAAC,CAAA;IACxD,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,cAAc,EAAE,GAAG,gBAAgB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAE9F,MAAM,WAAW,GAAG,IAAA,4CAAgB,EAAC,MAAM,CAAC,cAAc,EAAE,iCAAiC,CAAC,CAAA;IAC9F,MAAM,YAAY,GAAG,IAAA,+CAAmB,EAAC,MAAM,CAAC,cAAc,CAAC,CAAA;IAC/D,MAAM,YAAY,GAAG,IAAA,+CAAmB,EAAC,MAAM,CAAC,cAAc,CAAC,CAAA;IAC/D,MAAM,cAAc,GAAG,IAAA,iDAAqB,EAAC,MAAM,CAAC,cAAc,CAAC,CAAA;IAEnE,MAAM,EAAE,eAAe,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,GAAG,oCAAoC,CAC1G,MAAM,EACN,QAAQ,EACR,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CACb,CAAA;IAED,MAAM,OAAO,GAAG,IAAA,0CAAc,EAAC,MAAM,CAAC,cAAc,CAAC,CAAA;IAErD,OAAO;QACL,GAAG;QACH,cAAc;QACd,GAAG;QACH,SAAS;QACT,UAAU;QACV,YAAY,EAAE,YAAY,IAAI,IAAA,oCAAqB,EAAC,YAAY,EAAE,QAAQ,CAAC;QAC3E,cAAc,EAAE,cAAc,IAAI,IAAA,sCAAuB,EAAC,cAAc,EAAE,QAAQ,CAAC;QACnF,WAAW,EAAE,WAAW,oCACnB,IAAA,iCAAkB,EAAC,WAAW,EAAE,QAAQ,CAAC,KAC5C,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,GAChD;QACD,YAAY,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,iCAAkB,EAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QACrE,UAAU,EAAE,IAAA,8CAAiC,EAAC,YAAY,EAAE,QAAQ,CAAC;QACrE,SAAS,EAAE,IAAA,0CAAc,EAAC,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC;QAC7D,eAAe;QACf,iBAAiB;QACjB,uBAAuB;QACvB,eAAe,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI;QAC7B,OAAO;KACR,CAAA;AACH,CAAC,CAAA;AA1CY,QAAA,SAAS,aA0CrB"}