@royalschedule/maps 3.3.11 → 3.3.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/Additio/from/courses.js +28 -0
  2. package/dist/Additio/from/courses.js.map +1 -0
  3. package/dist/Additio/from/events.js +61 -0
  4. package/dist/Additio/from/events.js.map +1 -0
  5. package/dist/Additio/from/groups.js +14 -0
  6. package/dist/Additio/from/groups.js.map +1 -0
  7. package/dist/Additio/from/index.js +8 -0
  8. package/dist/Additio/from/index.js.map +1 -0
  9. package/dist/Additio/from/locations.js +13 -0
  10. package/dist/Additio/from/locations.js.map +1 -0
  11. package/dist/Additio/from/persons.js +30 -0
  12. package/dist/Additio/from/persons.js.map +1 -0
  13. package/dist/Additio/from/schedules.d.ts +8 -0
  14. package/dist/Additio/from/schedules.js +36 -0
  15. package/dist/Additio/from/schedules.js.map +1 -0
  16. package/dist/Additio/from/teachers.js +25 -0
  17. package/dist/Additio/from/teachers.js.map +1 -0
  18. package/dist/Additio/index.d.ts +14 -0
  19. package/dist/Additio/index.js +12 -0
  20. package/dist/Additio/index.js.map +1 -0
  21. package/dist/Additio/to/index.d.ts +19 -0
  22. package/dist/Additio/to/index.js +10 -0
  23. package/dist/Additio/to/index.js.map +1 -0
  24. package/dist/Additio/to/schedules.js +74 -0
  25. package/dist/Additio/to/schedules.js.map +1 -0
  26. package/dist/Additio/types/course-sections.d.ts +20 -0
  27. package/dist/Additio/types/courses.d.ts +17 -0
  28. package/dist/Additio/types/index.d.ts +25 -0
  29. package/dist/Additio/types/lessons.d.ts +27 -0
  30. package/dist/Additio/types/primary-groups.d.ts +30 -0
  31. package/dist/Additio/types/rooms.d.ts +12 -0
  32. package/dist/Additio/types/schedule-groups.d.ts +23 -0
  33. package/dist/Additio/types/schedules.d.ts +27 -0
  34. package/dist/Additio/types/schools.d.ts +11 -0
  35. package/dist/Additio/types/users.d.ts +20 -0
  36. package/dist/SchoolSoft/file/to/index.d.ts +2 -2
  37. package/dist/index.d.ts +22 -20
  38. package/dist/index.js +2 -1
  39. package/package.json +1 -1
