@royalschedule/maps 3.3.17 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (948) hide show
  1. package/README.md +1 -0
  2. package/dist/Additio/from/courses.js.map +1 -1
  3. package/dist/Additio/from/events.js.map +1 -1
  4. package/dist/Additio/from/groups.js.map +1 -1
  5. package/dist/Additio/from/index.js.map +1 -1
  6. package/dist/Additio/from/locations.js.map +1 -1
  7. package/dist/Additio/from/persons.js +1 -1
  8. package/dist/Additio/from/persons.js.map +1 -1
  9. package/dist/Additio/from/schedules.d.ts +32 -2
  10. package/dist/Additio/from/schedules.js.map +1 -1
  11. package/dist/Additio/from/teachers.js.map +1 -1
  12. package/dist/Additio/index.js.map +1 -1
  13. package/dist/Additio/to/index.d.ts +12 -12
  14. package/dist/Additio/to/index.js.map +1 -1
  15. package/dist/Additio/to/schedules.js +44 -46
  16. package/dist/Additio/to/schedules.js.map +1 -1
  17. package/dist/Additio/types/options.d.ts +8 -0
  18. package/dist/Admentum/from/courses.js.map +1 -1
  19. package/dist/Admentum/from/events.js.map +1 -1
  20. package/dist/Admentum/from/groups.js.map +1 -1
  21. package/dist/Admentum/from/index.js.map +1 -1
  22. package/dist/Admentum/from/locations.js.map +1 -1
  23. package/dist/Admentum/from/persons.js +1 -1
  24. package/dist/Admentum/from/persons.js.map +1 -1
  25. package/dist/Admentum/from/schedules.d.ts +32 -2
  26. package/dist/Admentum/from/schedules.js.map +1 -1
  27. package/dist/Admentum/from/teachers.js.map +1 -1
  28. package/dist/Admentum/index.js.map +1 -1
  29. package/dist/Admentum/to/index.d.ts +11 -10
  30. package/dist/Admentum/to/index.js.map +1 -1
  31. package/dist/Admentum/to/schedules.js +22 -25
  32. package/dist/Admentum/to/schedules.js.map +1 -1
  33. package/dist/Excel/index.d.ts +55 -4
  34. package/dist/Excel/index.js.map +1 -1
  35. package/dist/Excel/v1/from/index.js +7 -7
  36. package/dist/Excel/v1/from/index.js.map +1 -1
  37. package/dist/Excel/v1/index.d.ts +30 -2
  38. package/dist/Excel/v1/index.js.map +1 -1
  39. package/dist/Excel/v2/from/index.js +10 -10
  40. package/dist/Excel/v2/from/index.js.map +1 -1
  41. package/dist/Excel/v2/index.d.ts +53 -2
  42. package/dist/Excel/v2/index.js.map +1 -1
  43. package/dist/IdunSoft/from/courses.js +4 -3
  44. package/dist/IdunSoft/from/courses.js.map +1 -1
  45. package/dist/IdunSoft/from/events.js +43 -32
  46. package/dist/IdunSoft/from/events.js.map +1 -1
  47. package/dist/IdunSoft/from/groups.js +5 -4
  48. package/dist/IdunSoft/from/groups.js.map +1 -1
  49. package/dist/IdunSoft/from/index.js.map +1 -1
  50. package/dist/IdunSoft/from/locations.js +4 -3
  51. package/dist/IdunSoft/from/locations.js.map +1 -1
  52. package/dist/IdunSoft/from/schedules.d.ts +18 -3
  53. package/dist/IdunSoft/from/schedules.js +5 -10
  54. package/dist/IdunSoft/from/schedules.js.map +1 -1
  55. package/dist/IdunSoft/from/teachers.js +4 -3
  56. package/dist/IdunSoft/from/teachers.js.map +1 -1
  57. package/dist/IdunSoft/index.js.map +1 -1
  58. package/dist/IdunSoft/to/index.d.ts +2 -3
  59. package/dist/IdunSoft/to/index.js.map +1 -1
  60. package/dist/IdunSoft/to/schedules.js +22 -21
  61. package/dist/IdunSoft/to/schedules.js.map +1 -1
  62. package/dist/InfoMentor/index.js.map +1 -1
  63. package/dist/InfoMentor/to/index.d.ts +2 -2
  64. package/dist/InfoMentor/to/index.js.map +1 -1
  65. package/dist/InfoMentor/to/schedules.js +26 -27
  66. package/dist/InfoMentor/to/schedules.js.map +1 -1
  67. package/dist/PlanDigital/from/index.js.map +1 -1
  68. package/dist/PlanDigital/from/schedules.js +7 -6
  69. package/dist/PlanDigital/from/schedules.js.map +1 -1
  70. package/dist/PlanDigital/index.d.ts +106 -5
  71. package/dist/PlanDigital/index.js +0 -2
  72. package/dist/PlanDigital/index.js.map +1 -1
  73. package/dist/PlanDigital/types/index.d.ts +12 -11
  74. package/dist/Quiculum/file/to/index.d.ts +1 -1
  75. package/dist/Quiculum/file/to/schedules.js +11 -13
  76. package/dist/Quiculum/file/to/schedules.js.map +1 -1
  77. package/dist/RS/from/division.d.ts +7 -0
  78. package/dist/RS/from/division.js +14 -0
  79. package/dist/RS/from/division.js.map +1 -0
  80. package/dist/RS/from/index.js +12 -0
  81. package/dist/RS/from/index.js.map +1 -0
  82. package/dist/RS/from/schedules.d.ts +8 -0
  83. package/dist/RS/from/schedules.js +36 -0
  84. package/dist/RS/from/schedules.js.map +1 -0
  85. package/dist/RS/index.d.ts +11 -12
  86. package/dist/RS/index.js +4 -8
  87. package/dist/RS/index.js.map +1 -1
  88. package/dist/RS/make-connected.d.ts +24 -0
  89. package/dist/RS/make-connected.js +258 -0
  90. package/dist/RS/make-connected.js.map +1 -0
  91. package/dist/RS/to/index.js +8 -0
  92. package/dist/RS/to/index.js.map +1 -0
  93. package/dist/RS/to/initial-configuration.js +43 -0
  94. package/dist/RS/to/initial-configuration.js.map +1 -0
  95. package/dist/RS/to/input/collections.js +57 -0
  96. package/dist/RS/to/input/collections.js.map +1 -0
  97. package/dist/RS/{v3/to → to/input}/default.js +10 -18
  98. package/dist/RS/to/input/default.js.map +1 -0
  99. package/dist/RS/to/input/dependencies.js +32 -0
  100. package/dist/RS/to/input/dependencies.js.map +1 -0
  101. package/dist/RS/to/input/dynamic-locked-times.js +67 -0
  102. package/dist/RS/to/input/dynamic-locked-times.js.map +1 -0
  103. package/dist/RS/to/input/events.js +84 -0
  104. package/dist/RS/to/input/events.js.map +1 -0
  105. package/dist/RS/to/input/groups.js +36 -0
  106. package/dist/RS/to/input/groups.js.map +1 -0
  107. package/dist/RS/to/input/individuals.js +49 -0
  108. package/dist/RS/to/input/individuals.js.map +1 -0
  109. package/dist/RS/to/input/input.js +40 -0
  110. package/dist/RS/to/input/input.js.map +1 -0
  111. package/dist/RS/to/input/intervals.js +99 -0
  112. package/dist/RS/to/input/intervals.js.map +1 -0
  113. package/dist/RS/to/input/periods.js +44 -0
  114. package/dist/RS/to/input/periods.js.map +1 -0
  115. package/dist/RS/to/input/settings.js +17 -0
  116. package/dist/RS/to/input/settings.js.map +1 -0
  117. package/dist/RS/to/input/teachers.js +36 -0
  118. package/dist/RS/to/input/teachers.js.map +1 -0
  119. package/dist/RS/to/input/util/attach-locked-times.js +27 -0
  120. package/dist/RS/to/input/util/attach-locked-times.js.map +1 -0
  121. package/dist/RS/to/input/util/parse-days.js +10 -0
  122. package/dist/RS/to/input/util/parse-days.js.map +1 -0
  123. package/dist/RS/to/input/util/parse-group-references.js +58 -0
  124. package/dist/RS/to/input/util/parse-group-references.js.map +1 -0
  125. package/dist/RS/to/input/util/parse-intervals.js +55 -0
  126. package/dist/RS/to/input/util/parse-intervals.js.map +1 -0
  127. package/dist/RS/to/input/util/parse-location-references.js +31 -0
  128. package/dist/RS/to/input/util/parse-location-references.js.map +1 -0
  129. package/dist/RS/to/input/util/parse-max-working-hours.js +17 -0
  130. package/dist/RS/to/input/util/parse-max-working-hours.js.map +1 -0
  131. package/dist/RS/to/input/util/parse-minimum-break-length.js +19 -0
  132. package/dist/RS/to/input/util/parse-minimum-break-length.js.map +1 -0
  133. package/dist/RS/to/input/util/util.js +61 -0
  134. package/dist/RS/to/input/util/util.js.map +1 -0
  135. package/dist/RS/to/schedules.d.ts +7 -0
  136. package/dist/RS/to/schedules.js +40 -0
  137. package/dist/RS/to/schedules.js.map +1 -0
  138. package/dist/RS/{v3/types → types}/algorithm-parameters.d.ts +1 -1
  139. package/dist/RS/types/collections.d.ts +26 -0
  140. package/dist/RS/types/configurations.d.ts +10 -0
  141. package/dist/RS/{v3/types → types}/default.d.ts +4 -5
  142. package/dist/RS/types/dependencies.d.ts +16 -0
  143. package/dist/RS/types/event-configuration.d.ts +20 -0
  144. package/dist/RS/types/events.d.ts +27 -0
  145. package/dist/RS/{v2/types → types}/groups.d.ts +13 -12
  146. package/dist/RS/types/index.d.ts +45 -0
  147. package/dist/RS/types/individuals.d.ts +16 -0
  148. package/dist/RS/{v2/types → types}/locked-times.d.ts +2 -1
  149. package/dist/RS/types/root-intervals.d.ts +10 -0
  150. package/dist/RS/types/schedule-data.d.ts +16 -0
  151. package/dist/RS/{v2/types → types}/settings.d.ts +1 -1
  152. package/dist/RS/types/shared.d.ts +27 -0
  153. package/dist/RS/types/to.d.ts +59 -0
  154. package/dist/SchoolSoft/api/from/index.js.map +1 -1
  155. package/dist/SchoolSoft/api/from/schedules.js +31 -37
  156. package/dist/SchoolSoft/api/from/schedules.js.map +1 -1
  157. package/dist/SchoolSoft/api/index.d.ts +14 -2
  158. package/dist/SchoolSoft/api/index.js.map +1 -1
  159. package/dist/SchoolSoft/file/from/index.js.map +1 -1
  160. package/dist/SchoolSoft/file/from/schedules.js +36 -46
  161. package/dist/SchoolSoft/file/from/schedules.js.map +1 -1
  162. package/dist/SchoolSoft/file/index.d.ts +2 -3
  163. package/dist/SchoolSoft/file/index.js.map +1 -1
  164. package/dist/SchoolSoft/file/to/index.d.ts +6 -13
  165. package/dist/SchoolSoft/file/to/schedules.js +40 -42
  166. package/dist/SchoolSoft/file/to/schedules.js.map +1 -1
  167. package/dist/SchoolSoft/index.d.ts +2 -3
  168. package/dist/SchoolSoft/index.js.map +1 -1
  169. package/dist/Schoolity/txt/index.js.map +1 -1
  170. package/dist/Schoolity/txt/to/index.d.ts +3 -3
  171. package/dist/Schoolity/txt/to/index.js.map +1 -1
  172. package/dist/Schoolity/txt/to/schedules.js +78 -96
  173. package/dist/Schoolity/txt/to/schedules.js.map +1 -1
  174. package/dist/Skola24/index.js.map +1 -1
  175. package/dist/Skola24/mdb/from/course-and-events.js +36 -29
  176. package/dist/Skola24/mdb/from/course-and-events.js.map +1 -1
  177. package/dist/Skola24/mdb/from/groups.js.map +1 -1
  178. package/dist/Skola24/mdb/from/index.js.map +1 -1
  179. package/dist/Skola24/mdb/from/locations.js.map +1 -1
  180. package/dist/Skola24/mdb/from/schedule.d.ts +21 -3
  181. package/dist/Skola24/mdb/from/schedule.js +15 -17
  182. package/dist/Skola24/mdb/from/schedule.js.map +1 -1
  183. package/dist/Skola24/mdb/from/teachers.js.map +1 -1
  184. package/dist/Skola24/mdb/index.js.map +1 -1
  185. package/dist/Skola24/mdb/types/index.d.ts +7 -0
  186. package/dist/Skola24/txt/from/calendar-exceptions.js.map +1 -1
  187. package/dist/Skola24/txt/from/division.js.map +1 -1
  188. package/dist/Skola24/txt/from/index.js.map +1 -1
  189. package/dist/Skola24/txt/from/period.js.map +1 -1
  190. package/dist/Skola24/txt/from/schedules.d.ts +16 -0
  191. package/dist/Skola24/txt/from/schedules.js +90 -80
  192. package/dist/Skola24/txt/from/schedules.js.map +1 -1
  193. package/dist/Skola24/txt/index.d.ts +17 -5
  194. package/dist/Skola24/txt/index.js.map +1 -1
  195. package/dist/Skola24/txt/to/index.d.ts +3 -3
  196. package/dist/Skola24/txt/to/index.js.map +1 -1
  197. package/dist/Skola24/txt/to/schedules.js +76 -91
  198. package/dist/Skola24/txt/to/schedules.js.map +1 -1
  199. package/dist/Skola24/txt/types/index.d.ts +17 -1
  200. package/dist/common/constants.js +2 -2
  201. package/dist/common/constants.js.map +1 -1
  202. package/dist/common/functions.js +16 -21
  203. package/dist/common/functions.js.map +1 -1
  204. package/dist/common/get-date.js +5 -6
  205. package/dist/common/get-date.js.map +1 -1
  206. package/dist/common/make-chainable/index.js +36 -0
  207. package/dist/common/make-chainable/index.js.map +1 -0
  208. package/dist/common/types.d.ts +19 -0
  209. package/dist/core/from/courses.js +12 -0
  210. package/dist/core/from/courses.js.map +1 -0
  211. package/dist/core/from/events.js +13 -0
  212. package/dist/core/from/events.js.map +1 -0
  213. package/dist/core/from/exceptions.js +12 -0
  214. package/dist/core/from/exceptions.js.map +1 -0
  215. package/dist/core/from/groups.js +12 -0
  216. package/dist/core/from/groups.js.map +1 -0
  217. package/dist/core/{v2/from → from}/index.js +1 -1
  218. package/dist/core/from/index.js.map +1 -0
  219. package/dist/core/from/locations.js +12 -0
  220. package/dist/core/from/locations.js.map +1 -0
  221. package/dist/core/from/locked-times.js +12 -0
  222. package/dist/core/from/locked-times.js.map +1 -0
  223. package/dist/core/from/overlap-groups.js +12 -0
  224. package/dist/core/from/overlap-groups.js.map +1 -0
  225. package/dist/core/from/periods.js +12 -0
  226. package/dist/core/from/periods.js.map +1 -0
  227. package/dist/core/from/persons.js +12 -0
  228. package/dist/core/from/persons.js.map +1 -0
  229. package/dist/core/from/root-intervals.js +12 -0
  230. package/dist/core/from/root-intervals.js.map +1 -0
  231. package/dist/core/from/schedules.d.ts +7 -0
  232. package/dist/core/from/schedules.js +35 -0
  233. package/dist/core/from/schedules.js.map +1 -0
  234. package/dist/core/{v2/from → from}/syllabuses.js +1 -1
  235. package/dist/core/from/syllabuses.js.map +1 -0
  236. package/dist/core/from/teachers.js +12 -0
  237. package/dist/core/from/teachers.js.map +1 -0
  238. package/dist/core/index.d.ts +6 -12
  239. package/dist/core/index.js +4 -6
  240. package/dist/core/index.js.map +1 -1
  241. package/dist/core/to/courses.js +43 -0
  242. package/dist/core/to/courses.js.map +1 -0
  243. package/dist/core/to/division.js +10 -0
  244. package/dist/core/to/division.js.map +1 -0
  245. package/dist/core/to/events.js +43 -0
  246. package/dist/core/to/events.js.map +1 -0
  247. package/dist/core/to/exceptions.js +27 -0
  248. package/dist/core/to/exceptions.js.map +1 -0
  249. package/dist/core/to/groups.js +23 -0
  250. package/dist/core/to/groups.js.map +1 -0
  251. package/dist/core/{v1/to → to}/index.d.ts +1 -1
  252. package/dist/{RS/v3 → core}/to/index.js +1 -1
  253. package/dist/core/to/index.js.map +1 -0
  254. package/dist/core/to/locations.js +19 -0
  255. package/dist/core/to/locations.js.map +1 -0
  256. package/dist/core/to/locked-times.js +21 -0
  257. package/dist/core/to/locked-times.js.map +1 -0
  258. package/dist/core/to/overlap-groups.js +28 -0
  259. package/dist/core/to/overlap-groups.js.map +1 -0
  260. package/dist/core/to/periods.js +17 -0
  261. package/dist/core/to/periods.js.map +1 -0
  262. package/dist/core/to/persons.js +23 -0
  263. package/dist/core/to/persons.js.map +1 -0
  264. package/dist/core/to/root-intervals.js +17 -0
  265. package/dist/core/to/root-intervals.js.map +1 -0
  266. package/dist/core/to/schedules.d.ts +44 -0
  267. package/dist/core/to/schedules.js +40 -0
  268. package/dist/core/to/schedules.js.map +1 -0
  269. package/dist/core/to/settings.js +16 -0
  270. package/dist/core/to/settings.js.map +1 -0
  271. package/dist/core/to/syllabuses.js +17 -0
  272. package/dist/core/to/syllabuses.js.map +1 -0
  273. package/dist/core/to/teachers.js +24 -0
  274. package/dist/core/to/teachers.js.map +1 -0
  275. package/dist/core/to/util.d.ts +14 -0
  276. package/dist/core/to/util.js +22 -0
  277. package/dist/core/to/util.js.map +1 -0
  278. package/dist/core/types/areas.d.ts +10 -0
  279. package/dist/core/types/common/break-lengths.d.ts +5 -0
  280. package/dist/core/types/common/days.d.ts +8 -0
  281. package/dist/core/types/common/index.d.ts +45 -0
  282. package/dist/core/types/common/intervals.d.ts +20 -0
  283. package/dist/core/types/common/maximum-schedule-span.d.ts +19 -0
  284. package/dist/core/{v2/types → types/common}/meta.d.ts +1 -1
  285. package/dist/core/types/common/planned-schedule-duration.d.ts +13 -0
  286. package/dist/core/types/common/tag.d.ts +9 -0
  287. package/dist/core/types/courses.d.ts +58 -0
  288. package/dist/core/{v2/types → types}/division-settings.d.ts +14 -19
  289. package/dist/core/types/divisions.d.ts +24 -0
  290. package/dist/core/types/events.d.ts +54 -0
  291. package/dist/core/{v2/types → types}/exceptions.d.ts +14 -23
  292. package/dist/core/types/groups.d.ts +41 -0
  293. package/dist/core/types/index.d.ts +117 -15
  294. package/dist/core/types/locations.d.ts +27 -0
  295. package/dist/core/types/locked-times.d.ts +33 -0
  296. package/dist/core/types/overlap-groups.d.ts +14 -0
  297. package/dist/core/types/periods.d.ts +14 -0
  298. package/dist/core/{v2/types → types}/persons.d.ts +13 -22
  299. package/dist/core/types/root-intervals.d.ts +13 -0
  300. package/dist/core/types/schedules.d.ts +44 -0
  301. package/dist/core/types/syllabus.d.ts +18 -0
  302. package/dist/core/{v2/types → types}/teachers.d.ts +20 -30
  303. package/dist/core/util.js +46 -0
  304. package/dist/core/util.js.map +1 -0
  305. package/dist/core/vertex-mapping.d.ts +69 -0
  306. package/dist/identify/constants/index.d.ts +14 -58
  307. package/dist/identify/constants/index.js +7 -72
  308. package/dist/identify/constants/index.js.map +1 -1
  309. package/dist/identify/index.d.ts +1 -1
  310. package/dist/identify/index.js +38 -29
  311. package/dist/identify/index.js.map +1 -1
  312. package/dist/index.d.ts +23 -29
  313. package/dist/index.js +6 -7
  314. package/dist/sdui/from/classes.js.map +1 -1
  315. package/dist/sdui/from/courses.js.map +1 -1
  316. package/dist/sdui/from/holidays.js.map +1 -1
  317. package/dist/sdui/from/hours.js.map +1 -1
  318. package/dist/sdui/from/lessons.js.map +1 -1
  319. package/dist/sdui/from/rooms.js.map +1 -1
  320. package/dist/sdui/from/schedules.d.ts +19 -0
  321. package/dist/sdui/from/schedules.js +3 -3
  322. package/dist/sdui/from/schedules.js.map +1 -1
  323. package/dist/sdui/from/school-years.js.map +1 -1
  324. package/dist/sdui/from/subjects.js.map +1 -1
  325. package/dist/sdui/from/substitution-plans.js.map +1 -1
  326. package/dist/sdui/from/teachers.js.map +1 -1
  327. package/dist/sdui/index.d.ts +19 -11
  328. package/dist/sdui/index.js.map +1 -1
  329. package/dist/sdui/to/classes.js +4 -2
  330. package/dist/sdui/to/classes.js.map +1 -1
  331. package/dist/sdui/to/courses.js +5 -5
  332. package/dist/sdui/to/courses.js.map +1 -1
  333. package/dist/sdui/to/holidays.js +3 -2
  334. package/dist/sdui/to/holidays.js.map +1 -1
  335. package/dist/sdui/to/hours.js +4 -2
  336. package/dist/sdui/to/hours.js.map +1 -1
  337. package/dist/sdui/to/index.d.ts +11 -12
  338. package/dist/sdui/to/lessons.js +10 -9
  339. package/dist/sdui/to/lessons.js.map +1 -1
  340. package/dist/sdui/to/rooms.js +4 -2
  341. package/dist/sdui/to/rooms.js.map +1 -1
  342. package/dist/sdui/to/schedules.js +9 -9
  343. package/dist/sdui/to/schedules.js.map +1 -1
  344. package/dist/sdui/to/school-years.js +4 -3
  345. package/dist/sdui/to/school-years.js.map +1 -1
  346. package/dist/sdui/to/subjects.js.map +1 -1
  347. package/dist/sdui/to/substitution-plans.js +12 -11
  348. package/dist/sdui/to/substitution-plans.js.map +1 -1
  349. package/dist/sdui/to/teachers.js +4 -4
  350. package/dist/sdui/to/teachers.js.map +1 -1
  351. package/dist/sdui/types/index.d.ts +2 -0
  352. package/dist/vKlass/from/index.js +1 -3
  353. package/dist/vKlass/from/index.js.map +1 -1
  354. package/dist/vKlass/from/schedule.d.ts +18 -3
  355. package/dist/vKlass/from/schedule.js +16 -19
  356. package/dist/vKlass/from/schedule.js.map +1 -1
  357. package/dist/vKlass/index.d.ts +6 -4
  358. package/dist/vKlass/index.js.map +1 -1
  359. package/dist/vKlass/to/schedules.d.ts +1 -1
  360. package/dist/vKlass/to/schedules.js +5 -12
  361. package/dist/vKlass/to/schedules.js.map +1 -1
  362. package/dist/vKlass/types/index.d.ts +5 -5
  363. package/package.json +38 -29
  364. package/dist/PlanDigital/to/index.d.ts +0 -10
  365. package/dist/PlanDigital/to/index.js +0 -10
  366. package/dist/PlanDigital/to/index.js.map +0 -1
  367. package/dist/PlanDigital/to/schedules.js +0 -15
  368. package/dist/PlanDigital/to/schedules.js.map +0 -1
  369. package/dist/RS/v0/from/available-dependencies.js +0 -38
  370. package/dist/RS/v0/from/available-dependencies.js.map +0 -1
  371. package/dist/RS/v0/from/break-lengths.js +0 -15
  372. package/dist/RS/v0/from/break-lengths.js.map +0 -1
  373. package/dist/RS/v0/from/course-events.js +0 -68
  374. package/dist/RS/v0/from/course-events.js.map +0 -1
  375. package/dist/RS/v0/from/courses.js +0 -53
  376. package/dist/RS/v0/from/courses.js.map +0 -1
  377. package/dist/RS/v0/from/days.js +0 -14
  378. package/dist/RS/v0/from/days.js.map +0 -1
  379. package/dist/RS/v0/from/dependencies.js +0 -29
  380. package/dist/RS/v0/from/dependencies.js.map +0 -1
  381. package/dist/RS/v0/from/groups.js +0 -32
  382. package/dist/RS/v0/from/groups.js.map +0 -1
  383. package/dist/RS/v0/from/index.js +0 -32
  384. package/dist/RS/v0/from/index.js.map +0 -1
  385. package/dist/RS/v0/from/intervals.js +0 -15
  386. package/dist/RS/v0/from/intervals.js.map +0 -1
  387. package/dist/RS/v0/from/locked-times.js +0 -23
  388. package/dist/RS/v0/from/locked-times.js.map +0 -1
  389. package/dist/RS/v0/from/placements.js +0 -20
  390. package/dist/RS/v0/from/placements.js.map +0 -1
  391. package/dist/RS/v0/from/schedules.js +0 -44
  392. package/dist/RS/v0/from/schedules.js.map +0 -1
  393. package/dist/RS/v0/from/settings.js +0 -24
  394. package/dist/RS/v0/from/settings.js.map +0 -1
  395. package/dist/RS/v0/from/teachers.js +0 -31
  396. package/dist/RS/v0/from/teachers.js.map +0 -1
  397. package/dist/RS/v0/index.d.ts +0 -43
  398. package/dist/RS/v0/index.js +0 -12
  399. package/dist/RS/v0/index.js.map +0 -1
  400. package/dist/RS/v0/to/available-dependencies.js +0 -17
  401. package/dist/RS/v0/to/available-dependencies.js.map +0 -1
  402. package/dist/RS/v0/to/configurations.js +0 -22
  403. package/dist/RS/v0/to/configurations.js.map +0 -1
  404. package/dist/RS/v0/to/constraints.js +0 -34
  405. package/dist/RS/v0/to/constraints.js.map +0 -1
  406. package/dist/RS/v0/to/course-events/days.js +0 -13
  407. package/dist/RS/v0/to/course-events/days.js.map +0 -1
  408. package/dist/RS/v0/to/course-events/dependencies.js +0 -18
  409. package/dist/RS/v0/to/course-events/dependencies.js.map +0 -1
  410. package/dist/RS/v0/to/course-events/groups.js +0 -39
  411. package/dist/RS/v0/to/course-events/groups.js.map +0 -1
  412. package/dist/RS/v0/to/course-events/in-locations.js +0 -17
  413. package/dist/RS/v0/to/course-events/in-locations.js.map +0 -1
  414. package/dist/RS/v0/to/course-events/index.js +0 -52
  415. package/dist/RS/v0/to/course-events/index.js.map +0 -1
  416. package/dist/RS/v0/to/course-events/intervals.js +0 -12
  417. package/dist/RS/v0/to/course-events/intervals.js.map +0 -1
  418. package/dist/RS/v0/to/course-events/meta.js +0 -21
  419. package/dist/RS/v0/to/course-events/meta.js.map +0 -1
  420. package/dist/RS/v0/to/courses.js +0 -56
  421. package/dist/RS/v0/to/courses.js.map +0 -1
  422. package/dist/RS/v0/to/days.js +0 -11
  423. package/dist/RS/v0/to/days.js.map +0 -1
  424. package/dist/RS/v0/to/dependencies.js +0 -26
  425. package/dist/RS/v0/to/dependencies.js.map +0 -1
  426. package/dist/RS/v0/to/groups.js +0 -32
  427. package/dist/RS/v0/to/groups.js.map +0 -1
  428. package/dist/RS/v0/to/index.d.ts +0 -46
  429. package/dist/RS/v0/to/index.js +0 -34
  430. package/dist/RS/v0/to/index.js.map +0 -1
  431. package/dist/RS/v0/to/intervals.js +0 -17
  432. package/dist/RS/v0/to/intervals.js.map +0 -1
  433. package/dist/RS/v0/to/locked-times.js +0 -43
  434. package/dist/RS/v0/to/locked-times.js.map +0 -1
  435. package/dist/RS/v0/to/schedules.js +0 -16
  436. package/dist/RS/v0/to/schedules.js.map +0 -1
  437. package/dist/RS/v0/to/settings.js +0 -28
  438. package/dist/RS/v0/to/settings.js.map +0 -1
  439. package/dist/RS/v0/to/teachers.js +0 -30
  440. package/dist/RS/v0/to/teachers.js.map +0 -1
  441. package/dist/RS/v0/types/areas.d.ts +0 -8
  442. package/dist/RS/v0/types/available-dependencies.d.ts +0 -8
  443. package/dist/RS/v0/types/break-lengths.d.ts +0 -9
  444. package/dist/RS/v0/types/configurations.d.ts +0 -7
  445. package/dist/RS/v0/types/constraints.d.ts +0 -17
  446. package/dist/RS/v0/types/course-events.d.ts +0 -26
  447. package/dist/RS/v0/types/courses.d.ts +0 -27
  448. package/dist/RS/v0/types/days.d.ts +0 -8
  449. package/dist/RS/v0/types/dependencies.d.ts +0 -17
  450. package/dist/RS/v0/types/groups.d.ts +0 -25
  451. package/dist/RS/v0/types/index.d.ts +0 -31
  452. package/dist/RS/v0/types/intervals.d.ts +0 -8
  453. package/dist/RS/v0/types/locked-times.d.ts +0 -11
  454. package/dist/RS/v0/types/out-options.d.ts +0 -13
  455. package/dist/RS/v0/types/placements.d.ts +0 -12
  456. package/dist/RS/v0/types/schedules.d.ts +0 -15
  457. package/dist/RS/v0/types/settings.d.ts +0 -26
  458. package/dist/RS/v1/from/available-dependencies.js +0 -38
  459. package/dist/RS/v1/from/available-dependencies.js.map +0 -1
  460. package/dist/RS/v1/from/break-lengths.js +0 -15
  461. package/dist/RS/v1/from/break-lengths.js.map +0 -1
  462. package/dist/RS/v1/from/collections.js +0 -55
  463. package/dist/RS/v1/from/collections.js.map +0 -1
  464. package/dist/RS/v1/from/course-events.js +0 -65
  465. package/dist/RS/v1/from/course-events.js.map +0 -1
  466. package/dist/RS/v1/from/days.js +0 -14
  467. package/dist/RS/v1/from/days.js.map +0 -1
  468. package/dist/RS/v1/from/dependencies.js +0 -31
  469. package/dist/RS/v1/from/dependencies.js.map +0 -1
  470. package/dist/RS/v1/from/groups.js +0 -34
  471. package/dist/RS/v1/from/groups.js.map +0 -1
  472. package/dist/RS/v1/from/index.js +0 -32
  473. package/dist/RS/v1/from/index.js.map +0 -1
  474. package/dist/RS/v1/from/intervals.js +0 -18
  475. package/dist/RS/v1/from/intervals.js.map +0 -1
  476. package/dist/RS/v1/from/locked-times.js +0 -21
  477. package/dist/RS/v1/from/locked-times.js.map +0 -1
  478. package/dist/RS/v1/from/placements.js +0 -21
  479. package/dist/RS/v1/from/placements.js.map +0 -1
  480. package/dist/RS/v1/from/schedules.js +0 -44
  481. package/dist/RS/v1/from/schedules.js.map +0 -1
  482. package/dist/RS/v1/from/settings.js +0 -25
  483. package/dist/RS/v1/from/settings.js.map +0 -1
  484. package/dist/RS/v1/from/teachers.js +0 -33
  485. package/dist/RS/v1/from/teachers.js.map +0 -1
  486. package/dist/RS/v1/index.d.ts +0 -45
  487. package/dist/RS/v1/index.js +0 -12
  488. package/dist/RS/v1/index.js.map +0 -1
  489. package/dist/RS/v1/to/available-dependencies.js +0 -25
  490. package/dist/RS/v1/to/available-dependencies.js.map +0 -1
  491. package/dist/RS/v1/to/break-lengths.js +0 -19
  492. package/dist/RS/v1/to/break-lengths.js.map +0 -1
  493. package/dist/RS/v1/to/collections.js +0 -51
  494. package/dist/RS/v1/to/collections.js.map +0 -1
  495. package/dist/RS/v1/to/configurations.js +0 -22
  496. package/dist/RS/v1/to/configurations.js.map +0 -1
  497. package/dist/RS/v1/to/constraints.js +0 -26
  498. package/dist/RS/v1/to/constraints.js.map +0 -1
  499. package/dist/RS/v1/to/course-events/days.js +0 -12
  500. package/dist/RS/v1/to/course-events/days.js.map +0 -1
  501. package/dist/RS/v1/to/course-events/dependencies.js +0 -15
  502. package/dist/RS/v1/to/course-events/dependencies.js.map +0 -1
  503. package/dist/RS/v1/to/course-events/groups.js +0 -30
  504. package/dist/RS/v1/to/course-events/groups.js.map +0 -1
  505. package/dist/RS/v1/to/course-events/in-locations.js +0 -17
  506. package/dist/RS/v1/to/course-events/in-locations.js.map +0 -1
  507. package/dist/RS/v1/to/course-events/index.js +0 -47
  508. package/dist/RS/v1/to/course-events/index.js.map +0 -1
  509. package/dist/RS/v1/to/course-events/intervals.js +0 -11
  510. package/dist/RS/v1/to/course-events/intervals.js.map +0 -1
  511. package/dist/RS/v1/to/course-events/meta.js +0 -21
  512. package/dist/RS/v1/to/course-events/meta.js.map +0 -1
  513. package/dist/RS/v1/to/days.js +0 -11
  514. package/dist/RS/v1/to/days.js.map +0 -1
  515. package/dist/RS/v1/to/dependencies.js +0 -28
  516. package/dist/RS/v1/to/dependencies.js.map +0 -1
  517. package/dist/RS/v1/to/groups.js +0 -34
  518. package/dist/RS/v1/to/groups.js.map +0 -1
  519. package/dist/RS/v1/to/index.d.ts +0 -46
  520. package/dist/RS/v1/to/index.js +0 -34
  521. package/dist/RS/v1/to/index.js.map +0 -1
  522. package/dist/RS/v1/to/intervals.js +0 -17
  523. package/dist/RS/v1/to/intervals.js.map +0 -1
  524. package/dist/RS/v1/to/locked-times.js +0 -49
  525. package/dist/RS/v1/to/locked-times.js.map +0 -1
  526. package/dist/RS/v1/to/schedules.js +0 -16
  527. package/dist/RS/v1/to/schedules.js.map +0 -1
  528. package/dist/RS/v1/to/settings.js +0 -34
  529. package/dist/RS/v1/to/settings.js.map +0 -1
  530. package/dist/RS/v1/to/teachers.js +0 -34
  531. package/dist/RS/v1/to/teachers.js.map +0 -1
  532. package/dist/RS/v1/types/areas.d.ts +0 -8
  533. package/dist/RS/v1/types/available-dependencies.d.ts +0 -8
  534. package/dist/RS/v1/types/break-lengths.d.ts +0 -9
  535. package/dist/RS/v1/types/collections.d.ts +0 -27
  536. package/dist/RS/v1/types/configurations.d.ts +0 -10
  537. package/dist/RS/v1/types/constraints.d.ts +0 -17
  538. package/dist/RS/v1/types/course-events.d.ts +0 -26
  539. package/dist/RS/v1/types/days.d.ts +0 -8
  540. package/dist/RS/v1/types/dependencies.d.ts +0 -17
  541. package/dist/RS/v1/types/groups.d.ts +0 -25
  542. package/dist/RS/v1/types/index.d.ts +0 -31
  543. package/dist/RS/v1/types/intervals.d.ts +0 -8
  544. package/dist/RS/v1/types/locked-times.d.ts +0 -11
  545. package/dist/RS/v1/types/out-options.d.ts +0 -11
  546. package/dist/RS/v1/types/placements.d.ts +0 -12
  547. package/dist/RS/v1/types/schedules.d.ts +0 -16
  548. package/dist/RS/v1/types/settings.d.ts +0 -31
  549. package/dist/RS/v2/from/available-dependencies.js +0 -38
  550. package/dist/RS/v2/from/available-dependencies.js.map +0 -1
  551. package/dist/RS/v2/from/break-lengths.js +0 -15
  552. package/dist/RS/v2/from/break-lengths.js.map +0 -1
  553. package/dist/RS/v2/from/collections.js +0 -57
  554. package/dist/RS/v2/from/collections.js.map +0 -1
  555. package/dist/RS/v2/from/course-events.d.ts +0 -12
  556. package/dist/RS/v2/from/course-events.js +0 -67
  557. package/dist/RS/v2/from/course-events.js.map +0 -1
  558. package/dist/RS/v2/from/days.js +0 -14
  559. package/dist/RS/v2/from/days.js.map +0 -1
  560. package/dist/RS/v2/from/dependencies.js +0 -31
  561. package/dist/RS/v2/from/dependencies.js.map +0 -1
  562. package/dist/RS/v2/from/groups.js +0 -35
  563. package/dist/RS/v2/from/groups.js.map +0 -1
  564. package/dist/RS/v2/from/index.js +0 -32
  565. package/dist/RS/v2/from/index.js.map +0 -1
  566. package/dist/RS/v2/from/intervals.js +0 -18
  567. package/dist/RS/v2/from/intervals.js.map +0 -1
  568. package/dist/RS/v2/from/locked-times.js +0 -21
  569. package/dist/RS/v2/from/locked-times.js.map +0 -1
  570. package/dist/RS/v2/from/placements.js +0 -32
  571. package/dist/RS/v2/from/placements.js.map +0 -1
  572. package/dist/RS/v2/from/schedules.js +0 -78
  573. package/dist/RS/v2/from/schedules.js.map +0 -1
  574. package/dist/RS/v2/from/settings.js +0 -31
  575. package/dist/RS/v2/from/settings.js.map +0 -1
  576. package/dist/RS/v2/from/teachers.js +0 -33
  577. package/dist/RS/v2/from/teachers.js.map +0 -1
  578. package/dist/RS/v2/index.d.ts +0 -63
  579. package/dist/RS/v2/index.js +0 -12
  580. package/dist/RS/v2/index.js.map +0 -1
  581. package/dist/RS/v2/to/available-dependencies.js +0 -25
  582. package/dist/RS/v2/to/available-dependencies.js.map +0 -1
  583. package/dist/RS/v2/to/break-lengths.js +0 -19
  584. package/dist/RS/v2/to/break-lengths.js.map +0 -1
  585. package/dist/RS/v2/to/collections.js +0 -60
  586. package/dist/RS/v2/to/collections.js.map +0 -1
  587. package/dist/RS/v2/to/configurations.js +0 -23
  588. package/dist/RS/v2/to/configurations.js.map +0 -1
  589. package/dist/RS/v2/to/constraints.js +0 -88
  590. package/dist/RS/v2/to/constraints.js.map +0 -1
  591. package/dist/RS/v2/to/course-events/days.js +0 -12
  592. package/dist/RS/v2/to/course-events/days.js.map +0 -1
  593. package/dist/RS/v2/to/course-events/dependencies.js +0 -14
  594. package/dist/RS/v2/to/course-events/dependencies.js.map +0 -1
  595. package/dist/RS/v2/to/course-events/groups.js +0 -38
  596. package/dist/RS/v2/to/course-events/groups.js.map +0 -1
  597. package/dist/RS/v2/to/course-events/in-locations.js +0 -18
  598. package/dist/RS/v2/to/course-events/in-locations.js.map +0 -1
  599. package/dist/RS/v2/to/course-events/index.js +0 -56
  600. package/dist/RS/v2/to/course-events/index.js.map +0 -1
  601. package/dist/RS/v2/to/course-events/intervals.js +0 -11
  602. package/dist/RS/v2/to/course-events/intervals.js.map +0 -1
  603. package/dist/RS/v2/to/course-events/meta.js +0 -21
  604. package/dist/RS/v2/to/course-events/meta.js.map +0 -1
  605. package/dist/RS/v2/to/days.js +0 -11
  606. package/dist/RS/v2/to/days.js.map +0 -1
  607. package/dist/RS/v2/to/default.js +0 -36
  608. package/dist/RS/v2/to/default.js.map +0 -1
  609. package/dist/RS/v2/to/dependencies.js +0 -28
  610. package/dist/RS/v2/to/dependencies.js.map +0 -1
  611. package/dist/RS/v2/to/destructure.js +0 -40
  612. package/dist/RS/v2/to/destructure.js.map +0 -1
  613. package/dist/RS/v2/to/dynamic-locked-times.js +0 -57
  614. package/dist/RS/v2/to/dynamic-locked-times.js.map +0 -1
  615. package/dist/RS/v2/to/groups.js +0 -37
  616. package/dist/RS/v2/to/groups.js.map +0 -1
  617. package/dist/RS/v2/to/index.d.ts +0 -44
  618. package/dist/RS/v2/to/index.js +0 -36
  619. package/dist/RS/v2/to/index.js.map +0 -1
  620. package/dist/RS/v2/to/intervals.js +0 -32
  621. package/dist/RS/v2/to/intervals.js.map +0 -1
  622. package/dist/RS/v2/to/locked-times.js +0 -49
  623. package/dist/RS/v2/to/locked-times.js.map +0 -1
  624. package/dist/RS/v2/to/periods.js +0 -48
  625. package/dist/RS/v2/to/periods.js.map +0 -1
  626. package/dist/RS/v2/to/persons.js +0 -23
  627. package/dist/RS/v2/to/persons.js.map +0 -1
  628. package/dist/RS/v2/to/schedules.js +0 -19
  629. package/dist/RS/v2/to/schedules.js.map +0 -1
  630. package/dist/RS/v2/to/settings.js +0 -18
  631. package/dist/RS/v2/to/settings.js.map +0 -1
  632. package/dist/RS/v2/to/teachers.js +0 -37
  633. package/dist/RS/v2/to/teachers.js.map +0 -1
  634. package/dist/RS/v2/types/areas.d.ts +0 -8
  635. package/dist/RS/v2/types/available-dependencies.d.ts +0 -8
  636. package/dist/RS/v2/types/break-lengths.d.ts +0 -9
  637. package/dist/RS/v2/types/collections.d.ts +0 -29
  638. package/dist/RS/v2/types/configurations.d.ts +0 -10
  639. package/dist/RS/v2/types/constraints.d.ts +0 -21
  640. package/dist/RS/v2/types/course-events.d.ts +0 -30
  641. package/dist/RS/v2/types/days.d.ts +0 -8
  642. package/dist/RS/v2/types/default.d.ts +0 -25
  643. package/dist/RS/v2/types/dependencies.d.ts +0 -17
  644. package/dist/RS/v2/types/index.d.ts +0 -33
  645. package/dist/RS/v2/types/intervals.d.ts +0 -9
  646. package/dist/RS/v2/types/out-options.d.ts +0 -11
  647. package/dist/RS/v2/types/placements.d.ts +0 -12
  648. package/dist/RS/v2/types/schedules.d.ts +0 -18
  649. package/dist/RS/v3/from/division.js +0 -14
  650. package/dist/RS/v3/from/division.js.map +0 -1
  651. package/dist/RS/v3/from/index.js +0 -12
  652. package/dist/RS/v3/from/index.js.map +0 -1
  653. package/dist/RS/v3/from/schedules.js +0 -34
  654. package/dist/RS/v3/from/schedules.js.map +0 -1
  655. package/dist/RS/v3/index.d.ts +0 -21
  656. package/dist/RS/v3/index.js +0 -12
  657. package/dist/RS/v3/index.js.map +0 -1
  658. package/dist/RS/v3/to/available-dependencies.js +0 -26
  659. package/dist/RS/v3/to/available-dependencies.js.map +0 -1
  660. package/dist/RS/v3/to/break-lengths.js +0 -19
  661. package/dist/RS/v3/to/break-lengths.js.map +0 -1
  662. package/dist/RS/v3/to/collections.js +0 -56
  663. package/dist/RS/v3/to/collections.js.map +0 -1
  664. package/dist/RS/v3/to/configurations.js +0 -23
  665. package/dist/RS/v3/to/configurations.js.map +0 -1
  666. package/dist/RS/v3/to/constraints.js +0 -77
  667. package/dist/RS/v3/to/constraints.js.map +0 -1
  668. package/dist/RS/v3/to/course-events/days.js +0 -12
  669. package/dist/RS/v3/to/course-events/days.js.map +0 -1
  670. package/dist/RS/v3/to/course-events/dependencies.js +0 -14
  671. package/dist/RS/v3/to/course-events/dependencies.js.map +0 -1
  672. package/dist/RS/v3/to/course-events/groups.js +0 -44
  673. package/dist/RS/v3/to/course-events/groups.js.map +0 -1
  674. package/dist/RS/v3/to/course-events/in-locations.js +0 -18
  675. package/dist/RS/v3/to/course-events/in-locations.js.map +0 -1
  676. package/dist/RS/v3/to/course-events/index.js +0 -84
  677. package/dist/RS/v3/to/course-events/index.js.map +0 -1
  678. package/dist/RS/v3/to/course-events/intervals.js +0 -11
  679. package/dist/RS/v3/to/course-events/intervals.js.map +0 -1
  680. package/dist/RS/v3/to/course-events/meta.js +0 -21
  681. package/dist/RS/v3/to/course-events/meta.js.map +0 -1
  682. package/dist/RS/v3/to/days.js +0 -11
  683. package/dist/RS/v3/to/days.js.map +0 -1
  684. package/dist/RS/v3/to/default.js.map +0 -1
  685. package/dist/RS/v3/to/dependencies.js +0 -31
  686. package/dist/RS/v3/to/dependencies.js.map +0 -1
  687. package/dist/RS/v3/to/destructure.js +0 -33
  688. package/dist/RS/v3/to/destructure.js.map +0 -1
  689. package/dist/RS/v3/to/dynamic-locked-times.js +0 -97
  690. package/dist/RS/v3/to/dynamic-locked-times.js.map +0 -1
  691. package/dist/RS/v3/to/groups.js +0 -36
  692. package/dist/RS/v3/to/groups.js.map +0 -1
  693. package/dist/RS/v3/to/index.d.ts +0 -266
  694. package/dist/RS/v3/to/index.js.map +0 -1
  695. package/dist/RS/v3/to/individuals.js +0 -49
  696. package/dist/RS/v3/to/individuals.js.map +0 -1
  697. package/dist/RS/v3/to/intervals.js +0 -32
  698. package/dist/RS/v3/to/intervals.js.map +0 -1
  699. package/dist/RS/v3/to/locked-times.js +0 -49
  700. package/dist/RS/v3/to/locked-times.js.map +0 -1
  701. package/dist/RS/v3/to/periods.js +0 -48
  702. package/dist/RS/v3/to/periods.js.map +0 -1
  703. package/dist/RS/v3/to/schedules.js +0 -39
  704. package/dist/RS/v3/to/schedules.js.map +0 -1
  705. package/dist/RS/v3/to/settings.js +0 -18
  706. package/dist/RS/v3/to/settings.js.map +0 -1
  707. package/dist/RS/v3/to/teachers.js +0 -36
  708. package/dist/RS/v3/to/teachers.js.map +0 -1
  709. package/dist/RS/v3/to/util.js +0 -32
  710. package/dist/RS/v3/to/util.js.map +0 -1
  711. package/dist/RS/v3/types/areas.d.ts +0 -8
  712. package/dist/RS/v3/types/available-dependencies.d.ts +0 -8
  713. package/dist/RS/v3/types/break-lengths.d.ts +0 -9
  714. package/dist/RS/v3/types/collections.d.ts +0 -31
  715. package/dist/RS/v3/types/configurations.d.ts +0 -10
  716. package/dist/RS/v3/types/constraints.d.ts +0 -25
  717. package/dist/RS/v3/types/course-events.d.ts +0 -32
  718. package/dist/RS/v3/types/days.d.ts +0 -8
  719. package/dist/RS/v3/types/dependencies.d.ts +0 -17
  720. package/dist/RS/v3/types/groups.d.ts +0 -25
  721. package/dist/RS/v3/types/index.d.ts +0 -33
  722. package/dist/RS/v3/types/individuals.d.ts +0 -13
  723. package/dist/RS/v3/types/intervals.d.ts +0 -9
  724. package/dist/RS/v3/types/locked-times.d.ts +0 -11
  725. package/dist/RS/v3/types/out-options.d.ts +0 -23
  726. package/dist/RS/v3/types/placements.d.ts +0 -12
  727. package/dist/RS/v3/types/root-intervals.d.ts +0 -10
  728. package/dist/RS/v3/types/schedules.d.ts +0 -24
  729. package/dist/RS/v3/types/settings.d.ts +0 -12
  730. package/dist/SS12000/from/activities.js +0 -35
  731. package/dist/SS12000/from/activities.js.map +0 -1
  732. package/dist/SS12000/from/calendar-events.js +0 -20
  733. package/dist/SS12000/from/calendar-events.js.map +0 -1
  734. package/dist/SS12000/from/duties.js +0 -21
  735. package/dist/SS12000/from/duties.js.map +0 -1
  736. package/dist/SS12000/from/groups.js +0 -23
  737. package/dist/SS12000/from/groups.js.map +0 -1
  738. package/dist/SS12000/from/index.js +0 -24
  739. package/dist/SS12000/from/index.js.map +0 -1
  740. package/dist/SS12000/from/persons.js +0 -43
  741. package/dist/SS12000/from/persons.js.map +0 -1
  742. package/dist/SS12000/from/resources.js +0 -9
  743. package/dist/SS12000/from/resources.js.map +0 -1
  744. package/dist/SS12000/from/rooms.js +0 -18
  745. package/dist/SS12000/from/rooms.js.map +0 -1
  746. package/dist/SS12000/from/syllabuses.js +0 -21
  747. package/dist/SS12000/from/syllabuses.js.map +0 -1
  748. package/dist/SS12000/index.d.ts +0 -73
  749. package/dist/SS12000/index.js +0 -12
  750. package/dist/SS12000/index.js.map +0 -1
  751. package/dist/SS12000/to/activities.js +0 -55
  752. package/dist/SS12000/to/activities.js.map +0 -1
  753. package/dist/SS12000/to/calendar-events.js +0 -47
  754. package/dist/SS12000/to/calendar-events.js.map +0 -1
  755. package/dist/SS12000/to/common.js +0 -16
  756. package/dist/SS12000/to/common.js.map +0 -1
  757. package/dist/SS12000/to/duties.js +0 -36
  758. package/dist/SS12000/to/duties.js.map +0 -1
  759. package/dist/SS12000/to/groups.js +0 -37
  760. package/dist/SS12000/to/groups.js.map +0 -1
  761. package/dist/SS12000/to/index.d.ts +0 -25
  762. package/dist/SS12000/to/index.js +0 -24
  763. package/dist/SS12000/to/index.js.map +0 -1
  764. package/dist/SS12000/to/persons.js +0 -36
  765. package/dist/SS12000/to/persons.js.map +0 -1
  766. package/dist/SS12000/to/resources.js +0 -23
  767. package/dist/SS12000/to/resources.js.map +0 -1
  768. package/dist/SS12000/to/rooms.js +0 -28
  769. package/dist/SS12000/to/rooms.js.map +0 -1
  770. package/dist/SS12000/to/syllabuses.js +0 -30
  771. package/dist/SS12000/to/syllabuses.js.map +0 -1
  772. package/dist/SS12000/types/activities.d.ts +0 -41
  773. package/dist/SS12000/types/calendar-events.d.ts +0 -23
  774. package/dist/SS12000/types/codes.d.ts +0 -9
  775. package/dist/SS12000/types/duties.d.ts +0 -23
  776. package/dist/SS12000/types/duty-assignments.d.ts +0 -13
  777. package/dist/SS12000/types/groups.d.ts +0 -23
  778. package/dist/SS12000/types/index.d.ts +0 -21
  779. package/dist/SS12000/types/organisation.d.ts +0 -20
  780. package/dist/SS12000/types/persons.d.ts +0 -30
  781. package/dist/SS12000/types/resources.d.ts +0 -13
  782. package/dist/SS12000/types/rooms.d.ts +0 -17
  783. package/dist/SS12000/types/syllabus.d.ts +0 -19
  784. package/dist/core/v1/from/courses.js +0 -26
  785. package/dist/core/v1/from/courses.js.map +0 -1
  786. package/dist/core/v1/from/events.js +0 -12
  787. package/dist/core/v1/from/events.js.map +0 -1
  788. package/dist/core/v1/from/groups.js +0 -14
  789. package/dist/core/v1/from/groups.js.map +0 -1
  790. package/dist/core/v1/from/index.js +0 -8
  791. package/dist/core/v1/from/index.js.map +0 -1
  792. package/dist/core/v1/from/locations.js +0 -14
  793. package/dist/core/v1/from/locations.js.map +0 -1
  794. package/dist/core/v1/from/locked-times.js +0 -13
  795. package/dist/core/v1/from/locked-times.js.map +0 -1
  796. package/dist/core/v1/from/overlap-groups.js +0 -13
  797. package/dist/core/v1/from/overlap-groups.js.map +0 -1
  798. package/dist/core/v1/from/periods.js +0 -14
  799. package/dist/core/v1/from/periods.js.map +0 -1
  800. package/dist/core/v1/from/schedules.d.ts +0 -139
  801. package/dist/core/v1/from/schedules.js +0 -36
  802. package/dist/core/v1/from/schedules.js.map +0 -1
  803. package/dist/core/v1/from/teachers.js +0 -14
  804. package/dist/core/v1/from/teachers.js.map +0 -1
  805. package/dist/core/v1/index.d.ts +0 -14
  806. package/dist/core/v1/index.js +0 -12
  807. package/dist/core/v1/index.js.map +0 -1
  808. package/dist/core/v1/to/available-locations.js +0 -11
  809. package/dist/core/v1/to/available-locations.js.map +0 -1
  810. package/dist/core/v1/to/courses.js +0 -33
  811. package/dist/core/v1/to/courses.js.map +0 -1
  812. package/dist/core/v1/to/days.js +0 -13
  813. package/dist/core/v1/to/days.js.map +0 -1
  814. package/dist/core/v1/to/events.js +0 -35
  815. package/dist/core/v1/to/events.js.map +0 -1
  816. package/dist/core/v1/to/groups.js +0 -24
  817. package/dist/core/v1/to/groups.js.map +0 -1
  818. package/dist/core/v1/to/index.js +0 -10
  819. package/dist/core/v1/to/index.js.map +0 -1
  820. package/dist/core/v1/to/intervals.js +0 -14
  821. package/dist/core/v1/to/intervals.js.map +0 -1
  822. package/dist/core/v1/to/locations.js +0 -20
  823. package/dist/core/v1/to/locations.js.map +0 -1
  824. package/dist/core/v1/to/locked-times.js +0 -25
  825. package/dist/core/v1/to/locked-times.js.map +0 -1
  826. package/dist/core/v1/to/overlap-groups.js +0 -30
  827. package/dist/core/v1/to/overlap-groups.js.map +0 -1
  828. package/dist/core/v1/to/periods.js +0 -10
  829. package/dist/core/v1/to/periods.js.map +0 -1
  830. package/dist/core/v1/to/persons.js +0 -22
  831. package/dist/core/v1/to/persons.js.map +0 -1
  832. package/dist/core/v1/to/schedules.d.ts +0 -170
  833. package/dist/core/v1/to/schedules.js +0 -32
  834. package/dist/core/v1/to/schedules.js.map +0 -1
  835. package/dist/core/v1/to/settings.js +0 -13
  836. package/dist/core/v1/to/settings.js.map +0 -1
  837. package/dist/core/v1/to/teachers.js +0 -20
  838. package/dist/core/v1/to/teachers.js.map +0 -1
  839. package/dist/core/v1/types/areas.d.ts +0 -16
  840. package/dist/core/v1/types/available-locations.d.ts +0 -13
  841. package/dist/core/v1/types/break-lengths.d.ts +0 -5
  842. package/dist/core/v1/types/common/coalesced.d.ts +0 -10
  843. package/dist/core/v1/types/courses.d.ts +0 -54
  844. package/dist/core/v1/types/days.d.ts +0 -14
  845. package/dist/core/v1/types/division-settings.d.ts +0 -39
  846. package/dist/core/v1/types/divisions.d.ts +0 -45
  847. package/dist/core/v1/types/events.d.ts +0 -60
  848. package/dist/core/v1/types/groups.d.ts +0 -37
  849. package/dist/core/v1/types/index.d.ts +0 -41
  850. package/dist/core/v1/types/intervals.d.ts +0 -17
  851. package/dist/core/v1/types/locations.d.ts +0 -32
  852. package/dist/core/v1/types/locked-times.d.ts +0 -39
  853. package/dist/core/v1/types/meta.d.ts +0 -9
  854. package/dist/core/v1/types/overlap-groups.d.ts +0 -26
  855. package/dist/core/v1/types/periods.d.ts +0 -22
  856. package/dist/core/v1/types/persons.d.ts +0 -40
  857. package/dist/core/v1/types/teachers.d.ts +0 -34
  858. package/dist/core/v2/from/courses.js +0 -13
  859. package/dist/core/v2/from/courses.js.map +0 -1
  860. package/dist/core/v2/from/events.js +0 -12
  861. package/dist/core/v2/from/events.js.map +0 -1
  862. package/dist/core/v2/from/exceptions.js +0 -13
  863. package/dist/core/v2/from/exceptions.js.map +0 -1
  864. package/dist/core/v2/from/groups.js +0 -13
  865. package/dist/core/v2/from/groups.js.map +0 -1
  866. package/dist/core/v2/from/index.js.map +0 -1
  867. package/dist/core/v2/from/locations.js +0 -13
  868. package/dist/core/v2/from/locations.js.map +0 -1
  869. package/dist/core/v2/from/locked-times.js +0 -13
  870. package/dist/core/v2/from/locked-times.js.map +0 -1
  871. package/dist/core/v2/from/overlap-groups.js +0 -13
  872. package/dist/core/v2/from/overlap-groups.js.map +0 -1
  873. package/dist/core/v2/from/periods.js +0 -13
  874. package/dist/core/v2/from/periods.js.map +0 -1
  875. package/dist/core/v2/from/persons.js +0 -12
  876. package/dist/core/v2/from/persons.js.map +0 -1
  877. package/dist/core/v2/from/root-intervals.js +0 -13
  878. package/dist/core/v2/from/root-intervals.js.map +0 -1
  879. package/dist/core/v2/from/schedules.d.ts +0 -245
  880. package/dist/core/v2/from/schedules.js +0 -48
  881. package/dist/core/v2/from/schedules.js.map +0 -1
  882. package/dist/core/v2/from/syllabuses.js.map +0 -1
  883. package/dist/core/v2/from/teachers.js +0 -13
  884. package/dist/core/v2/from/teachers.js.map +0 -1
  885. package/dist/core/v2/index.d.ts +0 -16
  886. package/dist/core/v2/index.js +0 -12
  887. package/dist/core/v2/index.js.map +0 -1
  888. package/dist/core/v2/to/available-locations.js +0 -11
  889. package/dist/core/v2/to/available-locations.js.map +0 -1
  890. package/dist/core/v2/to/courses.js +0 -44
  891. package/dist/core/v2/to/courses.js.map +0 -1
  892. package/dist/core/v2/to/days.js +0 -13
  893. package/dist/core/v2/to/days.js.map +0 -1
  894. package/dist/core/v2/to/division.js +0 -10
  895. package/dist/core/v2/to/division.js.map +0 -1
  896. package/dist/core/v2/to/events.js +0 -47
  897. package/dist/core/v2/to/events.js.map +0 -1
  898. package/dist/core/v2/to/exceptions.js +0 -29
  899. package/dist/core/v2/to/exceptions.js.map +0 -1
  900. package/dist/core/v2/to/groups.js +0 -34
  901. package/dist/core/v2/to/groups.js.map +0 -1
  902. package/dist/core/v2/to/index.d.ts +0 -9
  903. package/dist/core/v2/to/index.js +0 -10
  904. package/dist/core/v2/to/index.js.map +0 -1
  905. package/dist/core/v2/to/intervals.js +0 -13
  906. package/dist/core/v2/to/intervals.js.map +0 -1
  907. package/dist/core/v2/to/locations.js +0 -35
  908. package/dist/core/v2/to/locations.js.map +0 -1
  909. package/dist/core/v2/to/locked-times.js +0 -25
  910. package/dist/core/v2/to/locked-times.js.map +0 -1
  911. package/dist/core/v2/to/overlap-groups.js +0 -30
  912. package/dist/core/v2/to/overlap-groups.js.map +0 -1
  913. package/dist/core/v2/to/periods.js +0 -10
  914. package/dist/core/v2/to/periods.js.map +0 -1
  915. package/dist/core/v2/to/persons.js +0 -25
  916. package/dist/core/v2/to/persons.js.map +0 -1
  917. package/dist/core/v2/to/root-intervals.js +0 -10
  918. package/dist/core/v2/to/root-intervals.js.map +0 -1
  919. package/dist/core/v2/to/schedules.d.ts +0 -249
  920. package/dist/core/v2/to/schedules.js +0 -40
  921. package/dist/core/v2/to/schedules.js.map +0 -1
  922. package/dist/core/v2/to/settings.js +0 -13
  923. package/dist/core/v2/to/settings.js.map +0 -1
  924. package/dist/core/v2/to/syllabuses.js +0 -16
  925. package/dist/core/v2/to/syllabuses.js.map +0 -1
  926. package/dist/core/v2/to/teachers.js +0 -28
  927. package/dist/core/v2/to/teachers.js.map +0 -1
  928. package/dist/core/v2/types/areas.d.ts +0 -16
  929. package/dist/core/v2/types/available-locations.d.ts +0 -13
  930. package/dist/core/v2/types/break-lengths.d.ts +0 -5
  931. package/dist/core/v2/types/common/coalesced.d.ts +0 -10
  932. package/dist/core/v2/types/common/maximum-schedule-span.d.ts +0 -8
  933. package/dist/core/v2/types/common/planned-schedule-duration.d.ts +0 -7
  934. package/dist/core/v2/types/courses.d.ts +0 -76
  935. package/dist/core/v2/types/days.d.ts +0 -14
  936. package/dist/core/v2/types/divisions.d.ts +0 -54
  937. package/dist/core/v2/types/events.d.ts +0 -76
  938. package/dist/core/v2/types/groups.d.ts +0 -50
  939. package/dist/core/v2/types/index.d.ts +0 -49
  940. package/dist/core/v2/types/intervals.d.ts +0 -17
  941. package/dist/core/v2/types/locations.d.ts +0 -38
  942. package/dist/core/v2/types/locked-times.d.ts +0 -44
  943. package/dist/core/v2/types/overlap-groups.d.ts +0 -26
  944. package/dist/core/v2/types/periods.d.ts +0 -25
  945. package/dist/core/v2/types/root-intervals.d.ts +0 -23
  946. package/dist/core/v2/types/schedules.d.ts +0 -38
  947. package/dist/core/v2/types/syllabus.d.ts +0 -27
  948. package/dist/vKlass/from/index.d.ts +0 -9
