@royalschedule/maps 4.0.15 → 4.0.17

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 (346) hide show
  1. package/dist/Additio/from/courses.js.map +1 -1
  2. package/dist/Additio/from/events.js.map +1 -1
  3. package/dist/Additio/from/groups.js.map +1 -1
  4. package/dist/Additio/from/index.js.map +1 -1
  5. package/dist/Additio/from/locations.js.map +1 -1
  6. package/dist/Additio/from/persons.js.map +1 -1
  7. package/dist/Additio/from/schedules.d.ts +7 -6
  8. package/dist/Additio/from/schedules.js +2 -4
  9. package/dist/Additio/from/schedules.js.map +1 -1
  10. package/dist/Additio/from/teachers.js.map +1 -1
  11. package/dist/Additio/to/index.d.ts +13 -11
  12. package/dist/Additio/to/schedules.js +2 -4
  13. package/dist/Additio/to/schedules.js.map +1 -1
  14. package/dist/Admentum/from/courses.js.map +1 -1
  15. package/dist/Admentum/from/events.js.map +1 -1
  16. package/dist/Admentum/from/groups.js.map +1 -1
  17. package/dist/Admentum/from/index.js.map +1 -1
  18. package/dist/Admentum/from/locations.js.map +1 -1
  19. package/dist/Admentum/from/persons.js.map +1 -1
  20. package/dist/Admentum/from/schedules.d.ts +7 -6
  21. package/dist/Admentum/from/schedules.js +2 -4
  22. package/dist/Admentum/from/schedules.js.map +1 -1
  23. package/dist/Admentum/from/teachers.js.map +1 -1
  24. package/dist/Admentum/to/index.d.ts +9 -8
  25. package/dist/Admentum/to/schedules.js +4 -7
  26. package/dist/Admentum/to/schedules.js.map +1 -1
  27. package/dist/Excel/index.d.ts +263 -26
  28. package/dist/Excel/v1/from/index.js +2 -1
  29. package/dist/Excel/v1/from/index.js.map +1 -1
  30. package/dist/Excel/v1/index.d.ts +218 -20
  31. package/dist/Excel/v2/from/index.js +99 -94
  32. package/dist/Excel/v2/from/index.js.map +1 -1
  33. package/dist/Excel/v2/index.d.ts +263 -26
  34. package/dist/IdunSoft/from/courses.js.map +1 -1
  35. package/dist/IdunSoft/from/events.js +1 -2
  36. package/dist/IdunSoft/from/events.js.map +1 -1
  37. package/dist/IdunSoft/from/groups.js.map +1 -1
  38. package/dist/IdunSoft/from/index.js.map +1 -1
  39. package/dist/IdunSoft/from/locations.js.map +1 -1
  40. package/dist/IdunSoft/from/schedules.d.ts +6 -5
  41. package/dist/IdunSoft/from/schedules.js.map +1 -1
  42. package/dist/IdunSoft/from/teachers.js.map +1 -1
  43. package/dist/IdunSoft/to/index.d.ts +2 -1
  44. package/dist/IdunSoft/to/schedules.js +5 -8
  45. package/dist/IdunSoft/to/schedules.js.map +1 -1
  46. package/dist/InfoMentor/to/index.d.ts +2 -1
  47. package/dist/InfoMentor/to/schedules.js +3 -4
  48. package/dist/InfoMentor/to/schedules.js.map +1 -1
  49. package/dist/PlanDigital/from/index.js.map +1 -1
  50. package/dist/PlanDigital/from/schedules.js +9 -11
  51. package/dist/PlanDigital/from/schedules.js.map +1 -1
  52. package/dist/PlanDigital/index.d.ts +73 -58
  53. package/dist/Quiculum/file/to/index.d.ts +10 -9
  54. package/dist/Quiculum/file/to/schedules.js +5 -9
  55. package/dist/Quiculum/file/to/schedules.js.map +1 -1
  56. package/dist/RS/from/division.d.ts +2 -1
  57. package/dist/RS/from/division.js +9 -6
  58. package/dist/RS/from/division.js.map +1 -1
  59. package/dist/RS/from/index.js.map +1 -1
  60. package/dist/RS/from/schedules.d.ts +2 -1
  61. package/dist/RS/from/schedules.js.map +1 -1
  62. package/dist/RS/make-connected.d.ts +17 -16
  63. package/dist/RS/make-connected.js +63 -96
  64. package/dist/RS/make-connected.js.map +1 -1
  65. package/dist/RS/to/index.js.map +1 -1
  66. package/dist/RS/to/initial-configuration.js +4 -6
  67. package/dist/RS/to/initial-configuration.js.map +1 -1
  68. package/dist/RS/to/input/collections.js.map +1 -1
  69. package/dist/RS/to/input/default.js +1 -2
  70. package/dist/RS/to/input/default.js.map +1 -1
  71. package/dist/RS/to/input/dependencies.js +1 -3
  72. package/dist/RS/to/input/dependencies.js.map +1 -1
  73. package/dist/RS/to/input/dynamic-locked-times.js +1 -2
  74. package/dist/RS/to/input/dynamic-locked-times.js.map +1 -1
  75. package/dist/RS/to/input/events.js +5 -3
  76. package/dist/RS/to/input/events.js.map +1 -1
  77. package/dist/RS/to/input/groups.js.map +1 -1
  78. package/dist/RS/to/input/individuals.js +2 -3
  79. package/dist/RS/to/input/individuals.js.map +1 -1
  80. package/dist/RS/to/input/input.js +1 -3
  81. package/dist/RS/to/input/input.js.map +1 -1
  82. package/dist/RS/to/input/intervals.js +2 -4
  83. package/dist/RS/to/input/intervals.js.map +1 -1
  84. package/dist/RS/to/input/periods.js +6 -8
  85. package/dist/RS/to/input/periods.js.map +1 -1
  86. package/dist/RS/to/input/settings.js.map +1 -1
  87. package/dist/RS/to/input/teachers.js.map +1 -1
  88. package/dist/RS/to/input/util/attach-locked-times.js.map +1 -1
  89. package/dist/RS/to/input/util/parse-days.js.map +1 -1
  90. package/dist/RS/to/input/util/parse-group-references.js.map +1 -1
  91. package/dist/RS/to/input/util/parse-intervals.js +2 -4
  92. package/dist/RS/to/input/util/parse-intervals.js.map +1 -1
  93. package/dist/RS/to/input/util/parse-location-references.js +1 -2
  94. package/dist/RS/to/input/util/parse-location-references.js.map +1 -1
  95. package/dist/RS/to/input/util/parse-max-working-hours.js.map +1 -1
  96. package/dist/RS/to/input/util/parse-minimum-break-length.js.map +1 -1
  97. package/dist/RS/to/input/util/util.js +1 -2
  98. package/dist/RS/to/input/util/util.js.map +1 -1
  99. package/dist/RS/to/schedules.js +1 -1
  100. package/dist/RS/to/schedules.js.map +1 -1
  101. package/dist/RS/types/to.d.ts +15 -5
  102. package/dist/RS/types/to.js +1 -1
  103. package/dist/RS/types/to.js.map +1 -1
  104. package/dist/SS12000/from/activities.js +1 -2
  105. package/dist/SS12000/from/activities.js.map +1 -1
  106. package/dist/SS12000/from/calendar-events.js.map +1 -1
  107. package/dist/SS12000/from/duties.js.map +1 -1
  108. package/dist/SS12000/from/groups.js.map +1 -1
  109. package/dist/SS12000/from/index.js.map +1 -1
  110. package/dist/SS12000/from/persons.js.map +1 -1
  111. package/dist/SS12000/from/resources.js.map +1 -1
  112. package/dist/SS12000/from/rooms.js.map +1 -1
  113. package/dist/SS12000/from/syllabuses.js.map +1 -1
  114. package/dist/SS12000/index.d.ts +12567 -9
  115. package/dist/SS12000/to/activities.js.map +1 -1
  116. package/dist/SS12000/to/calendar-events.js.map +1 -1
  117. package/dist/SS12000/to/common.js.map +1 -1
  118. package/dist/SS12000/to/duties.js.map +1 -1
  119. package/dist/SS12000/to/groups.js.map +1 -1
  120. package/dist/SS12000/to/index.d.ts +17 -16
  121. package/dist/SS12000/to/persons.js.map +1 -1
  122. package/dist/SS12000/to/resources.js.map +1 -1
  123. package/dist/SS12000/to/rooms.js.map +1 -1
  124. package/dist/SS12000/to/syllabuses.js.map +1 -1
  125. package/dist/SchoolSoft/api/from/index.js.map +1 -1
  126. package/dist/SchoolSoft/api/from/schedules.js +8 -12
  127. package/dist/SchoolSoft/api/from/schedules.js.map +1 -1
  128. package/dist/SchoolSoft/api/index.d.ts +444 -9
  129. package/dist/SchoolSoft/file/from/index.js.map +1 -1
  130. package/dist/SchoolSoft/file/from/schedules.js +83 -87
  131. package/dist/SchoolSoft/file/from/schedules.js.map +1 -1
  132. package/dist/SchoolSoft/file/index.d.ts +2 -1
  133. package/dist/SchoolSoft/file/to/index.d.ts +5 -4
  134. package/dist/SchoolSoft/file/to/schedules.js +1 -2
  135. package/dist/SchoolSoft/file/to/schedules.js.map +1 -1
  136. package/dist/SchoolSoft/index.d.ts +2 -1
  137. package/dist/Schoolity/txt/to/index.d.ts +2 -1
  138. package/dist/Schoolity/txt/to/schedules.js +5 -12
  139. package/dist/Schoolity/txt/to/schedules.js.map +1 -1
  140. package/dist/Skola24/mdb/from/course-and-events.js +3 -5
  141. package/dist/Skola24/mdb/from/course-and-events.js.map +1 -1
  142. package/dist/Skola24/mdb/from/groups.js.map +1 -1
  143. package/dist/Skola24/mdb/from/index.js.map +1 -1
  144. package/dist/Skola24/mdb/from/locations.js.map +1 -1
  145. package/dist/Skola24/mdb/from/schedule.d.ts +6 -5
  146. package/dist/Skola24/mdb/from/schedule.js.map +1 -1
  147. package/dist/Skola24/mdb/from/teachers.js.map +1 -1
  148. package/dist/Skola24/txt/from/calendar-exceptions.js +1 -2
  149. package/dist/Skola24/txt/from/calendar-exceptions.js.map +1 -1
  150. package/dist/Skola24/txt/from/division.js.map +1 -1
  151. package/dist/Skola24/txt/from/index.js.map +1 -1
  152. package/dist/Skola24/txt/from/period.js +31 -34
  153. package/dist/Skola24/txt/from/period.js.map +1 -1
  154. package/dist/Skola24/txt/from/schedules.d.ts +9 -8
  155. package/dist/Skola24/txt/from/schedules.js +10 -12
  156. package/dist/Skola24/txt/from/schedules.js.map +1 -1
  157. package/dist/Skola24/txt/from/util.js.map +1 -1
  158. package/dist/Skola24/txt/index.d.ts +2 -1
  159. package/dist/Skola24/txt/to/index.d.ts +2 -1
  160. package/dist/Skola24/txt/to/schedules.js +5 -12
  161. package/dist/Skola24/txt/to/schedules.js.map +1 -1
  162. package/dist/common/constants.js.map +1 -1
  163. package/dist/common/functions.js +46 -10
  164. package/dist/common/functions.js.map +1 -1
  165. package/dist/common/get-date.js.map +1 -1
  166. package/dist/common/make-chainable/index.js.map +1 -1
  167. package/dist/common/types.d.ts +3 -6
  168. package/dist/core/from/configurations.js.map +1 -1
  169. package/dist/core/from/courses.js.map +1 -1
  170. package/dist/core/from/events.js +1 -1
  171. package/dist/core/from/events.js.map +1 -1
  172. package/dist/core/from/exceptions.js.map +1 -1
  173. package/dist/core/from/groups.js.map +1 -1
  174. package/dist/core/from/index.js +9 -6
  175. package/dist/core/from/index.js.map +1 -1
  176. package/dist/core/from/locations.js.map +1 -1
  177. package/dist/core/from/locked-times.js.map +1 -1
  178. package/dist/core/from/overlap-groups.js.map +1 -1
  179. package/dist/core/from/periods.js.map +1 -1
  180. package/dist/core/from/persons.js.map +1 -1
  181. package/dist/core/from/root-intervals.js.map +1 -1
  182. package/dist/core/from/schedules.js.map +1 -1
  183. package/dist/core/from/syllabuses.js.map +1 -1
  184. package/dist/core/from/teachers.js.map +1 -1
  185. package/dist/core/index.d.ts +24 -1
  186. package/dist/core/index.js +4 -0
  187. package/dist/core/index.js.map +1 -1
  188. package/dist/core/interfaces/index.d.ts +23 -0
  189. package/dist/core/interfaces/index.js +6 -0
  190. package/dist/core/interfaces/other/companies.d.ts +132 -0
  191. package/dist/core/interfaces/other/companies.js +9 -0
  192. package/dist/core/interfaces/other/companies.js.map +1 -0
  193. package/dist/core/interfaces/other/etc.d.ts +19 -0
  194. package/dist/core/interfaces/other/index.d.ts +6 -0
  195. package/dist/core/interfaces/other/integrations.d.ts +17 -0
  196. package/dist/core/interfaces/other/operations.d.ts +36 -0
  197. package/dist/core/interfaces/other/policies.d.ts +31 -0
  198. package/dist/core/interfaces/other/sync-logs.d.ts +21 -0
  199. package/dist/core/interfaces/other/users.d.ts +35 -0
  200. package/dist/core/interfaces/vertices/companies.d.ts +8 -0
  201. package/dist/core/interfaces/vertices/configurations.d.ts +58 -0
  202. package/dist/core/interfaces/vertices/courses.d.ts +68 -0
  203. package/dist/core/{types → interfaces/vertices}/division-settings.d.ts +31 -29
  204. package/dist/core/interfaces/vertices/divisions.d.ts +31 -0
  205. package/dist/core/interfaces/vertices/events.d.ts +100 -0
  206. package/dist/core/interfaces/vertices/exceptions.d.ts +74 -0
  207. package/dist/core/interfaces/vertices/generations.d.ts +23 -0
  208. package/dist/core/interfaces/vertices/groups.d.ts +53 -0
  209. package/dist/core/interfaces/vertices/index.d.ts +209 -0
  210. package/dist/core/interfaces/vertices/index.js +3 -0
  211. package/dist/core/interfaces/vertices/locations.d.ts +22 -0
  212. package/dist/core/interfaces/vertices/locked-times.d.ts +37 -0
  213. package/dist/core/interfaces/vertices/overlap-groups.d.ts +17 -0
  214. package/dist/core/interfaces/vertices/periods.d.ts +15 -0
  215. package/dist/core/interfaces/vertices/persons.d.ts +32 -0
  216. package/dist/core/interfaces/vertices/properties/belongs-to.d.ts +11 -0
  217. package/dist/core/interfaces/vertices/properties/coalesced.d.ts +8 -0
  218. package/dist/core/interfaces/vertices/properties/days.d.ts +9 -0
  219. package/dist/core/interfaces/vertices/properties/index.d.ts +15 -0
  220. package/dist/core/interfaces/vertices/properties/intervals.d.ts +10 -0
  221. package/dist/core/{types/common → interfaces/vertices/properties}/maximum-schedule-span.d.ts +1 -1
  222. package/dist/core/interfaces/vertices/properties/min-break-length.d.ts +5 -0
  223. package/dist/core/{types/common/planned-schedule-duration.d.ts → interfaces/vertices/properties/planned-scheduled-duration.d.ts} +2 -2
  224. package/dist/core/interfaces/vertices/properties/species.d.ts +9 -0
  225. package/dist/core/interfaces/vertices/properties/tags.d.ts +9 -0
  226. package/dist/core/interfaces/vertices/properties/week.d.ts +22 -0
  227. package/dist/core/interfaces/vertices/properties/week.js +6 -0
  228. package/dist/core/interfaces/vertices/properties/week.js.map +1 -0
  229. package/dist/core/interfaces/vertices/root-intervals.d.ts +14 -0
  230. package/dist/core/interfaces/vertices/syllabuses.d.ts +18 -0
  231. package/dist/core/interfaces/vertices/teachers.d.ts +43 -0
  232. package/dist/core/interfaces/vertices/users.d.ts +8 -0
  233. package/dist/core/interfaces/vertices/util/common.d.ts +28 -0
  234. package/dist/core/interfaces/vertices/util/custom-vertex-export/index.d.ts +31 -0
  235. package/dist/core/interfaces/vertices/util/custom-vertex-export/util.d.ts +51 -0
  236. package/dist/core/interfaces/vertices/util/deep-vertex-export/index.d.ts +64 -0
  237. package/dist/core/interfaces/vertices/util/edges.d.ts +105 -0
  238. package/dist/core/interfaces/vertices/util/index.d.ts +5 -0
  239. package/dist/core/interfaces/vertices/util/keys-of.d.ts +27 -0
  240. package/dist/core/interfaces/vertices/util/serialized-vertex-export.d.ts +12 -0
  241. package/dist/core/interfaces/vertices/util/util.d.ts +76 -0
  242. package/dist/core/interfaces/vertices/util/vertex-query/index.d.ts +44 -0
  243. package/dist/core/interfaces/vertices/util/vertex-query/util.d.ts +13 -0
  244. package/dist/core/interfaces/vertices/util/vertex.d.ts +70 -0
  245. package/dist/core/interfaces/vertices/vertex-query.d.ts +102 -0
  246. package/dist/core/interfaces/vertices/vertex-query.js +94 -0
  247. package/dist/core/interfaces/vertices/vertex-query.js.map +1 -0
  248. package/dist/core/to/configurations.js +2 -3
  249. package/dist/core/to/configurations.js.map +1 -1
  250. package/dist/core/to/courses.js +2 -3
  251. package/dist/core/to/courses.js.map +1 -1
  252. package/dist/core/to/division.js.map +1 -1
  253. package/dist/core/to/events.js +2 -3
  254. package/dist/core/to/events.js.map +1 -1
  255. package/dist/core/to/exceptions.js +4 -4
  256. package/dist/core/to/exceptions.js.map +1 -1
  257. package/dist/core/to/groups.js +2 -3
  258. package/dist/core/to/groups.js.map +1 -1
  259. package/dist/core/to/locations.js +2 -3
  260. package/dist/core/to/locations.js.map +1 -1
  261. package/dist/core/to/locked-times.js +2 -3
  262. package/dist/core/to/locked-times.js.map +1 -1
  263. package/dist/core/to/overlap-groups.js +2 -3
  264. package/dist/core/to/overlap-groups.js.map +1 -1
  265. package/dist/core/to/periods.js +2 -3
  266. package/dist/core/to/periods.js.map +1 -1
  267. package/dist/core/to/persons.js +3 -9
  268. package/dist/core/to/persons.js.map +1 -1
  269. package/dist/core/to/root-intervals.js +2 -3
  270. package/dist/core/to/root-intervals.js.map +1 -1
  271. package/dist/core/to/schedules.d.ts +17 -18
  272. package/dist/core/to/schedules.js.map +1 -1
  273. package/dist/core/to/settings.js +2 -3
  274. package/dist/core/to/settings.js.map +1 -1
  275. package/dist/core/to/syllabuses.js +2 -3
  276. package/dist/core/to/syllabuses.js.map +1 -1
  277. package/dist/core/to/teachers.js +4 -4
  278. package/dist/core/to/teachers.js.map +1 -1
  279. package/dist/core/to/util.d.ts +4 -8
  280. package/dist/core/to/util.js +7 -5
  281. package/dist/core/to/util.js.map +1 -1
  282. package/dist/core/types/common/index.d.ts +4 -41
  283. package/dist/core/types/index.d.ts +108 -112
  284. package/dist/core/util.js +4 -5
  285. package/dist/core/util.js.map +1 -1
  286. package/dist/identify/constants/index.d.ts +1 -1
  287. package/dist/identify/constants/index.js.map +1 -1
  288. package/dist/identify/index.js +1 -2
  289. package/dist/identify/index.js.map +1 -1
  290. package/dist/index.d.ts +23 -1
  291. package/dist/index.js +4 -1
  292. package/dist/sdui/from/classes.js.map +1 -1
  293. package/dist/sdui/from/courses.js.map +1 -1
  294. package/dist/sdui/from/holidays.js.map +1 -1
  295. package/dist/sdui/from/index.js.map +1 -1
  296. package/dist/sdui/from/lessons.js +4 -0
  297. package/dist/sdui/from/lessons.js.map +1 -1
  298. package/dist/sdui/from/rooms.js.map +1 -1
  299. package/dist/sdui/from/schedules.d.ts +10 -8
  300. package/dist/sdui/from/schedules.js.map +1 -1
  301. package/dist/sdui/from/school-years.js +0 -1
  302. package/dist/sdui/from/school-years.js.map +1 -1
  303. package/dist/sdui/from/substitution-plans.js.map +1 -1
  304. package/dist/sdui/from/teachers.js.map +1 -1
  305. package/dist/sdui/index.d.ts +1 -1
  306. package/dist/sdui/to/classes.js.map +1 -1
  307. package/dist/sdui/to/courses.js.map +1 -1
  308. package/dist/sdui/to/holidays.js.map +1 -1
  309. package/dist/sdui/to/hours.js.map +1 -1
  310. package/dist/sdui/to/index.d.ts +12 -10
  311. package/dist/sdui/to/lessons.js.map +1 -1
  312. package/dist/sdui/to/rooms.js.map +1 -1
  313. package/dist/sdui/to/schedules.js.map +1 -1
  314. package/dist/sdui/to/school-years.js.map +1 -1
  315. package/dist/sdui/to/substitution-plans.js +3 -6
  316. package/dist/sdui/to/substitution-plans.js.map +1 -1
  317. package/dist/sdui/to/teachers.js.map +1 -1
  318. package/dist/vKlass/from/index.js.map +1 -1
  319. package/dist/vKlass/from/schedule.d.ts +4 -3
  320. package/dist/vKlass/from/schedule.js +2 -2
  321. package/dist/vKlass/from/schedule.js.map +1 -1
  322. package/dist/vKlass/to/schedules.d.ts +4 -4
  323. package/dist/vKlass/to/schedules.js +6 -17
  324. package/dist/vKlass/to/schedules.js.map +1 -1
  325. package/package.json +24 -22
  326. package/dist/core/types/areas.d.ts +0 -10
  327. package/dist/core/types/common/break-lengths.d.ts +0 -5
  328. package/dist/core/types/common/days.d.ts +0 -8
  329. package/dist/core/types/common/intervals.d.ts +0 -20
  330. package/dist/core/types/common/tag.d.ts +0 -9
  331. package/dist/core/types/configurations.d.ts +0 -31
  332. package/dist/core/types/courses.d.ts +0 -60
  333. package/dist/core/types/divisions.d.ts +0 -24
  334. package/dist/core/types/events.d.ts +0 -56
  335. package/dist/core/types/exceptions.d.ts +0 -35
  336. package/dist/core/types/groups.d.ts +0 -44
  337. package/dist/core/types/locations.d.ts +0 -27
  338. package/dist/core/types/locked-times.d.ts +0 -33
  339. package/dist/core/types/overlap-groups.d.ts +0 -14
  340. package/dist/core/types/periods.d.ts +0 -14
  341. package/dist/core/types/persons.d.ts +0 -38
  342. package/dist/core/types/root-intervals.d.ts +0 -13
  343. package/dist/core/types/schedules.d.ts +0 -44
  344. package/dist/core/types/syllabus.d.ts +0 -18
  345. package/dist/core/types/teachers.d.ts +0 -44
  346. package/dist/core/vertex-mapping.d.ts +0 -69
