@royalschedule/maps 4.0.32 → 4.1.0-beta.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.
Files changed (1230) hide show
  1. package/dist/Additio/from/courses.mjs +28 -0
  2. package/dist/Additio/from/courses.mjs.map +1 -0
  3. package/dist/Additio/from/events.mjs +61 -0
  4. package/dist/Additio/from/events.mjs.map +1 -0
  5. package/dist/Additio/from/groups.mjs +14 -0
  6. package/dist/Additio/from/groups.mjs.map +1 -0
  7. package/dist/Additio/from/index.mjs +8 -0
  8. package/dist/Additio/from/index.mjs.map +1 -0
  9. package/dist/Additio/from/locations.mjs +13 -0
  10. package/dist/Additio/from/locations.mjs.map +1 -0
  11. package/dist/Additio/from/persons.mjs +30 -0
  12. package/dist/Additio/from/persons.mjs.map +1 -0
  13. package/dist/Additio/from/schedules.d.mts +39 -0
  14. package/dist/Additio/from/schedules.mjs +34 -0
  15. package/dist/Additio/from/schedules.mjs.map +1 -0
  16. package/dist/Additio/from/teachers.mjs +25 -0
  17. package/dist/Additio/from/teachers.mjs.map +1 -0
  18. package/dist/Additio/index.d.mts +14 -0
  19. package/dist/Additio/index.mjs +12 -0
  20. package/dist/Additio/index.mjs.map +1 -0
  21. package/dist/Additio/to/index.d.mts +23 -0
  22. package/dist/Additio/to/index.mjs +10 -0
  23. package/dist/Additio/to/index.mjs.map +1 -0
  24. package/dist/Additio/to/schedules.mjs +109 -0
  25. package/dist/Additio/to/schedules.mjs.map +1 -0
  26. package/dist/Additio/types/course-sections.d.mts +20 -0
  27. package/dist/Additio/types/courses.d.mts +17 -0
  28. package/dist/Additio/types/index.d.mts +27 -0
  29. package/dist/Additio/types/lessons.d.mts +27 -0
  30. package/dist/Additio/types/options.d.mts +16 -0
  31. package/dist/Additio/types/primary-groups.d.mts +30 -0
  32. package/dist/Additio/types/rooms.d.mts +12 -0
  33. package/dist/Additio/types/schedule-groups.d.mts +23 -0
  34. package/dist/Additio/types/schedules.d.mts +27 -0
  35. package/dist/Additio/types/schools.d.mts +11 -0
  36. package/dist/Additio/types/users.d.mts +20 -0
  37. package/dist/Admentum/from/courses.mjs +32 -0
  38. package/dist/Admentum/from/courses.mjs.map +1 -0
  39. package/dist/Admentum/from/events.mjs +62 -0
  40. package/dist/Admentum/from/events.mjs.map +1 -0
  41. package/dist/Admentum/from/groups.mjs +14 -0
  42. package/dist/Admentum/from/groups.mjs.map +1 -0
  43. package/dist/Admentum/from/index.mjs +8 -0
  44. package/dist/Admentum/from/index.mjs.map +1 -0
  45. package/dist/Admentum/from/locations.mjs +13 -0
  46. package/dist/Admentum/from/locations.mjs.map +1 -0
  47. package/dist/Admentum/from/persons.mjs +30 -0
  48. package/dist/Admentum/from/persons.mjs.map +1 -0
  49. package/dist/Admentum/from/schedules.d.mts +39 -0
  50. package/dist/Admentum/from/schedules.mjs +34 -0
  51. package/dist/Admentum/from/schedules.mjs.map +1 -0
  52. package/dist/Admentum/from/teachers.mjs +25 -0
  53. package/dist/Admentum/from/teachers.mjs.map +1 -0
  54. package/dist/Admentum/index.d.mts +14 -0
  55. package/dist/Admentum/index.mjs +12 -0
  56. package/dist/Admentum/index.mjs.map +1 -0
  57. package/dist/Admentum/to/index.d.mts +20 -0
  58. package/dist/Admentum/to/index.mjs +10 -0
  59. package/dist/Admentum/to/index.mjs.map +1 -0
  60. package/dist/Admentum/to/schedules.mjs +91 -0
  61. package/dist/Admentum/to/schedules.mjs.map +1 -0
  62. package/dist/Admentum/types/course-sections.d.mts +20 -0
  63. package/dist/Admentum/types/courses.d.mts +17 -0
  64. package/dist/Admentum/types/index.d.mts +25 -0
  65. package/dist/Admentum/types/lessons.d.mts +27 -0
  66. package/dist/Admentum/types/primary-groups.d.mts +30 -0
  67. package/dist/Admentum/types/rooms.d.mts +12 -0
  68. package/dist/Admentum/types/schedule-groups.d.mts +23 -0
  69. package/dist/Admentum/types/schedules.d.mts +27 -0
  70. package/dist/Admentum/types/schools.d.mts +11 -0
  71. package/dist/Admentum/types/users.d.mts +20 -0
  72. package/dist/Excel/index.d.mts +307 -0
  73. package/dist/Excel/index.mjs +13 -0
  74. package/dist/Excel/index.mjs.map +1 -0
  75. package/dist/Excel/v1/from/index.mjs +289 -0
  76. package/dist/Excel/v1/from/index.mjs.map +1 -0
  77. package/dist/Excel/v1/index.d.mts +240 -0
  78. package/dist/Excel/v1/index.mjs +10 -0
  79. package/dist/Excel/v1/index.mjs.map +1 -0
  80. package/dist/Excel/v1/types/index.d.mts +44 -0
  81. package/dist/Excel/v2/from/index.mjs +528 -0
  82. package/dist/Excel/v2/from/index.mjs.map +1 -0
  83. package/dist/Excel/v2/index.d.mts +302 -0
  84. package/dist/Excel/v2/index.mjs +10 -0
  85. package/dist/Excel/v2/index.mjs.map +1 -0
  86. package/dist/Excel/v2/types/index.d.mts +70 -0
  87. package/dist/IdunSoft/from/courses.mjs +16 -0
  88. package/dist/IdunSoft/from/courses.mjs.map +1 -0
  89. package/dist/IdunSoft/from/events.mjs +58 -0
  90. package/dist/IdunSoft/from/events.mjs.map +1 -0
  91. package/dist/IdunSoft/from/groups.mjs +17 -0
  92. package/dist/IdunSoft/from/groups.mjs.map +1 -0
  93. package/dist/IdunSoft/from/index.mjs +8 -0
  94. package/dist/IdunSoft/from/index.mjs.map +1 -0
  95. package/dist/IdunSoft/from/locations.mjs +16 -0
  96. package/dist/IdunSoft/from/locations.mjs.map +1 -0
  97. package/dist/IdunSoft/from/schedules.d.mts +24 -0
  98. package/dist/IdunSoft/from/schedules.mjs +20 -0
  99. package/dist/IdunSoft/from/schedules.mjs.map +1 -0
  100. package/dist/IdunSoft/from/teachers.mjs +16 -0
  101. package/dist/IdunSoft/from/teachers.mjs.map +1 -0
  102. package/dist/IdunSoft/index.d.mts +14 -0
  103. package/dist/IdunSoft/index.mjs +12 -0
  104. package/dist/IdunSoft/index.mjs.map +1 -0
  105. package/dist/IdunSoft/to/index.d.mts +10 -0
  106. package/dist/IdunSoft/to/index.mjs +10 -0
  107. package/dist/IdunSoft/to/index.mjs.map +1 -0
  108. package/dist/IdunSoft/to/schedules.mjs +55 -0
  109. package/dist/IdunSoft/to/schedules.mjs.map +1 -0
  110. package/dist/IdunSoft/types/courses.d.mts +8 -0
  111. package/dist/IdunSoft/types/events.d.mts +26 -0
  112. package/dist/IdunSoft/types/groups.d.mts +8 -0
  113. package/dist/IdunSoft/types/index.d.mts +20 -0
  114. package/dist/IdunSoft/types/locations.d.mts +8 -0
  115. package/dist/IdunSoft/types/schedules.d.mts +17 -0
  116. package/dist/IdunSoft/types/teachers.d.mts +8 -0
  117. package/dist/InfoMentor/index.d.mts +10 -0
  118. package/dist/InfoMentor/index.mjs +10 -0
  119. package/dist/InfoMentor/index.mjs.map +1 -0
  120. package/dist/InfoMentor/to/index.d.mts +10 -0
  121. package/dist/InfoMentor/to/index.mjs +10 -0
  122. package/dist/InfoMentor/to/index.mjs.map +1 -0
  123. package/dist/InfoMentor/to/schedules.mjs +57 -0
  124. package/dist/InfoMentor/to/schedules.mjs.map +1 -0
  125. package/dist/InfoMentor/types/events.d.mts +13 -0
  126. package/dist/InfoMentor/types/index.d.mts +9 -0
  127. package/dist/PlanDigital/from/index.mjs +8 -0
  128. package/dist/PlanDigital/from/index.mjs.map +1 -0
  129. package/dist/PlanDigital/from/schedules.mjs +70 -0
  130. package/dist/PlanDigital/from/schedules.mjs.map +1 -0
  131. package/dist/PlanDigital/index.d.mts +129 -0
  132. package/dist/PlanDigital/index.mjs +10 -0
  133. package/dist/PlanDigital/index.mjs.map +1 -0
  134. package/dist/PlanDigital/types/index.d.mts +34 -0
  135. package/dist/Quiculum/file/index.d.mts +9 -0
  136. package/dist/Quiculum/file/index.mjs +10 -0
  137. package/dist/Quiculum/file/index.mjs.map +1 -0
  138. package/dist/Quiculum/file/to/index.d.mts +21 -0
  139. package/dist/Quiculum/file/to/index.mjs +10 -0
  140. package/dist/Quiculum/file/to/index.mjs.map +1 -0
  141. package/dist/Quiculum/file/to/schedules.mjs +87 -0
  142. package/dist/Quiculum/file/to/schedules.mjs.map +1 -0
  143. package/dist/Quiculum/index.d.mts +11 -0
  144. package/dist/Quiculum/index.mjs +11 -0
  145. package/dist/Quiculum/index.mjs.map +1 -0
  146. package/dist/RS/from/division.d.mts +8 -0
  147. package/dist/RS/from/division.mjs +17 -0
  148. package/dist/RS/from/division.mjs.map +1 -0
  149. package/dist/RS/from/index.mjs +12 -0
  150. package/dist/RS/from/index.mjs.map +1 -0
  151. package/dist/RS/from/schedules.d.mts +9 -0
  152. package/dist/RS/from/schedules.mjs +37 -0
  153. package/dist/RS/from/schedules.mjs.map +1 -0
  154. package/dist/RS/index.d.mts +18 -0
  155. package/dist/RS/index.mjs +12 -0
  156. package/dist/RS/index.mjs.map +1 -0
  157. package/dist/RS/make-connected.d.mts +25 -0
  158. package/dist/RS/make-connected.mjs +207 -0
  159. package/dist/RS/make-connected.mjs.map +1 -0
  160. package/dist/RS/to/index.mjs +8 -0
  161. package/dist/RS/to/index.mjs.map +1 -0
  162. package/dist/RS/to/initial-configuration.mjs +41 -0
  163. package/dist/RS/to/initial-configuration.mjs.map +1 -0
  164. package/dist/RS/to/input/default.mjs +28 -0
  165. package/dist/RS/to/input/default.mjs.map +1 -0
  166. package/dist/RS/to/input/dependencies.mjs +31 -0
  167. package/dist/RS/to/input/dependencies.mjs.map +1 -0
  168. package/dist/RS/to/input/events.mjs +101 -0
  169. package/dist/RS/to/input/events.mjs.map +1 -0
  170. package/dist/RS/to/input/groups.mjs +32 -0
  171. package/dist/RS/to/input/groups.mjs.map +1 -0
  172. package/dist/RS/to/input/individuals.mjs +45 -0
  173. package/dist/RS/to/input/individuals.mjs.map +1 -0
  174. package/dist/RS/to/input/input.mjs +59 -0
  175. package/dist/RS/to/input/input.mjs.map +1 -0
  176. package/dist/RS/to/input/intervals.mjs +129 -0
  177. package/dist/RS/to/input/intervals.mjs.map +1 -0
  178. package/dist/RS/to/input/linked-events-sets.mjs +96 -0
  179. package/dist/RS/to/input/linked-events-sets.mjs.map +1 -0
  180. package/dist/RS/to/input/locked-times.mjs +88 -0
  181. package/dist/RS/to/input/locked-times.mjs.map +1 -0
  182. package/dist/RS/to/input/periods.mjs +57 -0
  183. package/dist/RS/to/input/periods.mjs.map +1 -0
  184. package/dist/RS/to/input/settings.mjs +13 -0
  185. package/dist/RS/to/input/settings.mjs.map +1 -0
  186. package/dist/RS/to/input/teachers.mjs +32 -0
  187. package/dist/RS/to/input/teachers.mjs.map +1 -0
  188. package/dist/RS/to/input/util/parse-days.mjs +10 -0
  189. package/dist/RS/to/input/util/parse-days.mjs.map +1 -0
  190. package/dist/RS/to/input/util/parse-group-references.mjs +50 -0
  191. package/dist/RS/to/input/util/parse-group-references.mjs.map +1 -0
  192. package/dist/RS/to/input/util/parse-location-references.mjs +24 -0
  193. package/dist/RS/to/input/util/parse-location-references.mjs.map +1 -0
  194. package/dist/RS/to/input/util/parse-max-working-hours.mjs +14 -0
  195. package/dist/RS/to/input/util/parse-max-working-hours.mjs.map +1 -0
  196. package/dist/RS/to/input/util/parse-minimum-break-length.mjs +19 -0
  197. package/dist/RS/to/input/util/parse-minimum-break-length.mjs.map +1 -0
  198. package/dist/RS/to/input/util/util.mjs +58 -0
  199. package/dist/RS/to/input/util/util.mjs.map +1 -0
  200. package/dist/RS/to/schedules.d.mts +7 -0
  201. package/dist/RS/to/schedules.mjs +51 -0
  202. package/dist/RS/to/schedules.mjs.map +1 -0
  203. package/dist/RS/types/algorithm-parameters.d.mts +17 -0
  204. package/dist/RS/types/configurations.d.mts +10 -0
  205. package/dist/RS/types/event-configuration.d.mts +20 -0
  206. package/dist/RS/types/index.d.mts +21 -0
  207. package/dist/RS/types/schedule-data.d.mts +20 -0
  208. package/dist/RS/types/to.d.mts +64 -0
  209. package/dist/RS/types/to.mjs +6 -0
  210. package/dist/RS/types/to.mjs.map +1 -0
  211. package/dist/SS12000/from/activities.mjs +35 -0
  212. package/dist/SS12000/from/activities.mjs.map +1 -0
  213. package/dist/SS12000/from/calendar-events.mjs +20 -0
  214. package/dist/SS12000/from/calendar-events.mjs.map +1 -0
  215. package/dist/SS12000/from/duties.mjs +31 -0
  216. package/dist/SS12000/from/duties.mjs.map +1 -0
  217. package/dist/SS12000/from/groups.mjs +23 -0
  218. package/dist/SS12000/from/groups.mjs.map +1 -0
  219. package/dist/SS12000/from/index.mjs +24 -0
  220. package/dist/SS12000/from/index.mjs.map +1 -0
  221. package/dist/SS12000/from/persons.mjs +43 -0
  222. package/dist/SS12000/from/persons.mjs.map +1 -0
  223. package/dist/SS12000/from/resources.mjs +9 -0
  224. package/dist/SS12000/from/resources.mjs.map +1 -0
  225. package/dist/SS12000/from/rooms.mjs +18 -0
  226. package/dist/SS12000/from/rooms.mjs.map +1 -0
  227. package/dist/SS12000/from/syllabuses.mjs +21 -0
  228. package/dist/SS12000/from/syllabuses.mjs.map +1 -0
  229. package/dist/SS12000/index.d.mts +37 -0
  230. package/dist/SS12000/index.mjs +12 -0
  231. package/dist/SS12000/index.mjs.map +1 -0
  232. package/dist/SS12000/to/activities.mjs +63 -0
  233. package/dist/SS12000/to/activities.mjs.map +1 -0
  234. package/dist/SS12000/to/calendar-events.mjs +53 -0
  235. package/dist/SS12000/to/calendar-events.mjs.map +1 -0
  236. package/dist/SS12000/to/common.mjs +25 -0
  237. package/dist/SS12000/to/common.mjs.map +1 -0
  238. package/dist/SS12000/to/duties.mjs +45 -0
  239. package/dist/SS12000/to/duties.mjs.map +1 -0
  240. package/dist/SS12000/to/groups.mjs +49 -0
  241. package/dist/SS12000/to/groups.mjs.map +1 -0
  242. package/dist/SS12000/to/index.d.mts +57 -0
  243. package/dist/SS12000/to/index.mjs +24 -0
  244. package/dist/SS12000/to/index.mjs.map +1 -0
  245. package/dist/SS12000/to/persons.mjs +40 -0
  246. package/dist/SS12000/to/persons.mjs.map +1 -0
  247. package/dist/SS12000/to/resources.mjs +27 -0
  248. package/dist/SS12000/to/resources.mjs.map +1 -0
  249. package/dist/SS12000/to/rooms.mjs +32 -0
  250. package/dist/SS12000/to/rooms.mjs.map +1 -0
  251. package/dist/SS12000/to/syllabuses.mjs +34 -0
  252. package/dist/SS12000/to/syllabuses.mjs.map +1 -0
  253. package/dist/SS12000/types/activities.d.mts +41 -0
  254. package/dist/SS12000/types/calendar-events.d.mts +23 -0
  255. package/dist/SS12000/types/codes.d.mts +9 -0
  256. package/dist/SS12000/types/duties.d.mts +23 -0
  257. package/dist/SS12000/types/duty-assignments.d.mts +13 -0
  258. package/dist/SS12000/types/groups.d.mts +23 -0
  259. package/dist/SS12000/types/index.d.mts +21 -0
  260. package/dist/SS12000/types/organisation.d.mts +20 -0
  261. package/dist/SS12000/types/persons.d.mts +30 -0
  262. package/dist/SS12000/types/resources.d.mts +13 -0
  263. package/dist/SS12000/types/rooms.d.mts +17 -0
  264. package/dist/SS12000/types/syllabus.d.mts +19 -0
  265. package/dist/SchoolSoft/api/from/index.mjs +8 -0
  266. package/dist/SchoolSoft/api/from/index.mjs.map +1 -0
  267. package/dist/SchoolSoft/api/from/schedules.mjs +163 -0
  268. package/dist/SchoolSoft/api/from/schedules.mjs.map +1 -0
  269. package/dist/SchoolSoft/api/index.d.mts +464 -0
  270. package/dist/SchoolSoft/api/index.mjs +10 -0
  271. package/dist/SchoolSoft/api/index.mjs.map +1 -0
  272. package/dist/SchoolSoft/api/types/group.d.mts +12 -0
  273. package/dist/SchoolSoft/api/types/index.d.mts +19 -0
  274. package/dist/SchoolSoft/api/types/lesson.d.mts +9 -0
  275. package/dist/SchoolSoft/api/types/location.d.mts +8 -0
  276. package/dist/SchoolSoft/api/types/persons.d.mts +31 -0
  277. package/dist/SchoolSoft/api/types/schedule.d.mts +17 -0
  278. package/dist/SchoolSoft/api/types/teacher.d.mts +13 -0
  279. package/dist/SchoolSoft/file/from/index.mjs +8 -0
  280. package/dist/SchoolSoft/file/from/index.mjs.map +1 -0
  281. package/dist/SchoolSoft/file/from/schedules.mjs +130 -0
  282. package/dist/SchoolSoft/file/from/schedules.mjs.map +1 -0
  283. package/dist/SchoolSoft/file/index.d.mts +16 -0
  284. package/dist/SchoolSoft/file/index.mjs +12 -0
  285. package/dist/SchoolSoft/file/index.mjs.map +1 -0
  286. package/dist/SchoolSoft/file/to/index.d.mts +14 -0
  287. package/dist/SchoolSoft/file/to/index.mjs +10 -0
  288. package/dist/SchoolSoft/file/to/index.mjs.map +1 -0
  289. package/dist/SchoolSoft/file/to/schedules.mjs +106 -0
  290. package/dist/SchoolSoft/file/to/schedules.mjs.map +1 -0
  291. package/dist/SchoolSoft/file/types/events.d.mts +27 -0
  292. package/dist/SchoolSoft/file/types/index.d.mts +17 -0
  293. package/dist/SchoolSoft/file/types/persons.d.mts +31 -0
  294. package/dist/SchoolSoft/index.d.mts +21 -0
  295. package/dist/SchoolSoft/index.mjs +14 -0
  296. package/dist/SchoolSoft/index.mjs.map +1 -0
  297. package/dist/Schoolity/index.d.mts +10 -0
  298. package/dist/Schoolity/index.mjs +10 -0
  299. package/dist/Schoolity/index.mjs.map +1 -0
  300. package/dist/Schoolity/txt/index.d.mts +10 -0
  301. package/dist/Schoolity/txt/index.mjs +10 -0
  302. package/dist/Schoolity/txt/index.mjs.map +1 -0
  303. package/dist/Schoolity/txt/to/index.d.mts +11 -0
  304. package/dist/Schoolity/txt/to/index.mjs +10 -0
  305. package/dist/Schoolity/txt/to/index.mjs.map +1 -0
  306. package/dist/Schoolity/txt/to/schedules.mjs +324 -0
  307. package/dist/Schoolity/txt/to/schedules.mjs.map +1 -0
  308. package/dist/Schoolity/txt/types/index.d.mts +119 -0
  309. package/dist/Skola24/index.d.mts +13 -0
  310. package/dist/Skola24/index.mjs +12 -0
  311. package/dist/Skola24/index.mjs.map +1 -0
  312. package/dist/Skola24/mdb/from/course-and-events.mjs +239 -0
  313. package/dist/Skola24/mdb/from/course-and-events.mjs.map +1 -0
  314. package/dist/Skola24/mdb/from/groups.mjs +12 -0
  315. package/dist/Skola24/mdb/from/groups.mjs.map +1 -0
  316. package/dist/Skola24/mdb/from/index.mjs +8 -0
  317. package/dist/Skola24/mdb/from/index.mjs.map +1 -0
  318. package/dist/Skola24/mdb/from/locations.mjs +11 -0
  319. package/dist/Skola24/mdb/from/locations.mjs.map +1 -0
  320. package/dist/Skola24/mdb/from/schedule.d.mts +28 -0
  321. package/dist/Skola24/mdb/from/schedule.mjs +97 -0
  322. package/dist/Skola24/mdb/from/schedule.mjs.map +1 -0
  323. package/dist/Skola24/mdb/from/teachers.mjs +11 -0
  324. package/dist/Skola24/mdb/from/teachers.mjs.map +1 -0
  325. package/dist/Skola24/mdb/index.d.mts +12 -0
  326. package/dist/Skola24/mdb/index.mjs +10 -0
  327. package/dist/Skola24/mdb/index.mjs.map +1 -0
  328. package/dist/Skola24/mdb/types/Course.d.mts +10 -0
  329. package/dist/Skola24/mdb/types/Group-group-link.d.mts +8 -0
  330. package/dist/Skola24/mdb/types/Group.d.mts +9 -0
  331. package/dist/Skola24/mdb/types/Lesson-group-link.d.mts +8 -0
  332. package/dist/Skola24/mdb/types/Lesson-period-link.d.mts +8 -0
  333. package/dist/Skola24/mdb/types/Lesson-room-link.d.mts +8 -0
  334. package/dist/Skola24/mdb/types/Lesson-teacher-link.d.mts +8 -0
  335. package/dist/Skola24/mdb/types/Lesson.d.mts +13 -0
  336. package/dist/Skola24/mdb/types/Options.d.mts +11 -0
  337. package/dist/Skola24/mdb/types/Period.d.mts +9 -0
  338. package/dist/Skola24/mdb/types/Plan-group-link.d.mts +8 -0
  339. package/dist/Skola24/mdb/types/Plan-period-link.d.mts +8 -0
  340. package/dist/Skola24/mdb/types/Plan-teacher-link.d.mts +10 -0
  341. package/dist/Skola24/mdb/types/Plan.d.mts +9 -0
  342. package/dist/Skola24/mdb/types/Room.d.mts +9 -0
  343. package/dist/Skola24/mdb/types/Schedule.d.mts +39 -0
  344. package/dist/Skola24/mdb/types/Subject.d.mts +8 -0
  345. package/dist/Skola24/mdb/types/Teacher.d.mts +10 -0
  346. package/dist/Skola24/mdb/types/index.d.mts +23 -0
  347. package/dist/Skola24/txt/from/calendar-exceptions.mjs +67 -0
  348. package/dist/Skola24/txt/from/calendar-exceptions.mjs.map +1 -0
  349. package/dist/Skola24/txt/from/division.mjs +44 -0
  350. package/dist/Skola24/txt/from/division.mjs.map +1 -0
  351. package/dist/Skola24/txt/from/index.mjs +12 -0
  352. package/dist/Skola24/txt/from/index.mjs.map +1 -0
  353. package/dist/Skola24/txt/from/period.mjs +95 -0
  354. package/dist/Skola24/txt/from/period.mjs.map +1 -0
  355. package/dist/Skola24/txt/from/schedules.d.mts +17 -0
  356. package/dist/Skola24/txt/from/schedules.mjs +273 -0
  357. package/dist/Skola24/txt/from/schedules.mjs.map +1 -0
  358. package/dist/Skola24/txt/from/util.mjs +17 -0
  359. package/dist/Skola24/txt/from/util.mjs.map +1 -0
  360. package/dist/Skola24/txt/index.d.mts +29 -0
  361. package/dist/Skola24/txt/index.mjs +12 -0
  362. package/dist/Skola24/txt/index.mjs.map +1 -0
  363. package/dist/Skola24/txt/to/index.d.mts +11 -0
  364. package/dist/Skola24/txt/to/index.mjs +10 -0
  365. package/dist/Skola24/txt/to/index.mjs.map +1 -0
  366. package/dist/Skola24/txt/to/schedules.mjs +290 -0
  367. package/dist/Skola24/txt/to/schedules.mjs.map +1 -0
  368. package/dist/Skola24/txt/types/index.d.mts +141 -0
  369. package/dist/common/constants.mjs +8 -0
  370. package/dist/common/constants.mjs.map +1 -0
  371. package/dist/common/functions.mjs +61 -0
  372. package/dist/common/functions.mjs.map +1 -0
  373. package/dist/common/get-date.mjs +15 -0
  374. package/dist/common/get-date.mjs.map +1 -0
  375. package/dist/common/make-chainable/index.mjs +36 -0
  376. package/dist/common/make-chainable/index.mjs.map +1 -0
  377. package/dist/common/types.d.mts +38 -0
  378. package/dist/core/from/configurations.mjs +12 -0
  379. package/dist/core/from/configurations.mjs.map +1 -0
  380. package/dist/core/from/courses.mjs +12 -0
  381. package/dist/core/from/courses.mjs.map +1 -0
  382. package/dist/core/from/events.mjs +13 -0
  383. package/dist/core/from/events.mjs.map +1 -0
  384. package/dist/core/from/exceptions.mjs +12 -0
  385. package/dist/core/from/exceptions.mjs.map +1 -0
  386. package/dist/core/from/groups.mjs +12 -0
  387. package/dist/core/from/groups.mjs.map +1 -0
  388. package/dist/core/from/index.mjs +23 -0
  389. package/dist/core/from/index.mjs.map +1 -0
  390. package/dist/core/from/locations.mjs +12 -0
  391. package/dist/core/from/locations.mjs.map +1 -0
  392. package/dist/core/from/locked-times.mjs +12 -0
  393. package/dist/core/from/locked-times.mjs.map +1 -0
  394. package/dist/core/from/overlap-groups.mjs +12 -0
  395. package/dist/core/from/overlap-groups.mjs.map +1 -0
  396. package/dist/core/from/periods.mjs +12 -0
  397. package/dist/core/from/periods.mjs.map +1 -0
  398. package/dist/core/from/persons.mjs +12 -0
  399. package/dist/core/from/persons.mjs.map +1 -0
  400. package/dist/core/from/root-intervals.mjs +12 -0
  401. package/dist/core/from/root-intervals.mjs.map +1 -0
  402. package/dist/core/from/schedules.d.mts +7 -0
  403. package/dist/core/from/schedules.mjs +38 -0
  404. package/dist/core/from/schedules.mjs.map +1 -0
  405. package/dist/core/from/settings.mjs +21 -0
  406. package/dist/core/from/settings.mjs.map +1 -0
  407. package/dist/core/from/syllabuses.mjs +13 -0
  408. package/dist/core/from/syllabuses.mjs.map +1 -0
  409. package/dist/core/from/teachers.mjs +12 -0
  410. package/dist/core/from/teachers.mjs.map +1 -0
  411. package/dist/core/index.d.mts +38 -0
  412. package/dist/core/index.mjs +16 -0
  413. package/dist/core/index.mjs.map +1 -0
  414. package/dist/core/interfaces/index.d.mts +23 -0
  415. package/dist/core/interfaces/index.mjs +6 -0
  416. package/dist/core/interfaces/other/companies.d.mts +132 -0
  417. package/dist/core/interfaces/other/companies.mjs +9 -0
  418. package/dist/core/interfaces/other/companies.mjs.map +1 -0
  419. package/dist/core/interfaces/other/etc.d.mts +19 -0
  420. package/dist/core/interfaces/other/index.d.mts +6 -0
  421. package/dist/core/interfaces/other/integrations.d.mts +17 -0
  422. package/dist/core/interfaces/other/operations.d.mts +36 -0
  423. package/dist/core/interfaces/other/policies.d.mts +31 -0
  424. package/dist/core/interfaces/other/sync-logs.d.mts +21 -0
  425. package/dist/core/interfaces/other/users.d.mts +35 -0
  426. package/dist/core/interfaces/vertices/companies.d.mts +8 -0
  427. package/dist/core/interfaces/vertices/configurations.d.mts +58 -0
  428. package/dist/core/interfaces/vertices/courses.d.mts +66 -0
  429. package/dist/core/interfaces/vertices/division-settings.d.mts +54 -0
  430. package/dist/core/interfaces/vertices/divisions.d.mts +31 -0
  431. package/dist/core/interfaces/vertices/events.d.mts +104 -0
  432. package/dist/core/interfaces/vertices/exceptions.d.mts +74 -0
  433. package/dist/core/interfaces/vertices/generations.d.mts +23 -0
  434. package/dist/core/interfaces/vertices/groups.d.mts +51 -0
  435. package/dist/core/interfaces/vertices/index.d.mts +231 -0
  436. package/dist/core/interfaces/vertices/index.mjs +3 -0
  437. package/dist/core/interfaces/vertices/linked-events-sets.d.mts +19 -0
  438. package/dist/core/interfaces/vertices/locations.d.mts +22 -0
  439. package/dist/core/interfaces/vertices/locked-times.d.mts +37 -0
  440. package/dist/core/interfaces/vertices/overlap-groups.d.mts +17 -0
  441. package/dist/core/interfaces/vertices/periods.d.mts +15 -0
  442. package/dist/core/interfaces/vertices/persons.d.mts +32 -0
  443. package/dist/core/interfaces/vertices/properties/belongs-to.d.mts +11 -0
  444. package/dist/core/interfaces/vertices/properties/coalesced.d.mts +8 -0
  445. package/dist/core/interfaces/vertices/properties/days.d.mts +9 -0
  446. package/dist/core/interfaces/vertices/properties/index.d.mts +15 -0
  447. package/dist/core/interfaces/vertices/properties/intervals.d.mts +10 -0
  448. package/dist/core/interfaces/vertices/properties/maximum-schedule-span.d.mts +19 -0
  449. package/dist/core/interfaces/vertices/properties/min-break-length.d.mts +5 -0
  450. package/dist/core/interfaces/vertices/properties/planned-scheduled-duration.d.mts +13 -0
  451. package/dist/core/interfaces/vertices/properties/species.d.mts +9 -0
  452. package/dist/core/interfaces/vertices/properties/tags.d.mts +9 -0
  453. package/dist/core/interfaces/vertices/properties/week.d.mts +22 -0
  454. package/dist/core/interfaces/vertices/properties/week.mjs +6 -0
  455. package/dist/core/interfaces/vertices/properties/week.mjs.map +1 -0
  456. package/dist/core/interfaces/vertices/root-intervals.d.mts +14 -0
  457. package/dist/core/interfaces/vertices/syllabuses.d.mts +18 -0
  458. package/dist/core/interfaces/vertices/teachers.d.mts +41 -0
  459. package/dist/core/interfaces/vertices/threads.d.mts +33 -0
  460. package/dist/core/interfaces/vertices/users.d.mts +11 -0
  461. package/dist/core/interfaces/vertices/util/common.d.mts +28 -0
  462. package/dist/core/interfaces/vertices/util/custom-vertex-export/assert-no-invalid-expand-keys.d.mts +16 -0
  463. package/dist/core/interfaces/vertices/util/custom-vertex-export/index.d.mts +34 -0
  464. package/dist/core/interfaces/vertices/util/custom-vertex-export/util.d.mts +52 -0
  465. package/dist/core/interfaces/vertices/util/deep-vertex-export/index.d.mts +65 -0
  466. package/dist/core/interfaces/vertices/util/edges.d.mts +123 -0
  467. package/dist/core/interfaces/vertices/util/index.d.mts +6 -0
  468. package/dist/core/interfaces/vertices/util/keys-of.d.mts +26 -0
  469. package/dist/core/interfaces/vertices/util/serialized-vertex-export.d.mts +11 -0
  470. package/dist/core/interfaces/vertices/util/util.d.mts +79 -0
  471. package/dist/core/interfaces/vertices/util/vertex-query/index.d.mts +50 -0
  472. package/dist/core/interfaces/vertices/util/vertex-query/util.d.mts +13 -0
  473. package/dist/core/interfaces/vertices/util/vertex.d.mts +69 -0
  474. package/dist/core/interfaces/vertices/vertex-query.d.mts +112 -0
  475. package/dist/core/interfaces/vertices/vertex-query.mjs +114 -0
  476. package/dist/core/interfaces/vertices/vertex-query.mjs.map +1 -0
  477. package/dist/core/to/configurations.mjs +16 -0
  478. package/dist/core/to/configurations.mjs.map +1 -0
  479. package/dist/core/to/courses.mjs +41 -0
  480. package/dist/core/to/courses.mjs.map +1 -0
  481. package/dist/core/to/division.mjs +10 -0
  482. package/dist/core/to/division.mjs.map +1 -0
  483. package/dist/core/to/events.mjs +43 -0
  484. package/dist/core/to/events.mjs.map +1 -0
  485. package/dist/core/to/exceptions.mjs +29 -0
  486. package/dist/core/to/exceptions.mjs.map +1 -0
  487. package/dist/core/to/groups.mjs +25 -0
  488. package/dist/core/to/groups.mjs.map +1 -0
  489. package/dist/core/to/index.d.mts +9 -0
  490. package/dist/core/to/index.mjs +10 -0
  491. package/dist/core/to/index.mjs.map +1 -0
  492. package/dist/core/to/locations.mjs +21 -0
  493. package/dist/core/to/locations.mjs.map +1 -0
  494. package/dist/core/to/locked-times.mjs +20 -0
  495. package/dist/core/to/locked-times.mjs.map +1 -0
  496. package/dist/core/to/overlap-groups.mjs +27 -0
  497. package/dist/core/to/overlap-groups.mjs.map +1 -0
  498. package/dist/core/to/periods.mjs +16 -0
  499. package/dist/core/to/periods.mjs.map +1 -0
  500. package/dist/core/to/persons.mjs +17 -0
  501. package/dist/core/to/persons.mjs.map +1 -0
  502. package/dist/core/to/root-intervals.mjs +16 -0
  503. package/dist/core/to/root-intervals.mjs.map +1 -0
  504. package/dist/core/to/schedules.d.mts +47 -0
  505. package/dist/core/to/schedules.mjs +42 -0
  506. package/dist/core/to/schedules.mjs.map +1 -0
  507. package/dist/core/to/settings.mjs +18 -0
  508. package/dist/core/to/settings.mjs.map +1 -0
  509. package/dist/core/to/syllabuses.mjs +16 -0
  510. package/dist/core/to/syllabuses.mjs.map +1 -0
  511. package/dist/core/to/teachers.mjs +24 -0
  512. package/dist/core/to/teachers.mjs.map +1 -0
  513. package/dist/core/to/util.d.mts +10 -0
  514. package/dist/core/to/util.mjs +24 -0
  515. package/dist/core/to/util.mjs.map +1 -0
  516. package/dist/core/types/common/index.d.mts +8 -0
  517. package/dist/core/types/common/meta.d.mts +15 -0
  518. package/dist/core/types/index.d.mts +137 -0
  519. package/dist/core/util.mjs +46 -0
  520. package/dist/core/util.mjs.map +1 -0
  521. package/dist/identify/constants/index.d.mts +144 -0
  522. package/dist/identify/constants/index.mjs +317 -0
  523. package/dist/identify/constants/index.mjs.map +1 -0
  524. package/dist/identify/index.d.mts +8 -0
  525. package/dist/identify/index.mjs +93 -0
  526. package/dist/identify/index.mjs.map +1 -0
  527. package/dist/identify/types/index.d.mts +15 -0
  528. package/dist/index.d.mts +57 -0
  529. package/dist/index.mjs +22 -0
  530. package/dist/sdui/from/classes.mjs +8 -0
  531. package/dist/sdui/from/classes.mjs.map +1 -0
  532. package/dist/sdui/from/courses.mjs +14 -0
  533. package/dist/sdui/from/courses.mjs.map +1 -0
  534. package/dist/sdui/from/holidays.mjs +8 -0
  535. package/dist/sdui/from/holidays.mjs.map +1 -0
  536. package/dist/sdui/from/hours.mjs +6 -0
  537. package/dist/sdui/from/hours.mjs.map +1 -0
  538. package/dist/sdui/from/index.mjs +30 -0
  539. package/dist/sdui/from/index.mjs.map +1 -0
  540. package/dist/sdui/from/lessons.mjs +23 -0
  541. package/dist/sdui/from/lessons.mjs.map +1 -0
  542. package/dist/sdui/from/rooms.mjs +11 -0
  543. package/dist/sdui/from/rooms.mjs.map +1 -0
  544. package/dist/sdui/from/schedules.d.mts +21 -0
  545. package/dist/sdui/from/schedules.mjs +24 -0
  546. package/dist/sdui/from/schedules.mjs.map +1 -0
  547. package/dist/sdui/from/school-years.mjs +11 -0
  548. package/dist/sdui/from/school-years.mjs.map +1 -0
  549. package/dist/sdui/from/subjects.mjs +6 -0
  550. package/dist/sdui/from/subjects.mjs.map +1 -0
  551. package/dist/sdui/from/substitution-plans.mjs +10 -0
  552. package/dist/sdui/from/substitution-plans.mjs.map +1 -0
  553. package/dist/sdui/from/teachers.mjs +15 -0
  554. package/dist/sdui/from/teachers.mjs.map +1 -0
  555. package/dist/sdui/index.d.mts +32 -0
  556. package/dist/sdui/index.mjs +12 -0
  557. package/dist/sdui/index.mjs.map +1 -0
  558. package/dist/sdui/to/classes.mjs +10 -0
  559. package/dist/sdui/to/classes.mjs.map +1 -0
  560. package/dist/sdui/to/courses.mjs +16 -0
  561. package/dist/sdui/to/courses.mjs.map +1 -0
  562. package/dist/sdui/to/holidays.mjs +16 -0
  563. package/dist/sdui/to/holidays.mjs.map +1 -0
  564. package/dist/sdui/to/hours.mjs +15 -0
  565. package/dist/sdui/to/hours.mjs.map +1 -0
  566. package/dist/sdui/to/index.d.mts +22 -0
  567. package/dist/sdui/to/index.mjs +30 -0
  568. package/dist/sdui/to/index.mjs.map +1 -0
  569. package/dist/sdui/to/lessons.mjs +24 -0
  570. package/dist/sdui/to/lessons.mjs.map +1 -0
  571. package/dist/sdui/to/rooms.mjs +13 -0
  572. package/dist/sdui/to/rooms.mjs.map +1 -0
  573. package/dist/sdui/to/schedules.mjs +26 -0
  574. package/dist/sdui/to/schedules.mjs.map +1 -0
  575. package/dist/sdui/to/school-years.mjs +18 -0
  576. package/dist/sdui/to/school-years.mjs.map +1 -0
  577. package/dist/sdui/to/subjects.mjs +8 -0
  578. package/dist/sdui/to/subjects.mjs.map +1 -0
  579. package/dist/sdui/to/substitution-plans.mjs +46 -0
  580. package/dist/sdui/to/substitution-plans.mjs.map +1 -0
  581. package/dist/sdui/to/teachers.mjs +20 -0
  582. package/dist/sdui/to/teachers.mjs.map +1 -0
  583. package/dist/sdui/types/classes.d.mts +8 -0
  584. package/dist/sdui/types/courses.d.mts +12 -0
  585. package/dist/sdui/types/holidays.d.mts +10 -0
  586. package/dist/sdui/types/hours.d.mts +10 -0
  587. package/dist/sdui/types/index.d.mts +31 -0
  588. package/dist/sdui/types/lessons.d.mts +13 -0
  589. package/dist/sdui/types/rooms.d.mts +9 -0
  590. package/dist/sdui/types/schedules.d.mts +27 -0
  591. package/dist/sdui/types/school-years.d.mts +9 -0
  592. package/dist/sdui/types/subjects.d.mts +9 -0
  593. package/dist/sdui/types/substitution-plans.d.mts +30 -0
  594. package/dist/sdui/types/teachers.d.mts +10 -0
  595. package/dist/vKlass/from/index.mjs +8 -0
  596. package/dist/vKlass/from/index.mjs.map +1 -0
  597. package/dist/vKlass/from/schedule.d.mts +24 -0
  598. package/dist/vKlass/from/schedule.mjs +71 -0
  599. package/dist/vKlass/from/schedule.mjs.map +1 -0
  600. package/dist/vKlass/index.d.mts +13 -0
  601. package/dist/vKlass/index.mjs +12 -0
  602. package/dist/vKlass/index.mjs.map +1 -0
  603. package/dist/vKlass/to/index.d.mts +9 -0
  604. package/dist/vKlass/to/index.mjs +10 -0
  605. package/dist/vKlass/to/index.mjs.map +1 -0
  606. package/dist/vKlass/to/schedules.d.mts +14 -0
  607. package/dist/vKlass/to/schedules.mjs +82 -0
  608. package/dist/vKlass/to/schedules.mjs.map +1 -0
  609. package/dist/vKlass/types/index.d.mts +53 -0
  610. package/package.json +29 -24
  611. package/dist/Additio/from/courses.js +0 -28
  612. package/dist/Additio/from/courses.js.map +0 -1
  613. package/dist/Additio/from/events.js +0 -61
  614. package/dist/Additio/from/events.js.map +0 -1
  615. package/dist/Additio/from/groups.js +0 -14
  616. package/dist/Additio/from/groups.js.map +0 -1
  617. package/dist/Additio/from/index.js +0 -8
  618. package/dist/Additio/from/index.js.map +0 -1
  619. package/dist/Additio/from/locations.js +0 -13
  620. package/dist/Additio/from/locations.js.map +0 -1
  621. package/dist/Additio/from/persons.js +0 -30
  622. package/dist/Additio/from/persons.js.map +0 -1
  623. package/dist/Additio/from/schedules.d.ts +0 -38
  624. package/dist/Additio/from/schedules.js +0 -36
  625. package/dist/Additio/from/schedules.js.map +0 -1
  626. package/dist/Additio/from/teachers.js +0 -25
  627. package/dist/Additio/from/teachers.js.map +0 -1
  628. package/dist/Additio/index.d.ts +0 -14
  629. package/dist/Additio/index.js +0 -12
  630. package/dist/Additio/index.js.map +0 -1
  631. package/dist/Additio/to/index.d.ts +0 -21
  632. package/dist/Additio/to/index.js +0 -10
  633. package/dist/Additio/to/index.js.map +0 -1
  634. package/dist/Additio/to/schedules.js +0 -111
  635. package/dist/Additio/to/schedules.js.map +0 -1
  636. package/dist/Additio/types/course-sections.d.ts +0 -20
  637. package/dist/Additio/types/courses.d.ts +0 -17
  638. package/dist/Additio/types/index.d.ts +0 -27
  639. package/dist/Additio/types/lessons.d.ts +0 -27
  640. package/dist/Additio/types/options.d.ts +0 -16
  641. package/dist/Additio/types/primary-groups.d.ts +0 -30
  642. package/dist/Additio/types/rooms.d.ts +0 -12
  643. package/dist/Additio/types/schedule-groups.d.ts +0 -23
  644. package/dist/Additio/types/schedules.d.ts +0 -27
  645. package/dist/Additio/types/schools.d.ts +0 -11
  646. package/dist/Additio/types/users.d.ts +0 -20
  647. package/dist/Admentum/from/courses.js +0 -32
  648. package/dist/Admentum/from/courses.js.map +0 -1
  649. package/dist/Admentum/from/events.js +0 -62
  650. package/dist/Admentum/from/events.js.map +0 -1
  651. package/dist/Admentum/from/groups.js +0 -14
  652. package/dist/Admentum/from/groups.js.map +0 -1
  653. package/dist/Admentum/from/index.js +0 -8
  654. package/dist/Admentum/from/index.js.map +0 -1
  655. package/dist/Admentum/from/locations.js +0 -13
  656. package/dist/Admentum/from/locations.js.map +0 -1
  657. package/dist/Admentum/from/persons.js +0 -30
  658. package/dist/Admentum/from/persons.js.map +0 -1
  659. package/dist/Admentum/from/schedules.d.ts +0 -38
  660. package/dist/Admentum/from/schedules.js +0 -37
  661. package/dist/Admentum/from/schedules.js.map +0 -1
  662. package/dist/Admentum/from/teachers.js +0 -25
  663. package/dist/Admentum/from/teachers.js.map +0 -1
  664. package/dist/Admentum/index.d.ts +0 -14
  665. package/dist/Admentum/index.js +0 -12
  666. package/dist/Admentum/index.js.map +0 -1
  667. package/dist/Admentum/to/index.d.ts +0 -19
  668. package/dist/Admentum/to/index.js +0 -10
  669. package/dist/Admentum/to/index.js.map +0 -1
  670. package/dist/Admentum/to/schedules.js +0 -94
  671. package/dist/Admentum/to/schedules.js.map +0 -1
  672. package/dist/Admentum/types/course-sections.d.ts +0 -20
  673. package/dist/Admentum/types/courses.d.ts +0 -17
  674. package/dist/Admentum/types/index.d.ts +0 -25
  675. package/dist/Admentum/types/lessons.d.ts +0 -27
  676. package/dist/Admentum/types/primary-groups.d.ts +0 -30
  677. package/dist/Admentum/types/rooms.d.ts +0 -12
  678. package/dist/Admentum/types/schedule-groups.d.ts +0 -23
  679. package/dist/Admentum/types/schedules.d.ts +0 -27
  680. package/dist/Admentum/types/schools.d.ts +0 -11
  681. package/dist/Admentum/types/users.d.ts +0 -20
  682. package/dist/Excel/index.d.ts +0 -305
  683. package/dist/Excel/index.js +0 -13
  684. package/dist/Excel/index.js.map +0 -1
  685. package/dist/Excel/v1/from/index.js +0 -289
  686. package/dist/Excel/v1/from/index.js.map +0 -1
  687. package/dist/Excel/v1/index.d.ts +0 -238
  688. package/dist/Excel/v1/index.js +0 -10
  689. package/dist/Excel/v1/index.js.map +0 -1
  690. package/dist/Excel/v1/types/index.d.ts +0 -44
  691. package/dist/Excel/v2/from/index.js +0 -537
  692. package/dist/Excel/v2/from/index.js.map +0 -1
  693. package/dist/Excel/v2/index.d.ts +0 -300
  694. package/dist/Excel/v2/index.js +0 -10
  695. package/dist/Excel/v2/index.js.map +0 -1
  696. package/dist/Excel/v2/types/index.d.ts +0 -70
  697. package/dist/IdunSoft/from/courses.js +0 -16
  698. package/dist/IdunSoft/from/courses.js.map +0 -1
  699. package/dist/IdunSoft/from/events.js +0 -59
  700. package/dist/IdunSoft/from/events.js.map +0 -1
  701. package/dist/IdunSoft/from/groups.js +0 -17
  702. package/dist/IdunSoft/from/groups.js.map +0 -1
  703. package/dist/IdunSoft/from/index.js +0 -8
  704. package/dist/IdunSoft/from/index.js.map +0 -1
  705. package/dist/IdunSoft/from/locations.js +0 -16
  706. package/dist/IdunSoft/from/locations.js.map +0 -1
  707. package/dist/IdunSoft/from/schedules.d.ts +0 -23
  708. package/dist/IdunSoft/from/schedules.js +0 -20
  709. package/dist/IdunSoft/from/schedules.js.map +0 -1
  710. package/dist/IdunSoft/from/teachers.js +0 -16
  711. package/dist/IdunSoft/from/teachers.js.map +0 -1
  712. package/dist/IdunSoft/index.d.ts +0 -14
  713. package/dist/IdunSoft/index.js +0 -12
  714. package/dist/IdunSoft/index.js.map +0 -1
  715. package/dist/IdunSoft/to/index.d.ts +0 -9
  716. package/dist/IdunSoft/to/index.js +0 -10
  717. package/dist/IdunSoft/to/index.js.map +0 -1
  718. package/dist/IdunSoft/to/schedules.js +0 -58
  719. package/dist/IdunSoft/to/schedules.js.map +0 -1
  720. package/dist/IdunSoft/types/courses.d.ts +0 -8
  721. package/dist/IdunSoft/types/events.d.ts +0 -26
  722. package/dist/IdunSoft/types/groups.d.ts +0 -8
  723. package/dist/IdunSoft/types/index.d.ts +0 -20
  724. package/dist/IdunSoft/types/locations.d.ts +0 -8
  725. package/dist/IdunSoft/types/schedules.d.ts +0 -17
  726. package/dist/IdunSoft/types/teachers.d.ts +0 -8
  727. package/dist/InfoMentor/index.d.ts +0 -10
  728. package/dist/InfoMentor/index.js +0 -10
  729. package/dist/InfoMentor/index.js.map +0 -1
  730. package/dist/InfoMentor/to/index.d.ts +0 -9
  731. package/dist/InfoMentor/to/index.js +0 -10
  732. package/dist/InfoMentor/to/index.js.map +0 -1
  733. package/dist/InfoMentor/to/schedules.js +0 -58
  734. package/dist/InfoMentor/to/schedules.js.map +0 -1
  735. package/dist/InfoMentor/types/events.d.ts +0 -13
  736. package/dist/InfoMentor/types/index.d.ts +0 -9
  737. package/dist/PlanDigital/from/index.js +0 -8
  738. package/dist/PlanDigital/from/index.js.map +0 -1
  739. package/dist/PlanDigital/from/schedules.js +0 -72
  740. package/dist/PlanDigital/from/schedules.js.map +0 -1
  741. package/dist/PlanDigital/index.d.ts +0 -128
  742. package/dist/PlanDigital/index.js +0 -10
  743. package/dist/PlanDigital/index.js.map +0 -1
  744. package/dist/PlanDigital/types/index.d.ts +0 -34
  745. package/dist/Quiculum/file/index.d.ts +0 -9
  746. package/dist/Quiculum/file/index.js +0 -10
  747. package/dist/Quiculum/file/index.js.map +0 -1
  748. package/dist/Quiculum/file/to/index.d.ts +0 -20
  749. package/dist/Quiculum/file/to/index.js +0 -10
  750. package/dist/Quiculum/file/to/index.js.map +0 -1
  751. package/dist/Quiculum/file/to/schedules.js +0 -91
  752. package/dist/Quiculum/file/to/schedules.js.map +0 -1
  753. package/dist/Quiculum/index.d.ts +0 -11
  754. package/dist/Quiculum/index.js +0 -11
  755. package/dist/Quiculum/index.js.map +0 -1
  756. package/dist/RS/from/division.d.ts +0 -7
  757. package/dist/RS/from/division.js +0 -18
  758. package/dist/RS/from/division.js.map +0 -1
  759. package/dist/RS/from/index.js +0 -12
  760. package/dist/RS/from/index.js.map +0 -1
  761. package/dist/RS/from/schedules.d.ts +0 -8
  762. package/dist/RS/from/schedules.js +0 -37
  763. package/dist/RS/from/schedules.js.map +0 -1
  764. package/dist/RS/index.d.ts +0 -18
  765. package/dist/RS/index.js +0 -12
  766. package/dist/RS/index.js.map +0 -1
  767. package/dist/RS/make-connected.d.ts +0 -23
  768. package/dist/RS/make-connected.js +0 -232
  769. package/dist/RS/make-connected.js.map +0 -1
  770. package/dist/RS/to/index.js +0 -8
  771. package/dist/RS/to/index.js.map +0 -1
  772. package/dist/RS/to/initial-configuration.js +0 -43
  773. package/dist/RS/to/initial-configuration.js.map +0 -1
  774. package/dist/RS/to/input/collections.js +0 -58
  775. package/dist/RS/to/input/collections.js.map +0 -1
  776. package/dist/RS/to/input/default.js +0 -35
  777. package/dist/RS/to/input/default.js.map +0 -1
  778. package/dist/RS/to/input/dependencies.js +0 -31
  779. package/dist/RS/to/input/dependencies.js.map +0 -1
  780. package/dist/RS/to/input/dynamic-locked-times.js +0 -70
  781. package/dist/RS/to/input/dynamic-locked-times.js.map +0 -1
  782. package/dist/RS/to/input/events.js +0 -90
  783. package/dist/RS/to/input/events.js.map +0 -1
  784. package/dist/RS/to/input/groups.js +0 -40
  785. package/dist/RS/to/input/groups.js.map +0 -1
  786. package/dist/RS/to/input/individuals.js +0 -49
  787. package/dist/RS/to/input/individuals.js.map +0 -1
  788. package/dist/RS/to/input/input.js +0 -54
  789. package/dist/RS/to/input/input.js.map +0 -1
  790. package/dist/RS/to/input/intervals.js +0 -131
  791. package/dist/RS/to/input/intervals.js.map +0 -1
  792. package/dist/RS/to/input/periods.js +0 -91
  793. package/dist/RS/to/input/periods.js.map +0 -1
  794. package/dist/RS/to/input/settings.js +0 -20
  795. package/dist/RS/to/input/settings.js.map +0 -1
  796. package/dist/RS/to/input/teachers.js +0 -40
  797. package/dist/RS/to/input/teachers.js.map +0 -1
  798. package/dist/RS/to/input/util/attach-locked-times.js +0 -27
  799. package/dist/RS/to/input/util/attach-locked-times.js.map +0 -1
  800. package/dist/RS/to/input/util/parse-days.js +0 -10
  801. package/dist/RS/to/input/util/parse-days.js.map +0 -1
  802. package/dist/RS/to/input/util/parse-group-references.js +0 -58
  803. package/dist/RS/to/input/util/parse-group-references.js.map +0 -1
  804. package/dist/RS/to/input/util/parse-intervals.js +0 -58
  805. package/dist/RS/to/input/util/parse-intervals.js.map +0 -1
  806. package/dist/RS/to/input/util/parse-location-references.js +0 -31
  807. package/dist/RS/to/input/util/parse-location-references.js.map +0 -1
  808. package/dist/RS/to/input/util/parse-max-working-hours.js +0 -17
  809. package/dist/RS/to/input/util/parse-max-working-hours.js.map +0 -1
  810. package/dist/RS/to/input/util/parse-minimum-break-length.js +0 -19
  811. package/dist/RS/to/input/util/parse-minimum-break-length.js.map +0 -1
  812. package/dist/RS/to/input/util/util.js +0 -66
  813. package/dist/RS/to/input/util/util.js.map +0 -1
  814. package/dist/RS/to/schedules.d.ts +0 -7
  815. package/dist/RS/to/schedules.js +0 -51
  816. package/dist/RS/to/schedules.js.map +0 -1
  817. package/dist/RS/types/algorithm-parameters.d.ts +0 -18
  818. package/dist/RS/types/collections.d.ts +0 -33
  819. package/dist/RS/types/configurations.d.ts +0 -10
  820. package/dist/RS/types/default.d.ts +0 -31
  821. package/dist/RS/types/dependencies.d.ts +0 -16
  822. package/dist/RS/types/event-configuration.d.ts +0 -20
  823. package/dist/RS/types/events.d.ts +0 -34
  824. package/dist/RS/types/groups.d.ts +0 -27
  825. package/dist/RS/types/index.d.ts +0 -50
  826. package/dist/RS/types/individuals.d.ts +0 -16
  827. package/dist/RS/types/locked-times.d.ts +0 -12
  828. package/dist/RS/types/period.d.ts +0 -27
  829. package/dist/RS/types/root-intervals.d.ts +0 -10
  830. package/dist/RS/types/schedule-data.d.ts +0 -23
  831. package/dist/RS/types/settings.d.ts +0 -15
  832. package/dist/RS/types/shared.d.ts +0 -27
  833. package/dist/RS/types/to.d.ts +0 -72
  834. package/dist/RS/types/to.js +0 -6
  835. package/dist/RS/types/to.js.map +0 -1
  836. package/dist/SS12000/from/activities.js +0 -36
  837. package/dist/SS12000/from/activities.js.map +0 -1
  838. package/dist/SS12000/from/calendar-events.js +0 -20
  839. package/dist/SS12000/from/calendar-events.js.map +0 -1
  840. package/dist/SS12000/from/duties.js +0 -31
  841. package/dist/SS12000/from/duties.js.map +0 -1
  842. package/dist/SS12000/from/groups.js +0 -23
  843. package/dist/SS12000/from/groups.js.map +0 -1
  844. package/dist/SS12000/from/index.js +0 -24
  845. package/dist/SS12000/from/index.js.map +0 -1
  846. package/dist/SS12000/from/persons.js +0 -43
  847. package/dist/SS12000/from/persons.js.map +0 -1
  848. package/dist/SS12000/from/resources.js +0 -9
  849. package/dist/SS12000/from/resources.js.map +0 -1
  850. package/dist/SS12000/from/rooms.js +0 -18
  851. package/dist/SS12000/from/rooms.js.map +0 -1
  852. package/dist/SS12000/from/syllabuses.js +0 -21
  853. package/dist/SS12000/from/syllabuses.js.map +0 -1
  854. package/dist/SS12000/index.d.ts +0 -12774
  855. package/dist/SS12000/index.js +0 -12
  856. package/dist/SS12000/index.js.map +0 -1
  857. package/dist/SS12000/to/activities.js +0 -63
  858. package/dist/SS12000/to/activities.js.map +0 -1
  859. package/dist/SS12000/to/calendar-events.js +0 -53
  860. package/dist/SS12000/to/calendar-events.js.map +0 -1
  861. package/dist/SS12000/to/common.js +0 -25
  862. package/dist/SS12000/to/common.js.map +0 -1
  863. package/dist/SS12000/to/duties.js +0 -45
  864. package/dist/SS12000/to/duties.js.map +0 -1
  865. package/dist/SS12000/to/groups.js +0 -49
  866. package/dist/SS12000/to/groups.js.map +0 -1
  867. package/dist/SS12000/to/index.d.ts +0 -56
  868. package/dist/SS12000/to/index.js +0 -24
  869. package/dist/SS12000/to/index.js.map +0 -1
  870. package/dist/SS12000/to/persons.js +0 -40
  871. package/dist/SS12000/to/persons.js.map +0 -1
  872. package/dist/SS12000/to/resources.js +0 -27
  873. package/dist/SS12000/to/resources.js.map +0 -1
  874. package/dist/SS12000/to/rooms.js +0 -32
  875. package/dist/SS12000/to/rooms.js.map +0 -1
  876. package/dist/SS12000/to/syllabuses.js +0 -34
  877. package/dist/SS12000/to/syllabuses.js.map +0 -1
  878. package/dist/SS12000/types/activities.d.ts +0 -41
  879. package/dist/SS12000/types/calendar-events.d.ts +0 -23
  880. package/dist/SS12000/types/codes.d.ts +0 -9
  881. package/dist/SS12000/types/duties.d.ts +0 -23
  882. package/dist/SS12000/types/duty-assignments.d.ts +0 -13
  883. package/dist/SS12000/types/groups.d.ts +0 -23
  884. package/dist/SS12000/types/index.d.ts +0 -21
  885. package/dist/SS12000/types/organisation.d.ts +0 -20
  886. package/dist/SS12000/types/persons.d.ts +0 -30
  887. package/dist/SS12000/types/resources.d.ts +0 -13
  888. package/dist/SS12000/types/rooms.d.ts +0 -17
  889. package/dist/SS12000/types/syllabus.d.ts +0 -19
  890. package/dist/SchoolSoft/api/from/index.js +0 -8
  891. package/dist/SchoolSoft/api/from/index.js.map +0 -1
  892. package/dist/SchoolSoft/api/from/schedules.js +0 -167
  893. package/dist/SchoolSoft/api/from/schedules.js.map +0 -1
  894. package/dist/SchoolSoft/api/index.d.ts +0 -461
  895. package/dist/SchoolSoft/api/index.js +0 -10
  896. package/dist/SchoolSoft/api/index.js.map +0 -1
  897. package/dist/SchoolSoft/api/types/group.d.ts +0 -12
  898. package/dist/SchoolSoft/api/types/index.d.ts +0 -19
  899. package/dist/SchoolSoft/api/types/lesson.d.ts +0 -9
  900. package/dist/SchoolSoft/api/types/location.d.ts +0 -8
  901. package/dist/SchoolSoft/api/types/persons.d.ts +0 -31
  902. package/dist/SchoolSoft/api/types/schedule.d.ts +0 -17
  903. package/dist/SchoolSoft/api/types/teacher.d.ts +0 -13
  904. package/dist/SchoolSoft/file/from/index.js +0 -8
  905. package/dist/SchoolSoft/file/from/index.js.map +0 -1
  906. package/dist/SchoolSoft/file/from/schedules.js +0 -134
  907. package/dist/SchoolSoft/file/from/schedules.js.map +0 -1
  908. package/dist/SchoolSoft/file/index.d.ts +0 -15
  909. package/dist/SchoolSoft/file/index.js +0 -12
  910. package/dist/SchoolSoft/file/index.js.map +0 -1
  911. package/dist/SchoolSoft/file/to/index.d.ts +0 -13
  912. package/dist/SchoolSoft/file/to/index.js +0 -10
  913. package/dist/SchoolSoft/file/to/index.js.map +0 -1
  914. package/dist/SchoolSoft/file/to/schedules.js +0 -107
  915. package/dist/SchoolSoft/file/to/schedules.js.map +0 -1
  916. package/dist/SchoolSoft/file/types/events.d.ts +0 -27
  917. package/dist/SchoolSoft/file/types/index.d.ts +0 -17
  918. package/dist/SchoolSoft/file/types/persons.d.ts +0 -31
  919. package/dist/SchoolSoft/index.d.ts +0 -20
  920. package/dist/SchoolSoft/index.js +0 -14
  921. package/dist/SchoolSoft/index.js.map +0 -1
  922. package/dist/Schoolity/index.d.ts +0 -10
  923. package/dist/Schoolity/index.js +0 -10
  924. package/dist/Schoolity/index.js.map +0 -1
  925. package/dist/Schoolity/txt/index.d.ts +0 -10
  926. package/dist/Schoolity/txt/index.js +0 -10
  927. package/dist/Schoolity/txt/index.js.map +0 -1
  928. package/dist/Schoolity/txt/to/index.d.ts +0 -10
  929. package/dist/Schoolity/txt/to/index.js +0 -10
  930. package/dist/Schoolity/txt/to/index.js.map +0 -1
  931. package/dist/Schoolity/txt/to/schedules.js +0 -331
  932. package/dist/Schoolity/txt/to/schedules.js.map +0 -1
  933. package/dist/Schoolity/txt/types/index.d.ts +0 -119
  934. package/dist/Skola24/index.d.ts +0 -13
  935. package/dist/Skola24/index.js +0 -12
  936. package/dist/Skola24/index.js.map +0 -1
  937. package/dist/Skola24/mdb/from/course-and-events.js +0 -241
  938. package/dist/Skola24/mdb/from/course-and-events.js.map +0 -1
  939. package/dist/Skola24/mdb/from/groups.js +0 -12
  940. package/dist/Skola24/mdb/from/groups.js.map +0 -1
  941. package/dist/Skola24/mdb/from/index.js +0 -8
  942. package/dist/Skola24/mdb/from/index.js.map +0 -1
  943. package/dist/Skola24/mdb/from/locations.js +0 -11
  944. package/dist/Skola24/mdb/from/locations.js.map +0 -1
  945. package/dist/Skola24/mdb/from/schedule.d.ts +0 -27
  946. package/dist/Skola24/mdb/from/schedule.js +0 -97
  947. package/dist/Skola24/mdb/from/schedule.js.map +0 -1
  948. package/dist/Skola24/mdb/from/teachers.js +0 -11
  949. package/dist/Skola24/mdb/from/teachers.js.map +0 -1
  950. package/dist/Skola24/mdb/index.d.ts +0 -12
  951. package/dist/Skola24/mdb/index.js +0 -10
  952. package/dist/Skola24/mdb/index.js.map +0 -1
  953. package/dist/Skola24/mdb/types/Course.d.ts +0 -10
  954. package/dist/Skola24/mdb/types/Group-group-link.d.ts +0 -8
  955. package/dist/Skola24/mdb/types/Group.d.ts +0 -9
  956. package/dist/Skola24/mdb/types/Lesson-group-link.d.ts +0 -8
  957. package/dist/Skola24/mdb/types/Lesson-period-link.d.ts +0 -8
  958. package/dist/Skola24/mdb/types/Lesson-room-link.d.ts +0 -8
  959. package/dist/Skola24/mdb/types/Lesson-teacher-link.d.ts +0 -8
  960. package/dist/Skola24/mdb/types/Lesson.d.ts +0 -13
  961. package/dist/Skola24/mdb/types/Options.d.ts +0 -11
  962. package/dist/Skola24/mdb/types/Period.d.ts +0 -9
  963. package/dist/Skola24/mdb/types/Plan-group-link.d.ts +0 -8
  964. package/dist/Skola24/mdb/types/Plan-period-link.d.ts +0 -8
  965. package/dist/Skola24/mdb/types/Plan-teacher-link.d.ts +0 -10
  966. package/dist/Skola24/mdb/types/Plan.d.ts +0 -9
  967. package/dist/Skola24/mdb/types/Room.d.ts +0 -9
  968. package/dist/Skola24/mdb/types/Schedule.d.ts +0 -39
  969. package/dist/Skola24/mdb/types/Subject.d.ts +0 -8
  970. package/dist/Skola24/mdb/types/Teacher.d.ts +0 -10
  971. package/dist/Skola24/mdb/types/index.d.ts +0 -23
  972. package/dist/Skola24/txt/from/calendar-exceptions.js +0 -68
  973. package/dist/Skola24/txt/from/calendar-exceptions.js.map +0 -1
  974. package/dist/Skola24/txt/from/division.js +0 -44
  975. package/dist/Skola24/txt/from/division.js.map +0 -1
  976. package/dist/Skola24/txt/from/index.js +0 -12
  977. package/dist/Skola24/txt/from/index.js.map +0 -1
  978. package/dist/Skola24/txt/from/period.js +0 -98
  979. package/dist/Skola24/txt/from/period.js.map +0 -1
  980. package/dist/Skola24/txt/from/schedules.d.ts +0 -16
  981. package/dist/Skola24/txt/from/schedules.js +0 -277
  982. package/dist/Skola24/txt/from/schedules.js.map +0 -1
  983. package/dist/Skola24/txt/from/util.js +0 -17
  984. package/dist/Skola24/txt/from/util.js.map +0 -1
  985. package/dist/Skola24/txt/index.d.ts +0 -28
  986. package/dist/Skola24/txt/index.js +0 -12
  987. package/dist/Skola24/txt/index.js.map +0 -1
  988. package/dist/Skola24/txt/to/index.d.ts +0 -10
  989. package/dist/Skola24/txt/to/index.js +0 -10
  990. package/dist/Skola24/txt/to/index.js.map +0 -1
  991. package/dist/Skola24/txt/to/schedules.js +0 -297
  992. package/dist/Skola24/txt/to/schedules.js.map +0 -1
  993. package/dist/Skola24/txt/types/index.d.ts +0 -141
  994. package/dist/common/constants.js +0 -8
  995. package/dist/common/constants.js.map +0 -1
  996. package/dist/common/functions.js +0 -61
  997. package/dist/common/functions.js.map +0 -1
  998. package/dist/common/get-date.js +0 -15
  999. package/dist/common/get-date.js.map +0 -1
  1000. package/dist/common/make-chainable/index.js +0 -36
  1001. package/dist/common/make-chainable/index.js.map +0 -1
  1002. package/dist/common/types.d.ts +0 -18
  1003. package/dist/core/from/configurations.js +0 -12
  1004. package/dist/core/from/configurations.js.map +0 -1
  1005. package/dist/core/from/courses.js +0 -12
  1006. package/dist/core/from/courses.js.map +0 -1
  1007. package/dist/core/from/events.js +0 -13
  1008. package/dist/core/from/events.js.map +0 -1
  1009. package/dist/core/from/exceptions.js +0 -12
  1010. package/dist/core/from/exceptions.js.map +0 -1
  1011. package/dist/core/from/groups.js +0 -12
  1012. package/dist/core/from/groups.js.map +0 -1
  1013. package/dist/core/from/index.js +0 -23
  1014. package/dist/core/from/index.js.map +0 -1
  1015. package/dist/core/from/locations.js +0 -12
  1016. package/dist/core/from/locations.js.map +0 -1
  1017. package/dist/core/from/locked-times.js +0 -12
  1018. package/dist/core/from/locked-times.js.map +0 -1
  1019. package/dist/core/from/overlap-groups.js +0 -12
  1020. package/dist/core/from/overlap-groups.js.map +0 -1
  1021. package/dist/core/from/periods.js +0 -12
  1022. package/dist/core/from/periods.js.map +0 -1
  1023. package/dist/core/from/persons.js +0 -12
  1024. package/dist/core/from/persons.js.map +0 -1
  1025. package/dist/core/from/root-intervals.js +0 -12
  1026. package/dist/core/from/root-intervals.js.map +0 -1
  1027. package/dist/core/from/schedules.d.ts +0 -7
  1028. package/dist/core/from/schedules.js +0 -38
  1029. package/dist/core/from/schedules.js.map +0 -1
  1030. package/dist/core/from/settings.js +0 -21
  1031. package/dist/core/from/settings.js.map +0 -1
  1032. package/dist/core/from/syllabuses.js +0 -13
  1033. package/dist/core/from/syllabuses.js.map +0 -1
  1034. package/dist/core/from/teachers.js +0 -12
  1035. package/dist/core/from/teachers.js.map +0 -1
  1036. package/dist/core/index.d.ts +0 -37
  1037. package/dist/core/index.js +0 -16
  1038. package/dist/core/index.js.map +0 -1
  1039. package/dist/core/interfaces/index.js +0 -6
  1040. package/dist/core/interfaces/other/companies.d.ts +0 -132
  1041. package/dist/core/interfaces/other/companies.js +0 -9
  1042. package/dist/core/interfaces/other/companies.js.map +0 -1
  1043. package/dist/core/interfaces/other/etc.d.ts +0 -19
  1044. package/dist/core/interfaces/other/integrations.d.ts +0 -17
  1045. package/dist/core/interfaces/other/operations.d.ts +0 -35
  1046. package/dist/core/interfaces/other/policies.d.ts +0 -31
  1047. package/dist/core/interfaces/other/sync-logs.d.ts +0 -21
  1048. package/dist/core/interfaces/other/users.d.ts +0 -35
  1049. package/dist/core/interfaces/vertices/companies.d.ts +0 -7
  1050. package/dist/core/interfaces/vertices/configurations.d.ts +0 -57
  1051. package/dist/core/interfaces/vertices/courses.d.ts +0 -67
  1052. package/dist/core/interfaces/vertices/division-settings.d.ts +0 -55
  1053. package/dist/core/interfaces/vertices/divisions.d.ts +0 -30
  1054. package/dist/core/interfaces/vertices/events.d.ts +0 -101
  1055. package/dist/core/interfaces/vertices/exceptions.d.ts +0 -73
  1056. package/dist/core/interfaces/vertices/generations.d.ts +0 -21
  1057. package/dist/core/interfaces/vertices/groups.d.ts +0 -52
  1058. package/dist/core/interfaces/vertices/index.d.ts +0 -222
  1059. package/dist/core/interfaces/vertices/index.js +0 -3
  1060. package/dist/core/interfaces/vertices/locations.d.ts +0 -21
  1061. package/dist/core/interfaces/vertices/locked-times.d.ts +0 -35
  1062. package/dist/core/interfaces/vertices/overlap-groups.d.ts +0 -16
  1063. package/dist/core/interfaces/vertices/periods.d.ts +0 -13
  1064. package/dist/core/interfaces/vertices/persons.d.ts +0 -31
  1065. package/dist/core/interfaces/vertices/properties/belongs-to.d.ts +0 -10
  1066. package/dist/core/interfaces/vertices/properties/coalesced.d.ts +0 -7
  1067. package/dist/core/interfaces/vertices/properties/days.d.ts +0 -9
  1068. package/dist/core/interfaces/vertices/properties/index.d.ts +0 -15
  1069. package/dist/core/interfaces/vertices/properties/intervals.d.ts +0 -10
  1070. package/dist/core/interfaces/vertices/properties/maximum-schedule-span.d.ts +0 -19
  1071. package/dist/core/interfaces/vertices/properties/min-break-length.d.ts +0 -5
  1072. package/dist/core/interfaces/vertices/properties/planned-scheduled-duration.d.ts +0 -13
  1073. package/dist/core/interfaces/vertices/properties/species.d.ts +0 -9
  1074. package/dist/core/interfaces/vertices/properties/tags.d.ts +0 -9
  1075. package/dist/core/interfaces/vertices/properties/week.d.ts +0 -22
  1076. package/dist/core/interfaces/vertices/properties/week.js +0 -6
  1077. package/dist/core/interfaces/vertices/properties/week.js.map +0 -1
  1078. package/dist/core/interfaces/vertices/root-intervals.d.ts +0 -12
  1079. package/dist/core/interfaces/vertices/syllabuses.d.ts +0 -17
  1080. package/dist/core/interfaces/vertices/teachers.d.ts +0 -42
  1081. package/dist/core/interfaces/vertices/threads.d.ts +0 -31
  1082. package/dist/core/interfaces/vertices/users.d.ts +0 -10
  1083. package/dist/core/interfaces/vertices/util/common.d.ts +0 -28
  1084. package/dist/core/interfaces/vertices/util/custom-vertex-export/assert-no-invalid-expand-keys.d.ts +0 -16
  1085. package/dist/core/interfaces/vertices/util/custom-vertex-export/index.d.ts +0 -34
  1086. package/dist/core/interfaces/vertices/util/custom-vertex-export/util.d.ts +0 -53
  1087. package/dist/core/interfaces/vertices/util/deep-vertex-export/index.d.ts +0 -65
  1088. package/dist/core/interfaces/vertices/util/edges.d.ts +0 -123
  1089. package/dist/core/interfaces/vertices/util/keys-of.d.ts +0 -27
  1090. package/dist/core/interfaces/vertices/util/serialized-vertex-export.d.ts +0 -12
  1091. package/dist/core/interfaces/vertices/util/util.d.ts +0 -84
  1092. package/dist/core/interfaces/vertices/util/vertex-query/index.d.ts +0 -51
  1093. package/dist/core/interfaces/vertices/util/vertex-query/util.d.ts +0 -13
  1094. package/dist/core/interfaces/vertices/util/vertex.d.ts +0 -70
  1095. package/dist/core/interfaces/vertices/vertex-query.d.ts +0 -108
  1096. package/dist/core/interfaces/vertices/vertex-query.js +0 -110
  1097. package/dist/core/interfaces/vertices/vertex-query.js.map +0 -1
  1098. package/dist/core/to/configurations.js +0 -17
  1099. package/dist/core/to/configurations.js.map +0 -1
  1100. package/dist/core/to/courses.js +0 -42
  1101. package/dist/core/to/courses.js.map +0 -1
  1102. package/dist/core/to/division.js +0 -10
  1103. package/dist/core/to/division.js.map +0 -1
  1104. package/dist/core/to/events.js +0 -43
  1105. package/dist/core/to/events.js.map +0 -1
  1106. package/dist/core/to/exceptions.js +0 -30
  1107. package/dist/core/to/exceptions.js.map +0 -1
  1108. package/dist/core/to/groups.js +0 -26
  1109. package/dist/core/to/groups.js.map +0 -1
  1110. package/dist/core/to/index.d.ts +0 -9
  1111. package/dist/core/to/index.js +0 -10
  1112. package/dist/core/to/index.js.map +0 -1
  1113. package/dist/core/to/locations.js +0 -22
  1114. package/dist/core/to/locations.js.map +0 -1
  1115. package/dist/core/to/locked-times.js +0 -21
  1116. package/dist/core/to/locked-times.js.map +0 -1
  1117. package/dist/core/to/overlap-groups.js +0 -28
  1118. package/dist/core/to/overlap-groups.js.map +0 -1
  1119. package/dist/core/to/periods.js +0 -17
  1120. package/dist/core/to/periods.js.map +0 -1
  1121. package/dist/core/to/persons.js +0 -18
  1122. package/dist/core/to/persons.js.map +0 -1
  1123. package/dist/core/to/root-intervals.js +0 -17
  1124. package/dist/core/to/root-intervals.js.map +0 -1
  1125. package/dist/core/to/schedules.d.ts +0 -46
  1126. package/dist/core/to/schedules.js +0 -42
  1127. package/dist/core/to/schedules.js.map +0 -1
  1128. package/dist/core/to/settings.js +0 -19
  1129. package/dist/core/to/settings.js.map +0 -1
  1130. package/dist/core/to/syllabuses.js +0 -17
  1131. package/dist/core/to/syllabuses.js.map +0 -1
  1132. package/dist/core/to/teachers.js +0 -25
  1133. package/dist/core/to/teachers.js.map +0 -1
  1134. package/dist/core/to/util.d.ts +0 -8
  1135. package/dist/core/to/util.js +0 -25
  1136. package/dist/core/to/util.js.map +0 -1
  1137. package/dist/core/types/common/index.d.ts +0 -8
  1138. package/dist/core/types/common/meta.d.ts +0 -15
  1139. package/dist/core/types/index.d.ts +0 -131
  1140. package/dist/core/util.js +0 -46
  1141. package/dist/core/util.js.map +0 -1
  1142. package/dist/identify/constants/index.d.ts +0 -144
  1143. package/dist/identify/constants/index.js +0 -317
  1144. package/dist/identify/constants/index.js.map +0 -1
  1145. package/dist/identify/index.d.ts +0 -8
  1146. package/dist/identify/index.js +0 -94
  1147. package/dist/identify/index.js.map +0 -1
  1148. package/dist/identify/types/index.d.ts +0 -15
  1149. package/dist/index.d.ts +0 -57
  1150. package/dist/index.js +0 -22
  1151. package/dist/sdui/from/classes.js +0 -8
  1152. package/dist/sdui/from/classes.js.map +0 -1
  1153. package/dist/sdui/from/courses.js +0 -14
  1154. package/dist/sdui/from/courses.js.map +0 -1
  1155. package/dist/sdui/from/holidays.js +0 -8
  1156. package/dist/sdui/from/holidays.js.map +0 -1
  1157. package/dist/sdui/from/hours.js +0 -6
  1158. package/dist/sdui/from/hours.js.map +0 -1
  1159. package/dist/sdui/from/index.js +0 -30
  1160. package/dist/sdui/from/index.js.map +0 -1
  1161. package/dist/sdui/from/lessons.js +0 -23
  1162. package/dist/sdui/from/lessons.js.map +0 -1
  1163. package/dist/sdui/from/rooms.js +0 -11
  1164. package/dist/sdui/from/rooms.js.map +0 -1
  1165. package/dist/sdui/from/schedules.d.ts +0 -19
  1166. package/dist/sdui/from/schedules.js +0 -24
  1167. package/dist/sdui/from/schedules.js.map +0 -1
  1168. package/dist/sdui/from/school-years.js +0 -11
  1169. package/dist/sdui/from/school-years.js.map +0 -1
  1170. package/dist/sdui/from/subjects.js +0 -6
  1171. package/dist/sdui/from/subjects.js.map +0 -1
  1172. package/dist/sdui/from/substitution-plans.js +0 -10
  1173. package/dist/sdui/from/substitution-plans.js.map +0 -1
  1174. package/dist/sdui/from/teachers.js +0 -15
  1175. package/dist/sdui/from/teachers.js.map +0 -1
  1176. package/dist/sdui/index.d.ts +0 -32
  1177. package/dist/sdui/index.js +0 -12
  1178. package/dist/sdui/index.js.map +0 -1
  1179. package/dist/sdui/to/classes.js +0 -10
  1180. package/dist/sdui/to/classes.js.map +0 -1
  1181. package/dist/sdui/to/courses.js +0 -16
  1182. package/dist/sdui/to/courses.js.map +0 -1
  1183. package/dist/sdui/to/holidays.js +0 -16
  1184. package/dist/sdui/to/holidays.js.map +0 -1
  1185. package/dist/sdui/to/hours.js +0 -15
  1186. package/dist/sdui/to/hours.js.map +0 -1
  1187. package/dist/sdui/to/index.d.ts +0 -20
  1188. package/dist/sdui/to/index.js +0 -30
  1189. package/dist/sdui/to/index.js.map +0 -1
  1190. package/dist/sdui/to/lessons.js +0 -24
  1191. package/dist/sdui/to/lessons.js.map +0 -1
  1192. package/dist/sdui/to/rooms.js +0 -13
  1193. package/dist/sdui/to/rooms.js.map +0 -1
  1194. package/dist/sdui/to/schedules.js +0 -26
  1195. package/dist/sdui/to/schedules.js.map +0 -1
  1196. package/dist/sdui/to/school-years.js +0 -18
  1197. package/dist/sdui/to/school-years.js.map +0 -1
  1198. package/dist/sdui/to/subjects.js +0 -8
  1199. package/dist/sdui/to/subjects.js.map +0 -1
  1200. package/dist/sdui/to/substitution-plans.js +0 -49
  1201. package/dist/sdui/to/substitution-plans.js.map +0 -1
  1202. package/dist/sdui/to/teachers.js +0 -20
  1203. package/dist/sdui/to/teachers.js.map +0 -1
  1204. package/dist/sdui/types/classes.d.ts +0 -8
  1205. package/dist/sdui/types/courses.d.ts +0 -12
  1206. package/dist/sdui/types/holidays.d.ts +0 -10
  1207. package/dist/sdui/types/hours.d.ts +0 -10
  1208. package/dist/sdui/types/index.d.ts +0 -31
  1209. package/dist/sdui/types/lessons.d.ts +0 -13
  1210. package/dist/sdui/types/rooms.d.ts +0 -9
  1211. package/dist/sdui/types/schedules.d.ts +0 -27
  1212. package/dist/sdui/types/school-years.d.ts +0 -9
  1213. package/dist/sdui/types/subjects.d.ts +0 -9
  1214. package/dist/sdui/types/substitution-plans.d.ts +0 -30
  1215. package/dist/sdui/types/teachers.d.ts +0 -10
  1216. package/dist/vKlass/from/index.js +0 -8
  1217. package/dist/vKlass/from/index.js.map +0 -1
  1218. package/dist/vKlass/from/schedule.d.ts +0 -23
  1219. package/dist/vKlass/from/schedule.js +0 -71
  1220. package/dist/vKlass/from/schedule.js.map +0 -1
  1221. package/dist/vKlass/index.d.ts +0 -13
  1222. package/dist/vKlass/index.js +0 -12
  1223. package/dist/vKlass/index.js.map +0 -1
  1224. package/dist/vKlass/to/index.d.ts +0 -9
  1225. package/dist/vKlass/to/index.js +0 -10
  1226. package/dist/vKlass/to/index.js.map +0 -1
  1227. package/dist/vKlass/to/schedules.d.ts +0 -14
  1228. package/dist/vKlass/to/schedules.js +0 -93
  1229. package/dist/vKlass/to/schedules.js.map +0 -1
  1230. package/dist/vKlass/types/index.d.ts +0 -53
