@kth/om-kursen-ladok-client 2.1.4 → 2.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/dist/attributVardenConstants.js +10 -0
  2. package/dist/attributVardenConstants.js.map +1 -1
  3. package/dist/kth/KTHPeriod/KTHPeriod.d.ts +19 -0
  4. package/dist/kth/KTHPeriod/KTHPeriod.js +60 -0
  5. package/dist/kth/KTHPeriod/KTHPeriod.js.map +1 -0
  6. package/dist/kth/KTHPeriod/calculateKTHPeriodSemesterFromTillfallesperiod.d.ts +10 -0
  7. package/dist/kth/KTHPeriod/calculateKTHPeriodSemesterFromTillfallesperiod.js +41 -0
  8. package/dist/kth/KTHPeriod/calculateKTHPeriodSemesterFromTillfallesperiod.js.map +1 -0
  9. package/dist/kth/KTHPeriod/convertToKTHPeriods.d.ts +12 -0
  10. package/dist/kth/KTHPeriod/convertToKTHPeriods.js +76 -0
  11. package/dist/kth/KTHPeriod/convertToKTHPeriods.js.map +1 -0
  12. package/dist/kth/KTHPeriod/extractKTHPeriodSemesterFromLasperiodsfordelning.d.ts +7 -0
  13. package/dist/kth/KTHPeriod/extractKTHPeriodSemesterFromLasperiodsfordelning.js +36 -0
  14. package/dist/kth/KTHPeriod/extractKTHPeriodSemesterFromLasperiodsfordelning.js.map +1 -0
  15. package/dist/kth/KTHPeriod/getKTHPeriodSemesters.d.ts +16 -0
  16. package/dist/kth/KTHPeriod/getKTHPeriodSemesters.js +28 -0
  17. package/dist/kth/KTHPeriod/getKTHPeriodSemesters.js.map +1 -0
  18. package/dist/kth/KTHPeriod/matchDateToKTHPeriodYear.d.ts +9 -0
  19. package/dist/kth/KTHPeriod/matchDateToKTHPeriodYear.js +21 -0
  20. package/dist/kth/KTHPeriod/matchDateToKTHPeriodYear.js.map +1 -0
  21. package/dist/kth/KTHPeriod/testdata/kthPeriods.d.ts +8 -0
  22. package/dist/kth/KTHPeriod/testdata/kthPeriods.js +43 -0
  23. package/dist/kth/KTHPeriod/testdata/kthPeriods.js.map +1 -0
  24. package/dist/kth/extractFunctions/extractBasicCourseData.d.ts +18 -0
  25. package/dist/kth/extractFunctions/extractBasicCourseData.js +47 -0
  26. package/dist/kth/extractFunctions/extractBasicCourseData.js.map +1 -0
  27. package/dist/kth/extractFunctions/extractDiscontinuationData.d.ts +9 -0
  28. package/dist/kth/extractFunctions/extractDiscontinuationData.js +33 -0
  29. package/dist/kth/extractFunctions/extractDiscontinuationData.js.map +1 -0
  30. package/dist/mapCourse.d.ts +1 -10
  31. package/dist/mapCourse.js +6 -46
  32. package/dist/mapCourse.js.map +1 -1
  33. package/dist/mapCourseRound.d.ts +8 -15
  34. package/dist/mapCourseRound.js.map +1 -1
  35. package/dist/mapCourseSyllabus.d.ts +15 -44
  36. package/dist/mapCourseSyllabus.js +39 -43
  37. package/dist/mapCourseSyllabus.js.map +1 -1
  38. package/dist/mapProgramSyllabus.js +6 -41
  39. package/dist/mapProgramSyllabus.js.map +1 -1
  40. package/dist/search/types.d.ts +4 -1
  41. package/dist/supportApis/PeriodService.d.ts +8 -0
  42. package/dist/supportApis/PeriodService.js +46 -0
  43. package/dist/supportApis/PeriodService.js.map +1 -0
  44. package/dist/utils/AcademicSemester.d.ts +1 -0
  45. package/dist/utils/AcademicSemester.js +5 -0
  46. package/dist/utils/AcademicSemester.js.map +1 -1
  47. package/dist/utils/courseSyllabusUtil.d.ts +1 -1
  48. package/dist/utils/courseSyllabusUtil.js +12 -29
  49. package/dist/utils/courseSyllabusUtil.js.map +1 -1
  50. package/dist/utils/languageUtil.d.ts +5 -0
  51. package/dist/utils/languageUtil.js +11 -2
  52. package/dist/utils/languageUtil.js.map +1 -1
  53. package/dist/utils/periodUtil.d.ts +6 -0
  54. package/dist/utils/periodUtil.js +12 -2
  55. package/dist/utils/periodUtil.js.map +1 -1
  56. package/dist/utils/syllabusExtractionUtil.d.ts +8 -0
  57. package/dist/utils/syllabusExtractionUtil.js +71 -0
  58. package/dist/utils/syllabusExtractionUtil.js.map +1 -0
  59. package/dist/utils/typeChecking.d.ts +6 -0
  60. package/dist/utils/typeChecking.js +8 -1
  61. package/dist/utils/typeChecking.js.map +1 -1
  62. package/package.json +2 -2
package/dist/mapCourse.js CHANGED
@@ -3,54 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.mapCourse = void 0;
4
4
  const ladok_attributvarde_utils_1 = require("@kth/ladok-attributvarde-utils");
5
5
  const languageUtil_1 = require("./utils/languageUtil");
6
- const creditsUtil_1 = require("./utils/creditsUtil");
7
6
  const schoolUtil_1 = require("./utils/schoolUtil");