@@ -0,0 +1,28 @@
1
+ //#region src/Additio/from/courses.ts
2
+ function courses_default(scheduledGroups, school, importErrors, importWarnings) {
3
+ const courses = [];
4
+ scheduledGroups?.forEach((scheduledGroup) => {
5
+ const subjects = school.school_type == "GR" ? scheduledGroup.subjects : scheduledGroup.courses;
6
+ if (subjects.length != 1) {
7
+ const warn = `The schedule group "${scheduledGroup.name}" with id "${scheduledGroup.id}" contained ${subjects.length} number of ${school.school_type == "GR" ? "subjects" : "courses"} and was therefore omitted: a schedule group shall contain only a single ${school.school_type == "GR" ? "subject" : "course"}.`;
8
+ importWarnings.push(warn);
9
+ return;
10
+ }
11
+ if (scheduledGroup.teachers?.length == 0) {
12
+ const warn = `The schedule group "${scheduledGroup.name}" with id "${scheduledGroup.id}" did not contain any teachers.`;
13
+ importWarnings.push(warn);
14
+ }
15
+ courses.push({
16
+ ids: scheduledGroup.id.toString(),
17
+ displayName: scheduledGroup.name,
18
+ subject: subjects.map((x) => x.name).join(", "),
19
+ groups: scheduledGroup.users_primary_groups.map((x) => ({ to: x.toString() })),
20
+ teachers: scheduledGroup.teachers?.map((x) => ({ to: x.id.toString() }))
21
+ });
22
+ });
23
+ return courses;
24
+ }
25
+
26
+ //#endregion
27
+ export { courses_default as default };
28
+ //# sourceMappingURL=courses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"courses.js","names":["courses: Types.course[]"],"sources":["../../../src/Additio/from/courses.ts"],"sourcesContent":["import { ScheduleGroup } from '../types/schedule-groups';\nimport { School } from '../types/schools';\nimport { Types } from '../../core/types';\n\nexport default function (\n scheduledGroups: ScheduleGroup[] | undefined,\n school: School,\n importErrors: string[],\n importWarnings: string[],\n): Types.course[] {\n\n const courses: Types.course[] = [];\n\n scheduledGroups?.forEach(scheduledGroup => {\n\n ////\n //// check number of subjects/courses\n ////\n const subjects = school.school_type == 'GR' ? scheduledGroup.subjects : scheduledGroup.courses;\n if (subjects.length != 1) {\n const warn = `The schedule group \"${scheduledGroup.name}\" with id \"${scheduledGroup.id}\" contained ${subjects.length} number of ${school.school_type == 'GR' ? 'subjects' : 'courses'} and was therefore omitted: a schedule group shall contain only a single ${school.school_type == 'GR' ? 'subject' : 'course'}.`;\n importWarnings.push(warn);\n return;\n }\n\n\n ////\n //// check number of teachers\n ////\n if (scheduledGroup.teachers?.length == 0) {\n const warn = `The schedule group \"${scheduledGroup.name}\" with id \"${scheduledGroup.id}\" did not contain any teachers.`;\n importWarnings.push(warn);\n }\n\n\n courses.push({\n ids: scheduledGroup.id.toString(),\n displayName: scheduledGroup.name,\n subject: subjects.map(x => x.name).join(', '),\n groups: scheduledGroup.users_primary_groups.map(x => ({ to: x.toString() })),\n teachers: scheduledGroup.teachers?.map(x => ({ to: x.id.toString() }))\n } satisfies Types.course);\n\n });\n\n return courses;\n}\n"],"mappings":";AAIA,yBACE,iBACA,QACA,cACA,gBACgB;CAEhB,MAAMA,UAA0B;AAEhC,kBAAiB,SAAQ,mBAAkB;EAKzC,MAAM,WAAW,OAAO,eAAe,OAAO,eAAe,WAAW,eAAe;AACvF,MAAI,SAAS,UAAU,GAAG;GACxB,MAAM,OAAO,uBAAuB,eAAe,KAAK,aAAa,eAAe,GAAG,cAAc,SAAS,OAAO,aAAa,OAAO,eAAe,OAAO,aAAa,UAAU,2EAA2E,OAAO,eAAe,OAAO,YAAY,SAAS;AACnT,kBAAe,KAAK;AACpB;;AAOF,MAAI,eAAe,UAAU,UAAU,GAAG;GACxC,MAAM,OAAO,uBAAuB,eAAe,KAAK,aAAa,eAAe,GAAG;AACvF,kBAAe,KAAK;;AAItB,UAAQ,KAAK;GACX,KAAa,eAAe,GAAG;GAC/B,aAAa,eAAe;GAC5B,SAAa,SAAS,KAAI,MAAK,EAAE,MAAM,KAAK;GAC5C,QAAa,eAAe,qBAAqB,KAAI,OAAM,EAAE,IAAI,EAAE;GACnE,UAAa,eAAe,UAAU,KAAI,OAAM,EAAE,IAAI,EAAE,GAAG;;;AAK/D,QAAO"}
@@ -0,0 +1,61 @@
1
+ import moment from "moment";
2
+
3
+ //#region src/Additio/from/events.ts
4
+ const firstDay = moment.utc("1970-01-05");
5
+ function fromTimeString(day, timeString) {
6
+ const [hours, minutes, seconds] = timeString.split(":").map((time) => parseInt(time));
7
+ return firstDay.clone().add(day, "day").set("hour", hours).set("minute", minutes);
8
+ }
9
+ function events_default(lessons, courses, teachers, importErrors, importWarnings) {
10
+ const group2course = /* @__PURE__ */ new Map();
11
+ courses?.forEach((c) => group2course.set(c.ids, c));
12
+ const teacherSet = /* @__PURE__ */ new Set();
13
+ teachers?.forEach((t) => teacherSet.add(t.ids));
14
+ const events = [];
15
+ lessons?.forEach((l) => {
16
+ if (l.info.groups?.length != 1) {
17
+ const warn = `The lesson with id "${l.id} contained ${l.info.groups?.length} number of groups (schedule_groups = courses) and was therefore omitted: a lesson shall contain only a single group.`;
18
+ importWarnings.push(warn);
19
+ return;
20
+ }
21
+ const course_id = l.info.groups[0].id.toString();
22
+ const course = group2course.get(course_id);
23
+ if (!course) {
24
+ const warn = `The lesson with id "${l.id}" referenced the unknown/faulty schedule_group (course) "${course_id}" and was therefore ignored.`;
25
+ importWarnings.push(warn);
26
+ return;
27
+ }
28
+ const start = fromTimeString(l.weekday, l.info.start);
29
+ const end = fromTimeString(l.weekday, l.info.end);
30
+ const preferredDuration = l.info.duration;
31
+ const duration = l.info.duration;
32
+ let eventTeachers;
33
+ if (!course.teachers || !course.teachers?.every((x) => l.info.teachers?.some((y) => y.id.toString() == x.to))) {
34
+ eventTeachers = l.info.teachers?.map((x) => x.id.toString());
35
+ for (const teacher of eventTeachers ?? []) if (!teacherSet.has(teacher)) {
36
+ const warn = `The lesson with id "${l.id}" referenced the unknown teacher "${teacher}" and was therefore ignored.`;
37
+ importWarnings.push(warn);
38
+ return;
39
+ }
40
+ }
41
+ const location = l.info.room?.id.toString();
42
+ events.push({
43
+ ids: l.id.toString(),
44
+ start,
45
+ end,
46
+ preferredDuration,
47
+ duration,
48
+ course: course_id,
49
+ ...location && {
50
+ inLocations: [location],
51
+ locations: [{ locations: [location] }]
52
+ },
53
+ ...eventTeachers && { teachers: eventTeachers.map((to) => ({ to })) }
54
+ });
55
+ });
56
+ return events;
57
+ }
58
+
59
+ //#endregion
60
+ export { events_default as default };
61
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","names":["events: CoreTypes.event[]","eventTeachers: string[] | undefined"],"sources":["../../../src/Additio/from/events.ts"],"sourcesContent":["\nimport moment from 'moment';\n\nimport { Types as CoreTypes } from '../../core/types';\nimport { Lesson } from '../types/lessons';\n\nconst firstDay = moment.utc('1970-01-05');\n\nfunction fromTimeString (\n day: number,\n timeString: string\n): moment.Moment {\n const [hours, minutes, seconds] = timeString.split(':').map((time: string) => parseInt(time));\n return firstDay.clone().add(day, 'day')\n .set('hour', hours)\n .set('minute', minutes);\n}\n\n\nexport default function (\n lessons: Lesson[] | undefined,\n courses: CoreTypes.course[] | undefined,\n teachers: CoreTypes.course[] | undefined,\n importErrors: string[],\n importWarnings: string[],\n): CoreTypes.event[] {\n\n // create schedule_group (group) to course map for quick lookup\n const group2course = new Map<string, CoreTypes.course>();\n courses?.forEach(c => group2course.set(c.ids!, c));\n\n // create teacher set for quick lookup\n const teacherSet = new Set<string>();\n teachers?.forEach(t => teacherSet.add(t.ids!));\n\n const events: CoreTypes.event[] = [];\n lessons?.forEach(l => {\n\n // check number of groups (schedule_groups = course) to ensure that only one exists\n if (l.info.groups?.length != 1) {\n const warn = `The lesson with id \"${l.id} contained ${l.info.groups?.length} number of groups (schedule_groups = courses) and was therefore omitted: a lesson shall contain only a single group.`;\n importWarnings.push(warn);\n return;\n }\n const course_id = l.info.groups[0].id.toString();\n\n // ensure the course exists\n const course = group2course.get(course_id);\n if (!course) {\n const warn = `The lesson with id \"${l.id}\" referenced the unknown/faulty schedule_group (course) \"${course_id}\" and was therefore ignored.`;\n importWarnings.push(warn);\n return;\n }\n\n const start = fromTimeString(l.weekday, l.info.start);\n const end = fromTimeString(l.weekday, l.info.end);\n const preferredDuration = l.info.duration;\n const duration = l.info.duration;\n\n // store only teachers if they mismatch teachers of parent course\n let eventTeachers: string[] | undefined;\n if (!course.teachers || !course.teachers?.every(x => l.info.teachers?.some(y => y.id.toString() == x.to))) {\n eventTeachers = l.info.teachers?.map(x => x.id.toString());\n\n // ensure that the teachers exist\n for (const teacher of eventTeachers ?? []) {\n if (!teacherSet.has(teacher)) {\n const warn = `The lesson with id \"${l.id}\" referenced the unknown teacher \"${teacher}\" and was therefore ignored.`;\n importWarnings.push(warn);\n return;\n }\n }\n }\n\n // location\n const location = l.info.room?.id.toString();\n\n events.push({\n ids: l.id.toString(),\n start,\n end,\n preferredDuration,\n duration,\n course: course_id,\n ...location && { inLocations: [ location ], locations: [{ locations: [ location ] }] },\n ...(eventTeachers && { teachers: eventTeachers.map((to) => ({ to })) })\n } satisfies CoreTypes.event);\n });\n\n return events;\n}\n"],"mappings":";;;AAMA,MAAM,WAAW,OAAO,IAAI;AAE5B,SAAS,eACP,KACA,YACe;CACf,MAAM,CAAC,OAAO,SAAS,WAAW,WAAW,MAAM,KAAK,KAAK,SAAiB,SAAS;AACvF,QAAO,SAAS,QAAQ,IAAI,KAAK,OAC9B,IAAI,QAAQ,OACZ,IAAI,UAAU;;AAInB,wBACE,SACA,SACA,UACA,cACA,gBACmB;CAGnB,MAAM,+BAAe,IAAI;AACzB,UAAS,SAAQ,MAAK,aAAa,IAAI,EAAE,KAAM;CAG/C,MAAM,6BAAa,IAAI;AACvB,WAAU,SAAQ,MAAK,WAAW,IAAI,EAAE;CAExC,MAAMA,SAA4B;AAClC,UAAS,SAAQ,MAAK;AAGpB,MAAI,EAAE,KAAK,QAAQ,UAAU,GAAG;GAC9B,MAAM,OAAO,uBAAuB,EAAE,GAAG,aAAa,EAAE,KAAK,QAAQ,OAAO;AAC5E,kBAAe,KAAK;AACpB;;EAEF,MAAM,YAAY,EAAE,KAAK,OAAO,GAAG,GAAG;EAGtC,MAAM,SAAS,aAAa,IAAI;AAChC,MAAI,CAAC,QAAQ;GACX,MAAM,OAAO,uBAAuB,EAAE,GAAG,2DAA2D,UAAU;AAC9G,kBAAe,KAAK;AACpB;;EAGF,MAAM,QAAoB,eAAe,EAAE,SAAS,EAAE,KAAK;EAC3D,MAAM,MAAoB,eAAe,EAAE,SAAS,EAAE,KAAK;EAC3D,MAAM,oBAAoB,EAAE,KAAK;EACjC,MAAM,WAAoB,EAAE,KAAK;EAGjC,IAAIC;AACJ,MAAI,CAAC,OAAO,YAAY,CAAC,OAAO,UAAU,OAAM,MAAK,EAAE,KAAK,UAAU,MAAK,MAAK,EAAE,GAAG,cAAc,EAAE,MAAM;AACzG,mBAAgB,EAAE,KAAK,UAAU,KAAI,MAAK,EAAE,GAAG;AAG/C,QAAK,MAAM,WAAW,iBAAiB,GACrC,KAAI,CAAC,WAAW,IAAI,UAAU;IAC5B,MAAM,OAAO,uBAAuB,EAAE,GAAG,oCAAoC,QAAQ;AACrF,mBAAe,KAAK;AACpB;;;EAMN,MAAM,WAAW,EAAE,KAAK,MAAM,GAAG;AAEjC,SAAO,KAAK;GACV,KAAQ,EAAE,GAAG;GACb;GACA;GACA;GACA;GACA,QAAQ;GACR,GAAG,YAAY;IAAE,aAAa,CAAE;IAAY,WAAW,CAAC,EAAE,WAAW,CAAE;;GACvE,GAAI,iBAAiB,EAAE,UAAU,cAAc,KAAK,QAAQ,EAAE;;;AAIlE,QAAO"}
@@ -0,0 +1,14 @@
1
+ //#region src/Additio/from/groups.ts
2
+ function groups_default(primaryGroups, importErrors, importWarnings) {
3
+ return primaryGroups?.map((x) => {
4
+ return {
5
+ ids: x.id.toString(),
6
+ displayName: x.name,
7
+ species: "class"
8
+ };
9
+ }) ?? [];
10
+ }
11
+
12
+ //#endregion
13
+ export { groups_default as default };
14
+ //# sourceMappingURL=groups.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groups.js","names":[],"sources":["../../../src/Additio/from/groups.ts"],"sourcesContent":["import { PrimaryGroup } from '../types/primary-groups';\nimport { Types } from '../../core/types';\n\nexport default function (\n primaryGroups: PrimaryGroup[] | undefined,\n importErrors: string[],\n importWarnings: string[],\n): Types.group[] {\n return primaryGroups?.map(x => { return {\n ids: x.id.toString(),\n displayName: x.name,\n species: 'class',\n };}) ?? [];\n}\n"],"mappings":";AAGA,wBACE,eACA,cACA,gBACe;AACf,QAAO,eAAe,KAAI,MAAK;AAAE,SAAO;GACtC,KAAa,EAAE,GAAG;GAClB,aAAa,EAAE;GACf,SAAa;;OACP"}
@@ -0,0 +1,8 @@
1
+ import schedules_default from "./schedules.js";
2
+
3
+ //#region src/Additio/from/index.ts
4
+ var from_default = { schedules: schedules_default };
5
+
6
+ //#endregion
7
+ export { from_default as default };
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_schedules"],"sources":["../../../src/Additio/from/index.ts"],"sourcesContent":["import { FromInterface } from '../../core/types';\nimport _schedules from './schedules';\n\nexport default {\n schedules: _schedules\n} satisfies FromInterface;\n"],"mappings":";;;AAGA,mBAAe,EACb,WAAWA"}
@@ -0,0 +1,13 @@
1
+ //#region src/Additio/from/locations.ts
2
+ function locations_default(rooms, importErrors, importWarnings) {
3
+ return rooms?.map((room) => {
4
+ return {
5
+ ids: room.id.toString(),
6
+ displayName: room.name
7
+ };
8
+ }) ?? [];
9
+ }
10
+
11
+ //#endregion
12
+ export { locations_default as default };
13
+ //# sourceMappingURL=locations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locations.js","names":[],"sources":["../../../src/Additio/from/locations.ts"],"sourcesContent":["import { Room } from '../types/rooms';\nimport { Types } from '../../core/types';\n\n\nexport default function (\n rooms: Room[] | undefined,\n importErrors: string[],\n importWarnings: string[],\n): Types.location[] {\n return rooms?.map(room => { return {\n ids: room.id.toString(),\n displayName: room.name\n };}) ?? [];\n}\n"],"mappings":";AAIA,2BACE,OACA,cACA,gBACkB;AAClB,QAAO,OAAO,KAAI,SAAQ;AAAE,SAAO;GACjC,KAAa,KAAK,GAAG;GACrB,aAAa,KAAK;;OACZ"}
@@ -0,0 +1,30 @@
1
+ //#region src/Additio/from/persons.ts
2
+ function persons_default(users, groups, importErrors, importWarnings) {
3
+ const personSet = /* @__PURE__ */ new Map();
4
+ const groupSet = new Map(groups.map((x) => [x.displayName, x.id]));
5
+ users?.filter((x) => x.role === 1).forEach((user) => {
6
+ const person = {
7
+ ids: user.id.toString(),
8
+ firstName: user.first_name,
9
+ lastName: user.last_name,
10
+ group: user.current_primary_group?.id?.toString(),
11
+ ...user.email && { emails: [{
12
+ value: user.email,
13
+ type: "organization"
14
+ }] }
15
+ };
16
+ if (user.current_primary_group) {
17
+ const { id, name } = user.current_primary_group;
18
+ if (groupSet.get(name.toString()) != person.group) {
19
+ importWarnings.push(`The group of the user ${person.firstName} ${person.lastName} is not the same as the group in the primary_groups array.`);
20
+ person.group = groupSet.get(name.toString()) ?? person.group;
21
+ }
22
+ }
23
+ personSet.set(user.id, person);
24
+ });
25
+ return Array.from(personSet.values());
26
+ }
27
+
28
+ //#endregion
29
+ export { persons_default as default };
30
+ //# sourceMappingURL=persons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persons.js","names":["personSet: Map<number, CoreTypes.person>","groupSet: Map<string, string>"],"sources":["../../../src/Additio/from/persons.ts"],"sourcesContent":["import { Types as CoreTypes } from '../../core/types';\n\nimport { User } from '../types/users';\n\nexport default function (\n users: User[] | undefined,\n groups: CoreTypes.group[],\n importErrors: string[],\n importWarnings: string[]\n) {\n // add all persons to a set to remove duplicates\n const personSet: Map<number, CoreTypes.person> = new Map();\n\n /*\n The reference to the group is different that the one in the primary_groups array.\n To solve this we create a map of all groups and use the id of the group as key. If\n the id is not found in the map, try to find a group with the same name.\n */\n const groupSet: Map<string, string> = new Map(groups.map(x => [x.displayName!, x.id!]));\n\n users?.filter(x => x.role === 1).forEach(user => {\n const person = {\n ids: user.id.toString(),\n firstName: user.first_name,\n lastName: user.last_name,\n group: user.current_primary_group?.id?.toString(),\n ...user.email && {\n emails: [\n {\n value: user.email,\n type: 'organization'\n }\n ]\n }\n } satisfies CoreTypes.person;\n\n if (user.current_primary_group) {\n const { id, name } = user.current_primary_group;\n if (groupSet.get(name.toString()) != person.group) {\n importWarnings.push(`The group of the user ${person.firstName} ${person.lastName} is not the same as the group in the primary_groups array.`);\n person.group = groupSet.get(name.toString()) ?? person.group;\n }\n }\n\n\n personSet.set(user.id, person);\n });\n\n return Array.from(personSet.values());\n}\n"],"mappings":";AAIA,yBACE,OACA,QACA,cACA,gBACA;CAEA,MAAMA,4BAA2C,IAAI;CAOrD,MAAMC,WAA2C,IAAI,IAAI,OAAO,KAAI,MAAK,CAAC,EAAE,aAAc,EAAE;AAE5F,QAAO,QAAO,MAAK,EAAE,SAAS,GAAG,SAAQ,SAAQ;EAC/C,MAAM,SAAS;GACb,KAAW,KAAK,GAAG;GACnB,WAAW,KAAK;GAChB,UAAW,KAAK;GAChB,OAAW,KAAK,uBAAuB,IAAI;GAC3C,GAAG,KAAK,SAAS,EACf,QAAQ,CACN;IACE,OAAO,KAAK;IACZ,MAAO;;;AAMf,MAAI,KAAK,uBAAuB;GAC9B,MAAM,EAAE,IAAI,SAAS,KAAK;AAC1B,OAAI,SAAS,IAAI,KAAK,eAAe,OAAO,OAAO;AACjD,mBAAe,KAAK,yBAAyB,OAAO,UAAU,GAAG,OAAO,SAAS;AACjF,WAAO,QAAQ,SAAS,IAAI,KAAK,eAAe,OAAO;;;AAK3D,YAAU,IAAI,KAAK,IAAI;;AAGzB,QAAO,MAAM,KAAK,UAAU"}
@@ -0,0 +1,8 @@
1
+ import { Types } from "../../core/v2/types/index.js";
2
+ import { Schedule } from "../types/schedules.js";
3
+
4
+ //#region src/Additio/from/schedules.d.ts
5
+ declare function export_default(schedule: Omit<Schedule, 'start_date' | 'end_date' | 'schedule' | 'school_year'>): Partial<Types.division>;
6
+ //#endregion
7
+ export { export_default };
8
+ //# sourceMappingURL=schedules.d.ts.map
@@ -0,0 +1,36 @@
1
+ import teachers_default from "./teachers.js";
2
+ import locations_default from "./locations.js";
3
+ import groups_default from "./groups.js";
4
+ import courses_default from "./courses.js";
5
+ import events_default from "./events.js";
6
+ import persons_default from "./persons.js";
7
+
8
+ //#region src/Additio/from/schedules.ts
9
+ function schedules_default(schedule) {
10
+ if (schedule.schools.length != 1) return { meta: { errors: [`Received ${schedule.schools.length} number of schools: only a single school is allowed.`] } };
11
+ const school = schedule.schools[0];
12
+ const errors = [];
13
+ const warnings = [];
14
+ const locations = locations_default(schedule.rooms, errors, warnings);
15
+ const teachers = teachers_default(schedule.schedule_groups, schedule.lessons, errors, warnings);
16
+ const groups = groups_default(schedule.primary_groups, errors, warnings);
17
+ const courses = courses_default(schedule.schedule_groups, school, errors, warnings);
18
+ const events = events_default(schedule.lessons, courses, teachers, errors, warnings);
19
+ const persons = persons_default(schedule.users, groups, errors, warnings);
20
+ return {
21
+ locations,
22
+ teachers,
23
+ groups,
24
+ courses,
25
+ events,
26
+ persons,
27
+ meta: {
28
+ ...errors.length ? { errors } : {},
29
+ ...warnings.length ? { warnings } : {}
30
+ }
31
+ };
32
+ }
33
+
34
+ //#endregion
35
+ export { schedules_default as default };
36
+ //# sourceMappingURL=schedules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedules.js","names":["errors: string[]","warnings: string[]","locations: CoreTypes.location []","_locations","teachers: CoreTypes.teacher []","_teachers","groups: CoreTypes.group []","_groups","courses: CoreTypes.course []","_courses","events: CoreTypes.event []","_events","persons: CoreTypes.person []","_persons"],"sources":["../../../src/Additio/from/schedules.ts"],"sourcesContent":["import { Schedule } from '../types/schedules';\n\nimport _teachers from './teachers';\nimport _locations from './locations';\nimport _groups from './groups';\nimport _courses from './courses';\nimport _events from './events';\nimport _persons from './persons';\n\nimport { Types as CoreTypes } from '../../core/types';\n\nexport default function (\n schedule: Omit<Schedule, 'start_date' | 'end_date' | 'schedule' | 'school_year'>\n): Partial<CoreTypes.division> {\n\n ////\n //// check the number of contained schools\n ////\n if (schedule.schools.length != 1) {\n return { meta: { errors: [`Received ${schedule.schools.length} number of schools: only a single school is allowed.`] } };\n }\n const school = schedule.schools[0];\n\n // gather all import related warnings/errors\n const errors: string[] = [];\n const warnings: string[] = [];\n\n const locations: CoreTypes.location [] = _locations(schedule.rooms, errors, warnings);\n const teachers: CoreTypes.teacher [] = _teachers (schedule.schedule_groups, schedule.lessons, errors, warnings);\n const groups: CoreTypes.group [] = _groups (schedule.primary_groups, errors, warnings);\n const courses: CoreTypes.course [] = _courses (schedule.schedule_groups, school, errors, warnings);\n const events: CoreTypes.event [] = _events (schedule.lessons, courses, teachers, errors, warnings);\n const persons: CoreTypes.person [] = _persons (schedule.users, groups, errors, warnings);\n\n return { locations, teachers, groups, courses, events, persons,\n meta: {\n ...( errors.length ? { errors } : { } ),\n ...( warnings.length ? { warnings } : { } )\n }\n };\n}\n"],"mappings":";;;;;;;;AAWA,2BACE,UAC6B;AAK7B,KAAI,SAAS,QAAQ,UAAU,EAC7B,QAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,YAAY,SAAS,QAAQ,OAAO;CAEhE,MAAM,SAAS,SAAS,QAAQ;CAGhC,MAAMA,SAAqB;CAC3B,MAAMC,WAAqB;CAE3B,MAAMC,YAAqCC,kBAAW,SAAS,OAAmC,QAAQ;CAC1G,MAAMC,WAAqCC,iBAAW,SAAS,iBAAiB,SAAS,SAAS,QAAQ;CAC1G,MAAMC,SAAqCC,eAAW,SAAS,gBAAmC,QAAQ;CAC1G,MAAMC,UAAqCC,gBAAW,SAAS,iBAAiB,QAAkB,QAAQ;CAC1G,MAAMC,SAAqCC,eAAW,SAAS,SAAS,SAAS,UAAiB,QAAQ;CAC1G,MAAMC,UAAqCC,gBAAW,SAAS,OAAO,QAA4B,QAAQ;AAE1G,QAAO;EAAE;EAAW;EAAU;EAAQ;EAAS;EAAQ;EACrD,MAAM;GACJ,GAAK,OAAO,SAAW,EAAE,WAAa;GACtC,GAAK,SAAS,SAAS,EAAE,aAAa"}
@@ -0,0 +1,25 @@
1
+ //#region src/Additio/from/teachers.ts
2
+ function teachers_default(scheduleGroups, lessons, importErrors, importWarnings) {
3
+ const teacherSet = /* @__PURE__ */ new Map();
4
+ scheduleGroups?.forEach((scheduleGroup) => {
5
+ scheduleGroup.teachers?.forEach((teacher) => {
6
+ teacherSet.set(teacher.id, {
7
+ ids: teacher.id.toString(),
8
+ displayName: teacher.first_name + " " + teacher.last_name
9
+ });
10
+ });
11
+ });
12
+ lessons?.forEach((lesson) => {
13
+ lesson.teachers?.forEach((teacher) => {
14
+ teacherSet.set(teacher.id, {
15
+ ids: teacher.id.toString(),
16
+ displayName: teacher.first_name + " " + teacher.last_name
17
+ });
18
+ });
19
+ });
20
+ return Array.from(teacherSet.values());
21
+ }
22
+
23
+ //#endregion
24
+ export { teachers_default as default };
25
+ //# sourceMappingURL=teachers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teachers.js","names":["teacherSet: Map<number, Types.teacher>"],"sources":["../../../src/Additio/from/teachers.ts"],"sourcesContent":["import { Types } from '../../core/types';\nimport { ScheduleGroup } from '../types/schedule-groups';\nimport { Lesson } from '../types/lessons';\n\nexport default function (\n scheduleGroups: ScheduleGroup[] | undefined,\n lessons: Lesson[] | undefined,\n importErrors: string[],\n importWarnings: string[],\n): Types.teacher[] {\n // add all teachers to a set to remove duplicates\n const teacherSet: Map<number, Types.teacher> = new Map();\n\n scheduleGroups?.forEach(scheduleGroup => {\n scheduleGroup.teachers?.forEach(teacher => {\n teacherSet.set(teacher.id, {\n ids: teacher.id.toString(),\n displayName: teacher.first_name + ' ' + teacher.last_name\n });\n });\n });\n\n lessons?.forEach(lesson => {\n lesson.teachers?.forEach(teacher => {\n teacherSet.set(teacher.id, {\n ids: teacher.id.toString(),\n displayName: teacher.first_name + ' ' + teacher.last_name\n });\n });\n });\n\n return Array.from(teacherSet.values());\n}\n"],"mappings":";AAIA,0BACE,gBACA,SACA,cACA,gBACiB;CAEjB,MAAMA,6BAAyC,IAAI;AAEnD,iBAAgB,SAAQ,kBAAiB;AACvC,gBAAc,UAAU,SAAQ,YAAW;AACzC,cAAW,IAAI,QAAQ,IAAI;IACzB,KAAa,QAAQ,GAAG;IACxB,aAAa,QAAQ,aAAa,MAAM,QAAQ;;;;AAKtD,UAAS,SAAQ,WAAU;AACzB,SAAO,UAAU,SAAQ,YAAW;AAClC,cAAW,IAAI,QAAQ,IAAI;IACzB,KAAa,QAAQ,GAAG;IACxB,aAAa,QAAQ,aAAa,MAAM,QAAQ;;;;AAKtD,QAAO,MAAM,KAAK,WAAW"}
@@ -0,0 +1,14 @@
1
+ import { export_default as export_default$1 } from "./from/schedules.js";
2
+ import { export_default } from "./to/index.js";
3
+ import { Types } from "./types/index.js";
4
+
5
+ //#region src/Additio/index.d.ts
6
+ declare class AdditioMap {
7
+ static to: typeof export_default;
8
+ static from: {
9
+ schedules: typeof export_default$1;
10
+ };
11
+ }
12
+ //#endregion
13
+ export { AdditioMap };
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,12 @@
1
+ import from_default from "./from/index.js";
2
+ import to_default from "./to/index.js";
3
+
4
+ //#region src/Additio/index.ts
5
+ var AdditioMap = class {
6
+ static to = to_default;
7
+ static from = from_default;
8
+ };
9
+
10
+ //#endregion
11
+ export { AdditioMap };
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_to","_from"],"sources":["../../src/Additio/index.ts"],"sourcesContent":["import _from from './from';\nimport _to from './to';\nimport { Types } from './types';\n\nexport class AdditioMap {\n static to = _to;\n static from = _from;\n}\n\nexport type { Types as AdditioTypes };\n"],"mappings":";;;;AAIA,IAAa,aAAb,MAAwB;CACtB,OAAO,KAAOA;CACd,OAAO,OAAOC"}
@@ -0,0 +1,19 @@
1
+ import { Types } from "../../core/v2/types/index.js";
2
+ import * as xlsx1 from "xlsx";
3
+
4
+ //#region src/Additio/to/index.d.ts
5
+ declare class export_default {
6
+ static schedules: (schedule: {
7
+ division: Types.division;
8
+ settings: Types.divisionSettings;
9
+ periods: Types.period[];
10
+ locations: Types.location[];
11
+ groups: Types.group[];
12
+ teachers: Types.teacher[];
13
+ courses: Types.course[];
14
+ events: Types.event[];
15
+ }) => xlsx1.WorkBook;
16
+ }
17
+ //#endregion
18
+ export { export_default };
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,10 @@
1
+ import schedules_default from "./schedules.js";
2
+
3
+ //#region src/Additio/to/index.ts
4
+ var to_default = class {
5
+ static schedules = schedules_default;
6
+ };
7
+
8
+ //#endregion
9
+ export { to_default as default };
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_schedules"],"sources":["../../../src/Additio/to/index.ts"],"sourcesContent":["import _schedules from './schedules';\n\nexport default class {\n static schedules = _schedules;\n}"],"mappings":";;;AAEA,uBAAqB;CACnB,OAAO,YAAsBA"}
@@ -0,0 +1,74 @@
1
+ import moment from "moment";
2
+ import * as XLSX$1 from "xlsx";
3
+
4
+ //#region src/Additio/to/schedules.ts
5
+ const getId = (ref) => {
6
+ if (!ref) return "";
7
+ if (typeof ref == "string") return ref;
8
+ return ref.id.toString();
9
+ };
10
+ var schedules_default = (schedule) => {
11
+ const periodsMap = new Map(schedule.periods.map((x) => [getId(x), x]));
12
+ periodsMap.set("", { ranges: [{
13
+ start: schedule.division.start,
14
+ end: schedule.division.end
15
+ }] });
16
+ const inWeeksMap = /* @__PURE__ */ new Map();
17
+ periodsMap.forEach((period, id) => {
18
+ const weeks = period.ranges.map((x) => {
19
+ const start = moment.utc(x.start);
20
+ const end = moment.utc(x.end);
21
+ const weeks$1 = new Array();
22
+ while (start.isBefore(end)) {
23
+ weeks$1.push(start.week());
24
+ start.add(1, "week");
25
+ }
26
+ return weeks$1;
27
+ }).flat().join(", ");
28
+ inWeeksMap.set(id, weeks);
29
+ });
30
+ const locationsMap = new Map(schedule.locations.map((x) => [getId(x), x]));
31
+ const groupsMap = new Map(schedule.groups.map((x) => [getId(x), x]));
32
+ const teachersMap = new Map(schedule.teachers.map((x) => [getId(x), x]));
33
+ const coursesMap = new Map(schedule.courses.map((x) => [getId(x), x]));
34
+ const events = schedule.events.reduce((acc, event) => {
35
+ if (event.parked) return acc;
36
+ const course = coursesMap.get(getId(event.course));
37
+ if (!course) return acc;
38
+ const start = moment.utc(event.start);
39
+ const end = moment.utc(event.end);
40
+ const periodId = getId(event.period ?? course.period ?? schedule.settings.period);
41
+ const inWeeks = inWeeksMap.get(periodId);
42
+ const locations = (event.inLocations ?? []).map((x) => x ? locationsMap.get(getId(x)) : null).filter((x) => !!x);
43
+ const teachers = (event.teachers ?? course.teachers ?? []).map((x) => teachersMap.get(getId(x.to))).filter((x) => !!x);
44
+ const groups = (event.groups ?? course.groups ?? []).map((x) => groupsMap.get(getId(x.to))).filter((x) => !!x);
45
+ const out = {
46
+ id: event._id?.toString(),
47
+ externalid: event.ids?.toString(),
48
+ groupid: course.ids,
49
+ group: course.displayName,
50
+ dayid: (start.day() + 6) % 7,
51
+ startTime: start.format("HHmm"),
52
+ length: end.diff(start, "minutes"),
53
+ subject: course.subject,
54
+ inweek: inWeeks,
55
+ roomid: locations.map((x) => x.ids).join(", "),
56
+ room: locations.map((x) => x.displayName).join(", "),
57
+ teacherid: teachers.map((x) => x.ids).join(", "),
58
+ teacher: teachers.map((x) => x.displayName).join(", "),
59
+ classid: groups.map((x) => x.ids).join(", "),
60
+ class: groups.map((x) => x.displayName).join(", ")
61
+ };
62
+ return acc.concat(out);
63
+ }, []);
64
+ return toXlsx(events);
65
+ };
66
+ function toXlsx(events) {
67
+ const wb = XLSX$1.utils.book_new();
68
+ XLSX$1.utils.book_append_sheet(wb, XLSX$1.utils.json_to_sheet(events), "royal schedule export");
69
+ return wb;
70
+ }
71
+
72
+ //#endregion
73
+ export { schedules_default as default };
74
+ //# sourceMappingURL=schedules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedules.js","names":["weeks","out: OutEvent","XLSX"],"sources":["../../../src/Additio/to/schedules.ts"],"sourcesContent":["import * as XLSX from 'xlsx';\nimport moment from 'moment';\nimport { Types } from 'mongoose';\n\nimport { Types as CoreTypes } from '../../core/types';\n\ntype OutEvent = {\n id?: string;\n externalid?: string;\n groupid?: string;\n group?: string;\n dayid?: number;\n startTime?: string;\n length?: number;\n subject?: string;\n roomid?: string;\n room?: string;\n teacherid?: string;\n teacher?: string;\n classid?: string;\n class?: string;\n inweek?: string;\n};\n\ntype Schedule = {\n division: CoreTypes.division;\n settings: CoreTypes.divisionSettings;\n periods: CoreTypes.period[];\n locations: CoreTypes.location[];\n groups: CoreTypes.group[];\n teachers: CoreTypes.teacher[];\n courses: CoreTypes.course[];\n events: CoreTypes.event[];\n};\n\n\nconst getId = (ref: { id?: string } | Types.ObjectId | string | undefined): string => {\n if (!ref) return '';\n if (typeof ref == 'string') return ref;\n return ref.id!.toString();\n};\n\nexport default (\n schedule: Schedule\n): XLSX.WorkBook => {\n\n // a map of period.id -> period\n const periodsMap = new Map(schedule.periods.map(x => [getId(x), x]));\n periodsMap.set('', { ranges: [{ start: schedule.division.start, end: schedule.division.end }] });\n\n // a map of period.id -> inWeeks\n const inWeeksMap = new Map<string, string>();\n periodsMap.forEach((period, id) => {\n const weeks = period.ranges\n .map(x => {\n // fetch all weeks between start and end\n const start = moment.utc(x.start);\n const end = moment.utc(x.end);\n const weeks = new Array<number>();\n while (start.isBefore(end)) {\n weeks.push(start.week());\n start.add(1, 'week');\n }\n return weeks;\n })\n .flat()\n .join(', ');\n\n inWeeksMap.set(id, weeks);\n });\n\n // a map of location.id -> location\n const locationsMap = new Map(schedule.locations.map(x => [getId(x), x]));\n\n // a map of group.id -> group\n const groupsMap = new Map(schedule.groups.map(x => [getId(x), x]));\n\n // a map of teacher.id -> teacher\n const teachersMap = new Map(schedule.teachers.map(x => [getId(x), x]));\n\n // a map of course.id -> course\n const coursesMap = new Map(schedule.courses.map(x => [getId(x), x]));\n\n\n const events = schedule.events.reduce((acc, event) => {\n // ignore parked events\n if (event.parked) return acc;\n\n // must have a course\n const course = coursesMap.get(getId(event.course));\n if (!course) return acc;\n\n const start = moment.utc(event.start);\n const end = moment.utc(event.end);\n\n const periodId = getId(event.period ?? course.period ?? schedule.settings.period);\n const inWeeks = inWeeksMap.get(periodId);\n\n const locations = (event.inLocations ?? []).map(x => x ? locationsMap.get(getId(x )) : null).filter((x): x is NonNullable<typeof x> => !!x);\n const teachers = (event.teachers ?? course.teachers ?? []).map(x => teachersMap .get(getId(x.to)) ).filter((x): x is NonNullable<typeof x> => !!x);\n const groups = (event.groups ?? course.groups ?? []).map(x => groupsMap .get(getId(x.to)) ).filter((x): x is NonNullable<typeof x> => !!x);\n\n const out: OutEvent = {\n id: event._id?.toString(),\n externalid: event.ids?.toString(),\n groupid: course.ids,\n group: course.displayName,\n dayid: (start.day() + 6) % 7,\n startTime: start.format('HHmm'),\n length: end.diff(start, 'minutes'),\n subject: course.subject,\n inweek: inWeeks,\n roomid: locations.map(x => x.ids ).join(', '),\n room: locations.map(x => x.displayName).join(', '),\n teacherid: teachers .map(x => x.ids ).join(', '),\n teacher: teachers .map(x => x.displayName).join(', '),\n classid: groups .map(x => x.ids ).join(', '),\n class: groups .map(x => x.displayName).join(', ')\n };\n return acc.concat(out);\n }, [] as OutEvent[]);\n\n // return toXlsx(events);\n return toXlsx(events);\n};\n\nfunction toXlsx (events: OutEvent[]): XLSX.WorkBook {\n const wb = XLSX.utils.book_new();\n\n XLSX.utils.book_append_sheet(wb, XLSX.utils.json_to_sheet(events), 'royal schedule export');\n\n return wb;\n}"],"mappings":";;;;AAoCA,MAAM,SAAS,QAAuE;AACpF,KAAI,CAAC,IAAK,QAAO;AACjB,KAAI,OAAO,OAAO,SAAU,QAAO;AACnC,QAAO,IAAI,GAAI;;AAGjB,yBACE,aACkB;CAGlB,MAAM,aAAa,IAAI,IAAI,SAAS,QAAQ,KAAI,MAAK,CAAC,MAAM,IAAI;AAChE,YAAW,IAAI,IAAI,EAAE,QAAQ,CAAC;EAAE,OAAO,SAAS,SAAS;EAAO,KAAK,SAAS,SAAS;;CAGvF,MAAM,6BAAa,IAAI;AACvB,YAAW,SAAS,QAAQ,OAAO;EACjC,MAAM,QAAQ,OAAO,OAClB,KAAI,MAAK;GAER,MAAM,QAAQ,OAAO,IAAI,EAAE;GAC3B,MAAM,MAAQ,OAAO,IAAI,EAAE;GAC3B,MAAMA,UAAQ,IAAI;AAClB,UAAO,MAAM,SAAS,MAAM;AAC1B,YAAM,KAAK,MAAM;AACjB,UAAM,IAAI,GAAG;;AAEf,UAAOA;KAER,OACA,KAAK;AAER,aAAW,IAAI,IAAI;;CAIrB,MAAM,eAAe,IAAI,IAAI,SAAS,UAAU,KAAI,MAAK,CAAC,MAAM,IAAI;CAGpE,MAAM,YAAY,IAAI,IAAI,SAAS,OAAO,KAAI,MAAK,CAAC,MAAM,IAAI;CAG9D,MAAM,cAAc,IAAI,IAAI,SAAS,SAAS,KAAI,MAAK,CAAC,MAAM,IAAI;CAGlE,MAAM,aAAa,IAAI,IAAI,SAAS,QAAQ,KAAI,MAAK,CAAC,MAAM,IAAI;CAGhE,MAAM,SAAS,SAAS,OAAO,QAAQ,KAAK,UAAU;AAEpD,MAAI,MAAM,OAAQ,QAAO;EAGzB,MAAM,SAAS,WAAW,IAAI,MAAM,MAAM;AAC1C,MAAI,CAAC,OAAQ,QAAO;EAEpB,MAAM,QAAQ,OAAO,IAAI,MAAM;EAC/B,MAAM,MAAQ,OAAO,IAAI,MAAM;EAE/B,MAAM,WAAW,MAAM,MAAM,UAAU,OAAO,UAAU,SAAS,SAAS;EAC1E,MAAM,UAAU,WAAW,IAAI;EAE/B,MAAM,aAAa,MAAM,eAA+B,IAAI,KAAI,MAAM,IAAI,aAAa,IAAI,MAAM,MAAS,MAAM,QAAQ,MAAkC,CAAC,CAAC;EAC5J,MAAM,YAAa,MAAM,YAAY,OAAO,YAAY,IAAI,KAAI,MAAU,YAAa,IAAI,MAAM,EAAE,MAAa,QAAQ,MAAkC,CAAC,CAAC;EAC5J,MAAM,UAAa,MAAM,UAAY,OAAO,UAAY,IAAI,KAAI,MAAU,UAAa,IAAI,MAAM,EAAE,MAAa,QAAQ,MAAkC,CAAC,CAAC;EAE5J,MAAMC,MAAgB;GACpB,IAAY,MAAM,KAAK;GACvB,YAAY,MAAM,KAAK;GACvB,SAAY,OAAO;GACnB,OAAY,OAAO;GACnB,QAAa,MAAM,QAAQ,KAAK;GAChC,WAAY,MAAM,OAAO;GACzB,QAAY,IAAI,KAAK,OAAO;GAC5B,SAAY,OAAO;GACnB,QAAY;GACZ,QAAY,UAAU,KAAI,MAAK,EAAE,KAAa,KAAK;GACnD,MAAY,UAAU,KAAI,MAAK,EAAE,aAAa,KAAK;GACnD,WAAY,SAAU,KAAI,MAAK,EAAE,KAAa,KAAK;GACnD,SAAY,SAAU,KAAI,MAAK,EAAE,aAAa,KAAK;GACnD,SAAY,OAAU,KAAI,MAAK,EAAE,KAAa,KAAK;GACnD,OAAY,OAAU,KAAI,MAAK,EAAE,aAAa,KAAK;;AAErD,SAAO,IAAI,OAAO;IACjB;AAGH,QAAO,OAAO;;AAGhB,SAAS,OAAQ,QAAmC;CAClD,MAAM,KAAKC,OAAK,MAAM;AAEtB,QAAK,MAAM,kBAAkB,IAAIA,OAAK,MAAM,cAAc,SAAS;AAEnE,QAAO"}
@@ -0,0 +1,20 @@
1
+ import { Course } from "./courses.js";
2
+ import { ScheduleGroup } from "./schedule-groups.js";
3
+
4
+ //#region src/Additio/types/course-sections.d.ts
5
+ type CourseSection = {
6
+ id: number;
7
+ school_id: number;
8
+ course: Partial<Course>;
9
+ schedule_group: Partial<ScheduleGroup>;
10
+ section: {
11
+ id: number;
12
+ sis_id: string | null;
13
+ name: string;
14
+ start_date: string;
15
+ end_date: string;
16
+ };
17
+ };
18
+ //#endregion
19
+ export { CourseSection };
20
+ //# sourceMappingURL=course-sections.d.ts.map
@@ -0,0 +1,17 @@
1
+ import { User } from "./users.js";
2
+
3
+ //#region src/Additio/types/courses.d.ts
4
+ type Course = {
5
+ url: string;
6
+ id: number;
7
+ school_id: number;
8
+ schedule_id: number;
9
+ name: string;
10
+ subject_code: string;
11
+ start_date: string | null;
12
+ end_date: string | null;
13
+ teachers: User[];
14
+ };
15
+ //#endregion
16
+ export { Course };
17
+ //# sourceMappingURL=courses.d.ts.map
@@ -0,0 +1,25 @@
1
+ import { School } from "./schools.js";
2
+ import { Room } from "./rooms.js";
3
+ import { PrimaryGroup } from "./primary-groups.js";
4
+ import { User } from "./users.js";
5
+ import { Course } from "./courses.js";
6
+ import { ScheduleGroup } from "./schedule-groups.js";
7
+ import { Lesson } from "./lessons.js";
8
+ import { Schedule } from "./schedules.js";
9
+ import { CourseSection } from "./course-sections.js";
10
+
11
+ //#region src/Additio/types/index.d.ts
12
+ declare namespace Types {
13
+ type courseSection = CourseSection;
14
+ type course = Course;
15
+ type lesson = Lesson;
16
+ type primaryGroup = PrimaryGroup;
17
+ type room = Room;
18
+ type scheduleGroup = ScheduleGroup;
19
+ type schedule = Schedule;
20
+ type school = School;
21
+ type user = User;
22
+ }
23
+ //#endregion
24
+ export { Types };
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,27 @@
1
+ import { User } from "./users.js";
2
+
3
+ //#region src/Additio/types/lessons.d.ts
4
+ type LessonInfo = {
5
+ start: string;
6
+ end: string;
7
+ duration: number;
8
+ room?: {
9
+ id: number;
10
+ };
11
+ teachers?: {
12
+ id: number;
13
+ }[];
14
+ groups?: {
15
+ id: number;
16
+ }[];
17
+ };
18
+ type Lesson = {
19
+ id: number;
20
+ weekday: number;
21
+ date: string;
22
+ info: LessonInfo;
23
+ teachers?: User[];
24
+ };
25
+ //#endregion
26
+ export { Lesson };
27
+ //# sourceMappingURL=lessons.d.ts.map
@@ -0,0 +1,30 @@
1
+ //#region src/Additio/types/primary-groups.d.ts
2
+ type PrimaryGroup = {
3
+ url: string;
4
+ id: number;
5
+ eid: null;
6
+ school_id: number;
7
+ schedule: {
8
+ url: string;
9
+ id: number;
10
+ school_year: string;
11
+ };
12
+ grade: number;
13
+ name: string;
14
+ guid: number | null;
15
+ teachers: [{
16
+ url: string;
17
+ id: number;
18
+ email: string;
19
+ first_name: string;
20
+ last_name: string;
21
+ role: number;
22
+ }];
23
+ start_date: null;
24
+ end_date: null;
25
+ start_date_display: string;
26
+ end_date_display: string;
27
+ };
28
+ //#endregion
29
+ export { PrimaryGroup };
30
+ //# sourceMappingURL=primary-groups.d.ts.map
@@ -0,0 +1,12 @@
1
+ //#region src/Additio/types/rooms.d.ts
2
+ type Room = {
3
+ url: string;
4
+ id: number;
5
+ school_id: number;
6
+ name: string;
7
+ category: string | null;
8
+ capacity: string | null;
9
+ };
10
+ //#endregion
11
+ export { Room };
12
+ //# sourceMappingURL=rooms.d.ts.map
@@ -0,0 +1,23 @@
1
+ import { User } from "./users.js";
2
+ import { Course } from "./courses.js";
3
+ import { Schedule } from "./schedules.js";
4
+
5
+ //#region src/Additio/types/schedule-groups.d.ts
6
+ type Subject = {
7
+ id: number;
8
+ name: string;
9
+ };
10
+ type ScheduleGroup = {
11
+ id: number;
12
+ eid: number | null;
13
+ school_id: number;
14
+ name: string;
15
+ teachers?: User[];
16
+ users_primary_groups: number[];
17
+ subjects: Subject[];
18
+ courses: Course[];
19
+ schedule: Schedule;
20
+ };
21
+ //#endregion
22
+ export { ScheduleGroup };
23
+ //# sourceMappingURL=schedule-groups.d.ts.map
@@ -0,0 +1,27 @@
1
+ import { School } from "./schools.js";
2
+ import { Room } from "./rooms.js";
3
+ import { PrimaryGroup } from "./primary-groups.js";
4
+ import { User } from "./users.js";
5
+ import { ScheduleGroup } from "./schedule-groups.js";
6
+ import { Lesson } from "./lessons.js";
7
+
8
+ //#region src/Additio/types/schedules.d.ts
9
+ type Schedule = {
10
+ start_date: Date;
11
+ end_date: Date;
12
+ school_year: {
13
+ short_desc: string;
14
+ };
15
+ schedule: {
16
+ id: number;
17
+ };
18
+ schools: School[];
19
+ rooms: Room[];
20
+ primary_groups: PrimaryGroup[];
21
+ schedule_groups: ScheduleGroup[];
22
+ users: User[];
23
+ lessons: Lesson[];
24
+ };
25
+ //#endregion
26
+ export { Schedule };
27
+ //# sourceMappingURL=schedules.d.ts.map
@@ -0,0 +1,11 @@
1
+ //#region src/Additio/types/schools.d.ts
2
+ type School = {
3
+ url: string;
4
+ id: number;
5
+ school_type: 'GR' | 'GY';
6
+ school_code: Date;
7
+ name: string;
8
+ };
9
+ //#endregion
10
+ export { School };
11
+ //# sourceMappingURL=schools.d.ts.map
@@ -0,0 +1,20 @@
1
+ //#region src/Additio/types/users.d.ts
2
+ type User = {
3
+ url: string;
4
+ id: number;
5
+ school_id: number;
6
+ email: string;
7
+ first_name: string;
8
+ last_name: string;
9
+ role: number;
10
+ current_primary_group_id: number | null;
11
+ current_primary_group_name: number | null;
12
+ current_primary_group: {
13
+ id: number;
14
+ name: string;
15
+ };
16
+ account_id: number;
17
+ };
18
+ //#endregion
19
+ export { User };
20
+ //# sourceMappingURL=users.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { Types } from "../../../core/v2/types/index.js";
2
- import * as xlsx1 from "xlsx";
2
+ import * as xlsx2 from "xlsx";
3
3
 
4
4
  //#region src/SchoolSoft/file/to/index.d.ts
5
5
  declare class export_default {
@@ -13,7 +13,7 @@ declare class export_default {
13
13
  events: Types.event[];
14
14
  periods: Types.period[];
15
15
  persons: Types.person[];
16
- }) => xlsx1.WorkBook;
16
+ }) => xlsx2.WorkBook;
17
17
  }
