@kth/om-kursen-ladok-client 1.3.4 → 1.3.6

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 (55) hide show
  1. package/dist/createApiClient.js +31 -79
  2. package/dist/createApiClient.js.map +1 -1
  3. package/dist/groupSearchResults.d.ts +8 -1
  4. package/dist/groupSearchResults.js +9 -2
  5. package/dist/groupSearchResults.js.map +1 -1
  6. package/dist/index.d.ts +1 -1
  7. package/dist/index.js +2 -1
  8. package/dist/index.js.map +1 -1
  9. package/dist/mapCourse.d.ts +11 -9
  10. package/dist/mapCourse.js +24 -11
  11. package/dist/mapCourse.js.map +1 -1
  12. package/dist/mapSearchResult.d.ts +1 -1
  13. package/dist/mapSearchResult.js +4 -3
  14. package/dist/mapSearchResult.js.map +1 -1
  15. package/dist/{mapCourseInstans.d.ts → mapStructurePartVersions.d.ts} +4 -0
  16. package/dist/{mapCourseInstans.js → mapStructurePartVersions.js} +7 -1
  17. package/dist/mapStructurePartVersions.js.map +1 -0
  18. package/dist/search/SearchError.d.ts +32 -0
  19. package/dist/search/SearchError.js +51 -0
  20. package/dist/search/SearchError.js.map +1 -0
  21. package/dist/search/createSearchApi.d.ts +3 -0
  22. package/dist/search/createSearchApi.js +103 -0
  23. package/dist/search/createSearchApi.js.map +1 -0
  24. package/dist/search/types.d.ts +21 -0
  25. package/dist/search/types.js +3 -0
  26. package/dist/search/types.js.map +1 -0
  27. package/dist/search/utils/getAllEntitiesByUseOfContinuation.d.ts +18 -0
  28. package/dist/search/utils/getAllEntitiesByUseOfContinuation.js +49 -0
  29. package/dist/search/utils/getAllEntitiesByUseOfContinuation.js.map +1 -0
  30. package/dist/search/utils/searchUtils.d.ts +18 -0
  31. package/dist/search/utils/searchUtils.js +87 -0
  32. package/dist/search/utils/searchUtils.js.map +1 -0
  33. package/dist/types/OmKursenLadokApiClient.d.ts +2 -12
  34. package/dist/utils/errorUtils.d.ts +14 -0
  35. package/dist/utils/errorUtils.js +50 -0
  36. package/dist/utils/errorUtils.js.map +1 -0
  37. package/dist/utils/index.d.ts +1 -0
  38. package/dist/utils/index.js +1 -0
  39. package/dist/utils/index.js.map +1 -1
  40. package/dist/utils/periodUtil.d.ts +1 -1
  41. package/dist/utils/periodUtil.js +2 -4
  42. package/dist/utils/periodUtil.js.map +1 -1
  43. package/dist/utils/programStrukturUtil.d.ts +25 -74
  44. package/dist/utils/programStrukturUtil.js +100 -43
  45. package/dist/utils/programStrukturUtil.js.map +1 -1
  46. package/dist/utils/programUtil.d.ts +0 -2
  47. package/dist/utils/programUtil.js +4 -15
  48. package/dist/utils/programUtil.js.map +1 -1
  49. package/dist/utils/studyYearUtil.d.ts +4 -21
  50. package/dist/utils/studyYearUtil.js.map +1 -1
  51. package/dist/utils/versionUtils.d.ts +28 -0
  52. package/dist/utils/versionUtils.js +58 -0
  53. package/dist/utils/versionUtils.js.map +1 -0
  54. package/package.json +3 -3
  55. package/dist/mapCourseInstans.js.map +0 -1
@@ -11,7 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.fetchProgramStructure = exports.fetchAndCategorizeStructureParts = exports.fetchStructurePartsVersions = exports.fetchStructurePartInstances = exports.fetchStructureByInstansUid = exports.fetchStructureByTillfalleUid = exports.handleError = void 0;
13
13
  const mapStructureCourses_1 = require("../mapStructureCourses");
14
- const mapCourseInstans_1 = require("../mapCourseInstans");
14
+ const mapStructurePartVersions_1 = require("../mapStructurePartVersions");
15
15
  const ladok_attributvarde_utils_1 = require("@kth/ladok-attributvarde-utils");
16
16
  const studyYearUtil_1 = require("./studyYearUtil");
