@royalschedule/maps 3.3.16 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (949) 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 +13 -13
  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/index.d.ts +2 -0
  18. package/dist/Additio/types/options.d.ts +8 -0
  19. package/dist/Additio/types/schedules.d.ts +1 -5
  20. package/dist/Admentum/from/courses.js.map +1 -1
  21. package/dist/Admentum/from/events.js.map +1 -1
  22. package/dist/Admentum/from/groups.js.map +1 -1
  23. package/dist/Admentum/from/index.js.map +1 -1
  24. package/dist/Admentum/from/locations.js.map +1 -1
  25. package/dist/Admentum/from/persons.js +1 -1
  26. package/dist/Admentum/from/persons.js.map +1 -1
  27. package/dist/Admentum/from/schedules.d.ts +32 -2
  28. package/dist/Admentum/from/schedules.js.map +1 -1
  29. package/dist/Admentum/from/teachers.js.map +1 -1
  30. package/dist/Admentum/index.js.map +1 -1
  31. package/dist/Admentum/to/index.d.ts +11 -10
  32. package/dist/Admentum/to/index.js.map +1 -1
  33. package/dist/Admentum/to/schedules.js +22 -25
  34. package/dist/Admentum/to/schedules.js.map +1 -1
  35. package/dist/Excel/index.d.ts +55 -4
  36. package/dist/Excel/index.js.map +1 -1
  37. package/dist/Excel/v1/from/index.js +7 -7
  38. package/dist/Excel/v1/from/index.js.map +1 -1
  39. package/dist/Excel/v1/index.d.ts +30 -2
  40. package/dist/Excel/v1/index.js.map +1 -1
  41. package/dist/Excel/v2/from/index.js +10 -10
  42. package/dist/Excel/v2/from/index.js.map +1 -1
  43. package/dist/Excel/v2/index.d.ts +53 -2
  44. package/dist/Excel/v2/index.js.map +1 -1
  45. package/dist/IdunSoft/from/courses.js +4 -3
  46. package/dist/IdunSoft/from/courses.js.map +1 -1
  47. package/dist/IdunSoft/from/events.js +43 -32
  48. package/dist/IdunSoft/from/events.js.map +1 -1
  49. package/dist/IdunSoft/from/groups.js +5 -4
  50. package/dist/IdunSoft/from/groups.js.map +1 -1
  51. package/dist/IdunSoft/from/index.js.map +1 -1
  52. package/dist/IdunSoft/from/locations.js +4 -3
  53. package/dist/IdunSoft/from/locations.js.map +1 -1
  54. package/dist/IdunSoft/from/schedules.d.ts +18 -3
  55. package/dist/IdunSoft/from/schedules.js +5 -10
  56. package/dist/IdunSoft/from/schedules.js.map +1 -1
  57. package/dist/IdunSoft/from/teachers.js +4 -3
  58. package/dist/IdunSoft/from/teachers.js.map +1 -1
  59. package/dist/IdunSoft/index.js.map +1 -1
  60. package/dist/IdunSoft/to/index.d.ts +2 -3
  61. package/dist/IdunSoft/to/index.js.map +1 -1
  62. package/dist/IdunSoft/to/schedules.js +22 -21
  63. package/dist/IdunSoft/to/schedules.js.map +1 -1
  64. package/dist/InfoMentor/index.js.map +1 -1
  65. package/dist/InfoMentor/to/index.d.ts +2 -2
  66. package/dist/InfoMentor/to/index.js.map +1 -1
  67. package/dist/InfoMentor/to/schedules.js +26 -27
  68. package/dist/InfoMentor/to/schedules.js.map +1 -1
  69. package/dist/PlanDigital/from/index.js.map +1 -1
  70. package/dist/PlanDigital/from/schedules.js +7 -6
  71. package/dist/PlanDigital/from/schedules.js.map +1 -1
  72. package/dist/PlanDigital/index.d.ts +106 -5
  73. package/dist/PlanDigital/index.js +0 -2
  74. package/dist/PlanDigital/index.js.map +1 -1
  75. package/dist/PlanDigital/types/index.d.ts +12 -11
  76. package/dist/Quiculum/file/to/index.d.ts +1 -1
  77. package/dist/Quiculum/file/to/schedules.js +11 -13
  78. package/dist/Quiculum/file/to/schedules.js.map +1 -1
  79. package/dist/RS/from/division.d.ts +7 -0
  80. package/dist/RS/from/division.js +14 -0
  81. package/dist/RS/from/division.js.map +1 -0
  82. package/dist/RS/from/index.js +12 -0
  83. package/dist/RS/from/index.js.map +1 -0
  84. package/dist/RS/from/schedules.d.ts +8 -0
  85. package/dist/RS/from/schedules.js +36 -0
  86. package/dist/RS/from/schedules.js.map +1 -0
  87. package/dist/RS/index.d.ts +11 -12
  88. package/dist/RS/index.js +4 -8
  89. package/dist/RS/index.js.map +1 -1
  90. package/dist/RS/make-connected.d.ts +24 -0
  91. package/dist/RS/make-connected.js +258 -0
  92. package/dist/RS/make-connected.js.map +1 -0
  93. package/dist/RS/to/index.js +8 -0
  94. package/dist/RS/to/index.js.map +1 -0
  95. package/dist/RS/to/initial-configuration.js +43 -0
  96. package/dist/RS/to/initial-configuration.js.map +1 -0
  97. package/dist/RS/to/input/collections.js +57 -0
  98. package/dist/RS/to/input/collections.js.map +1 -0
  99. package/dist/RS/{v3/to → to/input}/default.js +10 -18
  100. package/dist/RS/to/input/default.js.map +1 -0
  101. package/dist/RS/to/input/dependencies.js +32 -0
  102. package/dist/RS/to/input/dependencies.js.map +1 -0
  103. package/dist/RS/to/input/dynamic-locked-times.js +67 -0
  104. package/dist/RS/to/input/dynamic-locked-times.js.map +1 -0
  105. package/dist/RS/to/input/events.js +84 -0
  106. package/dist/RS/to/input/events.js.map +1 -0
  107. package/dist/RS/to/input/groups.js +36 -0
  108. package/dist/RS/to/input/groups.js.map +1 -0
  109. package/dist/RS/to/input/individuals.js +49 -0
  110. package/dist/RS/to/input/individuals.js.map +1 -0
  111. package/dist/RS/to/input/input.js +40 -0
  112. package/dist/RS/to/input/input.js.map +1 -0
  113. package/dist/RS/to/input/intervals.js +99 -0
  114. package/dist/RS/to/input/intervals.js.map +1 -0
  115. package/dist/RS/to/input/periods.js +44 -0
  116. package/dist/RS/to/input/periods.js.map +1 -0
  117. package/dist/RS/to/input/settings.js +17 -0
  118. package/dist/RS/to/input/settings.js.map +1 -0
  119. package/dist/RS/to/input/teachers.js +36 -0
  120. package/dist/RS/to/input/teachers.js.map +1 -0
  121. package/dist/RS/to/input/util/attach-locked-times.js +27 -0
  122. package/dist/RS/to/input/util/attach-locked-times.js.map +1 -0
  123. package/dist/RS/to/input/util/parse-days.js +10 -0
  124. package/dist/RS/to/input/util/parse-days.js.map +1 -0
  125. package/dist/RS/to/input/util/parse-group-references.js +58 -0
  126. package/dist/RS/to/input/util/parse-group-references.js.map +1 -0
  127. package/dist/RS/to/input/util/parse-intervals.js +55 -0
  128. package/dist/RS/to/input/util/parse-intervals.js.map +1 -0
  129. package/dist/RS/to/input/util/parse-location-references.js +31 -0
  130. package/dist/RS/to/input/util/parse-location-references.js.map +1 -0
  131. package/dist/RS/to/input/util/parse-max-working-hours.js +17 -0
  132. package/dist/RS/to/input/util/parse-max-working-hours.js.map +1 -0
  133. package/dist/RS/to/input/util/parse-minimum-break-length.js +19 -0
  134. package/dist/RS/to/input/util/parse-minimum-break-length.js.map +1 -0
  135. package/dist/RS/to/input/util/util.js +61 -0
  136. package/dist/RS/to/input/util/util.js.map +1 -0
  137. package/dist/RS/to/schedules.d.ts +7 -0
  138. package/dist/RS/to/schedules.js +40 -0
  139. package/dist/RS/to/schedules.js.map +1 -0
  140. package/dist/RS/{v3/types → types}/algorithm-parameters.d.ts +1 -1
  141. package/dist/RS/types/collections.d.ts +26 -0
  142. package/dist/RS/types/configurations.d.ts +10 -0
  143. package/dist/RS/{v3/types → types}/default.d.ts +4 -5
  144. package/dist/RS/types/dependencies.d.ts +16 -0
  145. package/dist/RS/types/event-configuration.d.ts +17 -0
  146. package/dist/RS/types/events.d.ts +27 -0
  147. package/dist/RS/{v2/types → types}/groups.d.ts +11 -12
  148. package/dist/RS/types/index.d.ts +45 -0
  149. package/dist/RS/types/individuals.d.ts +16 -0
  150. package/dist/RS/{v2/types → types}/locked-times.d.ts +2 -1
  151. package/dist/RS/types/root-intervals.d.ts +10 -0
  152. package/dist/RS/types/schedule-data.d.ts +16 -0
  153. package/dist/RS/{v2/types → types}/settings.d.ts +1 -1
  154. package/dist/RS/types/shared.d.ts +27 -0
  155. package/dist/RS/types/to.d.ts +44 -0
  156. package/dist/SchoolSoft/api/from/index.js.map +1 -1
  157. package/dist/SchoolSoft/api/from/schedules.js +31 -37
  158. package/dist/SchoolSoft/api/from/schedules.js.map +1 -1
  159. package/dist/SchoolSoft/api/index.d.ts +14 -2
  160. package/dist/SchoolSoft/api/index.js.map +1 -1
  161. package/dist/SchoolSoft/file/from/index.js.map +1 -1
  162. package/dist/SchoolSoft/file/from/schedules.js +36 -46
  163. package/dist/SchoolSoft/file/from/schedules.js.map +1 -1
  164. package/dist/SchoolSoft/file/index.d.ts +2 -3
  165. package/dist/SchoolSoft/file/index.js.map +1 -1
  166. package/dist/SchoolSoft/file/to/index.d.ts +6 -13
  167. package/dist/SchoolSoft/file/to/schedules.js +40 -42
  168. package/dist/SchoolSoft/file/to/schedules.js.map +1 -1
  169. package/dist/SchoolSoft/index.d.ts +2 -3
  170. package/dist/SchoolSoft/index.js.map +1 -1
  171. package/dist/Schoolity/txt/index.js.map +1 -1
  172. package/dist/Schoolity/txt/to/index.d.ts +3 -3
  173. package/dist/Schoolity/txt/to/index.js.map +1 -1
  174. package/dist/Schoolity/txt/to/schedules.js +78 -96
  175. package/dist/Schoolity/txt/to/schedules.js.map +1 -1
  176. package/dist/Skola24/index.js.map +1 -1
  177. package/dist/Skola24/mdb/from/course-and-events.js +36 -29
  178. package/dist/Skola24/mdb/from/course-and-events.js.map +1 -1
  179. package/dist/Skola24/mdb/from/groups.js.map +1 -1
  180. package/dist/Skola24/mdb/from/index.js.map +1 -1
  181. package/dist/Skola24/mdb/from/locations.js.map +1 -1
  182. package/dist/Skola24/mdb/from/schedule.d.ts +21 -3
  183. package/dist/Skola24/mdb/from/schedule.js +15 -17
  184. package/dist/Skola24/mdb/from/schedule.js.map +1 -1
  185. package/dist/Skola24/mdb/from/teachers.js.map +1 -1
  186. package/dist/Skola24/mdb/index.js.map +1 -1
  187. package/dist/Skola24/mdb/types/index.d.ts +7 -0
  188. package/dist/Skola24/txt/from/calendar-exceptions.js.map +1 -1
  189. package/dist/Skola24/txt/from/division.js.map +1 -1
  190. package/dist/Skola24/txt/from/index.js.map +1 -1
  191. package/dist/Skola24/txt/from/period.js.map +1 -1
  192. package/dist/Skola24/txt/from/schedules.d.ts +16 -0
  193. package/dist/Skola24/txt/from/schedules.js +90 -80
  194. package/dist/Skola24/txt/from/schedules.js.map +1 -1
  195. package/dist/Skola24/txt/index.d.ts +17 -5
  196. package/dist/Skola24/txt/index.js.map +1 -1
  197. package/dist/Skola24/txt/to/index.d.ts +3 -3
  198. package/dist/Skola24/txt/to/index.js.map +1 -1
  199. package/dist/Skola24/txt/to/schedules.js +76 -91
  200. package/dist/Skola24/txt/to/schedules.js.map +1 -1
  201. package/dist/Skola24/txt/types/index.d.ts +5 -2
  202. package/dist/common/constants.js +2 -2
  203. package/dist/common/constants.js.map +1 -1
  204. package/dist/common/functions.js +16 -21
  205. package/dist/common/functions.js.map +1 -1
  206. package/dist/common/get-date.js +5 -6
  207. package/dist/common/get-date.js.map +1 -1
  208. package/dist/common/make-chainable/index.js +36 -0
  209. package/dist/common/make-chainable/index.js.map +1 -0
  210. package/dist/common/types.d.ts +12 -0
  211. package/dist/core/from/courses.js +12 -0
  212. package/dist/core/from/courses.js.map +1 -0
  213. package/dist/core/from/events.js +13 -0
  214. package/dist/core/from/events.js.map +1 -0
  215. package/dist/core/from/exceptions.js +12 -0
  216. package/dist/core/from/exceptions.js.map +1 -0
  217. package/dist/core/from/groups.js +12 -0
  218. package/dist/core/from/groups.js.map +1 -0
  219. package/dist/core/{v2/from → from}/index.js +1 -1
  220. package/dist/core/from/index.js.map +1 -0
  221. package/dist/core/from/locations.js +12 -0
  222. package/dist/core/from/locations.js.map +1 -0
  223. package/dist/core/from/locked-times.js +12 -0
  224. package/dist/core/from/locked-times.js.map +1 -0
  225. package/dist/core/from/overlap-groups.js +12 -0
  226. package/dist/core/from/overlap-groups.js.map +1 -0
  227. package/dist/core/from/periods.js +12 -0
  228. package/dist/core/from/periods.js.map +1 -0
  229. package/dist/core/from/persons.js +12 -0
  230. package/dist/core/from/persons.js.map +1 -0
  231. package/dist/core/from/root-intervals.js +12 -0
  232. package/dist/core/from/root-intervals.js.map +1 -0
  233. package/dist/core/from/schedules.d.ts +7 -0
  234. package/dist/core/from/schedules.js +35 -0
  235. package/dist/core/from/schedules.js.map +1 -0
  236. package/dist/core/{v2/from → from}/syllabuses.js +1 -1
  237. package/dist/core/from/syllabuses.js.map +1 -0
  238. package/dist/core/from/teachers.js +12 -0
  239. package/dist/core/from/teachers.js.map +1 -0
  240. package/dist/core/index.d.ts +6 -12
  241. package/dist/core/index.js +4 -6
  242. package/dist/core/index.js.map +1 -1
  243. package/dist/core/to/courses.js +43 -0
  244. package/dist/core/to/courses.js.map +1 -0
  245. package/dist/core/to/division.js +10 -0
  246. package/dist/core/to/division.js.map +1 -0
  247. package/dist/core/to/events.js +43 -0
  248. package/dist/core/to/events.js.map +1 -0
  249. package/dist/core/to/exceptions.js +27 -0
  250. package/dist/core/to/exceptions.js.map +1 -0
  251. package/dist/core/to/groups.js +23 -0
  252. package/dist/core/to/groups.js.map +1 -0
  253. package/dist/core/{v1/to → to}/index.d.ts +1 -1
  254. package/dist/{RS/v3 → core}/to/index.js +1 -1
  255. package/dist/core/to/index.js.map +1 -0
  256. package/dist/core/to/locations.js +19 -0
  257. package/dist/core/to/locations.js.map +1 -0
  258. package/dist/core/to/locked-times.js +21 -0
  259. package/dist/core/to/locked-times.js.map +1 -0
  260. package/dist/core/to/overlap-groups.js +28 -0
  261. package/dist/core/to/overlap-groups.js.map +1 -0
  262. package/dist/core/to/periods.js +17 -0
  263. package/dist/core/to/periods.js.map +1 -0
  264. package/dist/core/to/persons.js +23 -0
  265. package/dist/core/to/persons.js.map +1 -0
  266. package/dist/core/to/root-intervals.js +17 -0
  267. package/dist/core/to/root-intervals.js.map +1 -0
  268. package/dist/core/to/schedules.d.ts +44 -0
  269. package/dist/core/to/schedules.js +40 -0
  270. package/dist/core/to/schedules.js.map +1 -0
  271. package/dist/core/to/settings.js +16 -0
  272. package/dist/core/to/settings.js.map +1 -0
  273. package/dist/core/to/syllabuses.js +17 -0
  274. package/dist/core/to/syllabuses.js.map +1 -0
  275. package/dist/core/to/teachers.js +24 -0
  276. package/dist/core/to/teachers.js.map +1 -0
  277. package/dist/core/to/util.d.ts +10 -0
  278. package/dist/core/to/util.js +22 -0
  279. package/dist/core/to/util.js.map +1 -0
  280. package/dist/core/types/areas.d.ts +10 -0
  281. package/dist/core/types/common/break-lengths.d.ts +5 -0
  282. package/dist/core/types/common/days.d.ts +8 -0
  283. package/dist/core/types/common/index.d.ts +44 -0
  284. package/dist/core/types/common/intervals.d.ts +14 -0
  285. package/dist/core/{v2/types → types}/common/maximum-schedule-span.d.ts +1 -1
  286. package/dist/core/{v2/types → types/common}/meta.d.ts +1 -1
  287. package/dist/core/types/common/planned-schedule-duration.d.ts +7 -0
  288. package/dist/core/types/common/tag.d.ts +9 -0
  289. package/dist/core/types/courses.d.ts +56 -0
  290. package/dist/core/{v2/types → types}/division-settings.d.ts +12 -19
  291. package/dist/core/types/divisions.d.ts +24 -0
  292. package/dist/core/types/events.d.ts +54 -0
  293. package/dist/core/{v2/types → types}/exceptions.d.ts +14 -23
  294. package/dist/core/types/groups.d.ts +39 -0
  295. package/dist/core/types/index.d.ts +117 -15
  296. package/dist/core/types/locations.d.ts +27 -0
  297. package/dist/core/types/locked-times.d.ts +33 -0
  298. package/dist/core/types/overlap-groups.d.ts +14 -0
  299. package/dist/core/types/periods.d.ts +14 -0
  300. package/dist/core/{v2/types → types}/persons.d.ts +13 -22
  301. package/dist/core/types/root-intervals.d.ts +13 -0
  302. package/dist/core/types/schedules.d.ts +44 -0
  303. package/dist/core/types/syllabus.d.ts +18 -0
  304. package/dist/core/{v2/types → types}/teachers.d.ts +18 -30
  305. package/dist/core/util.js +46 -0
  306. package/dist/core/util.js.map +1 -0
  307. package/dist/core/vertex-mapping.d.ts +56 -0
  308. package/dist/identify/constants/index.d.ts +14 -58
  309. package/dist/identify/constants/index.js +7 -72
  310. package/dist/identify/constants/index.js.map +1 -1
  311. package/dist/identify/index.d.ts +1 -1
  312. package/dist/identify/index.js +38 -29
  313. package/dist/identify/index.js.map +1 -1
  314. package/dist/index.d.ts +23 -29
  315. package/dist/index.js +6 -7
  316. package/dist/sdui/from/classes.js.map +1 -1
  317. package/dist/sdui/from/courses.js.map +1 -1
  318. package/dist/sdui/from/holidays.js.map +1 -1
  319. package/dist/sdui/from/hours.js.map +1 -1
  320. package/dist/sdui/from/lessons.js.map +1 -1
  321. package/dist/sdui/from/rooms.js.map +1 -1
  322. package/dist/sdui/from/schedules.d.ts +19 -0
  323. package/dist/sdui/from/schedules.js +3 -3
  324. package/dist/sdui/from/schedules.js.map +1 -1
  325. package/dist/sdui/from/school-years.js.map +1 -1
  326. package/dist/sdui/from/subjects.js.map +1 -1
  327. package/dist/sdui/from/substitution-plans.js.map +1 -1
  328. package/dist/sdui/from/teachers.js.map +1 -1
  329. package/dist/sdui/index.d.ts +19 -11
  330. package/dist/sdui/index.js.map +1 -1
  331. package/dist/sdui/to/classes.js +4 -2
  332. package/dist/sdui/to/classes.js.map +1 -1
  333. package/dist/sdui/to/courses.js +5 -5
  334. package/dist/sdui/to/courses.js.map +1 -1
  335. package/dist/sdui/to/holidays.js +3 -2
  336. package/dist/sdui/to/holidays.js.map +1 -1
  337. package/dist/sdui/to/hours.js +4 -2
  338. package/dist/sdui/to/hours.js.map +1 -1
  339. package/dist/sdui/to/index.d.ts +11 -12
  340. package/dist/sdui/to/lessons.js +10 -9
  341. package/dist/sdui/to/lessons.js.map +1 -1
  342. package/dist/sdui/to/rooms.js +4 -2
  343. package/dist/sdui/to/rooms.js.map +1 -1
  344. package/dist/sdui/to/schedules.js +9 -9
  345. package/dist/sdui/to/schedules.js.map +1 -1
  346. package/dist/sdui/to/school-years.js +4 -3
  347. package/dist/sdui/to/school-years.js.map +1 -1
  348. package/dist/sdui/to/subjects.js.map +1 -1
  349. package/dist/sdui/to/substitution-plans.js +12 -11
  350. package/dist/sdui/to/substitution-plans.js.map +1 -1
  351. package/dist/sdui/to/teachers.js +4 -4
  352. package/dist/sdui/to/teachers.js.map +1 -1
  353. package/dist/sdui/types/index.d.ts +2 -0
  354. package/dist/vKlass/from/index.js +1 -3
  355. package/dist/vKlass/from/index.js.map +1 -1
  356. package/dist/vKlass/from/schedule.d.ts +18 -3
  357. package/dist/vKlass/from/schedule.js +16 -19
  358. package/dist/vKlass/from/schedule.js.map +1 -1
  359. package/dist/vKlass/index.d.ts +6 -4
  360. package/dist/vKlass/index.js.map +1 -1
  361. package/dist/vKlass/to/schedules.d.ts +1 -1
  362. package/dist/vKlass/to/schedules.js +5 -12
  363. package/dist/vKlass/to/schedules.js.map +1 -1
  364. package/dist/vKlass/types/index.d.ts +5 -5
  365. package/package.json +38 -29
  366. package/dist/PlanDigital/to/index.d.ts +0 -10
  367. package/dist/PlanDigital/to/index.js +0 -10
  368. package/dist/PlanDigital/to/index.js.map +0 -1
  369. package/dist/PlanDigital/to/schedules.js +0 -15
  370. package/dist/PlanDigital/to/schedules.js.map +0 -1
  371. package/dist/RS/v0/from/available-dependencies.js +0 -38
  372. package/dist/RS/v0/from/available-dependencies.js.map +0 -1
  373. package/dist/RS/v0/from/break-lengths.js +0 -15
  374. package/dist/RS/v0/from/break-lengths.js.map +0 -1
  375. package/dist/RS/v0/from/course-events.js +0 -68
  376. package/dist/RS/v0/from/course-events.js.map +0 -1
  377. package/dist/RS/v0/from/courses.js +0 -53
  378. package/dist/RS/v0/from/courses.js.map +0 -1
  379. package/dist/RS/v0/from/days.js +0 -14
  380. package/dist/RS/v0/from/days.js.map +0 -1
  381. package/dist/RS/v0/from/dependencies.js +0 -29
  382. package/dist/RS/v0/from/dependencies.js.map +0 -1
  383. package/dist/RS/v0/from/groups.js +0 -32
  384. package/dist/RS/v0/from/groups.js.map +0 -1
  385. package/dist/RS/v0/from/index.js +0 -32
  386. package/dist/RS/v0/from/index.js.map +0 -1
  387. package/dist/RS/v0/from/intervals.js +0 -15
  388. package/dist/RS/v0/from/intervals.js.map +0 -1
  389. package/dist/RS/v0/from/locked-times.js +0 -23
  390. package/dist/RS/v0/from/locked-times.js.map +0 -1
  391. package/dist/RS/v0/from/placements.js +0 -20
  392. package/dist/RS/v0/from/placements.js.map +0 -1
  393. package/dist/RS/v0/from/schedules.js +0 -44
  394. package/dist/RS/v0/from/schedules.js.map +0 -1
  395. package/dist/RS/v0/from/settings.js +0 -24
  396. package/dist/RS/v0/from/settings.js.map +0 -1
  397. package/dist/RS/v0/from/teachers.js +0 -31
  398. package/dist/RS/v0/from/teachers.js.map +0 -1
  399. package/dist/RS/v0/index.d.ts +0 -43
  400. package/dist/RS/v0/index.js +0 -12
  401. package/dist/RS/v0/index.js.map +0 -1
  402. package/dist/RS/v0/to/available-dependencies.js +0 -17
  403. package/dist/RS/v0/to/available-dependencies.js.map +0 -1
  404. package/dist/RS/v0/to/configurations.js +0 -22
  405. package/dist/RS/v0/to/configurations.js.map +0 -1
  406. package/dist/RS/v0/to/constraints.js +0 -34
  407. package/dist/RS/v0/to/constraints.js.map +0 -1
  408. package/dist/RS/v0/to/course-events/days.js +0 -13
  409. package/dist/RS/v0/to/course-events/days.js.map +0 -1
  410. package/dist/RS/v0/to/course-events/dependencies.js +0 -18
  411. package/dist/RS/v0/to/course-events/dependencies.js.map +0 -1
  412. package/dist/RS/v0/to/course-events/groups.js +0 -39
  413. package/dist/RS/v0/to/course-events/groups.js.map +0 -1
  414. package/dist/RS/v0/to/course-events/in-locations.js +0 -17
  415. package/dist/RS/v0/to/course-events/in-locations.js.map +0 -1
  416. package/dist/RS/v0/to/course-events/index.js +0 -52
  417. package/dist/RS/v0/to/course-events/index.js.map +0 -1
  418. package/dist/RS/v0/to/course-events/intervals.js +0 -12
  419. package/dist/RS/v0/to/course-events/intervals.js.map +0 -1
  420. package/dist/RS/v0/to/course-events/meta.js +0 -21
  421. package/dist/RS/v0/to/course-events/meta.js.map +0 -1
  422. package/dist/RS/v0/to/courses.js +0 -56
  423. package/dist/RS/v0/to/courses.js.map +0 -1
  424. package/dist/RS/v0/to/days.js +0 -11
  425. package/dist/RS/v0/to/days.js.map +0 -1
  426. package/dist/RS/v0/to/dependencies.js +0 -26
  427. package/dist/RS/v0/to/dependencies.js.map +0 -1
  428. package/dist/RS/v0/to/groups.js +0 -32
  429. package/dist/RS/v0/to/groups.js.map +0 -1
  430. package/dist/RS/v0/to/index.d.ts +0 -46
  431. package/dist/RS/v0/to/index.js +0 -34
  432. package/dist/RS/v0/to/index.js.map +0 -1
  433. package/dist/RS/v0/to/intervals.js +0 -17
  434. package/dist/RS/v0/to/intervals.js.map +0 -1
  435. package/dist/RS/v0/to/locked-times.js +0 -43
  436. package/dist/RS/v0/to/locked-times.js.map +0 -1
  437. package/dist/RS/v0/to/schedules.js +0 -16
  438. package/dist/RS/v0/to/schedules.js.map +0 -1
  439. package/dist/RS/v0/to/settings.js +0 -28
  440. package/dist/RS/v0/to/settings.js.map +0 -1
  441. package/dist/RS/v0/to/teachers.js +0 -30
  442. package/dist/RS/v0/to/teachers.js.map +0 -1
  443. package/dist/RS/v0/types/areas.d.ts +0 -8
  444. package/dist/RS/v0/types/available-dependencies.d.ts +0 -8
  445. package/dist/RS/v0/types/break-lengths.d.ts +0 -9
  446. package/dist/RS/v0/types/configurations.d.ts +0 -7
  447. package/dist/RS/v0/types/constraints.d.ts +0 -17
  448. package/dist/RS/v0/types/course-events.d.ts +0 -26
  449. package/dist/RS/v0/types/courses.d.ts +0 -27
  450. package/dist/RS/v0/types/days.d.ts +0 -8
  451. package/dist/RS/v0/types/dependencies.d.ts +0 -17
  452. package/dist/RS/v0/types/groups.d.ts +0 -25
  453. package/dist/RS/v0/types/index.d.ts +0 -31
  454. package/dist/RS/v0/types/intervals.d.ts +0 -8
  455. package/dist/RS/v0/types/locked-times.d.ts +0 -11
  456. package/dist/RS/v0/types/out-options.d.ts +0 -13
  457. package/dist/RS/v0/types/placements.d.ts +0 -12
  458. package/dist/RS/v0/types/schedules.d.ts +0 -15
  459. package/dist/RS/v0/types/settings.d.ts +0 -26
  460. package/dist/RS/v1/from/available-dependencies.js +0 -38
  461. package/dist/RS/v1/from/available-dependencies.js.map +0 -1
  462. package/dist/RS/v1/from/break-lengths.js +0 -15
  463. package/dist/RS/v1/from/break-lengths.js.map +0 -1
  464. package/dist/RS/v1/from/collections.js +0 -55
  465. package/dist/RS/v1/from/collections.js.map +0 -1
  466. package/dist/RS/v1/from/course-events.js +0 -65
  467. package/dist/RS/v1/from/course-events.js.map +0 -1
  468. package/dist/RS/v1/from/days.js +0 -14
  469. package/dist/RS/v1/from/days.js.map +0 -1
  470. package/dist/RS/v1/from/dependencies.js +0 -31
  471. package/dist/RS/v1/from/dependencies.js.map +0 -1
  472. package/dist/RS/v1/from/groups.js +0 -34
  473. package/dist/RS/v1/from/groups.js.map +0 -1
  474. package/dist/RS/v1/from/index.js +0 -32
  475. package/dist/RS/v1/from/index.js.map +0 -1
  476. package/dist/RS/v1/from/intervals.js +0 -18
  477. package/dist/RS/v1/from/intervals.js.map +0 -1
  478. package/dist/RS/v1/from/locked-times.js +0 -21
  479. package/dist/RS/v1/from/locked-times.js.map +0 -1
  480. package/dist/RS/v1/from/placements.js +0 -21
  481. package/dist/RS/v1/from/placements.js.map +0 -1
  482. package/dist/RS/v1/from/schedules.js +0 -44
  483. package/dist/RS/v1/from/schedules.js.map +0 -1
  484. package/dist/RS/v1/from/settings.js +0 -25
  485. package/dist/RS/v1/from/settings.js.map +0 -1
  486. package/dist/RS/v1/from/teachers.js +0 -33
  487. package/dist/RS/v1/from/teachers.js.map +0 -1
  488. package/dist/RS/v1/index.d.ts +0 -45
  489. package/dist/RS/v1/index.js +0 -12
  490. package/dist/RS/v1/index.js.map +0 -1
  491. package/dist/RS/v1/to/available-dependencies.js +0 -25
  492. package/dist/RS/v1/to/available-dependencies.js.map +0 -1
  493. package/dist/RS/v1/to/break-lengths.js +0 -19
  494. package/dist/RS/v1/to/break-lengths.js.map +0 -1
  495. package/dist/RS/v1/to/collections.js +0 -51
  496. package/dist/RS/v1/to/collections.js.map +0 -1
  497. package/dist/RS/v1/to/configurations.js +0 -22
  498. package/dist/RS/v1/to/configurations.js.map +0 -1
  499. package/dist/RS/v1/to/constraints.js +0 -26
  500. package/dist/RS/v1/to/constraints.js.map +0 -1
  501. package/dist/RS/v1/to/course-events/days.js +0 -12
  502. package/dist/RS/v1/to/course-events/days.js.map +0 -1
  503. package/dist/RS/v1/to/course-events/dependencies.js +0 -15
  504. package/dist/RS/v1/to/course-events/dependencies.js.map +0 -1
  505. package/dist/RS/v1/to/course-events/groups.js +0 -30
  506. package/dist/RS/v1/to/course-events/groups.js.map +0 -1
  507. package/dist/RS/v1/to/course-events/in-locations.js +0 -17
  508. package/dist/RS/v1/to/course-events/in-locations.js.map +0 -1
  509. package/dist/RS/v1/to/course-events/index.js +0 -47
  510. package/dist/RS/v1/to/course-events/index.js.map +0 -1
  511. package/dist/RS/v1/to/course-events/intervals.js +0 -11
  512. package/dist/RS/v1/to/course-events/intervals.js.map +0 -1
  513. package/dist/RS/v1/to/course-events/meta.js +0 -21
  514. package/dist/RS/v1/to/course-events/meta.js.map +0 -1
  515. package/dist/RS/v1/to/days.js +0 -11
  516. package/dist/RS/v1/to/days.js.map +0 -1
  517. package/dist/RS/v1/to/dependencies.js +0 -28
  518. package/dist/RS/v1/to/dependencies.js.map +0 -1
  519. package/dist/RS/v1/to/groups.js +0 -34
  520. package/dist/RS/v1/to/groups.js.map +0 -1
  521. package/dist/RS/v1/to/index.d.ts +0 -46
  522. package/dist/RS/v1/to/index.js +0 -34
  523. package/dist/RS/v1/to/index.js.map +0 -1
  524. package/dist/RS/v1/to/intervals.js +0 -17
  525. package/dist/RS/v1/to/intervals.js.map +0 -1
  526. package/dist/RS/v1/to/locked-times.js +0 -49
  527. package/dist/RS/v1/to/locked-times.js.map +0 -1
  528. package/dist/RS/v1/to/schedules.js +0 -16
  529. package/dist/RS/v1/to/schedules.js.map +0 -1
  530. package/dist/RS/v1/to/settings.js +0 -34
  531. package/dist/RS/v1/to/settings.js.map +0 -1
  532. package/dist/RS/v1/to/teachers.js +0 -34
  533. package/dist/RS/v1/to/teachers.js.map +0 -1
  534. package/dist/RS/v1/types/areas.d.ts +0 -8
  535. package/dist/RS/v1/types/available-dependencies.d.ts +0 -8
  536. package/dist/RS/v1/types/break-lengths.d.ts +0 -9
  537. package/dist/RS/v1/types/collections.d.ts +0 -27
  538. package/dist/RS/v1/types/configurations.d.ts +0 -10
  539. package/dist/RS/v1/types/constraints.d.ts +0 -17
  540. package/dist/RS/v1/types/course-events.d.ts +0 -26
  541. package/dist/RS/v1/types/days.d.ts +0 -8
  542. package/dist/RS/v1/types/dependencies.d.ts +0 -17
  543. package/dist/RS/v1/types/groups.d.ts +0 -25
  544. package/dist/RS/v1/types/index.d.ts +0 -31
  545. package/dist/RS/v1/types/intervals.d.ts +0 -8
  546. package/dist/RS/v1/types/locked-times.d.ts +0 -11
  547. package/dist/RS/v1/types/out-options.d.ts +0 -11
  548. package/dist/RS/v1/types/placements.d.ts +0 -12
  549. package/dist/RS/v1/types/schedules.d.ts +0 -16
  550. package/dist/RS/v1/types/settings.d.ts +0 -31
  551. package/dist/RS/v2/from/available-dependencies.js +0 -38
  552. package/dist/RS/v2/from/available-dependencies.js.map +0 -1
  553. package/dist/RS/v2/from/break-lengths.js +0 -15
  554. package/dist/RS/v2/from/break-lengths.js.map +0 -1
  555. package/dist/RS/v2/from/collections.js +0 -57
  556. package/dist/RS/v2/from/collections.js.map +0 -1
  557. package/dist/RS/v2/from/course-events.d.ts +0 -12
  558. package/dist/RS/v2/from/course-events.js +0 -67
  559. package/dist/RS/v2/from/course-events.js.map +0 -1
  560. package/dist/RS/v2/from/days.js +0 -14
  561. package/dist/RS/v2/from/days.js.map +0 -1
  562. package/dist/RS/v2/from/dependencies.js +0 -31
  563. package/dist/RS/v2/from/dependencies.js.map +0 -1
  564. package/dist/RS/v2/from/groups.js +0 -35
  565. package/dist/RS/v2/from/groups.js.map +0 -1
  566. package/dist/RS/v2/from/index.js +0 -32
  567. package/dist/RS/v2/from/index.js.map +0 -1
  568. package/dist/RS/v2/from/intervals.js +0 -18
  569. package/dist/RS/v2/from/intervals.js.map +0 -1
  570. package/dist/RS/v2/from/locked-times.js +0 -21
  571. package/dist/RS/v2/from/locked-times.js.map +0 -1
  572. package/dist/RS/v2/from/placements.js +0 -32
  573. package/dist/RS/v2/from/placements.js.map +0 -1
  574. package/dist/RS/v2/from/schedules.js +0 -78
  575. package/dist/RS/v2/from/schedules.js.map +0 -1
  576. package/dist/RS/v2/from/settings.js +0 -31
  577. package/dist/RS/v2/from/settings.js.map +0 -1
  578. package/dist/RS/v2/from/teachers.js +0 -33
  579. package/dist/RS/v2/from/teachers.js.map +0 -1
  580. package/dist/RS/v2/index.d.ts +0 -63
  581. package/dist/RS/v2/index.js +0 -12
  582. package/dist/RS/v2/index.js.map +0 -1
  583. package/dist/RS/v2/to/available-dependencies.js +0 -25
  584. package/dist/RS/v2/to/available-dependencies.js.map +0 -1
  585. package/dist/RS/v2/to/break-lengths.js +0 -19
  586. package/dist/RS/v2/to/break-lengths.js.map +0 -1
  587. package/dist/RS/v2/to/collections.js +0 -60
  588. package/dist/RS/v2/to/collections.js.map +0 -1
  589. package/dist/RS/v2/to/configurations.js +0 -23
  590. package/dist/RS/v2/to/configurations.js.map +0 -1
  591. package/dist/RS/v2/to/constraints.js +0 -88
  592. package/dist/RS/v2/to/constraints.js.map +0 -1
  593. package/dist/RS/v2/to/course-events/days.js +0 -12
  594. package/dist/RS/v2/to/course-events/days.js.map +0 -1
  595. package/dist/RS/v2/to/course-events/dependencies.js +0 -14
  596. package/dist/RS/v2/to/course-events/dependencies.js.map +0 -1
  597. package/dist/RS/v2/to/course-events/groups.js +0 -38
  598. package/dist/RS/v2/to/course-events/groups.js.map +0 -1
  599. package/dist/RS/v2/to/course-events/in-locations.js +0 -18
  600. package/dist/RS/v2/to/course-events/in-locations.js.map +0 -1
  601. package/dist/RS/v2/to/course-events/index.js +0 -56
  602. package/dist/RS/v2/to/course-events/index.js.map +0 -1
  603. package/dist/RS/v2/to/course-events/intervals.js +0 -11
  604. package/dist/RS/v2/to/course-events/intervals.js.map +0 -1
  605. package/dist/RS/v2/to/course-events/meta.js +0 -21
  606. package/dist/RS/v2/to/course-events/meta.js.map +0 -1
  607. package/dist/RS/v2/to/days.js +0 -11
  608. package/dist/RS/v2/to/days.js.map +0 -1
  609. package/dist/RS/v2/to/default.js +0 -36
  610. package/dist/RS/v2/to/default.js.map +0 -1
  611. package/dist/RS/v2/to/dependencies.js +0 -28
  612. package/dist/RS/v2/to/dependencies.js.map +0 -1
  613. package/dist/RS/v2/to/destructure.js +0 -40
  614. package/dist/RS/v2/to/destructure.js.map +0 -1
  615. package/dist/RS/v2/to/dynamic-locked-times.js +0 -57
  616. package/dist/RS/v2/to/dynamic-locked-times.js.map +0 -1
  617. package/dist/RS/v2/to/groups.js +0 -37
  618. package/dist/RS/v2/to/groups.js.map +0 -1
  619. package/dist/RS/v2/to/index.d.ts +0 -44
  620. package/dist/RS/v2/to/index.js +0 -36
  621. package/dist/RS/v2/to/index.js.map +0 -1
  622. package/dist/RS/v2/to/intervals.js +0 -32
  623. package/dist/RS/v2/to/intervals.js.map +0 -1
  624. package/dist/RS/v2/to/locked-times.js +0 -49
  625. package/dist/RS/v2/to/locked-times.js.map +0 -1
  626. package/dist/RS/v2/to/periods.js +0 -48
  627. package/dist/RS/v2/to/periods.js.map +0 -1
  628. package/dist/RS/v2/to/persons.js +0 -23
  629. package/dist/RS/v2/to/persons.js.map +0 -1
  630. package/dist/RS/v2/to/schedules.js +0 -19
  631. package/dist/RS/v2/to/schedules.js.map +0 -1
  632. package/dist/RS/v2/to/settings.js +0 -18
  633. package/dist/RS/v2/to/settings.js.map +0 -1
  634. package/dist/RS/v2/to/teachers.js +0 -37
  635. package/dist/RS/v2/to/teachers.js.map +0 -1
  636. package/dist/RS/v2/types/areas.d.ts +0 -8
  637. package/dist/RS/v2/types/available-dependencies.d.ts +0 -8
  638. package/dist/RS/v2/types/break-lengths.d.ts +0 -9
  639. package/dist/RS/v2/types/collections.d.ts +0 -29
  640. package/dist/RS/v2/types/configurations.d.ts +0 -10
  641. package/dist/RS/v2/types/constraints.d.ts +0 -21
  642. package/dist/RS/v2/types/course-events.d.ts +0 -30
  643. package/dist/RS/v2/types/days.d.ts +0 -8
  644. package/dist/RS/v2/types/default.d.ts +0 -25
  645. package/dist/RS/v2/types/dependencies.d.ts +0 -17
  646. package/dist/RS/v2/types/index.d.ts +0 -33
  647. package/dist/RS/v2/types/intervals.d.ts +0 -9
  648. package/dist/RS/v2/types/out-options.d.ts +0 -11
  649. package/dist/RS/v2/types/placements.d.ts +0 -12
  650. package/dist/RS/v2/types/schedules.d.ts +0 -18
  651. package/dist/RS/v3/from/division.js +0 -14
  652. package/dist/RS/v3/from/division.js.map +0 -1
  653. package/dist/RS/v3/from/index.js +0 -12
  654. package/dist/RS/v3/from/index.js.map +0 -1
  655. package/dist/RS/v3/from/schedules.js +0 -34
  656. package/dist/RS/v3/from/schedules.js.map +0 -1
  657. package/dist/RS/v3/index.d.ts +0 -21
  658. package/dist/RS/v3/index.js +0 -12
  659. package/dist/RS/v3/index.js.map +0 -1
  660. package/dist/RS/v3/to/available-dependencies.js +0 -26
  661. package/dist/RS/v3/to/available-dependencies.js.map +0 -1
  662. package/dist/RS/v3/to/break-lengths.js +0 -19
  663. package/dist/RS/v3/to/break-lengths.js.map +0 -1
  664. package/dist/RS/v3/to/collections.js +0 -56
  665. package/dist/RS/v3/to/collections.js.map +0 -1
  666. package/dist/RS/v3/to/configurations.js +0 -23
  667. package/dist/RS/v3/to/configurations.js.map +0 -1
  668. package/dist/RS/v3/to/constraints.js +0 -77
  669. package/dist/RS/v3/to/constraints.js.map +0 -1
  670. package/dist/RS/v3/to/course-events/days.js +0 -12
  671. package/dist/RS/v3/to/course-events/days.js.map +0 -1
  672. package/dist/RS/v3/to/course-events/dependencies.js +0 -14
  673. package/dist/RS/v3/to/course-events/dependencies.js.map +0 -1
  674. package/dist/RS/v3/to/course-events/groups.js +0 -44
  675. package/dist/RS/v3/to/course-events/groups.js.map +0 -1
  676. package/dist/RS/v3/to/course-events/in-locations.js +0 -18
  677. package/dist/RS/v3/to/course-events/in-locations.js.map +0 -1
  678. package/dist/RS/v3/to/course-events/index.js +0 -84
  679. package/dist/RS/v3/to/course-events/index.js.map +0 -1
  680. package/dist/RS/v3/to/course-events/intervals.js +0 -11
  681. package/dist/RS/v3/to/course-events/intervals.js.map +0 -1
  682. package/dist/RS/v3/to/course-events/meta.js +0 -21
  683. package/dist/RS/v3/to/course-events/meta.js.map +0 -1
  684. package/dist/RS/v3/to/days.js +0 -11
  685. package/dist/RS/v3/to/days.js.map +0 -1
  686. package/dist/RS/v3/to/default.js.map +0 -1
  687. package/dist/RS/v3/to/dependencies.js +0 -31
  688. package/dist/RS/v3/to/dependencies.js.map +0 -1
  689. package/dist/RS/v3/to/destructure.js +0 -33
  690. package/dist/RS/v3/to/destructure.js.map +0 -1
  691. package/dist/RS/v3/to/dynamic-locked-times.js +0 -97
  692. package/dist/RS/v3/to/dynamic-locked-times.js.map +0 -1
  693. package/dist/RS/v3/to/groups.js +0 -36
  694. package/dist/RS/v3/to/groups.js.map +0 -1
  695. package/dist/RS/v3/to/index.d.ts +0 -266
  696. package/dist/RS/v3/to/index.js.map +0 -1
  697. package/dist/RS/v3/to/individuals.js +0 -49
  698. package/dist/RS/v3/to/individuals.js.map +0 -1
  699. package/dist/RS/v3/to/intervals.js +0 -32
  700. package/dist/RS/v3/to/intervals.js.map +0 -1
  701. package/dist/RS/v3/to/locked-times.js +0 -49
  702. package/dist/RS/v3/to/locked-times.js.map +0 -1
  703. package/dist/RS/v3/to/periods.js +0 -48
  704. package/dist/RS/v3/to/periods.js.map +0 -1
  705. package/dist/RS/v3/to/schedules.js +0 -39
  706. package/dist/RS/v3/to/schedules.js.map +0 -1
  707. package/dist/RS/v3/to/settings.js +0 -18
  708. package/dist/RS/v3/to/settings.js.map +0 -1
  709. package/dist/RS/v3/to/teachers.js +0 -36
  710. package/dist/RS/v3/to/teachers.js.map +0 -1
  711. package/dist/RS/v3/to/util.js +0 -32
  712. package/dist/RS/v3/to/util.js.map +0 -1
  713. package/dist/RS/v3/types/areas.d.ts +0 -8
  714. package/dist/RS/v3/types/available-dependencies.d.ts +0 -8
  715. package/dist/RS/v3/types/break-lengths.d.ts +0 -9
  716. package/dist/RS/v3/types/collections.d.ts +0 -31
  717. package/dist/RS/v3/types/configurations.d.ts +0 -10
  718. package/dist/RS/v3/types/constraints.d.ts +0 -25
  719. package/dist/RS/v3/types/course-events.d.ts +0 -32
  720. package/dist/RS/v3/types/days.d.ts +0 -8
  721. package/dist/RS/v3/types/dependencies.d.ts +0 -17
  722. package/dist/RS/v3/types/groups.d.ts +0 -25
  723. package/dist/RS/v3/types/index.d.ts +0 -33
  724. package/dist/RS/v3/types/individuals.d.ts +0 -13
  725. package/dist/RS/v3/types/intervals.d.ts +0 -9
  726. package/dist/RS/v3/types/locked-times.d.ts +0 -11
  727. package/dist/RS/v3/types/out-options.d.ts +0 -23
  728. package/dist/RS/v3/types/placements.d.ts +0 -12
  729. package/dist/RS/v3/types/root-intervals.d.ts +0 -10
  730. package/dist/RS/v3/types/schedules.d.ts +0 -24
  731. package/dist/RS/v3/types/settings.d.ts +0 -12
  732. package/dist/SS12000/from/activities.js +0 -35
  733. package/dist/SS12000/from/activities.js.map +0 -1
  734. package/dist/SS12000/from/calendar-events.js +0 -20
  735. package/dist/SS12000/from/calendar-events.js.map +0 -1
  736. package/dist/SS12000/from/duties.js +0 -21
  737. package/dist/SS12000/from/duties.js.map +0 -1
  738. package/dist/SS12000/from/groups.js +0 -23
  739. package/dist/SS12000/from/groups.js.map +0 -1
  740. package/dist/SS12000/from/index.js +0 -24
  741. package/dist/SS12000/from/index.js.map +0 -1
  742. package/dist/SS12000/from/persons.js +0 -43
  743. package/dist/SS12000/from/persons.js.map +0 -1
  744. package/dist/SS12000/from/resources.js +0 -9
  745. package/dist/SS12000/from/resources.js.map +0 -1
  746. package/dist/SS12000/from/rooms.js +0 -18
  747. package/dist/SS12000/from/rooms.js.map +0 -1
  748. package/dist/SS12000/from/syllabuses.js +0 -21
  749. package/dist/SS12000/from/syllabuses.js.map +0 -1
  750. package/dist/SS12000/index.d.ts +0 -73
  751. package/dist/SS12000/index.js +0 -12
  752. package/dist/SS12000/index.js.map +0 -1
  753. package/dist/SS12000/to/activities.js +0 -55
  754. package/dist/SS12000/to/activities.js.map +0 -1
  755. package/dist/SS12000/to/calendar-events.js +0 -47
  756. package/dist/SS12000/to/calendar-events.js.map +0 -1
  757. package/dist/SS12000/to/common.js +0 -16
  758. package/dist/SS12000/to/common.js.map +0 -1
  759. package/dist/SS12000/to/duties.js +0 -36
  760. package/dist/SS12000/to/duties.js.map +0 -1
  761. package/dist/SS12000/to/groups.js +0 -37
  762. package/dist/SS12000/to/groups.js.map +0 -1
  763. package/dist/SS12000/to/index.d.ts +0 -25
  764. package/dist/SS12000/to/index.js +0 -24
  765. package/dist/SS12000/to/index.js.map +0 -1
  766. package/dist/SS12000/to/persons.js +0 -36
  767. package/dist/SS12000/to/persons.js.map +0 -1
  768. package/dist/SS12000/to/resources.js +0 -23
  769. package/dist/SS12000/to/resources.js.map +0 -1
  770. package/dist/SS12000/to/rooms.js +0 -28
  771. package/dist/SS12000/to/rooms.js.map +0 -1
  772. package/dist/SS12000/to/syllabuses.js +0 -30
  773. package/dist/SS12000/to/syllabuses.js.map +0 -1
  774. package/dist/SS12000/types/activities.d.ts +0 -41
  775. package/dist/SS12000/types/calendar-events.d.ts +0 -23
  776. package/dist/SS12000/types/codes.d.ts +0 -9
  777. package/dist/SS12000/types/duties.d.ts +0 -23
  778. package/dist/SS12000/types/duty-assignments.d.ts +0 -13
  779. package/dist/SS12000/types/groups.d.ts +0 -23
  780. package/dist/SS12000/types/index.d.ts +0 -21
  781. package/dist/SS12000/types/organisation.d.ts +0 -20
  782. package/dist/SS12000/types/persons.d.ts +0 -30
  783. package/dist/SS12000/types/resources.d.ts +0 -13
  784. package/dist/SS12000/types/rooms.d.ts +0 -17
  785. package/dist/SS12000/types/syllabus.d.ts +0 -19
  786. package/dist/core/v1/from/courses.js +0 -26
  787. package/dist/core/v1/from/courses.js.map +0 -1
  788. package/dist/core/v1/from/events.js +0 -12
  789. package/dist/core/v1/from/events.js.map +0 -1
  790. package/dist/core/v1/from/groups.js +0 -14
  791. package/dist/core/v1/from/groups.js.map +0 -1
  792. package/dist/core/v1/from/index.js +0 -8
  793. package/dist/core/v1/from/index.js.map +0 -1
  794. package/dist/core/v1/from/locations.js +0 -14
  795. package/dist/core/v1/from/locations.js.map +0 -1
  796. package/dist/core/v1/from/locked-times.js +0 -13
  797. package/dist/core/v1/from/locked-times.js.map +0 -1
  798. package/dist/core/v1/from/overlap-groups.js +0 -13
  799. package/dist/core/v1/from/overlap-groups.js.map +0 -1
  800. package/dist/core/v1/from/periods.js +0 -14
  801. package/dist/core/v1/from/periods.js.map +0 -1
  802. package/dist/core/v1/from/schedules.d.ts +0 -139
  803. package/dist/core/v1/from/schedules.js +0 -36
  804. package/dist/core/v1/from/schedules.js.map +0 -1
  805. package/dist/core/v1/from/teachers.js +0 -14
  806. package/dist/core/v1/from/teachers.js.map +0 -1
  807. package/dist/core/v1/index.d.ts +0 -14
  808. package/dist/core/v1/index.js +0 -12
  809. package/dist/core/v1/index.js.map +0 -1
  810. package/dist/core/v1/to/available-locations.js +0 -11
  811. package/dist/core/v1/to/available-locations.js.map +0 -1
  812. package/dist/core/v1/to/courses.js +0 -33
  813. package/dist/core/v1/to/courses.js.map +0 -1
  814. package/dist/core/v1/to/days.js +0 -13
  815. package/dist/core/v1/to/days.js.map +0 -1
  816. package/dist/core/v1/to/events.js +0 -35
  817. package/dist/core/v1/to/events.js.map +0 -1
  818. package/dist/core/v1/to/groups.js +0 -24
  819. package/dist/core/v1/to/groups.js.map +0 -1
  820. package/dist/core/v1/to/index.js +0 -10
  821. package/dist/core/v1/to/index.js.map +0 -1
  822. package/dist/core/v1/to/intervals.js +0 -14
  823. package/dist/core/v1/to/intervals.js.map +0 -1
  824. package/dist/core/v1/to/locations.js +0 -20
  825. package/dist/core/v1/to/locations.js.map +0 -1
  826. package/dist/core/v1/to/locked-times.js +0 -25
  827. package/dist/core/v1/to/locked-times.js.map +0 -1
  828. package/dist/core/v1/to/overlap-groups.js +0 -30
  829. package/dist/core/v1/to/overlap-groups.js.map +0 -1
  830. package/dist/core/v1/to/periods.js +0 -10
  831. package/dist/core/v1/to/periods.js.map +0 -1
  832. package/dist/core/v1/to/persons.js +0 -22
  833. package/dist/core/v1/to/persons.js.map +0 -1
  834. package/dist/core/v1/to/schedules.d.ts +0 -170
  835. package/dist/core/v1/to/schedules.js +0 -32
  836. package/dist/core/v1/to/schedules.js.map +0 -1
  837. package/dist/core/v1/to/settings.js +0 -13
  838. package/dist/core/v1/to/settings.js.map +0 -1
  839. package/dist/core/v1/to/teachers.js +0 -20
  840. package/dist/core/v1/to/teachers.js.map +0 -1
  841. package/dist/core/v1/types/areas.d.ts +0 -16
  842. package/dist/core/v1/types/available-locations.d.ts +0 -13
  843. package/dist/core/v1/types/break-lengths.d.ts +0 -5
  844. package/dist/core/v1/types/common/coalesced.d.ts +0 -10
  845. package/dist/core/v1/types/courses.d.ts +0 -54
  846. package/dist/core/v1/types/days.d.ts +0 -14
  847. package/dist/core/v1/types/division-settings.d.ts +0 -39
  848. package/dist/core/v1/types/divisions.d.ts +0 -45
  849. package/dist/core/v1/types/events.d.ts +0 -60
  850. package/dist/core/v1/types/groups.d.ts +0 -37
  851. package/dist/core/v1/types/index.d.ts +0 -41
  852. package/dist/core/v1/types/intervals.d.ts +0 -17
  853. package/dist/core/v1/types/locations.d.ts +0 -32
  854. package/dist/core/v1/types/locked-times.d.ts +0 -39
  855. package/dist/core/v1/types/meta.d.ts +0 -9
  856. package/dist/core/v1/types/overlap-groups.d.ts +0 -26
  857. package/dist/core/v1/types/periods.d.ts +0 -22
  858. package/dist/core/v1/types/persons.d.ts +0 -40
  859. package/dist/core/v1/types/teachers.d.ts +0 -34
  860. package/dist/core/v2/from/courses.js +0 -13
  861. package/dist/core/v2/from/courses.js.map +0 -1
  862. package/dist/core/v2/from/events.js +0 -12
  863. package/dist/core/v2/from/events.js.map +0 -1
  864. package/dist/core/v2/from/exceptions.js +0 -13
  865. package/dist/core/v2/from/exceptions.js.map +0 -1
  866. package/dist/core/v2/from/groups.js +0 -13
  867. package/dist/core/v2/from/groups.js.map +0 -1
  868. package/dist/core/v2/from/index.js.map +0 -1
  869. package/dist/core/v2/from/locations.js +0 -13
  870. package/dist/core/v2/from/locations.js.map +0 -1
  871. package/dist/core/v2/from/locked-times.js +0 -13
  872. package/dist/core/v2/from/locked-times.js.map +0 -1
  873. package/dist/core/v2/from/overlap-groups.js +0 -13
  874. package/dist/core/v2/from/overlap-groups.js.map +0 -1
  875. package/dist/core/v2/from/periods.js +0 -13
  876. package/dist/core/v2/from/periods.js.map +0 -1
  877. package/dist/core/v2/from/persons.js +0 -12
  878. package/dist/core/v2/from/persons.js.map +0 -1
  879. package/dist/core/v2/from/root-intervals.js +0 -13
  880. package/dist/core/v2/from/root-intervals.js.map +0 -1
  881. package/dist/core/v2/from/schedules.d.ts +0 -245
  882. package/dist/core/v2/from/schedules.js +0 -48
  883. package/dist/core/v2/from/schedules.js.map +0 -1
  884. package/dist/core/v2/from/syllabuses.js.map +0 -1
  885. package/dist/core/v2/from/teachers.js +0 -13
  886. package/dist/core/v2/from/teachers.js.map +0 -1
  887. package/dist/core/v2/index.d.ts +0 -16
  888. package/dist/core/v2/index.js +0 -12
  889. package/dist/core/v2/index.js.map +0 -1
  890. package/dist/core/v2/to/available-locations.js +0 -11
  891. package/dist/core/v2/to/available-locations.js.map +0 -1
  892. package/dist/core/v2/to/courses.js +0 -44
  893. package/dist/core/v2/to/courses.js.map +0 -1
  894. package/dist/core/v2/to/days.js +0 -13
  895. package/dist/core/v2/to/days.js.map +0 -1
  896. package/dist/core/v2/to/division.js +0 -10
  897. package/dist/core/v2/to/division.js.map +0 -1
  898. package/dist/core/v2/to/events.js +0 -47
  899. package/dist/core/v2/to/events.js.map +0 -1
  900. package/dist/core/v2/to/exceptions.js +0 -29
  901. package/dist/core/v2/to/exceptions.js.map +0 -1
  902. package/dist/core/v2/to/groups.js +0 -34
  903. package/dist/core/v2/to/groups.js.map +0 -1
  904. package/dist/core/v2/to/index.d.ts +0 -9
  905. package/dist/core/v2/to/index.js +0 -10
  906. package/dist/core/v2/to/index.js.map +0 -1
  907. package/dist/core/v2/to/intervals.js +0 -13
  908. package/dist/core/v2/to/intervals.js.map +0 -1
  909. package/dist/core/v2/to/locations.js +0 -35
  910. package/dist/core/v2/to/locations.js.map +0 -1
  911. package/dist/core/v2/to/locked-times.js +0 -25
  912. package/dist/core/v2/to/locked-times.js.map +0 -1
  913. package/dist/core/v2/to/overlap-groups.js +0 -30
  914. package/dist/core/v2/to/overlap-groups.js.map +0 -1
  915. package/dist/core/v2/to/periods.js +0 -10
  916. package/dist/core/v2/to/periods.js.map +0 -1
  917. package/dist/core/v2/to/persons.js +0 -25
  918. package/dist/core/v2/to/persons.js.map +0 -1
  919. package/dist/core/v2/to/root-intervals.js +0 -10
  920. package/dist/core/v2/to/root-intervals.js.map +0 -1
  921. package/dist/core/v2/to/schedules.d.ts +0 -249
  922. package/dist/core/v2/to/schedules.js +0 -40
  923. package/dist/core/v2/to/schedules.js.map +0 -1
  924. package/dist/core/v2/to/settings.js +0 -13
  925. package/dist/core/v2/to/settings.js.map +0 -1
  926. package/dist/core/v2/to/syllabuses.js +0 -16
  927. package/dist/core/v2/to/syllabuses.js.map +0 -1
  928. package/dist/core/v2/to/teachers.js +0 -28
  929. package/dist/core/v2/to/teachers.js.map +0 -1
  930. package/dist/core/v2/types/areas.d.ts +0 -16
  931. package/dist/core/v2/types/available-locations.d.ts +0 -13
  932. package/dist/core/v2/types/break-lengths.d.ts +0 -5
  933. package/dist/core/v2/types/common/coalesced.d.ts +0 -10
  934. package/dist/core/v2/types/common/planned-schedule-duration.d.ts +0 -7
  935. package/dist/core/v2/types/courses.d.ts +0 -76
  936. package/dist/core/v2/types/days.d.ts +0 -14
  937. package/dist/core/v2/types/divisions.d.ts +0 -54
  938. package/dist/core/v2/types/events.d.ts +0 -76
  939. package/dist/core/v2/types/groups.d.ts +0 -50
  940. package/dist/core/v2/types/index.d.ts +0 -49
  941. package/dist/core/v2/types/intervals.d.ts +0 -17
  942. package/dist/core/v2/types/locations.d.ts +0 -38
  943. package/dist/core/v2/types/locked-times.d.ts +0 -44
  944. package/dist/core/v2/types/overlap-groups.d.ts +0 -26
  945. package/dist/core/v2/types/periods.d.ts +0 -25
  946. package/dist/core/v2/types/root-intervals.d.ts +0 -23
  947. package/dist/core/v2/types/schedules.d.ts +0 -38
  948. package/dist/core/v2/types/syllabus.d.ts +0 -27
  949. package/dist/vKlass/from/index.d.ts +0 -9
