@royalschedule/maps 4.0.30 → 4.0.32

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 (285) 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 +4 -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 +4 -4
  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 +4 -4
  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 -33
  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 +181 -1
  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 +7 -6
  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 +12 -5
  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 +1 -2
  184. package/dist/core/interfaces/vertices/courses.d.ts +0 -1
  185. package/dist/core/interfaces/vertices/division-settings.d.ts +0 -1
  186. package/dist/core/interfaces/vertices/divisions.d.ts +0 -1
  187. package/dist/core/interfaces/vertices/events.d.ts +2 -1
  188. package/dist/core/interfaces/vertices/exceptions.d.ts +0 -1
  189. package/dist/core/interfaces/vertices/generations.d.ts +0 -2
  190. package/dist/core/interfaces/vertices/groups.d.ts +0 -1
  191. package/dist/core/interfaces/vertices/index.d.ts +14 -1
  192. package/dist/core/interfaces/vertices/locations.d.ts +0 -1
  193. package/dist/core/interfaces/vertices/locked-times.d.ts +0 -2
  194. package/dist/core/interfaces/vertices/overlap-groups.d.ts +0 -1
  195. package/dist/core/interfaces/vertices/periods.d.ts +0 -2
  196. package/dist/core/interfaces/vertices/persons.d.ts +0 -1
  197. package/dist/core/interfaces/vertices/properties/belongs-to.d.ts +0 -1
  198. package/dist/core/interfaces/vertices/properties/coalesced.d.ts +0 -1
  199. package/dist/core/interfaces/vertices/root-intervals.d.ts +0 -2
  200. package/dist/core/interfaces/vertices/syllabuses.d.ts +0 -1
  201. package/dist/core/interfaces/vertices/teachers.d.ts +0 -1
  202. package/dist/core/interfaces/vertices/threads.d.ts +31 -0
  203. package/dist/core/interfaces/vertices/users.d.ts +4 -2
  204. package/dist/core/interfaces/vertices/util/custom-vertex-export/index.d.ts +9 -8
  205. package/dist/core/interfaces/vertices/util/custom-vertex-export/util.d.ts +4 -4
  206. package/dist/core/interfaces/vertices/util/deep-vertex-export/index.d.ts +9 -8
  207. package/dist/core/interfaces/vertices/util/edges.d.ts +26 -8
  208. package/dist/core/interfaces/vertices/util/util.d.ts +24 -20
  209. package/dist/core/interfaces/vertices/util/vertex-query/index.d.ts +16 -11
  210. package/dist/core/interfaces/vertices/util/vertex.d.ts +2 -2
  211. package/dist/core/interfaces/vertices/vertex-query.d.ts +29 -26
  212. package/dist/core/interfaces/vertices/vertex-query.js +8 -0
  213. package/dist/core/interfaces/vertices/vertex-query.js.map +1 -1
  214. package/dist/core/to/configurations.js +2 -1
  215. package/dist/core/to/configurations.js.map +1 -1
  216. package/dist/core/to/courses.js +2 -1
  217. package/dist/core/to/courses.js.map +1 -1
  218. package/dist/core/to/division.js.map +1 -1
  219. package/dist/core/to/events.js +4 -2
  220. package/dist/core/to/events.js.map +1 -1
  221. package/dist/core/to/exceptions.js +2 -1
  222. package/dist/core/to/exceptions.js.map +1 -1
  223. package/dist/core/to/groups.js +2 -1
  224. package/dist/core/to/groups.js.map +1 -1
  225. package/dist/core/to/locations.js +2 -1
  226. package/dist/core/to/locations.js.map +1 -1
  227. package/dist/core/to/locked-times.js +2 -1
  228. package/dist/core/to/locked-times.js.map +1 -1
  229. package/dist/core/to/overlap-groups.js +2 -1
  230. package/dist/core/to/overlap-groups.js.map +1 -1
  231. package/dist/core/to/periods.js +2 -1
  232. package/dist/core/to/periods.js.map +1 -1
  233. package/dist/core/to/persons.js +2 -1
  234. package/dist/core/to/persons.js.map +1 -1
  235. package/dist/core/to/root-intervals.js +2 -1
  236. package/dist/core/to/root-intervals.js.map +1 -1
  237. package/dist/core/to/schedules.d.ts +0 -1
  238. package/dist/core/to/schedules.js.map +1 -1
  239. package/dist/core/to/settings.js +2 -1
  240. package/dist/core/to/settings.js.map +1 -1
  241. package/dist/core/to/syllabuses.js +2 -1
  242. package/dist/core/to/syllabuses.js.map +1 -1
  243. package/dist/core/to/teachers.js +2 -1
  244. package/dist/core/to/teachers.js.map +1 -1
  245. package/dist/core/to/util.d.ts +0 -2
  246. package/dist/core/to/util.js +2 -1
  247. package/dist/core/to/util.js.map +1 -1
  248. package/dist/core/types/index.d.ts +10 -1
  249. package/dist/core/util.js +2 -1
  250. package/dist/core/util.js.map +1 -1
  251. package/dist/identify/constants/index.js.map +1 -1
  252. package/dist/identify/index.js +2 -1
  253. package/dist/identify/index.js.map +1 -1
  254. package/dist/sdui/from/classes.js.map +1 -1
  255. package/dist/sdui/from/courses.js.map +1 -1
  256. package/dist/sdui/from/holidays.js.map +1 -1
  257. package/dist/sdui/from/index.js.map +1 -1
  258. package/dist/sdui/from/lessons.js.map +1 -1
  259. package/dist/sdui/from/rooms.js.map +1 -1
  260. package/dist/sdui/from/schedules.d.ts +0 -2
  261. package/dist/sdui/from/schedules.js.map +1 -1
  262. package/dist/sdui/from/school-years.js.map +1 -1
  263. package/dist/sdui/from/substitution-plans.js.map +1 -1
  264. package/dist/sdui/from/teachers.js.map +1 -1
  265. package/dist/sdui/to/classes.js.map +1 -1
  266. package/dist/sdui/to/courses.js.map +1 -1
  267. package/dist/sdui/to/holidays.js.map +1 -1
  268. package/dist/sdui/to/hours.js.map +1 -1
  269. package/dist/sdui/to/index.d.ts +0 -2
  270. package/dist/sdui/to/lessons.js.map +1 -1
  271. package/dist/sdui/to/rooms.js.map +1 -1
  272. package/dist/sdui/to/schedules.js.map +1 -1
  273. package/dist/sdui/to/school-years.js.map +1 -1
  274. package/dist/sdui/to/substitution-plans.js +6 -3
  275. package/dist/sdui/to/substitution-plans.js.map +1 -1
  276. package/dist/sdui/to/teachers.js.map +1 -1
  277. package/dist/vKlass/from/index.js.map +1 -1
  278. package/dist/vKlass/from/schedule.d.ts +0 -1
  279. package/dist/vKlass/from/schedule.js.map +1 -1
  280. package/dist/vKlass/to/schedules.js +17 -6
  281. package/dist/vKlass/to/schedules.js.map +1 -1
  282. package/package.json +1 -1
  283. package/dist/core/interfaces/index.d.ts +0 -23
  284. package/dist/core/interfaces/other/index.d.ts +0 -6
  285. package/dist/core/interfaces/vertices/util/index.d.ts +0 -6