@@ -0,0 +1,209 @@
1
+ import { Collection, Vertex } from "./util/vertex.js";
2
+ import { IdKey, InternalIdKey } from "../../types/common/index.js";
3
+ import { DeepVertexExport, DeepVertexExportOmitPrivateId, MixedVertexExport, MixedWithOptionalIdVertexExport } from "./util/deep-vertex-export/index.js";
4
+ import { SerializedVertexExport } from "./util/serialized-vertex-export.js";
5
+ import "./util/index.js";
6
+ import { PeriodVertex } from "./periods.js";
7
+ import { RootIntervalVertex } from "./root-intervals.js";
8
+ import { CalendarException, DivisionSettingsVertex } from "./division-settings.js";
9
+ import { GenerationVertex } from "./generations.js";
10
+ import { DivisionVertex, StepGuideProgress } from "./divisions.js";
11
+ import { PersonVertex } from "./persons.js";
12
+ import { LocationVertex } from "./locations.js";
13
+ import { CalendarEventVertex, EventVertex, ScheduleEventVertex } from "./events.js";
14
+ import { OverlapGroupVertex } from "./overlap-groups.js";
15
+ import { SyllabusVertex } from "./syllabuses.js";
16
+ import { CourseVertex } from "./courses.js";
17
+ import { CalendarExceptionAction, ExceptionStatus, ExceptionVertex } from "./exceptions.js";
18
+ import { GroupVertex } from "./groups.js";
19
+ import { LockedTimeType, LockedTimeVertex } from "./locked-times.js";
20
+ import { TeacherVertex } from "./teachers.js";
21
+ import { ConfigurationFilterVertex, ConfigurationRuleVertex, ConfigurationTemplateVertex, ConfigurationVertex } from "./configurations.js";
22
+ import { Infer, VertexQuery, createVertexQuery } from "./vertex-query.js";
23
+
24
+ //#region src/core/interfaces/vertices/index.d.ts
25
+ type Is<C extends Collection> = Pick<Vertex<C>, 'is'>;
26
+ type ScheduleOf<TDivision extends Is<'divisions'>, TSettings extends Is<'settings'>, TException extends Is<'exceptions'>, TGroup extends Is<'groups'>, TTeacher extends Is<'teachers'>, TLocation extends Is<'locations'>, TCourse extends Is<'courses'>, TEvent extends Is<'events'>, TOverlapGroup extends Is<'overlapGroups'>, TPeriod extends Is<'periods'>, TPerson extends Is<'persons'>, TLockedTime extends Is<'lockedTimes'>, TRootInterval extends Is<'rootIntervals'>, TSyllabus extends Is<'syllabuses'>, TConfiguration extends Is<'configurations'>> = {
27
+ divisions: TDivision;
28
+ settings: TSettings;
29
+ exceptions: TException[];
30
+ groups: TGroup[];
31
+ teachers: TTeacher[];
32
+ locations: TLocation[];
33
+ courses: TCourse[];
34
+ events: TEvent[];
35
+ overlapGroups: TOverlapGroup[];
36
+ periods: TPeriod[];
37
+ persons: TPerson[];
38
+ lockedTimes: TLockedTime[];
39
+ rootIntervals: TRootInterval[];
40
+ syllabuses: TSyllabus[];
41
+ configurations: TConfiguration[];
42
+ };
43
+ declare namespace Serialized {
44
+ type Teacher = SerializedVertexExport<TeacherVertex>;
45
+ type Exception = SerializedVertexExport<ExceptionVertex>;
46
+ type Event = SerializedVertexExport<EventVertex>;
47
+ type ScheduleEvent = SerializedVertexExport<ScheduleEventVertex>;
48
+ type CalendarEvent = SerializedVertexExport<CalendarEventVertex>;
49
+ type Course = SerializedVertexExport<CourseVertex>;
50
+ type Settings = SerializedVertexExport<DivisionSettingsVertex>;
51
+ type Division = SerializedVertexExport<DivisionVertex>;
52
+ type Generation = SerializedVertexExport<GenerationVertex>;
53
+ type Group = SerializedVertexExport<GroupVertex>;
54
+ type Location = SerializedVertexExport<LocationVertex>;
55
+ type LockedTime = SerializedVertexExport<LockedTimeVertex>;
56
+ type OverlapGroup = SerializedVertexExport<OverlapGroupVertex>;
57
+ type Period = SerializedVertexExport<PeriodVertex>;
58
+ type Person = SerializedVertexExport<PersonVertex>;
59
+ type RootInterval = SerializedVertexExport<RootIntervalVertex>;
60
+ type Syllabus = SerializedVertexExport<SyllabusVertex>;
61
+ namespace Configuration {
62
+ type Base = SerializedVertexExport<ConfigurationVertex>;
63
+ type Filter = SerializedVertexExport<ConfigurationFilterVertex>;
64
+ type Template = SerializedVertexExport<ConfigurationTemplateVertex>;
65
+ type Rule = SerializedVertexExport<ConfigurationRuleVertex>;
66
+ type Mixed = Filter | Template | Rule;
67
+ }
68
+ type Schedule = ScheduleOf<Division, Settings, Exception, Group, Teacher, Location, Course, Event, OverlapGroup, Period, Person, LockedTime, RootInterval, Syllabus, Configuration.Base>;
69
+ }
70
+ declare namespace Deep {
71
+ type Teacher = DeepVertexExport<TeacherVertex>;
72
+ type Exception = DeepVertexExport<ExceptionVertex>;
73
+ type Event = DeepVertexExport<EventVertex>;
74
+ type ScheduleEvent = DeepVertexExport<ScheduleEventVertex>;
75
+ type CalendarEvent = DeepVertexExport<CalendarEventVertex>;
76
+ type Course = DeepVertexExport<CourseVertex>;
77
+ type Settings = DeepVertexExport<DivisionSettingsVertex>;
78
+ type Division = DeepVertexExport<DivisionVertex>;
79
+ type Generation = DeepVertexExport<GenerationVertex>;
80
+ type Group = DeepVertexExport<GroupVertex>;
81
+ type Location = DeepVertexExport<LocationVertex>;
82
+ type LockedTime = DeepVertexExport<LockedTimeVertex>;
83
+ type OverlapGroup = DeepVertexExport<OverlapGroupVertex>;
84
+ type Period = DeepVertexExport<PeriodVertex>;
85
+ type Person = DeepVertexExport<PersonVertex>;
86
+ type RootInterval = DeepVertexExport<RootIntervalVertex>;
87
+ type Syllabus = DeepVertexExport<SyllabusVertex>;
88
+ namespace Configuration {
89
+ type Base = DeepVertexExport<ConfigurationVertex>;
90
+ type Filter = DeepVertexExport<ConfigurationFilterVertex>;
91
+ type Template = DeepVertexExport<ConfigurationTemplateVertex>;
92
+ type Rule = DeepVertexExport<ConfigurationRuleVertex>;
93
+ type Mixed = Filter | Template | Rule;
94
+ }
95
+ type Schedule = ScheduleOf<Division, Settings, Exception, Group, Teacher, Location, Course, Event, OverlapGroup, Period, Person, LockedTime, RootInterval, Syllabus, Configuration.Base>;
96
+ }
97
+ declare namespace DeepWithoutPrivateId {
98
+ type Teacher = DeepVertexExportOmitPrivateId<TeacherVertex>;
99
+ type Exception = DeepVertexExportOmitPrivateId<ExceptionVertex>;
100
+ type Event = DeepVertexExportOmitPrivateId<EventVertex>;
101
+ type ScheduleEvent = DeepVertexExportOmitPrivateId<ScheduleEventVertex>;
102
+ type CalendarEvent = DeepVertexExportOmitPrivateId<CalendarEventVertex>;
103
+ type Course = DeepVertexExportOmitPrivateId<CourseVertex>;
104
+ type Settings = DeepVertexExportOmitPrivateId<DivisionSettingsVertex>;
105
+ type Division = DeepVertexExportOmitPrivateId<DivisionVertex>;
106
+ type Generation = DeepVertexExportOmitPrivateId<GenerationVertex>;
107
+ type Group = DeepVertexExportOmitPrivateId<GroupVertex>;
108
+ type Location = DeepVertexExportOmitPrivateId<LocationVertex>;
109
+ type LockedTime = DeepVertexExportOmitPrivateId<LockedTimeVertex>;
110
+ type OverlapGroup = DeepVertexExportOmitPrivateId<OverlapGroupVertex>;
111
+ type Period = DeepVertexExportOmitPrivateId<PeriodVertex>;
112
+ type Person = DeepVertexExportOmitPrivateId<PersonVertex>;
113
+ type RootInterval = DeepVertexExportOmitPrivateId<RootIntervalVertex>;
114
+ type Syllabus = DeepVertexExportOmitPrivateId<SyllabusVertex>;
115
+ namespace Configuration {
116
+ type Base = DeepVertexExport<ConfigurationVertex>;
117
+ type Filter = DeepVertexExport<ConfigurationFilterVertex>;
118
+ type Template = DeepVertexExport<ConfigurationTemplateVertex>;
119
+ type Rule = DeepVertexExport<ConfigurationRuleVertex>;
120
+ type Mixed = Filter | Template | Rule;
121
+ }
122
+ type Schedule = ScheduleOf<Division, Settings, Exception, Group, Teacher, Location, Course, Event, OverlapGroup, Period, Person, LockedTime, RootInterval, Syllabus, Configuration.Base>;
123
+ }
124
+ declare namespace Mixed {
125
+ type Teacher = MixedVertexExport<TeacherVertex>;
126
+ type Exception = MixedVertexExport<ExceptionVertex>;
127
+ type Event = MixedVertexExport<EventVertex>;
128
+ type ScheduleEvent = MixedVertexExport<ScheduleEventVertex>;
129
+ type CalendarEvent = MixedVertexExport<CalendarEventVertex>;
130
+ type Course = MixedVertexExport<CourseVertex>;
131
+ type Settings = MixedVertexExport<DivisionSettingsVertex>;
132
+ type Division = MixedVertexExport<DivisionVertex>;
133
+ type Generation = MixedVertexExport<GenerationVertex>;
134
+ type Group = MixedVertexExport<GroupVertex>;
135
+ type Location = MixedVertexExport<LocationVertex>;
136
+ type LockedTime = MixedVertexExport<LockedTimeVertex>;
137
+ type OverlapGroup = MixedVertexExport<OverlapGroupVertex>;
138
+ type Period = MixedVertexExport<PeriodVertex>;
139
+ type Person = MixedVertexExport<PersonVertex>;
140
+ type RootInterval = MixedVertexExport<RootIntervalVertex>;
141
+ type Syllabus = MixedVertexExport<SyllabusVertex>;
142
+ namespace Configuration {
143
+ type Base = MixedVertexExport<ConfigurationVertex>;
144
+ type Filter = MixedVertexExport<ConfigurationFilterVertex>;
145
+ type Template = MixedVertexExport<ConfigurationTemplateVertex>;
146
+ type Rule = MixedVertexExport<ConfigurationRuleVertex>;
147
+ type Mixed = Filter | Template | Rule;
148
+ }
149
+ type Schedule = ScheduleOf<Division, Settings, Exception, Group, Teacher, Location, Course, Event, OverlapGroup, Period, Person, LockedTime, RootInterval, Syllabus, Configuration.Base>;
150
+ }
151
+ declare namespace MixedWithOptionalId {
152
+ type Teacher = MixedWithOptionalIdVertexExport<TeacherVertex>;
153
+ type Exception = MixedWithOptionalIdVertexExport<ExceptionVertex>;
154
+ type Event = MixedWithOptionalIdVertexExport<EventVertex>;
155
+ type ScheduleEvent = MixedWithOptionalIdVertexExport<ScheduleEventVertex>;
156
+ type CalendarEvent = MixedWithOptionalIdVertexExport<CalendarEventVertex>;
157
+ type Course = MixedWithOptionalIdVertexExport<CourseVertex>;
158
+ type Settings = MixedWithOptionalIdVertexExport<DivisionSettingsVertex>;
159
+ type Division = MixedWithOptionalIdVertexExport<DivisionVertex>;
160
+ type Generation = MixedWithOptionalIdVertexExport<GenerationVertex>;
161
+ type Group = MixedWithOptionalIdVertexExport<GroupVertex>;
162
+ type Location = MixedWithOptionalIdVertexExport<LocationVertex>;
163
+ type LockedTime = MixedWithOptionalIdVertexExport<LockedTimeVertex>;
164
+ type OverlapGroup = MixedWithOptionalIdVertexExport<OverlapGroupVertex>;
165
+ type Period = MixedWithOptionalIdVertexExport<PeriodVertex>;
166
+ type Person = MixedWithOptionalIdVertexExport<PersonVertex>;
167
+ type RootInterval = MixedWithOptionalIdVertexExport<RootIntervalVertex>;
168
+ type Syllabus = MixedWithOptionalIdVertexExport<SyllabusVertex>;
169
+ namespace Configuration {
170
+ type Base = MixedWithOptionalIdVertexExport<ConfigurationVertex>;
171
+ type Filter = MixedWithOptionalIdVertexExport<ConfigurationFilterVertex>;
172
+ type Template = MixedWithOptionalIdVertexExport<ConfigurationTemplateVertex>;
173
+ type Rule = MixedWithOptionalIdVertexExport<ConfigurationRuleVertex>;
174
+ type Mixed = Filter | Template | Rule;
175
+ }
176
+ type Schedule = ScheduleOf<Division, Settings, Exception, Group, Teacher, Location, Course, Event, OverlapGroup, Period, Person, LockedTime, RootInterval, Syllabus, Configuration.Base>;
177
+ }
178
+ declare namespace SerializedWithOptionalId {
179
+ type MakeIdsOptional<T extends Pick<Vertex<Collection>, IdKey | InternalIdKey>> = Omit<T, IdKey | InternalIdKey> & Partial<Pick<T, IdKey | InternalIdKey>>;
180
+ export type Teacher = MakeIdsOptional<Serialized.Teacher>;
181
+ export type Exception = MakeIdsOptional<Serialized.Exception>;
182
+ export type Event = MakeIdsOptional<Serialized.Event>;
183
+ export type ScheduleEvent = MakeIdsOptional<Serialized.ScheduleEvent>;
184
+ export type CalendarEvent = MakeIdsOptional<Serialized.CalendarEvent>;
185
+ export type Course = MakeIdsOptional<Serialized.Course>;
186
+ export type Settings = MakeIdsOptional<Serialized.Settings>;
187
+ export type Division = MakeIdsOptional<Serialized.Division>;
188
+ export type Generation = MakeIdsOptional<Serialized.Generation>;
189
+ export type Group = MakeIdsOptional<Serialized.Group>;
190
+ export type Location = MakeIdsOptional<Serialized.Location>;
191
+ export type LockedTime = MakeIdsOptional<Serialized.LockedTime>;
192
+ export type OverlapGroup = MakeIdsOptional<Serialized.OverlapGroup>;
193
+ export type Period = MakeIdsOptional<Serialized.Period>;
194
+ export type Person = MakeIdsOptional<Serialized.Person>;
195
+ export type RootInterval = MakeIdsOptional<Serialized.RootInterval>;
196
+ export type Syllabus = MakeIdsOptional<Serialized.Syllabus>;
197
+ export namespace Configuration {
198
+ type Base = MakeIdsOptional<Serialized.Configuration.Base>;
199
+ type Filter = MakeIdsOptional<Serialized.Configuration.Filter>;
200
+ type Template = MakeIdsOptional<Serialized.Configuration.Template>;
201
+ type Rule = MakeIdsOptional<Serialized.Configuration.Rule>;
202
+ type Mixed = Filter | Template | Rule;
203
+ }
204
+ export type Schedule = ScheduleOf<Division, Settings, Exception, Group, Teacher, Location, Course, Event, OverlapGroup, Period, Person, LockedTime, RootInterval, Syllabus, Configuration.Base>;
205
+ export {};
206
+ }
207
+ //#endregion
208
+ export { Deep, DeepWithoutPrivateId, Mixed, MixedWithOptionalId, Serialized, SerializedWithOptionalId };
209
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,3 @@
1
+ import { createVertexQuery } from "./vertex-query.js";
2
+
3
+ export { };
@@ -0,0 +1,22 @@
1
+ import { VertexFactory } from "./util/vertex.js";
2
+ import { EdgeWrapper, Plain } from "./util/edges.js";
3
+ import "./util/index.js";
4
+ import { Day } from "./properties/days.js";
5
+ import { Tag } from "./properties/tags.js";
6
+ import { BelongsTo } from "./properties/belongs-to.js";
7
+ import { ExceptionVertex } from "./exceptions.js";
8
+ import { LockedTimeVertex } from "./locked-times.js";
9
+
10
+ //#region src/core/interfaces/vertices/locations.d.ts
11
+ type LocationVertex = VertexFactory<'locations', BelongsTo & {
12
+ tags?: Tag[];
13
+ minBreakLength?: number;
14
+ days?: Day[];
15
+ maximumCapacity?: number;
16
+ lockedTimes?: EdgeWrapper<'array', Plain.Edge<LockedTimeVertex>>;
17
+ lunch?: EdgeWrapper<'array', Plain.Edge<LockedTimeVertex>>;
18
+ exceptions?: EdgeWrapper<'array', Plain.Edge<ExceptionVertex>>;
19
+ }>;
20
+ //#endregion
21
+ export { LocationVertex };
22
+ //# sourceMappingURL=locations.d.ts.map
@@ -0,0 +1,37 @@
1
+ import { VertexFactory } from "./util/vertex.js";
2
+ import { Coalesced, EdgeWrapper } from "./util/edges.js";
3
+ import "./util/index.js";
4
+ import { Interval } from "./properties/intervals.js";
5
+ import { Tag } from "./properties/tags.js";
6
+ import "./properties/index.js";
7
+ import { BelongsTo } from "./properties/belongs-to.js";
8
+ import { LocationVertex } from "./locations.js";
9
+ import { EventVertex } from "./events.js";
10
+ import { CourseVertex } from "./courses.js";
11
+ import { GroupVertex } from "./groups.js";
12
+ import { TeacherVertex } from "./teachers.js";
13
+ import { Moment } from "moment";
14
+
15
+ //#region src/core/interfaces/vertices/locked-times.d.ts
16
+ /**
17
+ * TODO: remove the `ANY` type
18
+ */
19
+ type LockedTimeType = 'ANY' | 'LUNCH' | 'COMPLEMENTARY_TIME';
20
+ type LockedTimeVertex = VertexFactory<'lockedTimes', BelongsTo & {
21
+ start?: Moment | string;
22
+ end?: Moment | string;
23
+ visible?: boolean;
24
+ parked?: boolean;
25
+ duration?: number;
26
+ durationVariance?: number;
27
+ type?: LockedTimeType;
28
+ /**
29
+ * @note an empty array is the same as undefined
30
+ */
31
+ intervals?: Interval[];
32
+ tags?: Tag[];
33
+ coalesced?: EdgeWrapper<'array', Coalesced.Edge<GroupVertex> | Coalesced.Edge<CourseVertex> | Coalesced.Edge<TeacherVertex> | Coalesced.Edge<LocationVertex> | Coalesced.Edge<EventVertex>>;
34
+ }>;
35
+ //#endregion
36
+ export { LockedTimeType, LockedTimeVertex };
37
+ //# sourceMappingURL=locked-times.d.ts.map
@@ -0,0 +1,17 @@
1
+ import { VertexFactory } from "./util/vertex.js";
2
+ import { Coalesced, EdgeWrapper } from "./util/edges.js";
3
+ import "./util/index.js";
4
+ import { BelongsTo } from "./properties/belongs-to.js";
5
+ import { EventVertex } from "./events.js";
6
+ import { CourseVertex } from "./courses.js";
7
+
8
+ //#region src/core/interfaces/vertices/overlap-groups.d.ts
9
+ type OverlapGroupVertex = VertexFactory<'overlapGroups', BelongsTo & {
10
+ coalesced?: EdgeWrapper<'array', Coalesced.Edge<CourseVertex>>;
11
+ species?: EdgeWrapper<'array', Coalesced.Edge<EventVertex, object, {
12
+ id: string;
13
+ }>>;
14
+ }>;
15
+ //#endregion
16
+ export { OverlapGroupVertex };
17
+ //# sourceMappingURL=overlap-groups.d.ts.map
@@ -0,0 +1,15 @@
1
+ import { VertexFactory } from "./util/vertex.js";
2
+ import "./util/index.js";
3
+ import { Interval } from "./properties/intervals.js";
4
+ import "./properties/index.js";
5
+ import { BelongsTo } from "./properties/belongs-to.js";
6
+ import { Moment } from "moment";
7
+
8
+ //#region src/core/interfaces/vertices/periods.d.ts
9
+ type PeriodVertex = VertexFactory<'periods', BelongsTo & {
10
+ ranges: Interval<string | Moment | Date>[];
11
+ displayIndex?: number;
12
+ }>;
13
+ //#endregion
14
+ export { PeriodVertex };
15
+ //# sourceMappingURL=periods.d.ts.map
@@ -0,0 +1,32 @@
1
+ import { VertexFactory } from "./util/vertex.js";
2
+ import { EdgeWrapper, Plain } from "./util/edges.js";
3
+ import "./util/index.js";
4
+ import { Tag } from "./properties/tags.js";
5
+ import { BelongsTo } from "./properties/belongs-to.js";
6
+ import { GroupVertex } from "./groups.js";
7
+
8
+ //#region src/core/interfaces/vertices/persons.d.ts
9
+ type PersonVertex = VertexFactory<'persons', BelongsTo & {
10
+ lastName?: string;
11
+ firstName?: string;
12
+ birthDate?: Date;
13
+ sex?: 'Man' | 'Woman';
14
+ type?: 'Student' | 'Teacher' | 'Other';
15
+ tags?: Tag[];
16
+ SSN?: {
17
+ value: string;
18
+ nationality?: string;
19
+ };
20
+ emails?: {
21
+ value: string;
22
+ type?: string;
23
+ }[];
24
+ phoneNumbers?: {
25
+ value: string;
26
+ type: string;
27
+ }[];
28
+ group?: EdgeWrapper<'single', Plain.Edge<GroupVertex>>;
29
+ }>;
30
+ //#endregion
31
+ export { PersonVertex };
32
+ //# sourceMappingURL=persons.d.ts.map
@@ -0,0 +1,11 @@
1
+ import { EdgeWrapper, Plain } from "../util/edges.js";
2
+ import "../util/index.js";
3
+ import { DivisionVertex } from "../divisions.js";
4
+
5
+ //#region src/core/interfaces/vertices/properties/belongs-to.d.ts
6
+ type BelongsTo = {
7
+ belongsTo?: EdgeWrapper<'single', Plain.Edge<DivisionVertex>>;
8
+ };
9
+ //#endregion
10
+ export { BelongsTo };
11
+ //# sourceMappingURL=belongs-to.d.ts.map
@@ -0,0 +1,8 @@
1
+ import { Coalesced } from "../util/edges.js";
2
+ import "../util/index.js";
3
+
4
+ //#region src/core/interfaces/vertices/properties/coalesced.d.ts
5
+ type Coalesced$1<T, M = string> = Coalesced.Util.Value<T, M>;
6
+ //#endregion
7
+ export { Coalesced$1 as Coalesced };
8
+ //# sourceMappingURL=coalesced.d.ts.map
@@ -0,0 +1,9 @@
1
+ //#region src/core/interfaces/vertices/properties/days.d.ts
2
+ interface Day {
3
+ is?: 'day';
4
+ day: number;
5
+ rank?: number;
6
+ }
7
+ //#endregion
8
+ export { Day };
9
+ //# sourceMappingURL=days.d.ts.map
@@ -0,0 +1,15 @@
1
+ import { Coalesced } from "./coalesced.js";
2
+ import { Species } from "./species.js";
3
+ import { AllWeeks, Week, allWeeks } from "./week.js";
4
+ import { Day } from "./days.js";
5
+ import { Interval } from "./intervals.js";
6
+ import { Tag, TagType } from "./tags.js";
7
+ import { MaximumScheduleSpan } from "./maximum-schedule-span.js";
8
+ import { PlannedScheduledDuration } from "./planned-scheduled-duration.js";
9
+ import { MinBreakLength } from "./min-break-length.js";
10
+
11
+ //#region src/core/interfaces/vertices/properties/index.d.ts
12
+ type PublicId = string;
13
+ //#endregion
14
+ export { PublicId };
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,10 @@
1
+ import { DateType } from "../../other/etc.js";
2
+
3
+ //#region src/core/interfaces/vertices/properties/intervals.d.ts
4
+ type Interval<T extends DateType = DateType> = {
5
+ start: T;
6
+ end: T;
7
+ };
8
+ //#endregion
9
+ export { Interval };
10
+ //# sourceMappingURL=intervals.d.ts.map
@@ -1,4 +1,4 @@
1
- //#region src/core/types/common/maximum-schedule-span.d.ts
1
+ //#region src/core/interfaces/vertices/properties/maximum-schedule-span.d.ts
2
2
  /**
3
3
  * The maximum number of minutes a schedule is allowed to span over a day and week
4
4
  */