@@ -1,25 +1,24 @@
1
- import { Day } from "./days.js";
2
- import { LockedTime } from "./locked-times.js";
3
- import { Interval } from "./intervals.js";
4
- import { BreakLength } from "./break-lengths.js";
1
+ import { Types } from "./index.js";
5
2
 
6
- //#region src/RS/v2/types/groups.d.ts
3
+ //#region src/RS/types/groups.d.ts
7
4
  type GroupType = 'personal' | 'classes' | 'persons';
8
5
  interface Group {
9
6
  id: string;
10
7
  group_type: GroupType;
11
8
  name?: string;
12
- minBreakLength?: BreakLength;
9
+ minBreakLength?: Types.breakLength;
13
10
  maxNumWorkingHours?: number | boolean;
14
11
  maxNumDailyWorkingHours?: number | number[] | boolean;
15
- forbidOverlappingEvents?: boolean;
16
- disableDayLengthPunishment?: boolean;
17
- minimizeDependencyAlternation?: boolean;
18
12
  weight?: number;
19
13
  rank?: number;
20
- lockedTimes?: LockedTime[];
21
- intervals?: Interval[][];
22
- days?: (Day | number)[];
14
+ lockedTimes?: Types.lockedTime[];
15
+ intervals?: string | Types.interval[][];
16
+ days?: (Types.day | number)[];
17
+ minimizeGaps?: boolean;
18
+ minimizeDependencyAlternation?: boolean;
19
+ forbidOverlappingEvents?: boolean;
20
+ disableDayLengthPunishment?: boolean;
21
+ meta?: Record<string, unknown>;
23
22
  }
