@royalschedule/maps 4.0.34 → 4.0.36

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 (287) 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 +0 -1
  8. package/dist/Additio/from/schedules.js +4 -2
  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 +0 -2
  12. package/dist/Additio/to/schedules.js +4 -2
  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 +0 -1
  21. package/dist/Admentum/from/schedules.js +6 -3
  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 +0 -1
  25. package/dist/Admentum/to/schedules.js +7 -4
  26. package/dist/Admentum/to/schedules.js.map +1 -1
  27. package/dist/Excel/index.d.ts +5 -4
  28. package/dist/Excel/v1/from/index.js +1 -1
  29. package/dist/Excel/v1/from/index.js.map +1 -1
  30. package/dist/Excel/v1/index.d.ts +0 -1
  31. package/dist/Excel/v2/from/index.js +54 -45
  32. package/dist/Excel/v2/from/index.js.map +1 -1
  33. package/dist/Excel/v2/index.d.ts +2 -1
  34. package/dist/IdunSoft/from/courses.js.map +1 -1
  35. package/dist/IdunSoft/from/events.js +2 -1
  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 +0 -1
  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 +0 -1
  44. package/dist/IdunSoft/to/schedules.js +6 -3
  45. package/dist/IdunSoft/to/schedules.js.map +1 -1
  46. package/dist/InfoMentor/to/index.d.ts +0 -1
  47. package/dist/InfoMentor/to/schedules.js +2 -1
  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 +11 -9
  51. package/dist/PlanDigital/from/schedules.js.map +1 -1
  52. package/dist/PlanDigital/index.d.ts +0 -1
  53. package/dist/Quiculum/file/to/index.d.ts +0 -1
  54. package/dist/Quiculum/file/to/schedules.js +9 -5
  55. package/dist/Quiculum/file/to/schedules.js.map +1 -1
  56. package/dist/RS/from/division.d.ts +0 -1
  57. package/dist/RS/from/division.js +2 -1
  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 +0 -1
  61. package/dist/RS/from/schedules.js.map +1 -1
  62. package/dist/RS/make-connected.d.ts +1 -3
  63. package/dist/RS/make-connected.js +42 -34
  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 +6 -4
  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 +2 -1
  70. package/dist/RS/to/input/default.js.map +1 -1
  71. package/dist/RS/to/input/dependencies.js +2 -1
  72. package/dist/RS/to/input/dependencies.js.map +1 -1
  73. package/dist/RS/to/input/dynamic-locked-times.js +2 -1
  74. package/dist/RS/to/input/dynamic-locked-times.js.map +1 -1
  75. package/dist/RS/to/input/events.js.map +1 -1
  76. package/dist/RS/to/input/groups.js.map +1 -1
  77. package/dist/RS/to/input/individuals.js +2 -1
  78. package/dist/RS/to/input/individuals.js.map +1 -1
  79. package/dist/RS/to/input/input.js +2 -1
  80. package/dist/RS/to/input/input.js.map +1 -1
  81. package/dist/RS/to/input/intervals.js +4 -2
  82. package/dist/RS/to/input/intervals.js.map +1 -1
  83. package/dist/RS/to/input/periods.js +4 -2
  84. package/dist/RS/to/input/periods.js.map +1 -1
  85. package/dist/RS/to/input/settings.js.map +1 -1
  86. package/dist/RS/to/input/teachers.js.map +1 -1
  87. package/dist/RS/to/input/util/attach-locked-times.js.map +1 -1
  88. package/dist/RS/to/input/util/parse-days.js.map +1 -1
  89. package/dist/RS/to/input/util/parse-group-references.js.map +1 -1
  90. package/dist/RS/to/input/util/parse-intervals.js +4 -2
  91. package/dist/RS/to/input/util/parse-intervals.js.map +1 -1
  92. package/dist/RS/to/input/util/parse-location-references.js +2 -1
  93. package/dist/RS/to/input/util/parse-location-references.js.map +1 -1
  94. package/dist/RS/to/input/util/parse-max-working-hours.js.map +1 -1
  95. package/dist/RS/to/input/util/parse-minimum-break-length.js.map +1 -1
  96. package/dist/RS/to/input/util/util.js +2 -1
  97. package/dist/RS/to/input/util/util.js.map +1 -1
  98. package/dist/RS/to/schedules.js.map +1 -1
  99. package/dist/RS/types/to.d.ts +0 -1
  100. package/dist/SS12000/from/activities.js +2 -1
  101. package/dist/SS12000/from/activities.js.map +1 -1
  102. package/dist/SS12000/from/calendar-events.js.map +1 -1
  103. package/dist/SS12000/from/duties.js.map +1 -1
  104. package/dist/SS12000/from/groups.js.map +1 -1
  105. package/dist/SS12000/from/index.js.map +1 -1
  106. package/dist/SS12000/from/persons.js.map +1 -1
  107. package/dist/SS12000/from/resources.js.map +1 -1
  108. package/dist/SS12000/from/rooms.js.map +1 -1
  109. package/dist/SS12000/from/syllabuses.js.map +1 -1
  110. package/dist/SS12000/index.d.ts +201 -196
  111. package/dist/SS12000/to/activities.js.map +1 -1
  112. package/dist/SS12000/to/calendar-events.js.map +1 -1
  113. package/dist/SS12000/to/common.js.map +1 -1
  114. package/dist/SS12000/to/duties.js.map +1 -1
  115. package/dist/SS12000/to/groups.js.map +1 -1
  116. package/dist/SS12000/to/index.d.ts +0 -1
  117. package/dist/SS12000/to/persons.js.map +1 -1
  118. package/dist/SS12000/to/resources.js.map +1 -1
  119. package/dist/SS12000/to/rooms.js.map +1 -1
  120. package/dist/SS12000/to/syllabuses.js.map +1 -1
  121. package/dist/SchoolSoft/api/from/index.js.map +1 -1
  122. package/dist/SchoolSoft/api/from/schedules.js +12 -8
  123. package/dist/SchoolSoft/api/from/schedules.js.map +1 -1
  124. package/dist/SchoolSoft/api/index.d.ts +0 -1
  125. package/dist/SchoolSoft/file/from/index.js.map +1 -1
  126. package/dist/SchoolSoft/file/from/schedules.js +87 -83
  127. package/dist/SchoolSoft/file/from/schedules.js.map +1 -1
  128. package/dist/SchoolSoft/file/index.d.ts +0 -1
  129. package/dist/SchoolSoft/file/to/index.d.ts +0 -1
  130. package/dist/SchoolSoft/file/to/schedules.js +2 -1
  131. package/dist/SchoolSoft/file/to/schedules.js.map +1 -1
  132. package/dist/SchoolSoft/index.d.ts +0 -1
  133. package/dist/Schoolity/txt/to/index.d.ts +0 -1
  134. package/dist/Schoolity/txt/to/schedules.js +12 -5
  135. package/dist/Schoolity/txt/to/schedules.js.map +1 -1
  136. package/dist/Skola24/mdb/from/course-and-events.js +5 -3
  137. package/dist/Skola24/mdb/from/course-and-events.js.map +1 -1
  138. package/dist/Skola24/mdb/from/groups.js.map +1 -1
  139. package/dist/Skola24/mdb/from/index.js.map +1 -1
  140. package/dist/Skola24/mdb/from/locations.js.map +1 -1
  141. package/dist/Skola24/mdb/from/schedule.d.ts +0 -1
  142. package/dist/Skola24/mdb/from/schedule.js.map +1 -1
  143. package/dist/Skola24/mdb/from/teachers.js.map +1 -1
  144. package/dist/Skola24/txt/from/calendar-exceptions.js +2 -1
  145. package/dist/Skola24/txt/from/calendar-exceptions.js.map +1 -1
  146. package/dist/Skola24/txt/from/division.js.map +1 -1
  147. package/dist/Skola24/txt/from/index.js.map +1 -1
  148. package/dist/Skola24/txt/from/period.js +34 -31
  149. package/dist/Skola24/txt/from/period.js.map +1 -1
  150. package/dist/Skola24/txt/from/schedules.d.ts +0 -1
  151. package/dist/Skola24/txt/from/schedules.js +10 -6
  152. package/dist/Skola24/txt/from/schedules.js.map +1 -1
  153. package/dist/Skola24/txt/from/util.js.map +1 -1
  154. package/dist/Skola24/txt/index.d.ts +0 -1
  155. package/dist/Skola24/txt/to/index.d.ts +0 -1
  156. package/dist/Skola24/txt/to/schedules.js +13 -6
  157. package/dist/Skola24/txt/to/schedules.js.map +1 -1
  158. package/dist/common/constants.js.map +1 -1
  159. package/dist/common/functions.js.map +1 -1
  160. package/dist/common/get-date.js.map +1 -1
  161. package/dist/common/make-chainable/index.js.map +1 -1
  162. package/dist/common/types.d.ts +3 -1
  163. package/dist/core/from/configurations.js.map +1 -1
  164. package/dist/core/from/courses.js.map +1 -1
  165. package/dist/core/from/events.js.map +1 -1
  166. package/dist/core/from/exceptions.js.map +1 -1
  167. package/dist/core/from/groups.js.map +1 -1
  168. package/dist/core/from/index.js.map +1 -1
  169. package/dist/core/from/locations.js.map +1 -1
  170. package/dist/core/from/locked-times.js.map +1 -1
  171. package/dist/core/from/overlap-groups.js.map +1 -1
  172. package/dist/core/from/periods.js.map +1 -1
  173. package/dist/core/from/persons.js.map +1 -1
  174. package/dist/core/from/root-intervals.js.map +1 -1
  175. package/dist/core/from/schedules.js.map +1 -1
  176. package/dist/core/from/settings.js.map +1 -1
  177. package/dist/core/from/syllabuses.js.map +1 -1
  178. package/dist/core/from/teachers.js.map +1 -1
  179. package/dist/core/index.d.ts +0 -1
  180. package/dist/core/interfaces/other/companies.js.map +1 -1
  181. package/dist/core/interfaces/other/operations.d.ts +0 -1
  182. package/dist/core/interfaces/vertices/companies.d.ts +0 -1
  183. package/dist/core/interfaces/vertices/configurations.d.ts +0 -1
  184. package/dist/core/interfaces/vertices/conversations.d.ts +24 -0
  185. package/dist/core/interfaces/vertices/courses.d.ts +1 -2
  186. package/dist/core/interfaces/vertices/division-settings.d.ts +0 -1
  187. package/dist/core/interfaces/vertices/divisions.d.ts +0 -1
  188. package/dist/core/interfaces/vertices/events.d.ts +3 -1
  189. package/dist/core/interfaces/vertices/exceptions.d.ts +0 -1
  190. package/dist/core/interfaces/vertices/generations.d.ts +0 -2
  191. package/dist/core/interfaces/vertices/groups.d.ts +0 -1
  192. package/dist/core/interfaces/vertices/index.d.ts +15 -2
  193. package/dist/core/interfaces/vertices/locations.d.ts +0 -1
  194. package/dist/core/interfaces/vertices/locked-times.d.ts +0 -2
  195. package/dist/core/interfaces/vertices/messages.d.ts +21 -0
  196. package/dist/core/interfaces/vertices/overlap-groups.d.ts +0 -1
  197. package/dist/core/interfaces/vertices/periods.d.ts +0 -2
  198. package/dist/core/interfaces/vertices/persons.d.ts +0 -1
  199. package/dist/core/interfaces/vertices/properties/belongs-to.d.ts +0 -1
  200. package/dist/core/interfaces/vertices/properties/coalesced.d.ts +0 -1
  201. package/dist/core/interfaces/vertices/root-intervals.d.ts +0 -2
  202. package/dist/core/interfaces/vertices/syllabuses.d.ts +0 -1
  203. package/dist/core/interfaces/vertices/teachers.d.ts +0 -1
  204. package/dist/core/interfaces/vertices/threads.d.ts +0 -1
  205. package/dist/core/interfaces/vertices/users.d.ts +0 -1
  206. package/dist/core/interfaces/vertices/util/custom-vertex-export/index.d.ts +6 -6
  207. package/dist/core/interfaces/vertices/util/custom-vertex-export/util.d.ts +4 -4
  208. package/dist/core/interfaces/vertices/util/deep-vertex-export/index.d.ts +9 -9
  209. package/dist/core/interfaces/vertices/util/edges.d.ts +7 -7
  210. package/dist/core/interfaces/vertices/util/util.d.ts +24 -20
  211. package/dist/core/interfaces/vertices/util/vertex-query/index.d.ts +11 -11
  212. package/dist/core/interfaces/vertices/util/vertex.d.ts +2 -2
  213. package/dist/core/interfaces/vertices/vertex-query.d.ts +33 -28
  214. package/dist/core/interfaces/vertices/vertex-query.js +8 -0
  215. package/dist/core/interfaces/vertices/vertex-query.js.map +1 -1
  216. package/dist/core/to/configurations.js +2 -1
  217. package/dist/core/to/configurations.js.map +1 -1
  218. package/dist/core/to/courses.js +2 -1
  219. package/dist/core/to/courses.js.map +1 -1
  220. package/dist/core/to/division.js.map +1 -1
  221. package/dist/core/to/events.js +2 -1
  222. package/dist/core/to/events.js.map +1 -1
  223. package/dist/core/to/exceptions.js +2 -1
  224. package/dist/core/to/exceptions.js.map +1 -1
  225. package/dist/core/to/groups.js +2 -1
  226. package/dist/core/to/groups.js.map +1 -1
  227. package/dist/core/to/locations.js +2 -1
  228. package/dist/core/to/locations.js.map +1 -1
  229. package/dist/core/to/locked-times.js +2 -1
  230. package/dist/core/to/locked-times.js.map +1 -1
  231. package/dist/core/to/overlap-groups.js +2 -1
  232. package/dist/core/to/overlap-groups.js.map +1 -1
  233. package/dist/core/to/periods.js +2 -1
  234. package/dist/core/to/periods.js.map +1 -1
  235. package/dist/core/to/persons.js +2 -1
  236. package/dist/core/to/persons.js.map +1 -1
  237. package/dist/core/to/root-intervals.js +2 -1
  238. package/dist/core/to/root-intervals.js.map +1 -1
  239. package/dist/core/to/schedules.d.ts +0 -1
  240. package/dist/core/to/schedules.js.map +1 -1
  241. package/dist/core/to/settings.js +2 -1
  242. package/dist/core/to/settings.js.map +1 -1
  243. package/dist/core/to/syllabuses.js +2 -1
  244. package/dist/core/to/syllabuses.js.map +1 -1
  245. package/dist/core/to/teachers.js +2 -1
  246. package/dist/core/to/teachers.js.map +1 -1
  247. package/dist/core/to/util.d.ts +0 -2
  248. package/dist/core/to/util.js +2 -1
  249. package/dist/core/to/util.js.map +1 -1
  250. package/dist/core/types/index.d.ts +0 -1
  251. package/dist/core/util.js +2 -1
  252. package/dist/core/util.js.map +1 -1
  253. package/dist/identify/constants/index.js.map +1 -1
  254. package/dist/identify/index.js +2 -1
  255. package/dist/identify/index.js.map +1 -1
  256. package/dist/sdui/from/classes.js.map +1 -1
  257. package/dist/sdui/from/courses.js.map +1 -1
  258. package/dist/sdui/from/holidays.js.map +1 -1
  259. package/dist/sdui/from/index.js.map +1 -1
  260. package/dist/sdui/from/lessons.js.map +1 -1
  261. package/dist/sdui/from/rooms.js.map +1 -1
  262. package/dist/sdui/from/schedules.d.ts +0 -2
  263. package/dist/sdui/from/schedules.js.map +1 -1
  264. package/dist/sdui/from/school-years.js.map +1 -1
  265. package/dist/sdui/from/substitution-plans.js.map +1 -1
  266. package/dist/sdui/from/teachers.js.map +1 -1
  267. package/dist/sdui/to/classes.js.map +1 -1
  268. package/dist/sdui/to/courses.js.map +1 -1
  269. package/dist/sdui/to/holidays.js.map +1 -1
  270. package/dist/sdui/to/hours.js.map +1 -1
  271. package/dist/sdui/to/index.d.ts +0 -2
  272. package/dist/sdui/to/lessons.js.map +1 -1
  273. package/dist/sdui/to/rooms.js.map +1 -1
  274. package/dist/sdui/to/schedules.js.map +1 -1
  275. package/dist/sdui/to/school-years.js.map +1 -1
  276. package/dist/sdui/to/substitution-plans.js +6 -3
  277. package/dist/sdui/to/substitution-plans.js.map +1 -1
  278. package/dist/sdui/to/teachers.js.map +1 -1
  279. package/dist/vKlass/from/index.js.map +1 -1
  280. package/dist/vKlass/from/schedule.d.ts +0 -1
  281. package/dist/vKlass/from/schedule.js.map +1 -1
  282. package/dist/vKlass/to/schedules.js +17 -6
  283. package/dist/vKlass/to/schedules.js.map +1 -1
  284. package/package.json +1 -1
  285. package/dist/core/interfaces/index.d.ts +0 -23
  286. package/dist/core/interfaces/other/index.d.ts +0 -6
  287. package/dist/core/interfaces/vertices/util/index.d.ts +0 -6