@@ -0,0 +1,528 @@
1
+ import { makeChainable } from "../../../common/make-chainable/index.mjs";
2
+ import { countBy, isNumber, isString } from "lodash-es";
3
+ import { nanoid } from "nanoid";
4
+
5
+ //#region src/Excel/v2/from/index.ts
6
+ function generateId(map) {
7
+ let id;
8
+ do
9
+ id = nanoid(8);
10
+ while (map.has(id));
11
+ return id;
12
+ }
13
+ function toPositiveMultipleOf5(val) {
14
+ const num = isString(val) ? parseInt(val) : val;
15
+ if (isNaN(num)) throw new Error(`toMultipleOf5: ${val} is not a number`);
16
+ const res = Math.floor(num / 5) * 5;
17
+ if (res <= 0) throw new Error(`toMultipleOf5: the result ${res} is not positive`);
18
+ return res;
19
+ }
20
+ function toPositiveInteger(val) {
21
+ const num = isString(val) ? parseInt(val) : val;
22
+ if (isNaN(num)) throw new Error(`toInteger: ${val} is not a number`);
23
+ if (num <= 0) throw new Error(`toInteger: te result ${num} is not positive`);
24
+ return num;
25
+ }
26
+ /**
27
+ * Converts a string/number to a trimmed string
28
+ */
29
+ function toString(x) {
30
+ return isNumber(x) ? x.toString() : x.trim();
31
+ }
32
+ /**
33
+ * Converts a possible nullish string/number to a trimmed string or undefined
34
+ */
35
+ function toStringIfExists(x) {
36
+ if (x == null) return void 0;
37
+ return toString(x);
38
+ }
39
+ function extractLocations(course, locationsNameMap, warnings) {
40
+ if (course.locations == null) return;
41
+ const locationsStr = toString(course.locations);
42
+ if (!locationsStr) return;
43
+ const locationReferences = [];
44
+ locationsStr.split("+").flatMap((x, i) => x.split(",").map((x) => [i, x.trim()])).forEach(([i, x]) => {
45
+ const key = x.toLowerCase();
46
+ const ref = locationsNameMap.get(key);
47
+ if (!ref) {
48
+ warnings.push({
49
+ code: "invalid_location_reference",
50
+ context: x
51
+ });
52
+ return;
53
+ }
54
+ if (locationReferences.some((y) => y.to == ref.id)) {
55
+ warnings.push({
56
+ code: "location_referenced_multiple_times",
57
+ context: x
58
+ });
59
+ return;
60
+ }
61
+ locationReferences.push({
62
+ groupIndex: i,
63
+ to: ref.id
64
+ });
65
+ });
66
+ return locationReferences;
67
+ }
68
+ function extractGroups(course, groupsNameMap, warnings) {
69
+ if (course.groups == null) return;
70
+ const groupsStr = toString(course.groups);
71
+ if (!groupsStr) return;
72
+ const groupReferences = [];
73
+ groupsStr.split(",").map((x) => x.trim()).forEach((x) => {
74
+ const key = x.toLowerCase();
75
+ const ref = groupsNameMap.get(key);
76
+ if (!ref) {
77
+ warnings.push({
78
+ code: "invalid_group_reference",
79
+ context: x
80
+ });
81
+ return;
82
+ }
83
+ if (groupReferences.some((y) => y.to == ref.id)) {
84
+ warnings.push({
85
+ code: "group_referenced_multiple_times",
86
+ context: x
87
+ });
88
+ return;
89
+ }
90
+ groupReferences.push({ to: ref.id });
91
+ });
92
+ return groupReferences;
93
+ }
94
+ function extractTeachers(course, teachersNameMap, warnings) {
95
+ if (course.teachers == null) return;
96
+ const teachersStr = toString(course.teachers);
97
+ if (!teachersStr) return void 0;
98
+ const teacherReferences = [];
99
+ teachersStr.split(",").map((x) => x.trim()).forEach((x) => {
100
+ const key = x.toLowerCase();
101
+ const ref = teachersNameMap.get(key);
102
+ if (!ref) {
103
+ warnings.push({
104
+ code: "invalid_teacher_reference",
105
+ context: x
106
+ });
107
+ return;
108
+ }
109
+ if (teacherReferences.some((y) => y.to == ref.id)) {
110
+ warnings.push({
111
+ code: "teacher_referenced_multiple_times",
112
+ context: x
113
+ });
114
+ return;
115
+ }
116
+ teacherReferences.push({ to: ref.id });
117
+ });
118
+ return teacherReferences;
119
+ }
120
+ function extractSyllabus(course, syllabusesCodeMap, syllabusesNameMap, warnings) {
121
+ if (course.syllabus == null) return void 0;
122
+ const syllabusValue = toString(course.syllabus);
123
+ if (!syllabusValue) return void 0;
124
+ const syllabus = syllabusesCodeMap.get(syllabusValue) || syllabusesNameMap.get(syllabusValue.toLowerCase());
125
+ if (!syllabus) {
126
+ warnings.push({
127
+ code: "invalid_syllabus_reference",
128
+ context: syllabusValue
129
+ });
130
+ return;
131
+ }
132
+ return syllabus.id;
133
+ }
134
+ function _schedules(source) {
135
+ const warnings = [];
136
+ source.settings = source.settings?.filter((x) => Object.values(x).some((y) => toString(y).length > 0));
137
+ source.locations = source.locations?.filter((x) => Object.values(x).some((y) => toString(y).length > 0));
138
+ source.teachers = source.teachers?.filter((x) => Object.values(x).some((y) => toString(y).length > 0));
139
+ source.groups = source.groups?.filter((x) => Object.values(x).some((y) => toString(y).length > 0));
140
+ source.persons = source.persons?.filter((x) => Object.values(x).some((y) => toString(y).length > 0));
141
+ source.courses = source.courses?.filter((x) => Object.values(x).some((y) => toString(y).length > 0));
142
+ const settings = {
143
+ discretization: 5,
144
+ numDays: 5,
145
+ dayStart: "08:00",
146
+ dayEnd: "17:00"
147
+ };
148
+ if (!source.settings) warnings.push({ code: "missing_settings_sheet" });
149
+ if (source.settings?.[0]?.number_of_days) {
150
+ const numDays = source.settings?.[0]?.number_of_days;
151
+ try {
152
+ settings.numDays = toPositiveInteger(numDays);
153
+ if (settings.numDays !== 5 && settings.numDays !== 7) {
154
+ warnings.push({
155
+ code: "invalid_number_of_days",
156
+ context: numDays
157
+ });
158
+ settings.numDays = 5;
159
+ }
160
+ } catch {
161
+ warnings.push({
162
+ code: "invalid_number_of_days",
163
+ context: numDays
164
+ });
165
+ }
166
+ }
167
+ const syllabusesIdMap = /* @__PURE__ */ new Map();
168
+ const syllabusesNameMap = /* @__PURE__ */ new Map();
169
+ const syllabusesCodeMap = /* @__PURE__ */ new Map();
170
+ if (!source.syllabuses) {}
171
+ source.syllabuses?.forEach((x) => {
172
+ const ids = toStringIfExists(x.foreign_ID);
173
+ const subjectCode = toStringIfExists(x.subject_code);
174
+ const subjectName = toStringIfExists(x.subject_name);
175
+ const courseCode = toStringIfExists(x.course_code);
176
+ const courseName = toStringIfExists(x.course_name);
177
+ const schoolType = toStringIfExists(x.school_type);
178
+ const id = toStringIfExists(x.ID) ?? generateId(syllabusesIdMap);
179
+ if (syllabusesIdMap.has(id)) {
180
+ warnings.push({
181
+ code: "ignoring_duplicate_syllabus",
182
+ context: `${subjectName} (${courseName})`
183
+ });
184
+ return;
185
+ }
186
+ if (!subjectName) {
187
+ warnings.push({
188
+ code: "missing_subject_name",
189
+ context: x
190
+ });
191
+ return;
192
+ }
193
+ if (!schoolType) {
194
+ warnings.push({
195
+ code: "missing_school_type",
196
+ context: x
197
+ });
198
+ return;
199
+ }
200
+ const y = {
201
+ id,
202
+ ...ids && { ids },
203
+ ...subjectCode && { subjectCode },
204
+ subjectName,
205
+ ...courseCode && { courseCode },
206
+ ...courseName && { courseName },
207
+ schoolType,
208
+ official: true,
209
+ __raw: x
210
+ };
211
+ syllabusesIdMap.set(id, y);
212
+ const code = courseCode || subjectCode;
213
+ const name = courseName || subjectName;
214
+ if (code) syllabusesCodeMap.set(code, y);
215
+ if (name) syllabusesNameMap.set(name.toLowerCase(), y);
216
+ });
217
+ const locationsIdMap = /* @__PURE__ */ new Map();
218
+ const locationsNameMap = /* @__PURE__ */ new Map();
219
+ const teachersIdMap = /* @__PURE__ */ new Map();
220
+ const teachersNameMap = /* @__PURE__ */ new Map();
221
+ [{
222
+ name: {
223
+ singular: "location",
224
+ plural: "locations"
225
+ },
226
+ data: source.locations,
227
+ idMap: locationsIdMap,
228
+ nameMap: locationsNameMap
229
+ }, {
230
+ name: {
231
+ singular: "teacher",
232
+ plural: "teachers"
233
+ },
234
+ data: source.teachers,
235
+ idMap: teachersIdMap,
236
+ nameMap: teachersNameMap
237
+ }].forEach(({ name, data, idMap, nameMap }) => {
238
+ if (!data) warnings.push({ code: `missing_${name.plural}_sheet` });
239
+ data?.forEach((x) => {
240
+ const ids = toStringIfExists(x.foreign_ID);
241
+ const displayName = toStringIfExists(x.name);
242
+ const id = toStringIfExists(x.ID) ?? generateId(idMap);
243
+ if (idMap.has(id)) {
244
+ warnings.push({
245
+ code: `ignoring_duplicate_${name.singular}`,
246
+ context: displayName
247
+ });
248
+ return;
249
+ }
250
+ const y = {
251
+ id,
252
+ ...ids && { ids },
253
+ ...displayName && { displayName },
254
+ __raw: x
255
+ };
256
+ idMap.set(id, y);
257
+ if (displayName) nameMap.set(displayName.toLowerCase(), y);
258
+ });
259
+ });
260
+ const groupsIdMap = /* @__PURE__ */ new Map();
261
+ const groupsNameMap = /* @__PURE__ */ new Map();
262
+ if (!source.groups) warnings.push({ code: "missing_groups_sheet" });
263
+ source.groups?.forEach((x) => {
264
+ const ids = toStringIfExists(x.foreign_ID);
265
+ const displayName = toStringIfExists(x.name);
266
+ const id = toStringIfExists(x.ID) ?? generateId(groupsIdMap);
267
+ if (groupsIdMap.has(id)) {
268
+ warnings.push({
269
+ code: "ignoring_duplicate_group",
270
+ context: displayName
271
+ });
272
+ return;
273
+ }
274
+ const species = toStringIfExists(x.is_class) == "1" ? "class" : void 0;
275
+ const y = {
276
+ id,
277
+ ...ids && { ids },
278
+ ...displayName && { displayName },
279
+ ...species && { species },
280
+ __raw: x
281
+ };
282
+ groupsIdMap.set(id, y);
283
+ if (displayName) groupsNameMap.set(displayName.toLowerCase(), y);
284
+ });
285
+ const personsIdMap = /* @__PURE__ */ new Map();
286
+ const personsSsnMap = /* @__PURE__ */ new Map();
287
+ if (!source.persons) warnings.push({ code: "missing_persons_sheet" });
288
+ source.persons?.forEach((x) => {
289
+ const ids = toStringIfExists(x.foreign_ID);
290
+ const firstName = toStringIfExists(x.first_name);
291
+ const lastName = toStringIfExists(x.last_name);
292
+ const SSN = toStringIfExists(x.SSN);
293
+ const id = toStringIfExists(x.ID) ?? generateId(personsIdMap);
294
+ if (personsIdMap.has(id)) {
295
+ warnings.push({
296
+ code: "ignoring_duplicate_person",
297
+ context: `${firstName} ${lastName}`
298
+ });
299
+ return;
300
+ }
301
+ let group = void 0;
302
+ if (x.group) {
303
+ const key = toString(x.group).toLowerCase();
304
+ const ref = groupsNameMap.get(key);
305
+ if (!ref) warnings.push({
306
+ code: "invalid_group_reference",
307
+ context: x.group
308
+ });
309
+ else if (ref.species !== "class") warnings.push({
310
+ code: "forbidden_group_reference",
311
+ context: x.group
312
+ });
313
+ else group = ref.id;
314
+ }
315
+ let sex;
316
+ if (x.sex) if (isString(x.sex) && x.sex.toLowerCase() == "man") sex = "Man";
317
+ else if (isString(x.sex) && x.sex.toLowerCase() == "woman") sex = "Woman";
318
+ else warnings.push({
319
+ code: "invalid_sex",
320
+ context: x.sex
321
+ });
322
+ const person = {
323
+ id,
324
+ ...ids && { ids },
325
+ ...firstName && { firstName },
326
+ ...lastName && { lastName },
327
+ ...sex && { sex },
328
+ ...group && { group },
329
+ ...SSN && { SSN: { value: SSN } },
330
+ __raw: x
331
+ };
332
+ personsIdMap.set(id, person);
333
+ if (SSN) personsSsnMap.set(SSN, person);
334
+ });
335
+ groupsNameMap.forEach((x) => {
336
+ let duplicateReported = false;
337
+ if (!x.__raw.members) return;
338
+ x.members = makeChainable(x.__raw.members).chain((x) => toString(x).split(",").map((x) => x.trim()).filter((x) => x != null)).chain((x) => countBy(x)).chain((y) => Object.entries(y).map(([ssn, count]) => {
339
+ if (!ssn) return;
340
+ if (!duplicateReported && count > 1) {
341
+ warnings.push({
342
+ code: "duplicate_group_member",
343
+ context: x.displayName
344
+ });
345
+ duplicateReported = true;
346
+ }
347
+ const person = personsSsnMap.get(ssn);
348
+ if (!person) {
349
+ warnings.push({
350
+ code: "invalid_person_reference",
351
+ context: ssn
352
+ });
353
+ return;
354
+ }
355
+ if (x.species == "class") {
356
+ if (!person.group) person.group = x.id;
357
+ else if (person.group != x.id) {
358
+ warnings.push({
359
+ code: "person_in_multiple_classes",
360
+ context: ssn
361
+ });
362
+ return;
363
+ }
364
+ }
365
+ return person.id;
366
+ }).filter((x) => x != null)).value;
367
+ });
368
+ const coursesIdMap = /* @__PURE__ */ new Map();
369
+ const eventsIdMap = /* @__PURE__ */ new Map();
370
+ const overlapGroupsKeyMap = /* @__PURE__ */ new Map();
371
+ if (!source.courses) warnings.push({ code: "missing_courses_sheet" });
372
+ source.courses?.forEach((x) => {
373
+ if (toStringIfExists(x.merge_with)) return;
374
+ const ids = toStringIfExists(x.foreign_ID);
375
+ const displayName = toStringIfExists(x.name);
376
+ const subject = toStringIfExists(x.subject);
377
+ const courseId = toStringIfExists(x.ID) ?? generateId(coursesIdMap);
378
+ if (coursesIdMap.has(courseId)) {
379
+ warnings.push({
380
+ code: "ignoring_duplicate_course",
381
+ context: displayName + (subject ? ` (${subject})` : "")
382
+ });
383
+ return;
384
+ }
385
+ let expectedTotalHours = void 0;
386
+ if (x.total_hours) try {
387
+ expectedTotalHours = toPositiveInteger(x.total_hours);
388
+ } catch {
389
+ warnings.push({
390
+ code: "invalid_total_hours",
391
+ context: x.total_hours
392
+ });
393
+ }
394
+ let minutesPerWeek = void 0;
395
+ if (x.minutes_per_week) try {
396
+ minutesPerWeek = toPositiveMultipleOf5(x.minutes_per_week);
397
+ } catch {
398
+ warnings.push({
399
+ code: "invalid_minutes_per_week",
400
+ context: x.minutes_per_week
401
+ });
402
+ }
403
+ if (minutesPerWeek != null && expectedTotalHours != null) warnings.push({
404
+ code: "ambiguous_planned_duration",
405
+ context: `${minutesPerWeek} min/week OR ${expectedTotalHours} hrs`
406
+ });
407
+ const plannedDuration = expectedTotalHours ? `${expectedTotalHours} hrs` : minutesPerWeek ? `${minutesPerWeek} min/week` : void 0;
408
+ if (x.lesson_durations) (typeof x.lesson_durations === "string" ? x.lesson_durations.split(",").map((x) => x.trim()) : [x.lesson_durations]).map((e) => {
409
+ try {
410
+ return toPositiveMultipleOf5(e);
411
+ } catch {
412
+ warnings.push({
413
+ code: "invalid_lesson_durations",
414
+ context: x.lesson_durations
415
+ });
416
+ return;
417
+ }
418
+ }).filter((x) => x !== void 0).forEach((x) => {
419
+ const id = generateId(eventsIdMap);
420
+ const event = {
421
+ id,
422
+ course: courseId,
423
+ preferredDuration: x
424
+ };
425
+ eventsIdMap.set(id, event);
426
+ });
427
+ if (x.overlap_group && toString(x.overlap_group)) {
428
+ const key = toString(x.overlap_group).toLowerCase();
429
+ const og = overlapGroupsKeyMap.get(key);
430
+ if (og) og.coalesced?.push({
431
+ toModel: "courses",
432
+ to: courseId
433
+ });
434
+ else {
435
+ const id = generateId(overlapGroupsKeyMap);
436
+ const coalesced = [{
437
+ toModel: "courses",
438
+ to: courseId
439
+ }];
440
+ overlapGroupsKeyMap.set(key, {
441
+ id,
442
+ coalesced
443
+ });
444
+ }
445
+ }
446
+ const locations = extractLocations(x, locationsNameMap, warnings)?.map((x) => ({
447
+ groupIndex: x.groupIndex,
448
+ locations: [x.to]
449
+ }));
450
+ const groups = extractGroups(x, groupsNameMap, warnings);
451
+ const teachers = extractTeachers(x, teachersNameMap, warnings);
452
+ const syllabus = extractSyllabus(x, syllabusesCodeMap, syllabusesNameMap, warnings);
453
+ const course = {
454
+ id: courseId,
455
+ ...ids && { ids },
456
+ ...displayName && { displayName },
457
+ ...subject && { subject },
458
+ ...expectedTotalHours && { expectedTotalHours },
459
+ ...minutesPerWeek && { minutesPerWeek },
460
+ ...plannedDuration && { plannedDuration },
461
+ ...groups && { groups },
462
+ ...teachers && { teachers },
463
+ ...locations && { locations },
464
+ ...syllabus && { syllabus },
465
+ __raw: x
466
+ };
467
+ coursesIdMap.set(courseId, course);
468
+ });
469
+ source.courses?.forEach((x) => {
470
+ const mergeWith = toStringIfExists(x.merge_with);
471
+ if (!mergeWith) return;
472
+ if (!coursesIdMap.has(mergeWith)) {
473
+ warnings.push({
474
+ code: "invalid_course_reference",
475
+ context: mergeWith
476
+ });
477
+ return;
478
+ }
479
+ const displayName = toStringIfExists(x.name);
480
+ const locations = extractLocations(x, locationsNameMap, warnings)?.map((x) => ({
481
+ groupIndex: x.groupIndex,
482
+ locations: [x.to]
483
+ }));
484
+ const groups = extractGroups(x, groupsNameMap, warnings);
485
+ const teachers = extractTeachers(x, teachersNameMap, warnings);
486
+ if (x.lesson_durations) (typeof x.lesson_durations === "string" ? x.lesson_durations.split(",").map((x) => x.trim()) : [x.lesson_durations]).map((e) => {
487
+ try {
488
+ return toPositiveMultipleOf5(e);
489
+ } catch {
490
+ warnings.push({
491
+ code: "invalid_lesson_durations",
492
+ context: x.lesson_durations
493
+ });
494
+ return;
495
+ }
496
+ }).filter((x) => x !== void 0).forEach((preferredDuration) => {
497
+ const id = generateId(eventsIdMap);
498
+ const event = {
499
+ id,
500
+ course: mergeWith,
501
+ preferredDuration,
502
+ ...displayName && { displayName },
503
+ ...groups && { groups },
504
+ ...teachers && { teachers },
505
+ ...locations && { locations },
506
+ __raw: x
507
+ };
508
+ eventsIdMap.set(id, event);
509
+ });
510
+ });
511
+ return {
512
+ settings,
513
+ locations: [...locationsIdMap.values()],
514
+ teachers: [...teachersIdMap.values()],
515
+ persons: [...personsIdMap.values()],
516
+ groups: [...groupsIdMap.values()],
517
+ courses: [...coursesIdMap.values()],
518
+ events: [...eventsIdMap.values()],
519
+ overlapGroups: [...overlapGroupsKeyMap.values()],
520
+ syllabuses: [...syllabusesIdMap.values()],
521
+ meta: { ...warnings.length && { warnings } }
522
+ };
523
+ }
524
+ var from_default = { schedules: _schedules };
525
+
526
+ //#endregion
527
+ export { from_default as default };
528
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../src/Excel/v2/from/index.ts"],"sourcesContent":["import { isString, isNumber, countBy } from 'lodash-es';\nimport { nanoid } from 'nanoid';\nimport type { CoreTypes } from '../../../core';\nimport type { Types } from '../types';\nimport type { FromInterface } from '../../../common/types';\nimport { makeChainable } from '../../../common/make-chainable';\n\ntype C_Settings = Pick<CoreTypes.Serialized.Settings, 'discretization' | 'numDays' | 'dayStart' | 'dayEnd'>;\ntype C_Location = Omit<CoreTypes.Serialized.Location, '_id'> & { __raw: Types.Location };\ntype C_Group = Omit<CoreTypes.Serialized.Group, '_id'> & { __raw: Types.Group };\ntype C_Teacher = Omit<CoreTypes.Serialized.Teacher, '_id'> & { __raw: Types.Teacher };\ntype C_Course = Omit<CoreTypes.Serialized.Course, '_id'> & { __raw: Types.Course };\ntype C_Person = Omit<CoreTypes.Serialized.Person, '_id'> & { __raw: Types.Person };\ntype C_Event = Omit<CoreTypes.Serialized.Event, '_id'> & { __raw?: Types.Course };\ntype C_OverlapGroup = Omit<CoreTypes.Serialized.OverlapGroup, '_id'> & { /* raw: Types.OverlapGroup */ };\ntype C_Syllabus = Omit<CoreTypes.Serialized.Syllabus, '_id'> & { __raw?: Types.Syllabus };\n\ntype Out = {\n settings: C_Settings;\n locations: C_Location[];\n teachers: C_Teacher[];\n persons: C_Person[];\n groups: C_Group[];\n courses: C_Course[];\n events: C_Event[];\n overlapGroups: C_OverlapGroup[];\n syllabuses: C_Syllabus[];\n meta: {\n // errors?: string[];\n warnings?: { code: Types.ErrorCode, context?: unknown }[];\n };\n};\n\n\nfunction generateId (map: Map<string, unknown>) {\n // generate a unique id\n let id: string;\n do {\n id = nanoid(8);\n } while (map.has(id));\n\n return id;\n}\n\nfunction toPositiveMultipleOf5 (val: number | string) {\n const num = isString(val) ? parseInt(val) : val;\n\n // throw error if nan\n if (isNaN(num)) throw new Error(`toMultipleOf5: ${val} is not a number`);\n\n const res = Math.floor(num / 5) * 5;\n\n if (res <= 0) throw new Error(`toMultipleOf5: the result ${res} is not positive`);\n\n return res;\n}\n\nfunction toPositiveInteger (val: number | string) {\n const num = isString(val) ? parseInt(val) : val;\n\n // throw error if nan\n if (isNaN(num)) throw new Error(`toInteger: ${val} is not a number`);\n if (num <= 0) throw new Error(`toInteger: te result ${num} is not positive`);\n\n return num;\n}\n\n/**\n * Converts a string/number to a trimmed string\n */\nfunction toString (x: string | number): string {\n return isNumber(x)\n ? x.toString()\n : x.trim();\n}\n\n/**\n * Converts a possible nullish string/number to a trimmed string or undefined\n */\nfunction toStringIfExists (x: string | number | undefined | null): string | undefined {\n if (x == null) return undefined;\n return toString(x);\n}\n\nfunction extractLocations (\n course: Types.Course,\n locationsNameMap: Map<string, C_Location>,\n warnings: { code: Types.ErrorCode, context?: unknown }[],\n) {\n if (course.locations == null) return;\n const locationsStr = toString(course.locations);\n if (!locationsStr) return;\n\n const locationReferences: { groupIndex: number; to: string }[] = [];\n\n locationsStr.split('+')\n .flatMap((x, i) => x.split(',').map(x => [i, x.trim()] as [number, string]))\n .forEach(([i, x]) => {\n const key = x.toLowerCase();\n const ref = locationsNameMap.get(key);\n if (!ref) {\n warnings.push({ code: 'invalid_location_reference', context: x });\n return;\n }\n\n if (locationReferences.some(y => y.to == ref.id)) {\n warnings.push({ code: 'location_referenced_multiple_times', context: x });\n return;\n }\n\n locationReferences.push({ groupIndex: i, to: ref.id });\n });\n\n return locationReferences;\n}\n\nfunction extractGroups (\n course: Types.Course,\n groupsNameMap: Map<string, C_Group>,\n warnings: { code: Types.ErrorCode, context?: unknown }[],\n) {\n if (course.groups == null) return;\n const groupsStr = toString(course.groups);\n if (!groupsStr) return;\n\n const groupReferences: { to: string }[] = [];\n groupsStr.split(',').map(x => x.trim())\n .forEach(x => {\n const key = x.toLowerCase();\n const ref = groupsNameMap.get(key);\n if (!ref) {\n warnings.push({ code: 'invalid_group_reference', context: x });\n return;\n }\n\n if (groupReferences.some(y => y.to == ref.id)) {\n warnings.push({ code: 'group_referenced_multiple_times', context: x });\n return;\n }\n\n groupReferences.push({ to: ref.id });\n });\n\n return groupReferences;\n}\n\nfunction extractTeachers (\n course: Types.Course,\n teachersNameMap: Map<string, C_Teacher>,\n warnings: { code: Types.ErrorCode, context?: unknown }[],\n) {\n if (course.teachers == null) return;\n const teachersStr = toString(course.teachers);\n if (!teachersStr) return undefined;\n\n const teacherReferences: { to: string }[] = [];\n teachersStr.split(',').map(x => x.trim())\n .forEach(x => {\n const key = x.toLowerCase();\n const ref = teachersNameMap.get(key);\n if (!ref) {\n warnings.push({ code: 'invalid_teacher_reference', context: x });\n return;\n }\n\n if (teacherReferences.some(y => y.to == ref.id)) {\n warnings.push({ code: 'teacher_referenced_multiple_times', context: x });\n return;\n }\n\n teacherReferences.push({ to: ref.id });\n });\n\n return teacherReferences;\n}\n\nfunction extractSyllabus (\n course: Types.Course,\n syllabusesCodeMap: Map<string, C_Syllabus>,\n syllabusesNameMap: Map<string, C_Syllabus>,\n warnings: { code: Types.ErrorCode, context?: unknown }[],\n): string | undefined {\n if (course.syllabus == null) return undefined;\n const syllabusValue = toString(course.syllabus);\n if (!syllabusValue) return undefined;\n\n const syllabus = syllabusesCodeMap.get(syllabusValue) || syllabusesNameMap.get(syllabusValue.toLowerCase());\n\n if (!syllabus) {\n warnings.push({ code: 'invalid_syllabus_reference', context: syllabusValue });\n return undefined;\n }\n\n return syllabus.id;\n}\n\n\nfunction _schedules (\n source: Types.Source\n): Out {\n // gather all import related warnings/errors\n const warnings: { code: Types.ErrorCode, context?: unknown }[] = [];\n // let errors: string[] = [];\n\n source.settings = source.settings ?.filter(x => Object.values(x).some(y => toString(y).length > 0));\n source.locations = source.locations?.filter(x => Object.values(x).some(y => toString(y).length > 0));\n source.teachers = source.teachers ?.filter(x => Object.values(x).some(y => toString(y).length > 0));\n source.groups = source.groups ?.filter(x => Object.values(x).some(y => toString(y).length > 0));\n source.persons = source.persons ?.filter(x => Object.values(x).some(y => toString(y).length > 0));\n source.courses = source.courses ?.filter(x => Object.values(x).some(y => toString(y).length > 0));\n\n\n ////\n //// settings\n ////\n const settings: C_Settings = {\n discretization: 5,\n numDays: 5,\n dayStart: '08:00',\n dayEnd: '17:00',\n };\n if (!source.settings) {\n warnings.push({ code: 'missing_settings_sheet' });\n }\n if (source.settings?.[0]?.number_of_days) {\n const numDays = source.settings?.[0]?.number_of_days;\n try {\n settings.numDays = toPositiveInteger(numDays);\n\n // must be 5 or 7\n if (settings.numDays !== 5 && settings.numDays !== 7) {\n warnings.push({ code: 'invalid_number_of_days', context: numDays });\n settings.numDays = 5;\n }\n } catch {\n warnings.push({ code: 'invalid_number_of_days', context: numDays });\n }\n }\n\n ////\n //// syllabuses\n ////\n const syllabusesIdMap = new Map<string, C_Syllabus>();\n const syllabusesNameMap = new Map<string, C_Syllabus>();\n const syllabusesCodeMap = new Map<string, C_Syllabus>();\n if (!source.syllabuses) {\n // warnings.push({ code: 'missing_syllabus_sheet' });\n }\n source.syllabuses?.forEach(x => {\n const ids = toStringIfExists(x.foreign_ID );\n const subjectCode = toStringIfExists(x.subject_code);\n const subjectName = toStringIfExists(x.subject_name);\n const courseCode = toStringIfExists(x.course_code );\n const courseName = toStringIfExists(x.course_name );\n const schoolType = toStringIfExists(x.school_type );\n\n const id = toStringIfExists(x.ID) ?? generateId(syllabusesIdMap);\n if (syllabusesIdMap.has(id)) {\n warnings.push({ code: 'ignoring_duplicate_syllabus', context: `${subjectName} (${courseName})` });\n return;\n }\n\n if (!subjectName) {\n warnings.push({ code: 'missing_subject_name', context: x });\n return;\n }\n\n if (!schoolType) {\n warnings.push({ code: 'missing_school_type', context: x });\n return;\n }\n\n // create the syllabus object\n const y: C_Syllabus = {\n id,\n ...ids && { ids },\n ...subjectCode && { subjectCode },\n subjectName,\n ...courseCode && { courseCode },\n ...courseName && { courseName },\n schoolType,\n official: true, // always true for imported syllabuses\n __raw: x\n };\n syllabusesIdMap.set(id, y);\n const code = courseCode || subjectCode;\n const name = courseName || subjectName;\n if (code) syllabusesCodeMap.set(code, y);\n if (name) syllabusesNameMap.set(name.toLowerCase(), y);\n });\n\n\n ////\n //// locations, teachers\n ////\n const locationsIdMap = new Map<string, C_Location>();\n const locationsNameMap = new Map<string, C_Location>();\n const teachersIdMap = new Map<string, C_Teacher>();\n const teachersNameMap = new Map<string, C_Teacher>();\n [\n {\n name: { singular: 'location', plural: 'locations' } as const,\n data: source.locations,\n idMap: locationsIdMap,\n nameMap: locationsNameMap,\n },\n {\n name: { singular: 'teacher', plural: 'teachers' } as const,\n data: source.teachers,\n idMap: teachersIdMap,\n nameMap: teachersNameMap,\n }\n ].forEach(({ name, data, idMap, nameMap }) => {\n if (!data) {\n warnings.push({ code: `missing_${name.plural}_sheet` });\n }\n data?.forEach(x => {\n const ids = toStringIfExists(x.foreign_ID);\n const displayName = toStringIfExists(x.name );\n\n const id = toStringIfExists(x.ID) ?? generateId(idMap);\n if (idMap.has(id)) {\n warnings.push({ code: `ignoring_duplicate_${name.singular}`, context: displayName });\n return;\n }\n\n const y = {\n id,\n ...ids && { ids },\n ...displayName && { displayName },\n __raw: x\n };\n idMap.set(id, y);\n if (displayName) nameMap.set(displayName.toLowerCase(), y);\n });\n });\n\n\n ////\n //// groups\n ////\n const groupsIdMap = new Map<string, C_Group>();\n const groupsNameMap = new Map<string, C_Group>();\n if (!source.groups) {\n warnings.push({ code: 'missing_groups_sheet' });\n }\n source.groups?.forEach(x => {\n const ids = toStringIfExists(x.foreign_ID);\n const displayName = toStringIfExists(x.name );\n\n const id = toStringIfExists(x.ID) ?? generateId(groupsIdMap);\n if (groupsIdMap.has(id)) {\n warnings.push({ code: 'ignoring_duplicate_group', context: displayName });\n return;\n }\n\n // parent groups determine the species of the group\n const species = toStringIfExists(x.is_class) == '1' ? 'class' as const : undefined;\n\n const y = {\n id,\n ...ids && { ids },\n ...displayName && { displayName },\n ...species && { species },\n __raw: x\n } as C_Group;\n groupsIdMap.set(id, y);\n if (displayName) groupsNameMap.set(displayName.toLowerCase(), y);\n });\n\n\n ////\n //// persons\n ////\n const personsIdMap = new Map<string, C_Person>();\n const personsSsnMap = new Map<string, C_Person>();\n if (!source.persons) {\n warnings.push({ code: 'missing_persons_sheet' });\n }\n source.persons?.forEach(x => {\n const ids = toStringIfExists(x.foreign_ID);\n const firstName = toStringIfExists(x.first_name);\n const lastName = toStringIfExists(x.last_name );\n const SSN = toStringIfExists(x.SSN );\n\n const id = toStringIfExists(x.ID) ?? generateId(personsIdMap);\n if (personsIdMap.has(id)) {\n warnings.push({ code: 'ignoring_duplicate_person', context: `${firstName} ${lastName}` });\n return;\n }\n\n let group: string | undefined = undefined;\n if (x.group) {\n const key = toString(x.group).toLowerCase();\n const ref = groupsNameMap.get(key);\n if (!ref) {\n warnings.push({ code: 'invalid_group_reference', context: x.group });\n } else if (ref.species !== 'class') {\n warnings.push({ code: 'forbidden_group_reference', context: x.group });\n } else {\n group = ref.id;\n }\n }\n\n let sex: C_Person['sex'];\n if (x.sex) {\n if (isString(x.sex) && x.sex.toLowerCase() == 'man') sex = 'Man';\n else if (isString(x.sex) && x.sex.toLowerCase() == 'woman') sex = 'Woman';\n else {\n warnings.push({ code: 'invalid_sex', context: x.sex });\n }\n }\n\n const person: C_Person = {\n id,\n ...ids && { ids },\n ...firstName && { firstName },\n ...lastName && { lastName },\n ...sex && { sex },\n ...group && { group },\n ...SSN && { SSN: { value: SSN } },\n __raw: x\n };\n personsIdMap.set(id, person);\n if (SSN) personsSsnMap.set(SSN, person);\n });\n\n ////\n //// group.members (need to wait for persons to be parsed)\n ////\n groupsNameMap.forEach(x => {\n let duplicateReported = false;\n\n // ignore if no members\n if (!x.__raw.members) return;\n\n // parse and replace SSN by person id\n x.members = makeChainable(x.__raw.members)\n .chain(x => toString(x)\n .split(',')\n .map(x => x.trim())\n .filter(x => x != null)\n )\n .chain(x => countBy(x))\n .chain(y => Object.entries(y)\n .map(([ssn, count]) => {\n // ignore empty ssn\n if (!ssn) return;\n\n // warn if duplicate member\n if (!duplicateReported && count > 1) {\n warnings.push({ code: 'duplicate_group_member', context: x.displayName });\n duplicateReported = true;\n }\n\n // fetch person and warn if not found\n const person = personsSsnMap.get(ssn);\n if (!person) {\n warnings.push({ code: 'invalid_person_reference', context: ssn });\n return;\n }\n\n // warn if the group is a class and the person is already in a different class\n // (we also need to set the group of the person if it is empty)\n if (x.species == 'class') {\n if (!person.group) {\n person.group = x.id;\n }\n else if (person.group != x.id) {\n warnings.push({ code: 'person_in_multiple_classes', context: ssn });\n return;\n }\n }\n\n return person.id;\n })\n .filter(x => x != null)\n )\n .value;\n });\n\n\n ////\n //// courses\n ////\n const coursesIdMap = new Map<string, C_Course >();\n const eventsIdMap = new Map<string, C_Event >();\n const overlapGroupsKeyMap = new Map<string, C_OverlapGroup>();\n if (!source.courses) {\n warnings.push({ code: 'missing_courses_sheet' });\n }\n source.courses?.forEach(x => {\n // await loading events until courses are created\n const mergeWith = toStringIfExists(x.merge_with);\n if (mergeWith) return;\n\n const ids = toStringIfExists(x.foreign_ID);\n const displayName = toStringIfExists(x.name );\n const subject = toStringIfExists(x.subject );\n\n const courseId = toStringIfExists(x.ID) ?? generateId(coursesIdMap);\n if (coursesIdMap.has(courseId)) {\n warnings.push({ code: 'ignoring_duplicate_course', context: displayName + (subject ? ` (${subject})` : '') });\n return;\n }\n\n // try to parse the total hours as an integer\n let expectedTotalHours: number | undefined = undefined;\n if (x.total_hours) {\n try {\n expectedTotalHours = toPositiveInteger(x.total_hours);\n } catch {\n warnings.push({ code: 'invalid_total_hours', context: x.total_hours });\n }\n }\n\n // try to parse the minutes per week as an multiple of 5\n let minutesPerWeek: number | undefined = undefined;\n if (x.minutes_per_week) {\n try {\n minutesPerWeek = toPositiveMultipleOf5(x.minutes_per_week);\n } catch {\n warnings.push({ code: 'invalid_minutes_per_week', context: x.minutes_per_week });\n }\n }\n\n // only one of minutes_per_week or total_hours should be defined\n if (minutesPerWeek != null && expectedTotalHours != null) {\n warnings.push({ code: 'ambiguous_planned_duration', context: `${minutesPerWeek} min/week OR ${expectedTotalHours} hrs` });\n }\n const plannedDuration =\n expectedTotalHours\n ? `${expectedTotalHours} hrs` :\n minutesPerWeek\n ? `${minutesPerWeek} min/week` :\n undefined;\n\n\n // try to parse the lesson durations as an array of integers from which we will generate events\n if (x.lesson_durations) {\n const _durations = typeof x.lesson_durations === 'string'\n ? x.lesson_durations.split(',').map(x => x.trim())\n : [x.lesson_durations];\n\n // truncate to multiple of 5 and filter out zero duration events\n const durations = _durations\n .map(e => {\n try {\n return toPositiveMultipleOf5(e);\n } catch {\n warnings.push({ code: 'invalid_lesson_durations', context: x.lesson_durations });\n return undefined;\n }\n })\n .filter((x): x is number => x !== undefined);\n\n durations.forEach(x => {\n const id = generateId(eventsIdMap);\n const event: C_Event = { id, course: courseId, preferredDuration: x };\n eventsIdMap.set(id, event);\n });\n }\n\n // overlap group\n if (x.overlap_group && toString(x.overlap_group)) {\n const key = toString(x.overlap_group).toLowerCase();\n\n const og = overlapGroupsKeyMap.get(key);\n if (og) og.coalesced?.push({ toModel: 'courses', to: courseId });\n else {\n const id = generateId(overlapGroupsKeyMap);\n const coalesced = [{ toModel: 'courses' as const, to: courseId }];\n overlapGroupsKeyMap.set(key, { id, coalesced });\n }\n }\n\n const locations = extractLocations(x, locationsNameMap, warnings)?.map(x => ({ groupIndex: x.groupIndex, locations: [x.to] as [string] }));\n const groups = extractGroups (x, groupsNameMap, warnings);\n const teachers = extractTeachers (x, teachersNameMap, warnings);\n const syllabus = extractSyllabus(x, syllabusesCodeMap, syllabusesNameMap, warnings);\n\n const course: C_Course = {\n id: courseId,\n ...ids && { ids },\n ...displayName && { displayName },\n ...subject && { subject },\n /* TO BE DEPRECATED */ ...expectedTotalHours && { expectedTotalHours },\n /* TO BE DEPRECATED */ ...minutesPerWeek && { minutesPerWeek },\n ...plannedDuration && { plannedDuration },\n ...groups && { groups },\n ...teachers && { teachers },\n ...locations && { locations },\n ...syllabus && { syllabus },\n __raw: x\n };\n coursesIdMap.set(courseId, course);\n });\n\n\n ////\n //// events\n ////\n source.courses?.forEach(x => {\n // load courses\n const mergeWith = toStringIfExists(x.merge_with);\n if (!mergeWith) return;\n\n // ensure that the course to merge with exists\n if (!coursesIdMap.has(mergeWith)) {\n warnings.push({ code: 'invalid_course_reference', context: mergeWith });\n return;\n }\n\n const displayName = toStringIfExists(x.name);\n const locations = extractLocations(x, locationsNameMap, warnings)?.map(x => ({ groupIndex: x.groupIndex, locations: [x.to] as [string] }));\n const groups = extractGroups (x, groupsNameMap, warnings);\n const teachers = extractTeachers (x, teachersNameMap, warnings);\n\n // try to parse the lesson durations as an array of integers from which we will generate events\n if (x.lesson_durations) {\n const _durations = typeof x.lesson_durations === 'string'\n ? x.lesson_durations.split(',').map(x => x.trim())\n : [x.lesson_durations];\n\n // truncate to multiple of 5 and filter out zero duration events\n const durations = _durations\n .map(e => {\n try {\n return toPositiveMultipleOf5(e);\n } catch {\n warnings.push({ code: 'invalid_lesson_durations', context: x.lesson_durations });\n return undefined;\n }\n })\n .filter((x): x is number => x !== undefined);\n\n durations.forEach(preferredDuration => {\n const id = generateId(eventsIdMap);\n const event: C_Event = {\n id,\n course: mergeWith,\n preferredDuration: preferredDuration,\n ...displayName && { displayName },\n ...groups && { groups },\n ...teachers && { teachers },\n ...locations && { locations },\n __raw: x\n };\n eventsIdMap.set(id, event);\n });\n }\n });\n\n\n ////\n //// return\n ////\n return {\n settings,\n locations: [...locationsIdMap .values()],\n teachers: [...teachersIdMap .values()],\n persons: [...personsIdMap .values()],\n groups: [...groupsIdMap .values()],\n courses: [...coursesIdMap .values()],\n events: [...eventsIdMap .values()],\n overlapGroups: [...overlapGroupsKeyMap.values()],\n syllabuses: [...syllabusesIdMap .values()],\n meta: {\n // ...errors .length && { errors: errors },\n ...warnings.length && { warnings: warnings }\n }\n };\n}\n\n\nexport default {\n schedules: _schedules\n} satisfies FromInterface;"],"mappings":"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"}