24
23
  //#endregion
25
24
  export { Group };
@@ -0,0 +1,45 @@
1
+ import { Collection } from "./collections.js";
2
+ import { Default } from "./default.js";
3
+ import { Dependency } from "./dependencies.js";
4
+ import { Group } from "./groups.js";
5
+ import { Individual, IndividualsSet } from "./individuals.js";
6
+ import { LockedTime } from "./locked-times.js";
7
+ import { RootInterval } from "./root-intervals.js";
8
+ import { Settings } from "./settings.js";
9
+ import { Event } from "./events.js";
10
+ import { AvailableDependency, BreakLength, Day, GroupReference, Interval } from "./shared.js";
11
+ import { ParsedToOptions, Structure, ToInput, ToOptions, ToOutput } from "./to.js";
12
+ import { EventConfiguration } from "./event-configuration.js";
13
+ import { Configuration } from "./configurations.js";
14
+ import { ScheduleData } from "./schedule-data.js";
15
+
16
+ //#region src/RS/types/index.d.ts
17
+ declare namespace Types {
18
+ type settings = Settings;
19
+ type defaultValues = Default;
20
+ type periods = string;
21
+ type rootInterval = RootInterval;
22
+ type dependency = Dependency;
23
+ type group = Group;
24
+ type individual = Individual;
25
+ type individualsSet = IndividualsSet;
26
+ type collection = Collection;
27
+ type event = Event;
28
+ type lockedTime = LockedTime;
29
+ type availableDependency = AvailableDependency;
30
+ type day = Day;
31
+ type interval = Interval;
32
+ type groupReference = GroupReference;
33
+ type breakLength = BreakLength;
34
+ type scheduleData = ScheduleData;
35
+ type toInput = ToInput;
36
+ type toOptions = ToOptions;
37
+ type parsedToOptions = ParsedToOptions;
38
+ type toOutput = ToOutput;
39
+ type structure = Structure;
40
+ type eventConfiguration = EventConfiguration;
41
+ type configuration = Configuration;
42
+ }
43
+ //#endregion
44
+ export { Types };
45
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,16 @@
1
+ import { Types } from "./index.js";
2
+
3
+ //#region src/RS/types/individuals.d.ts
4
+ type Individual = {
5
+ id: string;
6
+ group?: Types.group['id'];
7
+ meta?: Record<string, unknown>;
8
+ };
9
+ type IndividualsSet = {
10
+ id: string;
11
+ individuals: Individual['id'][];
12
+ meta?: Record<string, unknown>;
13
+ };
14
+ //#endregion
15
+ export { Individual, IndividualsSet };
16
+ //# sourceMappingURL=individuals.d.ts.map
@@ -1,10 +1,11 @@
1
- //#region src/RS/v2/types/locked-times.d.ts
1
+ //#region src/RS/types/locked-times.d.ts
2
2
  interface LockedTime {
3
3
  id?: string;
4
4
  name?: string;
5
5
  start?: number;
6
6
  length?: number;
7
7
  day?: number;
8
+ meta?: Record<string, unknown>;
8
9
  }