@@ -0,0 +1,5 @@
1
+ //#region src/core/interfaces/vertices/properties/min-break-length.d.ts
2
+ type MinBreakLength = number | [number, number] | false;
3
+ //#endregion
4
+ export { MinBreakLength };
5
+ //# sourceMappingURL=min-break-length.d.ts.map
@@ -1,4 +1,4 @@
1
- //#region src/core/types/common/planned-schedule-duration.d.ts
1
+ //#region src/core/interfaces/vertices/properties/planned-scheduled-duration.d.ts
2
2
  /**
3
3
  * The planned/expected total weekly minutes of schedule events assigned to a teacher
4
4
  */
@@ -10,4 +10,4 @@ type PlannedScheduledDuration = {
10
10
  };
11
11
  //#endregion
12
12
  export { PlannedScheduledDuration };
13
- //# sourceMappingURL=planned-schedule-duration.d.ts.map
13
+ //# sourceMappingURL=planned-scheduled-duration.d.ts.map
@@ -0,0 +1,9 @@
1
+ //#region src/core/interfaces/vertices/properties/species.d.ts
2
+ interface Species<T, M = string> {
3
+ to: T;
4
+ toModel: M;
5
+ id: string;
6
+ }
7
+ //#endregion
8
+ export { Species };
9
+ //# sourceMappingURL=species.d.ts.map
@@ -0,0 +1,9 @@
1
+ //#region src/core/interfaces/vertices/properties/tags.d.ts
2
+ type TagType = 'COMPLEMENTARY_TIME' | 'category';
3
+ type Tag = {
4
+ type?: TagType;
5
+ value: string;
6
+ };
7
+ //#endregion
8
+ export { Tag, TagType };
9
+ //# sourceMappingURL=tags.d.ts.map
@@ -0,0 +1,22 @@
1
+ import { Moment } from "moment";
2
+
3
+ //#region src/core/interfaces/vertices/properties/week.d.ts
4
+ type Week = {
5
+ id: string;
6
+ range: {
7
+ start: Moment;
8
+ end: Moment;
9
+ };
10
+ number: number;
11
+ string: string;
12
+ excludedDays: {
13
+ date: string;
14
+ day: number;
15
+ reason?: string;
16
+ }[];
17
+ };
18
+ declare const allWeeks = "all";
19
+ type AllWeeks = typeof allWeeks;
20
+ //#endregion
21
+ export { AllWeeks, Week, allWeeks };
22
+ //# sourceMappingURL=week.d.ts.map
@@ -0,0 +1,6 @@
1
+ //#region src/core/interfaces/vertices/properties/week.ts
2
+ const allWeeks = "all";
3
+
4
+ //#endregion
5
+ export { allWeeks };
6
+ //# sourceMappingURL=week.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"week.js","names":[],"sources":["../../../../../src/core/interfaces/vertices/properties/week.ts"],"sourcesContent":["import type { Moment } from 'moment';\n\nexport type Week = {\n id: string;\n range: { start: Moment; end: Moment };\n number: number;\n string: string;\n excludedDays: { date: string, day: number, reason?: string }[];\n};\n\nexport const allWeeks = 'all';\nexport type AllWeeks = typeof allWeeks;"],"mappings":";AAUA,MAAa,WAAW"}
@@ -0,0 +1,14 @@
1
+ import { VertexFactory } from "./util/vertex.js";
2
+ import "./util/index.js";
3
+ import { Interval } from "./properties/intervals.js";
4
+ import "./properties/index.js";
5
+ import { BelongsTo } from "./properties/belongs-to.js";
6
+ import { Moment } from "moment";
7
+
8
+ //#region src/core/interfaces/vertices/root-intervals.d.ts
9
+ type RootIntervalVertex = VertexFactory<'rootIntervals', BelongsTo & {
10
+ intervals: Interval<string | Moment>[];
11
+ }>;
12
+ //#endregion
13
+ export { RootIntervalVertex };
14
+ //# sourceMappingURL=root-intervals.d.ts.map
@@ -0,0 +1,18 @@
1
+ import { VertexFactory } from "./util/vertex.js";
2
+ import "./util/index.js";
3
+ import { BelongsTo } from "./properties/belongs-to.js";
4
+
5
+ //#region src/core/interfaces/vertices/syllabuses.d.ts
6
+ type SyllabusVertex = VertexFactory<'syllabuses', BelongsTo & {
7
+ schoolType: string;
8
+ subjectCode?: string;
9
+ subjectName: string;
10
+ subjectDesignation?: string;
11
+ courseCode?: string;
12
+ courseName?: string;
13
+ points?: number;
14
+ official: boolean;
15
+ }>;
16
+ //#endregion
17
+ export { SyllabusVertex };
18
+ //# sourceMappingURL=syllabuses.d.ts.map
@@ -0,0 +1,43 @@
1
+ import { VertexFactory } from "./util/vertex.js";
2
+ import { EdgeWrapper, Plain } from "./util/edges.js";
3
+ import "./util/index.js";
4
+ import { Day } from "./properties/days.js";
5
+ import { Interval } from "./properties/intervals.js";
6
+ import { Tag } from "./properties/tags.js";
7
+ import { MaximumScheduleSpan } from "./properties/maximum-schedule-span.js";
8
+ import { PlannedScheduledDuration } from "./properties/planned-scheduled-duration.js";
9
+ import { RootIntervalVertex } from "./root-intervals.js";
10
+ import { BelongsTo } from "./properties/belongs-to.js";
11
+ import { PersonVertex } from "./persons.js";
12
+ import { ExceptionVertex } from "./exceptions.js";
13
+ import { LockedTimeVertex } from "./locked-times.js";
14
+
15
+ //#region src/core/interfaces/vertices/teachers.d.ts
16
+ type TeacherVertex = VertexFactory<'teachers', BelongsTo & {
17
+ tags?: Tag[];
18
+ signature?: string;
19
+ minBreakLength?: number;
20
+ /** @deprecated replaced by defaultMaximumScheduleSpan */
21
+ maxNumWorkingHours?: number | false;
22
+ /** @deprecated replaced by defaultMaximumScheduleSpan */
23
+ maxNumDailyWorkingHours?: number | number[] | false;
24
+ plannedScheduledDuration?: PlannedScheduledDuration;
25
+ maximumScheduleSpan?: MaximumScheduleSpan;
26
+ forbidOverlappingEvents?: boolean;
27
+ disableDayLengthPunishment?: boolean;
28
+ weight?: number;
29
+ /**
30
+ * @note an empty array is the same as undefined
31
+ */
32
+ intervals?: Interval[];
33
+ days?: Day[];
34
+ rootInterval?: EdgeWrapper<'single', Plain.Edge<RootIntervalVertex>>;
35
+ lockedTimes?: EdgeWrapper<'array', Plain.Edge<LockedTimeVertex>>;
36
+ lunch?: EdgeWrapper<'array', Plain.Edge<LockedTimeVertex>>;
37
+ complementaryTimes?: EdgeWrapper<'array', Plain.Edge<LockedTimeVertex>>;
38
+ exceptions?: EdgeWrapper<'array', Plain.Edge<ExceptionVertex>>;
39
+ person?: EdgeWrapper<'single', Plain.Edge<PersonVertex>>;
40
+ }>;
41
+ //#endregion
42
+ export { TeacherVertex };
43
+ //# sourceMappingURL=teachers.d.ts.map
@@ -0,0 +1,8 @@
1
+ import { VertexFactory } from "./util/vertex.js";
2
+ import "./util/index.js";
3
+
4
+ //#region src/core/interfaces/vertices/users.d.ts
5
+ type UserVertex = VertexFactory<'users', object>;
6
+ //#endregion
7
+ export { UserVertex };
8
+ //# sourceMappingURL=users.d.ts.map
@@ -0,0 +1,28 @@
1
+ import { Collection, OmitVertexProperties, PickVertexProperties, Vertex } from "./vertex.js";
2
+ import { EdgeMultiplicity, EdgeWrapper } from "./edges.js";
3
+ import { Tail } from "./util.js";
4
+
5
+ //#region src/core/interfaces/vertices/util/common.d.ts
6
+ type IsAny<T> = 0 extends (1 & T) ? true : false;
7
+ /**
8
+ * Picks all properties of a vertex that are edges to other vertices. (we ignore explicit any types)
9
+ */
10
+ type PickEdges<V extends Vertex<Collection>> = { [K in keyof V as NonNullable<V[K]> extends EdgeWrapper<EdgeMultiplicity, any> ? IsAny<V[K]> extends true ? never : K : never]: V[K] };
11
+ /**
12
+ * Omits all properties of a vertex that are edges to other vertices.
13
+ */
14
+ type OmitEdges<V extends Vertex<Collection>> = PickVertexProperties<V> & OmitVertexProperties<{ [K in keyof V as NonNullable<V[K]> extends EdgeWrapper<EdgeMultiplicity, any> ? never : K]: V[K] }>;
15
+ declare const SELECT_KEY = "select";
16
+ type SelectKey = typeof SELECT_KEY;
17
+ declare const EXPAND_KEY = "expand";
18
+ type ExpandKey = typeof EXPAND_KEY;
19
+ type InvalidEdgeMessage = 'INVALID VERTEX EDGE';
20
+ type RemoveNeverValues<T extends object> = { [K in keyof T as T[K] extends never ? never : K]: T[K] };
21
+ type DepthDecrementMap = [never, 0, 1, 2, 3];
22
+ type SupportedDepths = DepthDecrementMap[number];
23
+ type MaxDepth = Tail<DepthDecrementMap>;
24
+ type MinDepth = Extract<SupportedDepths, 0>;
25
+ type Decrement<T extends SupportedDepths> = DepthDecrementMap[T];
26
+ //#endregion
27
+ export { Decrement, EXPAND_KEY, ExpandKey, InvalidEdgeMessage, MaxDepth, MinDepth, OmitEdges, PickEdges, RemoveNeverValues, SELECT_KEY, SelectKey, SupportedDepths };
28
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1,31 @@
1
+ import { Collection, Vertex } from "../vertex.js";
2
+ import { AvailableLocation, Coalesced, EdgeBase, EdgeWrapper, GroupWithExclude, Plain, Wrapped } from "../edges.js";
3
+ import { ExtractNullish, Prettify, SetMultiplicity } from "../util.js";
4
+ import { ExpandKey, OmitEdges, PickEdges } from "../common.js";
5
+ import { KeysOf } from "../keys-of.js";
6
+ import { VertexQuery } from "../vertex-query/index.js";
7
+ import { ExtractChildKeys, ExtractChildObject, ExtractParentKeys, IntersectExpandSelectPath, Lookup, RelaxedPick } from "./util.js";
8
+
9
+ //#region src/core/interfaces/vertices/util/custom-vertex-export/index.d.ts
10
+ declare namespace HandleEdge {
11
+ type Recursion<V extends Vertex<Collection>, Query> = [Query] extends [never] ? string : Query extends VertexQuery<V> ? CustomVertexExport<V, Query> : never;
12
+ export type Plain<E$1 extends EdgeBase<any, any>, Query> = E$1 extends Plain.Edge<infer V> ? Recursion<V, Query> : never;
13
+ export type Wrapped<E$1 extends EdgeBase<any, any>, Query> = E$1 extends Wrapped.Edge<infer K, infer V extends Vertex<Collection>, infer Extra extends object> ? Wrapped.Util.Value<K, Recursion<V, IntersectExpandSelectPath<Lookup<Query, K>, VertexQuery<V>>>, Extra> : never;
14
+ export type Coalesced<E$1 extends EdgeBase<any, any>, Query> = E$1 extends Coalesced.Edge<infer V, infer O extends object, infer Extra extends object> ? V extends Vertex<Collection> ? Coalesced.Util.Value<Recursion<V, IntersectExpandSelectPath<Lookup<Query, Coalesced.Util.Keys.To>, VertexQuery<V>>>, Coalesced.Util.ToModel<V>, O, Extra> : never : never;
15
+ export type GroupWithExclude<E$1 extends EdgeBase<any, any>, Query> = E$1 extends GroupWithExclude.Edge<infer G extends Vertex<any>, infer P extends Vertex<any>, infer Extra extends object> ? GroupWithExclude.Util.Value<Recursion<G, IntersectExpandSelectPath<Lookup<Query, GroupWithExclude.Util.Keys.To>, VertexQuery<G>>>, Recursion<P, IntersectExpandSelectPath<Lookup<Query, GroupWithExclude.Util.Keys.Exclude>, VertexQuery<P>>>, Extra> : never;
16
+ export type AvailableLocation<E$1 extends EdgeBase<any, any>, Query> = E$1 extends AvailableLocation.Edge<infer L extends Vertex<any>, infer Extra extends object> ? AvailableLocation.Util.Value<Recursion<L, IntersectExpandSelectPath<Lookup<Query, AvailableLocation.Util.Keys.Locations>, VertexQuery<L>>>, Extra> : never;
17
+ export {};
18
+ }
19
+ /**
20
+ * Recursively exports a Vertex type to a plain object structure,
21
+ * selecting and expanding properties and edges according to the provided expand/select path.
22
+ * - Non-edge properties are included based on selection.
23
+ * - Edge properties are exported and expanded according to their type (Plain, Coalesced, GroupWithExclude, AvailableLocation).
24
+ * - Handles edge multiplicity (single/array) and optional/null cases.
25
+ * - Invalid or unsupported edge unions are filtered out as `never`.
26
+ * - Supports dot-notation for nested property selection and expansion.
27
+ */
28
+ type CustomVertexExport<V extends Vertex<Collection>, Q extends VertexQuery<V> | never> = Prettify<{ [K in keyof OmitEdges<V> as K extends KeysOf<V, Q> ? K : never]: V[K] } & { [K in keyof PickEdges<V> as K extends ExtractParentKeys<KeysOf<V, Q>> ? K : never]: [V[K]] extends [never] ? never : NonNullable<V[K]> extends EdgeWrapper<infer M, infer E extends EdgeBase<any, any> | null | undefined> ? (SetMultiplicity<Prettify<E extends EdgeBase<any, any> ? (HandleEdge.Plain<E, Lookup<Q[ExpandKey], K>> | RelaxedPick<HandleEdge.Wrapped<E, ExtractChildObject<Q[ExpandKey], K>> | HandleEdge.Coalesced<E, ExtractChildObject<Q[ExpandKey], K>> | HandleEdge.GroupWithExclude<E, ExtractChildObject<Q[ExpandKey], K>> | HandleEdge.AvailableLocation<E, ExtractChildObject<Q[ExpandKey], K>>, ExtractChildKeys<KeysOf<V, Q>, K>>) : E>, M> | ExtractNullish<V[K]>) : never }>;
29
+ //#endregion
30
+ export { CustomVertexExport };
31
+ //# sourceMappingURL=index.d.ts.map