17
17
  const handleError = (message, error) => {
@@ -66,7 +66,7 @@ const fetchStructurePartsVersions = (utbildningsinstansUIDn, ladokClient) => __a
66
66
  const moduler = yield Promise.all(utbildningsinstansUIDn.map((utbildningsinstansUID) => __awaiter(void 0, void 0, void 0, function* () {
67
67
  try {
68
68
  const utbildningsinstans = yield ladokClient.utbildningsinstansSlim(utbildningsinstansUID, {
69
- attributVarden: 'utbildning.attribut.svensk.benamning,utbildning.attribut.engelsk.benamning,utbildning.attribut.kod,utbildningstyp',
69
+ attributVarden: 'utbildning.attribut.svensk.benamning,utbildning.attribut.engelsk.benamning,utbildning.attribut.kod,utbildningstyp,utbildning.attribut.omfattning',
70
70
  });
71
71
  return utbildningsinstans.data;
72
72
  }
@@ -97,58 +97,115 @@ const categorizeStructureParts = (strukturDelar) => {
97
97
  return Object.assign(Object.assign({}, strukturdel), { Valvillkor: category });
98
98
  });
99
99
  };
100
- function fetchMappedStructurePartInstances(categorizedStrukturDelar, language, ladokClient) {
100
+ function fetchStructurePartsByType(categorizedStrukturDelar, language, ladokClient) {
101
101
  return __awaiter(this, void 0, void 0, function* () {
102
+ const categorizedMap = new Map(categorizedStrukturDelar.map(c => [c.UtbildningsbasUID, c]));
102
103
  const utbildningsbasUIDn = categorizedStrukturDelar.map(d => d.UtbildningsbasUID);
103
- const courseInstances = yield (0, exports.fetchStructurePartInstances)(utbildningsbasUIDn, ladokClient);
104
- const filtered = courseInstances.filter(Boolean);
105
- return filtered.map(instance => (0, mapStructureCourses_1.mapStructurePartInstances)(instance, language));
104
+ const results = [];
105
+ for (const uid of utbildningsbasUIDn) {
106
+ const categorized = categorizedMap.get(uid);
107
+ if (!categorized)
108
+ continue;
109
+ // here we try to findout which type the utbildningsbasUID belongs to: instance or version
110
+ const [instanceResult, versionResult] = yield Promise.allSettled([
111
+ (0, exports.fetchStructurePartInstances)([uid], ladokClient),
112
+ (0, exports.fetchStructurePartsVersions)([uid], ladokClient),
113
+ ]);
114
+ function isSuccessfulNonEmptyResult(result) {
115
+ return (result.status === 'fulfilled' &&
116
+ Array.isArray(result.value) &&
117
+ result.value.length > 0 &&
118
+ result.value[0] !== undefined);
119
+ }
120
+ if (isSuccessfulNonEmptyResult(instanceResult)) {
121
+ // it means that the data belongs to instance type
122
+ results.push({
123
+ type: 'instance',
124
+ data: (0, mapStructureCourses_1.mapStructurePartInstances)(instanceResult.value[0], language),
125
+ categorized,
126
+ });
127
+ }
128
+ if (isSuccessfulNonEmptyResult(versionResult)) {
129
+ // it means that the data belongs to version type
130
+ results.push({
131
+ type: 'version',
132
+ data: (0, mapStructurePartVersions_1.mapStructurePartVersions)(versionResult.value[0], language),
133
+ categorized,
134
+ });
135
+ }
136
+ }
137
+ return results;
106
138
  });
107
139
  }
108
140
  const SPECIALIZATION_INSTANCE_TYPE = 'Inriktningstillfälle';
109
141
  function isSpecializationInstance(instance) {
110
- const type = instance.utbildningstyp;
111
- return (type === null || type === void 0 ? void 0 : type.name) === SPECIALIZATION_INSTANCE_TYPE || (type === null || type === void 0 ? void 0 : type.nameOther) === SPECIALIZATION_INSTANCE_TYPE;
142
+ if (instance.type === 'instance') {
143
+ const utbildningstyp = instance.data.utbildningstyp;
144
+ return (utbildningstyp === null || utbildningstyp === void 0 ? void 0 : utbildningstyp.id) === ladok_attributvarde_utils_1.EducationalTypeID.Specialisation;
145
+ }
146
+ else
147
+ return false;
112
148
  }
113
- function separateSpecializations(instances) {
114
- const filteredMappedStructurePartInstances = [];
149
+ function separateSpecializations(structureParts) {
150
+ const filteredMappedStructurePartsDividedByType = [];
115
151
  const specializationListFromStructure = [];
116
- instances.forEach(instance => {
117
- if (isSpecializationInstance(instance)) {
118
- if (!specializationListFromStructure.some(addedSpec => addedSpec.uid === instance.uid)) {
119
- specializationListFromStructure.push(instance);
152
+ structureParts.forEach(structurePart => {
153
+ // base condition for finding specializations is that the need to be instance type
154
+ if (isSpecializationInstance(structurePart)) {
155
+ if (!specializationListFromStructure.some(addedSpec => addedSpec.uid === structurePart.data.uid)) {
156
+ specializationListFromStructure.push(structurePart.data);
120
157
  }
121
158
  }
122
159
  else {
123
- filteredMappedStructurePartInstances.push(instance);
160
+ filteredMappedStructurePartsDividedByType.push(structurePart);
124
161
  }
125
162
  });
126
- return { filteredMappedStructurePartInstances, specializationListFromStructure };
163
+ return { filteredMappedStructurePartsDividedByType, specializationListFromStructure };
127
164
  }
128
- function fetchStructurePartVersionsFromStructurePartInstances(mappedStructurePartInstances, ladokClient, language) {
165
+ function mergeStructurePartInstancesAndVersions(filteredMappedStructurePartsDividedByType, ladokClient, language) {
129
166
  return __awaiter(this, void 0, void 0, function* () {
130
- const uids = mappedStructurePartInstances.map(spi => spi.utbildningsinstansUid);
131
- const StructurePartVersions = yield (0, exports.fetchStructurePartsVersions)(uids, ladokClient);
132
- return StructurePartVersions.map(StructurePartVersion => (0, mapCourseInstans_1.mapStructurePartVersions)(StructurePartVersion, language));
133
- });
134
- }
135
- function mergeStructurePartData(mappedStructurePartInstances, mappedStructurePartVersions, categorizedStrukturDelar) {
136
- const categoryMap = new Map(categorizedStrukturDelar.map(c => [c.UtbildningsbasUID, c.Valvillkor]));
137
- const instanceMap = new Map(mappedStructurePartInstances.map(instance => [instance.utbildningsinstansUid, instance]));
138
- return mappedStructurePartVersions.map(version => {
139
- const instance = instanceMap.get(version.utbildningsinstansUid);
140
- const valvillkor = categoryMap.get(instance.uid) || 'O';
141
- return Object.assign(Object.assign(Object.assign({}, instance), version), { Valvillkor: valvillkor });
167
+ var _a;
168
+ const instanceParts = filteredMappedStructurePartsDividedByType.filter(part => part.type === 'instance');
169
+ const versionParts = filteredMappedStructurePartsDividedByType.filter(part => part.type === 'version');
170
+ // Fetch versions for all instances
171
+ const uids = instanceParts.map(part => part.data.utbildningsinstansUid);
172
+ const versionResponse = yield (0, exports.fetchStructurePartsVersions)(uids, ladokClient);
173
+ const mappedVersions = versionResponse.map(v => (0, mapStructurePartVersions_1.mapStructurePartVersions)(v, language));
174
+ const versionMap = new Map(mappedVersions.map(v => [v.utbildningsinstansUid, v]));
175
+ const mergedResults = [];
176
+ // Instance + fetched version
177
+ for (const instance of instanceParts) {
178
+ const version = versionMap.get(instance.data.utbildningsinstansUid);
179
+ if (version) {
180
+ mergedResults.push(Object.assign(Object.assign(Object.assign({}, instance.data), version), { Valvillkor: instance.categorized.Valvillkor }));
181
+ }
182
+ }
183
+ // version-only entries (no matching instance)
184
+ for (const version of versionParts) {
185
+ // course versions are added in structures since in ladok we don't have course instances for future, so we should make the course verison similar to course instance here
186
+ if (!((_a = version === null || version === void 0 ? void 0 : version.categorized) === null || _a === void 0 ? void 0 : _a.Slutdatum))
187
+ continue;
188
+ const Tillfallesperioder = [
189
+ {
190
+ ForstaUndervisningsdatum: version.categorized.Startdatum,
191
+ SistaUndervisningsdatum: version.categorized.Slutdatum,
192
+ },
193
+ ];
194
+ mergedResults.push(Object.assign(Object.assign({}, version.data), { Tillfallesperioder, Valvillkor: version.categorized.Valvillkor }));
195
+ }
196
+ return mergedResults;
142
197
  });
143
198
  }
144
199
  const fetchAndCategorizeStructureParts = (utbildningstillfalleUID, language, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
145
200
  const structureParts = yield (0, exports.fetchStructureByTillfalleUid)(utbildningstillfalleUID, ladokClient);
146
201
  const categorizedStrukturParts = categorizeStructureParts(structureParts);
147
- const structurePartsInstances = yield fetchMappedStructurePartInstances(categorizedStrukturParts, language, ladokClient);
148
- const { filteredMappedStructurePartInstances, specializationListFromStructure } = separateSpecializations(structurePartsInstances);
149
- const filteredMappedStructurePartVersions = yield fetchStructurePartVersionsFromStructurePartInstances(filteredMappedStructurePartInstances, ladokClient, language);
150
- const courseListFromStructure = mergeStructurePartData(filteredMappedStructurePartInstances, filteredMappedStructurePartVersions, categorizedStrukturParts);
151
- return { courseListFromStructure, specializationListFromStructure };
202
+ const structurePartsDevidedByType = yield fetchStructurePartsByType(categorizedStrukturParts, language, ladokClient);
203
+ const { filteredMappedStructurePartsDividedByType, specializationListFromStructure } = separateSpecializations(structurePartsDevidedByType);
204
+ const filteredMappedStructurePartInstancesAndVersions = yield mergeStructurePartInstancesAndVersions(filteredMappedStructurePartsDividedByType, ladokClient, language);
205
+ return {
206
+ structureCourses: filteredMappedStructurePartInstancesAndVersions,
207
+ structureSpecializations: specializationListFromStructure,
208
+ };
152
209
  });
153
210
  exports.fetchAndCategorizeStructureParts = fetchAndCategorizeStructureParts;
154
211
  const getMainProgramInstanceData = (uid, language, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
@@ -161,12 +218,12 @@ const getMainProgramInstanceData = (uid, language, ladokClient) => __awaiter(voi
161
218
  const omfattning = programDetails.data.Tillfallesperioder.reduce((sum, period) => sum + period.Omfattningsvarde, 0);
162
219
  const startperiod = (0, ladok_attributvarde_utils_1.extractGrunddata)(programDetails.data.Attributvarden, 'utbildning.attribut.startperiod');
163
220
  const lengthInStudyYears = Math.ceil(Number(omfattning) / 60);
164
- const { courseListFromStructure, specializationListFromStructure } = yield (0, exports.fetchAndCategorizeStructureParts)(uid, language, ladokClient);
221
+ const { structureCourses, structureSpecializations } = yield (0, exports.fetchAndCategorizeStructureParts)(uid, language, ladokClient);
165
222
  return {
166
223
  startperiod,
167
224
  lengthInStudyYears,
168
- courseListFromStructure,
169
- specializationListFromStructure,
225
+ structureCourses,
226
+ structureSpecializations,
170
227
  };
171
228
  });
172
229
  const mapSpecializationCurriculums = (specializations, startperiodCode, lengthInStudyYears, language, ladokClient, allPeriods) => __awaiter(void 0, void 0, void 0, function* () {
@@ -175,10 +232,10 @@ const mapSpecializationCurriculums = (specializations, startperiodCode, lengthIn
175
232
  const specializatons = yield (0, exports.fetchStructurePartsVersions)(instansUids, ladokClient);
176
233
  const mappedSpecializations = specializatons
177
234
  .filter(Boolean)
178
- .map(entity => (0, mapCourseInstans_1.mapStructurePartVersions)(entity, language));
235
+ .map(entity => (0, mapStructurePartVersions_1.mapStructurePartVersions)(entity, language));
179
236
  const specializationsCourseListFromStructure = yield Promise.all(tillfalleUids.map((uid) => __awaiter(void 0, void 0, void 0, function* () {
180
- const { courseListFromStructure } = yield (0, exports.fetchAndCategorizeStructureParts)(uid, language, ladokClient);
181
- return courseListFromStructure;
237
+ const { structureCourses } = yield (0, exports.fetchAndCategorizeStructureParts)(uid, language, ladokClient);
238
+ return structureCourses;
182
239
  })));
183
240
  return mappedSpecializations.map((spec, index) => ({
184
241
  studyYears: (0, studyYearUtil_1.generateStudyYearData)(specializationsCourseListFromStructure[index], allPeriods, startperiodCode, lengthInStudyYears),
@@ -190,13 +247,13 @@ const mapSpecializationCurriculums = (specializations, startperiodCode, lengthIn
190
247
  });
191
248
  const fetchProgramStructure = (utbildningstillfalleUID, language, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
192
249
  try {
193
- const { startperiod, lengthInStudyYears, courseListFromStructure, specializationListFromStructure } = yield getMainProgramInstanceData(utbildningstillfalleUID, language, ladokClient);
250
+ const { startperiod, lengthInStudyYears, structureCourses, structureSpecializations } = yield getMainProgramInstanceData(utbildningstillfalleUID, language, ladokClient);
194
251
  const periodData = yield ladokClient.period(); // TODO: Use cached values
195
252
  if (periodData.type === 'error') {
196
253
  throw new Error(`API error: ${periodData.responseInfo.message}`);
197
254
  }
198
- const mainStudyYears = (0, studyYearUtil_1.generateStudyYearData)(courseListFromStructure, periodData.data.Period, startperiod === null || startperiod === void 0 ? void 0 : startperiod.code, lengthInStudyYears);
199
- const specializationCurriculums = yield mapSpecializationCurriculums(specializationListFromStructure, startperiod === null || startperiod === void 0 ? void 0 : startperiod.code, lengthInStudyYears, language, ladokClient, periodData.data.Period);
255
+ const mainStudyYears = (0, studyYearUtil_1.generateStudyYearData)(structureCourses, periodData.data.Period, startperiod === null || startperiod === void 0 ? void 0 : startperiod.code, lengthInStudyYears);
256
+ const specializationCurriculums = yield mapSpecializationCurriculums(structureSpecializations, startperiod === null || startperiod === void 0 ? void 0 : startperiod.code, lengthInStudyYears, language, ladokClient, periodData.data.Period);
200
257
  return [{ studyYears: mainStudyYears }, ...specializationCurriculums];
201
258
  }
202
259
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"programStrukturUtil.js","sourceRoot":"","sources":["../../src/utils/programStrukturUtil.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"programStrukturUtil.js","sourceRoot":"","sources":["../../src/utils/programStrukturUtil.ts"],"names":[],"mappings":"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"}
@@ -3,8 +3,6 @@ import { Language } from './languageUtil';
3
3
  import { ProgramInstans } from '../mapProgramInstans';
4
4
  import { Lokalmarkning } from '@kth/ladok-attributvarde-utils';
5
5
  export declare const filterAndMapProgramTillfalle: (response: MellanlagringSearchResponse<SokUtbildningsTillfalleItem | SokUtbildningsTillfalleSlimItem>, language: Language) => import("../mapProgramTillfalle").ProgramTillfalle[];
6
- export declare const findProgramWithHighestVersionNumber: (programs: ProgramInstans[]) => ProgramInstans | undefined;
7
- export declare const findProgramWithLowestVersionNumber: (programs: ProgramInstans[]) => ProgramInstans | undefined;
8
6
  export declare const selectProgramInstans: (code: string | undefined, periods: PeriodItem[], programs: ProgramInstans[]) => ProgramInstans | undefined;
9
7
  export declare const filterAndMapProgramInstans: (response: MellanlagringSearchResponse<SokUtbildningsInstansItem | SokUtbildningsInstansSlimItem>, periods: PeriodItem[], code: string, language: Language, ladokClient: LadokMellanlagerApiClient) => Promise<(ProgramInstans & {
10
8
  approvedStudyProgrammeTerms: string[];
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.getProgramTerms = exports.hasCourseListMarking = exports.filterAndMapProgramInstans = exports.selectProgramInstans = exports.findProgramWithLowestVersionNumber = exports.findProgramWithHighestVersionNumber = exports.filterAndMapProgramTillfalle = void 0;
12
+ exports.getProgramTerms = exports.hasCourseListMarking = exports.filterAndMapProgramInstans = exports.selectProgramInstans = exports.filterAndMapProgramTillfalle = void 0;
13
13
  const mapProgramTillfalle_1 = require("../mapProgramTillfalle");
14
14
  const mapProgramInstans_1 = require("../mapProgramInstans");
15
15
  const periodUtil_1 = require("./periodUtil");
@@ -17,6 +17,7 @@ const ladok_attributvarde_utils_1 = require("@kth/ladok-attributvarde-utils");
17
17
  const mapProgramTerm_1 = require("../mapProgramTerm");
18
18
  const studyYearUtil_1 = require("./studyYearUtil");
19
19
  const typeChecking_1 = require("./typeChecking");
20
+ const versionUtils_1 = require("./versionUtils");
20
21
  const SEMESTER_FOR_START_READING_STRUCTURES = {
21
22
  code: 'HT2020', // we will increase 2025 by 5 (maximum study year that we have for a program) since there can be ongoing programs until 2025
22
23
  }; // Based on the following document: https://confluence.sys.kth.se/confluence/pages/viewpage.action?pageId=262933569
@@ -35,23 +36,11 @@ const filterAndMapProgramTillfalle = (response, language) => {
35
36
  .filter(x => (0, exports.hasCourseListMarking)(x.lokalmarkning));
36
37
  };
37
38
  exports.filterAndMapProgramTillfalle = filterAndMapProgramTillfalle;
38
- const findProgramWithHighestVersionNumber = (programs) => {
39
- return programs
40
- .filter(program => program.versionsnummer !== undefined)
41
- .sort((a, b) => { var _a, _b; return ((_a = Number(b.versionsnummer)) !== null && _a !== void 0 ? _a : 0) - ((_b = Number(a.versionsnummer)) !== null && _b !== void 0 ? _b : 0); })[0];
42
- };
43
- exports.findProgramWithHighestVersionNumber = findProgramWithHighestVersionNumber;
44
- const findProgramWithLowestVersionNumber = (programs) => {
45
- return programs
46
- .filter(program => program.versionsnummer !== undefined)
47
- .sort((a, b) => { var _a, _b; return ((_a = Number(a.versionsnummer)) !== null && _a !== void 0 ? _a : 0) - ((_b = Number(b.versionsnummer)) !== null && _b !== void 0 ? _b : 0); })[0];
48
- };
49
- exports.findProgramWithLowestVersionNumber = findProgramWithLowestVersionNumber;
50
39
  const selectProgramInstans = (code, periods, programs) => {
51
40
  if (code) {
52
41
  return (0, periodUtil_1.findValidProgramForCode)(code, periods, programs);
53
42
  }
54
- return (0, exports.findProgramWithHighestVersionNumber)(programs);
43
+ return (0, versionUtils_1.findLatestVersion)(programs);
55
44
  };
56
45
  exports.selectProgramInstans = selectProgramInstans;
57
46
  const filterAndMapProgramInstans = (response, periods, code, language, ladokClient) => __awaiter(void 0, void 0, void 0, function* () {
@@ -63,7 +52,7 @@ const filterAndMapProgramInstans = (response, periods, code, language, ladokClie
63
52
  .map(item => (0, mapProgramInstans_1.mapProgramInstans)(item, language))
64
53
  .filter((program) => !!program);
65
54
  // A program can have different versions, we need to have the oldest one to know what is the first admission date for the program
66
- const oldestVersion = (0, exports.findProgramWithLowestVersionNumber)(mappedPrograms);
55
+ const oldestVersion = (0, versionUtils_1.findOldestVersion)(mappedPrograms);
67
56
  const selectedProgram = (0, exports.selectProgramInstans)(code, periods, mappedPrograms);
68
57
  if (!selectedProgram || !oldestVersion)
69
58
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"programUtil.js","sourceRoot":"","sources":["../../src/utils/programUtil.ts"],"names":[],"mappings":";;;;;;;;;;;;AAWA,gEAA4D;AAC5D,4DAAwE;AACxE,6CAKqB;AACrB,8EAAuG;AACvG,sDAAkD;AAClD,mDAAoD;AACpD,iDAA0C;AAE1C,MAAM,qCAAqC,GAAG;IAC5C,IAAI,EAAE,QAAQ,EAAE,4HAA4H;CAC7I,CAAA,CAAC,mHAAmH;AAErH,MAAM,iCAAiC,GAAG,YAAY,CAAA;AAEtD,MAAM,mCAAmC,GAAG;IAC1C,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,YAAY;CACnB,CAAA,CAAC,mHAAmH;AAE9G,MAAM,4BAA4B,GAAG,CAC1C,QAAoG,EACpG,QAAkB,EAClB,EAAE;IACF,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,cAAc,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAA;IAChE,CAAC;IACD,OAAO,QAAQ,CAAC,KAAK;SAClB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,yCAAmB,EAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;SAC1C,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;SAC5B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,4BAAoB,EAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAA;AACvD,CAAC,CAAA;AAXY,QAAA,4BAA4B,gCAWxC;AAEM,MAAM,mCAAmC,GAAG,CAAC,QAA0B,EAA8B,EAAE;IAC5G,OAAO,QAAQ;SACZ,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC;SACvD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,eAAC,OAAA,CAAC,MAAA,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,MAAA,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,mCAAI,CAAC,CAAC,CAAA,EAAA,CAAC,CAAC,CAAC,CAAC,CAAA;AACzF,CAAC,CAAA;AAJY,QAAA,mCAAmC,uCAI/C;AAEM,MAAM,kCAAkC,GAAG,CAAC,QAA0B,EAA8B,EAAE;IAC3G,OAAO,QAAQ;SACZ,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,CAAC;SACvD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,eAAC,OAAA,CAAC,MAAA,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,mCAAI,CAAC,CAAC,GAAG,CAAC,MAAA,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,mCAAI,CAAC,CAAC,CAAA,EAAA,CAAC,CAAC,CAAC,CAAC,CAAA;AACzF,CAAC,CAAA;AAJY,QAAA,kCAAkC,sCAI9C;AAEM,MAAM,oBAAoB,GAAG,CAClC,IAAwB,EACxB,OAAqB,EACrB,QAA0B,EACE,EAAE;IAC9B,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,IAAA,oCAAuB,EAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IACzD,CAAC;IACD,OAAO,IAAA,2CAAmC,EAAC,QAAQ,CAAC,CAAA;AACtD,CAAC,CAAA;AATY,QAAA,oBAAoB,wBAShC;AAEM,MAAM,0BAA0B,GAAG,CACxC,QAAgG,EAChG,OAAqB,EACrB,IAAY,EACZ,QAAkB,EAClB,WAAsC,EAC0E,EAAE;;IAClH,IAAI,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,4CAA4C,QAAQ,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAA;IAC9F,CAAC;IAED,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK;SAClC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAA,qCAAiB,EAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;SAC9C,MAAM,CAAC,CAAC,OAAO,EAA6B,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IAE5D,iIAAiI;IACjI,MAAM,aAAa,GAAG,IAAA,0CAAkC,EAAC,cAAc,CAAC,CAAA;IAExE,MAAM,eAAe,GAAG,IAAA,4BAAoB,EAAC,IAAI,EAAE,OAAO,EAAE,cAAc,CAAC,CAAA;IAE3E,IAAI,CAAC,eAAe,IAAI,CAAC,aAAa;QAAE,OAAO,SAAS,CAAA;IAExD,MAAM,2BAA2B,GAAG,MAAM,IAAA,uBAAe,EAAC,eAAe,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAA;IAEhH,uCAAY,eAAe,KAAE,2BAA2B,EAAE,kBAAkB,EAAE,MAAA,aAAa,CAAC,UAAU,0CAAE,IAAI,IAAE;AAChH,CAAC,CAAA,CAAA;AAzBY,QAAA,0BAA0B,8BAyBtC;AAEM,MAAM,oBAAoB,GAAG,CAAC,aAA0C,EAAW,EAAE;;IAC1F,OAAO,CACL,MAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,CACjB,IAAI,CAAC,EAAE,CACL,IAAI,CAAC,eAAe,CAAC,IAAI,KAAK,+CAAmB,CAAC,SAAS;QAC3D,IAAI,CAAC,cAAc,CAAC,IAAI,KAAK,8CAAkB,CAAC,EAAE,CACrD,mCAAI,KAAK,CACX,CAAA;AACH,CAAC,CAAA;AARY,QAAA,oBAAoB,wBAQhC;AAEM,MAAM,eAAe,GAAG,CAC7B,OAAuB,EACvB,aAA6B,EAC7B,QAAkB,EAClB,WAAsC,EACnB,EAAE;;IACrB,MAAM,EAAE,GAAG,EAAE,qBAAqB,EAAE,GAAG,OAAO,CAAA;IAC9C,MAAM,gCAAgC,GAAG,qBAAqB;QAC5D,CAAC,CAAC,IAAA,oCAAuB,EAAC,qBAAqB,CAAC;QAChD,CAAC,CAAC,SAAS,CAAA;IAEb,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,EAAE,CAAA;IAE1C,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,oBAAoB,OAAO,CAAC,YAAY,CAAC,QAAQ,IAAI,eAAe,EAAE,CAAC,CAAA;IACzF,CAAC;IACD,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;IACnD,CAAC;IAED,MAAM,qBAAqB,GAAG,gCAAgC;QAC5D,CAAC,CAAC,IAAA,4BAAe,EAAC,gCAAgC,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;QACxE,CAAC,CAAC,SAAS,CAAA;IAEb,yBAAyB;IAEzB,MAAM,0BAA0B,GAAG;QACjC,iBAAiB,EAAE,GAAG;QACtB,gBAAgB,EAAE,OAAO;QACzB,SAAS,EAAE,MAAM;QACjB,cAAc,EAAE,qCAAqC,CAAC,IAAI;QAC1D,cAAc,EAAE,0CAA0C;QAC1D,YAAY,EAAE,KAAK;KACpB,CAAA;IACD,MAAM,qBAAqB,GAAG,MAAM,WAAW,CAAC,uBAAuB,CAAC,0BAA0B,CAAC,CAAA;IAEnG,8BAA8B;IAE9B,yJAAyJ;IACzJ,MAAM,0BAA0B,GAAG;QACjC,iBAAiB,EAAE,GAAG;QACtB,SAAS,EAAE,MAAM;QACjB,SAAS,EAAE,UAAU;QACrB,cAAc,EAAE,sCAAsC;QACtD,UAAU,EAAE,MAAA,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,QAAQ,mCAAI,mCAAmC,CAAC,IAAI;QACvF,UAAU,EAAE,MAAA,MAAA,aAAa,CAAC,UAAU,0CAAE,QAAQ,mCAAI,iCAAiC,EAAE,8FAA8F;QACnL,YAAY,EAAE,KAAK;KACpB,CAAA;IACD,MAAM,qBAAqB,GAAG,MAAM,WAAW,CAAC,WAAW,CAAC,0BAA0B,CAAC,CAAA;IAEvF,6BAA6B;IAE7B,IAAI,0BAA0B,GAAa,EAAE,CAAA;IAC7C,IAAI,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,KAAK,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,+BAAc,EAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAErG,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,4BAAoB,EAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAA;QAEpF,MAAM,YAAY,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;QAE1D,0BAA0B,GAAG,YAAY,CAAA;IAC3C,CAAC;IAED,0CAA0C;IAE1C,IAAI,0BAA0B,GAAa,EAAE,CAAA;IAC7C,IAAI,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAE,IAAI,EAAE,CAAC;QAChC,MAAM,eAAe,GAAG,qBAAqB,CAAC,IAAI,CAAC,MAAM,CACvD,CAAC,QAAQ,EAA+B,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,YAAY,IAAI,QAAQ,CAClF,CAAA;QAED,MAAM,kBAAkB,GAAG,eAAe;aACvC,GAAG,CAAC,CAAC,CAAC,EAAE,WAAC,OAAA,MAAA,IAAA,kCAAkB,EAAC,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,0CAAE,GAAG,CAAA,EAAA,CAAC;aACpE,MAAM,CAAC,wBAAS,CAAC,CAAA;QAEpB,MAAM,aAAa,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,QAAQ,CAAC,IAAI,CAAC,MAAI,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,QAAQ,CAAC,IAAI,CAAC,CAAA,CAAC,CAAA;QAE5F,0BAA0B,GAAG,aAAa,CAAA;IAC5C,CAAC;IAED,sDAAsD;IAEtD,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,0BAA0B,EAAE,GAAG,0BAA0B,CAAC,CAAC,CAAC,CAAA;IAE9G,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,MAAM;QACjD,CAAC,CAAC,kBAAkB;aACf,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAA,oCAAuB,EAAC,IAAI,CAAC,CAAC;aAC1C,MAAM,CAAC,CAAC,MAAM,EAAoB,EAAE,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC;QACrE,CAAC,CAAC,EAAE,CAAA;IAEN,OAAO,iBAAiB,CAAA;AAC1B,CAAC,CAAA,CAAA;AA3FY,QAAA,eAAe,mBA2F3B"}
1
+ {"version":3,"file":"programUtil.js","sourceRoot":"","sources":["../../src/utils/programUtil.ts"],"names":[],"mappings":"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"}
@@ -1,30 +1,13 @@
1
1
  import { PeriodItem, SokUtbildningsTillfalleItem, SokUtbildningsTillfalleSlimItem } from '@kth/ladok-mellanlager-client';
2
+ import { ProgramCourse } from './programStrukturUtil';
2
3
  export declare const LAST_YEAR_TO_USE_SYLLABUSES_FOR_KURSLISTA = 2025;
3
- type CourseData = {
4
- kod: string;
5
- benamning: string;
6
- Valvillkor: string;
7
- omfattning: {
8
- number: number;
9
- formattedWithUnit: string;
10
- };
11
- startperiod?: {
12
- code: string;
13
- };
14
- Tillfallesperioder: {
15
- SistaUndervisningsdatum: string;
16
- }[];
17
- uid: string;
18
- utbildningsinstansUid: string;
19
- };
20
- type StudyYear = {
4
+ export type StudyYear = {
21
5
  yearNumber: number;
22
- courses: CourseData[];
6
+ courses: ProgramCourse[];
23
7
  };
24
8
  export declare const findMatchingPeriod: (date: string, periods: PeriodItem[]) => PeriodItem | undefined;
25
9
  export declare const extractYear: (kod: string) => number;
26
10
  export declare const getStudyYearFromEndDate: (periodEndDate: string, periodDetails: PeriodItem[], mainStartPeriod: string) => number | undefined;
27
- export declare const generateStudyYearData: (coursesData: CourseData[], periodDetails: PeriodItem[], mainStartPeriod: string, lengthStudyYear: number) => StudyYear[];
11
+ export declare const generateStudyYearData: (coursesData: ProgramCourse[], periodDetails: PeriodItem[], mainStartPeriod: string, lengthStudyYear: number) => StudyYear[];
28
12
  export declare const getStudyYearFromSemesters: (programmeStartSemester: string, courseStartSemester: string) => number | null;
29
13
  export declare const extractStudyYears: (courseInstance: SokUtbildningsTillfalleItem | SokUtbildningsTillfalleSlimItem, programmeInstance: SokUtbildningsTillfalleItem | SokUtbildningsTillfalleSlimItem, periodItems: PeriodItem[]) => number[];
30
- export {};
@@ -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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"}
@@ -0,0 +1,28 @@
1
+ type EntityWithVersionsnummer = {
2
+ versionsnummer: string;
3
+ };
4
+ /**
5
+ * For an array of entities with versionsnummer, this function returns the entity with the latest version (i.e. the highest versionsnummer).
6
+ * @param entities
7
+ * @returns
8
+ */
9
+ export declare const findLatestVersion: <T extends EntityWithVersionsnummer>(entities: T[]) => T | undefined;
10
+ /**
11
+ * For an array of entities with versionsnummer, this function returns the entity with the oldest version (i.e. the lowest versionsnummer).
12
+ * @param entities
13
+ * @returns
14
+ */
15
+ export declare const findOldestVersion: <T extends EntityWithVersionsnummer>(entities: T[]) => T | undefined;
16
+ /**
17
+ * Returns a copy of an array of entities with versionsnummer, sorted in descending order based on the versionsnummer.
18
+ * @param entities
19
+ * @returns
20
+ */
21
+ export declare const sortByVersionsnummerDesc: <T extends EntityWithVersionsnummer>(entities: T[]) => T[];
22
+ /**
23
+ * Returns a copy of an array of entities with versionsnummer, sorted in ascending order based on the versionsnummer.
24
+ * @param entities
25
+ * @returns
26
+ */
27
+ export declare const sortByVersionsnummerAsc: <T extends EntityWithVersionsnummer>(entities: T[]) => T[];
28
+ export {};
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sortByVersionsnummerAsc = exports.sortByVersionsnummerDesc = exports.findOldestVersion = exports.findLatestVersion = void 0;
4
+ /**
5
+ * For an array of entities with versionsnummer, this function returns the entity with the latest version (i.e. the highest versionsnummer).
6
+ * @param entities
7
+ * @returns
8
+ */
9
+ const findLatestVersion = (entities) => {
10
+ return (0, exports.sortByVersionsnummerDesc)(entities).at(0);
11
+ };
12
+ exports.findLatestVersion = findLatestVersion;
13
+ /**
14
+ * For an array of entities with versionsnummer, this function returns the entity with the oldest version (i.e. the lowest versionsnummer).
15
+ * @param entities
16
+ * @returns
17
+ */
18
+ const findOldestVersion = (entities) => {
19
+ return (0, exports.sortByVersionsnummerAsc)(entities).at(0);
20
+ };
21
+ exports.findOldestVersion = findOldestVersion;
22
+ /**
23
+ * Returns a copy of an array of entities with versionsnummer, sorted in descending order based on the versionsnummer.
24
+ * @param entities
25
+ * @returns
26
+ */
27
+ const sortByVersionsnummerDesc = (entities) => {
28
+ return [...entities].sort(compareVersionsnummerDesc); // TODO ES2023 introduces toSorted() which sorts a copy of the array
29
+ };
30
+ exports.sortByVersionsnummerDesc = sortByVersionsnummerDesc;
31
+ const compareVersionsnummerDesc = (a, b) => {
32
+ const versionsnummerA = parseInt(a.versionsnummer, 10);
33
+ const versionsnummerB = parseInt(b.versionsnummer, 10);
34
+ if (isNaN(versionsnummerA))
35
+ return 1;
36
+ if (isNaN(versionsnummerB))
37
+ return -1;
38
+ return versionsnummerB - versionsnummerA;
39
+ };
40
+ /**
41
+ * Returns a copy of an array of entities with versionsnummer, sorted in ascending order based on the versionsnummer.
42
+ * @param entities
43
+ * @returns
44
+ */
45
+ const sortByVersionsnummerAsc = (entities) => {
46
+ return [...entities].sort(compareVersionsnummerAsc); // TODO ES2023 introduces toSorted() which sorts a copy of the array
47
+ };
48
+ exports.sortByVersionsnummerAsc = sortByVersionsnummerAsc;
49
+ const compareVersionsnummerAsc = (a, b) => {
50
+ const versionsnummerA = parseInt(a.versionsnummer, 10);
51
+ const versionsnummerB = parseInt(b.versionsnummer, 10);
52
+ if (isNaN(versionsnummerA))
53
+ return 1;
54
+ if (isNaN(versionsnummerB))
55
+ return -1;
56
+ return versionsnummerA - versionsnummerB;
57
+ };
58
+ //# sourceMappingURL=versionUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versionUtils.js","sourceRoot":"","sources":["../../src/utils/versionUtils.ts"],"names":[],"mappings":";;;AAIA;;;;GAIG;AACI,MAAM,iBAAiB,GAAG,CAAqC,QAAa,EAAE,EAAE;IACrF,OAAO,IAAA,gCAAwB,EAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AACjD,CAAC,CAAA;AAFY,QAAA,iBAAiB,qBAE7B;AAED;;;;GAIG;AACI,MAAM,iBAAiB,GAAG,CAAqC,QAAa,EAAE,EAAE;IACrF,OAAO,IAAA,+BAAuB,EAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAChD,CAAC,CAAA;AAFY,QAAA,iBAAiB,qBAE7B;AAED;;;;GAIG;AACI,MAAM,wBAAwB,GAAG,CAAqC,QAAa,EAAE,EAAE;IAC5F,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAA,CAAC,oEAAoE;AAC3H,CAAC,CAAA;AAFY,QAAA,wBAAwB,4BAEpC;AAED,MAAM,yBAAyB,GAAG,CAAqC,CAAI,EAAE,CAAI,EAAE,EAAE;IACnF,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;IACtD,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;IACtD,IAAI,KAAK,CAAC,eAAe,CAAC;QAAE,OAAO,CAAC,CAAA;IACpC,IAAI,KAAK,CAAC,eAAe,CAAC;QAAE,OAAO,CAAC,CAAC,CAAA;IAErC,OAAO,eAAe,GAAG,eAAe,CAAA;AAC1C,CAAC,CAAA;AAED;;;;GAIG;AACI,MAAM,uBAAuB,GAAG,CAAqC,QAAa,EAAE,EAAE;IAC3F,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA,CAAC,oEAAoE;AAC1H,CAAC,CAAA;AAFY,QAAA,uBAAuB,2BAEnC;AAED,MAAM,wBAAwB,GAAG,CAAqC,CAAI,EAAE,CAAI,EAAE,EAAE;IAClF,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;IACtD,MAAM,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;IACtD,IAAI,KAAK,CAAC,eAAe,CAAC;QAAE,OAAO,CAAC,CAAA;IACpC,IAAI,KAAK,CAAC,eAAe,CAAC;QAAE,OAAO,CAAC,CAAC,CAAA;IAErC,OAAO,eAAe,GAAG,eAAe,CAAA;AAC1C,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kth/om-kursen-ladok-client",
3
- "version": "1.3.4",
3
+ "version": "1.3.6",
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,8 +21,8 @@
21
21
  "build:publish": "npm install --no-workspaces && npm run build"
22
22
  },
23
23
  "dependencies": {
24
- "@kth/ladok-attributvarde-utils": "0.1.2",
25
- "@kth/ladok-mellanlager-client": "0.4.2",
24
+ "@kth/ladok-attributvarde-utils": "0.1.4",
25
+ "@kth/ladok-mellanlager-client": "0.4.3",
26
26
  "date-fns": "^4.1.0",
27
27
  "showdown": "^2.1.0"
28
28
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"mapCourseInstans.js","sourceRoot":"","sources":["../src/mapCourseInstans.ts"],"names":[],"mappings":";;;AAAA,8EAAqF;AAGrF,uDAAkG;AAS3F,MAAM,wBAAwB,GAAG,CACtC,MAAmD,EACnD,QAAkB,EACI,EAAE;IACxB,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,CAAA;IAEjC,MAAM,SAAS,GAAG;QAChB,EAAE,EAAE,IAAA,yCAAa,EAAC,cAAc,EAAE,sCAAsC,CAAC;QACzE,EAAE,EAAE,IAAA,yCAAa,EAAC,cAAc,EAAE,uCAAuC,CAAC;KAC3E,CAAA;IAED,MAAM,cAAc,GAAG,IAAA,iDAAqB,EAAC,cAAc,CAAC,CAAA;IAE5D,MAAM,GAAG,GAAG,IAAA,yCAAa,EAAC,cAAc,EAAE,yBAAyB,CAAC,CAAA;IAEpE,OAAO;QACL,GAAG,EAAE,GAAI;QACT,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAE;QAC/B,cAAc,EAAE,cAAc,IAAI,IAAA,sCAAuB,EAAC,cAAc,EAAE,QAAQ,CAAC;QACnF,qBAAqB,EAAE,MAAM,CAAC,GAAG;KAClC,CAAA;AACH,CAAC,CAAA;AArBY,QAAA,wBAAwB,4BAqBpC"}