9
10
  //#endregion
10
11
  export { LockedTime };
@@ -0,0 +1,10 @@
1
+ import { Types } from "./index.js";
2
+
3
+ //#region src/RS/types/root-intervals.d.ts
4
+ interface RootInterval {
5
+ id: string;
6
+ value: Types.interval[][];
7
+ }
8
+ //#endregion
9
+ export { RootInterval };
10
+ //# sourceMappingURL=root-intervals.d.ts.map
@@ -0,0 +1,16 @@
1
+ import { Types } from "./index.js";
2
+
3
+ //#region src/RS/types/schedule-data.d.ts
4
+ interface ScheduleData {
5
+ settings?: Types.settings;
6
+ default?: Types.defaultValues;
7
+ periods?: string;
8
+ events?: (Types.event | Types.collection | (Types.event | Types.collection)[])[];
9
+ groups?: Types.group[];
10
+ dependencies?: Types.dependency[];
11
+ individuals?: (Types.individual | Types.individualsSet)[];
12
+ intervals?: Types.rootInterval[];
13
+ }
14
+ //#endregion
15
+ export { ScheduleData };
16
+ //# sourceMappingURL=schedule-data.d.ts.map
@@ -1,4 +1,4 @@
1
- //#region src/RS/v2/types/settings.d.ts
1
+ //#region src/RS/types/settings.d.ts
2
2
  interface Settings {
3
3
  numDays: number;
4
4
  discretization: number;
@@ -0,0 +1,27 @@
1
+ //#region src/RS/types/shared.d.ts
2
+ interface AvailableDependency {
3
+ dependency: string;
4
+ rank?: number;
5
+ }
6
+ type GroupReference = string | {
7
+ group: string;
8
+ } | {
9
+ individuals: string | string[];
10
+ };
11
+ type AsymType = {
12
+ bef: number;
13
+ aft: number;
14
+ };
15
+ type BreakLength = boolean | number | AsymType;
16
+ interface Day {
17
+ day?: number;
18
+ rank?: number;
19
+ }
20
+ interface Interval {
21
+ beg: number;
22
+ end: number;
23
+ binary?: boolean;
24
+ }
25
+ //#endregion
26
+ export { AvailableDependency, BreakLength, Day, GroupReference, Interval };
27
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1,44 @@
1
+ import { BaseOptions } from "../../common/types.js";
2
+ import { Types } from "../../core/types/index.js";
3
+ import { MixedScheduleData } from "../make-connected.js";
4
+ import { AlgorithmWeightParameters } from "./algorithm-parameters.js";
5
+ import { Types as Types$1 } from "./index.js";
6
+
7
+ //#region src/RS/types/to.d.ts
8
+ type ToInput = MixedScheduleData;
9
+ type PartialScheduleOptions<IDs extends Array<string> | Set<string>> = {
10
+ includedEvents?: IDs;
11
+ includedLocations?: IDs;
12
+ omittedEventsHandling: 'ignore' | 'freeze';
13
+ };
14
+ interface ToOptions extends BaseOptions {
15
+ meta?: boolean;
16
+ isPrivateId?: boolean;
17
+ isPublicId?: boolean;
18
+ appendCoreData?: boolean;
19
+ appendOutput?: boolean;
20
+ oldFormat?: boolean;
21
+ partialScheduleOptions?: PartialScheduleOptions<Array<string> | Set<string>>;
22
+ algorithmWeightParameters?: AlgorithmWeightParameters;
23
+ useMaximumScheduleSpan?: boolean;
24
+ }
25
+ interface ParsedToOptions extends Omit<ToOptions, 'partialScheduleOptions'> {
26
+ partialScheduleOptions?: PartialScheduleOptions<Set<string>>;
27
+ }
28
+ type Structure = 'RS/algorithm-3.0.0';
29
+ interface ToOutput {
30
+ meta: {
31
+ structure?: Structure;
32
+ division: Pick<Types.division, 'displayName' | 'start' | 'end'>;
33
+ };
34
+ algorithmParameters?: {
35
+ weights?: AlgorithmWeightParameters;
36
+ };
37
+ score?: [number, number, number, number];
38
+ input: Types$1.scheduleData;
39
+ output?: Types$1.configuration[];
40
+ coreData?: Partial<Types.serialized.schedule>;
41
+ }
42
+ //#endregion
43
+ export { ParsedToOptions, Structure, ToInput, ToOptions, ToOutput };
44
+ //# sourceMappingURL=to.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_schedules"],"sources":["../../../../src/SchoolSoft/api/from/index.ts"],"sourcesContent":["import { FromInterface } from '../../../core/types';\nimport _schedules from './schedules';\n\nexport default {\n schedules: _schedules\n} satisfies FromInterface;"],"mappings":";;;AAGA,mBAAe,EACb,WAAWA"}
1
+ {"version":3,"file":"index.js","names":["_schedules"],"sources":["../../../../src/SchoolSoft/api/from/index.ts"],"sourcesContent":["import type { FromInterface } from '../../../common/types';\nimport _schedules from './schedules';\n\nexport default {\n schedules: _schedules\n} satisfies FromInterface;"],"mappings":";;;AAGA,mBAAe,EACb,WAAWA"}
@@ -13,42 +13,35 @@ function courseMapKey(subject, groups, teachers) {
13
13
  var schedules_default = (data) => {
14
14
  const errors = [];
15
15
  const warnings = [];
16
- const persons = [];
17
- data.persons?.forEach((x) => {
18
- persons.push({
19
- ids: x.id,
20
- firstName: x.fname,
21
- lastName: x.lname,
22
- sex: ["m", "p"].includes(x.sex) ? "Man" : ["f", "w"].includes(x.sex) ? "Woman" : void 0,
23
- ...x.socialnumber && { SSN: {
24
- value: x.socialnumber,
25
- nationality: "SE"
26
- } },
27
- ...x.email && { emails: [{
28
- value: x.email,
29
- type: "organization"
30
- }] }
31
- });
32
- });
33
- const locations = [];
34
- data.locations.forEach((x) => {
35
- locations.push({
36
- ids: x.id,
37
- displayName: x.name
38
- });
39
- });
40
- const initialTeacherMap = /* @__PURE__ */ new Map();
41
- data.teachers.forEach((x) => {
16
+ const persons = data.persons.map((x) => ({
17
+ ids: x.id,
18
+ firstName: x.fname,
19
+ lastName: x.lname,
20
+ sex: ["m", "p"].includes(x.sex) ? "Man" : ["f", "w"].includes(x.sex) ? "Woman" : void 0,
21
+ ...x.socialnumber && { SSN: {
22
+ value: x.socialnumber,
23
+ nationality: "SE"
24
+ } },
25
+ ...x.email && { emails: [{
26
+ value: x.email,
27
+ type: "organization"
28
+ }] }
29
+ }));
30
+ const locations = data.locations.map((x) => ({
31
+ ids: x.id,
32
+ displayName: x.name
33
+ }));
34
+ const initialTeacherMap = new Map(data.teachers.map((x) => {
42
35
  if (x.active != "1") return;
43
36
  if (initialTeacherMap.has(x.initial)) {
44
37
  warnings.push(`There already exists an active teacher with the initial "${x.initial}".`);
45
38
  return;
46
39
  }
47
- initialTeacherMap.set(x.initial, {
40
+ return [x.initial, {
48
41
  ids: x.id,
49
42
  displayName: x.fname + " " + x.lname
50
- });
51
- });
43
+ }];
44
+ }).filter((x) => x != null));
52
45
  const studentGroupMap = /* @__PURE__ */ new Map();
53
46
  const nameGroupMap = /* @__PURE__ */ new Map();
54
47
  data.groups.forEach((x) => {
@@ -86,23 +79,24 @@ var schedules_default = (data) => {
86
79
  if (x.classtype == "1") return;
87
80
  const groupSet = /* @__PURE__ */ new Set();
88
81
  split(x.studentid).filter((x$1) => x$1).map((id) => {
89
- if (!studentGroupMap.has(id)) {
82
+ const group = studentGroupMap.get(id);
83
+ if (!group) {
90
84
  errors.push(`The student with id "${id}" does not belong to a group.`);
91
85
  return;
92
86
  }
93
- groupSet.add(studentGroupMap.get(id));
87
+ groupSet.add(group);
94
88
  });
95
89
  const teacherSet = /* @__PURE__ */ new Set();
96
90
  split(x.teacher).filter((x$1) => x$1).map((initial) => {
97
- if (!initialTeacherMap.has(initial)) {
91
+ const teacher = initialTeacherMap.get(initial);
92
+ if (!teacher) {
98
93
  errors.push(`The teacher with initial "${initial}" does not exist.`);
99
94
  return;
100
95
  }
101
- teacherSet.add(initialTeacherMap.get(initial).ids);
96
+ teacherSet.add(teacher.ids);
102
97
  });
103
- let subject = "";
104
- if (groupSubjectMap.has(name)) subject = groupSubjectMap.get(name);
105
- else warnings.push(`Could not determine the subject of the course "${name}" (${x.id}).`);
98
+ const subject = groupSubjectMap.get(name);
99
+ if (!subject) warnings.push(`Could not determine the subject of the course "${name}" (${x.id}).`);
106
100
  if (nameGroupMap.has(name)) {
107
101
  warnings.push(`There already exists an active group with the name "${name}".`);
108
102
  return;
@@ -142,7 +136,7 @@ var schedules_default = (data) => {
142
136
  if (groups$1.length && teachers$1.length && !courseMap.has(key)) {
143
137
  const ids = scheduledGroupIds.join(sep);
144
138
  courseMap.set(key, {
145
- ...ids.length && { ids },
139
+ ids,
146
140
  displayName: x.subject + (x.group.length ? " - " + x.group : "") + (x.teacher.length ? " - " + x.teacher : ""),
147
141
  subject: x.subject,
148
142
  groups: [],
@@ -1 +1 @@
1
- {"version":3,"file":"schedules.js","names":["errors: string[]","warnings: string[]","persons: CoreTypes.person[]","locations: CoreTypes.location[]","x","teachers","scheduledGroupIds: string[]","groups","events: CoreTypes.event[]"],"sources":["../../../../src/SchoolSoft/api/from/schedules.ts"],"sourcesContent":["// import moment from 'moment';\n\nimport { Types as CoreTypes } from '../../../core/types';\nimport { Schedule } from '../types/schedule';\n\nimport { Serialized } from '../../../core/types';\n\nconst sep = ',';\nfunction split (val: string): string[] {\n return val.split(sep)\n .map(x => x.trim())\n .filter(x => x.length);\n}\n\nfunction courseMapKey (\n subject: string | undefined,\n groups: string[],\n teachers: string[]\n): string {\n return JSON.stringify({ s: subject, g: groups.sort(), t: teachers.sort() });\n}\n\nexport default (\n data: Schedule\n): CoreTypes.division => {\n\n // gather all import related warnings/errors\n const errors: string[] = [];\n const warnings: string[] = [];\n\n ////\n //// persons\n ////\n const persons: CoreTypes.person[] = [];\n data.persons?.forEach(x => {\n persons.push({\n ids: x.id,\n //group: x.class, only name of class\n firstName: x.fname,\n lastName: x.lname,\n sex: ['m', 'p'].includes(x.sex) ? 'Man' : (['f', 'w'].includes(x.sex) ? 'Woman' : undefined),\n ...x.socialnumber && {\n SSN: {\n value: x.socialnumber,\n nationality: 'SE'\n }\n },\n ...x.email && {\n emails: [\n {\n value: x.email,\n type: 'organization'\n }\n ]\n }\n } satisfies CoreTypes.person);\n });\n\n ////\n //// locations\n ////\n const locations: CoreTypes.location[] = [];\n data.locations.forEach(x => {\n locations.push({\n ids: x.id,\n displayName: x.name\n });\n });\n\n\n ////\n //// teachers\n ////\n const initialTeacherMap = new Map<string, CoreTypes.teacher>();\n data.teachers.forEach(x => {\n // must be active\n if (x.active != '1') return;\n\n // ensure the initials to be unique\n if (initialTeacherMap.has(x.initial)) {\n warnings.push(`There already exists an active teacher with the initial \"${x.initial}\".`);\n return;\n }\n\n initialTeacherMap.set(x.initial, {\n ids: x.id,\n displayName: x.fname + ' ' + x.lname\n });\n });\n\n\n ////\n //// groups\n ////\n const studentGroupMap = new Map<string, string>();\n const nameGroupMap = new Map<string, CoreTypes.group>();\n data.groups.forEach(x => {\n const name = x.name.trim();\n\n // must be active\n if (x.active != '1') return;\n\n // must be a class type\n if (x.classtype != '1') return;\n\n // ensure the name to be unique\n if (nameGroupMap.has(name)) {\n warnings.push(`There already exists an active group with the name \"${name}\".`);\n return;\n }\n\n // add to student group map\n const members = split(x.studentid).filter(x => x);\n\n members.forEach(id => {\n if (studentGroupMap.has(id)) {\n errors.push(`The student with id \"${id}\" does already belong to a different group.`);\n return;\n }\n\n studentGroupMap.set(id, x.id);\n });\n\n // add group\n nameGroupMap.set(name, {\n ids: x.id,\n displayName: name,\n species: 'class',\n members\n });\n });\n\n\n ////\n //// create \"scheduled group\" to subject map\n ////\n const groupSubjectMap = new Map<string, string>();\n data.lessons.forEach(x => {\n if (x.subject) {\n groupSubjectMap.set(x.group.trim(), x.subject);\n }\n });\n\n\n ////\n //// courses\n ////\n const courseMap = new Map<string, CoreTypes.course>();\n const nameCourseMap = new Map<string, Serialized<CoreTypes.course>>();\n data.groups.forEach(x => {\n const name = x.name.trim();\n\n // must be active\n if (x.active != '1') return;\n\n // must be a course type\n if (x.classtype == '1') return;\n\n // find all groups connected to the course\n const groupSet = new Set<string>();\n split(x.studentid)\n .filter(x => x)\n .map(id => {\n if (!studentGroupMap.has(id)) {\n errors.push(`The student with id \"${id}\" does not belong to a group.`);\n return;\n }\n\n groupSet.add(studentGroupMap.get(id)!);\n });\n\n // find all teachers\n const teacherSet = new Set<string>();\n split(x.teacher)\n .filter(x => x)\n .map(initial => {\n if (!initialTeacherMap.has(initial)) {\n errors.push(`The teacher with initial \"${initial}\" does not exist.`);\n return;\n }\n\n teacherSet.add(initialTeacherMap.get(initial)!.ids!);\n });\n\n // try to figure out the subject from the group name via its lessons\n let subject = '';\n if (groupSubjectMap.has(name)) {\n subject = groupSubjectMap.get(name)!;\n } else {\n warnings.push(`Could not determine the subject of the course \"${name}\" (${x.id}).`);\n }\n\n\n // ensure the name to be unique\n if (nameGroupMap.has(name)) {\n warnings.push(`There already exists an active group with the name \"${name}\".`);\n return;\n }\n\n // add course\n const course = {\n ids: x.id,\n displayName: name,\n // groups: [...groupSet].map(to => ({ to })),\n // teachers: [...teacherSet].map(to => ({ to })),\n ...(subject && { subject })\n } satisfies Serialized<CoreTypes.course>;\n nameCourseMap.set(name, course);\n courseMap.set(courseMapKey(course.subject, [...groupSet], [...teacherSet]), course);\n });\n\n\n ////\n //// load further courses from lessons\n ////\n data.lessons.forEach(x => {\n\n // fetch its teachers\n const teacherSet = new Set<string>();\n split(x.teacher)\n .forEach(y => {\n const id = initialTeacherMap.get(y)?.ids;\n if (id) teacherSet.add(id);\n });\n const teachers = [...teacherSet].map(to => ({ to }));\n\n // fetch its groups\n const scheduledGroupIds: string[] = [];\n const groupSet = new Set<string>();\n split(x.group)\n .forEach(y => {\n // is group\n const id = nameGroupMap.get(y)?.ids;\n if (id) {\n scheduledGroupIds.push(id);\n groupSet.add(id);\n return;\n }\n\n // is course\n const course = nameCourseMap.get(y);\n if (course) {\n scheduledGroupIds.push(course.ids!);\n course.groups?.forEach(z => groupSet.add(z.to.toString()));\n }\n });\n const groups = [...groupSet].map(to => ({ to }));\n\n // add as course if at least a single groups or teacher is connected\n const key = courseMapKey(x.subject, groups.map(({ to }) => to), teachers.map(({ to }) => to));\n if (groups.length && teachers.length && !courseMap.has(key)) {\n const ids = scheduledGroupIds.join(sep);\n courseMap.set(key, {\n ...(ids.length && { ids }),\n displayName: x.subject + ( x.group.length ? ' - ' + x.group : '') + ( x.teacher.length ? ' - ' + x.teacher : ''),\n subject: x.subject,\n groups: [], // Don't assign to course\n teachers: [], // Don't assign to course\n });\n }\n\n });\n\n\n const teachers = [...initialTeacherMap.values()];\n const groups = [...nameGroupMap.values()];\n const courses = [...courseMap.values()];\n const events: CoreTypes.event[] = [];\n return { locations, teachers, groups, courses, events, persons,\n meta: {\n ...( errors.length ? { errors: errors } : { } ),\n ...( warnings.length ? { warnings: warnings } : { } )\n }\n };\n};"],"mappings":"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"}
1
+ {"version":3,"file":"schedules.js","names":["errors: string[]","warnings: string[]","x","course: OutTypes.course","teachers","scheduledGroupIds: string[]","groups","events: OutTypes.event[]"],"sources":["../../../../src/SchoolSoft/api/from/schedules.ts"],"sourcesContent":["import type { CoreTypes } from '../../../core';\nimport type { Schedule } from '../types/schedule';\nimport type { Vertex } from '../../../core/types/common';\n\nconst sep = ',';\nfunction split (val: string): string[] {\n return val.split(sep)\n .map(x => x.trim())\n .filter(x => x.length);\n}\n\nfunction courseMapKey (\n subject: string | undefined,\n groups: string[],\n teachers: string[]\n): string {\n return JSON.stringify({ s: subject, g: groups.sort(), t: teachers.sort() });\n}\n\nnamespace OutTypes {\n export type event = CoreTypes.serializedWithoutInternalId.event & Required<Pick<Vertex, 'ids'>>;\n export type course = CoreTypes.serializedWithoutInternalId.course & Required<Pick<Vertex, 'ids'>>;\n export type location = CoreTypes.serializedWithoutInternalId.location & Required<Pick<Vertex, 'ids'>>;\n export type group = CoreTypes.serializedWithoutInternalId.group & Required<Pick<Vertex, 'ids'>>;\n export type person = CoreTypes.serializedWithoutInternalId.person & Required<Pick<Vertex, 'ids'>>;\n export type teacher = CoreTypes.serializedWithoutInternalId.teacher & Required<Pick<Vertex, 'ids'>>;\n}\ntype Out = {\n locations: OutTypes.location[];\n teachers: OutTypes.teacher[];\n groups: OutTypes.group[];\n courses: OutTypes.course[];\n events: OutTypes.event[];\n persons: OutTypes.person[];\n\n meta: {\n errors?: string[];\n warnings?: string[];\n };\n};\n\nexport default (\n data: Schedule\n): Out => {\n\n // gather all import related warnings/errors\n const errors: string[] = [];\n const warnings: string[] = [];\n\n ////\n //// persons\n ////\n const persons = data.persons\n .map((x): OutTypes.person => ({\n ids: x.id,\n //group: x.class, only name of class\n firstName: x.fname,\n lastName: x.lname,\n sex: ['m', 'p'].includes(x.sex) ? 'Man' : (['f', 'w'].includes(x.sex) ? 'Woman' : undefined),\n ...x.socialnumber && {\n SSN: {\n value: x.socialnumber,\n nationality: 'SE'\n }\n },\n ...x.email && {\n emails: [\n {\n value: x.email,\n type: 'organization'\n }\n ]\n }\n }));\n\n ////\n //// locations\n ////\n const locations = data.locations\n .map((x): OutTypes.location => ({\n ids: x.id,\n displayName: x.name\n }));\n\n\n ////\n //// teachers\n ////\n const initialTeacherMap = new Map(data.teachers\n .map((x): undefined | [string, OutTypes.location] => {\n // must be active\n if (x.active != '1') return;\n\n // ensure the initials to be unique\n if (initialTeacherMap.has(x.initial)) {\n warnings.push(`There already exists an active teacher with the initial \"${x.initial}\".`);\n return;\n }\n\n return [x.initial, {\n ids: x.id,\n displayName: x.fname + ' ' + x.lname\n }];\n })\n .filter(x => x != null)\n );\n\n\n\n ////\n //// groups\n ////\n const studentGroupMap = new Map<string, string>();\n const nameGroupMap = new Map<string, OutTypes.group>();\n data.groups.forEach(x => {\n const name = x.name.trim();\n\n // must be active\n if (x.active != '1') return;\n\n // must be a class type\n if (x.classtype != '1') return;\n\n // ensure the name to be unique\n if (nameGroupMap.has(name)) {\n warnings.push(`There already exists an active group with the name \"${name}\".`);\n return;\n }\n\n // add to student group map\n const members = split(x.studentid).filter(x => x);\n\n members.forEach(id => {\n if (studentGroupMap.has(id)) {\n errors.push(`The student with id \"${id}\" does already belong to a different group.`);\n return;\n }\n\n studentGroupMap.set(id, x.id);\n });\n\n // add group\n nameGroupMap.set(name, {\n ids: x.id,\n displayName: name,\n species: 'class',\n members\n });\n });\n\n\n ////\n //// create \"scheduled group\" to subject map\n ////\n const groupSubjectMap = new Map<string, string>();\n data.lessons.forEach(x => {\n if (x.subject) {\n groupSubjectMap.set(x.group.trim(), x.subject);\n }\n });\n\n\n ////\n //// courses\n ////\n const courseMap = new Map<string, OutTypes.course>();\n const nameCourseMap = new Map<string, OutTypes.course>();\n data.groups.forEach(x => {\n const name = x.name.trim();\n\n // must be active\n if (x.active != '1') return;\n\n // must be a course type\n if (x.classtype == '1') return;\n\n // find all groups connected to the course\n const groupSet = new Set<string>();\n split(x.studentid)\n .filter(x => x)\n .map(id => {\n const group = studentGroupMap.get(id);\n if (!group) {\n errors.push(`The student with id \"${id}\" does not belong to a group.`);\n return;\n }\n groupSet.add(group);\n });\n\n // find all teachers\n const teacherSet = new Set<string>();\n split(x.teacher)\n .filter(x => x)\n .map(initial => {\n const teacher = initialTeacherMap.get(initial);\n if (!teacher) {\n errors.push(`The teacher with initial \"${initial}\" does not exist.`);\n return;\n }\n\n teacherSet.add(teacher.ids);\n });\n\n // try to figure out the subject from the group name via its lessons\n const subject = groupSubjectMap.get(name);\n if (!subject) {\n warnings.push(`Could not determine the subject of the course \"${name}\" (${x.id}).`);\n }\n\n\n // ensure the name to be unique\n if (nameGroupMap.has(name)) {\n warnings.push(`There already exists an active group with the name \"${name}\".`);\n return;\n }\n\n // add course\n const course: OutTypes.course = {\n ids: x.id,\n displayName: name,\n // groups: [...groupSet].map(to => ({ to })),\n // teachers: [...teacherSet].map(to => ({ to })),\n ...(subject && { subject })\n };\n nameCourseMap.set(name, course);\n courseMap.set(courseMapKey(course.subject, [...groupSet], [...teacherSet]), course);\n });\n\n\n ////\n //// load further courses from lessons\n ////\n data.lessons.forEach(x => {\n\n // fetch its teachers\n const teacherSet = new Set<string>();\n split(x.teacher)\n .forEach(y => {\n const id = initialTeacherMap.get(y)?.ids;\n if (id) teacherSet.add(id);\n });\n const teachers = [...teacherSet].map(to => ({ to }));\n\n // fetch its groups\n const scheduledGroupIds: string[] = [];\n const groupSet = new Set<string>();\n split(x.group)\n .forEach(y => {\n // is group\n const id = nameGroupMap.get(y)?.ids;\n if (id) {\n scheduledGroupIds.push(id);\n groupSet.add(id);\n return;\n }\n\n // is course\n const course = nameCourseMap.get(y);\n if (course) {\n scheduledGroupIds.push(course.ids);\n course.groups?.forEach(z => groupSet.add(z.to.toString()));\n }\n });\n const groups = [...groupSet].map(to => ({ to }));\n\n // add as course if at least a single groups or teacher is connected\n const key = courseMapKey(x.subject, groups.map(({ to }) => to), teachers.map(({ to }) => to));\n if (groups.length && teachers.length && !courseMap.has(key)) {\n const ids = scheduledGroupIds.join(sep);\n courseMap.set(key, {\n ids: ids,\n displayName: x.subject + ( x.group.length ? ' - ' + x.group : '') + ( x.teacher.length ? ' - ' + x.teacher : ''),\n subject: x.subject,\n groups: [], // Don't assign to course\n teachers: [], // Don't assign to course\n });\n }\n\n });\n\n\n const teachers = [...initialTeacherMap.values()];\n const groups = [...nameGroupMap.values()];\n const courses = [...courseMap.values()];\n const events: OutTypes.event[] = [];\n return { locations, teachers, groups, courses, events, persons,\n meta: {\n ...( errors.length ? { errors: errors } : { } ),\n ...( warnings.length ? { warnings: warnings } : { } )\n }\n };\n};"],"mappings":"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"}
@@ -1,11 +1,23 @@
1
- import { Types } from "../../core/v2/types/index.js";
1
+ import { Vertex } from "../../core/types/common/index.js";
2
+ import { Types } from "../../core/types/index.js";
2
3
  import { Schedule } from "./types/schedule.js";
3
4
  import { Types as Types$1 } from "./types/index.js";
4
5
 
5
6
  //#region src/SchoolSoft/api/index.d.ts
6
7
  declare class Map {
7
8
  static from: {
8
- schedules: (data: Schedule) => Types.division;
9
+ schedules: (data: Schedule) => {
10
+ locations: (Types.serializedWithoutInternalId.location & Required<Pick<Vertex, "ids">>)[];
11
+ teachers: (Types.serializedWithoutInternalId.teacher & Required<Pick<Vertex, "ids">>)[];
12
+ groups: (Types.serializedWithoutInternalId.group & Required<Pick<Vertex, "ids">>)[];
13
+ courses: (Types.serializedWithoutInternalId.course & Required<Pick<Vertex, "ids">>)[];
14
+ events: (Types.serializedWithoutInternalId.event & Required<Pick<Vertex, "ids">>)[];
15
+ persons: (Types.serializedWithoutInternalId.person & Required<Pick<Vertex, "ids">>)[];
16
+ meta: {
17
+ errors?: string[];
18
+ warnings?: string[];
19
+ };
20
+ };
9
21
  };
10
22
  }
11
23
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_from"],"sources":["../../../src/SchoolSoft/api/index.ts"],"sourcesContent":["import _from from './from';\nimport { Types } from './types';\n\nexport class Map {\n static from = _from;\n}\n\nexport type { Types };"],"mappings":";;;AAGA,IAAa,MAAb,MAAiB;CACf,OAAO,OAAOA"}
1
+ {"version":3,"file":"index.js","names":["_from"],"sources":["../../../src/SchoolSoft/api/index.ts"],"sourcesContent":["import _from from './from';\nimport type { Types } from './types';\n\nexport class Map {\n static from = _from;\n}\n\nexport { Types };"],"mappings":";;;AAGA,IAAa,MAAb,MAAiB;CACf,OAAO,OAAOA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_schedules"],"sources":["../../../../src/SchoolSoft/file/from/index.ts"],"sourcesContent":["import { FromInterface } from '../../../core/types';\nimport _schedules from './schedules';\n\nexport default {\n schedules: _schedules\n} satisfies FromInterface;"],"mappings":";;;AAGA,mBAAe,EACb,WAAWA"}
1
+ {"version":3,"file":"index.js","names":["_schedules"],"sources":["../../../../src/SchoolSoft/file/from/index.ts"],"sourcesContent":["import type { FromInterface } from '../../../common/types';\nimport _schedules from './schedules';\n\nexport default {\n schedules: _schedules\n} satisfies FromInterface;"],"mappings":";;;AAGA,mBAAe,EACb,WAAWA"}
@@ -1,5 +1,6 @@
1
+ import { makeChainable } from "../../../common/make-chainable/index.js";
1
2
  import get_date_default from "../../../common/get-date.js";
2
- import { isEqual, isString, sortBy, trim } from "lodash-es";
3
+ import { countBy, groupBy, size, sortBy, trim } from "lodash-es";
3
4
 
4
5
  //#region src/SchoolSoft/file/from/schedules.ts
5
6
  const days = [
@@ -13,30 +14,28 @@ const days = [
13
14
  ];
14
15
  function _parseWeeks(weeks, set, method = "add") {
15
16
  if (!weeks) return;
16
- const intervals = weeks.split(",").map(trim);
17
+ const intervals = weeks.split(",").map((x) => trim(x));
17
18
  intervals.forEach((interval) => {
18
19
  if (!interval.includes("-")) {
19
20
  set[method](Number(interval));
20
21
  return;
21
22
  }
22
23
  const [start, end] = interval.split("-").map(Number);
23
- Array(end - start + 1).fill(start).forEach((val, index) => set[method](val + index));
24
+ Array.from({ length: end - start + 1 }, (_, index) => start + index).forEach((x) => set[method](x));
24
25
  });
25
26
  }
26
27
  var schedules_default = (input, options) => {
27
- if (!input) throw new Error("(SchoolSoft::From::Schedules) Input was undefined");
28
- if (isString(input)) throw new Error("(SchoolSoft::From::Schedules) Input was of type string. Is required to be of object type");
29
28
  const teachers = /* @__PURE__ */ new Set();
30
29
  const groups = /* @__PURE__ */ new Set();
31
30
  const locations = /* @__PURE__ */ new Set();
32
- const events = input.reduce((acc, event) => {
33
- if (!("length" in event)) return acc;
31
+ const events = input.map((event) => {
32
+ if (!event.length) return;
34
33
  const weeks = /* @__PURE__ */ new Set();
35
34
  const { inweek, exweek, realweeks } = event;
36
35
  try {
37
36
  _parseWeeks(inweek, weeks, "add");
38
37
  _parseWeeks(realweeks, weeks, "add");
39
- if (weeks.size == 0) Array(51).fill(1).forEach((val, index) => weeks.add(val + index));
38
+ if (weeks.size == 0) Array.from({ length: 51 }, (_, index) => index + 1).forEach((x) => weeks.add(x));
40
39
  _parseWeeks(exweek, weeks, "delete");
41
40
  } catch (err) {
42
41
  console.error(err);
@@ -46,14 +45,15 @@ var schedules_default = (input, options) => {
46
45
  if (start$1 > 52 || start$1 <= 0) throw new Error(`(SchoolSoft::From::Schedules) Interval::start is invalid. value ${start$1}`);
47
46
  if (end$1 > 52 || end$1 <= 0) throw new Error(`(SchoolSoft::From::Schedules) Interval::end is invalid. value ${end$1}`);
48
47
  if (start$1 > end$1) {
49
- if (!Array.from(weeks).some((week) => week >= start$1 && week <= 52 || week <= end$1)) return acc;
50
- } else if (!Array.from(weeks).some((week) => week >= start$1 && week <= end$1)) return acc;
48
+ if (!Array.from(weeks).some((week) => week >= start$1 && week <= 52 || week <= end$1)) return;
49
+ } else if (!Array.from(weeks).some((week) => week >= start$1 && week <= end$1)) return;
51
50
  }
52
- let start, end;
51
+ let start;
52
+ let end;
53
53
  const { starttime, subject, day, length, teacher, group, room } = event;
54
54
  if (day && starttime) {
55
55
  const _day = days.indexOf(day);
56
- if (_day > 4) return acc;
56
+ if (_day > 4) return;
57
57
  start = get_date_default(_day, `${starttime.substring(0, 2)}:${starttime.substring(2, 4)}`);
58
58
  end = start.clone().add(length, "m");
59
59
  }
@@ -62,17 +62,17 @@ var schedules_default = (input, options) => {
62
62
  let _locations;
63
63
  if (teacher) {
64
64
  _teachers = teacher.split(",").map((x) => x.trim());
65
- _teachers?.forEach((_teacher) => teachers.add(_teacher));
65
+ _teachers?.forEach((x) => teachers.add(x));
66
66
  }
67
67
  if (group) {
68
68
  _groups = group.split(",").map((x) => x.trim());
69
- _groups?.forEach((_group) => groups.add(_group));
69
+ _groups?.forEach((x) => groups.add(x));
70
70
  }
71
71
  if (room) {
72
72
  _locations = sortBy(room.split(",").map((x) => x.trim()));
73
- _locations?.forEach((_location) => locations.add(_location));
73
+ _locations?.forEach((x) => locations.add(x));
74
74
  }
75
- return acc.concat({
75
+ const doc = {
76
76
  ids: event.id,
77
77
  preferredDuration: event.length,
78
78
  weeks: sortBy(Array.from(weeks)),
@@ -88,42 +88,32 @@ var schedules_default = (input, options) => {
88
88
  groupIndex: index
89
89
  }))
90
90
  }
91
- });
92
- }, []);
93
- const set = new Set(events);
94
- const courses = /* @__PURE__ */ new Set([]);
95
- for (const element of set) {
96
- set.delete(element);
97
- const events$1 = [element];
98
- const { subject, groups: groups$1, teachers: teachers$1, inLocations, locations: locations$1 } = element;
99
- delete element.groups;
100
- delete element.subject;
101
- for (const event of set) {
102
- if (event.subject != subject) continue;
103
- if (groups$1?.length && !isEqual(sortBy(event.groups), sortBy(groups$1))) continue;
104
- if (!groups$1?.length && teachers$1?.length && !isEqual(sortBy(event.teachers), sortBy(teachers$1))) continue;
105
- delete event.groups;
106
- delete event.subject;
107
- events$1.push(event);
108
- set.delete(event);
91
+ };
92
+ return doc;
93
+ }).filter((x) => x != null);
94
+ const courses = makeChainable(events).chain((x) => x.filter((e) => !!e.ids), (x) => groupBy(x, (e) => e.subject + ".g." + e.groups?.map((x$1) => x$1.to).join(",") + (e.groups?.length ? "" : ".t." + e.teachers?.map((x$1) => x$1.to).join(","))), (x) => Object.values(x).map((events$1) => {
95
+ const { subject, groups: groups$1, teachers: teachers$1 } = events$1[0];
96
+ for (const e of events$1) {
97
+ delete e.subject;
98
+ delete e.groups;
109
99
  }
110
100
  const course = {
111
- displayName: `${subject}-${(groups$1 ?? teachers$1)?.join(" ")}`,
112
- ...groups$1 && { groups: groups$1 },
113
- events: events$1
101
+ displayName: `${subject}-${(groups$1 ?? teachers$1)?.map((x$1) => x$1.to).join(" ")}`,
102
+ events: events$1.map((e) => e.ids),
103
+ ...groups$1
114
104
  };
115
- if (events$1.every(({ teachers: _teachers }) => isEqual(sortBy(teachers$1), sortBy(_teachers)))) {
116
- course.teachers = teachers$1;
117
- course.events?.forEach((event) => delete event.teachers);
105
+ if (size(countBy(events$1, (e) => e.teachers?.map((x$1) => x$1.to).sort().join(","))) == 1) {
106
+ course.teachers = events$1[0].teachers ?? void 0;
107
+ events$1.forEach((e) => delete e.teachers);
118
108
  }
119
- if (events$1.every(({ inLocations: _inLocations }) => isEqual(sortBy(inLocations), sortBy(_inLocations)))) {
120
- course.locations = locations$1;
121
- course.events?.forEach((event) => delete event.locations);
109
+ if (size(countBy(events$1, (e) => e.locations?.map((x$1) => x$1.locations[0]).sort().join(","))) == 1) {
110
+ course.locations = events$1[0].locations ?? void 0;
111
+ events$1.forEach((e) => delete e.locations);
122
112
  }
123
- courses.add(course);
124
- }
113
+ return course;
114
+ })).value;
125
115
  return {
126
- courses: Array.from(courses),
116
+ courses,
127
117
  teachers: Array.from(teachers).map((ids) => ({
128
118
  ids,
129
119
  displayName: ids
@@ -1 +1 @@
1
- {"version":3,"file":"schedules.js","names":["days: Day[]","intervals: (`${number}-${number}` | `${number}${number}`)[]","teachers: Set<string>","groups: Set<string>","locations: Set<string>","weeks: Set<number>","start","end","start: moment.Moment | undefined","end: moment.Moment | undefined","_day: number","getDate","_teachers: string[] | undefined","_groups: string[] | undefined","_locations: string[] | undefined","events","groups","teachers","course: extendedCourse","locations"],"sources":["../../../../src/SchoolSoft/file/from/schedules.ts"],"sourcesContent":["import moment from 'moment';\nimport { isEqual, isString, sortBy, trim } from 'lodash-es';\n\nimport { Day,\n Event } from '../types/events';\n\nimport { Types as CoreTypes } from '../../../core/types';\nimport { Serialized,\n Deserialized } from '../../../core/types';\n\n\nimport getDate from '../../../common/get-date';\nimport { Options } from '../types';\n\nconst days: Day[] = ['Mån', 'Tis', 'Ons', 'Tor', 'Fre', 'Lör', 'Sön'];\n\nfunction _parseWeeks (weeks: string | undefined, set: Set<number>, method: ('add' | 'delete') = 'add'): void {\n if (!weeks) return;\n const intervals: (`${number}-${number}` | `${number}${number}`)[] = weeks.split(',').map(trim) as (`${number}-${number}` | `${number}${number}`)[];\n intervals.forEach(interval => {\n if (!interval.includes('-')) {\n set[method](Number(interval));\n return;\n }\n const [start, end] = interval.split('-').map(Number);\n Array(end - start + 1).fill(start)\n .forEach((val, index) => set[method](val + index));\n });\n}\n\n\nexport default (\n input: Deserialized<Event>[],\n options?: Options\n): CoreTypes.division => {\n\n if (!input)\n throw new Error('(SchoolSoft::From::Schedules) Input was undefined');\n\n if (isString(input))\n throw new Error('(SchoolSoft::From::Schedules) Input was of type string. Is required to be of object type');\n\n const teachers: Set<string> = new Set<string>();\n const groups: Set<string> = new Set<string>();\n const locations: Set<string> = new Set<string>();\n\n const events = input.reduce((acc: (Serialized<CoreTypes.event> & { subject?: string })[], event) => {\n if (!('length' in event))\n return acc;\n\n const weeks: Set<number> = new Set<number>();\n const {\n inweek,\n exweek,\n realweeks\n } = event;\n\n try {\n _parseWeeks(inweek, weeks, 'add');\n _parseWeeks(realweeks, weeks, 'add');\n\n if (weeks.size == 0)\n Array(51).fill(1)\n .forEach((val, index) => weeks.add(val + index));\n\n _parseWeeks(exweek, weeks, 'delete');\n } catch(err) {\n console.error(err);\n }\n\n if (options?.interval) {\n const { start, end } = options.interval;\n\n if (start > 52 || start <= 0)\n throw new Error(`(SchoolSoft::From::Schedules) Interval::start is invalid. value ${ start }`);\n\n if (end > 52 || end <= 0)\n throw new Error(`(SchoolSoft::From::Schedules) Interval::end is invalid. value ${ end }`);\n\n if (start > end) {\n if (!Array.from(weeks).some(week => (week >= start && week <= 52) || week <= end))\n return acc;\n } else {\n if (!Array.from(weeks).some(week => week >= start && week <= end))\n return acc;\n }\n }\n\n let start: moment.Moment | undefined,\n end: moment.Moment | undefined;\n\n const {\n starttime,\n subject,\n day,\n length,\n teacher,\n group,\n room\n } = event;\n\n if (day && starttime) {\n const _day: number = days.indexOf(day);\n\n if (_day > 4)\n return acc;\n\n start = getDate(_day, `${ starttime.substring(0, 2) }:${ starttime.substring(2, 4) }`);\n end = start.clone().add(length, 'm');\n }\n\n let _teachers: string[] | undefined;\n let _groups: string[] | undefined;\n let _locations: string[] | undefined;\n\n if (teacher) {\n _teachers = teacher.split(',').map(x => x.trim());\n _teachers?.forEach(_teacher => teachers.add(_teacher));\n }\n\n if (group) {\n _groups = group.split(',').map(x => x.trim()/*.split(':')[0]*/);\n _groups?.forEach(_group => groups.add(_group));\n }\n\n if (room) {\n _locations = sortBy(room.split(',').map(x => x.trim()));\n _locations?.forEach(_location => locations.add(_location));\n }\n\n return acc.concat({\n ids: event.id,\n preferredDuration: event.length!,\n weeks: sortBy(Array.from(weeks)),\n ...subject && { subject },\n ...start && { start },\n ...end && { end },\n ...event.group && { groups: _groups?.map(to => ({ to })) },\n ...event.teacher && { teachers: _teachers?.map(to => ({ to })) },\n ...event.room && {\n inLocations: _locations,\n locations: _locations?.map((_location, index: number) => (\n {\n locations: [_location],\n groupIndex: index\n })\n )\n }\n } as Serialized<CoreTypes.event> & { subject?: string });\n }, []);\n\n type extendedCourse = Omit<Deserialized<CoreTypes.course>, 'events' | 'groups' | 'teachers' | 'locations'> &\n Pick<Serialized<CoreTypes.course>, 'groups' | 'teachers' | 'locations'> &\n { events: Serialized<CoreTypes.event>[] };\n const set = new Set<Serialized<CoreTypes.event> & { subject?: string }>(events);\n const courses = new Set<extendedCourse>([]);\n\n for (const element of set) {\n set.delete(element);\n const events = [element];\n const {\n subject,\n groups,\n teachers,\n inLocations,\n locations\n } = element ;\n\n delete element.groups;\n delete element.subject;\n\n for (const event of set) {\n if (event.subject != subject)\n continue;\n\n\n if (groups?.length && !isEqual(sortBy(event.groups), sortBy(groups)))\n continue;\n /*\n Subject Lunch only have teacher and no groups\n */\n if (!groups?.length && teachers?.length && !isEqual(sortBy(event.teachers), sortBy(teachers)))\n continue;\n\n delete event.groups;\n delete event.subject;\n events.push(event);\n set.delete(event);\n }\n\n const course: extendedCourse = {\n displayName: `${ subject }-${ (groups ?? teachers)?.join(' ') }`,\n ...groups && { groups },\n events\n };\n\n if (events.every(({ teachers: _teachers }) => isEqual(sortBy(teachers), sortBy(_teachers)))) {\n course.teachers = teachers!;\n course.events?.forEach((event) => delete event.teachers);\n }\n\n if (events.every(({ inLocations: _inLocations }) => isEqual(sortBy(inLocations), sortBy(_inLocations)))) {\n course.locations = locations!;\n course.events?.forEach(event => delete event.locations);\n }\n\n courses.add(course);\n }\n\n return {\n /* TYPE INCONSISTENCY! */ courses: Array.from(courses) as any,\n teachers: Array.from(teachers) .map(ids => ({ ids, displayName: ids })),\n groups: Array.from(groups) .map(ids => ({ ids, displayName: ids })),\n locations: Array.from(locations).map(ids => ({ ids, displayName: ids }))\n };\n};"],"mappings":"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"}
1
+ {"version":3,"file":"schedules.js","names":["days: Day[]","start","end","start: moment.Moment | undefined","end: moment.Moment | undefined","_day: number","getDate","_teachers: string[] | undefined","_groups: string[] | undefined","_locations: string[] | undefined","doc: CoreTypes.serializedWithoutInternalId.event & { subject?: string }","x","events","course: CoreTypes.serializedWithoutInternalId.course","groups","teachers"],"sources":["../../../../src/SchoolSoft/file/from/schedules.ts"],"sourcesContent":["import type moment from 'moment';\nimport { trim, sortBy, countBy, size, groupBy } from 'lodash-es';\nimport type { Day, Event } from '../types/events';\nimport type { CoreTypes } from '../../../core';\nimport getDate from '../../../common/get-date';\nimport type { Options } from '../types';\nimport { makeChainable } from '../../../common/make-chainable';\n\nconst days: Day[] = ['Mån', 'Tis', 'Ons', 'Tor', 'Fre', 'Lör', 'Sön'];\n\nfunction _parseWeeks (\n weeks: string | undefined,\n set: Set<number>,\n method: ('add' | 'delete') = 'add'\n): void {\n if (!weeks) return;\n const intervals = weeks.split(',').map(x => trim(x)) as (`${number}-${number}` | `${number}${number}`)[];\n intervals.forEach(interval => {\n if (!interval.includes('-')) {\n set[method](Number(interval));\n return;\n }\n const [start, end] = interval.split('-').map(Number);\n Array.from({ length: end - start + 1 }, (_, index) => start + index)\n .forEach(x => set[method](x));\n });\n}\n\n\nexport default (\n input: Event[],\n options?: Options\n): Partial<CoreTypes.serializedWithoutInternalId.schedule> => {\n const teachers = new Set<string>();\n const groups = new Set<string>();\n const locations = new Set<string>();\n\n const events = input\n .map(event => {\n if (!event.length) return;\n\n const weeks = new Set<number>();\n const {\n inweek,\n exweek,\n realweeks\n } = event;\n\n try {\n _parseWeeks(inweek, weeks, 'add');\n _parseWeeks(realweeks, weeks, 'add');\n\n if (weeks.size == 0)\n Array.from({ length: 51 }, (_, index) => index + 1).forEach(x => weeks.add(x));\n _parseWeeks(exweek, weeks, 'delete');\n } catch (err) {\n console.error(err);\n }\n\n if (options?.interval) {\n const { start, end } = options.interval;\n\n if (start > 52 || start <= 0)\n throw new Error(`(SchoolSoft::From::Schedules) Interval::start is invalid. value ${ start }`);\n\n if (end > 52 || end <= 0)\n throw new Error(`(SchoolSoft::From::Schedules) Interval::end is invalid. value ${ end }`);\n\n if (start > end) {\n if (!Array.from(weeks).some(week => (week >= start && week <= 52) || week <= end))\n return;\n } else {\n if (!Array.from(weeks).some(week => week >= start && week <= end))\n return;\n }\n }\n\n let start: moment.Moment | undefined;\n let end: moment.Moment | undefined;\n\n const {\n starttime,\n subject,\n day,\n length,\n teacher,\n group,\n room\n } = event;\n\n if (day && starttime) {\n const _day: number = days.indexOf(day);\n\n if (_day > 4) return;\n\n start = getDate(_day, `${ starttime.substring(0, 2) }:${ starttime.substring(2, 4) }`);\n end = start.clone().add(length, 'm');\n }\n\n let _teachers: string[] | undefined;\n let _groups: string[] | undefined;\n let _locations: string[] | undefined;\n\n if (teacher) {\n _teachers = teacher.split(',').map(x => x.trim());\n _teachers?.forEach(x => teachers.add(x));\n }\n\n if (group) {\n _groups = group.split(',').map(x => x.trim());\n _groups?.forEach(x => groups.add(x));\n }\n\n if (room) {\n _locations = sortBy(room.split(',').map(x => x.trim()));\n _locations?.forEach(x => locations.add(x));\n }\n\n const doc: CoreTypes.serializedWithoutInternalId.event & { subject?: string } ={\n ids: event.id,\n preferredDuration: event.length,\n weeks: sortBy(Array.from(weeks)),\n ...subject && { subject },\n ...start && { start },\n ...end && { end },\n ...event.group && { groups: _groups ?.map(to => ({ to })) },\n ...event.teacher && { teachers: _teachers?.map(to => ({ to })) },\n ...event.room && {\n inLocations: _locations,\n locations: _locations?.map((_location, index: number) => (\n {\n locations: [_location],\n groupIndex: index\n })\n )\n }\n };\n\n return doc;\n })\n .filter(x => x != null);\n\n // construct courses from events with same subject, groups and teachers\n const courses = makeChainable(events)\n .chain(\n x => x.filter((e): e is typeof e & { ids: string } => !!e.ids),\n x => groupBy(x, e =>\n e.subject\n + '.g.' + e.groups?.map(x => x.to).join(',')\n // Subject Lunch only have teacher and no groups\n + (e.groups?.length ? '' : ('.t.' + e.teachers?.map(x => x.to).join(',') ))\n ),\n x => Object.values(x)\n .map(events => {\n // promote shared properties to course\n const { subject, groups, teachers } = events[0];\n for (const e of events) {\n delete e.subject;\n delete e.groups;\n }\n\n const course: CoreTypes.serializedWithoutInternalId.course = {\n displayName: `${ subject }-${ (groups ?? teachers)?.map(x => x.to).join(' ') }`,\n events: events.map(e => e.ids),\n ...groups,\n };\n\n // try to also promote teachers and locations\n if (size(countBy(events, e => e.teachers?.map(x => x.to).sort().join(','))) == 1) {\n course.teachers = events[0].teachers ?? undefined;\n events.forEach(e => delete e.teachers);\n }\n if (size(countBy(events, e => e.locations?.map(x => x.locations[0]).sort().join(','))) == 1) {\n course.locations = events[0].locations ?? undefined;\n events.forEach(e => delete e.locations);\n }\n\n return course;\n })\n )\n .value;\n\n return {\n courses: courses,\n teachers: Array.from(teachers) .map(ids => ({ ids, displayName: ids })),\n groups: Array.from(groups) .map(ids => ({ ids, displayName: ids })),\n locations: Array.from(locations).map(ids => ({ ids, displayName: ids }))\n };\n};"],"mappings":"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"}