@kth/om-kursen-ladok-client 2.1.3 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/attributVardenConstants.js +12 -0
- package/dist/attributVardenConstants.js.map +1 -1
- package/dist/kth/extractFunctions/extractBasicCourseData.d.ts +15 -0
- package/dist/kth/extractFunctions/extractBasicCourseData.js +46 -0
- package/dist/kth/extractFunctions/extractBasicCourseData.js.map +1 -0
- package/dist/kth/extractFunctions/extractDiscontinuationData.d.ts +9 -0
- package/dist/kth/extractFunctions/extractDiscontinuationData.js +33 -0
- package/dist/kth/extractFunctions/extractDiscontinuationData.js.map +1 -0
- package/dist/mapCourse.d.ts +1 -10
- package/dist/mapCourse.js +6 -46
- package/dist/mapCourse.js.map +1 -1
- package/dist/mapCourseSyllabus.d.ts +14 -46
- package/dist/mapCourseSyllabus.js +40 -44
- package/dist/mapCourseSyllabus.js.map +1 -1
- package/dist/mapProgramSyllabus.js +6 -41
- package/dist/mapProgramSyllabus.js.map +1 -1
- package/dist/utils/courseSyllabusUtil.d.ts +1 -1
- package/dist/utils/courseSyllabusUtil.js +12 -29
- package/dist/utils/courseSyllabusUtil.js.map +1 -1
- package/dist/utils/syllabusExtractionUtil.d.ts +8 -0
- package/dist/utils/syllabusExtractionUtil.js +71 -0
- package/dist/utils/syllabusExtractionUtil.js.map +1 -0
- package/package.json +2 -2
|
@@ -75,6 +75,8 @@ exports.INSTANS_ATTRIBUT_VARDEN_FOR_PROGRAM_VERSION = [
|
|
|
75
75
|
'utbildning.attribut.examen.uppgift.for.emil',
|
|
76
76
|
].join(',');
|
|
77
77
|
exports.ATTRIBUT_VARDEN_FOR_COURSE_SYLLABUS = [
|
|
78
|
+
'utbildning.attribut.omfattning',
|
|
79
|
+
'utbildning.attribut.betygsskala',
|
|
78
80
|
'utbildning.lokalt.attribut.29.utgava',
|
|
79
81
|
'utbildning.lokalt.attribut.29.overgangsbestammelser.en',
|
|
80
82
|
'utbildning.lokalt.attribut.29.overgangsbestammelser.sv',
|
|
@@ -114,6 +116,16 @@ exports.INSTANS_ATTRIBUT_VARDEN_FOR_COURSE_SYLLABUS = [
|
|
|
114
116
|
'utbildning.attribut.betygsskala',
|
|
115
117
|
'versionsnummer',
|
|
116
118
|
'utbildning.attribut.omfattning',
|
|
119
|
+
'utbildning.attribut.organisation',
|
|
120
|
+
'avvecklad',
|
|
121
|
+
'utbildning.lokalt.attribut.29.avvecklad.status',
|
|
122
|
+
'utbildning.lokalt.attribut.29.avvecklingsbeslut',
|
|
123
|
+
'utbildning.lokalt.attribut.29.avvecklingsbeslut2',
|
|
124
|
+
'utbildning.lokalt.attribut.29.avvecklingsbeslut3',
|
|
125
|
+
'utbildning.lokalt.attribut.29.kursstatus.sv',
|
|
126
|
+
'utbildning.lokalt.attribut.29.kursstatus.en',
|
|
127
|
+
'utbildning.lokalt.attribut.29.sista.examinationstermin1.sv',
|
|
128
|
+
'utbildning.lokalt.attribut.29.sista.examinationstermin1.en',
|
|
117
129
|
].join(',');
|
|
118
130
|
exports.ATTRIBUT_VARDEN_FOR_ACTIVE_PROGRAM_INSTANCE = [
|
|
119
131
|
'utbildning.attribut.organisation',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attributVardenConstants.js","sourceRoot":"","sources":["../src/attributVardenConstants.ts"],"names":[],"mappings":";;;AAAa,QAAA,mCAAmC,GAAG;IACjD,iCAAiC;IACjC,2DAA2D;IAC3D,kCAAkC;IAClC,gBAAgB;IAChB,QAAQ;IACR,WAAW;IACX,6CAA6C;IAC7C,6CAA6C;IAC7C,oDAAoD;IACpD,oDAAoD;IACpD,gDAAgD;IAChD,qDAAqD;IACrD,qDAAqD;IACrD,qDAAqD;IACrD,qDAAqD;IACrD,4DAA4D;IAC5D,4DAA4D;IAC5D,yBAAyB;IACzB,sCAAsC;IACtC,uCAAuC;IACvC,mCAAmC;IACnC,gBAAgB;IAChB,gCAAgC;CACjC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAEE,QAAA,iCAAiC,GAAG;IAC/C,2CAA2C;IAC3C,2CAA2C;IAC3C,2CAA2C;IAC3C,2CAA2C;IAC3C,kDAAkD;IAClD,kDAAkD;IAClD,uCAAuC;IACvC,sCAAsC;IACtC,wCAAwC;IACxC,+BAA+B;IAC/B,uCAAuC;IACvC,gCAAgC;IAChC,QAAQ;IACR,UAAU;IACV,8CAA8C;IAC9C,+CAA+C;IAC/C,wCAAwC;IACxC,wCAAwC;IACxC,iCAAiC;CAClC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAEE,QAAA,wCAAwC,GAAG;IACtD,GAAG,yCAAiC,CAAC,KAAK,CAAC,GAAG,CAAC;IAC/C,kCAAkC;IAClC,iCAAiC;CAClC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAEE,QAAA,gDAAgD,GAAG;IAC9D,gBAAgB;IAChB,sCAAsC;IACtC,uCAAuC;IACvC,yBAAyB;IACzB,mCAAmC;IACnC,gBAAgB;IAChB,gCAAgC;CACjC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAEE,QAAA,2CAA2C,GAAG;IACzD,kCAAkC;IAClC,gBAAgB;IAChB,iCAAiC;IACjC,oCAAoC;IACpC,yDAAyD;IACzD,sCAAsC;IACtC,uCAAuC;IACvC,yBAAyB;IACzB,gBAAgB;IAChB,gCAAgC;IAChC,6CAA6C;CAC9C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAEE,QAAA,mCAAmC,GAAG;IACjD,sCAAsC;IACtC,wDAAwD;IACxD,wDAAwD;IACxD,qDAAqD;IACrD,qDAAqD;IACrD,6CAA6C;IAC7C,6CAA6C;IAC7C,+CAA+C;IAC/C,+CAA+C;IAC/C,0DAA0D;IAC1D,0DAA0D;IAC1D,+CAA+C;IAC/C,+CAA+C;IAC/C,6DAA6D;IAC7D,6DAA6D;IAC7D,2DAA2D;IAC3D,2DAA2D;IAC3D,wDAAwD;IACxD,wDAAwD;IACxD,qDAAqD;IACrD,qDAAqD;IACrD,sDAAsD;IACtD,sDAAsD;IACtD,oDAAoD;IACpD,oDAAoD;IACpD,oDAAoD;IACpD,oDAAoD;IACpD,sDAAsD;IACtD,sDAAsD;CACvD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAEE,QAAA,2CAA2C,GAAG;IACzD,gBAAgB;IAChB,2DAA2D;IAC3D,yBAAyB;IACzB,sCAAsC;IACtC,uCAAuC;IACvC,iCAAiC;IACjC,gBAAgB;IAChB,gCAAgC;
|
|
1
|
+
{"version":3,"file":"attributVardenConstants.js","sourceRoot":"","sources":["../src/attributVardenConstants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Attributdefinition, AttributdefinitionSlim, Attributvarde, Utbildningstyp } from '@kth/ladok-attributvarde-utils';
|
|
2
|
+
import { Language } from '../../utils';
|
|
3
|
+
export type BasicCourse = {
|
|
4
|
+
uid?: string;
|
|
5
|
+
versionsnummer: number;
|
|
6
|
+
kod: string;
|
|
7
|
+
benamning?: string;
|
|
8
|
+
omfattning: {
|
|
9
|
+
number: string;
|
|
10
|
+
formattedWithUnit: string;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export declare const getCreditsUnit: (utbildningstyp: Utbildningstyp, language: Language) => string;
|
|
14
|
+
export declare const formatCreditsWithUnitLabel: (omfattning: string, utbildningstyp: Utbildningstyp | undefined, language: Language) => string;
|
|
15
|
+
export declare const extractBasicCourseData: (attributvarden: Attributvarde<AttributdefinitionSlim | Attributdefinition>[], language: Language, uid?: string) => BasicCourse;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extractBasicCourseData = exports.formatCreditsWithUnitLabel = exports.getCreditsUnit = void 0;
|
|
4
|
+
const ladok_attributvarde_utils_1 = require("@kth/ladok-attributvarde-utils");
|
|
5
|
+
const getCreditsUnit = (utbildningstyp, language) => {
|
|
6
|
+
switch (utbildningstyp.creditsUnit.code) {
|
|
7
|
+
case 'HP':
|
|
8
|
+
case 'HP-K':
|
|
9
|
+
return language === 'sv' ? 'hp' : 'credits';
|
|
10
|
+
case 'FUP':
|
|
11
|
+
return 'fup';
|
|
12
|
+
default:
|
|
13
|
+
return utbildningstyp.creditsUnit.code.toLowerCase();
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
exports.getCreditsUnit = getCreditsUnit;
|
|
17
|
+
const formatCredits = (omfattning, language) => language === 'sv' ? omfattning.replace('.', ',') : omfattning;
|
|
18
|
+
const formatCreditsWithUnitLabel = (omfattning, utbildningstyp, language) => {
|
|
19
|
+
const credits = formatCredits(omfattning, language);
|
|
20
|
+
const unit = utbildningstyp ? (0, exports.getCreditsUnit)(utbildningstyp, language) : '';
|
|
21
|
+
return `${credits} ${unit}`.trim();
|
|
22
|
+
};
|
|
23
|
+
exports.formatCreditsWithUnitLabel = formatCreditsWithUnitLabel;
|
|
24
|
+
const extractBasicCourseData = (attributvarden, language, uid) => {
|
|
25
|
+
var _a;
|
|
26
|
+
const kod = (0, ladok_attributvarde_utils_1.extractString)(attributvarden, 'utbildning.attribut.kod');
|
|
27
|
+
const benamningMultiLingual = {
|
|
28
|
+
sv: (0, ladok_attributvarde_utils_1.extractString)(attributvarden, 'utbildning.attribut.svensk.benamning'),
|
|
29
|
+
en: (0, ladok_attributvarde_utils_1.extractString)(attributvarden, 'utbildning.attribut.engelsk.benamning'),
|
|
30
|
+
};
|
|
31
|
+
const omfattningRaw = (_a = (0, ladok_attributvarde_utils_1.extractString)(attributvarden, 'utbildning.attribut.omfattning', 'omfattning')) !== null && _a !== void 0 ? _a : '';
|
|
32
|
+
const utbildningstyp = (0, ladok_attributvarde_utils_1.extractUtbildningstyp)(attributvarden);
|
|
33
|
+
const omfattning = {
|
|
34
|
+
number: omfattningRaw,
|
|
35
|
+
formattedWithUnit: (0, exports.formatCreditsWithUnitLabel)(omfattningRaw, utbildningstyp, language),
|
|
36
|
+
};
|
|
37
|
+
const baseData = {
|
|
38
|
+
kod,
|
|
39
|
+
benamning: benamningMultiLingual[language],
|
|
40
|
+
omfattning,
|
|
41
|
+
versionsnummer: (0, ladok_attributvarde_utils_1.extractVersionNumber)(attributvarden),
|
|
42
|
+
};
|
|
43
|
+
return uid ? Object.assign(Object.assign({}, baseData), { uid }) : baseData;
|
|
44
|
+
};
|
|
45
|
+
exports.extractBasicCourseData = extractBasicCourseData;
|
|
46
|
+
//# sourceMappingURL=extractBasicCourseData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractBasicCourseData.js","sourceRoot":"","sources":["../../../src/kth/extractFunctions/extractBasicCourseData.ts"],"names":[],"mappings":";;;AAAA,8EAQuC;AAchC,MAAM,cAAc,GAAG,CAAC,cAA8B,EAAE,QAAkB,EAAE,EAAE;IACnF,QAAQ,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACxC,KAAK,IAAI,CAAC;QACV,KAAK,MAAM;YACT,OAAO,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;QAC7C,KAAK,KAAK;YACR,OAAO,KAAK,CAAA;QACd;YACE,OAAO,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;IACxD,CAAC;AACH,CAAC,CAAA;AAVY,QAAA,cAAc,kBAU1B;AAED,MAAM,aAAa,GAAG,CAAC,UAAkB,EAAE,QAAkB,EAAE,EAAE,CAC/D,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAA;AAExD,MAAM,0BAA0B,GAAG,CACxC,UAAkB,EAClB,cAA0C,EAC1C,QAAkB,EAClB,EAAE;IACF,MAAM,OAAO,GAAG,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;IACnD,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,IAAA,sBAAc,EAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC3E,OAAO,GAAG,OAAO,IAAI,IAAI,EAAE,CAAC,IAAI,EAAE,CAAA;AACpC,CAAC,CAAA;AARY,QAAA,0BAA0B,8BAQtC;AAEM,MAAM,sBAAsB,GAAG,CACpC,cAA4E,EAC5E,QAAkB,EAClB,GAAY,EACC,EAAE;;IACf,MAAM,GAAG,GAAG,IAAA,yCAAa,EAAC,cAAc,EAAE,yBAAyB,CAAE,CAAA;IAErE,MAAM,qBAAqB,GAAG;QAC5B,EAAE,EAAE,IAAA,yCAAa,EAAC,cAAc,EAAE,sCAAsC,CAAC;QACzE,EAAE,EAAE,IAAA,yCAAa,EAAC,cAAc,EAAE,uCAAuC,CAAC;KAC3E,CAAA;IAED,MAAM,aAAa,GAAG,MAAA,IAAA,yCAAa,EAAC,cAAc,EAAE,gCAAgC,EAAE,YAAY,CAAC,mCAAI,EAAE,CAAA;IACzG,MAAM,cAAc,GAAG,IAAA,iDAAqB,EAAC,cAAc,CAAC,CAAA;IAE5D,MAAM,UAAU,GAAG;QACjB,MAAM,EAAE,aAAa;QACrB,iBAAiB,EAAE,IAAA,kCAA0B,EAAC,aAAa,EAAE,cAAc,EAAE,QAAQ,CAAC;KACvF,CAAA;IAED,MAAM,QAAQ,GAAG;QACf,GAAG;QACH,SAAS,EAAE,qBAAqB,CAAC,QAAQ,CAAC;QAC1C,UAAU;QACV,cAAc,EAAE,IAAA,gDAAoB,EAAC,cAAc,CAAC;KACrD,CAAA;IAED,OAAO,GAAG,CAAC,CAAC,iCAAM,QAAQ,KAAE,GAAG,IAAG,CAAC,CAAC,QAAQ,CAAA;AAC9C,CAAC,CAAA;AA5BY,QAAA,sBAAsB,0BA4BlC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { LadokStatusCode } from '@kth/ladok-attributvarde-utils';
|
|
2
|
+
import { Attributdefinition, AttributdefinitionSlim, Attributvarde } from '@kth/ladok-mellanlager-client';
|
|
3
|
+
import { Language } from '../../utils';
|
|
4
|
+
export interface DiscontinuationData {
|
|
5
|
+
underavveckling?: boolean;
|
|
6
|
+
avvecklingsbeslut?: string;
|
|
7
|
+
sistaexaminationstermin?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const extractDiscontinuationData: (attributvarden: Attributvarde<AttributdefinitionSlim | Attributdefinition>[], language: Language, statusCode?: LadokStatusCode) => DiscontinuationData;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extractDiscontinuationData = void 0;
|
|
4
|
+
const ladok_attributvarde_utils_1 = require("@kth/ladok-attributvarde-utils");
|
|
5
|
+
const extractDiscontinuationData = (attributvarden, language, statusCode) => {
|
|
6
|
+
var _a, _b, _c, _d, _e, _f;
|
|
7
|
+
if (statusCode !== ladok_attributvarde_utils_1.LadokStatusCode.Complete) {
|
|
8
|
+
return {};
|
|
9
|
+
}
|
|
10
|
+
const underavvecklingLadok = (0, ladok_attributvarde_utils_1.extractLokaltAttribut)(attributvarden, 'avvecklad.status', ladok_attributvarde_utils_1.LokaltAttributType.Boolean, true);
|
|
11
|
+
const avvecklingsbeslutLadok = (_a = (0, ladok_attributvarde_utils_1.extractLokaltAttribut)(attributvarden, 'avvecklingsbeslut2', ladok_attributvarde_utils_1.LokaltAttributType.LocalizedString)) === null || _a === void 0 ? void 0 : _a[language];
|
|
12
|
+
const avvecklingsbeslutLadokAlternative = (_b = (0, ladok_attributvarde_utils_1.extractLokaltAttribut)(attributvarden, 'avvecklingsbeslut3', ladok_attributvarde_utils_1.LokaltAttributType.LocalizedString)) === null || _b === void 0 ? void 0 : _b[language];
|
|
13
|
+
const underavvecklingMigrated = ((_c = (0, ladok_attributvarde_utils_1.extractLokaltAttribut)(attributvarden, 'kursstatus', ladok_attributvarde_utils_1.LokaltAttributType.LocalizedString)) === null || _c === void 0 ? void 0 : _c.en) === 'DEACTIVATED';
|
|
14
|
+
const avvecklingsbeslutMigrated = (_d = (0, ladok_attributvarde_utils_1.extractLokaltAttribut)(attributvarden, 'avvecklingsbeslut', ladok_attributvarde_utils_1.LokaltAttributType.LocalizedString)) === null || _d === void 0 ? void 0 : _d[language];
|
|
15
|
+
const sistaexaminationstermin = (_e = (0, ladok_attributvarde_utils_1.extractLokaltAttribut)(attributvarden, 'sista.examinationstermin1', ladok_attributvarde_utils_1.LokaltAttributType.LocalizedString)) === null || _e === void 0 ? void 0 : _e[language];
|
|
16
|
+
if (underavvecklingLadok || underavvecklingMigrated) {
|
|
17
|
+
const isFromLadok = underavvecklingLadok;
|
|
18
|
+
const avvecklingsbeslut = isFromLadok
|
|
19
|
+
? ((_f = avvecklingsbeslutLadokAlternative !== null && avvecklingsbeslutLadokAlternative !== void 0 ? avvecklingsbeslutLadokAlternative : avvecklingsbeslutLadok) !== null && _f !== void 0 ? _f : avvecklingsbeslutMigrated)
|
|
20
|
+
: avvecklingsbeslutMigrated;
|
|
21
|
+
const avvecklingsInfo = {
|
|
22
|
+
underavveckling: true,
|
|
23
|
+
avvecklingsbeslut,
|
|
24
|
+
};
|
|
25
|
+
if (!isFromLadok) {
|
|
26
|
+
avvecklingsInfo.sistaexaminationstermin = sistaexaminationstermin;
|
|
27
|
+
}
|
|
28
|
+
return avvecklingsInfo;
|
|
29
|
+
}
|
|
30
|
+
return {};
|
|
31
|
+
};
|
|
32
|
+
exports.extractDiscontinuationData = extractDiscontinuationData;
|
|
33
|
+
//# sourceMappingURL=extractDiscontinuationData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractDiscontinuationData.js","sourceRoot":"","sources":["../../../src/kth/extractFunctions/extractDiscontinuationData.ts"],"names":[],"mappings":";;;AAAA,8EAA2G;AAUpG,MAAM,0BAA0B,GAAG,CACxC,cAA4E,EAC5E,QAAkB,EAClB,UAA4B,EACP,EAAE;;IACvB,IAAI,UAAU,KAAK,2CAAe,CAAC,QAAQ,EAAE,CAAC;QAC5C,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,oBAAoB,GAAG,IAAA,iDAAqB,EAChD,cAAc,EACd,kBAAkB,EAClB,8CAAkB,CAAC,OAAO,EAC1B,IAAI,CACL,CAAA;IAED,MAAM,sBAAsB,GAAG,MAAA,IAAA,iDAAqB,EAClD,cAAc,EACd,oBAAoB,EACpB,8CAAkB,CAAC,eAAe,CACnC,0CAAG,QAAQ,CAAC,CAAA;IAEb,MAAM,iCAAiC,GAAG,MAAA,IAAA,iDAAqB,EAC7D,cAAc,EACd,oBAAoB,EACpB,8CAAkB,CAAC,eAAe,CACnC,0CAAG,QAAQ,CAAC,CAAA;IAEb,MAAM,uBAAuB,GAC3B,CAAA,MAAA,IAAA,iDAAqB,EAAC,cAAc,EAAE,YAAY,EAAE,8CAAkB,CAAC,eAAe,CAAC,0CAAE,EAAE,MAAK,aAAa,CAAA;IAE/G,MAAM,yBAAyB,GAAG,MAAA,IAAA,iDAAqB,EACrD,cAAc,EACd,mBAAmB,EACnB,8CAAkB,CAAC,eAAe,CACnC,0CAAG,QAAQ,CAAC,CAAA;IAEb,MAAM,uBAAuB,GAAG,MAAA,IAAA,iDAAqB,EACnD,cAAc,EACd,2BAA2B,EAC3B,8CAAkB,CAAC,eAAe,CACnC,0CAAG,QAAQ,CAAC,CAAA;IAEb,IAAI,oBAAoB,IAAI,uBAAuB,EAAE,CAAC;QACpD,MAAM,WAAW,GAAG,oBAAoB,CAAA;QAExC,MAAM,iBAAiB,GAAG,WAAW;YACnC,CAAC,CAAC,CAAC,MAAA,iCAAiC,aAAjC,iCAAiC,cAAjC,iCAAiC,GAAI,sBAAsB,mCAAI,yBAAyB,CAAC;YAC5F,CAAC,CAAC,yBAAyB,CAAA;QAE7B,MAAM,eAAe,GAAwB;YAC3C,eAAe,EAAE,IAAI;YACrB,iBAAiB;SAClB,CAAA;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,eAAe,CAAC,uBAAuB,GAAG,uBAAuB,CAAA;QACnE,CAAC;QAED,OAAO,eAAe,CAAA;IACxB,CAAC;IAED,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AA/DY,QAAA,0BAA0B,8BA+DtC"}
|
package/dist/mapCourse.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { LadokStatusCode } from '@kth/ladok-attributvarde-utils';
|
|
|
2
2
|
import { SokUtbildningsInstansItem, SokUtbildningsInstansSlimItem } from '@kth/ladok-mellanlager-client';
|
|
3
3
|
import { Language, TranslatedGrunddata, TranslatedOrganisation, TranslatedUtbildningstyp } from './utils/languageUtil';
|
|
4
4
|
import { GradingScalesCodes } from './mapGradingScales';
|
|
5
|
+
import { BasicCourse } from './kth/extractFunctions/extractBasicCourseData';
|
|
5
6
|
export type Course = BasicCourse & {
|
|
6
7
|
organisation?: TranslatedOrganisation;
|
|
7
8
|
utbildningstyp?: TranslatedUtbildningstyp;
|
|
@@ -17,14 +18,4 @@ export type Course = BasicCourse & {
|
|
|
17
18
|
ladokStatusCode?: LadokStatusCode;
|
|
18
19
|
isMiljo?: boolean;
|
|
19
20
|
};
|
|
20
|
-
export type BasicCourse = {
|
|
21
|
-
uid?: string;
|
|
22
|
-
versionsnummer: number;
|
|
23
|
-
kod: string;
|
|
24
|
-
benamning?: string;
|
|
25
|
-
omfattning: {
|
|
26
|
-
number: string;
|
|
27
|
-
formattedWithUnit: string;
|
|
28
|
-
};
|
|
29
|
-
};
|
|
30
21
|
export declare const mapCourse: (course: SokUtbildningsInstansItem | SokUtbildningsInstansSlimItem, language: Language, gradingScalesCodes: GradingScalesCodes) => Course;
|
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
|
-
|
|
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
|
|
30
|
-
|
|
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 } =
|
|
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,
|
package/dist/mapCourse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapCourse.js","sourceRoot":"","sources":["../src/mapCourse.ts"],"names":[],"mappings":";;;AAAA,
|
|
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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { SokPlanItem, SokPlanSlimItem } from '@kth/ladok-mellanlager-client';
|
|
2
|
-
import {
|
|
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;
|
|
@@ -9,63 +8,31 @@ interface FormattedExaminationModules {
|
|
|
9
8
|
export type KursPlan = {
|
|
10
9
|
course: {
|
|
11
10
|
kod: string | undefined;
|
|
12
|
-
benamning:
|
|
13
|
-
sv: string | undefined;
|
|
14
|
-
en: string | undefined;
|
|
15
|
-
};
|
|
11
|
+
benamning: string | undefined;
|
|
16
12
|
omfattning: {
|
|
17
13
|
number: string | undefined;
|
|
18
14
|
formattedWithUnit: string | undefined;
|
|
19
15
|
};
|
|
20
|
-
betygsskala
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
16
|
+
betygsskala?: TranslatedGrunddata & {
|
|
17
|
+
formatted: string | undefined;
|
|
18
|
+
};
|
|
19
|
+
utbildningstyp?: TranslatedUtbildningstyp;
|
|
20
|
+
huvudomraden?: TranslatedGrunddata[];
|
|
21
|
+
organisation?: TranslatedOrganisation;
|
|
22
|
+
avvecklad?: boolean;
|
|
23
|
+
underavveckling?: boolean;
|
|
24
|
+
sistaexaminationstermin?: string;
|
|
24
25
|
};
|
|
25
26
|
kursplan: {
|
|
26
27
|
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
28
|
overgangsbestammelser: string | undefined;
|
|
59
|
-
|
|
60
|
-
kursplan: {
|
|
61
|
-
giltigfrom: string;
|
|
62
|
-
utgava: string | undefined;
|
|
29
|
+
utgava: number | undefined;
|
|
63
30
|
undervisningssprak: string | undefined;
|
|
64
31
|
larandemal: string | undefined;
|
|
65
32
|
kursinnehall: string | undefined;
|
|
66
33
|
etisktforhallningssatt: string | undefined;
|
|
67
34
|
faststallande: string | undefined;
|
|
68
|
-
examinationModules: FormattedExaminationModules
|
|
35
|
+
examinationModules: Partial<FormattedExaminationModules>;
|
|
69
36
|
kommentartillexamination: string | undefined;
|
|
70
37
|
ovrigakravforslutbetyg: string | undefined;
|
|
71
38
|
ovrigaForeskrifter: string | undefined;
|
|
@@ -76,4 +43,5 @@ export declare const mapCourseSyllabus: (syllabus: SokPlanItem | SokPlanSlimItem
|
|
|
76
43
|
avvecklingsbeslut: string | undefined;
|
|
77
44
|
};
|
|
78
45
|
};
|
|
46
|
+
export declare const mapCourseSyllabus: (syllabus: SokPlanItem | SokPlanSlimItem, gradingScalesCodes: GradingScalesCodes, examinationModules: FormattedExaminationModules, language: Language) => KursPlan;
|
|
79
47
|
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
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
|
|
18
|
-
|
|
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
|
|
24
|
-
const kod = (
|
|
25
|
-
const betygsskala = (0, ladok_attributvarde_utils_2.extractGrunddata)(syllabus.instans.Attributvarden, 'utbildning.attribut.betygsskala');
|
|
18
|
+
var _a;
|
|
19
|
+
const { kod, benamning, omfattning } = extractBasicData(syllabus, language);
|
|
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
|
|
26
|
+
const { underavveckling, sistaexaminationstermin } = extractDiscontinuationDataFromPlan(syllabus, language);
|
|
29
27
|
return {
|
|
30
28
|
course: {
|
|
31
|
-
kod
|
|
32
|
-
benamning
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
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:
|
|
55
|
-
ovrigakravforslutbetyg:
|
|
56
|
-
ovrigaForeskrifter:
|
|
57
|
-
kurslitteratur:
|
|
58
|
-
kursupplagg:
|
|
59
|
-
sarskildbehorighet:
|
|
60
|
-
gammalutrustning:
|
|
61
|
-
avvecklingsbeslut:
|
|
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":"
|
|
1
|
+
{"version":3,"file":"mapCourseSyllabus.js","sourceRoot":"","sources":["../src/mapCourseSyllabus.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
|
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
|
-
|
|
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
|
|
47
|
-
|
|
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
|
|
52
|
-
|
|
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":"
|
|
1
|
+
{"version":3,"file":"mapProgramSyllabus.js","sourceRoot":"","sources":["../src/mapProgramSyllabus.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
|
|
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[];
|
|
@@ -19,35 +19,18 @@ const getSemester = (dateStr) => {
|
|
|
19
19
|
};
|
|
20
20
|
exports.getSemester = getSemester;
|
|
21
21
|
function sortSyllabuses(syllabuses) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
// Step 3: If same course version date, sort by latest syllabus version (descending)
|
|
36
|
-
const getEdition = (obj) => {
|
|
37
|
-
var _a, _b;
|
|
38
|
-
const val = (_b = (_a = obj.AktuellaAttributvarden.find((Attributvarde) => Attributvarde.Attributdefinition.Kod === 'utbildning.lokalt.attribut.29.utgava')) === null || _a === void 0 ? void 0 : _a.Varden) === null || _b === void 0 ? void 0 : _b[0];
|
|
39
|
-
return val ? parseInt(val, 10) : -Infinity; // undefined editions get lowest priority
|
|
40
|
-
};
|
|
41
|
-
const editionA = getEdition(a);
|
|
42
|
-
const editionB = getEdition(b);
|
|
43
|
-
if (editionA !== editionB) {
|
|
44
|
-
return editionB - editionA; // descending: latest comes first
|
|
45
|
-
}
|
|
46
|
-
// Step 3: If same versionsnummer, sort by most recent date the syllabus was saved
|
|
47
|
-
const timestampA = new Date(a.BeslutsinformationForPlan.Beslutloggposter[0].SenastSparad).getTime();
|
|
48
|
-
const timestampB = new Date(b.BeslutsinformationForPlan.Beslutloggposter[0].SenastSparad).getTime();
|
|
49
|
-
return timestampB - timestampA;
|
|
50
|
-
});
|
|
22
|
+
const getDate = (s) => new Date(s.GiltigFran).getTime();
|
|
23
|
+
const getVersion = (s) => (0, ladok_attributvarde_utils_1.extractVersionNumber)(s.instans.Attributvarden);
|
|
24
|
+
const getEdition = (s) => {
|
|
25
|
+
const val = (0, ladok_attributvarde_utils_1.extractLokaltAttribut)(s.AktuellaAttributvarden, 'utgava', ladok_attributvarde_utils_1.LokaltAttributType.Integer, true);
|
|
26
|
+
return val ? val : -Infinity;
|
|
27
|
+
};
|
|
28
|
+
const getSavedDate = (s) => new Date(s.BeslutsinformationForPlan.Beslutloggposter[0].SenastSparad).getTime();
|
|
29
|
+
return syllabuses.sort((a, b) => getDate(b) - getDate(a) || // Step 1: Sort by most recent GiltigFran date (descending)
|
|
30
|
+
getVersion(b) - getVersion(a) || // Step 2: If same GiltigFran date, sort by latest course version (descending)
|
|
31
|
+
getEdition(b) - getEdition(a) || // Step 3: If same course version date, sort by latest syllabus version (descending)
|
|
32
|
+
getSavedDate(b) - getSavedDate(a) // Step 4: If same versionsnummer, sort by most recent date the syllabus was saved
|
|
33
|
+
);
|
|
51
34
|
}
|
|
52
35
|
function getSyllabusForSemester(semester, syllabuses, periods) {
|
|
53
36
|
const semesterOnLadokFormat = (0, periodUtil_1.transformDigitsInPeriod)(semester);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"courseSyllabusUtil.js","sourceRoot":"","sources":["../../src/utils/courseSyllabusUtil.ts"],"names":[],"mappings":";;;AAmBA,
|
|
1
|
+
{"version":3,"file":"courseSyllabusUtil.js","sourceRoot":"","sources":["../../src/utils/courseSyllabusUtil.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Attributvarde, Attributdefinition, AttributdefinitionSlim } from '@kth/ladok-attributvarde-utils';
|
|
2
|
+
import { Language } from './languageUtil';
|
|
3
|
+
/**
|
|
4
|
+
* Extracts a markdown attribute value, normalizes tables if it's a course list,
|
|
5
|
+
* and converts to HTML. This is specifically designed for program syllabi
|
|
6
|
+
* where course lists need table normalization.
|
|
7
|
+
*/
|
|
8
|
+
export declare const extractAndConvertMarkdownToHtml: (attributvarden: Attributvarde<Attributdefinition | AttributdefinitionSlim>[], attributeName: string, language: Language, useBaseValue?: boolean, isCourseList?: boolean) => string | undefined;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.extractAndConvertMarkdownToHtml = void 0;
|
|
7
|
+
const ladok_attributvarde_utils_1 = require("@kth/ladok-attributvarde-utils");
|
|
8
|
+
const showdown_1 = __importDefault(require("showdown"));
|
|
9
|
+
/**
|
|
10
|
+
* Extracts a markdown attribute value, normalizes tables if it's a course list,
|
|
11
|
+
* and converts to HTML. This is specifically designed for program syllabi
|
|
12
|
+
* where course lists need table normalization.
|
|
13
|
+
*/
|
|
14
|
+
const extractAndConvertMarkdownToHtml = (attributvarden, attributeName, language, useBaseValue = false, isCourseList = false) => {
|
|
15
|
+
// Try Markdown first, then LocalizedString as fallback
|
|
16
|
+
const markdownResult = [ladok_attributvarde_utils_1.LokaltAttributType.Markdown, ladok_attributvarde_utils_1.LokaltAttributType.LocalizedString]
|
|
17
|
+
.map(type => useBaseValue
|
|
18
|
+
? (0, ladok_attributvarde_utils_1.extractLokaltAttribut)(attributvarden, attributeName, type, true)
|
|
19
|
+
: (0, ladok_attributvarde_utils_1.extractLokaltAttribut)(attributvarden, attributeName, type))
|
|
20
|
+
.find(result => result !== undefined);
|
|
21
|
+
if (!markdownResult)
|
|
22
|
+
return undefined;
|
|
23
|
+
// Handle both single string and localized object
|
|
24
|
+
let rawMarkdown;
|
|
25
|
+
if (typeof markdownResult === 'string') {
|
|
26
|
+
rawMarkdown = markdownResult;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
// For localized objects, try the requested language first, then fallback to sv -> en
|
|
30
|
+
rawMarkdown = markdownResult[language];
|
|
31
|
+
}
|
|
32
|
+
if (!rawMarkdown)
|
|
33
|
+
return undefined;
|
|
34
|
+
// Only normalize tables for course lists in programs
|
|
35
|
+
const processedMarkdown = isCourseList ? normalizeMarkdownTables(rawMarkdown) : rawMarkdown;
|
|
36
|
+
return convertMarkdownToHtml(processedMarkdown);
|
|
37
|
+
};
|
|
38
|
+
exports.extractAndConvertMarkdownToHtml = extractAndConvertMarkdownToHtml;
|
|
39
|
+
/**
|
|
40
|
+
* Converts markdown text to HTML using showdown converter
|
|
41
|
+
*/
|
|
42
|
+
const convertMarkdownToHtml = (markdownText) => {
|
|
43
|
+
if (!markdownText)
|
|
44
|
+
return undefined;
|
|
45
|
+
const converter = new showdown_1.default.Converter({ tables: true });
|
|
46
|
+
return converter.makeHtml(markdownText);
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Normalizes markdown tables for course lists in programs.
|
|
50
|
+
* This implements the specific table normalization logic for program course lists.
|
|
51
|
+
*/
|
|
52
|
+
const normalizeMarkdownTables = (raw) => {
|
|
53
|
+
if (!raw)
|
|
54
|
+
return raw;
|
|
55
|
+
let normalized = raw
|
|
56
|
+
// Step 1: Convert escaped \n to real newlines
|
|
57
|
+
.replace(/\\n/g, '\n')
|
|
58
|
+
// Step 2: Remove unnecessary escapes (but preserve Markdown ones like \*, \_)
|
|
59
|
+
.replace(/\\(?![|*_\\])/g, '')
|
|
60
|
+
// Step 3: Fix escaped pipe characters in full table rows
|
|
61
|
+
.replace(/^\\\|(.+?)\\\|$/gm, (_match, row) => `|${row}|`)
|
|
62
|
+
.replace(/\\\|/g, '|')
|
|
63
|
+
// Step 4: Replace double backslashes with single
|
|
64
|
+
.replace(/\\\\/g, '\\')
|
|
65
|
+
// Step 5: Insert newline between two table rows if they're mashed together
|
|
66
|
+
.replace(/(\|.+?\|)\s*(?=\|)/g, '$1\n')
|
|
67
|
+
// Step 6: Remove \n at the end of the <br>
|
|
68
|
+
.replace(/<br>\n/g, '<br>');
|
|
69
|
+
return normalized;
|
|
70
|
+
};
|
|
71
|
+
//# sourceMappingURL=syllabusExtractionUtil.js.map
|
|
@@ -0,0 +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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kth/om-kursen-ladok-client",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.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.
|
|
24
|
+
"@kth/ladok-attributvarde-utils": "1.0.3",
|
|
25
25
|
"@kth/ladok-mellanlager-client": "1.0.2",
|
|
26
26
|
"date-fns": "^4.1.0",
|
|
27
27
|
"showdown": "^2.1.0"
|