18
18
  //#endregion
19
19
  export { export_default };
package/dist/index.d.ts CHANGED
@@ -1,37 +1,39 @@
1
- import { Types as Types$2 } from "./core/v2/types/index.js";
2
- import { Types } from "./Admentum/types/index.js";
1
+ import { Types as Types$3 } from "./core/v2/types/index.js";
2
+ import { Types as Types$1 } from "./Admentum/types/index.js";
3
3
  import { AdmentumMap } from "./Admentum/index.js";
4
- import { Types as Types$1 } from "./core/v1/types/index.js";
4
+ import { Types } from "./Additio/types/index.js";
5
+ import { AdditioMap } from "./Additio/index.js";
6
+ import { Types as Types$2 } from "./core/v1/types/index.js";
5
7
  import { CoreMap } from "./core/index.js";
6
- import { Types as Types$4 } from "./Excel/v2/types/index.js";
7
- import { Types as Types$3 } from "./Excel/v1/types/index.js";
8
+ import { Types as Types$5 } from "./Excel/v2/types/index.js";
9
+ import { Types as Types$4 } from "./Excel/v1/types/index.js";
8
10
  import { ExcelMap } from "./Excel/index.js";
9
- import { Types as Types$18 } from "./Skola24/txt/types/index.js";
10
- import { Types as Types$17 } from "./Skola24/mdb/types/index.js";
11
- import { Types as Types$8 } from "./RS/v0/types/index.js";
12
- import { Types as Types$9 } from "./RS/v1/types/index.js";
13
- import { Types as Types$10 } from "./RS/v2/types/index.js";
14
- import { Types as Types$11 } from "./RS/v3/types/index.js";
15
- import { Types as Types$14 } from "./SchoolSoft/file/types/index.js";
16
- import { Types as Types$13 } from "./SchoolSoft/api/types/index.js";
11
+ import { Types as Types$19 } from "./Skola24/txt/types/index.js";
12
+ import { Types as Types$18 } from "./Skola24/mdb/types/index.js";
13
+ import { Types as Types$9 } from "./RS/v0/types/index.js";
14
+ import { Types as Types$10 } from "./RS/v1/types/index.js";
15
+ import { Types as Types$11 } from "./RS/v2/types/index.js";
16
+ import { Types as Types$12 } from "./RS/v3/types/index.js";
17
+ import { Types as Types$15 } from "./SchoolSoft/file/types/index.js";
18
+ import { Types as Types$14 } from "./SchoolSoft/api/types/index.js";
17
19
  import { SchoolSoftMap } from "./SchoolSoft/index.js";