@@ -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 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 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,9 +1,8 @@
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
- import { CompanyVertex } from "./companies.js";
6
4
  import { UserVertex } from "./users.js";
5
+ import { CompanyVertex } from "./companies.js";
7
6
 
8
7
  //#region src/core/interfaces/vertices/configurations.d.ts
9
8
  type ConfigurationType = 'filter' | 'template' | 'rule';
@@ -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";
@@ -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";
@@ -9,6 +8,7 @@ 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 { ThreadVertex } from "./threads.js";
12
12
  import { OverlapGroupVertex } from "./overlap-groups.js";
13
13
  import { CourseVertex } from "./courses.js";
14
14
  import { ExceptionVertex } from "./exceptions.js";
@@ -62,6 +62,7 @@ type EventProperties = BasicSharedProperties & {
62
62
  groupIndex?: number;
63
63
  rank?: number;
64
64
  }>>;
65
+ threads?: EdgeWrapper<'array', Plain.Edge<ThreadVertex>>;
65
66
  };
66
67
  type EventVertex = VertexFactory<'events', EventProperties>;
67
68
  type ScheduleEventVertex = VertexFactory<'scheduleEvents', EventProperties & {
@@ -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";
@@ -10,6 +9,8 @@ import { GenerationVertex } from "./generations.js";
10
9
  import { DivisionVertex, StepGuideProgress } from "./divisions.js";
11
10
  import { PersonVertex } from "./persons.js";
12
11
  import { LocationVertex } from "./locations.js";
12
+ import { UserVertex } from "./users.js";
13
+ import { ThreadVertex } from "./threads.js";
13
14
  import { CalendarEventVertex, EventVertex, ScheduleEventVertex } from "./events.js";
14
15
  import { OverlapGroupVertex } from "./overlap-groups.js";
15
16
  import { SyllabusVertex } from "./syllabuses.js";
@@ -58,6 +59,8 @@ declare namespace Serialized {
58
59
  type Person = SerializedVertexExport<PersonVertex>;
59
60
  type RootInterval = SerializedVertexExport<RootIntervalVertex>;
60
61
  type Syllabus = SerializedVertexExport<SyllabusVertex>;
62
+ type Thread = SerializedVertexExport<ThreadVertex>;
63
+ type User = SerializedVertexExport<UserVertex>;
61
64
  namespace Configuration {
62
65
  type Base = SerializedVertexExport<ConfigurationVertex>;
63
66
  type Filter = SerializedVertexExport<ConfigurationFilterVertex>;
@@ -85,6 +88,8 @@ declare namespace Deep {
85
88
  type Person = DeepVertexExport<PersonVertex>;
86
89
  type RootInterval = DeepVertexExport<RootIntervalVertex>;
87
90
  type Syllabus = DeepVertexExport<SyllabusVertex>;
91
+ type Thread = DeepVertexExport<ThreadVertex>;
92
+ type User = DeepVertexExport<UserVertex>;
88
93
  namespace Configuration {
89
94
  type Base = DeepVertexExport<ConfigurationVertex>;
90
95
  type Filter = DeepVertexExport<ConfigurationFilterVertex>;
@@ -112,6 +117,8 @@ declare namespace DeepWithoutPrivateId {
112
117
  type Person = DeepVertexExportOmitPrivateId<PersonVertex>;
113
118
  type RootInterval = DeepVertexExportOmitPrivateId<RootIntervalVertex>;
114
119
  type Syllabus = DeepVertexExportOmitPrivateId<SyllabusVertex>;
120
+ type Thread = DeepVertexExportOmitPrivateId<ThreadVertex>;
121
+ type User = DeepVertexExportOmitPrivateId<UserVertex>;
115
122
  namespace Configuration {
116
123
  type Base = DeepVertexExport<ConfigurationVertex>;
117
124
  type Filter = DeepVertexExport<ConfigurationFilterVertex>;
@@ -139,6 +146,8 @@ declare namespace Mixed {
139
146
  type Person = MixedVertexExport<PersonVertex>;
140
147
  type RootInterval = MixedVertexExport<RootIntervalVertex>;
141
148
  type Syllabus = MixedVertexExport<SyllabusVertex>;
149
+ type Thread = MixedVertexExport<ThreadVertex>;
150
+ type User = MixedVertexExport<UserVertex>;
142
151
  namespace Configuration {
143
152
  type Base = MixedVertexExport<ConfigurationVertex>;
144
153
  type Filter = MixedVertexExport<ConfigurationFilterVertex>;
@@ -166,6 +175,8 @@ declare namespace MixedWithOptionalId {
166
175
  type Person = MixedWithOptionalIdVertexExport<PersonVertex>;
167
176
  type RootInterval = MixedWithOptionalIdVertexExport<RootIntervalVertex>;
168
177
  type Syllabus = MixedWithOptionalIdVertexExport<SyllabusVertex>;
178
+ type Thread = MixedWithOptionalIdVertexExport<ThreadVertex>;
179
+ type User = MixedWithOptionalIdVertexExport<UserVertex>;
169
180
  namespace Configuration {
170
181
  type Base = MixedWithOptionalIdVertexExport<ConfigurationVertex>;
171
182
  type Filter = MixedWithOptionalIdVertexExport<ConfigurationFilterVertex>;
@@ -194,6 +205,8 @@ declare namespace SerializedWithOptionalId {
194
205
  export type Person = MakeIdsOptional<Serialized.Person>;
195
206
  export type RootInterval = MakeIdsOptional<Serialized.RootInterval>;
196
207
  export type Syllabus = MakeIdsOptional<Serialized.Syllabus>;
208
+ export type Thread = MakeIdsOptional<Serialized.Thread>;
209
+ export type User = MakeIdsOptional<Serialized.User>;
197
210
  export namespace Configuration {
198
211
  type Base = MakeIdsOptional<Serialized.Configuration.Base>;
199
212
  type Filter = MakeIdsOptional<Serialized.Configuration.Filter>;
@@ -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";
@@ -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";
@@ -0,0 +1,31 @@
1
+ import { VertexFactory } from "./util/vertex.js";
2
+ import { Coalesced, EdgeWrapper, ThreadMessage } from "./util/edges.js";
3
+ import { UserVertex } from "./users.js";
4
+ import { EventVertex } from "./events.js";
5
+
6
+ //#region src/core/interfaces/vertices/threads.d.ts
7
+ type State = {
8
+ view?: 'data-tables' | 'editor';
9
+ filter?: Record<string, string>;
10
+ selector: string;
11
+ };
12
+ type ThreadVertex = VertexFactory<'threads', {
13
+ source?: EdgeWrapper<'single', Coalesced.Edge<EventVertex>>;
14
+ state?: State;
15
+ messages: EdgeWrapper<'array', ThreadMessage.Edge<UserVertex, UserVertex, {
16
+ _id: string;
17
+ content: string;
18
+ edited?: boolean;
19
+ createdAt: string | Date;
20
+ updatedAt: string | Date;
21
+ }>>;
22
+ color?: string;
23
+ resolved?: boolean;
24
+ positionMeta?: {
25
+ x: number;
26
+ y: number;
27
+ };
28
+ }>;
29
+ //#endregion
30
+ export { ThreadVertex };
31
+ //# sourceMappingURL=threads.d.ts.map
@@ -1,8 +1,10 @@
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
- type UserVertex = VertexFactory<'users', object>;
4
+ type UserVertex = VertexFactory<'users', {
5
+ username: string;
6
+ color?: string;
7
+ }>;
6
8
  //#endregion
7
9
  export { UserVertex };
8
10
  //# sourceMappingURL=users.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { Collection, Vertex } from "../vertex.js";
2
- import { AvailableLocation, Coalesced, EdgeBase, EdgeWrapper, GroupWithExclude, Plain, Wrapped } from "../edges.js";
2
+ import { AvailableLocation, Coalesced, EdgeBase, EdgeWrapper, GroupWithExclude, Plain, ThreadMessage, Wrapped } from "../edges.js";
3
3
  import { ExtractNullish, Prettify, SetMultiplicity } from "../util.js";
4
4
  import { ExpandKey, OmitEdges, PickEdges } from "../common.js";
5
5
  import { KeysOf } from "../keys-of.js";
@@ -10,19 +10,20 @@ 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;
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;
18
19
  export {};
19
20
  }
20
- 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>>, ExtractChildKeys<KeysOf<V, Q>, K>>) : E>, M> | ExtractNullish<V[K]>) : never }>;
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 }>;
21
22
  /**
22
23
  * Recursively exports a Vertex type to a plain object structure,
23
24
  * selecting and expanding properties and edges according to the provided expand/select path.
24
25
  * - Non-edge properties are included based on selection.
25
- * - Edge properties are exported and expanded according to their type (Plain, Coalesced, GroupWithExclude, AvailableLocation).
26
+ * - Edge properties are exported and expanded according to their type (Plain, Coalesced, GroupWithExclude, AvailableLocation, ThreadMessage).
26
27
  * - Handles edge multiplicity (single/array) and optional/null cases.
27
28
  * - Invalid or unsupported edge unions are filtered out as `never`.
28
29
  * - Supports dot-notation for nested property selection and expansion.
@@ -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
  */
@@ -1,5 +1,5 @@
1
1
  import { Collection, IDKey, IDType, OmitInternalVertexKeys, PrivateIDKey, PrivateIDType, Vertex } from "../vertex.js";
2
- import { AvailableLocation, Coalesced, EdgeBase, EdgeWrapper, GroupWithExclude, Plain, Wrapped } from "../edges.js";
2
+ import { AvailableLocation, Coalesced, EdgeBase, EdgeWrapper, GroupWithExclude, Plain, ThreadMessage, Wrapped } from "../edges.js";
3
3
  import { ExtractNullish, Prettify, SetMultiplicity } from "../util.js";
4
4
  import { Decrement, MaxDepth, MinDepth, OmitEdges, PickEdges, SupportedDepths } from "../common.js";
5
5
 
@@ -12,11 +12,12 @@ type ExportOptions = {
12
12
  type IDTypes = IDType | PrivateIDType;
13
13
  declare namespace HandleEdge {
14
14
  type Recursion<V extends Vertex<Collection>, D extends SupportedDepths, Opts extends ExportOptions> = _DeepVertexExport<V, Decrement<D>, Opts> | (Opts['mixed'] extends true ? IDTypes : never);
15
- export type Plain<E$1 extends EdgeBase<any, any>, D extends SupportedDepths, Opts extends ExportOptions> = E$1 extends Plain.Edge<infer V> ? Recursion<V, D, Opts> : never;
16
- export type Wrapped<E$1 extends EdgeBase<any, any>, D extends SupportedDepths, Opts extends ExportOptions> = E$1 extends Wrapped.Edge<infer K, infer V extends Vertex<any>, infer Extra extends object> ? Wrapped.Util.Value<K, Recursion<V, D, Opts>, Extra> : never;
17
- export type Coalesced<E$1 extends EdgeBase<any, any>, D extends SupportedDepths, Opts extends ExportOptions> = E$1 extends Coalesced.Edge<infer V, infer O extends object, infer Extra extends object> ? V extends Vertex<Collection> ? Coalesced.Util.Value<Recursion<V, D, Opts>, Coalesced.Util.ToModel<V>, O, Extra> : never : never;
18
- export type GroupWithExclude<E$1 extends EdgeBase<any, any>, D extends SupportedDepths, Opts extends ExportOptions> = E$1 extends GroupWithExclude.Edge<infer G extends Vertex<any>, infer P extends Vertex<any>, infer Extra extends object> ? GroupWithExclude.Util.Value<Recursion<G, D, Opts>, Recursion<P, D, Opts>, Extra> : never;
19
- export type AvailableLocation<E$1 extends EdgeBase<any, any>, D extends SupportedDepths, Opts extends ExportOptions> = E$1 extends AvailableLocation.Edge<infer L extends Vertex<any>, infer Extra extends object> ? AvailableLocation.Util.Value<Recursion<L, D, Opts>, Extra> : never;
15
+ export type Plain<E extends EdgeBase<any, any>, D extends SupportedDepths, Opts extends ExportOptions> = E extends Plain.Edge<infer V> ? Recursion<V, D, Opts> : never;
16
+ export type Wrapped<E extends EdgeBase<any, any>, D extends SupportedDepths, Opts extends ExportOptions> = E extends Wrapped.Edge<infer K, infer V extends Vertex<any>, infer Extra extends object> ? Wrapped.Util.Value<K, Recursion<V, D, Opts>, Extra> : never;
17
+ export type Coalesced<E extends EdgeBase<any, any>, D extends SupportedDepths, Opts extends ExportOptions> = E extends Coalesced.Edge<infer V, infer O extends object, infer Extra extends object> ? V extends Vertex<Collection> ? Coalesced.Util.Value<Recursion<V, D, Opts>, Coalesced.Util.ToModel<V>, O, Extra> : never : never;
18
+ export type GroupWithExclude<E extends EdgeBase<any, any>, D extends SupportedDepths, Opts extends ExportOptions> = E extends GroupWithExclude.Edge<infer G extends Vertex<any>, infer P extends Vertex<any>, infer Extra extends object> ? GroupWithExclude.Util.Value<Recursion<G, D, Opts>, Recursion<P, D, Opts>, Extra> : never;
19
+ export type AvailableLocation<E extends EdgeBase<any, any>, D extends SupportedDepths, Opts extends ExportOptions> = E extends AvailableLocation.Edge<infer L extends Vertex<any>, infer Extra extends object> ? AvailableLocation.Util.Value<Recursion<L, D, Opts>, Extra> : never;
20
+ export type ThreadMessage<E extends EdgeBase<any, any>, D extends SupportedDepths, Opts extends ExportOptions> = E extends ThreadMessage.Edge<infer U extends Vertex<any>, infer T extends Vertex<any>, infer Extra extends object> ? ThreadMessage.Util.Value<Recursion<U, D, Opts>, Recursion<T, D, Opts>, Extra> : never;
20
21
  export {};
21
22
  }
22
23
  type _MinDepthType = any;
@@ -24,11 +25,11 @@ type TryPrettify<T> = 0 extends (1 & T) ? _MinDepthType : Prettify<T>;
24
25
  type InternalIdKeys = IDKey | PrivateIDKey;
25
26
  type PartialIf<T extends object, Condition extends boolean | undefined> = Condition extends true ? Partial<T> : T;
26
27
  type OmitPrivateIdIf<T extends object, Condition extends boolean | undefined> = Condition extends true ? Omit<T, PrivateIDKey> : T;
27
- type _DeepVertexExport<V extends Vertex<Collection>, D extends SupportedDepths, Opts extends ExportOptions> = D extends MinDepth ? _MinDepthType : Prettify<OmitPrivateIdIf<PartialIf<{ [K in keyof Pick<V, InternalIdKeys>]: V[K] }, Opts['optionalId']>, Opts['omitPrivateId']> & { [K in keyof Omit<OmitInternalVertexKeys<OmitEdges<V>>, InternalIdKeys>]: V[K] } & { [K in keyof PickEdges<V>]: [V[K]] extends [never] ? never : NonNullable<V[K]> extends EdgeWrapper<infer M, infer E extends EdgeBase<any, any> | null | undefined> ? (SetMultiplicity<TryPrettify<E extends EdgeBase<any, any> ? (HandleEdge.Plain<E, D, Opts> | HandleEdge.Wrapped<E, D, Opts> | HandleEdge.Coalesced<E, D, Opts> | HandleEdge.GroupWithExclude<E, D, Opts> | HandleEdge.AvailableLocation<E, D, Opts>) : E>, M> | ExtractNullish<V[K]>) : never }>;
28
+ type _DeepVertexExport<V extends Vertex<Collection>, D extends SupportedDepths, Opts extends ExportOptions> = D extends MinDepth ? _MinDepthType : Prettify<OmitPrivateIdIf<PartialIf<{ [K in keyof Pick<V, InternalIdKeys>]: V[K] }, Opts['optionalId']>, Opts['omitPrivateId']> & { [K in keyof Omit<OmitInternalVertexKeys<OmitEdges<V>>, InternalIdKeys>]: V[K] } & { [K in keyof PickEdges<V>]: [V[K]] extends [never] ? never : NonNullable<V[K]> extends EdgeWrapper<infer M, infer E extends EdgeBase<any, any> | null | undefined> ? (SetMultiplicity<TryPrettify<E extends EdgeBase<any, any> ? (HandleEdge.Plain<E, D, Opts> | HandleEdge.Wrapped<E, D, Opts> | HandleEdge.Coalesced<E, D, Opts> | HandleEdge.GroupWithExclude<E, D, Opts> | HandleEdge.AvailableLocation<E, D, Opts> | HandleEdge.ThreadMessage<E, D, Opts>) : E>, M> | ExtractNullish<V[K]>) : never }>;
28
29
  /**
29
30
  * Recursively transforms a Vertex type into a deeply exported, plain object structure.
30
31
  * - Non-edge properties are preserved as-is.
31
- * - Edge properties are expanded according to their edge type (Plain, Coalesced, GroupWithExclude, AvailableLocation).
32
+ * - Edge properties are expanded according to their edge type (Plain, Coalesced, GroupWithExclude, AvailableLocation, ThreadMessage ).
32
33
  * - Invalid or unsupported edge unions are filtered out as `never`.
33
34
  * - Handles multiplicity (single/array) and optional/null edge cases.
34
35
  * - There is a maximum recursion depth to increase performance.
@@ -12,6 +12,7 @@ type EdgeTypeIdValues = {
12
12
  COALESCED: 'COALESCED';
13
13
  GROUP_WITH_EXCLUDE: 'GROUP_WITH_EXCLUDE';
14
14
  AVAILABLE_LOCATION: 'AVAILABLE_LOCATION';
15
+ THREAD_MESSAGE: 'THREAD_MESSAGE';
15
16
  };
16
17
  type EdgeTypeIdValue = (EdgeTypeIdValues)[keyof EdgeTypeIdValues];
17
18
  type EdgeBase<ID extends EdgeTypeIdValue, Invalid extends boolean> = {
@@ -23,8 +24,8 @@ type EdgeIsValid<T extends EdgeBase<any, any>> = [T] extends [{
23
24
  }] ? true : false;
24
25
  declare namespace Plain {
25
26
  namespace Util {}
26
- type Edge<V$1 extends Vertex<Collection>> = EdgeBase<EdgeTypeIdValues['PLAIN'], NoneIsUnion<[V$1]> extends never ? true : false> & {
27
- [EDGE_VALUE_KEY]: V$1;
27
+ type Edge<V extends Vertex<Collection>> = EdgeBase<EdgeTypeIdValues['PLAIN'], NoneIsUnion<[V]> extends never ? true : false> & {
28
+ [EDGE_VALUE_KEY]: V;
28
29
  };
29
30
  }
30
31
  declare namespace Wrapped {
@@ -34,8 +35,8 @@ declare namespace Wrapped {
34
35
  };
35
36
  type Value<K extends string, To, Extra = object> = Extra & { [k in K]: To };
36
37
  }
37
- type Edge<K extends string, V$1 extends Vertex<Collection>, E extends object = object> = EdgeBase<EdgeTypeIdValues['WRAPPED'], NoneIsUnion<[K, V$1]> extends never ? true : false> & {
38
- [EDGE_VALUE_KEY]: Util.Value<K, V$1, E>;
38
+ type Edge<K extends string, V extends Vertex<Collection>, E extends object = object> = EdgeBase<EdgeTypeIdValues['WRAPPED'], NoneIsUnion<[K, V]> extends never ? true : false> & {
39
+ [EDGE_VALUE_KEY]: Util.Value<K, V, E>;
39
40
  };
40
41
  }
41
42
  declare namespace Coalesced {
@@ -52,15 +53,15 @@ declare namespace Coalesced {
52
53
  type makePartial<T, O extends Options> = O extends {
53
54
  optional: true;
54
55
  } ? Partial<T> : T;
55
- export type ToModel<V$1 extends Vertex<Collection>> = V$1 extends Vertex<infer C> ? C extends 'events' ? C | 'courseevents' : C : never;
56
+ export type ToModel<V extends Vertex<Collection>> = V extends Vertex<infer C> ? C extends 'events' ? C | 'courseevents' : C : never;
56
57
  export type Value<To, ToModel, Opts extends Util.Options = object, Extra = object> = Extra & makePartial<{
57
58
  [Keys.TO]: To;
58
59
  [Keys.TO_MODEL]: ToModel;
59
60
  }, Opts>;
60
61
  export {};
61
62
  }
62
- type Edge<V$1 extends Vertex<Collection>, Opts extends Util.Options = object, E extends object = object> = EdgeBase<EdgeTypeIdValues['COALESCED'], NoneIsUnion<[V$1]> extends never ? true : false> & {
63
- [EDGE_VALUE_KEY]: Util.Value<V$1, Util.ToModel<V$1>, Opts, E>;
63
+ type Edge<V extends Vertex<Collection>, Opts extends Util.Options = object, E extends object = object> = EdgeBase<EdgeTypeIdValues['COALESCED'], NoneIsUnion<[V]> extends never ? true : false> & {
64
+ [EDGE_VALUE_KEY]: Util.Value<V, Util.ToModel<V>, Opts, E>;
64
65
  };
65
66
  }
66
67
  declare namespace GroupWithExclude {
@@ -94,6 +95,23 @@ declare namespace AvailableLocation {
94
95
  [EDGE_VALUE_KEY]: Util.Value<L, E>;
95
96
  };
96
97
  }
98
+ declare namespace ThreadMessage {
99
+ namespace Util {
100
+ namespace Keys {
101
+ const USER = "user";
102
+ type User = typeof USER;
103
+ const TAGGED_PERSONS = "taggedPersons";
104
+ type TaggedPersons = typeof TAGGED_PERSONS;
105
+ }
106
+ type Value<P, T, Extra = object> = Extra & {
107
+ [Keys.USER]: P;
108
+ [Keys.TAGGED_PERSONS]?: T[];
109
+ };
110
+ }
111
+ type Edge<P extends Vertex<Collection>, T extends Vertex<Collection>, E extends object = object> = EdgeBase<EdgeTypeIdValues['THREAD_MESSAGE'], NoneIsUnion<[P, T]> extends never ? true : false> & {
112
+ [EDGE_VALUE_KEY]: Util.Value<P, T, E>;
113
+ };
114
+ }
97
115
  type AllowedEdgeType<T extends EdgeBase<EdgeTypeIdValue, boolean>> = IsUnion<T> extends never ? true : T extends Coalesced.Edge<any, any> ? true : false;
98
116
  type EdgeMultiplicity = 'single' | 'array';
99
117
  type EdgeWrapper<M extends EdgeMultiplicity, T extends EdgeBase<EdgeTypeIdValue, boolean> | null | undefined> = AllTrue<[AllowedEdgeType<NonNullable<T>>, EdgeIsValid<NonNullable<T>>]> extends false ? never : {
@@ -101,5 +119,5 @@ type EdgeWrapper<M extends EdgeMultiplicity, T extends EdgeBase<EdgeTypeIdValue,
101
119
  __edge_type: T;
102
120
  };
103
121
  //#endregion
104
- export { AvailableLocation, Coalesced, EdgeBase, EdgeMultiplicity, EdgeValueKey, EdgeWrapper, GroupWithExclude, Plain, Wrapped };
122
+ export { AvailableLocation, Coalesced, EdgeBase, EdgeMultiplicity, EdgeValueKey, EdgeWrapper, GroupWithExclude, Plain, ThreadMessage, Wrapped };
105
123
  //# sourceMappingURL=edges.d.ts.map