@@ -1,20 +1,14 @@
1
+ import { rangesOverlap } from "../../common/functions.js";
1
2
  import moment from "moment";
2
3
 
3
4
  //#region src/vKlass/from/schedule.ts
4
- function createRange(start, end) {
5
- return {
6
- start: moment.utc(start).clone().startOf("isoWeek").startOf("day"),
7
- end: moment.utc(end).clone().endOf("isoWeek").endOf("day")
8
- };
9
- }
10
- function overlaps(a, b) {
11
- if (!a?.start || !a?.end || !b?.start || !b?.end) return false;
12
- return !a.end.isBefore(b.start) && !b.end.isBefore(a.start);
13
- }
14
5
  function schedule_default(src, options) {
15
6
  const warnings = [];
16
7
  const errors = [];
17
- const scheduleRange = createRange(moment.utc(options.beg), moment.utc(options.end));
8
+ const scheduleRange = {
9
+ start: moment.utc(options.beg),
10
+ end: moment.utc(options.end)
11
+ };
18
12
  const teachers = [];
19
13
  src.staff.forEach((x) => {
20
14
  teachers.push({
@@ -32,23 +26,26 @@ function schedule_default(src, options) {
32
26
  });
33
27
  const groupStaffMap = /* @__PURE__ */ new Map();
34
28
  src.groups_staff.forEach((x) => {
35
- groupStaffMap.has(x.groupId) || groupStaffMap.set(x.groupId, /* @__PURE__ */ new Set());
36
- groupStaffMap.get(x.groupId).add(x.userId);
29
+ if (!groupStaffMap.has(x.groupId)) groupStaffMap.set(x.groupId, /* @__PURE__ */ new Set());
30
+ groupStaffMap.get(x.groupId)?.add(x.userId);
37
31
  });
38
32
  const studentClassMap = /* @__PURE__ */ new Map();
39
33
  src.classes_students.forEach((x) => {
40
- studentClassMap.has(x.userId) || studentClassMap.set(x.userId, /* @__PURE__ */ new Set());
41
- studentClassMap.get(x.userId).add(x.classId);
34
+ if (!studentClassMap.has(x.userId)) studentClassMap.set(x.userId, /* @__PURE__ */ new Set());
35
+ studentClassMap.get(x.userId)?.add(x.classId);
42
36
  });
43
37
  const groupClassesMap = /* @__PURE__ */ new Map();
44
38
  src.groups_students.forEach((x) => {
45
- groupClassesMap.has(x.groupId) || groupClassesMap.set(x.groupId, /* @__PURE__ */ new Set());
46
- studentClassMap.get(x.userId)?.forEach((y) => groupClassesMap.get(x.groupId).add(y));
39
+ if (!groupClassesMap.has(x.groupId)) groupClassesMap.set(x.groupId, /* @__PURE__ */ new Set());
40
+ studentClassMap.get(x.userId)?.forEach((y) => groupClassesMap.get(x.groupId)?.add(y));
47
41
  });
48
42
  const courses = [];
49
43
  src.groups.forEach((x) => {
50
- const courseRange = createRange(moment.utc(x.StartDate), moment.utc(x.EndDate));
51
- if (!overlaps(scheduleRange, courseRange)) return;
44
+ const courseRange = {
45
+ start: moment.utc(x.StartDate),
46
+ end: moment.utc(x.EndDate)
47
+ };
48
+ if (!rangesOverlap(scheduleRange, courseRange)) return;
52
49
  const teachers$1 = [...groupStaffMap.get(x.ID) ?? []].map((x$1) => ({ to: x$1.toString() }));
53
50
  const groups$1 = [...groupClassesMap.get(x.ID) ?? []].map((x$1) => ({ to: x$1.toString() }));
54
51
  courses.push({
@@ -1 +1 @@
1
- {"version":3,"file":"schedule.js","names":["warnings: string[]","errors: string[]","teachers: CoreTypes.group[]","groups: CoreTypes.group[]","courses: CoreTypes.course[]","teachers","x","groups"],"sources":["../../../src/vKlass/from/schedule.ts"],"sourcesContent":["import moment from 'moment';\nimport { Types as CoreTypes } from '../../core/types';\nimport { Options, Types } from '../types';\n\ntype DateRange = {\n start: moment.Moment;\n end: moment.Moment;\n};\n\nfunction createRange (start: string | moment.Moment | Date, end: string | moment.Moment | Date): DateRange {\n return {\n start: moment.utc(start).clone()\n .startOf('isoWeek')\n .startOf('day'),\n end: moment.utc(end).clone()\n .endOf ('isoWeek')\n .endOf ('day')\n };\n}\n\nfunction overlaps (a: DateRange, b: DateRange) {\n if (!a?.start || !a?.end || !b?.start || !b?.end) return false;\n // Overlap if they are not strictly before each other.\n return !a.end.isBefore(b.start) && !b.end.isBefore(a.start);\n}\n\nexport default function (\n src: Types.schedule,\n options: Options\n): CoreTypes.division {\n\n // gather all import related warnings/errors\n const warnings: string[] = [];\n const errors: string[] = [];\n\n // the schedule period range\n const scheduleRange = createRange(moment.utc(options.beg), moment.utc(options.end));\n\n ////\n //// teachers\n ////\n const teachers: CoreTypes.group[] = [];\n src.staff.forEach(x => {\n teachers.push({\n ids: x.ID.toString(),\n displayName: x.Firstname + ' ' + x.Lastname\n });\n });\n\n\n ////\n //// groups\n ////\n const groups: CoreTypes.group[] = [];\n src.classes.forEach(x => {\n groups.push({\n ids: x.ID.toString(),\n displayName: x.Name,\n species: 'class',\n });\n });\n\n\n // build group to staff map\n const groupStaffMap = new Map<number, Set<number> >();\n src.groups_staff.forEach(x => {\n groupStaffMap.has(x.groupId) || groupStaffMap.set(x.groupId, new Set());\n groupStaffMap.get(x.groupId)!.add(x.userId);\n });\n\n // build student to class map\n const studentClassMap = new Map<number, Set<number> >();\n src.classes_students.forEach(x => {\n studentClassMap.has(x.userId) || studentClassMap.set(x.userId, new Set());\n studentClassMap.get(x.userId)!.add(x.classId);\n });\n\n // build group to classes map\n const groupClassesMap = new Map<number, Set<number> >();\n src.groups_students.forEach(x => {\n groupClassesMap.has(x.groupId) || groupClassesMap.set(x.groupId, new Set());\n studentClassMap.get(x.userId)?.forEach(y => groupClassesMap.get(x.groupId)!.add(y));\n });\n\n\n ////\n //// courses\n ////\n const courses: CoreTypes.course[] = [];\n src.groups.forEach(x => {\n // ignore courses who's period range does not overlap with the schedule period range\n const courseRange = createRange(moment.utc(x.StartDate), moment.utc(x.EndDate));\n if (!overlaps(scheduleRange, courseRange)) return;\n\n const teachers = [...groupStaffMap.get(x.ID) ?? []].map(x => ({ to: x.toString() }));\n const groups = [...groupClassesMap.get(x.ID) ?? []].map(x => ({ to: x.toString() }));\n\n courses.push({\n ids: x.ID.toString(),\n displayName: x.Name || x.FriendlyName,\n ...(teachers && { teachers }),\n ...(groups && { groups }),\n });\n });\n\n\n\n return { teachers, groups, courses,\n meta: {\n ...( errors.length ? { errors: errors } : { } ),\n ...( warnings.length ? { warnings: warnings } : { } )\n }\n };\n}\n"],"mappings":";;;AASA,SAAS,YAAa,OAAsC,KAA+C;AACzG,QAAO;EACL,OAAO,OAAO,IAAI,OAAO,QACtB,QAAQ,WACR,QAAQ;EACX,KAAK,OAAO,IAAI,KAAK,QAClB,MAAQ,WACR,MAAQ;;;AAIf,SAAS,SAAU,GAAc,GAAc;AAC7C,KAAI,CAAC,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,GAAG,SAAS,CAAC,GAAG,IAAK,QAAO;AAEzD,QAAO,CAAC,EAAE,IAAI,SAAS,EAAE,UAAU,CAAC,EAAE,IAAI,SAAS,EAAE;;AAGvD,0BACE,KACA,SACoB;CAGpB,MAAMA,WAAqB;CAC3B,MAAMC,SAAqB;CAG3B,MAAM,gBAAgB,YAAY,OAAO,IAAI,QAAQ,MAAM,OAAO,IAAI,QAAQ;CAK9E,MAAMC,WAA8B;AACpC,KAAI,MAAM,SAAQ,MAAK;AACrB,WAAS,KAAK;GACZ,KAAa,EAAE,GAAG;GAClB,aAAa,EAAE,YAAY,MAAM,EAAE;;;CAQvC,MAAMC,SAA4B;AAClC,KAAI,QAAQ,SAAQ,MAAK;AACvB,SAAO,KAAK;GACV,KAAa,EAAE,GAAG;GAClB,aAAa,EAAE;GACf,SAAa;;;CAMjB,MAAM,gCAAgB,IAAI;AAC1B,KAAI,aAAa,SAAQ,MAAK;AAC5B,gBAAc,IAAI,EAAE,YAAY,cAAc,IAAI,EAAE,yBAAS,IAAI;AACjE,gBAAc,IAAI,EAAE,SAAU,IAAI,EAAE;;CAItC,MAAM,kCAAkB,IAAI;AAC5B,KAAI,iBAAiB,SAAQ,MAAK;AAChC,kBAAgB,IAAI,EAAE,WAAW,gBAAgB,IAAI,EAAE,wBAAQ,IAAI;AACnE,kBAAgB,IAAI,EAAE,QAAS,IAAI,EAAE;;CAIvC,MAAM,kCAAkB,IAAI;AAC5B,KAAI,gBAAgB,SAAQ,MAAK;AAC/B,kBAAgB,IAAI,EAAE,YAAY,gBAAgB,IAAI,EAAE,yBAAS,IAAI;AACrE,kBAAgB,IAAI,EAAE,SAAS,SAAQ,MAAK,gBAAgB,IAAI,EAAE,SAAU,IAAI;;CAOlF,MAAMC,UAA8B;AACpC,KAAI,OAAO,SAAQ,MAAK;EAEtB,MAAM,cAAc,YAAY,OAAO,IAAI,EAAE,YAAY,OAAO,IAAI,EAAE;AACtE,MAAI,CAAC,SAAS,eAAe,aAAc;EAE3C,MAAMC,aAAW,CAAC,GAAG,cAAc,IAAI,EAAE,OAAS,IAAI,KAAI,SAAM,EAAE,IAAIC,IAAE;EACxE,MAAMC,WAAW,CAAC,GAAG,gBAAgB,IAAI,EAAE,OAAO,IAAI,KAAI,SAAM,EAAE,IAAID,IAAE;AAExE,UAAQ,KAAK;GACX,KAAa,EAAE,GAAG;GAClB,aAAa,EAAE,QAAQ,EAAE;GACzB,GAAID,cAAY,EAAE;GAClB,GAAIE,YAAY,EAAE;;;AAMtB,QAAO;EAAE;EAAU;EAAQ;EACzB,MAAM;GACJ,GAAK,OAAO,SAAW,EAAY,WAAa;GAChD,GAAK,SAAS,SAAS,EAAY,aAAa"}
1
+ {"version":3,"file":"schedule.js","names":["warnings: string[]","errors: string[]","teachers: OutTypes.group[]","groups: OutTypes.group[]","courses: OutTypes.course[]","teachers","x","groups"],"sources":["../../../src/vKlass/from/schedule.ts"],"sourcesContent":["import moment from 'moment';\nimport type { CoreTypes } from '../../core';\nimport type { Types as VKlassTypes } from '../types';\nimport type { InternalIdKey } from '../../core/types/common';\nimport { rangesOverlap } from '../../common/functions';\n\nexport namespace OutTypes {\n export type teacher = Omit<CoreTypes.serialized.teacher, InternalIdKey>;\n export type group = Omit<CoreTypes.serialized.group, InternalIdKey>;\n export type course = Omit<CoreTypes.serialized.course, InternalIdKey>;\n}\n\ntype Out = {\n teachers: OutTypes.teacher[];\n courses: OutTypes.course [];\n groups: OutTypes.group [];\n meta: {\n errors?: string[];\n warnings?: string[];\n };\n};\n\n\nexport default function (\n src: VKlassTypes.schedule,\n options: VKlassTypes.Options\n): Out {\n\n // gather all import related warnings/errors\n const warnings: string[] = [];\n const errors: string[] = [];\n\n // the schedule period range\n const scheduleRange = {\n start: moment.utc(options.beg),\n end: moment.utc(options.end)\n };\n\n ////\n //// teachers\n ////\n const teachers: OutTypes.group[] = [];\n src.staff.forEach(x => {\n teachers.push({\n ids: x.ID.toString(),\n displayName: x.Firstname + ' ' + x.Lastname\n });\n });\n\n\n ////\n //// groups\n ////\n const groups: OutTypes.group[] = [];\n src.classes.forEach(x => {\n groups.push({\n ids: x.ID.toString(),\n displayName: x.Name,\n species: 'class',\n });\n });\n\n\n // build group to staff map\n const groupStaffMap = new Map<number, Set<number> >();\n src.groups_staff.forEach(x => {\n if(!groupStaffMap.has(x.groupId)) groupStaffMap.set(x.groupId, new Set());\n groupStaffMap.get(x.groupId)?.add(x.userId);\n });\n\n // build student to class map\n const studentClassMap = new Map<number, Set<number> >();\n src.classes_students.forEach(x => {\n if(!studentClassMap.has(x.userId)) studentClassMap.set(x.userId, new Set());\n studentClassMap.get(x.userId)?.add(x.classId);\n });\n\n // build group to classes map\n const groupClassesMap = new Map<number, Set<number> >();\n src.groups_students.forEach(x => {\n if (!groupClassesMap.has(x.groupId)) groupClassesMap.set(x.groupId, new Set());\n studentClassMap.get(x.userId)?.forEach(y => groupClassesMap.get(x.groupId)?.add(y));\n });\n\n\n ////\n //// courses\n ////\n const courses: OutTypes.course[] = [];\n src.groups.forEach(x => {\n // ignore courses who's period range does not overlap with the schedule period range\n const courseRange = {\n start: moment.utc(x.StartDate),\n end: moment.utc(x.EndDate)\n };\n if (!(rangesOverlap(scheduleRange, courseRange))) return;\n\n const teachers = [...groupStaffMap.get(x.ID) ?? []].map(x => ({ to: x.toString() }));\n const groups = [...groupClassesMap.get(x.ID) ?? []].map(x => ({ to: x.toString() }));\n\n courses.push({\n ids: x.ID.toString(),\n displayName: x.Name || x.FriendlyName,\n ...(teachers && { teachers }),\n ...(groups && { groups }),\n });\n });\n\n\n\n return { teachers, groups, courses,\n meta: {\n ...( errors.length ? { errors: errors } : { } ),\n ...( warnings.length ? { warnings: warnings } : { } )\n }\n };\n}\n"],"mappings":";;;;AAuBA,0BACE,KACA,SACK;CAGL,MAAMA,WAAqB;CAC3B,MAAMC,SAAqB;CAG3B,MAAM,gBAAgB;EACpB,OAAO,OAAO,IAAI,QAAQ;EAC1B,KAAO,OAAO,IAAI,QAAQ;;CAM5B,MAAMC,WAA6B;AACnC,KAAI,MAAM,SAAQ,MAAK;AACrB,WAAS,KAAK;GACZ,KAAa,EAAE,GAAG;GAClB,aAAa,EAAE,YAAY,MAAM,EAAE;;;CAQvC,MAAMC,SAA2B;AACjC,KAAI,QAAQ,SAAQ,MAAK;AACvB,SAAO,KAAK;GACV,KAAa,EAAE,GAAG;GAClB,aAAa,EAAE;GACf,SAAa;;;CAMjB,MAAM,gCAAgB,IAAI;AAC1B,KAAI,aAAa,SAAQ,MAAK;AAC5B,MAAG,CAAC,cAAc,IAAI,EAAE,SAAU,eAAc,IAAI,EAAE,yBAAS,IAAI;AACnE,gBAAc,IAAI,EAAE,UAAU,IAAI,EAAE;;CAItC,MAAM,kCAAkB,IAAI;AAC5B,KAAI,iBAAiB,SAAQ,MAAK;AAChC,MAAG,CAAC,gBAAgB,IAAI,EAAE,QAAS,iBAAgB,IAAI,EAAE,wBAAQ,IAAI;AACrE,kBAAgB,IAAI,EAAE,SAAS,IAAI,EAAE;;CAIvC,MAAM,kCAAkB,IAAI;AAC5B,KAAI,gBAAgB,SAAQ,MAAK;AAC/B,MAAI,CAAC,gBAAgB,IAAI,EAAE,SAAU,iBAAgB,IAAI,EAAE,yBAAS,IAAI;AACxE,kBAAgB,IAAI,EAAE,SAAS,SAAQ,MAAK,gBAAgB,IAAI,EAAE,UAAU,IAAI;;CAOlF,MAAMC,UAA6B;AACnC,KAAI,OAAO,SAAQ,MAAK;EAEtB,MAAM,cAAc;GAClB,OAAO,OAAO,IAAI,EAAE;GACpB,KAAO,OAAO,IAAI,EAAE;;AAEtB,MAAI,CAAE,cAAc,eAAe,aAAe;EAElD,MAAMC,aAAW,CAAC,GAAG,cAAc,IAAI,EAAE,OAAS,IAAI,KAAI,SAAM,EAAE,IAAIC,IAAE;EACxE,MAAMC,WAAW,CAAC,GAAG,gBAAgB,IAAI,EAAE,OAAO,IAAI,KAAI,SAAM,EAAE,IAAID,IAAE;AAExE,UAAQ,KAAK;GACX,KAAa,EAAE,GAAG;GAClB,aAAa,EAAE,QAAQ,EAAE;GACzB,GAAID,cAAY,EAAE;GAClB,GAAIE,YAAY,EAAE;;;AAMtB,QAAO;EAAE;EAAU;EAAQ;EACzB,MAAM;GACJ,GAAK,OAAO,SAAW,EAAY,WAAa;GAChD,GAAK,SAAS,SAAS,EAAY,aAAa"}
@@ -1,10 +1,12 @@
1
- import { export_default } from "./from/index.js";
2
- import { export_default as export_default$1 } from "./to/index.js";
1
+ import { export_default as export_default$1 } from "./from/schedule.js";
2
+ import { export_default } from "./to/index.js";
3
3
 
4
4
  //#region src/vKlass/index.d.ts
5
5
  declare class vKlassMap {
6
- static from: typeof export_default;
7
- static to: typeof export_default$1;
6
+ static from: {
7
+ schedules: typeof export_default$1;
8
+ };
9
+ static to: typeof export_default;
8
10
  }
9
11
  //#endregion
10
12
  export { vKlassMap };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_from","_to"],"sources":["../../src/vKlass/index.ts"],"sourcesContent":["import _from from './from';\nimport _to from './to';\nexport class vKlassMap {\n static from = _from;\n static to = _to;\n}\n"],"mappings":";;;;AAEA,IAAa,YAAb,MAAuB;CACrB,OAAO,OAAOA;CACd,OAAO,KAAOC"}
1
+ {"version":3,"file":"index.js","names":["_from","_to"],"sources":["../../src/vKlass/index.ts"],"sourcesContent":["import _from from './from';\nimport _to from './to';\nexport class vKlassMap {\n static from = _from;\n static to = _to;\n}\n"],"mappings":";;;;AAEA,IAAa,YAAb,MAAuB;CACrB,OAAO,OAAOA;CACd,OAAO,KAAKC"}
@@ -1,4 +1,4 @@
1
- import { Types } from "../../core/v2/types/index.js";
1
+ import { Types } from "../../core/types/index.js";
2
2
  import XLSX from "xlsx";
3
3
 
4
4
  //#region src/vKlass/to/schedules.d.ts
@@ -1,29 +1,29 @@
1
+ import { getVertexId } from "../../core/util.js";
1
2
  import moment from "moment";
2
3
  import XLSX from "xlsx";
3
- import { isObjectIdOrHexString } from "mongoose";
4
4
 
5
5
  //#region src/vKlass/to/schedules.ts
6
6
  function schedules_default(schedule) {
7
- const did = schedule.division.id;
7
+ const did = getVertexId(schedule.division, { idKey: "id" });
8
8
  if (!did) throw new Error("division id is undefined");
9
9
  const startDate = moment.utc(schedule.division.start).format("YYYY-MM-DD HH:mm:ss");
10
10
  const endDate = moment.utc(schedule.division.end).format("YYYY-MM-DD HH:mm:ss");
11
11
  const personMap = /* @__PURE__ */ new Map();
12
12
  schedule.persons.forEach((p) => {
13
13
  const ssn = p.SSN?.value;
14
- const id = p._id?.toString();
14
+ const id = getVertexId(p, { idKey: "_id" });
15
15
  if (ssn && id) personMap.set(id, ssn);
16
16
  });
17
17
  const teacherMap = /* @__PURE__ */ new Map();
18
18
  schedule.teachers.forEach((t) => {
19
19
  const signature = t.signature;
20
- const id = t.id?.toString();
20
+ const id = getVertexId(t, { idKey: "id" });
21
21
  if (signature && id) teacherMap.set(id, signature);
22
22
  });
23
23
  const courses = schedule.courses.map((course) => {
24
24
  const group = validateGroup(course.groups);
25
25
  if (!group) return null;
26
- const teacherIds = course.teachers?.map((t) => getTeacherId(t.to)).filter((id) => id != null) ?? [];
26
+ const teacherIds = course.teachers?.map((t) => getVertexId(t.to, { idKey: "id" })).filter((id) => id != null) ?? [];
27
27
  const teacherSignatures = teacherIds.map((id) => teacherMap.get(id)).filter((sig) => sig != null);
28
28
  const courseName = course.displayName || "";
29
29
  const subject = course.subject || "";
@@ -61,13 +61,6 @@ function validateGroup(groups) {
61
61
  displayName: group.displayName
62
62
  };
63
63
  }
64
- function getTeacherId(teacher) {
65
- if (!teacher) return null;
66
- if (typeof teacher === "string") return teacher;
67
- if (isObjectIdOrHexString(teacher)) return teacher.toString();
68
- if (typeof teacher === "object" && "id" in teacher && teacher.id) return typeof teacher.id === "string" ? teacher.id : teacher.id.toString();
69
- return null;
70
- }
71
64
  /**
72
65
  * Formats a Swedish SSN (personnummer) from the standard 12-digit format (YYYYMMDDXXXX) to the common 10-digit format (YYMMDD-XXXX).
73
66
  * If the input is already in the 10-digit format, it is returned as is.
@@ -1 +1 @@
1
- {"version":3,"file":"schedules.js","names":["memberIds: string[]"],"sources":["../../../src/vKlass/to/schedules.ts"],"sourcesContent":["import moment from 'moment';\nimport { isObjectIdOrHexString, Types } from 'mongoose';\nimport XLSX from 'xlsx';\n\nimport { Types as CoreTypes } from '../../core/types';\n\ntype Schedule = {\n division: CoreTypes.division;\n teachers: CoreTypes.teacher[];\n courses: CoreTypes.course[];\n persons: CoreTypes.person[];\n};\n\nexport default function (schedule: Schedule): XLSX.WorkBook {\n const did = schedule.division.id!;\n if (!did) throw new Error('division id is undefined');\n\n // get start and end dates from division in format date + time format: 2024-08-15 00:00:00\n const startDate = moment.utc(schedule.division.start).format('YYYY-MM-DD HH:mm:ss');\n const endDate = moment.utc(schedule.division.end).format('YYYY-MM-DD HH:mm:ss');\n\n // Map persons by id to SSN\n const personMap = new Map<string, string>();\n schedule.persons.forEach((p) => {\n const ssn = p.SSN?.value;\n const id = p._id?.toString();\n if (ssn && id)\n personMap.set(id, ssn);\n });\n\n const teacherMap = new Map<string, string>();\n schedule.teachers.forEach((t) => {\n const signature = t.signature;\n const id = t.id?.toString();\n if (signature && id)\n teacherMap.set(id, signature);\n });\n\n\n\n const courses = schedule.courses.map((course) => {\n const group = validateGroup(course.groups);\n if (!group) return null;\n\n const teacherIds = course.teachers?.map((t) => getTeacherId(t.to)).filter((id) => id != null) ?? [];\n const teacherSignatures = teacherIds.map((id) => teacherMap.get(id)).filter((sig) => sig != null);\n\n const courseName = course.displayName || '';\n const subject = course.subject || '';\n\n const membersSSNs = group.members.map((id) => {\n return personMap.get(id);\n }).filter((ssn) => !!ssn);\n\n if (membersSSNs.length === 0) return null;\n\n return membersSSNs.map((ssn) => ({\n Personnummer: ssn ? formatSSN(ssn) : '',\n Kurskod: subject,\n Benämning: courseName,\n Undervisningsgrupp: group.displayName || '',\n Lärarsignatur: teacherSignatures ? teacherSignatures.join(',') : '',\n Poäng: 0,\n Startdatum: startDate,\n Slutdatum: endDate\n }));\n\n }).flat().filter(x => x !== null);\n\n const wb = XLSX.utils.book_new();\n XLSX.utils.book_append_sheet(wb, XLSX.utils.json_to_sheet(courses), 'Kurser');\n\n return wb;\n}\n\n// Validate that the group is valid and has at least one member\nfunction validateGroup (groups: CoreTypes.course['groups']): {\n members: string[], // Array of member IDs\n displayName?: string\n} | null {\n const group = groups?.at(0)?.to;\n\n if (!(typeof group === 'object') || !('members' in group)) return null;\n\n if (!group?.members || group.members.length === 0) return null;\n\n const memberIds: string[] = [];\n for (const member of group.members) {\n const id = (typeof member === 'object' && 'id' in member) ? member.id : member;\n memberIds.push((id as unknown as (Types.ObjectId | string)).toString());\n }\n if (memberIds.length === 0) return null;\n\n return { members: memberIds, displayName: group.displayName };\n}\n\nfunction getTeacherId (teacher: CoreTypes.teacher | Types.ObjectId | string | undefined | null): string | null {\n if (!teacher) return null;\n if (typeof teacher === 'string') return teacher;\n if (isObjectIdOrHexString(teacher)) return (teacher as Types.ObjectId).toString();\n if (typeof teacher === 'object' && 'id' in teacher && teacher.id) {\n return typeof teacher.id === 'string' ? teacher.id : teacher.id.toString();\n }\n return null;\n}\n\n/**\n * Formats a Swedish SSN (personnummer) from the standard 12-digit format (YYYYMMDDXXXX) to the common 10-digit format (YYMMDD-XXXX).\n * If the input is already in the 10-digit format, it is returned as is.\n * If the input is invalid, null is returned.\n *\n * @param ssn - The SSN to format, either as a string or number.\n * @returns The formatted SSN in 10-digit format, or null if invalid.\n */\nfunction formatSSN (ssn: string | number): string {\n if (typeof ssn === 'number') {\n ssn = ssn.toString();\n }\n if (typeof ssn !== 'string') {\n return '';\n }\n\n // Check if already in YYMMDD-XXXX format\n const regex10 = /^\\d{6}-\\d{4}$/;\n if (regex10.test(ssn)) {\n return ssn;\n }\n\n // Remove any non-digit characters\n ssn = ssn.replace(/\\D/g, '');\n\n if (ssn.length === 12) {\n // Convert from YYYYMMDDXXXX to YYMMDD-XXXX\n const year = ssn.slice(2, 4);\n const month = ssn.slice(4, 6);\n const day = ssn.slice(6, 8);\n const lastFour = ssn.slice(8);\n return `${year}${month}${day}-${lastFour}`;\n } else if (ssn.length === 10) {\n // Already in YYMMDDXXXX format, just add the hyphen\n const datePart = ssn.slice(0, 6);\n const lastFour = ssn.slice(6);\n return `${datePart}-${lastFour}`;\n } else {\n // Invalid SSN format\n return '';\n }\n}"],"mappings":";;;;;AAaA,2BAAyB,UAAmC;CAC1D,MAAM,MAAM,SAAS,SAAS;AAC9B,KAAI,CAAC,IAAK,OAAM,IAAI,MAAM;CAG1B,MAAM,YAAY,OAAO,IAAI,SAAS,SAAS,OAAO,OAAO;CAC7D,MAAM,UAAU,OAAO,IAAI,SAAS,SAAS,KAAK,OAAO;CAGzD,MAAM,4BAAY,IAAI;AACtB,UAAS,QAAQ,SAAS,MAAM;EAC9B,MAAM,MAAM,EAAE,KAAK;EACnB,MAAM,KAAK,EAAE,KAAK;AAClB,MAAI,OAAO,GACT,WAAU,IAAI,IAAI;;CAGtB,MAAM,6BAAa,IAAI;AACvB,UAAS,SAAS,SAAS,MAAM;EAC/B,MAAM,YAAY,EAAE;EACpB,MAAM,KAAK,EAAE,IAAI;AACjB,MAAI,aAAa,GACf,YAAW,IAAI,IAAI;;CAKvB,MAAM,UAAU,SAAS,QAAQ,KAAK,WAAW;EAC/C,MAAM,QAAQ,cAAc,OAAO;AACnC,MAAI,CAAC,MAAO,QAAO;EAEnB,MAAM,aAAa,OAAO,UAAU,KAAK,MAAM,aAAa,EAAE,KAAK,QAAQ,OAAO,MAAM,SAAS;EACjG,MAAM,oBAAoB,WAAW,KAAK,OAAO,WAAW,IAAI,KAAK,QAAQ,QAAQ,OAAO;EAE5F,MAAM,aAAa,OAAO,eAAe;EACzC,MAAM,UAAU,OAAO,WAAW;EAElC,MAAM,cAAc,MAAM,QAAQ,KAAK,OAAO;AAC5C,UAAO,UAAU,IAAI;KACpB,QAAQ,QAAQ,CAAC,CAAC;AAErB,MAAI,YAAY,WAAW,EAAG,QAAO;AAErC,SAAO,YAAY,KAAK,SAAS;GAC/B,cAAoB,MAAM,UAAU,OAAO;GAC3C,SAAoB;GACpB,WAAoB;GACpB,oBAAoB,MAAM,eAAe;GACzC,eAAoB,oBAAoB,kBAAkB,KAAK,OAAO;GACtE,OAAoB;GACpB,YAAoB;GACpB,WAAoB;;IAGrB,OAAO,QAAO,MAAK,MAAM;CAE5B,MAAM,KAAK,KAAK,MAAM;AACtB,MAAK,MAAM,kBAAkB,IAAI,KAAK,MAAM,cAAc,UAAU;AAEpE,QAAO;;AAIT,SAAS,cAAe,QAGf;CACP,MAAM,QAAQ,QAAQ,GAAG,IAAI;AAE7B,KAAI,EAAE,OAAO,UAAU,aAAa,EAAE,aAAa,OAAQ,QAAO;AAElE,KAAI,CAAC,OAAO,WAAW,MAAM,QAAQ,WAAW,EAAG,QAAO;CAE1D,MAAMA,YAAsB;AAC5B,MAAK,MAAM,UAAU,MAAM,SAAS;EAClC,MAAM,KAAM,OAAO,WAAW,YAAY,QAAQ,SAAU,OAAO,KAAK;AACxE,YAAU,KAAM,GAA4C;;AAE9D,KAAI,UAAU,WAAW,EAAG,QAAO;AAEnC,QAAO;EAAE,SAAS;EAAW,aAAa,MAAM;;;AAGlD,SAAS,aAAc,SAAwF;AAC7G,KAAI,CAAC,QAAS,QAAO;AACrB,KAAI,OAAO,YAAY,SAAU,QAAO;AACxC,KAAI,sBAAsB,SAAU,QAAQ,QAA2B;AACvE,KAAI,OAAO,YAAY,YAAY,QAAQ,WAAW,QAAQ,GAC5D,QAAO,OAAO,QAAQ,OAAO,WAAW,QAAQ,KAAK,QAAQ,GAAG;AAElE,QAAO;;;;;;;;;;AAWT,SAAS,UAAW,KAA8B;AAChD,KAAI,OAAO,QAAQ,SACjB,OAAM,IAAI;AAEZ,KAAI,OAAO,QAAQ,SACjB,QAAO;CAIT,MAAM,UAAU;AAChB,KAAI,QAAQ,KAAK,KACf,QAAO;AAIT,OAAM,IAAI,QAAQ,OAAO;AAEzB,KAAI,IAAI,WAAW,IAAI;EAErB,MAAM,OAAO,IAAI,MAAM,GAAG;EAC1B,MAAM,QAAQ,IAAI,MAAM,GAAG;EAC3B,MAAM,MAAM,IAAI,MAAM,GAAG;EACzB,MAAM,WAAW,IAAI,MAAM;AAC3B,SAAO,GAAG,OAAO,QAAQ,IAAI,GAAG;YACvB,IAAI,WAAW,IAAI;EAE5B,MAAM,WAAW,IAAI,MAAM,GAAG;EAC9B,MAAM,WAAW,IAAI,MAAM;AAC3B,SAAO,GAAG,SAAS,GAAG;OAGtB,QAAO"}
1
+ {"version":3,"file":"schedules.js","names":["memberIds: string[]"],"sources":["../../../src/vKlass/to/schedules.ts"],"sourcesContent":["import moment from 'moment';\nimport type { Types } from 'mongoose';\nimport XLSX from 'xlsx';\nimport type { Types as CoreTypes } from '../../core/types';\nimport { getVertexId } from '../../core/util';\n\ntype Schedule = {\n division: CoreTypes.division;\n teachers: CoreTypes.teacher[];\n courses: CoreTypes.course[];\n persons: CoreTypes.person[];\n};\n\nexport default function (\n schedule: Schedule,\n): XLSX.WorkBook {\n const did = getVertexId(schedule.division, { idKey: 'id' });\n if (!did) throw new Error('division id is undefined');\n\n // get start and end dates from division in format date + time format: 2024-08-15 00:00:00\n const startDate = moment.utc(schedule.division.start).format('YYYY-MM-DD HH:mm:ss');\n const endDate = moment.utc(schedule.division.end).format('YYYY-MM-DD HH:mm:ss');\n\n // Map persons by id to SSN\n const personMap = new Map<string, string>();\n schedule.persons.forEach((p) => {\n const ssn = p.SSN?.value;\n const id = getVertexId(p, { idKey: '_id' });\n if (ssn && id)\n personMap.set(id, ssn);\n });\n\n const teacherMap = new Map<string, string>();\n schedule.teachers.forEach((t) => {\n const signature = t.signature;\n const id = getVertexId(t, { idKey: 'id' });\n if (signature && id)\n teacherMap.set(id, signature);\n });\n\n\n\n const courses = schedule.courses.map((course) => {\n const group = validateGroup(course.groups);\n if (!group) return null;\n\n const teacherIds = course.teachers?.map((t) => getVertexId(t.to, { idKey: 'id' })).filter((id) => id != null) ?? [];\n const teacherSignatures = teacherIds.map((id) => teacherMap.get(id)).filter((sig) => sig != null);\n\n const courseName = course.displayName || '';\n const subject = course.subject || '';\n\n const membersSSNs = group.members.map((id) => {\n return personMap.get(id);\n }).filter((ssn) => !!ssn);\n\n if (membersSSNs.length === 0) return null;\n\n return membersSSNs.map((ssn) => ({\n Personnummer: ssn ? formatSSN(ssn) : '',\n Kurskod: subject,\n Benämning: courseName,\n Undervisningsgrupp: group.displayName || '',\n Lärarsignatur: teacherSignatures ? teacherSignatures.join(',') : '',\n Poäng: 0,\n Startdatum: startDate,\n Slutdatum: endDate\n }));\n\n }).flat().filter(x => x !== null);\n\n const wb = XLSX.utils.book_new();\n XLSX.utils.book_append_sheet(wb, XLSX.utils.json_to_sheet(courses), 'Kurser');\n\n return wb;\n}\n\n// Validate that the group is valid and has at least one member\nfunction validateGroup (groups: CoreTypes.course['groups']): {\n members: string[], // Array of member IDs\n displayName?: string\n} | null {\n const group = groups?.at(0)?.to;\n\n if (!(typeof group === 'object') || !('members' in group)) return null;\n\n if (!group?.members || group.members.length === 0) return null;\n\n const memberIds: string[] = [];\n for (const member of group.members) {\n const id = (typeof member === 'object' && 'id' in member) ? member.id : member;\n memberIds.push((id as unknown as (Types.ObjectId | string)).toString());\n }\n if (memberIds.length === 0) return null;\n\n return { members: memberIds, displayName: group.displayName };\n}\n\n/**\n * Formats a Swedish SSN (personnummer) from the standard 12-digit format (YYYYMMDDXXXX) to the common 10-digit format (YYMMDD-XXXX).\n * If the input is already in the 10-digit format, it is returned as is.\n * If the input is invalid, null is returned.\n *\n * @param ssn - The SSN to format, either as a string or number.\n * @returns The formatted SSN in 10-digit format, or null if invalid.\n */\nfunction formatSSN (ssn: string | number): string {\n if (typeof ssn === 'number') {\n ssn = ssn.toString();\n }\n if (typeof ssn !== 'string') {\n return '';\n }\n\n // Check if already in YYMMDD-XXXX format\n const regex10 = /^\\d{6}-\\d{4}$/;\n if (regex10.test(ssn)) {\n return ssn;\n }\n\n // Remove any non-digit characters\n ssn = ssn.replace(/\\D/g, '');\n\n if (ssn.length === 12) {\n // Convert from YYYYMMDDXXXX to YYMMDD-XXXX\n const year = ssn.slice(2, 4);\n const month = ssn.slice(4, 6);\n const day = ssn.slice(6, 8);\n const lastFour = ssn.slice(8);\n return `${year}${month}${day}-${lastFour}`;\n } else if (ssn.length === 10) {\n // Already in YYMMDDXXXX format, just add the hyphen\n const datePart = ssn.slice(0, 6);\n const lastFour = ssn.slice(6);\n return `${datePart}-${lastFour}`;\n } else {\n // Invalid SSN format\n return '';\n }\n}"],"mappings":";;;;;AAaA,2BACE,UACe;CACf,MAAM,MAAM,YAAY,SAAS,UAAU,EAAE,OAAO;AACpD,KAAI,CAAC,IAAK,OAAM,IAAI,MAAM;CAG1B,MAAM,YAAY,OAAO,IAAI,SAAS,SAAS,OAAO,OAAO;CAC7D,MAAM,UAAU,OAAO,IAAI,SAAS,SAAS,KAAK,OAAO;CAGzD,MAAM,4BAAY,IAAI;AACtB,UAAS,QAAQ,SAAS,MAAM;EAC9B,MAAM,MAAM,EAAE,KAAK;EACnB,MAAM,KAAK,YAAY,GAAG,EAAE,OAAO;AACnC,MAAI,OAAO,GACT,WAAU,IAAI,IAAI;;CAGtB,MAAM,6BAAa,IAAI;AACvB,UAAS,SAAS,SAAS,MAAM;EAC/B,MAAM,YAAY,EAAE;EACpB,MAAM,KAAK,YAAY,GAAG,EAAE,OAAO;AACnC,MAAI,aAAa,GACf,YAAW,IAAI,IAAI;;CAKvB,MAAM,UAAU,SAAS,QAAQ,KAAK,WAAW;EAC/C,MAAM,QAAQ,cAAc,OAAO;AACnC,MAAI,CAAC,MAAO,QAAO;EAEnB,MAAM,aAAa,OAAO,UAAU,KAAK,MAAM,YAAY,EAAE,IAAI,EAAE,OAAO,SAAS,QAAQ,OAAO,MAAM,SAAS;EACjH,MAAM,oBAAoB,WAAW,KAAK,OAAO,WAAW,IAAI,KAAK,QAAQ,QAAQ,OAAO;EAE5F,MAAM,aAAa,OAAO,eAAe;EACzC,MAAM,UAAU,OAAO,WAAW;EAElC,MAAM,cAAc,MAAM,QAAQ,KAAK,OAAO;AAC5C,UAAO,UAAU,IAAI;KACpB,QAAQ,QAAQ,CAAC,CAAC;AAErB,MAAI,YAAY,WAAW,EAAG,QAAO;AAErC,SAAO,YAAY,KAAK,SAAS;GAC/B,cAAoB,MAAM,UAAU,OAAO;GAC3C,SAAoB;GACpB,WAAoB;GACpB,oBAAoB,MAAM,eAAe;GACzC,eAAoB,oBAAoB,kBAAkB,KAAK,OAAO;GACtE,OAAoB;GACpB,YAAoB;GACpB,WAAoB;;IAGrB,OAAO,QAAO,MAAK,MAAM;CAE5B,MAAM,KAAK,KAAK,MAAM;AACtB,MAAK,MAAM,kBAAkB,IAAI,KAAK,MAAM,cAAc,UAAU;AAEpE,QAAO;;AAIT,SAAS,cAAe,QAGf;CACP,MAAM,QAAQ,QAAQ,GAAG,IAAI;AAE7B,KAAI,EAAE,OAAO,UAAU,aAAa,EAAE,aAAa,OAAQ,QAAO;AAElE,KAAI,CAAC,OAAO,WAAW,MAAM,QAAQ,WAAW,EAAG,QAAO;CAE1D,MAAMA,YAAsB;AAC5B,MAAK,MAAM,UAAU,MAAM,SAAS;EAClC,MAAM,KAAM,OAAO,WAAW,YAAY,QAAQ,SAAU,OAAO,KAAK;AACxE,YAAU,KAAM,GAA4C;;AAE9D,KAAI,UAAU,WAAW,EAAG,QAAO;AAEnC,QAAO;EAAE,SAAS;EAAW,aAAa,MAAM;;;;;;;;;;;AAWlD,SAAS,UAAW,KAA8B;AAChD,KAAI,OAAO,QAAQ,SACjB,OAAM,IAAI;AAEZ,KAAI,OAAO,QAAQ,SACjB,QAAO;CAIT,MAAM,UAAU;AAChB,KAAI,QAAQ,KAAK,KACf,QAAO;AAIT,OAAM,IAAI,QAAQ,OAAO;AAEzB,KAAI,IAAI,WAAW,IAAI;EAErB,MAAM,OAAO,IAAI,MAAM,GAAG;EAC1B,MAAM,QAAQ,IAAI,MAAM,GAAG;EAC3B,MAAM,MAAM,IAAI,MAAM,GAAG;EACzB,MAAM,WAAW,IAAI,MAAM;AAC3B,SAAO,GAAG,OAAO,QAAQ,IAAI,GAAG;YACvB,IAAI,WAAW,IAAI;EAE5B,MAAM,WAAW,IAAI,MAAM,GAAG;EAC9B,MAAM,WAAW,IAAI,MAAM;AAC3B,SAAO,GAAG,SAAS,GAAG;OAGtB,QAAO"}
@@ -43,11 +43,11 @@ declare namespace Types {
43
43
  type groupStudentReference = GroupStudentReference;
44
44
  type classStudentReference = ClassStudentReference;
45
45
  type schedule = Schedule;
46
+ type Options = {
47
+ beg: string;
48
+ end: string;
49
+ };
46
50
  }
47
- type Options = {
48
- beg: string;
49
- end: string;
50
- };
51
51
  //#endregion
52
- export { Options, Types };
52
+ export { Types };
53
53
  //# sourceMappingURL=index.d.ts.map
package/package.json CHANGED
@@ -1,35 +1,37 @@
1
1
  {
2
2
  "name": "@royalschedule/maps",
3
3
  "description": "",
4
- "version": "3.3.17",
4
+ "version": "4.0.1",
5
+ "type": "module",
5
6
  "main": "dist/index.js",
6
7
  "types": "dist/index.d.ts",
7
- "type": "module",
8
8
  "engines": {
9
9
  "node": "22.14.0"
10
10
  },
11
11
  "scripts": {
12
- "test": "node dist/index.js",
13
12
  "build": "tsdown",
14
- "dev_Admentum": "tsx tests/Admentum/index.ts",
15
- "dev_SchoolSoft_api": "tsx tests/SchoolSoft/api/index.ts",
16
- "dev_SchoolSoft_file_from": "tsx tests/SchoolSoft/file/from/index.ts",
17
- "dev_SchoolSoft_file_to": "tsx tests/SchoolSoft/file/to/index.ts",
18
- "dev_Quiculum_file_to": "tsx tests/Quiculum/file/to/index.ts",
19
- "dev_vKlass_from": "tsx tests/vKlass/file/from/index.ts",
20
- "dev_vKlass_to": "tsx tests/vKlass/file/to/index.ts",
21
- "dev_PlanDigital": "tsx tests/PlanDigital/index.ts",
22
- "dev_SS12000": "tsx tests/SS12000/index.ts",
23
- "dev_Core": "tsx tests/core/index.ts",
24
- "dev_RS": "tsx tests/RS/v3.ts",
25
- "dev_IdunSoft": "tsx tests/IdunSoft/index.ts",
26
- "dev_identify": "tsx tests/identify/index.ts",
27
- "dev_Excel": "tsx tests/Excel/index.ts",
28
- "dev_Skola24:mdb": "tsx tests/Skola24_mdb/index.ts",
29
- "dev_Skola24:txt": "tsx tests/Skola24_txt/index.ts",
30
- "dev_Schoolity": "tsx tests/Schoolity/index.ts",
13
+ "check-circular-deps": "madge --circular --extensions ts ./src",
14
+ "test": "vitest",
31
15
  "lint": "eslint .",
32
- "lint:fix": "eslint . --fix"
16
+ "lint:fix": "eslint . --fix",
17
+ "dev_Admentum": " tsx tests/Admentum/index.ts",
18
+ "dev_SchoolSoft_api": " tsx tests/SchoolSoft/api/index.ts",
19
+ "dev_SchoolSoft_file_from": "tsx tests/SchoolSoft/file/from/index.ts",
20
+ "dev_SchoolSoft_file_to": " tsx tests/SchoolSoft/file/to/index.ts",
21
+ "dev_vKlass_from": " tsx tests/vKlass/file/from/index.ts",
22
+ "dev_vKlass_to": " tsx tests/vKlass/file/to/index.ts",
23
+ "dev_PlanDigital": " tsx tests/PlanDigital/index.ts",
24
+ "dev_Quiculum_file_to": " tsx tests/Quiculum/file/to/index.ts",
25
+ "dev_SS12000": " tsx tests/SS12000/index.ts",
26
+ "dev_Core": " tsx tests/core/index.ts",
27
+ "dev_RS": " tsx tests/RS/index.ts",
28
+ "dev_RS_make_connected": " tsx tests/RS/make-connected.ts",
29
+ "dev_IdunSoft": " tsx tests/IdunSoft/index.ts",
30
+ "dev_identify": " tsx tests/identify/index.ts",
31
+ "dev_Excel": " tsx tests/Excel/index.ts",
32
+ "dev_Skola24:mdb": " tsx tests/Skola24_mdb/index.ts",
33
+ "dev_Skola24:txt": " tsx tests/Skola24_txt/index.ts",
34
+ "dev_Schoolity": " tsx tests/Schoolity/index.ts"
33
35
  },
34
36
  "files": [
35
37
  "dist"
@@ -45,23 +47,28 @@
45
47
  "license": "ISC",
46
48
  "homepage": "https://bitbucket.org/royalschedule/maps#readme",
47
49
  "devDependencies": {
48
- "@eslint/js": "^9.33.0",
49
- "@royalschedule/input-verifier": "^4.0.1",
50
+ "@eslint/js": "^9.34.0",
51
+ "@royalschedule/input-verifier": "^5.0.1",
50
52
  "@stylistic/eslint-plugin": "^5.2.3",
51
53
  "@tsconfig/strictest": "^2.0.5",
52
- "@type-challenges/utils": "^0.1.1",
53
54
  "@types/json2csv": "^5.0.7",
54
55
  "@types/lodash-es": "^4.17.12",
55
56
  "@types/node": "^24.3.0",
56
57
  "@types/papaparse": "^5.3.16",
57
- "eslint": "^9.33.0",
58
+ "@typescript-eslint/parser": "^8.41.0",
59
+ "@typescript-eslint/utils": "^8.41.0",
60
+ "eslint": "^9.34.0",
58
61
  "eslint-plugin-jsdoc": "^54.1.1",
59
62
  "eslint-plugin-unused-imports": "^4.2.0",
63
+ "jiti": "^2.5.1",
64
+ "madge": "^8.0.0",
60
65
  "nodemon": "^3.1.10",
61
- "tsdown": "^0.14.1",
66
+ "tsdown": "^0.14.2",
67
+ "tslib": "^2.8.1",
62
68
  "tsx": "^4.20.5",
63
69
  "typescript": "^5.9.2",
64
- "typescript-eslint": "^8.40.0"
70
+ "typescript-eslint": "^8.41.0",
71
+ "vitest": "^3.2.4"
65
72
  },
66
73
  "dependencies": {
67
74
  "@json2csv/plainjs": "^7.0.6",
@@ -69,10 +76,12 @@
69
76
  "iconv-lite": "^0.7.0",
70
77
  "lodash-es": "^4.17.21",
71
78
  "moment": "^2.30.1",
72
- "mongoose": "^8.17.2",
79
+ "mongoose": "^8.18.0",
73
80
  "nanoid": "^5.1.5",
74
81
  "papaparse": "^5.5.3",
82
+ "ts-expect": "^1.3.0",
75
83
  "uuid": "^11.1.0",
76
- "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz"
84
+ "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz",
85
+ "zod": "^4.1.5"
77
86
  }
78
87
  }
@@ -1,10 +0,0 @@
1
- import { Types } from "../../core/v2/types/index.js";
2
- import * as xlsx1 from "xlsx";
3
-
4
- //#region src/PlanDigital/to/index.d.ts
5
- declare class export_default {
6
- static schedules: (courseEvents: Types.course[]) => xlsx1.WorkBook;
7
- }
8
- //#endregion
9
- export { export_default };
10
- //# sourceMappingURL=index.d.ts.map
@@ -1,10 +0,0 @@
1
- import schedules_default from "./schedules.js";
2
-
3
- //#region src/PlanDigital/to/index.ts
4
- var to_default = class {
5
- static schedules = schedules_default;
6
- };
7
-
8
- //#endregion
9
- export { to_default as default };
10
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["_schedules"],"sources":["../../../src/PlanDigital/to/index.ts"],"sourcesContent":["import _schedules from './schedules';\n\nexport default class {\n static schedules = _schedules;\n}"],"mappings":";;;AAEA,uBAAqB;CACnB,OAAO,YAAsBA"}
@@ -1,15 +0,0 @@
1
- import * as XLSX$1 from "xlsx";
2
-
3
- //#region src/PlanDigital/to/schedules.ts
4
- var schedules_default = (courseEvents) => {
5
- const events = courseEvents.reduce((acc, event) => {
6
- return acc.concat({});
7
- }, []);
8
- const wb = XLSX$1.utils.book_new();
9
- XLSX$1.utils.book_append_sheet(wb, XLSX$1.utils.json_to_sheet(events), "royal schedule export");
10
- return wb;
11
- };
12
-
13
- //#endregion
14
- export { schedules_default as default };
15
- //# sourceMappingURL=schedules.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schedules.js","names":["XLSX"],"sources":["../../../src/PlanDigital/to/schedules.ts"],"sourcesContent":["import * as XLSX from 'xlsx';\n\nimport { Types } from '../types';\n\nimport { Types as CoreTypes } from '../../core/types';\n\nexport default (courseEvents: CoreTypes.course[]): XLSX.WorkBook => {\n const events = courseEvents.reduce((acc: Partial<Types.course>[], event: CoreTypes.course) => {\n\n return acc.concat({\n\n });\n }, []);\n\n const wb = XLSX.utils.book_new();\n\n XLSX.utils.book_append_sheet(wb, XLSX.utils.json_to_sheet(events), 'royal schedule export');\n\n return wb;\n};\n"],"mappings":";;;AAMA,yBAAgB,iBAAoD;CAClE,MAAM,SAAS,aAAa,QAAQ,KAA8B,UAA4B;AAE5F,SAAO,IAAI,OAAO;IAGjB;CAEH,MAAM,KAAKA,OAAK,MAAM;AAEtB,QAAK,MAAM,kBAAkB,IAAIA,OAAK,MAAM,cAAc,SAAS;AAEnE,QAAO"}
@@ -1,38 +0,0 @@
1
- //#region src/RS/v0/from/available-dependencies.ts
2
- var available_dependencies_default = (data, settings) => {
3
- let index = -1;
4
- return (data ? data : []).reduce((acc, dependency) => {
5
- switch (typeof dependency) {
6
- case "string": return acc.concat({
7
- groupIndex: 0,
8
- locations: [dependency]
9
- });
10
- case "object": if (Array.isArray(dependency)) {
11
- index++;
12
- const dependencies = dependency.map((val) => {
13
- switch (typeof val) {
14
- case "string": return {
15
- groupIndex: index,
16
- locations: [val]
17
- };
18
- case "object": return {
19
- ...val.hasOwnProperty("rank") && { rank: val.rank },
20
- groupIndex: index,
21
- locations: [val.dependency]
22
- };
23
- }
24
- });
25
- return acc.concat(...dependencies);
26
- } else return acc.concat({
27
- groupIndex: 0,
28
- locations: [dependency.dependency],
29
- ...dependency.hasOwnProperty("rank") && { rank: dependency.rank }
30
- });
31
- default: throw new Error("course dependency is neither string nor object");
32
- }
33
- }, []);
34
- };
35
-
36
- //#endregion
37
- export { available_dependencies_default as default };
38
- //# sourceMappingURL=available-dependencies.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"available-dependencies.js","names":[],"sources":["../../../../src/RS/v0/from/available-dependencies.ts"],"sourcesContent":["import { Settings } from '../types/settings';\n\nexport default (data: any,\n settings: Settings): any => {\n let index = -1;\n return (data ? data : []).reduce((acc: any, dependency: any) => {\n switch(typeof dependency) {\n case 'string':\n return acc.concat({\n groupIndex: 0,\n locations: [ dependency ]\n });\n case 'object':\n\n /*\n can be\n\n {\n rank?: number,\n dependency: string\n }\n\n or\n [ {...} ]\n\n */\n if (Array.isArray(dependency)) {\n index++;\n\n const dependencies = dependency.map((val) => {\n switch(typeof val) {\n case 'string':\n return {\n groupIndex: index,\n locations: [ val ]\n };\n case 'object':\n return {\n ...val.hasOwnProperty('rank') && { rank: val.rank },\n groupIndex: index,\n locations: [ val.dependency ]\n };\n }\n });\n return acc.concat(...dependencies);\n } else\n return acc.concat({\n groupIndex: 0,\n locations: [ dependency.dependency ],\n ...dependency.hasOwnProperty('rank') && { rank: dependency.rank },\n });\n default:\n throw new Error('course dependency is neither string nor object');\n }\n }, []);\n};"],"mappings":";AAEA,sCAAgB,MACd,aAA4B;CAC5B,IAAI,QAAQ;AACZ,SAAQ,OAAO,OAAO,IAAI,QAAQ,KAAU,eAAoB;AAC9D,UAAO,OAAO,YAAd;GACE,KAAK,SACH,QAAO,IAAI,OAAO;IAChB,YAAY;IACZ,WAAY,CAAE;;GAElB,KAAK,SAcH,KAAI,MAAM,QAAQ,aAAa;AAC7B;IAEA,MAAM,eAAe,WAAW,KAAK,QAAQ;AAC3C,aAAO,OAAO,KAAd;MACE,KAAK,SACH,QAAO;OACL,YAAY;OACZ,WAAY,CAAE;;MAElB,KAAK,SACH,QAAO;OACL,GAAG,IAAI,eAAe,WAAW,EAAE,MAAM,IAAI;OAC7C,YAAY;OACZ,WAAY,CAAE,IAAI;;;;AAI1B,WAAO,IAAI,OAAO,GAAG;SAErB,QAAO,IAAI,OAAO;IAChB,YAAY;IACZ,WAAY,CAAE,WAAW;IACzB,GAAG,WAAW,eAAe,WAAW,EAAE,MAAM,WAAW;;GAEjE,QACE,OAAM,IAAI,MAAM;;IAEnB"}
@@ -1,15 +0,0 @@
1
- //#region src/RS/v0/from/break-lengths.ts
2
- var break_lengths_default = (breakLength) => {
3
- if (breakLength == null) return null;
4
- switch (typeof breakLength) {
5
- case "boolean":
6
- case "number": return breakLength;
7
- case "object": if (Array.isArray(breakLength) && breakLength.length == 2) return breakLength;
8
- else if (breakLength?.bef != null && breakLength?.aft != null) return [breakLength.bef, breakLength.aft];
9
- default: throw new Error("day is neither number, boolean, array or object of type { bef, aft }");
10
- }
11
- };
12
-
13
- //#endregion
14
- export { break_lengths_default as default };
15
- //# sourceMappingURL=break-lengths.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"break-lengths.js","names":[],"sources":["../../../../src/RS/v0/from/break-lengths.ts"],"sourcesContent":["import { BreakLength } from '../types/break-lengths';\n\nexport default (breakLength: BreakLength | null | undefined): any => {\n\n if (breakLength == null) return null;\n\n switch(typeof breakLength) {\n case 'boolean':\n case 'number':\n return breakLength;\n case 'object':\n if (Array.isArray(breakLength) && breakLength.length == 2)\n return breakLength;\n else if (breakLength?.bef != null && breakLength?.aft != null)\n return [breakLength.bef, breakLength.aft];\n default:\n throw new Error('day is neither number, boolean, array or object of type { bef, aft }');\n }\n};"],"mappings":";AAEA,6BAAgB,gBAAqD;AAEnE,KAAI,eAAe,KAAM,QAAO;AAEhC,SAAO,OAAO,aAAd;EACE,KAAK;EACL,KAAK,SACH,QAAO;EACT,KAAK,SACH,KAAI,MAAM,QAAQ,gBAAgB,YAAY,UAAU,EACtD,QAAO;WACA,aAAa,OAAO,QAAQ,aAAa,OAAO,KACvD,QAAO,CAAC,YAAY,KAAK,YAAY;EACzC,QACE,OAAM,IAAI,MAAM"}
@@ -1,68 +0,0 @@
1
- import get_date_default from "../../../common/get-date.js";
2
- import available_dependencies_default from "./available-dependencies.js";
3
- import break_lengths_default from "./break-lengths.js";
4
- import days_default from "./days.js";
5
- import locked_times_default from "./locked-times.js";
6
- import intervals_default from "./intervals.js";
7
-
8
- //#region src/RS/v0/from/course-events.ts
9
- var course_events_default = (courseEvents, course, teachersList, groupsList, settings) => {
10
- return courseEvents.reduce((acc, event) => {
11
- switch (typeof event) {
12
- case "number": return acc.concat({
13
- duration: event,
14
- ids: course[settings.courseIdKey] + "_" + acc.length,
15
- ...course.name && { displayName: course.name }
16
- });
17
- case "object":
18
- if (!event[settings.eventIdKey]) event[settings.eventIdKey] = course[settings.courseIdKey] + "_" + acc.length;
19
- let teachers, groups;
20
- if (event.groups) teachers = event.groups.reduce((acc$1, gId) => {
21
- if (teachersList.indexOf(gId) != -1) return acc$1.concat(gId);
22
- return acc$1;
23
- }, []);
24
- if (event.groups) groups = event.groups.reduce((acc$1, gId) => {
25
- if (groupsList.indexOf(gId) != -1) return acc$1.concat(gId);
26
- return acc$1;
27
- }, []);
28
- let fixedStart = false;
29
- let start = null;
30
- let end = null;
31
- if (event.start) {
32
- const day = event.day || 0;
33
- fixedStart = true;
34
- start = get_date_default(day, event.start.toFixed(2).replace(".", ":"));
35
- end = start?.clone().add(event.length, "minutes");
36
- if (start?.day() != end?.day()) throw new Error("course event have fixed time such that the event occurs on two days");
37
- }
38
- return acc.concat({
39
- duration: event.length,
40
- parked: !start,
41
- ...event[settings.eventIdKey] && { ids: event[settings.eventIdKey] },
42
- ...(event.name || course.name) && { displayName: event.name ? event.name : course.name },
43
- ...fixedStart && { fixedStart },
44
- ...start && { start },
45
- ...end && { end },
46
- ...event.hasOwnProperty("density") && { density: event.density },
47
- ...event.hasOwnProperty("weight") && { weight: event.weight },
48
- ...event.hasOwnProperty("potentialCenter") && { potentialCenter: event.potentialCenter },
49
- ..."minBreakLength" in event && { minBreakLength: break_lengths_default(event.minBreakLength) },
50
- ...event.intervals && { intervals: intervals_default(event.intervals) },
51
- ...event.lockedTimes && { lockedTimes: locked_times_default(event.lockedTimes) },
52
- ...!event.dependencies && { locations: null },
53
- ...event.dependencies && { locations: available_dependencies_default(event.dependencies, settings) },
54
- ...!groups && { groups: null },
55
- ...groups && { groups },
56
- ...!teachers && { teachers: null },
57
- ...teachers && { teachers },
58
- ...!event.days && { days: null },
59
- ...event.days && { days: days_default(event.days, settings) }
60
- });
61
- default: throw new Error("course event is neither number nor object, course " + course[settings.courseIdKey]);
62
- }
63
- }, []);
64
- };
65
-
66
- //#endregion
67
- export { course_events_default as default };
68
- //# sourceMappingURL=course-events.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"course-events.js","names":["acc","fixedStart: boolean","start: moment.Moment | null","end: moment.Moment | null","day: number","getDate","breakLength","intervals","lockedTime","availableDependencies","days"],"sources":["../../../../src/RS/v0/from/course-events.ts"],"sourcesContent":["import moment from 'moment';\n\nimport breakLength from './break-lengths';\nimport days from './days';\nimport lockedTime from './locked-times';\nimport intervals from './intervals';\nimport availableDependencies from './available-dependencies';\nimport getDate from '../../../common/get-date';\n\nimport { Settings } from '../types/settings';\nimport { CourseEvent } from '../types/course-events';\nimport { Course } from '../types/courses';\n\nexport default (courseEvents: (CourseEvent | number)[],\n course: Course,\n teachersList: string[],\n groupsList: string[],\n settings: Settings): any => {\n return courseEvents.reduce((acc: any[], event: CourseEvent | number) => {\n\n switch (typeof event) {\n case 'number':\n return acc.concat({\n duration: event,\n ids: (course as any)[settings.courseIdKey!] + '_' + acc.length,\n ...course.name && { displayName: course.name },\n });\n case 'object':\n\n if (!(event as any)[settings.eventIdKey!]) {\n (event as any)[settings.eventIdKey!] = (course as any)[settings.courseIdKey!] + '_' + acc.length;\n }\n\n let teachers, groups;\n if (event.groups)\n teachers = event.groups.reduce((acc: string[], gId: string) => {\n if (teachersList.indexOf(gId) != -1)\n return acc.concat(gId);\n return acc;\n }, []);\n\n if (event.groups)\n groups = event.groups.reduce((acc: string[], gId: string) => {\n if (groupsList.indexOf(gId) != -1)\n return acc.concat(gId);\n return acc;\n }, []);\n\n let fixedStart: boolean = false;\n let start: moment.Moment | null = null;\n let end: moment.Moment | null = null;\n if (event.start) {\n const day: number = event.day || 0;\n fixedStart = true;\n start = getDate(day, event.start.toFixed(2).replace('.', ':'));\n end = start?.clone().add(event.length, 'minutes');\n\n if (start?.day() != end?.day())\n throw new Error('course event have fixed time such that the event occurs on two days');\n }\n\n return acc.concat({\n duration: event.length,\n parked: !start,\n ...(event as any)[settings.eventIdKey!] && { ids: (event as any)[settings.eventIdKey!] },\n ...(event.name || course.name) && { displayName: event.name ? event.name : course.name },\n ...fixedStart && { fixedStart: fixedStart },\n ...start && { start: start },\n ...end && { end: end },\n ...event.hasOwnProperty('density') && { density: event.density },\n ...event.hasOwnProperty('weight') && { weight: event.weight },\n ...event.hasOwnProperty('potentialCenter') && { potentialCenter: event.potentialCenter },\n ...'minBreakLength' in event && { minBreakLength: breakLength(event.minBreakLength) },\n ...event.intervals && { intervals: intervals(event.intervals) },\n ...event.lockedTimes && { lockedTimes: lockedTime(event.lockedTimes) },\n ...!(event.dependencies) && { locations: null },\n ...event.dependencies && { locations: availableDependencies(event.dependencies, settings) },\n ...!(groups) && { groups: null },\n ...groups && { groups: groups },\n ...!(teachers) && { teachers: null },\n ...teachers && { teachers: teachers },\n ...!(event.days) && { days: null },\n ...event.days && { days: days(event.days, settings) },\n });\n default:\n throw new Error('course event is neither number nor object, course ' + (course as any)[settings.courseIdKey!]);\n }\n }, []);\n};"],"mappings":";;;;;;;;AAaA,6BAAgB,cACd,QACA,cACA,YACA,aAAgC;AAChC,QAAO,aAAa,QAAQ,KAAY,UAAgC;AAEtE,UAAQ,OAAO,OAAf;GACE,KAAK,SACH,QAAO,IAAI,OAAO;IAChB,UAAU;IACV,KAAW,OAAe,SAAS,eAAgB,MAAM,IAAI;IAC7D,GAAG,OAAO,QAAQ,EAAE,aAAa,OAAO;;GAE5C,KAAK;AAEH,QAAI,CAAE,MAAc,SAAS,YAC3B,CAAC,MAAc,SAAS,cAAgB,OAAe,SAAS,eAAgB,MAAM,IAAI;IAG5F,IAAI,UAAU;AACd,QAAI,MAAM,OACR,YAAW,MAAM,OAAO,QAAQ,OAAe,QAAgB;AAC7D,SAAI,aAAa,QAAQ,QAAQ,GAC/B,QAAOA,MAAI,OAAO;AACpB,YAAOA;OACN;AAEL,QAAI,MAAM,OACR,UAAS,MAAM,OAAO,QAAQ,OAAe,QAAgB;AAC3D,SAAI,WAAW,QAAQ,QAAQ,GAC7B,QAAOA,MAAI,OAAO;AACpB,YAAOA;OACN;IAEL,IAAIC,aAAmC;IACvC,IAAIC,QAAmC;IACvC,IAAIC,MAAmC;AACvC,QAAI,MAAM,OAAO;KACf,MAAMC,MAAc,MAAM,OAAO;AACjC,kBAAa;AACb,aAAaC,iBAAQ,KAAK,MAAM,MAAM,QAAQ,GAAG,QAAQ,KAAK;AAC9D,WAAa,OAAO,QAAQ,IAAI,MAAM,QAAQ;AAE9C,SAAI,OAAO,SAAS,KAAK,MACvB,OAAM,IAAI,MAAM;;AAGpB,WAAO,IAAI,OAAO;KAChB,UAAU,MAAM;KAChB,QAAU,CAAC;KACX,GAAI,MAAc,SAAS,eAAmB,EAAE,KAAM,MAAc,SAAS;KAC7E,IAAI,MAAM,QAAQ,OAAO,SAAqB,EAAE,aAAiB,MAAM,OAAO,MAAM,OAAO,OAAO;KAClG,GAAG,cAA2C,EAAmB;KACjE,GAAG,SAA2C,EAAmB;KACjE,GAAG,OAA2C,EAAmB;KACjE,GAAG,MAAM,eAAe,cAAsB,EAAE,SAAiB,MAAM;KACvE,GAAG,MAAM,eAAe,aAAsB,EAAE,QAAiB,MAAM;KACvE,GAAG,MAAM,eAAe,sBAAsB,EAAE,iBAAiB,MAAM;KACvE,GAAG,oBAAoB,SAAuB,EAAE,gBAAiBC,sBAAY,MAAM;KACnF,GAAG,MAAM,aAAqC,EAAE,WAAiBC,kBAAU,MAAM;KACjF,GAAG,MAAM,eAAqC,EAAE,aAAiBC,qBAAW,MAAM;KAClF,GAAG,CAAE,MAAM,gBAAmC,EAAE,WAAiB;KACjE,GAAG,MAAM,gBAAqC,EAAE,WAAiBC,+BAAsB,MAAM,cAAc;KAC3G,GAAG,CAAE,UAAyC,EAAE,QAAiB;KACjE,GAAG,UAA2C,EAAmB;KACjE,GAAG,CAAE,YAAyC,EAAE,UAAiB;KACjE,GAAG,YAA2C,EAAmB;KACjE,GAAG,CAAE,MAAM,QAAmC,EAAE,MAAiB;KACjE,GAAG,MAAM,QAAqC,EAAE,MAAiBC,aAAK,MAAM,MAAM;;GAEtF,QACE,OAAM,IAAI,MAAM,uDAAwD,OAAe,SAAS;;IAEnG"}
@@ -1,53 +0,0 @@
1
- import available_dependencies_default from "./available-dependencies.js";
2
- import break_lengths_default from "./break-lengths.js";
3
- import days_default from "./days.js";
4
- import locked_times_default from "./locked-times.js";
5
- import intervals_default from "./intervals.js";
6
- import course_events_default from "./course-events.js";
7
-
8
- //#region src/RS/v0/from/courses.ts
9
- function _course(course, teachersList, groupsList, settings, overlapGroup = null) {
10
- if (!course[settings.courseIdKey]) throw new Error("A course missing a unique key");
11
- const doc = {
12
- ids: course[settings.courseIdKey],
13
- ...overlapGroup != null && { overlapGroup: overlapGroup.toString() },
14
- ...course.name && { displayName: course.name },
15
- ...course.subject && { subject: course.subject },
16
- ...course.color && { color: course.color },
17
- ..."minBreakLength" in course && { minBreakLength: break_lengths_default(course.minBreakLength) },
18
- ..."density" in course && { density: course.density },
19
- ..."weight" in course && { weight: course.weight },
20
- ...course.hasOwnProperty("potentialCenter") && { potentialCenter: course.potentialCenter },
21
- ...course.dependencies && { locations: available_dependencies_default(course.dependencies, settings) },
22
- ...course.intervals && { intervals: intervals_default(course.intervals) },
23
- ...course.lockedTimes && { lockedTimes: locked_times_default(course.lockedTimes) },
24
- ...course.days && { days: days_default(course.days, settings) }
25
- };
26
- doc.teachers = (course.groups ? course.groups : []).reduce((acc, gId) => {
27
- if (teachersList.indexOf(gId) != -1) return acc.concat(gId);
28
- return acc;
29
- }, []);
30
- doc.groups = (course.groups ? course.groups : []).reduce((acc, gId) => {
31
- if (groupsList.indexOf(gId) != -1) return acc.concat(gId);
32
- return acc;
33
- }, []);
34
- if (doc.teachers.length + doc.groups.length !== (course.groups || []).length) throw new Error(`Length of teachers + groups does not match length of groups in input for course ${course[settings.courseIdKey]}`);
35
- if ((course.events || []).length) doc.events = course_events_default(course.events, course, teachersList, groupsList, settings);
36
- return doc;
37
- }
38
- const reduceCourses = (courses, teachersList, groupsList, settings, overlapGroup = 0) => {
39
- return courses.reduce((acc, course) => {
40
- if (Array.isArray(course)) {
41
- const _overlapGroup = overlapGroup++;
42
- return acc.concat(course.map((innerCourse) => {
43
- return _course(innerCourse, teachersList, groupsList, settings, _overlapGroup);
44
- }));
45
- }
46
- return acc.concat(_course(course, teachersList, groupsList, settings));
47
- }, []);
48
- };
49
- var courses_default = reduceCourses;
50
-
51
- //#endregion
52
- export { courses_default as default };
53
- //# sourceMappingURL=courses.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"courses.js","names":["doc: any","breakLength","availableDependencies","intervals","lockedTime","days","courseEvents","_overlapGroup: number"],"sources":["../../../../src/RS/v0/from/courses.ts"],"sourcesContent":["\nimport breakLength from './break-lengths';\nimport days from './days';\nimport lockedTime from './locked-times';\nimport intervals from './intervals';\nimport availableDependencies from './available-dependencies';\nimport courseEvents from './course-events';\n\nimport { Settings } from '../types/settings';\nimport { Course } from '../types/courses';\n\nimport { Course as SourceCourse } from '../../../core/v2/types/courses';\n\n\nfunction _course (course: Course,\n teachersList: string[],\n groupsList: string[],\n settings: Settings,\n overlapGroup: number | null = null) {\n\n if (!(course as any)[settings.courseIdKey!])\n throw new Error('A course missing a unique key');\n\n const doc: any = {\n ids: (course as any)[settings.courseIdKey!],\n ...(overlapGroup != null) && { overlapGroup: overlapGroup.toString() },\n ...course.name && { displayName: course.name },\n ...course.subject && { subject: course.subject },\n ...course.color && { color: course.color },\n ...'minBreakLength' in course && { minBreakLength: breakLength(course.minBreakLength) },\n ...'density' in course && { density: course.density },\n ...'weight' in course && { weight: course.weight },\n ...course.hasOwnProperty('potentialCenter') && { potentialCenter: course.potentialCenter },\n ...course.dependencies && { locations: availableDependencies(course.dependencies, settings) },\n ...course.intervals && { intervals: intervals(course.intervals) },\n ...course.lockedTimes && { lockedTimes: lockedTime(course.lockedTimes) },\n ...course.days && { days: days(course.days, settings) },\n };\n\n doc.teachers = (course.groups ? course.groups : []).reduce((acc: string[], gId: string) => {\n if (teachersList.indexOf(gId) != -1)\n return acc.concat(gId);\n return acc;\n }, []);\n\n doc.groups = (course.groups ? course.groups : []).reduce((acc: string[], gId: string) => {\n if (groupsList.indexOf(gId) != -1)\n return acc.concat(gId);\n return acc;\n }, []);\n\n if ((doc.teachers.length + doc.groups.length) !== (course.groups || []).length )\n throw new Error(`Length of teachers + groups does not match length of groups in input for course ${(course as any)[settings.courseIdKey!]}`);\n\n if ((course.events || []).length)\n doc.events = courseEvents(course.events!, course, teachersList, groupsList, settings);\n\n return doc;\n}\n\nconst reduceCourses = (courses: (Course | Course[])[],\n teachersList: string[],\n groupsList: string[],\n settings: Settings,\n overlapGroup: number = 0): SourceCourse[] => {\n\n return courses.reduce((acc: any, course: Course | Course[]) => {\n\n if (Array.isArray(course)) {\n const _overlapGroup: number = overlapGroup++;\n return acc.concat((course).map((innerCourse: Course) => {\n return _course(innerCourse, teachersList, groupsList, settings, _overlapGroup);\n })\n );\n }\n\n return acc.concat(_course(course, teachersList, groupsList, settings));\n }, []);\n};\n\nexport default reduceCourses;"],"mappings":";;;;;;;;AAcA,SAAS,QAAS,QAChB,cACA,YACA,UACA,eAA8B,MAAM;AAEpC,KAAI,CAAE,OAAe,SAAS,aAC5B,OAAM,IAAI,MAAM;CAElB,MAAMA,MAAW;EACf,KAAM,OAAe,SAAS;EAC9B,GAAI,gBAAgB,QAA6B,EAAE,cAAiB,aAAa;EACjF,GAAG,OAAO,QAAuC,EAAE,aAAiB,OAAO;EAC3E,GAAG,OAAO,WAAuC,EAAE,SAAiB,OAAO;EAC3E,GAAG,OAAO,SAAuC,EAAE,OAAiB,OAAO;EAC3E,GAAG,oBAAoB,UAA0B,EAAE,gBAAiBC,sBAAY,OAAO;EACvF,GAAG,aAAoB,UAA0B,EAAE,SAAiB,OAAO;EAC3E,GAAG,YAAoB,UAA0B,EAAE,QAAiB,OAAO;EAC3E,GAAG,OAAO,eAAe,sBAAwB,EAAE,iBAAiB,OAAO;EAC3E,GAAG,OAAO,gBAAuC,EAAE,WAAiBC,+BAAsB,OAAO,cAAc;EAC/G,GAAG,OAAO,aAAuC,EAAE,WAAiBC,kBAAU,OAAO;EACrF,GAAG,OAAO,eAAuC,EAAE,aAAiBC,qBAAW,OAAO;EACtF,GAAG,OAAO,QAAuC,EAAE,MAAiBC,aAAK,OAAO,MAAM;;AAGxF,KAAI,YAAY,OAAO,SAAS,OAAO,SAAS,IAAI,QAAQ,KAAe,QAAgB;AACzF,MAAI,aAAa,QAAQ,QAAQ,GAC/B,QAAO,IAAI,OAAO;AACpB,SAAO;IACN;AAEH,KAAI,UAAU,OAAO,SAAS,OAAO,SAAS,IAAI,QAAQ,KAAe,QAAgB;AACvF,MAAI,WAAW,QAAQ,QAAQ,GAC7B,QAAO,IAAI,OAAO;AACpB,SAAO;IACN;AAEH,KAAK,IAAI,SAAS,SAAS,IAAI,OAAO,YAAa,OAAO,UAAU,IAAI,OACtE,OAAM,IAAI,MAAM,mFAAoF,OAAe,SAAS;AAE9H,MAAK,OAAO,UAAU,IAAI,OACxB,KAAI,SAASC,sBAAa,OAAO,QAAS,QAAQ,cAAc,YAAY;AAE9E,QAAO;;AAGT,MAAM,iBAAiB,SACrB,cACA,YACA,UACA,eAAuB,MAAsB;AAE7C,QAAO,QAAQ,QAAQ,KAAU,WAA8B;AAE7D,MAAI,MAAM,QAAQ,SAAS;GACzB,MAAMC,gBAAwB;AAC9B,UAAO,IAAI,OAAQ,OAAQ,KAAK,gBAAwB;AACtD,WAAO,QAAQ,aAAa,cAAc,YAAY,UAAU;;;AAKpE,SAAO,IAAI,OAAO,QAAQ,QAAQ,cAAc,YAAY;IAC3D;;AAGL,sBAAe"}
@@ -1,14 +0,0 @@
1
- //#region src/RS/v0/from/days.ts
2
- var days_default = (days, settings) => {
3
- return days.map((day) => {
4
- switch (typeof day) {
5
- case "number": return { day };
6
- case "object": return day;
7
- default: throw new Error("day is neither number or object");
8
- }
9
- });
10
- };
11
-
12
- //#endregion
13
- export { days_default as default };
14
- //# sourceMappingURL=days.js.map