18
- import { Types as Types$7 } from "./PlanDigital/types/index.js";
20
+ import { Types as Types$8 } from "./PlanDigital/types/index.js";
19
21
  import { PlanDigitalMap } from "./PlanDigital/index.js";
20
- import { Types as Types$5 } from "./IdunSoft/types/index.js";
22
+ import { Types as Types$6 } from "./IdunSoft/types/index.js";
21
23
  import { IdunSoftMap } from "./IdunSoft/index.js";
22
24
  import { maps } from "./identify/constants/index.js";
23
25
  import { IdentifiedMaps, MapInstance, MapName } from "./identify/types/index.js";
24
26
  import { identify } from "./identify/index.js";
25
- import { Types as Types$6 } from "./InfoMentor/types/index.js";
27
+ import { Types as Types$7 } from "./InfoMentor/types/index.js";
26
28
  import { InfoMentorMap } from "./InfoMentor/index.js";
27
29
  import { QuiculumMap } from "./Quiculum/index.js";
28
30
  import { RSMap } from "./RS/index.js";
29
- import { Types as Types$15 } from "./Schoolity/txt/types/index.js";
31
+ import { Types as Types$16 } from "./Schoolity/txt/types/index.js";
30
32
  import { SchoolityMap } from "./Schoolity/index.js";