7
+ const extractDiscontinuationData_1 = require("./kth/extractFunctions/extractDiscontinuationData");
8
+ const extractBasicCourseData_1 = require("./kth/extractFunctions/extractBasicCourseData");
8
9
  const extractBasicData = (course, language) => {
9
- var _a;
10
- const kod = (0, ladok_attributvarde_utils_1.extractString)(course.Attributvarden, 'utbildning.attribut.kod');
11
- const benamningMultiLingual = {
12
- sv: (0, ladok_attributvarde_utils_1.extractString)(course.Attributvarden, 'utbildning.attribut.svensk.benamning'),
13
- en: (0, ladok_attributvarde_utils_1.extractString)(course.Attributvarden, 'utbildning.attribut.engelsk.benamning'),
14
- };
15
- const omfattningRaw = (_a = (0, ladok_attributvarde_utils_1.extractString)(course.Attributvarden, 'utbildning.attribut.omfattning', 'omfattning')) !== null && _a !== void 0 ? _a : '';
16
- const utbildningstyp = (0, ladok_attributvarde_utils_1.extractUtbildningstyp)(course.Attributvarden);
17
- const omfattning = {
18
- number: omfattningRaw,
19
- formattedWithUnit: (0, creditsUtil_1.formatCreditsWithUnitLabel)(omfattningRaw, utbildningstyp, language),
20
- };
21
- return {
22
- kod,
23
- benamning: benamningMultiLingual[language],
24
- omfattning,
25
- uid: course.instans_uid,
26
- versionsnummer: (0, ladok_attributvarde_utils_1.extractVersionNumber)(course.Attributvarden),
27
- };
10
+ return (0, extractBasicCourseData_1.extractBasicCourseData)(course.Attributvarden, language, course.instans_uid);
28
11
  };
