@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.
@@ -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;CACjC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAEE,QAAA,2CAA2C,GAAG;IACzD,kCAAkC;IAClC,gBAAgB;IAChB,mCAAmC;IACnC,QAAQ;IACR,UAAU;IACV,8CAA8C;CAC/C,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAEE,QAAA,mDAAmD,GAAG;IACjE,oCAAoC;IACpC,sCAAsC;IACtC,uCAAuC;IACvC,yBAAyB;IACzB,gCAAgC;CACjC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA"}
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"}
@@ -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
- 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"}
@@ -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;
@@ -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: string | undefined;
21
- nivainomstudieordning: Grunddata | undefined;
22
- huvudomraden: Grunddata[] | undefined;
23
- overgangsbestammelser: string | undefined;
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 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;
24
- const kod = (0, ladok_attributvarde_utils_2.extractString)(syllabus.instans.Attributvarden, 'utbildning.attribut.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 omfattning = (_a = (0, ladok_attributvarde_utils_2.extractString)(syllabus.instans.Attributvarden, 'utbildning.attribut.omfattning', 'omfattning')) !== null && _a !== void 0 ? _a : '';
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: (_b = syllabus.AktuellaAttributvarden.find(item => { var _a; return ((_a = item.Attributdefinition) === null || _a === void 0 ? void 0 : _a.Kod) === `utbildning.lokalt.attribut.29.utgava`; })) === null || _b === void 0 ? void 0 : _b.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":"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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 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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"}
@@ -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[];
@@ -19,35 +19,18 @@ const getSemester = (dateStr) => {
19
19
  };
20
20
  exports.getSemester = getSemester;
21
21
  function sortSyllabuses(syllabuses) {
22
- return syllabuses.sort((a, b) => {
23
- // Step 1: Sort by most recent GiltigFran date (descending)
24
- const dateA = new Date(a.GiltigFran).getTime();
25
- const dateB = new Date(b.GiltigFran).getTime();
26
- if (dateA !== dateB) {
27
- return dateB - dateA;
28
- }
29
- // Step 2: If same GiltigFran date, sort by latest course version (descending)
30
- const versionA = (0, ladok_attributvarde_utils_1.extractVersionNumber)(a.instans.Attributvarden);
31
- const versionB = (0, ladok_attributvarde_utils_1.extractVersionNumber)(b.instans.Attributvarden);
32
- if (versionA !== versionB) {
33
- return versionB - versionA;
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":"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"}
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.1.3",
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.2",
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"