31
- import { Types as Types$16 } from "./sdui/types/index.js";
33
+ import { Types as Types$17 } from "./sdui/types/index.js";
32
34
  import { SduiMap } from "./sdui/index.js";
33
35
  import { Skola24Map } from "./Skola24/index.js";
34
- import { Types as Types$12 } from "./SS12000/types/index.js";
36
+ import { Types as Types$13 } from "./SS12000/types/index.js";
35
37
  import { SS12000Map } from "./SS12000/index.js";
36
38
  import { vKlassMap } from "./vKlass/index.js";
37
- export { AdmentumMap, Types as AdmentumTypes, CoreMap, Types$1 as CoreV1Types, Types$2 as CoreV2Types, ExcelMap, Types$3 as ExcelV1Types, Types$4 as ExcelV2Types, IdentifiedMaps, IdunSoftMap, Types$5 as IdunSoftTypes, InfoMentorMap, Types$6 as InfoMentorTypes, MapInstance, MapName, PlanDigitalMap, Types$7 as PlanDigitalTypes, QuiculumMap, RSMap, Types$8 as RSV0Types, Types$9 as RSV1Types, Types$10 as RSV2Types, Types$11 as RSV3Types, SS12000Map, Types$12 as SS12000Types, Types$13 as SchoolSoftApiTypes, Types$14 as SchoolSoftFileTypes, SchoolSoftMap, SchoolityMap, Types$15 as SchoolityTXTTypes, SduiMap, Types$16 as SduiTypes, Types$17 as Skola24MDBTypes, Skola24Map, Types$18 as Skola24TXTTypes, identify, maps, vKlassMap };
39
+ export { AdditioMap, Types as AdditioTypes, AdmentumMap, Types$1 as AdmentumTypes, CoreMap, Types$2 as CoreV1Types, Types$3 as CoreV2Types, ExcelMap, Types$4 as ExcelV1Types, Types$5 as ExcelV2Types, IdentifiedMaps, IdunSoftMap, Types$6 as IdunSoftTypes, InfoMentorMap, Types$7 as InfoMentorTypes, MapInstance, MapName, PlanDigitalMap, Types$8 as PlanDigitalTypes, QuiculumMap, RSMap, Types$9 as RSV0Types, Types$10 as RSV1Types, Types$11 as RSV2Types, Types$12 as RSV3Types, SS12000Map, Types$13 as SS12000Types, Types$14 as SchoolSoftApiTypes, Types$15 as SchoolSoftFileTypes, SchoolSoftMap, SchoolityMap, Types$16 as SchoolityTXTTypes, SduiMap, Types$17 as SduiTypes, Types$18 as Skola24MDBTypes, Skola24Map, Types$19 as Skola24TXTTypes, identify, maps, vKlassMap };
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { AdmentumMap } from "./Admentum/index.js";
2
+ import { AdditioMap } from "./Additio/index.js";
2
3
  import { CoreMap } from "./core/index.js";
3
4
  import { ExcelMap } from "./Excel/index.js";
4
5
  import { SchoolSoftMap } from "./SchoolSoft/index.js";
@@ -15,4 +16,4 @@ import { SduiMap } from "./sdui/index.js";
15
16
  import { SS12000Map } from "./SS12000/index.js";
16
17
  import { vKlassMap } from "./vKlass/index.js";
17
18
 
18
- export { AdmentumMap, CoreMap, ExcelMap, IdunSoftMap, InfoMentorMap, PlanDigitalMap, QuiculumMap, RSMap, SS12000Map, SchoolSoftMap, SchoolityMap, SduiMap, Skola24Map, identify, maps, vKlassMap };
19
+ export { AdditioMap, AdmentumMap, CoreMap, ExcelMap, IdunSoftMap, InfoMentorMap, PlanDigitalMap, QuiculumMap, RSMap, SS12000Map, SchoolSoftMap, SchoolityMap, SduiMap, Skola24Map, identify, maps, vKlassMap };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@royalschedule/maps",
3
3
  "description": "",
4
- "version": "3.3.11",
4
+ "version": "3.3.12",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "type": "module",