29
- const extractDiscontinuationData = (course, language, statusCode) => {
30
- var _a, _b, _c, _d, _e, _f;
31
- if (statusCode !== ladok_attributvarde_utils_1.LadokStatusCode.Complete)
32
- return {};
33
- const underavvecklingLadok = (0, ladok_attributvarde_utils_1.extractLokaltAttribut)(course.Attributvarden, 'avvecklad.status', ladok_attributvarde_utils_1.LokaltAttributType.Boolean);
34
- const avvecklingsbeslutLadok = (_a = (0, ladok_attributvarde_utils_1.extractLokaltAttribut)(course.Attributvarden, 'avvecklingsbeslut2', ladok_attributvarde_utils_1.LokaltAttributType.LocalizedString)) === null || _a === void 0 ? void 0 : _a[language];
35
- const avvecklingsbeslutLadokAlternative = (_b = (0, ladok_attributvarde_utils_1.extractLokaltAttribut)(course.Attributvarden, 'avvecklingsbeslut3', ladok_attributvarde_utils_1.LokaltAttributType.LocalizedString)) === null || _b === void 0 ? void 0 : _b[language];
36
- const underavvecklingMigrated = ((_c = (0, ladok_attributvarde_utils_1.extractLokaltAttribut)(course.Attributvarden, 'kursstatus', ladok_attributvarde_utils_1.LokaltAttributType.LocalizedString)) === null || _c === void 0 ? void 0 : _c.en) === 'DEACTIVATED';
37
- const avvecklingsbeslutMigrated = (_d = (0, ladok_attributvarde_utils_1.extractLokaltAttribut)(course.Attributvarden, 'avvecklingsbeslut', ladok_attributvarde_utils_1.LokaltAttributType.LocalizedString)) === null || _d === void 0 ? void 0 : _d[language];
38
- const sistaexaminationstermin = (_e = (0, ladok_attributvarde_utils_1.extractLokaltAttribut)(course.Attributvarden, 'sista.examinationstermin1', ladok_attributvarde_utils_1.LokaltAttributType.LocalizedString)) === null || _e === void 0 ? void 0 : _e[language];
39
- if (underavvecklingLadok || underavvecklingMigrated) {
40
- const isFromLadok = underavvecklingLadok;
41
- const avvecklingsbeslut = isFromLadok
42
- ? ((_f = avvecklingsbeslutLadokAlternative !== null && avvecklingsbeslutLadokAlternative !== void 0 ? avvecklingsbeslutLadokAlternative : avvecklingsbeslutLadok) !== null && _f !== void 0 ? _f : avvecklingsbeslutMigrated)
43
- : avvecklingsbeslutMigrated;
44
- const avvecklingsInfo = {
45
- underavveckling: true,
46
- avvecklingsbeslut,
47
- };
48
- if (!isFromLadok) {
49
- avvecklingsInfo.sistaexaminationstermin = sistaexaminationstermin;
50
- }
51
- return avvecklingsInfo;
52
- }
53
- return {};
12
+ const extractDiscontinuationDataFromCourse = (course, language, statusCode) => {
13
+ return (0, extractDiscontinuationData_1.extractDiscontinuationData)(course.Attributvarden, language, statusCode);
54
14
  };
55
15
  const mapCourse = (course, language, gradingScalesCodes) => {
56
16
  const status = (0, ladok_attributvarde_utils_1.extractLadokStatus)(course.Attributvarden);
@@ -59,7 +19,7 @@ const mapCourse = (course, language, gradingScalesCodes) => {
59
19
  const huvudomraden = (0, ladok_attributvarde_utils_1.extractHuvudomraden)(course.Attributvarden);
60
20
  const organisation = (0, ladok_attributvarde_utils_1.extractOrganisation)(course.Attributvarden);
61
21
  const utbildningstyp = (0, ladok_attributvarde_utils_1.extractUtbildningstyp)(course.Attributvarden);
62
- const { underavveckling, avvecklingsbeslut, sistaexaminationstermin } = extractDiscontinuationData(course, language, status === null || status === void 0 ? void 0 : status.code);
22
+ const { underavveckling, avvecklingsbeslut, sistaexaminationstermin } = extractDiscontinuationDataFromCourse(course, language, status === null || status === void 0 ? void 0 : status.code);
63
23
  const isMiljo = (0, ladok_attributvarde_utils_1.extractIsMiljo)(course.Attributvarden);
64
24
  return {
65
25
  uid,
@@ -1 +1 @@
1
- {"version":3,"file":"mapCourse.js","sourceRoot":"","sources":["../src/mapCourse.ts"],"names":[],"mappings":"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"}
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"}
@@ -2,25 +2,19 @@ import { LadokStatus } from '@kth/ladok-attributvarde-utils';
2
2
  import { SokUtbildningsTillfalleItem, SokUtbildningsTillfalleSlimItem } from '@kth/ladok-mellanlager-client';
3
3
  import { Language, TranslatedGrunddata } from './utils';
4
4
  import { PartOfProgramme } from './mapPartOfProgramme';
5
- interface Tillfallesperiod {
5
+ export type Lasperiodsfordelning = {
6
+ Lasperiodskod: string;
7
+ Omfattningsvarde: number;
8
+ link: string[];
9
+ };
10
+ export type Tillfallesperiod = {
6
11
  ForstaRegistreringsdatum: string;
7
12
  ForstaUndervisningsdatum: string;
8
13
  SistaRegistreringsdatum: string;
9
- Lasperiodsfordelning: [
10
- {
11
- Lasperiodskod: string;
12
- Omfattningsvarde: number;
13
- link: string[];
14
- },
15
- {
16
- Lasperiodskod: string;
17
- Omfattningsvarde: number;
18
- link: string[];
19
- }
20
- ];
14
+ Lasperiodsfordelning: Lasperiodsfordelning[];
21
15
  Omfattningsvarde: number;
22
16
  SistaUndervisningsdatum: string;
23
- }
17
+ };
24
18
  export type CourseRound = {
25
19
  uid: string;
26
20
  utbildningstyp: string;
@@ -60,4 +54,3 @@ export type CourseRound = {
60
54
  schemaUrl?: string;
61
55
  };
62
56
  export declare const mapCourseRound: (item: SokUtbildningsTillfalleItem | SokUtbildningsTillfalleSlimItem, language: Language, partOfProgramme?: PartOfProgramme[]) => CourseRound;
63
- export {};
@@ -1 +1 @@
1
- {"version":3,"file":"mapCourseRound.js","sourceRoot":"","sources":["../src/mapCourseRound.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mapCourseRound.js","sourceRoot":"","sources":["../src/mapCourseRound.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { SokPlanItem, SokPlanSlimItem } from '@kth/ladok-mellanlager-client';
2
- import { Grunddata } from '@kth/ladok-attributvarde-utils';
3
- import { Language } from './utils';
2
+ import { Language, TranslatedGrunddata, TranslatedOrganisation, TranslatedUtbildningstyp } from './utils';
4
3
  import { GradingScalesCodes } from './mapGradingScales';
5
4
  interface FormattedExaminationModules {
6
5
  completeExaminationStrings: string;
@@ -10,62 +9,33 @@ export type KursPlan = {
10
9
  course: {
11
10
  kod: string | undefined;
12
11
  benamning: {
13
- sv: string | undefined;
14
- en: string | undefined;
12
+ name: string | undefined;
13
+ nameOther: string | undefined;
15
14
  };
16
15
  omfattning: {
17
16
  number: string | undefined;
18
17
  formattedWithUnit: string | undefined;
19
18
  };
20
- betygsskala: string | undefined;
21
- nivainomstudieordning: Grunddata | undefined;
22
- huvudomraden: Grunddata[] | undefined;
23
- overgangsbestammelser: string | undefined;
19
+ betygsskala?: TranslatedGrunddata & {
20
+ formatted: string | undefined;
21
+ };
22
+ utbildningstyp?: TranslatedUtbildningstyp;
23
+ huvudomraden?: TranslatedGrunddata[];
24
+ organisation?: TranslatedOrganisation;
25
+ avvecklad?: boolean;
26
+ underavveckling?: boolean;
27
+ sistaexaminationstermin?: string;
24
28
  };
25
29
  kursplan: {
26
30
  giltigfrom: string | undefined;
27
- utgava: string | undefined;
28
- undervisningssprak: string | undefined;
29
- larandemal: string | undefined;
30
- kursinnehall: string | undefined;
31
- etisktforhallningssatt: string | undefined;
32
- faststallande: string | undefined;
33
- examinationModules: Partial<FormattedExaminationModules>;
34
- kommentartillexamination: string | undefined;
35
- ovrigakravforslutbetyg: string | undefined;
36
- ovrigaForeskrifter: string | undefined;
37
- kurslitteratur: string | undefined;
38
- kursupplagg: string | undefined;
39
- sarskildbehorighet: string | undefined;
40
- gammalutrustning: string | undefined;
41
- avvecklingsbeslut: string | undefined;
42
- };
43
- };
44
- export declare const mapCourseSyllabus: (syllabus: SokPlanItem | SokPlanSlimItem, gradingScalesCodes: GradingScalesCodes, examinationModules: FormattedExaminationModules, language: Language) => {
45
- course: {
46
- kod: string | undefined;
47
- benamning: {
48
- sv: string | undefined;
49
- en: string | undefined;
50
- };
51
- omfattning: {
52
- number: string;
53
- formattedWithUnit: string;
54
- };
55
- betygsskala: string;
56
- nivainomstudieordning: import("@kth/ladok-attributvarde-utils").Utbildningstyp | undefined;
57
- huvudomraden: Grunddata[] | undefined;
58
31
  overgangsbestammelser: string | undefined;
59
- };
60
- kursplan: {
61
- giltigfrom: string;
62
- utgava: string | undefined;
32
+ utgava: number | undefined;
63
33
  undervisningssprak: string | undefined;
64
34
  larandemal: string | undefined;
65
35
  kursinnehall: string | undefined;
66
36
  etisktforhallningssatt: string | undefined;
67
37
  faststallande: string | undefined;
68
- examinationModules: FormattedExaminationModules;
38
+ examinationModules: Partial<FormattedExaminationModules>;
69
39
  kommentartillexamination: string | undefined;
70
40
  ovrigakravforslutbetyg: string | undefined;
71
41
  ovrigaForeskrifter: string | undefined;
@@ -76,4 +46,5 @@ export declare const mapCourseSyllabus: (syllabus: SokPlanItem | SokPlanSlimItem
76
46
  avvecklingsbeslut: string | undefined;
77
47
  };
78
48
  };
49
+ export declare const mapCourseSyllabus: (syllabus: SokPlanItem | SokPlanSlimItem, gradingScalesCodes: GradingScalesCodes, examinationModules: FormattedExaminationModules, language: Language) => KursPlan;
79
50
  export {};
@@ -1,64 +1,60 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.mapCourseSyllabus = void 0;
7
4
  const ladok_attributvarde_utils_1 = require("@kth/ladok-attributvarde-utils");
8
- const creditsUtil_1 = require("./utils/creditsUtil");
9
5
  const ladok_attributvarde_utils_2 = require("@kth/ladok-attributvarde-utils");
6
+ const utils_1 = require("./utils");
10
7
  const courseSyllabusUtil_1 = require("./utils/courseSyllabusUtil");
11
- const showdown_1 = __importDefault(require("showdown"));
12
- const convertMarkdownToHtml = (markdownText) => {
13
- var converter = new showdown_1.default.Converter();
14
- if (markdownText)
15
- return converter.makeHtml(markdownText);
8
+ const extractDiscontinuationData_1 = require("./kth/extractFunctions/extractDiscontinuationData");
9
+ const syllabusExtractionUtil_1 = require("./utils/syllabusExtractionUtil");
10
+ const extractBasicCourseData_1 = require("./kth/extractFunctions/extractBasicCourseData");
11
+ const extractBasicData = (syllabus, language) => {
12
+ return (0, extractBasicCourseData_1.extractBasicCourseData)(syllabus.instans.Attributvarden, language);
16
13
  };
17
- //TODO: we should change the name if extractString here since we have a extractor util with this name
18
- const extractString = (syllabus, attributeName, language) => {
19
- var _a;
20
- return convertMarkdownToHtml((_a = syllabus.AktuellaAttributvarden.find(item => { var _a; return ((_a = item.Attributdefinition) === null || _a === void 0 ? void 0 : _a.Kod) === `utbildning.lokalt.attribut.29.${attributeName}.${language}`; })) === null || _a === void 0 ? void 0 : _a.Varden[0]);
14
+ const extractDiscontinuationDataFromPlan = (ladokResponse, language) => {
15
+ return (0, extractDiscontinuationData_1.extractDiscontinuationData)(ladokResponse.instans.Attributvarden, language);
21
16
  };
22
17
  const mapCourseSyllabus = (syllabus, gradingScalesCodes, examinationModules, language) => {
23
- var _a, _b, _c, _d;
24
- const kod = (0, ladok_attributvarde_utils_2.extractString)(syllabus.instans.Attributvarden, 'utbildning.attribut.kod');
18
+ var _a;
19
+ const { kod, benamning, omfattning } = extractBasicData(syllabus, language);
25
20
  const betygsskala = (_a = (0, ladok_attributvarde_utils_2.extractGrunddata)(syllabus.instans.Attributvarden, 'utbildning.attribut.betygsskala')) !== null && _a !== void 0 ? _a : (0, ladok_attributvarde_utils_2.extractGrunddata)(syllabus.AktuellaAttributvarden, 'utbildning.attribut.betygsskala');
21
+ const huvudomraden = (0, ladok_attributvarde_utils_1.extractHuvudomraden)(syllabus.instans.Attributvarden);
22
+ const organisation = (0, ladok_attributvarde_utils_1.extractOrganisation)(syllabus.instans.Attributvarden);
23
+ const utbildningstyp = (0, ladok_attributvarde_utils_2.extractUtbildningstyp)(syllabus.instans.Attributvarden);
26
24
  if (!(betygsskala === null || betygsskala === void 0 ? void 0 : betygsskala.code))
27
25
  throw new Error(`"utbildning.attribut.betygsskala.kod" does not have any value for ${kod}`);
28
- const omfattning = (_c = (_b = (0, ladok_attributvarde_utils_2.extractString)(syllabus.instans.Attributvarden, 'utbildning.attribut.omfattning', 'omfattning')) !== null && _b !== void 0 ? _b : (0, ladok_attributvarde_utils_2.extractString)(syllabus.AktuellaAttributvarden, 'utbildning.attribut.omfattning', 'omfattning')) !== null && _c !== void 0 ? _c : '';
26
+ const { underavveckling, sistaexaminationstermin } = extractDiscontinuationDataFromPlan(syllabus, language);
29
27
  return {
30
28
  course: {
31
- kod: kod,
32
- benamning: {
33
- sv: (0, ladok_attributvarde_utils_2.extractString)(syllabus.instans.Attributvarden, 'utbildning.attribut.svensk.benamning'),
34
- en: (0, ladok_attributvarde_utils_2.extractString)(syllabus.instans.Attributvarden, 'utbildning.attribut.engelsk.benamning'),
35
- },
36
- omfattning: {
37
- number: omfattning,
38
- formattedWithUnit: (0, creditsUtil_1.formatCreditsWithUnitLabel)(omfattning, (0, ladok_attributvarde_utils_2.extractUtbildningstyp)(syllabus.instans.Attributvarden), language),
39
- },
40
- betygsskala: gradingScalesCodes[betygsskala === null || betygsskala === void 0 ? void 0 : betygsskala.code],
41
- nivainomstudieordning: (0, ladok_attributvarde_utils_2.extractUtbildningstyp)(syllabus.instans.Attributvarden),
42
- huvudomraden: (0, ladok_attributvarde_utils_1.extractHuvudomraden)(syllabus.instans.Attributvarden),
43
- overgangsbestammelser: extractString(syllabus, 'overgangsbestammelser', language),
29
+ kod,
30
+ benamning,
31
+ omfattning,
32
+ betygsskala: betygsskala && Object.assign(Object.assign({}, (0, utils_1.translateGrunddata)(betygsskala, language)), { formatted: gradingScalesCodes[betygsskala.code] }),
33
+ utbildningstyp: utbildningstyp && (0, utils_1.translateUtbildningstyp)(utbildningstyp, language),
34
+ huvudomraden: huvudomraden === null || huvudomraden === void 0 ? void 0 : huvudomraden.map(x => (0, utils_1.translateGrunddata)(x, language)),
35
+ organisation: organisation && (0, utils_1.translateOrganisation)(organisation, language),
36
+ avvecklad: (0, ladok_attributvarde_utils_1.extractBoolean)(syllabus.instans.Attributvarden, 'avvecklad'),
37
+ underavveckling,
38
+ sistaexaminationstermin,
44
39
  },
45
40
  kursplan: {
46
41
  giltigfrom: (0, courseSyllabusUtil_1.getSemester)(syllabus.GiltigFran),
47
- utgava: (_d = syllabus.AktuellaAttributvarden.find(item => { var _a; return ((_a = item.Attributdefinition) === null || _a === void 0 ? void 0 : _a.Kod) === `utbildning.lokalt.attribut.29.utgava`; })) === null || _d === void 0 ? void 0 : _d.Varden[0],
48
- undervisningssprak: extractString(syllabus, 'undervisningssprak', language),
49
- larandemal: extractString(syllabus, 'larandemal', language),
50
- kursinnehall: extractString(syllabus, 'kursinnehall', language),
51
- etisktforhallningssatt: extractString(syllabus, 'etiskt.forhallningssatt', language),
52
- faststallande: extractString(syllabus, 'fastallande1', language),
42
+ overgangsbestammelser: (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(syllabus.AktuellaAttributvarden, 'overgangsbestammelser', language),
43
+ utgava: (0, ladok_attributvarde_utils_1.extractLokaltAttribut)(syllabus.AktuellaAttributvarden, 'utgava', ladok_attributvarde_utils_1.LokaltAttributType.Integer, true),
44
+ undervisningssprak: (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(syllabus.AktuellaAttributvarden, 'undervisningssprak', language),
45
+ larandemal: (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(syllabus.AktuellaAttributvarden, 'larandemal', language),
46
+ kursinnehall: (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(syllabus.AktuellaAttributvarden, 'kursinnehall', language),
47
+ etisktforhallningssatt: (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(syllabus.AktuellaAttributvarden, 'etiskt.forhallningssatt', language),
48
+ faststallande: (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(syllabus.AktuellaAttributvarden, 'fastallande1', language),
53
49
  examinationModules,
54
- kommentartillexamination: extractString(syllabus, 'kommentar.till.examination', language),
55
- ovrigakravforslutbetyg: extractString(syllabus, 'ovriga.krav.for.slutbeyg', language),
56
- ovrigaForeskrifter: extractString(syllabus, 'ovriga.foreskrifter', language),
57
- kurslitteratur: extractString(syllabus, 'gammal.kurslitteratur', language),
58
- kursupplagg: extractString(syllabus, 'gammal.kursupplagg', language),
59
- sarskildbehorighet: extractString(syllabus, 'sarskild.behorighet', language),
60
- gammalutrustning: extractString(syllabus, 'gammal.utrustning', language),
61
- avvecklingsbeslut: extractString(syllabus, 'avvecklingsbeslut', language),
50
+ kommentartillexamination: (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(syllabus.AktuellaAttributvarden, 'kommentar.till.examination', language),
51
+ ovrigakravforslutbetyg: (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(syllabus.AktuellaAttributvarden, 'ovriga.krav.for.slutbeyg', language),
52
+ ovrigaForeskrifter: (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(syllabus.AktuellaAttributvarden, 'ovriga.foreskrifter', language),
53
+ kurslitteratur: (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(syllabus.AktuellaAttributvarden, 'gammal.kurslitteratur', language),
54
+ kursupplagg: (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(syllabus.AktuellaAttributvarden, 'gammal.kursupplagg', language),
55
+ sarskildbehorighet: (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(syllabus.AktuellaAttributvarden, 'sarskild.behorighet', language),
56
+ gammalutrustning: (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(syllabus.AktuellaAttributvarden, 'gammal.utrustning', language),
57
+ avvecklingsbeslut: (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(syllabus.AktuellaAttributvarden, 'avvecklingsbeslut', language),
62
58
  },
63
59
  };
64
60
  };
@@ -1 +1 @@
1
- {"version":3,"file":"mapCourseSyllabus.js","sourceRoot":"","sources":["../src/mapCourseSyllabus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mapCourseSyllabus.js","sourceRoot":"","sources":["../src/mapCourseSyllabus.ts"],"names":[],"mappings":";;;AACA,8EAMuC;AACvC,8EAAwF;AACxF,mCAQgB;AAEhB,mEAAwD;AACxD,kGAAmH;AACnH,2EAAgF;AAChF,0FAAmG;AA+CnG,MAAM,gBAAgB,GAAG,CAAC,QAAuC,EAAE,QAAkB,EAAe,EAAE;IACpG,OAAO,IAAA,+CAAsB,EAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAA;AAC1E,CAAC,CAAA;AAED,MAAM,kCAAkC,GAAG,CACzC,aAA4C,EAC5C,QAAkB,EACG,EAAE;IACvB,OAAO,IAAA,uDAA0B,EAAC,aAAa,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAA;AACnF,CAAC,CAAA;AAEM,MAAM,iBAAiB,GAAG,CAC/B,QAAuC,EACvC,kBAAsC,EACtC,kBAA+C,EAC/C,QAAkB,EACR,EAAE;;IACZ,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC3E,MAAM,WAAW,GACf,MAAA,IAAA,4CAAgB,EAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,iCAAiC,CAAC,mCACpF,IAAA,4CAAgB,EAAC,QAAQ,CAAC,sBAAsB,EAAE,iCAAiC,CAAC,CAAA;IACtF,MAAM,YAAY,GAAG,IAAA,+CAAmB,EAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IACzE,MAAM,YAAY,GAAG,IAAA,+CAAmB,EAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IACzE,MAAM,cAAc,GAAG,IAAA,iDAAqB,EAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IAC7E,IAAI,CAAC,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,CAAA;QAAE,MAAM,IAAI,KAAK,CAAC,qEAAqE,GAAG,EAAE,CAAC,CAAA;IACnH,MAAM,EAAE,eAAe,EAAE,uBAAuB,EAAE,GAAG,kCAAkC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAA;IAC3G,OAAO;QACL,MAAM,EAAE;YACN,GAAG;YACH,SAAS;YACT,UAAU;YACV,WAAW,EAAE,WAAW,oCACnB,IAAA,0BAAkB,EAAC,WAAW,EAAE,QAAQ,CAAC,KAC5C,SAAS,EAAE,kBAAkB,CAAC,WAAW,CAAC,IAAI,CAAC,GAChD;YACD,cAAc,EAAE,cAAc,IAAI,IAAA,+BAAuB,EAAC,cAAc,EAAE,QAAQ,CAAC;YACnF,YAAY,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAA,0BAAkB,EAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YACrE,YAAY,EAAE,YAAY,IAAI,IAAA,6BAAqB,EAAC,YAAY,EAAE,QAAQ,CAAC;YAC3E,SAAS,EAAE,IAAA,0CAAc,EAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC;YACvE,eAAe;YACf,uBAAuB;SACxB;QACD,QAAQ,EAAE;YACR,UAAU,EAAE,IAAA,gCAAW,EAAC,QAAQ,CAAC,UAAU,CAAC;YAC5C,qBAAqB,EAAE,IAAA,wDAA+B,EACpD,QAAQ,CAAC,sBAAsB,EAC/B,uBAAuB,EACvB,QAAQ,CACT;YACD,MAAM,EAAE,IAAA,iDAAqB,EAAC,QAAQ,CAAC,sBAAsB,EAAE,QAAQ,EAAE,8CAAkB,CAAC,OAAO,EAAE,IAAI,CAAC;YAC1G,kBAAkB,EAAE,IAAA,wDAA+B,EACjD,QAAQ,CAAC,sBAAsB,EAC/B,oBAAoB,EACpB,QAAQ,CACT;YACD,UAAU,EAAE,IAAA,wDAA+B,EAAC,QAAQ,CAAC,sBAAsB,EAAE,YAAY,EAAE,QAAQ,CAAC;YACpG,YAAY,EAAE,IAAA,wDAA+B,EAAC,QAAQ,CAAC,sBAAsB,EAAE,cAAc,EAAE,QAAQ,CAAC;YACxG,sBAAsB,EAAE,IAAA,wDAA+B,EACrD,QAAQ,CAAC,sBAAsB,EAC/B,yBAAyB,EACzB,QAAQ,CACT;YACD,aAAa,EAAE,IAAA,wDAA+B,EAAC,QAAQ,CAAC,sBAAsB,EAAE,cAAc,EAAE,QAAQ,CAAC;YACzG,kBAAkB;YAClB,wBAAwB,EAAE,IAAA,wDAA+B,EACvD,QAAQ,CAAC,sBAAsB,EAC/B,4BAA4B,EAC5B,QAAQ,CACT;YACD,sBAAsB,EAAE,IAAA,wDAA+B,EACrD,QAAQ,CAAC,sBAAsB,EAC/B,0BAA0B,EAC1B,QAAQ,CACT;YACD,kBAAkB,EAAE,IAAA,wDAA+B,EACjD,QAAQ,CAAC,sBAAsB,EAC/B,qBAAqB,EACrB,QAAQ,CACT;YACD,cAAc,EAAE,IAAA,wDAA+B,EAC7C,QAAQ,CAAC,sBAAsB,EAC/B,uBAAuB,EACvB,QAAQ,CACT;YACD,WAAW,EAAE,IAAA,wDAA+B,EAAC,QAAQ,CAAC,sBAAsB,EAAE,oBAAoB,EAAE,QAAQ,CAAC;YAC7G,kBAAkB,EAAE,IAAA,wDAA+B,EACjD,QAAQ,CAAC,sBAAsB,EAC/B,qBAAqB,EACrB,QAAQ,CACT;YACD,gBAAgB,EAAE,IAAA,wDAA+B,EAAC,QAAQ,CAAC,sBAAsB,EAAE,mBAAmB,EAAE,QAAQ,CAAC;YACjH,iBAAiB,EAAE,IAAA,wDAA+B,EAChD,QAAQ,CAAC,sBAAsB,EAC/B,mBAAmB,EACnB,QAAQ,CACT;SACF;KACF,CAAA;AACH,CAAC,CAAA;AAvFY,QAAA,iBAAiB,qBAuF7B"}
@@ -1,56 +1,21 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.mapProgramSyllabus = void 0;
7
4
  const ladok_attributvarde_utils_1 = require("@kth/ladok-attributvarde-utils");
8
5
  const utils_1 = require("./utils");
9
- const showdown_1 = __importDefault(require("showdown"));
10
- const normalizeMarkdownTables = (raw) => {
11
- if (!raw)
12
- return raw;
13
- let normalized = raw
14
- // Step 1: Convert escaped \n to real newlines
15
- .replace(/\\n/g, '\n')
16
- // Step 2: Remove unnecessary escapes (but preserve Markdown ones like \*, \_)
17
- .replace(/\\(?![|*_\\])/g, '')
18
- // Step 3: Fix escaped pipe characters in full table rows
19
- .replace(/^\\\|(.+?)\\\|$/gm, (_match, row) => `|${row}|`)
20
- .replace(/\\\|/g, '|')
21
- // Step 4: Replace double backslashes with single
22
- .replace(/\\\\/g, '\\')
23
- // Step 5: Insert newline between two table rows if they're mashed together
24
- .replace(/(\|.+?\|)\s*(?=\|)/g, '$1\n')
25
- // Step 6: Remove \n at the end of the <br>
26
- .replace(/<br>\n/g, '<br>');
27
- return normalized;
28
- };
29
- const convertMarkdownToHtml = (markdownText) => {
30
- const converter = new showdown_1.default.Converter({ tables: true });
31
- if (markdownText)
32
- return converter.makeHtml(markdownText);
33
- };
6
+ const syllabusExtractionUtil_1 = require("./utils/syllabusExtractionUtil");
34
7
  const mapProgramSyllabus = (syllabus, periods, language) => {
35
8
  var _a;
36
- const buildAttributeKey = (attribute, onlyEn = false) => {
37
- return `utbildning.lokalt.attribut.29.${attribute}.${onlyEn ? 'en' : language}`;
38
- };
39
9
  const findAndConvertMarkdownValue = (attribute, attributvarden = syllabus.AktuellaAttributvarden) => {
40
- const attributeKey = buildAttributeKey(attribute);
41
- const extractedValueForAttribute = (0, ladok_attributvarde_utils_1.extractString)(attributvarden, attributeKey, 'markdown');
42
- const normalizedMarkdownData = normalizeMarkdownTables(extractedValueForAttribute);
43
- return convertMarkdownToHtml(normalizedMarkdownData);
10
+ return (0, syllabusExtractionUtil_1.extractAndConvertMarkdownToHtml)(attributvarden, attribute, language, false, true);
44
11
  };
45
12
  const findIntegerValue = (attribute, attributvarden = syllabus.AktuellaAttributvarden) => {
46
- const attributeKey = buildAttributeKey(attribute);
47
- const extractedValueForAttribute = (0, ladok_attributvarde_utils_1.extractInteger)(attributvarden, attributeKey);
48
- return extractedValueForAttribute;
13
+ const result = (0, ladok_attributvarde_utils_1.extractLokaltAttribut)(attributvarden, attribute, ladok_attributvarde_utils_1.LokaltAttributType.Integer);
14
+ return result === null || result === void 0 ? void 0 : result[language];
49
15
  };
50
16
  const findStringValues = (attribute, onlyEn = false) => {
51
- const attributeKey = buildAttributeKey(attribute, onlyEn);
52
- const extractedValueForAttribute = (0, ladok_attributvarde_utils_1.extractStrings)(syllabus.AktuellaAttributvarden, attributeKey);
53
- return extractedValueForAttribute;
17
+ const result = (0, ladok_attributvarde_utils_1.extractLokaltAttribut)(syllabus.AktuellaAttributvarden, attribute, ladok_attributvarde_utils_1.LokaltAttributType.StringArray);
18
+ return onlyEn ? result === null || result === void 0 ? void 0 : result.en : result === null || result === void 0 ? void 0 : result[language];
54
19
  };
55
20
  const giltigFran = (0, utils_1.findMatchingPeriod)(syllabus.GiltigFran, periods);
56
21
  const specializations = [];
@@ -1 +1 @@
1
- {"version":3,"file":"mapProgramSyllabus.js","sourceRoot":"","sources":["../src/mapProgramSyllabus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mapProgramSyllabus.js","sourceRoot":"","sources":["../src/mapProgramSyllabus.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,10 @@ export type CleanSearchParams = Omit<SearchParams, 'utbildningsniva'> & {
27
27
  };
28
28
  export type CourseVersionDTO = {
29
29
  kod: string;
30
- benamning: string;
30
+ benamning: {
31
+ name: string | undefined;
32
+ nameOther: string | undefined;
33
+ };
31
34
  omfattning: string;
32
35
  utbildningstyp: string;
33
36
  };
@@ -0,0 +1,8 @@
1
+ import { LadokMellanlagerApiClient, PeriodItem } from '@kth/ladok-mellanlager-client';
2
+ export declare class PeriodService {
3
+ private ladokClient;
4
+ private static cache;
5
+ constructor(ladokClient: LadokMellanlagerApiClient);
6
+ private aggregatePeriodItems;
7
+ getPeriodItems(): Promise<PeriodItem[]>;
8
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.PeriodService = void 0;
13
+ const cache_1 = require("../cache");
14
+ // Refresh every 24 hours should be more than enough for period information
15
+ const cacheTTLInMinutes = 60 * 24;
16
+ class PeriodService {
17
+ constructor(ladokClient) {
18
+ this.ladokClient = ladokClient;
19
+ }
20
+ aggregatePeriodItems() {
21
+ return __awaiter(this, void 0, void 0, function* () {
22
+ try {
23
+ const periodResponse = yield this.ladokClient.period();
24
+ if (periodResponse.type !== 'success') {
25
+ throw new Error(`API call failed: ${periodResponse.responseInfo.apiError || 'Unknown error'}`);
26
+ }
27
+ if (typeof periodResponse.data !== 'object') {
28
+ throw new Error('periodResponse.data is not an object.');
29
+ }
30
+ return periodResponse.data.Period;
31
+ }
32
+ catch (error) {
33
+ // TODO log.error
34
+ return [];
35
+ }
36
+ });
37
+ }
38
+ getPeriodItems() {
39
+ return __awaiter(this, void 0, void 0, function* () {
40
+ return PeriodService.cache.getData('periodItems', () => this.aggregatePeriodItems());
41
+ });
42
+ }
43
+ }
44
+ exports.PeriodService = PeriodService;
45
+ PeriodService.cache = new cache_1.Cache(cacheTTLInMinutes);
46
+ //# sourceMappingURL=PeriodService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PeriodService.js","sourceRoot":"","sources":["../../src/supportApis/PeriodService.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,oCAAgC;AAEhC,2EAA2E;AAC3E,MAAM,iBAAiB,GAAG,EAAE,GAAG,EAAE,CAAA;AAEjC,MAAa,aAAa;IAExB,YAAoB,WAAsC;QAAtC,gBAAW,GAAX,WAAW,CAA2B;IAAG,CAAC;IAEhD,oBAAoB;;YAChC,IAAI,CAAC;gBACH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAA;gBAEtD,IAAI,cAAc,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBACtC,MAAM,IAAI,KAAK,CAAC,oBAAoB,cAAc,CAAC,YAAY,CAAC,QAAQ,IAAI,eAAe,EAAE,CAAC,CAAA;gBAChG,CAAC;gBACD,IAAI,OAAO,cAAc,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC5C,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;gBAC1D,CAAC;gBAED,OAAO,cAAc,CAAC,IAAI,CAAC,MAAM,CAAA;YACnC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,iBAAiB;gBAEjB,OAAO,EAAE,CAAA;YACX,CAAC;QACH,CAAC;KAAA;IAEY,cAAc;;YACzB,OAAO,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAA;QACtF,CAAC;KAAA;;AAzBH,sCA0BC;AAzBgB,mBAAK,GAAwB,IAAI,aAAK,CAAe,iBAAiB,CAAC,CAAA"}
@@ -30,6 +30,7 @@ export declare class AcademicSemester {
30
30
  * Create from a plain JSON object, as produced by toJSON().
31
31
  */
32
32
  static fromJSON({ year, semesterNumber }: AcademicSemesterJSON): AcademicSemester;
33
+ static compare(a: AcademicSemester, b: AcademicSemester): number;
33
34
  /**
34
35
  * Returns a KTH semester string in the format 20241 for VT2024 or 20242 for HT2024.
35
36
  */
@@ -45,6 +45,11 @@ class AcademicSemester {
45
45
  static fromJSON({ year, semesterNumber }) {
46
46
  return new AcademicSemester(year, semesterNumber);
47
47
  }
48
+ static compare(a, b) {
49
+ if (a.year !== b.year)
50
+ return a.year - b.year;
51
+ return a.semesterNumber - b.semesterNumber;
52
+ }
48
53
  /**
49
54
  * Returns a KTH semester string in the format 20241 for VT2024 or 20242 for HT2024.
50
55
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AcademicSemester.js","sourceRoot":"","sources":["../../src/utils/AcademicSemester.ts"],"names":[],"mappings":";;;AAAA,IAAY,cAGX;AAHD,WAAY,cAAc;IACxB,uDAAU,CAAA;IACV,uDAAU,CAAA;AACZ,CAAC,EAHW,cAAc,8BAAd,cAAc,QAGzB;AAED,IAAY,WAGX;AAHD,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,4BAAa,CAAA;AACf,CAAC,EAHW,WAAW,2BAAX,WAAW,QAGtB;AAOD,MAAa,gBAAgB;IAI3B,YAAY,IAAY,EAAE,cAA8B;QACtD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAA;IACtC,CAAC;IAcD;;;OAGG;IACI,MAAM,CAAC,qBAAqB,CAAC,KAAa;QAC/C,MAAM,cAAc,GAAG,KAAK,CAAC,WAAW,EAAE,CAAA;QAC1C,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;QACtD,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAA;QAC5B,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,KAAK,CAAA;QAC/B,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,gBAAgB,CAAC,qBAAqB,CAAC,IAAmB,CAAC,CAAC,CAAA;IAC3G,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,qBAAqB,CAAC,QAAgB;QAClD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;QAC/C,IAAI,CAAC,KAAK;YAAE,OAAO,SAAS,CAAA;QAC5B,MAAM,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,KAAK,CAAA;QAClC,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,OAAO,CAAmB,CAAC,CAAA;IACjF,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,cAAc,EAAwB;QACnE,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IACnD,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAA;IAC7C,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,MAAM,MAAM,GAAG,gBAAgB,CAAC,qBAAqB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC1E,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI,EAAE,CAAA;IAChC,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAA;IACnC,CAAC;IAED,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAA;IACH,CAAC;;AA3EH,4CA4EC;AAnEC,oCAAoC;AACZ,sCAAqB,GAAwC;IACnF,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM;IAC3C,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM;CAC5C,CAAA;AAED,yCAAyC;AACjB,sCAAqB,GAAwC;IACnF,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC,MAAM;IAC3C,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC,MAAM;CAC5C,CAAA"}
1
+ {"version":3,"file":"AcademicSemester.js","sourceRoot":"","sources":["../../src/utils/AcademicSemester.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { SokPlanItem, SokPlanSlimItem } from '@kth/ladok-mellanlager-client';
2
2
  import { PeriodItem } from '@kth/ladok-mellanlager-client/dist/types/endpoints/period';
3
3
  export declare const getSemester: (dateStr: string) => string;
4
- export declare function sortSyllabuses(syllabuses: (SokPlanItem | SokPlanSlimItem)[]): (SokPlanItem | SokPlanSlimItem)[];
4
+ export declare function sortSyllabuses<T extends SokPlanItem | SokPlanSlimItem>(syllabuses: T[]): T[];
5
5
  export declare function getSyllabusForSemester(semester: string, syllabuses: SokPlanItem[] | SokPlanSlimItem[], periods: PeriodItem[]): SokPlanItem | SokPlanSlimItem | null;
6
6
  export declare const uniqueSyllabusesByGiltigFran: (syllabuses: (SokPlanItem | SokPlanSlimItem)[]) => any[];