@@ -1 +1 @@
1
- {"version":3,"file":"configurations.js","names":[],"sources":["../../../src/core/from/configurations.ts"],"sourcesContent":["import type transform from '../to/configurations';\n\nexport default (configurations: ReturnType<typeof transform>) => {\n if (configurations.length != new Set(configurations.map(x => x.id)).size)\n throw new Error('(Core::From::V2::Configurations) Configuration array have two or more configurations with the same ID');\n\n return configurations\n .map(x => {\n if (!x.id)\n throw new Error('(Core::From::V2::Configurations) Configuration id is undefined');\n\n return { ...x };\n });\n};\n"],"mappings":";AAEA,8BAAgB,mBAAiD;AAC/D,KAAI,eAAe,UAAU,IAAI,IAAI,eAAe,KAAI,MAAK,EAAE,GAAG,CAAC,CAAC,KAClE,OAAM,IAAI,MAAM,wGAAwG;AAE1H,QAAO,eACJ,KAAI,MAAK;AACR,MAAI,CAAC,EAAE,GACL,OAAM,IAAI,MAAM,iEAAiE;AAEnF,SAAO,EAAE,GAAG,GAAG;GACf"}
1
+ {"version":3,"file":"configurations.js","names":[],"sources":["../../../src/core/from/configurations.ts"],"sourcesContent":["import type transform from '../to/configurations';\n\nexport default (configurations: ReturnType<typeof transform>) => {\n if (configurations.length != new Set(configurations.map(x => x.id)).size)\n throw new Error('(Core::From::V2::Configurations) Configuration array have two or more configurations with the same ID');\n\n return configurations\n .map(x => {\n if (!x.id)\n throw new Error('(Core::From::V2::Configurations) Configuration id is undefined');\n\n return { ...x };\n });\n};\n"],"mappings":";AAEA,8BAAgB,mBAAiD;AAC/D,KAAI,eAAe,UAAU,IAAI,IAAI,eAAe,KAAI,MAAK,EAAE,KAAK,KAClE,OAAM,IAAI,MAAM;AAElB,QAAO,eACJ,KAAI,MAAK;AACR,MAAI,CAAC,EAAE,GACL,OAAM,IAAI,MAAM;AAElB,SAAO,EAAE,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"courses.js","names":[],"sources":["../../../src/core/from/courses.ts"],"sourcesContent":["import type transform from '../to/courses';\n\nexport default (courses: ReturnType<typeof transform>) => {\n if (courses.length != new Set(courses.map(x => x.id)).size)\n throw new Error('(Core::From::V2::Courses) Course array have two or more courses with the same ID');\n\n return courses\n .map(x => {\n if (!x.id)\n throw new Error('(Core::From::V2::Courses) Course id is undefined');\n\n return { ...x };\n });\n};\n"],"mappings":";AAEA,uBAAgB,YAA0C;AACxD,KAAI,QAAQ,UAAU,IAAI,IAAI,QAAQ,KAAI,MAAK,EAAE,GAAG,CAAC,CAAC,KACpD,OAAM,IAAI,MAAM,mFAAmF;AAErG,QAAO,QACJ,KAAI,MAAK;AACR,MAAI,CAAC,EAAE,GACL,OAAM,IAAI,MAAM,mDAAmD;AAErE,SAAO,EAAE,GAAG,GAAG;GACf"}
1
+ {"version":3,"file":"courses.js","names":[],"sources":["../../../src/core/from/courses.ts"],"sourcesContent":["import type transform from '../to/courses';\n\nexport default (courses: ReturnType<typeof transform>) => {\n if (courses.length != new Set(courses.map(x => x.id)).size)\n throw new Error('(Core::From::V2::Courses) Course array have two or more courses with the same ID');\n\n return courses\n .map(x => {\n if (!x.id)\n throw new Error('(Core::From::V2::Courses) Course id is undefined');\n\n return { ...x };\n });\n};\n"],"mappings":";AAEA,uBAAgB,YAA0C;AACxD,KAAI,QAAQ,UAAU,IAAI,IAAI,QAAQ,KAAI,MAAK,EAAE,KAAK,KACpD,OAAM,IAAI,MAAM;AAElB,QAAO,QACJ,KAAI,MAAK;AACR,MAAI,CAAC,EAAE,GACL,OAAM,IAAI,MAAM;AAElB,SAAO,EAAE,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","names":[],"sources":["../../../src/core/from/events.ts"],"sourcesContent":["import type transform from '../to/events';\n\nexport default (events: ReturnType<typeof transform>) => {\n if (events.length != new Set(events.map(x => x.id)).size)\n throw new Error('(Core::From::V2::Events) Events array have two or more events with the same ID');\n\n return events\n .map(x => {\n if (!x.id)\n throw new Error('(Core::From::V2::Events) Event id is undefined');\n\n // backwards compatibility for file upload: use duration if preferredDuration does not exist\n if (x.duration) x.preferredDuration ??= x.duration;\n\n return { ...x };\n });\n};\n"],"mappings":";AAEA,sBAAgB,WAAyC;AACvD,KAAI,OAAO,UAAU,IAAI,IAAI,OAAO,KAAI,MAAK,EAAE,GAAG,CAAC,CAAC,KAClD,OAAM,IAAI,MAAM,iFAAiF;AAEnG,QAAO,OACJ,KAAI,MAAK;AACR,MAAI,CAAC,EAAE,GACL,OAAM,IAAI,MAAM,iDAAiD;AAGnE,MAAI,EAAE,SAAU,GAAE,sBAAsB,EAAE;AAE1C,SAAO,EAAE,GAAG,GAAG;GACf"}
1
+ {"version":3,"file":"events.js","names":[],"sources":["../../../src/core/from/events.ts"],"sourcesContent":["import type transform from '../to/events';\n\nexport default (events: ReturnType<typeof transform>) => {\n if (events.length != new Set(events.map(x => x.id)).size)\n throw new Error('(Core::From::V2::Events) Events array have two or more events with the same ID');\n\n return events\n .map(x => {\n if (!x.id)\n throw new Error('(Core::From::V2::Events) Event id is undefined');\n\n // backwards compatibility for file upload: use duration if preferredDuration does not exist\n if (x.duration) x.preferredDuration ??= x.duration;\n\n return { ...x };\n });\n};\n"],"mappings":";AAEA,sBAAgB,WAAyC;AACvD,KAAI,OAAO,UAAU,IAAI,IAAI,OAAO,KAAI,MAAK,EAAE,KAAK,KAClD,OAAM,IAAI,MAAM;AAElB,QAAO,OACJ,KAAI,MAAK;AACR,MAAI,CAAC,EAAE,GACL,OAAM,IAAI,MAAM;AAGlB,MAAI,EAAE,SAAU,GAAE,sBAAsB,EAAE;AAE1C,SAAO,EAAE,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"exceptions.js","names":[],"sources":["../../../src/core/from/exceptions.ts"],"sourcesContent":["import type transform from '../to/exceptions';\n\nexport default (exceptions: ReturnType<typeof transform>) => {\n if (exceptions.length != new Set(exceptions.map(x => x.id)).size)\n throw new Error('(Core::From::V2::exceptions) exceptions array have two or more exceptions with the same ID');\n\n return exceptions\n .map(x => {\n if (!x.id)\n throw new Error('(Core::From::V2::exceptions) Calendar exceptions id is undefined');\n\n return { ...x };\n });\n};\n"],"mappings":";AAEA,0BAAgB,eAA6C;AAC3D,KAAI,WAAW,UAAU,IAAI,IAAI,WAAW,KAAI,MAAK,EAAE,GAAG,CAAC,CAAC,KAC1D,OAAM,IAAI,MAAM,6FAA6F;AAE/G,QAAO,WACJ,KAAI,MAAK;AACR,MAAI,CAAC,EAAE,GACL,OAAM,IAAI,MAAM,mEAAmE;AAErF,SAAO,EAAE,GAAG,GAAG;GACf"}
1
+ {"version":3,"file":"exceptions.js","names":[],"sources":["../../../src/core/from/exceptions.ts"],"sourcesContent":["import type transform from '../to/exceptions';\n\nexport default (exceptions: ReturnType<typeof transform>) => {\n if (exceptions.length != new Set(exceptions.map(x => x.id)).size)\n throw new Error('(Core::From::V2::exceptions) exceptions array have two or more exceptions with the same ID');\n\n return exceptions\n .map(x => {\n if (!x.id)\n throw new Error('(Core::From::V2::exceptions) Calendar exceptions id is undefined');\n\n return { ...x };\n });\n};\n"],"mappings":";AAEA,0BAAgB,eAA6C;AAC3D,KAAI,WAAW,UAAU,IAAI,IAAI,WAAW,KAAI,MAAK,EAAE,KAAK,KAC1D,OAAM,IAAI,MAAM;AAElB,QAAO,WACJ,KAAI,MAAK;AACR,MAAI,CAAC,EAAE,GACL,OAAM,IAAI,MAAM;AAElB,SAAO,EAAE,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"groups.js","names":[],"sources":["../../../src/core/from/groups.ts"],"sourcesContent":["import type transform from '../to/groups';\n\nexport default (groups: ReturnType<typeof transform>) => {\n if (groups.length != new Set(groups.map(x => x.id)).size)\n throw new Error('(Core::From::V2::Groups) Groups array have two or more groups with the same ID');\n\n return groups\n .map(x => {\n if (!x.id)\n throw new Error('(Core::From::V2::Groups) Group id is undefined');\n\n return { ...x };\n });\n};\n"],"mappings":";AAEA,sBAAgB,WAAyC;AACvD,KAAI,OAAO,UAAU,IAAI,IAAI,OAAO,KAAI,MAAK,EAAE,GAAG,CAAC,CAAC,KAClD,OAAM,IAAI,MAAM,iFAAiF;AAEnG,QAAO,OACJ,KAAI,MAAK;AACR,MAAI,CAAC,EAAE,GACL,OAAM,IAAI,MAAM,iDAAiD;AAEnE,SAAO,EAAE,GAAG,GAAG;GACf"}
1
+ {"version":3,"file":"groups.js","names":[],"sources":["../../../src/core/from/groups.ts"],"sourcesContent":["import type transform from '../to/groups';\n\nexport default (groups: ReturnType<typeof transform>) => {\n if (groups.length != new Set(groups.map(x => x.id)).size)\n throw new Error('(Core::From::V2::Groups) Groups array have two or more groups with the same ID');\n\n return groups\n .map(x => {\n if (!x.id)\n throw new Error('(Core::From::V2::Groups) Group id is undefined');\n\n return { ...x };\n });\n};\n"],"mappings":";AAEA,sBAAgB,WAAyC;AACvD,KAAI,OAAO,UAAU,IAAI,IAAI,OAAO,KAAI,MAAK,EAAE,KAAK,KAClD,OAAM,IAAI,MAAM;AAElB,QAAO,OACJ,KAAI,MAAK;AACR,MAAI,CAAC,EAAE,GACL,OAAM,IAAI,MAAM;AAElB,SAAO,EAAE,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_schedules"],"sources":["../../../src/core/from/index.ts"],"sourcesContent":["import type { FromInterface } from '../../common/types';\nimport type { Types } from '../types';\nimport _schedules from './schedules';\n\n\nfunction division (data: unknown): Pick<Types.Serialized.Division, 'displayName' | 'start' | 'end'> | undefined {\n\n if ( !data || typeof data !== 'object'\n || !('division' in data) || !data.division || typeof data.division !== 'object'\n ) return;\n\n const d = data.division;\n if (!('displayName' in d && typeof d.displayName == 'string')) return;\n if (!('start' in d && typeof d.start == 'string')) return;\n if (!('end' in d && typeof d.end == 'string')) return;\n\n return {\n displayName: d.displayName,\n start: d.start,\n end: d.end\n };\n}\n\nexport default {\n division: division,\n schedules: _schedules\n} satisfies FromInterface;"],"mappings":";;;AAKA,SAAS,SAAU,MAA6F;AAE9G,KAA8B,CAAC,QAAiB,OAAO,SAAkB,YACpE,EAAE,cAAc,SAAS,CAAC,KAAK,YAAY,OAAO,KAAK,aAAa,SACvE;CAEF,MAAM,IAAI,KAAK;AACf,KAAI,EAAE,iBAAiB,KAAK,OAAO,EAAE,eAAe,UAAW;AAC/D,KAAI,EAAE,WAAiB,KAAK,OAAO,EAAE,SAAe,UAAW;AAC/D,KAAI,EAAE,SAAiB,KAAK,OAAO,EAAE,OAAe,UAAW;AAE/D,QAAO;EACL,aAAa,EAAE;EACf,OAAa,EAAE;EACf,KAAa,EAAE;EAChB;;AAGH,mBAAe;CACF;CACX,WAAWA;CACZ"}
1
+ {"version":3,"file":"index.js","names":["_schedules"],"sources":["../../../src/core/from/index.ts"],"sourcesContent":["import type { FromInterface } from '../../common/types';\nimport type { Types } from '../types';\nimport _schedules from './schedules';\n\n\nfunction division (data: unknown): Pick<Types.Serialized.Division, 'displayName' | 'start' | 'end'> | undefined {\n\n if ( !data || typeof data !== 'object'\n || !('division' in data) || !data.division || typeof data.division !== 'object'\n ) return;\n\n const d = data.division;\n if (!('displayName' in d && typeof d.displayName == 'string')) return;\n if (!('start' in d && typeof d.start == 'string')) return;\n if (!('end' in d && typeof d.end == 'string')) return;\n\n return {\n displayName: d.displayName,\n start: d.start,\n end: d.end\n };\n}\n\nexport default {\n division: division,\n schedules: _schedules\n} satisfies FromInterface;"],"mappings":";;;AAKA,SAAS,SAAU,MAA6F;AAE9G,KAA8B,CAAC,QAAiB,OAAO,SAAkB,YACpE,EAAE,cAAc,SAAS,CAAC,KAAK,YAAY,OAAO,KAAK,aAAa,SACvE;CAEF,MAAM,IAAI,KAAK;AACf,KAAI,EAAE,iBAAiB,KAAK,OAAO,EAAE,eAAe,UAAW;AAC/D,KAAI,EAAE,WAAiB,KAAK,OAAO,EAAE,SAAe,UAAW;AAC/D,KAAI,EAAE,SAAiB,KAAK,OAAO,EAAE,OAAe,UAAW;AAE/D,QAAO;EACL,aAAa,EAAE;EACf,OAAa,EAAE;EACf,KAAa,EAAE;;;AAInB,mBAAe;CACF;CACX,WAAWA"}
@@ -1 +1 @@
1
- {"version":3,"file":"locations.js","names":[],"sources":["../../../src/core/from/locations.ts"],"sourcesContent":["import type transform from '../to/locations';\n\nexport default (locations: ReturnType<typeof transform>) => {\n if (locations.length != new Set(locations.map(x => x.id)).size)\n throw new Error('(Core::From::V2::Locations) Location array have two or more locations with the same ID');\n\n return locations\n .map(x => {\n if (!x.id)\n throw new Error('(Core::From::V2::Locations) Location id is undefined');\n\n return { ...x };\n });\n};\n"],"mappings":";AAEA,yBAAgB,cAA4C;AAC1D,KAAI,UAAU,UAAU,IAAI,IAAI,UAAU,KAAI,MAAK,EAAE,GAAG,CAAC,CAAC,KACxD,OAAM,IAAI,MAAM,yFAAyF;AAE3G,QAAO,UACJ,KAAI,MAAK;AACR,MAAI,CAAC,EAAE,GACL,OAAM,IAAI,MAAM,uDAAuD;AAEzE,SAAO,EAAE,GAAG,GAAG;GACf"}
1
+ {"version":3,"file":"locations.js","names":[],"sources":["../../../src/core/from/locations.ts"],"sourcesContent":["import type transform from '../to/locations';\n\nexport default (locations: ReturnType<typeof transform>) => {\n if (locations.length != new Set(locations.map(x => x.id)).size)\n throw new Error('(Core::From::V2::Locations) Location array have two or more locations with the same ID');\n\n return locations\n .map(x => {\n if (!x.id)\n throw new Error('(Core::From::V2::Locations) Location id is undefined');\n\n return { ...x };\n });\n};\n"],"mappings":";AAEA,yBAAgB,cAA4C;AAC1D,KAAI,UAAU,UAAU,IAAI,IAAI,UAAU,KAAI,MAAK,EAAE,KAAK,KACxD,OAAM,IAAI,MAAM;AAElB,QAAO,UACJ,KAAI,MAAK;AACR,MAAI,CAAC,EAAE,GACL,OAAM,IAAI,MAAM;AAElB,SAAO,EAAE,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"locked-times.js","names":[],"sources":["../../../src/core/from/locked-times.ts"],"sourcesContent":["import type transform from '../to/locked-times';\n\nexport default (LockedTimes: ReturnType<typeof transform>) => {\n if (LockedTimes.length != new Set(LockedTimes.map(x => x.id)).size)\n throw new Error('(Core::From::V2::LockedTimes) LockedTimes array have two or more LockedTimes with the same ID');\n\n return LockedTimes\n .map(x => {\n if (!x.id)\n throw new Error('(Core::From::V2::LockedTimes) Locked time id is undefined');\n\n return { ...x };\n });\n};\n"],"mappings":";AAEA,4BAAgB,gBAA8C;AAC5D,KAAI,YAAY,UAAU,IAAI,IAAI,YAAY,KAAI,MAAK,EAAE,GAAG,CAAC,CAAC,KAC5D,OAAM,IAAI,MAAM,gGAAgG;AAElH,QAAO,YACJ,KAAI,MAAK;AACR,MAAI,CAAC,EAAE,GACL,OAAM,IAAI,MAAM,4DAA4D;AAE9E,SAAO,EAAE,GAAG,GAAG;GACf"}
1
+ {"version":3,"file":"locked-times.js","names":[],"sources":["../../../src/core/from/locked-times.ts"],"sourcesContent":["import type transform from '../to/locked-times';\n\nexport default (LockedTimes: ReturnType<typeof transform>) => {\n if (LockedTimes.length != new Set(LockedTimes.map(x => x.id)).size)\n throw new Error('(Core::From::V2::LockedTimes) LockedTimes array have two or more LockedTimes with the same ID');\n\n return LockedTimes\n .map(x => {\n if (!x.id)\n throw new Error('(Core::From::V2::LockedTimes) Locked time id is undefined');\n\n return { ...x };\n });\n};\n"],"mappings":";AAEA,4BAAgB,gBAA8C;AAC5D,KAAI,YAAY,UAAU,IAAI,IAAI,YAAY,KAAI,MAAK,EAAE,KAAK,KAC5D,OAAM,IAAI,MAAM;AAElB,QAAO,YACJ,KAAI,MAAK;AACR,MAAI,CAAC,EAAE,GACL,OAAM,IAAI,MAAM;AAElB,SAAO,EAAE,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"overlap-groups.js","names":[],"sources":["../../../src/core/from/overlap-groups.ts"],"sourcesContent":["import type transform from '../to/overlap-groups';\n\nexport default (overlapGroups: ReturnType<typeof transform>) => {\n if (overlapGroups.length != new Set(overlapGroups.map(x => x.id)).size)\n throw new Error('(Core::From::V2::OverlapGroup) overlapGroups array have two or more overlapGroups with the same ID');\n\n return overlapGroups\n .map(x => {\n if (!x.id)\n throw new Error('(Core::From::V2::OverlapGroup) Overlap group id is undefined');\n\n return { ...x };\n });\n};\n"],"mappings":";AAEA,8BAAgB,kBAAgD;AAC9D,KAAI,cAAc,UAAU,IAAI,IAAI,cAAc,KAAI,MAAK,EAAE,GAAG,CAAC,CAAC,KAChE,OAAM,IAAI,MAAM,qGAAqG;AAEvH,QAAO,cACJ,KAAI,MAAK;AACR,MAAI,CAAC,EAAE,GACL,OAAM,IAAI,MAAM,+DAA+D;AAEjF,SAAO,EAAE,GAAG,GAAG;GACf"}
1
+ {"version":3,"file":"overlap-groups.js","names":[],"sources":["../../../src/core/from/overlap-groups.ts"],"sourcesContent":["import type transform from '../to/overlap-groups';\n\nexport default (overlapGroups: ReturnType<typeof transform>) => {\n if (overlapGroups.length != new Set(overlapGroups.map(x => x.id)).size)\n throw new Error('(Core::From::V2::OverlapGroup) overlapGroups array have two or more overlapGroups with the same ID');\n\n return overlapGroups\n .map(x => {\n if (!x.id)\n throw new Error('(Core::From::V2::OverlapGroup) Overlap group id is undefined');\n\n return { ...x };\n });\n};\n"],"mappings":";AAEA,8BAAgB,kBAAgD;AAC9D,KAAI,cAAc,UAAU,IAAI,IAAI,cAAc,KAAI,MAAK,EAAE,KAAK,KAChE,OAAM,IAAI,MAAM;AAElB,QAAO,cACJ,KAAI,MAAK;AACR,MAAI,CAAC,EAAE,GACL,OAAM,IAAI,MAAM;AAElB,SAAO,EAAE,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"periods.js","names":[],"sources":["../../../src/core/from/periods.ts"],"sourcesContent":["import type transform from '../to/periods';\n\nexport default (periods: ReturnType<typeof transform>) => {\n if (periods.length != new Set(periods.map(x => x.id)).size)\n throw new Error('(Core::From::V2::Periods) Periods array have two or more periods with the same ID');\n\n return periods\n .map(x => {\n if (!x.id)\n throw new Error('(Core::From::V2::Periods) Period id is undefined');\n\n return { ...x };\n });\n};\n"],"mappings":";AAEA,uBAAgB,YAA0C;AACxD,KAAI,QAAQ,UAAU,IAAI,IAAI,QAAQ,KAAI,MAAK,EAAE,GAAG,CAAC,CAAC,KACpD,OAAM,IAAI,MAAM,oFAAoF;AAEtG,QAAO,QACJ,KAAI,MAAK;AACR,MAAI,CAAC,EAAE,GACL,OAAM,IAAI,MAAM,mDAAmD;AAErE,SAAO,EAAE,GAAG,GAAG;GACf"}
1
+ {"version":3,"file":"periods.js","names":[],"sources":["../../../src/core/from/periods.ts"],"sourcesContent":["import type transform from '../to/periods';\n\nexport default (periods: ReturnType<typeof transform>) => {\n if (periods.length != new Set(periods.map(x => x.id)).size)\n throw new Error('(Core::From::V2::Periods) Periods array have two or more periods with the same ID');\n\n return periods\n .map(x => {\n if (!x.id)\n throw new Error('(Core::From::V2::Periods) Period id is undefined');\n\n return { ...x };\n });\n};\n"],"mappings":";AAEA,uBAAgB,YAA0C;AACxD,KAAI,QAAQ,UAAU,IAAI,IAAI,QAAQ,KAAI,MAAK,EAAE,KAAK,KACpD,OAAM,IAAI,MAAM;AAElB,QAAO,QACJ,KAAI,MAAK;AACR,MAAI,CAAC,EAAE,GACL,OAAM,IAAI,MAAM;AAElB,SAAO,EAAE,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"persons.js","names":[],"sources":["../../../src/core/from/persons.ts"],"sourcesContent":["import type transform from '../to/persons';\n\nexport default (persons: ReturnType<typeof transform>) => {\n if (persons.length != new Set(persons.map(x => x.id)).size)\n throw new Error('(Core::From::V2::Persons) Persons array have two or more persons with the same ID');\n\n return persons\n .map(x => {\n if (!x.id)\n throw new Error('(Core::From::V2::Persons) Person id is undefined');\n\n return { ...x };\n });\n};\n"],"mappings":";AAEA,uBAAgB,YAA0C;AACxD,KAAI,QAAQ,UAAU,IAAI,IAAI,QAAQ,KAAI,MAAK,EAAE,GAAG,CAAC,CAAC,KACpD,OAAM,IAAI,MAAM,oFAAoF;AAEtG,QAAO,QACJ,KAAI,MAAK;AACR,MAAI,CAAC,EAAE,GACL,OAAM,IAAI,MAAM,mDAAmD;AAErE,SAAO,EAAE,GAAG,GAAG;GACf"}
1
+ {"version":3,"file":"persons.js","names":[],"sources":["../../../src/core/from/persons.ts"],"sourcesContent":["import type transform from '../to/persons';\n\nexport default (persons: ReturnType<typeof transform>) => {\n if (persons.length != new Set(persons.map(x => x.id)).size)\n throw new Error('(Core::From::V2::Persons) Persons array have two or more persons with the same ID');\n\n return persons\n .map(x => {\n if (!x.id)\n throw new Error('(Core::From::V2::Persons) Person id is undefined');\n\n return { ...x };\n });\n};\n"],"mappings":";AAEA,uBAAgB,YAA0C;AACxD,KAAI,QAAQ,UAAU,IAAI,IAAI,QAAQ,KAAI,MAAK,EAAE,KAAK,KACpD,OAAM,IAAI,MAAM;AAElB,QAAO,QACJ,KAAI,MAAK;AACR,MAAI,CAAC,EAAE,GACL,OAAM,IAAI,MAAM;AAElB,SAAO,EAAE,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"root-intervals.js","names":[],"sources":["../../../src/core/from/root-intervals.ts"],"sourcesContent":["import type transform from '../to/root-intervals';\n\nexport default (rootIntervals: ReturnType<typeof transform>) => {\n if (rootIntervals.length != new Set(rootIntervals.map(x => x.id)).size)\n throw new Error('(Core::From::V2::RootIntervals) RootInterval array have two or more root intervals with the same ID');\n\n return rootIntervals\n .map(x => {\n if (!x.id)\n throw new Error('(Core::From::V2::RootIntervals) RootInterval id is undefined');\n\n return { ...x };\n });\n};\n"],"mappings":";AAEA,8BAAgB,kBAAgD;AAC9D,KAAI,cAAc,UAAU,IAAI,IAAI,cAAc,KAAI,MAAK,EAAE,GAAG,CAAC,CAAC,KAChE,OAAM,IAAI,MAAM,sGAAsG;AAExH,QAAO,cACJ,KAAI,MAAK;AACR,MAAI,CAAC,EAAE,GACL,OAAM,IAAI,MAAM,+DAA+D;AAEjF,SAAO,EAAE,GAAG,GAAG;GACf"}
1
+ {"version":3,"file":"root-intervals.js","names":[],"sources":["../../../src/core/from/root-intervals.ts"],"sourcesContent":["import type transform from '../to/root-intervals';\n\nexport default (rootIntervals: ReturnType<typeof transform>) => {\n if (rootIntervals.length != new Set(rootIntervals.map(x => x.id)).size)\n throw new Error('(Core::From::V2::RootIntervals) RootInterval array have two or more root intervals with the same ID');\n\n return rootIntervals\n .map(x => {\n if (!x.id)\n throw new Error('(Core::From::V2::RootIntervals) RootInterval id is undefined');\n\n return { ...x };\n });\n};\n"],"mappings":";AAEA,8BAAgB,kBAAgD;AAC9D,KAAI,cAAc,UAAU,IAAI,IAAI,cAAc,KAAI,MAAK,EAAE,KAAK,KAChE,OAAM,IAAI,MAAM;AAElB,QAAO,cACJ,KAAI,MAAK;AACR,MAAI,CAAC,EAAE,GACL,OAAM,IAAI,MAAM;AAElB,SAAO,EAAE,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"file":"schedules.js","names":["_settings","_periods","_groups","_teachers","_persons","_locations","_courses","_events","_overlapGroups","_lockedTimes","_rootIntervals","_exceptions","_syllabuses","_configurations"],"sources":["../../../src/core/from/schedules.ts"],"sourcesContent":["import _exceptions from './exceptions';\nimport _periods from './periods';\nimport _locations from './locations';\nimport _teachers from './teachers';\nimport _groups from './groups';\nimport _persons from './persons';\nimport _courses from './courses';\nimport _overlapGroups from './overlap-groups';\nimport _lockedTimes from './locked-times';\nimport _rootIntervals from './root-intervals';\nimport _events from './events';\nimport _syllabuses from './syllabuses';\nimport _configurations from './configurations';\nimport _settings from './settings';\nimport type transform from '../to/schedules';\n\nexport default function (schedule: ReturnType<typeof transform>): Omit<ReturnType<typeof transform>, 'meta'> {\n return {\n ...schedule.settings && { settings: _settings (schedule.settings ) },\n ...schedule.periods && { periods: _periods (schedule.periods ) },\n ...schedule.groups && { groups: _groups (schedule.groups ) },\n ...schedule.teachers && { teachers: _teachers (schedule.teachers ) },\n ...schedule.persons && { persons: _persons (schedule.persons ) },\n ...schedule.locations && { locations: _locations (schedule.locations ) },\n ...schedule.courses && { courses: _courses (schedule.courses ) },\n ...schedule.events && { events: _events (schedule.events ) },\n ...schedule.overlapGroups && { overlapGroups: _overlapGroups (schedule.overlapGroups ) },\n ...schedule.lockedTimes && { lockedTimes: _lockedTimes (schedule.lockedTimes ) },\n ...schedule.rootIntervals && { rootIntervals: _rootIntervals (schedule.rootIntervals ) },\n ...schedule.exceptions && { exceptions: _exceptions (schedule.exceptions ) },\n ...schedule.syllabuses && { syllabuses: _syllabuses (schedule.syllabuses ) },\n ...schedule.configurations && { configurations: _configurations(schedule.configurations) }\n };\n}"],"mappings":";;;;;;;;;;;;;;;;AAgBA,2BAAyB,UAAoF;AAC3G,QAAO;EACL,GAAG,SAAS,YAAkB,EAAE,UAAgBA,iBAAgB,SAAS,SAAe,EAAE;EAC1F,GAAG,SAAS,WAAkB,EAAE,SAAgBC,gBAAgB,SAAS,QAAe,EAAE;EAC1F,GAAG,SAAS,UAAkB,EAAE,QAAgBC,eAAgB,SAAS,OAAe,EAAE;EAC1F,GAAG,SAAS,YAAkB,EAAE,UAAgBC,iBAAgB,SAAS,SAAe,EAAE;EAC1F,GAAG,SAAS,WAAkB,EAAE,SAAgBC,gBAAgB,SAAS,QAAe,EAAE;EAC1F,GAAG,SAAS,aAAkB,EAAE,WAAgBC,kBAAgB,SAAS,UAAe,EAAE;EAC1F,GAAG,SAAS,WAAkB,EAAE,SAAgBC,gBAAgB,SAAS,QAAe,EAAE;EAC1F,GAAG,SAAS,UAAkB,EAAE,QAAgBC,eAAgB,SAAS,OAAe,EAAE;EAC1F,GAAG,SAAS,iBAAkB,EAAE,eAAgBC,uBAAgB,SAAS,cAAe,EAAE;EAC1F,GAAG,SAAS,eAAkB,EAAE,aAAgBC,qBAAgB,SAAS,YAAe,EAAE;EAC1F,GAAG,SAAS,iBAAkB,EAAE,eAAgBC,uBAAgB,SAAS,cAAe,EAAE;EAC1F,GAAG,SAAS,cAAkB,EAAE,YAAgBC,mBAAgB,SAAS,WAAe,EAAE;EAC1F,GAAG,SAAS,cAAkB,EAAE,YAAgBC,mBAAgB,SAAS,WAAe,EAAE;EAC1F,GAAG,SAAS,kBAAkB,EAAE,gBAAgBC,uBAAgB,SAAS,eAAe,EAAE;EAC3F"}
1
+ {"version":3,"file":"schedules.js","names":["_settings","_periods","_groups","_teachers","_persons","_locations","_courses","_events","_overlapGroups","_lockedTimes","_rootIntervals","_exceptions","_syllabuses","_configurations"],"sources":["../../../src/core/from/schedules.ts"],"sourcesContent":["import _exceptions from './exceptions';\nimport _periods from './periods';\nimport _locations from './locations';\nimport _teachers from './teachers';\nimport _groups from './groups';\nimport _persons from './persons';\nimport _courses from './courses';\nimport _overlapGroups from './overlap-groups';\nimport _lockedTimes from './locked-times';\nimport _rootIntervals from './root-intervals';\nimport _events from './events';\nimport _syllabuses from './syllabuses';\nimport _configurations from './configurations';\nimport _settings from './settings';\nimport type transform from '../to/schedules';\n\nexport default function (schedule: ReturnType<typeof transform>): Omit<ReturnType<typeof transform>, 'meta'> {\n return {\n ...schedule.settings && { settings: _settings (schedule.settings ) },\n ...schedule.periods && { periods: _periods (schedule.periods ) },\n ...schedule.groups && { groups: _groups (schedule.groups ) },\n ...schedule.teachers && { teachers: _teachers (schedule.teachers ) },\n ...schedule.persons && { persons: _persons (schedule.persons ) },\n ...schedule.locations && { locations: _locations (schedule.locations ) },\n ...schedule.courses && { courses: _courses (schedule.courses ) },\n ...schedule.events && { events: _events (schedule.events ) },\n ...schedule.overlapGroups && { overlapGroups: _overlapGroups (schedule.overlapGroups ) },\n ...schedule.lockedTimes && { lockedTimes: _lockedTimes (schedule.lockedTimes ) },\n ...schedule.rootIntervals && { rootIntervals: _rootIntervals (schedule.rootIntervals ) },\n ...schedule.exceptions && { exceptions: _exceptions (schedule.exceptions ) },\n ...schedule.syllabuses && { syllabuses: _syllabuses (schedule.syllabuses ) },\n ...schedule.configurations && { configurations: _configurations(schedule.configurations) }\n };\n}"],"mappings":";;;;;;;;;;;;;;;;AAgBA,2BAAyB,UAAoF;AAC3G,QAAO;EACL,GAAG,SAAS,YAAkB,EAAE,UAAgBA,iBAAgB,SAAS;EACzE,GAAG,SAAS,WAAkB,EAAE,SAAgBC,gBAAgB,SAAS;EACzE,GAAG,SAAS,UAAkB,EAAE,QAAgBC,eAAgB,SAAS;EACzE,GAAG,SAAS,YAAkB,EAAE,UAAgBC,iBAAgB,SAAS;EACzE,GAAG,SAAS,WAAkB,EAAE,SAAgBC,gBAAgB,SAAS;EACzE,GAAG,SAAS,aAAkB,EAAE,WAAgBC,kBAAgB,SAAS;EACzE,GAAG,SAAS,WAAkB,EAAE,SAAgBC,gBAAgB,SAAS;EACzE,GAAG,SAAS,UAAkB,EAAE,QAAgBC,eAAgB,SAAS;EACzE,GAAG,SAAS,iBAAkB,EAAE,eAAgBC,uBAAgB,SAAS;EACzE,GAAG,SAAS,eAAkB,EAAE,aAAgBC,qBAAgB,SAAS;EACzE,GAAG,SAAS,iBAAkB,EAAE,eAAgBC,uBAAgB,SAAS;EACzE,GAAG,SAAS,cAAkB,EAAE,YAAgBC,mBAAgB,SAAS;EACzE,GAAG,SAAS,cAAkB,EAAE,YAAgBC,mBAAgB,SAAS;EACzE,GAAG,SAAS,kBAAkB,EAAE,gBAAgBC,uBAAgB,SAAS"}
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","names":[],"sources":["../../../src/core/from/settings.ts"],"sourcesContent":["import moment from 'moment';\nimport type transform from '../to/settings';\n\nexport default (settings: ReturnType<typeof transform>) => {\n\n settings.calendarExceptions = settings.calendarExceptions?.map(exception => {\n // the start time should not be later than 23:55 of the specified date\n let start = moment.utc(exception.start);\n if (start.hour() === 23 && start.minute() > 55) start = start.minute(55);\n\n // the end time should not be before 00:05 of the specified date, in such a case set it to the end of day\n // (this has to do with backwards compatibility with older versions)\n let end = moment.utc(exception.end);\n if (end.hour() === 0 && end.minute() < 5) end = end.endOf('day');\n\n return { ...exception, start, end };\n });\n\n return settings;\n};\n"],"mappings":";;;AAGA,wBAAgB,aAA2C;AAEzD,UAAS,qBAAqB,SAAS,oBAAoB,KAAI,cAAa;EAE1E,IAAI,QAAQ,OAAO,IAAI,UAAU,MAAM;AACvC,MAAI,MAAM,MAAM,KAAK,MAAM,MAAM,QAAQ,GAAG,GAAI,SAAQ,MAAM,OAAO,GAAG;EAIxE,IAAI,MAAM,OAAO,IAAI,UAAU,IAAI;AACnC,MAAI,IAAI,MAAM,KAAK,KAAK,IAAI,QAAQ,GAAG,EAAG,OAAM,IAAI,MAAM,MAAM;AAEhE,SAAO;GAAE,GAAG;GAAW;GAAO;GAAK;GACnC;AAEF,QAAO"}
1
+ {"version":3,"file":"settings.js","names":[],"sources":["../../../src/core/from/settings.ts"],"sourcesContent":["import moment from 'moment';\nimport type transform from '../to/settings';\n\nexport default (settings: ReturnType<typeof transform>) => {\n\n settings.calendarExceptions = settings.calendarExceptions?.map(exception => {\n // the start time should not be later than 23:55 of the specified date\n let start = moment.utc(exception.start);\n if (start.hour() === 23 && start.minute() > 55) start = start.minute(55);\n\n // the end time should not be before 00:05 of the specified date, in such a case set it to the end of day\n // (this has to do with backwards compatibility with older versions)\n let end = moment.utc(exception.end);\n if (end.hour() === 0 && end.minute() < 5) end = end.endOf('day');\n\n return { ...exception, start, end };\n });\n\n return settings;\n};\n"],"mappings":";;;AAGA,wBAAgB,aAA2C;AAEzD,UAAS,qBAAqB,SAAS,oBAAoB,KAAI,cAAa;EAE1E,IAAI,QAAQ,OAAO,IAAI,UAAU;AACjC,MAAI,MAAM,WAAW,MAAM,MAAM,WAAW,GAAI,SAAQ,MAAM,OAAO;EAIrE,IAAI,MAAM,OAAO,IAAI,UAAU;AAC/B,MAAI,IAAI,WAAW,KAAK,IAAI,WAAW,EAAG,OAAM,IAAI,MAAM;AAE1D,SAAO;GAAE,GAAG;GAAW;GAAO;;;AAGhC,QAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"syllabuses.js","names":[],"sources":["../../../src/core/from/syllabuses.ts"],"sourcesContent":["import type transform from '../to/syllabuses';\n\nexport default (syllabuses: ReturnType<typeof transform>) => {\n syllabuses = syllabuses.filter(({ id }) => id != undefined);\n\n if (syllabuses.length != Array.from(new Set(syllabuses.map(({ id }) => id))).length)\n throw new Error('(Core::From::V2::Syllabuses) Syllabuses array have two or more syllabuses with the same ID');\n\n return syllabuses.map(syllabus => {\n if (!syllabus.id)\n throw new Error('(Core::From::V2::Syllabuses) Syllabus id is undefined');\n\n return { ...syllabus };\n }, []) satisfies ReturnType<typeof transform>;\n};"],"mappings":";AAEA,0BAAgB,eAA6C;AAC3D,cAAa,WAAW,QAAQ,EAAE,SAAS,MAAM,OAAU;AAE3D,KAAI,WAAW,UAAU,MAAM,KAAK,IAAI,IAAI,WAAW,KAAK,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC,OAC3E,OAAM,IAAI,MAAM,6FAA6F;AAE/G,QAAO,WAAW,KAAI,aAAY;AAChC,MAAI,CAAC,SAAS,GACZ,OAAM,IAAI,MAAM,wDAAwD;AAE1E,SAAO,EAAE,GAAG,UAAU;IACrB,EAAE,CAAC"}
1
+ {"version":3,"file":"syllabuses.js","names":[],"sources":["../../../src/core/from/syllabuses.ts"],"sourcesContent":["import type transform from '../to/syllabuses';\n\nexport default (syllabuses: ReturnType<typeof transform>) => {\n syllabuses = syllabuses.filter(({ id }) => id != undefined);\n\n if (syllabuses.length != Array.from(new Set(syllabuses.map(({ id }) => id))).length)\n throw new Error('(Core::From::V2::Syllabuses) Syllabuses array have two or more syllabuses with the same ID');\n\n return syllabuses.map(syllabus => {\n if (!syllabus.id)\n throw new Error('(Core::From::V2::Syllabuses) Syllabus id is undefined');\n\n return { ...syllabus };\n }, []) satisfies ReturnType<typeof transform>;\n};"],"mappings":";AAEA,0BAAgB,eAA6C;AAC3D,cAAa,WAAW,QAAQ,EAAE,SAAS,MAAM;AAEjD,KAAI,WAAW,UAAU,MAAM,KAAK,IAAI,IAAI,WAAW,KAAK,EAAE,SAAS,MAAM,OAC3E,OAAM,IAAI,MAAM;AAElB,QAAO,WAAW,KAAI,aAAY;AAChC,MAAI,CAAC,SAAS,GACZ,OAAM,IAAI,MAAM;AAElB,SAAO,EAAE,GAAG;IACX"}
@@ -1 +1 @@
1
- {"version":3,"file":"teachers.js","names":[],"sources":["../../../src/core/from/teachers.ts"],"sourcesContent":["import type transform from '../to/teachers';\n\nexport default (teachers: ReturnType<typeof transform>) => {\n if (teachers.length != new Set(teachers.map(x => x.id)).size)\n throw new Error('(Core::From::V2::Teachers) Teachers array have two or more teachers with the same ID');\n\n return teachers\n .map(x => {\n if (!x.id)\n throw new Error('(Core::From::V2::Teachers) Teacher id is undefined');\n\n return { ...x };\n });\n};\n"],"mappings":";AAEA,wBAAgB,aAA2C;AACzD,KAAI,SAAS,UAAU,IAAI,IAAI,SAAS,KAAI,MAAK,EAAE,GAAG,CAAC,CAAC,KACtD,OAAM,IAAI,MAAM,uFAAuF;AAEzG,QAAO,SACJ,KAAI,MAAK;AACR,MAAI,CAAC,EAAE,GACL,OAAM,IAAI,MAAM,qDAAqD;AAEvE,SAAO,EAAE,GAAG,GAAG;GACf"}
1
+ {"version":3,"file":"teachers.js","names":[],"sources":["../../../src/core/from/teachers.ts"],"sourcesContent":["import type transform from '../to/teachers';\n\nexport default (teachers: ReturnType<typeof transform>) => {\n if (teachers.length != new Set(teachers.map(x => x.id)).size)\n throw new Error('(Core::From::V2::Teachers) Teachers array have two or more teachers with the same ID');\n\n return teachers\n .map(x => {\n if (!x.id)\n throw new Error('(Core::From::V2::Teachers) Teacher id is undefined');\n\n return { ...x };\n });\n};\n"],"mappings":";AAEA,wBAAgB,aAA2C;AACzD,KAAI,SAAS,UAAU,IAAI,IAAI,SAAS,KAAI,MAAK,EAAE,KAAK,KACtD,OAAM,IAAI,MAAM;AAElB,QAAO,SACJ,KAAI,MAAK;AACR,MAAI,CAAC,EAAE,GACL,OAAM,IAAI,MAAM;AAElB,SAAO,EAAE,GAAG"}
@@ -22,7 +22,6 @@ import { CalendarExceptionAction, ExceptionStatus } from "./interfaces/vertices/
22
22
  import { LockedTimeType } from "./interfaces/vertices/locked-times.js";
23
23
  import { Infer, VertexQuery, createVertexQuery } from "./interfaces/vertices/vertex-query.js";
24
24
  import { Deep, DeepWithoutPrivateId, Mixed, MixedWithOptionalId, Serialized, SerializedWithOptionalId } from "./interfaces/vertices/index.js";
25
- import "./interfaces/index.js";
26
25
  import { Types } from "./types/index.js";
27
26
 
28
27
  //#region src/core/index.d.ts
@@ -1 +1 @@
1
- {"version":3,"file":"companies.js","names":[],"sources":["../../../../src/core/interfaces/other/companies.ts"],"sourcesContent":["import type { Partner, IntegrationTypes, OrganizationType, Theme, SamlProvider } from './etc';\nimport type { PlannedScheduledDuration } from '../vertices/properties/planned-scheduled-duration';\nimport type { MaximumScheduleSpan } from '../vertices/properties/maximum-schedule-span';\nimport type { PublicId } from '../vertices/properties';\n\n\ntype Identifier = {\n value: string;\n type: 'VAT' | 'SchoolCode' | 'MunicipalityCode' | 'SchoolSoft' | 'Sdui' | 'Edlevo' | 'Edaktus';\n country: string;\n};\n\ntype AppFeature = {\n substitutionPlanner?: {\n enabled: boolean;\n };\n statisticsModule?: {\n /**\n * Enables the whole statistics module.\n */\n enabled?: boolean;\n\n scb?: boolean;\n lunchCongestion?: boolean;\n };\n includeStepGuide?: boolean;\n};\n\nexport type Address = {\n type: string; // Type of address (e.g., home, work, etc.)\n streetAddress: string; // Street address (e.g., 123 Main St)\n addressLine2?: string; // Optional second line of the address (e.g., Apt 4B)sss\n addressLine3?: string; // Optional third line of the address\n postalCode: string; // Postal code (e.g., 12345)\n locality: string; // City or locality (e.g., New York)\n state?: string; // Optional state or province (e.g., NY)\n region?: string; // Optional region (e.g., Northeast)\n country: string; // Country (e.g., USA)\n geoCoordinates: {\n latitude: string;\n longitude: string;\n };\n};\n\nexport type TimeRosterSection = {\n start: string; // In HH:mm format\n end: string; // In HH:mm format\n id: string;\n name: string;\n};\n\nexport type PublicConfig = {\n filters: {\n groups: boolean;\n teachers: boolean;\n inLocations: boolean;\n tags: boolean;\n subjects: boolean;\n subGroups: boolean;\n };\n showTeacherWorkingHours: boolean;\n multipleSelection: boolean;\n timeFilters: {\n all: boolean;\n periods: boolean;\n };\n lockedTimes: boolean;\n};\n\nexport type AutoSyncConfig = {\n enabled: boolean;\n integration?: IntegrationTypes;\n weekdaysOnly?: boolean;\n time?: string;\n};\n\nexport const INACTIVITY_ACTIONS = {\n REFRESH: 'refresh',\n LOGOUT: 'logout',\n} as const;\nexport type InactivityAction =\n (typeof INACTIVITY_ACTIONS)[keyof typeof INACTIVITY_ACTIONS];\n\nexport type InactivitySettings = {\n /**\n * In units of minutes\n */\n time: number;\n action: InactivityAction;\n};\n\nexport type GlobalDefaultValues = {\n dayStart: string;\n dayEnd: string;\n numDays: number;\n potentialCenter?: string;\n minimizeTeacherGaps?: boolean;\n defaultGroupMinimumBreakLength?: number;\n defaultEventMinimumBreakLength?: number;\n defaultDependencyMinimumBreakLength?: number;\n defaultPlannedScheduledDuration?: PlannedScheduledDuration;\n defaultMaximumScheduleSpan?: MaximumScheduleSpan;\n defaultEventDurationVariance?: number;\n};\n\nexport namespace Company {\n export type core = {\n readonly id: PublicId;\n associatedPartner?: Partner | null;\n createdAt?: string;\n };\n\n type optionals = {\n name?: string;\n logo?: string; // URL to the company's logo\n timezone?: string;\n environment: {\n theme?: Theme;\n organizationType?: OrganizationType;\n appFeatures?: AppFeature;\n canCreateCompanies?: boolean;\n };\n identifiers: Identifier[];\n addresses: Address[];\n constituentTypes: string[];\n samlProviders?: SamlProvider[];\n publicSettings?: PublicConfig;\n autoSync?: AutoSyncConfig;\n organization?: {\n name?: string;\n logo?: string;\n inactivitySettings?: InactivitySettings;\n constituentTypes?: string[];\n environment?: Company.complete['environment'];\n };\n inactivitySettings?: InactivitySettings;\n timeRoster?: TimeRosterSection[];\n globalDefaultValues?: GlobalDefaultValues;\n };\n\n export type complete = core & optionals;\n}\n"],"mappings":";AA4EA,MAAa,qBAAqB;CAChC,SAAS;CACT,QAAS;CACV"}
1
+ {"version":3,"file":"companies.js","names":[],"sources":["../../../../src/core/interfaces/other/companies.ts"],"sourcesContent":["import type { Partner, IntegrationTypes, OrganizationType, Theme, SamlProvider } from './etc';\nimport type { PlannedScheduledDuration } from '../vertices/properties/planned-scheduled-duration';\nimport type { MaximumScheduleSpan } from '../vertices/properties/maximum-schedule-span';\nimport type { PublicId } from '../vertices/properties';\n\n\ntype Identifier = {\n value: string;\n type: 'VAT' | 'SchoolCode' | 'MunicipalityCode' | 'SchoolSoft' | 'Sdui' | 'Edlevo' | 'Edaktus';\n country: string;\n};\n\ntype AppFeature = {\n substitutionPlanner?: {\n enabled: boolean;\n };\n statisticsModule?: {\n /**\n * Enables the whole statistics module.\n */\n enabled?: boolean;\n\n scb?: boolean;\n lunchCongestion?: boolean;\n };\n includeStepGuide?: boolean;\n};\n\nexport type Address = {\n type: string; // Type of address (e.g., home, work, etc.)\n streetAddress: string; // Street address (e.g., 123 Main St)\n addressLine2?: string; // Optional second line of the address (e.g., Apt 4B)sss\n addressLine3?: string; // Optional third line of the address\n postalCode: string; // Postal code (e.g., 12345)\n locality: string; // City or locality (e.g., New York)\n state?: string; // Optional state or province (e.g., NY)\n region?: string; // Optional region (e.g., Northeast)\n country: string; // Country (e.g., USA)\n geoCoordinates: {\n latitude: string;\n longitude: string;\n };\n};\n\nexport type TimeRosterSection = {\n start: string; // In HH:mm format\n end: string; // In HH:mm format\n id: string;\n name: string;\n};\n\nexport type PublicConfig = {\n filters: {\n groups: boolean;\n teachers: boolean;\n inLocations: boolean;\n tags: boolean;\n subjects: boolean;\n subGroups: boolean;\n };\n showTeacherWorkingHours: boolean;\n multipleSelection: boolean;\n timeFilters: {\n all: boolean;\n periods: boolean;\n };\n lockedTimes: boolean;\n};\n\nexport type AutoSyncConfig = {\n enabled: boolean;\n integration?: IntegrationTypes;\n weekdaysOnly?: boolean;\n time?: string;\n};\n\nexport const INACTIVITY_ACTIONS = {\n REFRESH: 'refresh',\n LOGOUT: 'logout',\n} as const;\nexport type InactivityAction =\n (typeof INACTIVITY_ACTIONS)[keyof typeof INACTIVITY_ACTIONS];\n\nexport type InactivitySettings = {\n /**\n * In units of minutes\n */\n time: number;\n action: InactivityAction;\n};\n\nexport type GlobalDefaultValues = {\n dayStart: string;\n dayEnd: string;\n numDays: number;\n potentialCenter?: string;\n minimizeTeacherGaps?: boolean;\n defaultGroupMinimumBreakLength?: number;\n defaultEventMinimumBreakLength?: number;\n defaultDependencyMinimumBreakLength?: number;\n defaultPlannedScheduledDuration?: PlannedScheduledDuration;\n defaultMaximumScheduleSpan?: MaximumScheduleSpan;\n defaultEventDurationVariance?: number;\n};\n\nexport namespace Company {\n export type core = {\n readonly id: PublicId;\n associatedPartner?: Partner | null;\n createdAt?: string;\n };\n\n type optionals = {\n name?: string;\n logo?: string; // URL to the company's logo\n timezone?: string;\n environment: {\n theme?: Theme;\n organizationType?: OrganizationType;\n appFeatures?: AppFeature;\n canCreateCompanies?: boolean;\n };\n identifiers: Identifier[];\n addresses: Address[];\n constituentTypes: string[];\n samlProviders?: SamlProvider[];\n publicSettings?: PublicConfig;\n autoSync?: AutoSyncConfig;\n organization?: {\n name?: string;\n logo?: string;\n inactivitySettings?: InactivitySettings;\n constituentTypes?: string[];\n environment?: Company.complete['environment'];\n };\n inactivitySettings?: InactivitySettings;\n timeRoster?: TimeRosterSection[];\n globalDefaultValues?: GlobalDefaultValues;\n };\n\n export type complete = core & optionals;\n}\n"],"mappings":";AA4EA,MAAa,qBAAqB;CAChC,SAAS;CACT,QAAS"}
@@ -1,5 +1,4 @@
1
1
  import { RealCollection } from "../vertices/util/vertex.js";
2
- import "../vertices/util/index.js";
3
2
  import { IntegrationTypes } from "./etc.js";
4
3
  import { Company } from "./companies.js";
5
4
  import { User } from "./users.js";
@@ -1,5 +1,4 @@
1
1
  import { VertexFactory } from "./util/vertex.js";
2
- import "./util/index.js";
3
2
 
4
3
  //#region src/core/interfaces/vertices/companies.d.ts
5
4
  type CompanyVertex = VertexFactory<'companies', object>;
@@ -1,6 +1,5 @@
1
1
  import { VertexFactory } from "./util/vertex.js";
2
2
  import { Coalesced, EdgeWrapper } from "./util/edges.js";
3
- import "./util/index.js";
4
3
  import { DivisionVertex } from "./divisions.js";
5
4
  import { UserVertex } from "./users.js";
6
5
  import { CompanyVertex } from "./companies.js";
@@ -0,0 +1,24 @@
1
+ import { VertexFactory } from "./util/vertex.js";
2
+ import { EdgeWrapper, Plain } from "./util/edges.js";
3
+ import { BelongsTo } from "./properties/belongs-to.js";
4
+ import { UserVertex } from "./users.js";
5
+ import { MessageVertex } from "./messages.js";
6
+
7
+ //#region src/core/interfaces/vertices/conversations.d.ts
8
+ type ConversationVertex = VertexFactory<'conversations', BelongsTo & {
9
+ user: EdgeWrapper<'single', Plain.Edge<UserVertex>>;
10
+ messages?: EdgeWrapper<'array', Plain.Edge<MessageVertex>>;
11
+ title?: string;
12
+ settings: {
13
+ model: string;
14
+ thinking: boolean;
15
+ };
16
+ tokenUsage?: {
17
+ promptTokens?: number;
18
+ completionTokens?: number;
19
+ };
20
+ active?: boolean;
21
+ }>;
22
+ //#endregion
23
+ export { ConversationVertex };
24
+ //# sourceMappingURL=conversations.d.ts.map
@@ -1,6 +1,5 @@
1
1
  import { VertexFactory } from "./util/vertex.js";
2
2
  import { AvailableLocation, EdgeWrapper, GroupWithExclude, Plain, Wrapped } from "./util/edges.js";
3
- import "./util/index.js";
4
3
  import { Day } from "./properties/days.js";
5
4
  import { Interval } from "./properties/intervals.js";
6
5
  import { Tag } from "./properties/tags.js";
@@ -9,9 +8,9 @@ import { PeriodVertex } from "./periods.js";
9
8
  import { BelongsTo } from "./properties/belongs-to.js";
10
9
  import { PersonVertex } from "./persons.js";
11
10
  import { LocationVertex } from "./locations.js";
11
+ import { SyllabusVertex } from "./syllabuses.js";
12
12
  import { EventVertex } from "./events.js";
13
13
  import { OverlapGroupVertex } from "./overlap-groups.js";
14
- import { SyllabusVertex } from "./syllabuses.js";
15
14
  import { ExceptionVertex } from "./exceptions.js";
16
15
  import { GroupVertex } from "./groups.js";
17
16
  import { LockedTimeVertex } from "./locked-times.js";
@@ -1,6 +1,5 @@
1
1
  import { VertexFactory } from "./util/vertex.js";
2
2
  import { EdgeWrapper, Plain } from "./util/edges.js";
3
- import "./util/index.js";
4
3
  import { MaximumScheduleSpan } from "./properties/maximum-schedule-span.js";
5
4
  import { PlannedScheduledDuration } from "./properties/planned-scheduled-duration.js";
6
5
  import { PeriodVertex } from "./periods.js";
@@ -1,6 +1,5 @@
1
1
  import { VertexFactory } from "./util/vertex.js";
2
2
  import { EdgeWrapper, Plain } from "./util/edges.js";
3
- import "./util/index.js";
4
3
  import { DateType, Partner } from "../other/etc.js";
5
4
  import { DivisionSettingsVertex } from "./division-settings.js";
6
5
  import { GenerationVertex } from "./generations.js";
@@ -1,6 +1,5 @@
1
1
  import { VertexFactory } from "./util/vertex.js";
2
2
  import { AvailableLocation, EdgeWrapper, GroupWithExclude, Plain, Wrapped } from "./util/edges.js";
3
- import "./util/index.js";
4
3
  import { Day } from "./properties/days.js";
5
4
  import { Interval } from "./properties/intervals.js";
6
5
  import { Tag } from "./properties/tags.js";
@@ -10,6 +9,7 @@ import { BelongsTo } from "./properties/belongs-to.js";
10
9
  import { PersonVertex } from "./persons.js";
11
10
  import { LocationVertex } from "./locations.js";
12
11
  import { ThreadVertex } from "./threads.js";
12
+ import { SyllabusVertex } from "./syllabuses.js";
13
13
  import { OverlapGroupVertex } from "./overlap-groups.js";
14
14
  import { CourseVertex } from "./courses.js";
15
15
  import { ExceptionVertex } from "./exceptions.js";
@@ -71,6 +71,7 @@ type ScheduleEventVertex = VertexFactory<'scheduleEvents', EventProperties & {
71
71
  start?: Moment | string;
72
72
  end?: Moment | string;
73
73
  persons?: EdgeWrapper<'array', Plain.Edge<PersonVertex>>;
74
+ syllabus?: EdgeWrapper<'single', Plain.Edge<SyllabusVertex>>;
74
75
  }>;
75
76
  type CalendarEventVertex = VertexFactory<'calendarEvents', BasicSharedProperties & {
76
77
  meta: {
@@ -84,6 +85,7 @@ type CalendarEventVertex = VertexFactory<'calendarEvents', BasicSharedProperties
84
85
  start: number;
85
86
  end: number;
86
87
  exceptions?: EdgeWrapper<'array', Plain.Edge<ExceptionVertex>>;
88
+ syllabus?: EdgeWrapper<'single', Plain.Edge<SyllabusVertex>>;
87
89
  inLocations?: EdgeWrapper<'array', Plain.Edge<LocationVertex> | null>;
88
90
  participants?: EdgeWrapper<'array', Wrapped.Edge<'to', PersonVertex, {
89
91
  groupIndex?: number;
@@ -1,6 +1,5 @@
1
1
  import { Collection, Vertex, VertexFactory } from "./util/vertex.js";
2
2
  import { Coalesced, EdgeWrapper, Plain } from "./util/edges.js";
3
- import "./util/index.js";
4
3
  import { PersonVertex } from "./persons.js";
5
4
  import { LocationVertex } from "./locations.js";
6
5
  import { EventVertex } from "./events.js";
@@ -1,7 +1,5 @@
1
1
  import { VertexFactory } from "./util/vertex.js";
2
- import "./util/index.js";
3
2
  import { User } from "../other/users.js";
4
- import "../other/index.js";
5
3
  import { BelongsTo } from "./properties/belongs-to.js";
6
4
  import { Moment } from "moment";
7
5
 
@@ -1,6 +1,5 @@
1
1
  import { VertexFactory } from "./util/vertex.js";
2
2
  import { EdgeWrapper, Plain, Wrapped } from "./util/edges.js";
3
- import "./util/index.js";
4
3
  import { Day } from "./properties/days.js";
5
4
  import { Interval } from "./properties/intervals.js";
6
5
  import { Tag } from "./properties/tags.js";
@@ -2,7 +2,6 @@ import { Collection, Vertex } from "./util/vertex.js";
2
2
  import { IdKey, InternalIdKey } from "../../types/common/index.js";
3
3
  import { DeepVertexExport, DeepVertexExportOmitPrivateId, MixedVertexExport, MixedWithOptionalIdVertexExport } from "./util/deep-vertex-export/index.js";
4
4
  import { SerializedVertexExport } from "./util/serialized-vertex-export.js";
5
- import "./util/index.js";
6
5
  import { PeriodVertex } from "./periods.js";
7
6
  import { RootIntervalVertex } from "./root-intervals.js";
8
7
  import { CalendarException, DivisionSettingsVertex } from "./division-settings.js";
@@ -12,15 +11,17 @@ import { PersonVertex } from "./persons.js";
12
11
  import { LocationVertex } from "./locations.js";
13
12
  import { UserVertex } from "./users.js";
14
13
  import { ThreadVertex } from "./threads.js";
14
+ import { SyllabusVertex } from "./syllabuses.js";
15
15
  import { CalendarEventVertex, EventVertex, ScheduleEventVertex } from "./events.js";
16
16
  import { OverlapGroupVertex } from "./overlap-groups.js";
17
- import { SyllabusVertex } from "./syllabuses.js";
18
17
  import { CourseVertex } from "./courses.js";
19
18
  import { CalendarExceptionAction, ExceptionStatus, ExceptionVertex } from "./exceptions.js";
20
19
  import { GroupVertex } from "./groups.js";
21
20
  import { LockedTimeType, LockedTimeVertex } from "./locked-times.js";
22
21
  import { TeacherVertex } from "./teachers.js";
23
22
  import { ConfigurationFilterVertex, ConfigurationRuleVertex, ConfigurationTemplateVertex, ConfigurationVertex } from "./configurations.js";
23
+ import { MessageVertex } from "./messages.js";
24
+ import { ConversationVertex } from "./conversations.js";
24
25
  import { Infer, VertexQuery, createVertexQuery } from "./vertex-query.js";
25
26
 
26
27
  //#region src/core/interfaces/vertices/index.d.ts
@@ -61,6 +62,8 @@ declare namespace Serialized {
61
62
  type RootInterval = SerializedVertexExport<RootIntervalVertex>;
62
63
  type Syllabus = SerializedVertexExport<SyllabusVertex>;
63
64
  type Thread = SerializedVertexExport<ThreadVertex>;
65
+ type Conversation = SerializedVertexExport<ConversationVertex>;
66
+ type Message = SerializedVertexExport<MessageVertex>;
64
67
  type User = SerializedVertexExport<UserVertex>;
65
68
  namespace Configuration {
66
69
  type Base = SerializedVertexExport<ConfigurationVertex>;
@@ -90,6 +93,8 @@ declare namespace Deep {
90
93
  type RootInterval = DeepVertexExport<RootIntervalVertex>;
91
94
  type Syllabus = DeepVertexExport<SyllabusVertex>;
92
95
  type Thread = DeepVertexExport<ThreadVertex>;
96
+ type Conversation = DeepVertexExport<ConversationVertex>;
97
+ type Message = DeepVertexExport<MessageVertex>;
93
98
  type User = DeepVertexExport<UserVertex>;
94
99
  namespace Configuration {
95
100
  type Base = DeepVertexExport<ConfigurationVertex>;
@@ -119,6 +124,8 @@ declare namespace DeepWithoutPrivateId {
119
124
  type RootInterval = DeepVertexExportOmitPrivateId<RootIntervalVertex>;
120
125
  type Syllabus = DeepVertexExportOmitPrivateId<SyllabusVertex>;
121
126
  type Thread = DeepVertexExportOmitPrivateId<ThreadVertex>;
127
+ type Conversation = DeepVertexExportOmitPrivateId<ConversationVertex>;
128
+ type Message = DeepVertexExportOmitPrivateId<MessageVertex>;
122
129
  type User = DeepVertexExportOmitPrivateId<UserVertex>;
123
130
  namespace Configuration {
124
131
  type Base = DeepVertexExport<ConfigurationVertex>;
@@ -148,6 +155,8 @@ declare namespace Mixed {
148
155
  type RootInterval = MixedVertexExport<RootIntervalVertex>;
149
156
  type Syllabus = MixedVertexExport<SyllabusVertex>;
150
157
  type Thread = MixedVertexExport<ThreadVertex>;
158
+ type Conversation = MixedVertexExport<ConversationVertex>;
159
+ type Message = MixedVertexExport<MessageVertex>;
151
160
  type User = MixedVertexExport<UserVertex>;
152
161
  namespace Configuration {
153
162
  type Base = MixedVertexExport<ConfigurationVertex>;
@@ -177,6 +186,8 @@ declare namespace MixedWithOptionalId {
177
186
  type RootInterval = MixedWithOptionalIdVertexExport<RootIntervalVertex>;
178
187
  type Syllabus = MixedWithOptionalIdVertexExport<SyllabusVertex>;
179
188
  type Thread = MixedWithOptionalIdVertexExport<ThreadVertex>;
189
+ type Conversation = MixedWithOptionalIdVertexExport<ConversationVertex>;
190
+ type Message = MixedWithOptionalIdVertexExport<MessageVertex>;
180
191
  type User = MixedWithOptionalIdVertexExport<UserVertex>;
181
192
  namespace Configuration {
182
193
  type Base = MixedWithOptionalIdVertexExport<ConfigurationVertex>;
@@ -207,6 +218,8 @@ declare namespace SerializedWithOptionalId {
207
218
  export type RootInterval = MakeIdsOptional<Serialized.RootInterval>;
208
219
  export type Syllabus = MakeIdsOptional<Serialized.Syllabus>;
209
220
  export type Thread = MakeIdsOptional<Serialized.Thread>;
221
+ export type Conversation = MakeIdsOptional<Serialized.Conversation>;
222
+ export type Message = MakeIdsOptional<Serialized.Message>;
210
223
  export type User = MakeIdsOptional<Serialized.User>;
211
224
  export namespace Configuration {
212
225
  type Base = MakeIdsOptional<Serialized.Configuration.Base>;
@@ -1,6 +1,5 @@
1
1
  import { VertexFactory } from "./util/vertex.js";
2
2
  import { EdgeWrapper, Plain } from "./util/edges.js";
3
- import "./util/index.js";
4
3
  import { Day } from "./properties/days.js";
5
4
  import { Tag } from "./properties/tags.js";
6
5
  import { BelongsTo } from "./properties/belongs-to.js";
@@ -1,9 +1,7 @@
1
1
  import { VertexFactory } from "./util/vertex.js";
2
2
  import { Coalesced, EdgeWrapper } from "./util/edges.js";
3
- import "./util/index.js";
4
3
  import { Interval } from "./properties/intervals.js";
5
4
  import { Tag } from "./properties/tags.js";
6
- import "./properties/index.js";
7
5
  import { BelongsTo } from "./properties/belongs-to.js";
8
6
  import { LocationVertex } from "./locations.js";
9
7
  import { EventVertex } from "./events.js";
@@ -0,0 +1,21 @@
1
+ import { VertexFactory } from "./util/vertex.js";
2
+ import { EdgeWrapper, Plain } from "./util/edges.js";
3
+ import { BelongsTo } from "./properties/belongs-to.js";
4
+ import { UserVertex } from "./users.js";
5
+ import { ConversationVertex } from "./conversations.js";
6
+
7
+ //#region src/core/interfaces/vertices/messages.d.ts
8
+ type MessageVertex = VertexFactory<'messages', BelongsTo & {
9
+ user: EdgeWrapper<'single', Plain.Edge<UserVertex>>;
10
+ conversation: EdgeWrapper<'single', Plain.Edge<ConversationVertex>>;
11
+ type: string;
12
+ content?: string;
13
+ status?: string;
14
+ name?: string;
15
+ args?: unknown;
16
+ response?: unknown;
17
+ error?: string;
18
+ }>;
19
+ //#endregion
20
+ export { MessageVertex };
21
+ //# sourceMappingURL=messages.d.ts.map
@@ -1,6 +1,5 @@
1
1
  import { VertexFactory } from "./util/vertex.js";
2
2
  import { Coalesced, EdgeWrapper } from "./util/edges.js";
3
- import "./util/index.js";
4
3
  import { BelongsTo } from "./properties/belongs-to.js";
5
4
  import { EventVertex } from "./events.js";
6
5
  import { CourseVertex } from "./courses.js";
@@ -1,7 +1,5 @@
1
1
  import { VertexFactory } from "./util/vertex.js";
2
- import "./util/index.js";
3
2
  import { Interval } from "./properties/intervals.js";
4
- import "./properties/index.js";
5
3
  import { BelongsTo } from "./properties/belongs-to.js";
6
4
  import { Moment } from "moment";
7
5
 
@@ -1,6 +1,5 @@
1
1
  import { VertexFactory } from "./util/vertex.js";
2
2
  import { EdgeWrapper, Plain } from "./util/edges.js";
3
- import "./util/index.js";
4
3
  import { Tag } from "./properties/tags.js";
5
4
  import { BelongsTo } from "./properties/belongs-to.js";
6
5
  import { GroupVertex } from "./groups.js";
@@ -1,5 +1,4 @@
1
1
  import { EdgeWrapper, Plain } from "../util/edges.js";
2
- import "../util/index.js";
3
2
  import { DivisionVertex } from "../divisions.js";
4
3
 
5
4
  //#region src/core/interfaces/vertices/properties/belongs-to.d.ts
@@ -1,5 +1,4 @@
1
1
  import { Coalesced } from "../util/edges.js";
2
- import "../util/index.js";
3
2
 
4
3
  //#region src/core/interfaces/vertices/properties/coalesced.d.ts
5
4
  type Coalesced$1<T, M = string> = Coalesced.Util.Value<T, M>;
@@ -1,7 +1,5 @@
1
1
  import { VertexFactory } from "./util/vertex.js";
2
- import "./util/index.js";
3
2
  import { Interval } from "./properties/intervals.js";
4
- import "./properties/index.js";
5
3
  import { BelongsTo } from "./properties/belongs-to.js";
6
4
  import { Moment } from "moment";
7
5
 
@@ -1,5 +1,4 @@
1
1
  import { VertexFactory } from "./util/vertex.js";
2
- import "./util/index.js";
3
2
  import { BelongsTo } from "./properties/belongs-to.js";
4
3
 
5
4
  //#region src/core/interfaces/vertices/syllabuses.d.ts
@@ -1,6 +1,5 @@
1
1
  import { VertexFactory } from "./util/vertex.js";
2
2
  import { EdgeWrapper, Plain } from "./util/edges.js";
3
- import "./util/index.js";
4
3
  import { Day } from "./properties/days.js";
5
4
  import { Interval } from "./properties/intervals.js";
6
5
  import { Tag } from "./properties/tags.js";
@@ -1,6 +1,5 @@
1
1
  import { VertexFactory } from "./util/vertex.js";
2
2
  import { Coalesced, EdgeWrapper, Plain, ThreadMessage } from "./util/edges.js";
3
- import "./util/index.js";
4
3
  import { UserVertex } from "./users.js";
5
4
  import { EventVertex } from "./events.js";
6
5
 
@@ -1,5 +1,4 @@
1
1
  import { VertexFactory } from "./util/vertex.js";
2
- import "./util/index.js";
3
2
 
4
3
  //#region src/core/interfaces/vertices/users.d.ts
5
4
  type UserVertex = VertexFactory<'users', {
@@ -10,12 +10,12 @@ import { AssertNoInvalidExpandKeys } from "./assert-no-invalid-expand-keys.js";
10
10
  //#region src/core/interfaces/vertices/util/custom-vertex-export/index.d.ts
11
11
  declare namespace HandleEdge {
12
12
  type Recursion<V extends Vertex<Collection>, Query> = [Query] extends [never] ? string : Query extends VertexQuery<V> ? _CustomVertexExport<V, Query> : never;
13
- export type Plain<E$1 extends EdgeBase<any, any>, Query> = E$1 extends Plain.Edge<infer V> ? Recursion<V, Query> : never;
14
- 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;
15
- export type Coalesced<E$1 extends EdgeBase<any, any>, Query> = E$1 extends Coalesced.Edge<infer V, infer O, 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;
16
- 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;
17
- 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;
18
- export type ThreadMessage<E$1 extends EdgeBase<any, any>, Query> = E$1 extends ThreadMessage.Edge<infer U extends Vertex<Collection>, infer T extends Vertex<Collection>, infer Extra extends object> ? ThreadMessage.Util.Value<Recursion<U, IntersectExpandSelectPath<Lookup<Query, ThreadMessage.Util.Keys.User>, VertexQuery<U>>>, Recursion<T, IntersectExpandSelectPath<Lookup<Query, ThreadMessage.Util.Keys.TaggedPersons>, VertexQuery<T>>>, Extra> : never;
13
+ export type Plain<E extends EdgeBase<any, any>, Query> = E extends Plain.Edge<infer V> ? Recursion<V, Query> : never;
14
+ export type Wrapped<E extends EdgeBase<any, any>, Query> = E 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;
15
+ export type Coalesced<E extends EdgeBase<any, any>, Query> = E extends Coalesced.Edge<infer V, infer O, 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;
16
+ export type GroupWithExclude<E extends EdgeBase<any, any>, Query> = E 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;
17
+ export type AvailableLocation<E extends EdgeBase<any, any>, Query> = E 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;
18
+ export type ThreadMessage<E extends EdgeBase<any, any>, Query> = E extends ThreadMessage.Edge<infer U extends Vertex<Collection>, infer T extends Vertex<Collection>, infer Extra extends object> ? ThreadMessage.Util.Value<Recursion<U, IntersectExpandSelectPath<Lookup<Query, ThreadMessage.Util.Keys.User>, VertexQuery<U>>>, Recursion<T, IntersectExpandSelectPath<Lookup<Query, ThreadMessage.Util.Keys.TaggedPersons>, VertexQuery<T>>>, Extra> : never;
19
19
  export {};
20
20
  }
21
21
  type _CustomVertexExport<V extends Vertex<Collection>, Q extends VertexQuery<V>> = 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>> | HandleEdge.ThreadMessage<E, ExtractChildObject<Q[ExpandKey], K>>, ExtractChildKeys<KeysOf<V, Q>, K>>) : E>, M> | ExtractNullish<V[K]>) : never }>;
@@ -6,7 +6,7 @@ import { ExpandKey, SelectKey } from "../common.js";
6
6
  /**
7
7
  * Lookup type that returns the value type for key K in object Obj,
8
8
  */
9
- type Lookup<Obj, K$1, ELSE = never> = K$1 extends keyof Obj ? Obj[K$1] : ELSE;
9
+ type Lookup<Obj, K, ELSE = never> = K extends keyof Obj ? Obj[K] : ELSE;
10
10
  /**
11
11
  * Intersect two expand/select specifications.
12
12
  *
@@ -19,8 +19,8 @@ type Lookup<Obj, K$1, ELSE = never> = K$1 extends keyof Obj ? Obj[K$1] : ELSE;
19
19
  * Useful to constrain a requested expand/select spec (A) by an allowed/spec (B),
20
20
  * yielding only the common subset.
21
21
  */
22
- type IntersectExpandSelectPath<A, B$1> = _IntersectExpandSelectPath<DeepNonNullable<A>, DeepNonNullable<B$1>>;
23
- type _IntersectExpandSelectPath<A, B$1> = [A] extends [never] ? never : { [K in keyof A & keyof B$1]: K extends SelectKey ? A[K] extends (infer V1)[] ? B$1[K] extends (infer V2)[] ? (V1 & V2)[] | Extract<A[K], null | undefined> : never : never : K extends ExpandKey ? { [S in keyof A[K] & keyof B$1[K]]: A[K][S] extends object ? B$1[K][S] extends object ? IntersectExpandSelectPath<A[K][S], B$1[K][S]> : never : never } : never };
22
+ type IntersectExpandSelectPath<A, B> = _IntersectExpandSelectPath<DeepNonNullable<A>, DeepNonNullable<B>>;
23
+ type _IntersectExpandSelectPath<A, B> = [A] extends [never] ? never : { [K in keyof A & keyof B]: K extends SelectKey ? A[K] extends (infer V1)[] ? B[K] extends (infer V2)[] ? (V1 & V2)[] | Extract<A[K], null | undefined> : never : never : K extends ExpandKey ? { [S in keyof A[K] & keyof B[K]]: A[K][S] extends object ? B[K][S] extends object ? IntersectExpandSelectPath<A[K][S], B[K][S]> : never : never } : never };
24
24
  /**
25
25
  * Extracts the parent keys from a set of dot-notation keys.
26
26
  *
@@ -43,7 +43,7 @@ type ExtractChildKeys<Keys extends keyof any, ParentKey extends string> = Keys e
43
43
  * ParentKey: 'a'
44
44
  * Object: { 'a': string; 'a.1': number; 'a.2': boolean; 'b.1': string; 'c': Date } => { '1': number; '2': boolean }
45
45
  */
46
- type ExtractChildObject<Object$1, ParentKey> = { [K in keyof Object$1 as K extends `${ParentKey & string}.${infer S}` ? S : never]: Object$1[K] };
46
+ type ExtractChildObject<Object, ParentKey> = { [K in keyof Object as K extends `${ParentKey & string}.${infer S}` ? S : never]: Object[K] };
47
47
  /**
48
48
  * Does the same as the built-in Pick<T, Keys>, but does not restrict the Keys to keyof T. Nullish and undefined values are preserved.
49
49
  */