@royalschedule/maps 4.0.33 → 4.1.1-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) 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 +2 -4
  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 +1 -1
  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 +7 -4
  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 +3 -2
  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 +2 -4
  63. package/dist/RS/make-connected.js +46 -54
  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 +7 -5
  67. package/dist/RS/to/initial-configuration.js.map +1 -1
  68. package/dist/RS/to/input/default.js +16 -21
  69. package/dist/RS/to/input/default.js.map +1 -1
  70. package/dist/RS/to/input/dependencies.js +12 -10
  71. package/dist/RS/to/input/dependencies.js.map +1 -1
  72. package/dist/RS/to/input/events.js +53 -41
  73. package/dist/RS/to/input/events.js.map +1 -1
  74. package/dist/RS/to/input/groups.js +7 -15
  75. package/dist/RS/to/input/groups.js.map +1 -1
  76. package/dist/RS/to/input/individuals.js +4 -6
  77. package/dist/RS/to/input/individuals.js.map +1 -1
  78. package/dist/RS/to/input/input.js +21 -13
  79. package/dist/RS/to/input/input.js.map +1 -1
  80. package/dist/RS/to/input/intervals.js +10 -8
  81. package/dist/RS/to/input/intervals.js.map +1 -1
  82. package/dist/RS/to/input/linked-events-sets.js +96 -0
  83. package/dist/RS/to/input/linked-events-sets.js.map +1 -0
  84. package/dist/RS/to/input/locked-times.js +91 -0
  85. package/dist/RS/to/input/locked-times.js.map +1 -0
  86. package/dist/RS/to/input/periods.js +5 -36
  87. package/dist/RS/to/input/periods.js.map +1 -1
  88. package/dist/RS/to/input/settings.js +1 -8
  89. package/dist/RS/to/input/settings.js.map +1 -1
  90. package/dist/RS/to/input/teachers.js +8 -16
  91. package/dist/RS/to/input/teachers.js.map +1 -1
  92. package/dist/RS/to/input/util/parse-days.js +2 -2
  93. package/dist/RS/to/input/util/parse-days.js.map +1 -1
  94. package/dist/RS/to/input/util/parse-group-references.js +2 -10
  95. package/dist/RS/to/input/util/parse-group-references.js.map +1 -1
  96. package/dist/RS/to/input/util/parse-location-references.js +1 -7
  97. package/dist/RS/to/input/util/parse-location-references.js.map +1 -1
  98. package/dist/RS/to/input/util/parse-max-working-hours.js +4 -7
  99. package/dist/RS/to/input/util/parse-max-working-hours.js.map +1 -1
  100. package/dist/RS/to/input/util/parse-minimum-break-length.js +2 -2
  101. package/dist/RS/to/input/util/parse-minimum-break-length.js.map +1 -1
  102. package/dist/RS/to/input/util/util.js +5 -11
  103. package/dist/RS/to/input/util/util.js.map +1 -1
  104. package/dist/RS/to/schedules.js.map +1 -1
  105. package/dist/RS/types/algorithm-parameters.d.ts +1 -2
  106. package/dist/RS/types/index.d.ts +2 -31
  107. package/dist/RS/types/schedule-data.d.ts +12 -15
  108. package/dist/RS/types/to.d.ts +10 -18
  109. package/dist/RS/types/to.js +1 -1
  110. package/dist/RS/types/to.js.map +1 -1
  111. package/dist/SS12000/from/activities.js +2 -1
  112. package/dist/SS12000/from/activities.js.map +1 -1
  113. package/dist/SS12000/from/calendar-events.js.map +1 -1
  114. package/dist/SS12000/from/duties.js.map +1 -1
  115. package/dist/SS12000/from/groups.js.map +1 -1
  116. package/dist/SS12000/from/index.js.map +1 -1
  117. package/dist/SS12000/from/persons.js.map +1 -1
  118. package/dist/SS12000/from/resources.js.map +1 -1
  119. package/dist/SS12000/from/rooms.js.map +1 -1
  120. package/dist/SS12000/from/syllabuses.js.map +1 -1
  121. package/dist/SS12000/index.d.ts +9 -12782
  122. package/dist/SS12000/to/activities.js.map +1 -1
  123. package/dist/SS12000/to/calendar-events.js.map +1 -1
  124. package/dist/SS12000/to/common.js.map +1 -1
  125. package/dist/SS12000/to/duties.js.map +1 -1
  126. package/dist/SS12000/to/groups.js.map +1 -1
  127. package/dist/SS12000/to/index.d.ts +0 -1
  128. package/dist/SS12000/to/persons.js.map +1 -1
  129. package/dist/SS12000/to/resources.js.map +1 -1
  130. package/dist/SS12000/to/rooms.js.map +1 -1
  131. package/dist/SS12000/to/syllabuses.js.map +1 -1
  132. package/dist/SchoolSoft/api/from/index.js.map +1 -1
  133. package/dist/SchoolSoft/api/from/schedules.js +12 -8
  134. package/dist/SchoolSoft/api/from/schedules.js.map +1 -1
  135. package/dist/SchoolSoft/api/index.d.ts +7 -6
  136. package/dist/SchoolSoft/file/from/index.js.map +1 -1
  137. package/dist/SchoolSoft/file/from/schedules.js +87 -83
  138. package/dist/SchoolSoft/file/from/schedules.js.map +1 -1
  139. package/dist/SchoolSoft/file/index.d.ts +0 -1
  140. package/dist/SchoolSoft/file/to/index.d.ts +2 -3
  141. package/dist/SchoolSoft/file/to/schedules.js +2 -1
  142. package/dist/SchoolSoft/file/to/schedules.js.map +1 -1
  143. package/dist/SchoolSoft/index.d.ts +0 -1
  144. package/dist/Schoolity/txt/to/index.d.ts +0 -1
  145. package/dist/Schoolity/txt/to/schedules.js +14 -7
  146. package/dist/Schoolity/txt/to/schedules.js.map +1 -1
  147. package/dist/Skola24/mdb/from/course-and-events.js +5 -3
  148. package/dist/Skola24/mdb/from/course-and-events.js.map +1 -1
  149. package/dist/Skola24/mdb/from/groups.js.map +1 -1
  150. package/dist/Skola24/mdb/from/index.js.map +1 -1
  151. package/dist/Skola24/mdb/from/locations.js.map +1 -1
  152. package/dist/Skola24/mdb/from/schedule.d.ts +0 -1
  153. package/dist/Skola24/mdb/from/schedule.js.map +1 -1
  154. package/dist/Skola24/mdb/from/teachers.js.map +1 -1
  155. package/dist/Skola24/txt/from/calendar-exceptions.js +2 -1
  156. package/dist/Skola24/txt/from/calendar-exceptions.js.map +1 -1
  157. package/dist/Skola24/txt/from/division.js.map +1 -1
  158. package/dist/Skola24/txt/from/index.js.map +1 -1
  159. package/dist/Skola24/txt/from/period.js +34 -31
  160. package/dist/Skola24/txt/from/period.js.map +1 -1
  161. package/dist/Skola24/txt/from/schedules.d.ts +0 -1
  162. package/dist/Skola24/txt/from/schedules.js +10 -6
  163. package/dist/Skola24/txt/from/schedules.js.map +1 -1
  164. package/dist/Skola24/txt/from/util.js.map +1 -1
  165. package/dist/Skola24/txt/index.d.ts +0 -1
  166. package/dist/Skola24/txt/to/index.d.ts +0 -1
  167. package/dist/Skola24/txt/to/schedules.js +15 -8
  168. package/dist/Skola24/txt/to/schedules.js.map +1 -1
  169. package/dist/common/constants.js.map +1 -1
  170. package/dist/common/functions.js +2 -2
  171. package/dist/common/functions.js.map +1 -1
  172. package/dist/common/get-date.js.map +1 -1
  173. package/dist/common/make-chainable/index.js.map +1 -1
  174. package/dist/common/types.d.ts +28 -2
  175. package/dist/core/from/configurations.js.map +1 -1
  176. package/dist/core/from/courses.js.map +1 -1
  177. package/dist/core/from/events.js.map +1 -1
  178. package/dist/core/from/exceptions.js.map +1 -1
  179. package/dist/core/from/groups.js.map +1 -1
  180. package/dist/core/from/index.js.map +1 -1
  181. package/dist/core/from/locations.js.map +1 -1
  182. package/dist/core/from/locked-times.js.map +1 -1
  183. package/dist/core/from/overlap-groups.js.map +1 -1
  184. package/dist/core/from/periods.js.map +1 -1
  185. package/dist/core/from/persons.js.map +1 -1
  186. package/dist/core/from/root-intervals.js.map +1 -1
  187. package/dist/core/from/schedules.js.map +1 -1
  188. package/dist/core/from/settings.js.map +1 -1
  189. package/dist/core/from/syllabuses.js.map +1 -1
  190. package/dist/core/from/teachers.js.map +1 -1
  191. package/dist/core/index.d.ts +0 -1
  192. package/dist/core/interfaces/other/companies.d.ts +0 -1
  193. package/dist/core/interfaces/other/companies.js.map +1 -1
  194. package/dist/core/interfaces/other/operations.d.ts +0 -1
  195. package/dist/core/interfaces/vertices/companies.d.ts +0 -1
  196. package/dist/core/interfaces/vertices/configurations.d.ts +0 -1
  197. package/dist/core/interfaces/vertices/courses.d.ts +0 -1
  198. package/dist/core/interfaces/vertices/division-settings.d.ts +2 -3
  199. package/dist/core/interfaces/vertices/divisions.d.ts +0 -1
  200. package/dist/core/interfaces/vertices/events.d.ts +3 -1
  201. package/dist/core/interfaces/vertices/exceptions.d.ts +0 -1
  202. package/dist/core/interfaces/vertices/generations.d.ts +1 -3
  203. package/dist/core/interfaces/vertices/groups.d.ts +0 -1
  204. package/dist/core/interfaces/vertices/index.d.ts +15 -8
  205. package/dist/core/interfaces/vertices/linked-events-sets.d.ts +18 -0
  206. package/dist/core/interfaces/vertices/locations.d.ts +0 -1
  207. package/dist/core/interfaces/vertices/locked-times.d.ts +0 -2
  208. package/dist/core/interfaces/vertices/overlap-groups.d.ts +0 -1
  209. package/dist/core/interfaces/vertices/periods.d.ts +0 -3
  210. package/dist/core/interfaces/vertices/persons.d.ts +0 -1
  211. package/dist/core/interfaces/vertices/properties/belongs-to.d.ts +0 -1
  212. package/dist/core/interfaces/vertices/properties/coalesced.d.ts +0 -1
  213. package/dist/core/interfaces/vertices/root-intervals.d.ts +0 -2
  214. package/dist/core/interfaces/vertices/syllabuses.d.ts +0 -1
  215. package/dist/core/interfaces/vertices/teachers.d.ts +0 -1
  216. package/dist/core/interfaces/vertices/threads.d.ts +0 -1
  217. package/dist/core/interfaces/vertices/users.d.ts +0 -1
  218. package/dist/core/interfaces/vertices/util/custom-vertex-export/index.d.ts +6 -6
  219. package/dist/core/interfaces/vertices/util/custom-vertex-export/util.d.ts +4 -4
  220. package/dist/core/interfaces/vertices/util/deep-vertex-export/index.d.ts +10 -10
  221. package/dist/core/interfaces/vertices/util/edges.d.ts +7 -7
  222. package/dist/core/interfaces/vertices/util/util.d.ts +24 -20
  223. package/dist/core/interfaces/vertices/util/vertex-query/index.d.ts +11 -11
  224. package/dist/core/interfaces/vertices/util/vertex.d.ts +5 -4
  225. package/dist/core/interfaces/vertices/vertex-query.d.ts +29 -27
  226. package/dist/core/interfaces/vertices/vertex-query.js +4 -0
  227. package/dist/core/interfaces/vertices/vertex-query.js.map +1 -1
  228. package/dist/core/to/configurations.js +2 -1
  229. package/dist/core/to/configurations.js.map +1 -1
  230. package/dist/core/to/courses.js +2 -1
  231. package/dist/core/to/courses.js.map +1 -1
  232. package/dist/core/to/division.js.map +1 -1
  233. package/dist/core/to/events.js +3 -1
  234. package/dist/core/to/events.js.map +1 -1
  235. package/dist/core/to/exceptions.js +2 -1
  236. package/dist/core/to/exceptions.js.map +1 -1
  237. package/dist/core/to/groups.js +2 -1
  238. package/dist/core/to/groups.js.map +1 -1
  239. package/dist/core/to/linked-events-sets.js +18 -0
  240. package/dist/core/to/linked-events-sets.js.map +1 -0
  241. package/dist/core/to/locations.js +2 -1
  242. package/dist/core/to/locations.js.map +1 -1
  243. package/dist/core/to/locked-times.js +2 -1
  244. package/dist/core/to/locked-times.js.map +1 -1
  245. package/dist/core/to/overlap-groups.js +2 -1
  246. package/dist/core/to/overlap-groups.js.map +1 -1
  247. package/dist/core/to/periods.js +2 -1
  248. package/dist/core/to/periods.js.map +1 -1
  249. package/dist/core/to/persons.js +2 -1
  250. package/dist/core/to/persons.js.map +1 -1
  251. package/dist/core/to/root-intervals.js +2 -1
  252. package/dist/core/to/root-intervals.js.map +1 -1
  253. package/dist/core/to/schedules.d.ts +2 -1
  254. package/dist/core/to/schedules.js +3 -1
  255. package/dist/core/to/schedules.js.map +1 -1
  256. package/dist/core/to/settings.js +2 -1
  257. package/dist/core/to/settings.js.map +1 -1
  258. package/dist/core/to/syllabuses.js +2 -1
  259. package/dist/core/to/syllabuses.js.map +1 -1
  260. package/dist/core/to/teachers.js +2 -1
  261. package/dist/core/to/teachers.js.map +1 -1
  262. package/dist/core/to/util.d.ts +0 -2
  263. package/dist/core/to/util.js +2 -1
  264. package/dist/core/to/util.js.map +1 -1
  265. package/dist/core/types/index.d.ts +5 -1
  266. package/dist/core/util.js +5 -3
  267. package/dist/core/util.js.map +1 -1
  268. package/dist/identify/constants/index.d.ts +1 -1
  269. package/dist/identify/constants/index.js.map +1 -1
  270. package/dist/identify/index.js +2 -1
  271. package/dist/identify/index.js.map +1 -1
  272. package/dist/sdui/from/classes.js.map +1 -1
  273. package/dist/sdui/from/courses.js.map +1 -1
  274. package/dist/sdui/from/holidays.js.map +1 -1
  275. package/dist/sdui/from/index.js.map +1 -1
  276. package/dist/sdui/from/lessons.js.map +1 -1
  277. package/dist/sdui/from/rooms.js.map +1 -1
  278. package/dist/sdui/from/schedules.d.ts +0 -2
  279. package/dist/sdui/from/schedules.js.map +1 -1
  280. package/dist/sdui/from/school-years.js.map +1 -1
  281. package/dist/sdui/from/substitution-plans.js.map +1 -1
  282. package/dist/sdui/from/teachers.js.map +1 -1
  283. package/dist/sdui/to/classes.js.map +1 -1
  284. package/dist/sdui/to/courses.js.map +1 -1
  285. package/dist/sdui/to/holidays.js +1 -1
  286. package/dist/sdui/to/holidays.js.map +1 -1
  287. package/dist/sdui/to/hours.js.map +1 -1
  288. package/dist/sdui/to/index.d.ts +0 -2
  289. package/dist/sdui/to/lessons.js +1 -1
  290. package/dist/sdui/to/lessons.js.map +1 -1
  291. package/dist/sdui/to/rooms.js.map +1 -1
  292. package/dist/sdui/to/schedules.js.map +1 -1
  293. package/dist/sdui/to/school-years.js +1 -1
  294. package/dist/sdui/to/school-years.js.map +1 -1
  295. package/dist/sdui/to/substitution-plans.js +7 -4
  296. package/dist/sdui/to/substitution-plans.js.map +1 -1
  297. package/dist/sdui/to/teachers.js.map +1 -1
  298. package/dist/vKlass/from/index.js.map +1 -1
  299. package/dist/vKlass/from/schedule.d.ts +0 -1
  300. package/dist/vKlass/from/schedule.js.map +1 -1
  301. package/dist/vKlass/to/schedules.js +17 -6
  302. package/dist/vKlass/to/schedules.js.map +1 -1
  303. package/package.json +29 -24
  304. package/dist/RS/to/input/collections.js +0 -58
  305. package/dist/RS/to/input/collections.js.map +0 -1
  306. package/dist/RS/to/input/dynamic-locked-times.js +0 -69
  307. package/dist/RS/to/input/dynamic-locked-times.js.map +0 -1
  308. package/dist/RS/to/input/util/attach-locked-times.js +0 -27
  309. package/dist/RS/to/input/util/attach-locked-times.js.map +0 -1
  310. package/dist/RS/to/input/util/parse-intervals.js +0 -56
  311. package/dist/RS/to/input/util/parse-intervals.js.map +0 -1
  312. package/dist/RS/types/collections.d.ts +0 -33
  313. package/dist/RS/types/default.d.ts +0 -31
  314. package/dist/RS/types/dependencies.d.ts +0 -16
  315. package/dist/RS/types/events.d.ts +0 -34
  316. package/dist/RS/types/groups.d.ts +0 -27
  317. package/dist/RS/types/individuals.d.ts +0 -16
  318. package/dist/RS/types/locked-times.d.ts +0 -12
  319. package/dist/RS/types/period.d.ts +0 -27
  320. package/dist/RS/types/root-intervals.d.ts +0 -10
  321. package/dist/RS/types/settings.d.ts +0 -15
  322. package/dist/RS/types/shared.d.ts +0 -27
  323. package/dist/core/interfaces/index.d.ts +0 -23
  324. package/dist/core/interfaces/other/index.d.ts +0 -6
  325. package/dist/core/interfaces/vertices/util/index.d.ts +0 -6
package/package.json CHANGED
@@ -1,10 +1,16 @@
1
1
  {
2
2
  "name": "@royalschedule/maps",
3
3
  "description": "",
4
- "version": "4.0.33",
4
+ "version": "4.1.1-beta.0",
5
5
  "type": "module",
6
- "main": "dist/index.js",
7
- "types": "dist/index.d.ts",
6
+ "main": "./dist/index.mjs",
7
+ "types": "./dist/index.d.mts",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/index.mjs",
11
+ "types": "./dist/index.d.mts"
12
+ }
13
+ },
8
14
  "engines": {
9
15
  "node": "22.14.0"
10
16
  },
@@ -48,42 +54,41 @@
48
54
  "license": "ISC",
49
55
  "homepage": "https://bitbucket.org/royalschedule/maps#readme",
50
56
  "devDependencies": {
51
- "@eslint/js": "^9.39.0",
52
- "@royalschedule/input-verifier": "^5.0.3",
53
- "@stylistic/eslint-plugin": "^5.5.0",
54
- "@tsconfig/strictest": "^2.0.7",
57
+ "@eslint/js": "^10.0.1",
58
+ "@royalschedule/input-verifier": "^5.0.7",
59
+ "@stylistic/eslint-plugin": "^5.9.0",
60
+ "@tsconfig/strictest": "^2.0.8",
55
61
  "@types/json2csv": "^5.0.7",
56
62
  "@types/lodash-es": "^4.17.12",
57
- "@types/node": "^24.10.0",
58
- "@types/papaparse": "^5.3.16",
59
- "@typescript-eslint/parser": "^8.46.2",
60
- "@typescript-eslint/utils": "^8.46.2",
61
- "@vitest/coverage-v8": "^4.0.6",
62
- "eslint": "^9.39.0",
63
- "eslint-plugin-jsdoc": "^61.1.11",
64
- "eslint-plugin-unused-imports": "^4.3.0",
63
+ "@types/node": "^25.3.0",
64
+ "@types/papaparse": "^5.5.2",
65
+ "@typescript-eslint/parser": "^8.56.0",
66
+ "@typescript-eslint/utils": "^8.56.0",
67
+ "@vitest/coverage-v8": "^4.0.18",
68
+ "eslint": "^10.0.1",
69
+ "eslint-plugin-jsdoc": "^62.7.0",
70
+ "eslint-plugin-unused-imports": "^4.4.1",
65
71
  "jiti": "^2.6.1",
66
72
  "madge": "^8.0.0",
67
- "nodemon": "^3.1.10",
68
- "tsdown": "^0.15.12",
73
+ "nodemon": "^3.1.14",
74
+ "tsdown": "^0.20.3",
69
75
  "tslib": "^2.8.1",
70
- "tsx": "^4.20.6",
76
+ "tsx": "^4.21.0",
71
77
  "typescript": "^5.9.3",
72
- "typescript-eslint": "^8.46.2",
73
- "vitest": "^4.0.14"
78
+ "typescript-eslint": "^8.56.0",
79
+ "vitest": "^4.0.18"
74
80
  },
75
81
  "dependencies": {
76
82
  "@json2csv/plainjs": "^7.0.6",
77
83
  "csv-parser": "^3.2.0",
78
- "iconv-lite": "^0.7.0",
79
- "lodash-es": "^4.17.21",
84
+ "iconv-lite": "^0.7.2",
85
+ "lodash-es": "^4.17.23",
80
86
  "moment": "^2.30.1",
81
- "mongoose": "^8.19.2",
82
87
  "nanoid": "^5.1.6",
83
88
  "papaparse": "^5.5.3",
84
89
  "ts-expect": "^1.3.0",
85
90
  "uuid": "^13.0.0",
86
91
  "xlsx": "https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz",
87
- "zod": "^4.1.12"
92
+ "zod": "^4.3.6"
88
93
  }
89
94
  }
@@ -1,58 +0,0 @@
1
- import { getVertexId } from "../../../core/util.js";
2
- import { makeChainable } from "../../../common/make-chainable/index.js";
3
- import { getPeriodIndex, idOf } from "./util/util.js";
4
- import { attachLockedTimes } from "./util/attach-locked-times.js";
5
- import { parseDays } from "./util/parse-days.js";
6
- import { parseMinimumBreakLength } from "./util/parse-minimum-break-length.js";
7
- import { getDefaultInterval } from "./intervals.js";
8
- import { parseIntervals } from "./util/parse-intervals.js";
9
- import { parseGroupReferences } from "./util/parse-group-references.js";
10
- import { parseLocationReferences } from "./util/parse-location-references.js";
11
- import { parseEvents } from "./events.js";
12
- import { groupBy, omit, omitBy, values } from "lodash-es";
13
-
14
- //#region src/RS/to/input/collections.ts
15
- function fromCollections(courses, settings, options, periodsMap) {
16
- const defaultInterval = getDefaultInterval(settings);
17
- const collections = courses.map((course) => {
18
- const id = getVertexId(course, options);
19
- const intervals = course.intervals ?? defaultInterval;
20
- const doc = {
21
- id,
22
- weight: course.weight,
23
- density: course.density,
24
- maxEventLengthVariance: course.eventDurationVariance,
25
- potentialCenter: course.centerOfAttraction ? parseFloat(course.centerOfAttraction.replace(":", ".")) : void 0,
26
- distributionKey: id,
27
- events: parseEvents(course.events, settings, options, periodsMap),
28
- dependencies: parseLocationReferences(course.locations, options),
29
- groups: parseGroupReferences({
30
- type: "course",
31
- item: course
32
- }, options),
33
- intervals: options.oldFormat ? parseIntervals(intervals, void 0, settings) : idOf.intervalPairReference(intervals, void 0, options),
34
- days: parseDays(course.days, settings),
35
- minBreakLength: parseMinimumBreakLength(course.minBreakLength),
36
- lockedTimes: attachLockedTimes(course.lockedTimes, options),
37
- period: getPeriodIndex(course.period, periodsMap, options),
38
- _period: course.period ? getVertexId(course.period, options) : void 0
39
- };
40
- if (options.includeEntityMeta) doc.meta = omitBy({
41
- color: course.color,
42
- ids: course.ids,
43
- name: course.displayName
44
- }, (x) => x == null);
45
- doc.overlapGroupId = course.overlapGroup ? getVertexId(course.overlapGroup, options) : void 0;
46
- return omitBy(doc, (x) => x == null);
47
- });
48
- const overlapping = makeChainable(collections).chain((x) => x.filter((x$1) => x$1.overlapGroupId != null), (x) => groupBy(x, (x$1) => x$1.overlapGroupId), (x) => values(x).map((xs) => xs.map((x$1) => omit(x$1, "overlapGroupId")))).value;
49
- const plain = collections.filter((x) => x.overlapGroupId == null).map((x) => {
50
- delete x.overlapGroupId;
51
- return x;
52
- });
53
- return overlapping.concat(plain);
54
- }
55
-
56
- //#endregion
57
- export { fromCollections };
58
- //# sourceMappingURL=collections.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"collections.js","names":["doc: Types.collection & { overlapGroupId?: string }","x"],"sources":["../../../../src/RS/to/input/collections.ts"],"sourcesContent":["import { groupBy, omit, omitBy, values } from 'lodash-es';\nimport { attachLockedTimes } from './util/attach-locked-times';\nimport { parseEvents } from './events';\nimport { parseMinimumBreakLength } from './util/parse-minimum-break-length';\nimport { parseGroupReferences } from './util/parse-group-references';\nimport type { ConnectedTypes } from '../../make-connected';\nimport { getVertexId } from '../../../core/util';\nimport { getPeriodIndex, idOf } from './util/util';\nimport { parseLocationReferences } from './util/parse-location-references';\nimport { parseDays } from './util/parse-days';\nimport { parseIntervals } from './util/parse-intervals';\nimport type { Types } from '../../types';\nimport { makeChainable } from '../../../common/make-chainable';\nimport { getDefaultInterval } from './intervals';\n\nexport function fromCollections (\n courses: ConnectedTypes.course[],\n settings: ConnectedTypes.divisionSettings,\n options: Types.parsedToOptions,\n periodsMap: Map<string | undefined, number>,\n): (Types.collection[] | Types.collection)[] {\n const defaultInterval = getDefaultInterval(settings);\n\n const collections = courses\n .map(course => {\n const id = getVertexId(course, options);\n const intervals = course.intervals ?? defaultInterval;\n\n const doc: Types.collection & { overlapGroupId?: string } = {\n id,\n\n weight: course.weight,\n density: course.density,\n maxEventLengthVariance: course.eventDurationVariance,\n potentialCenter: course.centerOfAttraction ? parseFloat(course.centerOfAttraction.replace(':', '.')) : undefined,\n distributionKey: id,\n\n events: parseEvents (course.events, settings, options, periodsMap),\n dependencies: parseLocationReferences (course.locations, options),\n groups: parseGroupReferences ({ type: 'course', item: course }, options),\n intervals: options.oldFormat\n ? parseIntervals(intervals, undefined, settings)\n : idOf.intervalPairReference(intervals, undefined, options),\n days: parseDays (course.days, settings),\n minBreakLength: parseMinimumBreakLength (course.minBreakLength),\n lockedTimes: attachLockedTimes (course.lockedTimes, options),\n period: getPeriodIndex (course.period, periodsMap, options),\n _period: course.period ? getVertexId(course.period, options) : undefined,\n };\n\n if (options.includeEntityMeta) {\n doc.meta = omitBy({\n color: course.color,\n ids: course.ids,\n name: course.displayName,\n }, x => x == null);\n }\n\n // temporarily attach overlap group\n doc.overlapGroupId = course.overlapGroup\n ? getVertexId(course.overlapGroup, options)\n : undefined;\n\n return omitBy(doc, x => x == null) as Types.collection & { overlapGroupId?: string };\n });\n\n const overlapping = makeChainable(collections)\n .chain(\n x => x.filter(x => x.overlapGroupId != null),\n x => groupBy(x, x => x.overlapGroupId),\n x => values(x)\n .map(xs => xs.map(x => omit(x, 'overlapGroupId') as Types.collection))\n )\n .value;\n\n const plain = collections\n .filter(x => x.overlapGroupId == null)\n .map(x => {\n delete x.overlapGroupId; // remove overlapGroupId from individual collections\n return x as Types.collection;\n });\n\n return overlapping.concat(plain);\n};"],"mappings":";;;;;;;;;;;;;;AAeA,SAAgB,gBACd,SACA,UACA,SACA,YAC2C;CAC3C,MAAM,kBAAkB,mBAAmB,SAAS;CAEpD,MAAM,cAAc,QACjB,KAAI,WAAU;EACb,MAAM,KAAY,YAAY,QAAQ,QAAQ;EAC9C,MAAM,YAAY,OAAO,aAAa;EAEtC,MAAMA,MAAsD;GAC1D;GAEA,QAAwB,OAAO;GAC/B,SAAwB,OAAO;GAC/B,wBAAwB,OAAO;GAC/B,iBAAwB,OAAO,qBAAqB,WAAW,OAAO,mBAAmB,QAAQ,KAAK,IAAI,CAAC,GAAG;GAC9G,iBAAwB;GAExB,QAAc,YAA2B,OAAO,QAAQ,UAAU,SAAS,WAAW;GACtF,cAAc,wBAA2B,OAAO,WAAW,QAAQ;GACnE,QAAc,qBAA2B;IAAE,MAAM;IAAU,MAAM;IAAQ,EAAE,QAAQ;GACnF,WAAc,QAAQ,YAClB,eAAe,WAAW,QAAW,SAAS,GAC9C,KAAK,sBAAsB,WAAW,QAAW,QAAQ;GAC7D,MAAgB,UAA2B,OAAO,MAAM,SAAS;GACjE,gBAAgB,wBAA2B,OAAO,eAAe;GACjE,aAAgB,kBAA2B,OAAO,aAAa,QAAQ;GACvE,QAAgB,eAA2B,OAAO,QAAQ,YAAY,QAAQ;GAC9E,SAAgB,OAAO,SAAS,YAAY,OAAO,QAAQ,QAAQ,GAAG;GACvE;AAED,MAAI,QAAQ,kBACV,KAAI,OAAO,OAAO;GAChB,OAAO,OAAO;GACd,KAAO,OAAO;GACd,MAAO,OAAO;GACf,GAAE,MAAK,KAAK,KAAK;AAIpB,MAAI,iBAAiB,OAAO,eACxB,YAAY,OAAO,cAAc,QAAQ,GACzC;AAEJ,SAAO,OAAO,MAAK,MAAK,KAAK,KAAK;GAClC;CAEJ,MAAM,cAAc,cAAc,YAAY,CAC3C,OACC,MAAK,EAAE,QAAO,QAAKC,IAAE,kBAAkB,KAAK,GAC5C,MAAK,QAAQ,IAAG,QAAKA,IAAE,eAAe,GACtC,MAAK,OAAO,EAAE,CACX,KAAI,OAAM,GAAG,KAAI,QAAK,KAAKA,KAAG,iBAAiB,CAAqB,CAAC,CACzE,CACA;CAEH,MAAM,QAAQ,YACX,QAAO,MAAK,EAAE,kBAAkB,KAAK,CACrC,KAAI,MAAK;AACR,SAAO,EAAE;AACT,SAAO;GACP;AAEJ,QAAO,YAAY,OAAO,MAAM"}
@@ -1,69 +0,0 @@
1
- import { getDayIndex, getVertexId } from "../../../core/util.js";
2
- import { makeChainable } from "../../../common/make-chainable/index.js";
3
- import { idOf } from "./util/util.js";
4
- import { getDefaultInterval } from "./intervals.js";
5
- import { parseIntervals } from "./util/parse-intervals.js";
6
- import { parseGroupReferences } from "./util/parse-group-references.js";
7
- import { toDayAndStart } from "./events.js";
8
- import { groupBy, omitBy, uniq } from "lodash-es";
9
-
10
- //#region src/RS/to/input/dynamic-locked-times.ts
11
- function parse(lockedTime, settings, options, defaultInterval) {
12
- const duration = lockedTime.duration;
13
- if (!duration || duration < 5) throw new Error("(RS::To::DynamicLockedTimes) Length of a locked time is less than 5 min");
14
- const dependencyReferences = makeChainable(lockedTime.coalesced ?? []).chain((x) => x.filter((x$1) => x$1.toModel == "locations").map((x$1) => getVertexId(x$1.to, options)), (x) => uniq(x), (x) => x.map((x$1) => [x$1])).value;
15
- const days = lockedTime.intervals ? makeChainable(lockedTime.intervals).chain((x) => x.map((x$1) => getDayIndex(x$1.start)), (x) => uniq(x)).value : void 0;
16
- const day = days?.length == 1 ? days[0] : void 0;
17
- if (day != null && lockedTime.coalesced) {
18
- if (!lockedTime.coalesced.every((x) => !x.to.days?.length || x.to.days.some((x$1) => x$1.day == day))) return;
19
- }
20
- const distributionKey = lockedTime.type == "COMPLEMENTARY_TIME" ? "COMPLEMENTARY_TIME." + lockedTime.tags?.at(0)?.value : void 0;
21
- const intervals = lockedTime.intervals ?? defaultInterval;
22
- const doc = {
23
- id: idOf.lockedTime(lockedTime, options),
24
- length: duration,
25
- minBreakLength: false,
26
- maxLengthVariance: lockedTime.durationVariance,
27
- groups: parseGroupReferences({
28
- type: "lockedTime",
29
- item: lockedTime
30
- }, options),
31
- dependencies: dependencyReferences,
32
- intervals: options.oldFormat ? parseIntervals(intervals, void 0, settings) : idOf.intervalPairReference(intervals, void 0, options),
33
- distributionKey,
34
- ...days && { days },
35
- ...day && { day }
36
- };
37
- if (options.partialScheduleOptions) {
38
- const { includedEvents, omittedEventsHandling } = options.partialScheduleOptions;
39
- if (includedEvents && !includedEvents.has(doc.id)) {
40
- if (omittedEventsHandling == "ignore") return;
41
- if (omittedEventsHandling == "freeze") {
42
- if (lockedTime.parked || !lockedTime.start || !lockedTime.duration) return;
43
- Object.assign(doc, toDayAndStart(lockedTime.start));
44
- doc.length = lockedTime.duration;
45
- doc.maxLengthVariance = 0;
46
- const numDays = settings.numDays ?? 5;
47
- doc.days = Array.from({ length: numDays }, (_, i) => i);
48
- doc.intervals = Array.from({ length: numDays }, () => [{
49
- beg: 0,
50
- end: 23.55
51
- }]);
52
- }
53
- }
54
- }
55
- return omitBy(doc, (x) => x == null);
56
- }
57
- function fromDynamicLockedTimes(lockedTimes, settings, options) {
58
- const defaultInterval = getDefaultInterval(settings);
59
- const complementaryHours = makeChainable(lockedTimes).chain((x) => x.filter((x$1) => x$1.type == "COMPLEMENTARY_TIME").map((x$1) => parse(x$1, settings, options, defaultInterval)).filter((x$1) => !!x$1), (x) => groupBy(x, (x$1) => [x$1.distributionKey].flat().toSorted().join("|")), (x) => Object.entries(x).map(([id, events]) => ({
60
- id: `COMPLEMENTARY_TIME.${id}`,
61
- events
62
- }))).value;
63
- const lunches = lockedTimes.filter((x) => x.type == "LUNCH").map((lockedTime) => parse(lockedTime, settings, options, defaultInterval)).filter((x) => !!x);
64
- return [...complementaryHours, ...lunches];
65
- }
66
-
67
- //#endregion
68
- export { fromDynamicLockedTimes };
69
- //# sourceMappingURL=dynamic-locked-times.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dynamic-locked-times.js","names":["x","doc: Types.event"],"sources":["../../../../src/RS/to/input/dynamic-locked-times.ts"],"sourcesContent":["import { groupBy, omitBy, uniq } from 'lodash-es';\nimport type { ConnectedTypes } from '../../make-connected';\nimport { getDayIndex, getVertexId } from '../../../core/util';\nimport { idOf } from './util/util';\nimport { parseGroupReferences } from './util/parse-group-references';\nimport { parseIntervals } from './util/parse-intervals';\nimport type { Types } from '../../types';\nimport { makeChainable } from '../../../common/make-chainable';\nimport { toDayAndStart } from './events';\nimport { getDefaultInterval } from './intervals';\nimport type { Interval } from '../../../core/interfaces';\n\nfunction parse (\n lockedTime: ConnectedTypes.lockedTime,\n settings: ConnectedTypes.divisionSettings,\n options: Types.parsedToOptions,\n defaultInterval: Interval[]\n) {\n const duration = lockedTime.duration;\n if (!duration || duration < 5) throw new Error('(RS::To::DynamicLockedTimes) Length of a locked time is less than 5 min');\n\n const dependencyReferences = makeChainable(lockedTime.coalesced ?? [])\n .chain(\n x => x\n .filter(x => x.toModel == 'locations')\n .map(x => getVertexId(x.to, options)),\n x => uniq(x),\n x => x.map(x => [x])\n )\n .value;\n\n const days = lockedTime.intervals\n ? makeChainable(lockedTime.intervals)\n .chain(\n x => x.map(x => getDayIndex(x.start)),\n x => uniq(x),\n )\n .value\n : undefined;\n const day = days?.length == 1 ? days[0] : undefined;\n\n // ignore locked times that reside on days that are not part of any coalesced's days\n if (day != null && lockedTime.coalesced) {\n const allowedByEvery = lockedTime.coalesced.every(x => !x.to.days?.length || x.to.days.some(x => x.day == day));\n if (!allowedByEvery) return;\n }\n\n // each type (tag) of complementary hours should distribute evenly\n const distributionKey = lockedTime.type == 'COMPLEMENTARY_TIME'\n ? 'COMPLEMENTARY_TIME.' + lockedTime.tags?.at(0)?.value\n : undefined;\n\n const intervals = lockedTime.intervals ?? defaultInterval;\n\n const doc: Types.event = {\n id: idOf.lockedTime(lockedTime, options),\n length: duration,\n minBreakLength: false,\n maxLengthVariance: lockedTime.durationVariance,\n groups: parseGroupReferences({ type: 'lockedTime', item: lockedTime }, options),\n dependencies: dependencyReferences,\n intervals: options.oldFormat\n ? parseIntervals(intervals, undefined, settings)\n : idOf.intervalPairReference(intervals, undefined, options),\n distributionKey,\n ...days && { days },\n ...day && { day },\n };\n\n\n ////\n //// filter based on partialScheduleOptions\n ////\n if (options.partialScheduleOptions) {\n const { includedEvents, omittedEventsHandling } = options.partialScheduleOptions;\n if (includedEvents && !includedEvents.has(doc.id)) {\n\n if (omittedEventsHandling == 'ignore') return;\n\n if (omittedEventsHandling == 'freeze') {\n // must not be parked and have a start and duration to be frozen, otherwise it's ignored\n if (lockedTime.parked || !lockedTime.start || !lockedTime.duration) return;\n\n // fix day, start and end\n Object.assign(doc, toDayAndStart(lockedTime.start));\n doc.length = lockedTime.duration;\n doc.maxLengthVariance = 0;\n\n // override intervals and days to not cause conflicts\n const numDays = settings.numDays ?? 5;\n doc.days = Array.from({ length: numDays }, (_, i) => i);\n doc.intervals = Array.from({ length: numDays }, () => [{ beg: 0, end: 23.55 }]);\n\n // fix locations\n // > locations are always fixed for locked times\n }\n }\n }\n\n return omitBy(doc, x => x == null) as Types.event;\n}\n\nexport function fromDynamicLockedTimes (\n lockedTimes: ConnectedTypes.lockedTime[],\n settings: ConnectedTypes.divisionSettings,\n options: Types.parsedToOptions,\n): (Types.collection | Types.event)[] {\n const defaultInterval = getDefaultInterval(settings);\n\n const complementaryHours = makeChainable(lockedTimes)\n .chain(\n x => x\n .filter(x => x.type == 'COMPLEMENTARY_TIME')\n .map(x => parse(x, settings, options, defaultInterval))\n .filter(x => !!x),\n x => groupBy(x, x => [x.distributionKey].flat().toSorted().join('|')),\n x => Object.entries(x)\n .map(([id, events]) => ({ id: `COMPLEMENTARY_TIME.${id}`, events }) as Types.collection),\n )\n .value;\n\n const lunches = lockedTimes\n .filter(x => x.type == 'LUNCH')\n .map(lockedTime => parse(lockedTime, settings, options, defaultInterval))\n .filter(x => !!x);\n\n return [...complementaryHours, ...lunches];\n};"],"mappings":";;;;;;;;;;AAYA,SAAS,MACP,YACA,UACA,SACA,iBACA;CACA,MAAM,WAAW,WAAW;AAC5B,KAAI,CAAC,YAAY,WAAW,EAAG,OAAM,IAAI,MAAM,0EAA0E;CAEzH,MAAM,uBAAuB,cAAc,WAAW,aAAa,EAAE,CAAC,CACnE,OACC,MAAK,EACF,QAAO,QAAKA,IAAE,WAAW,YAAY,CACrC,KAAI,QAAK,YAAYA,IAAE,IAAI,QAAQ,CAAC,GACvC,MAAK,KAAK,EAAE,GACZ,MAAK,EAAE,KAAI,QAAK,CAACA,IAAE,CAAC,CACrB,CACA;CAEH,MAAM,OAAO,WAAW,YACpB,cAAc,WAAW,UAAU,CAClC,OACC,MAAK,EAAE,KAAI,QAAK,YAAYA,IAAE,MAAM,CAAC,GACrC,MAAK,KAAK,EAAE,CACb,CACA,QACD;CACJ,MAAM,MAAM,MAAM,UAAU,IAAI,KAAK,KAAK;AAG1C,KAAI,OAAO,QAAQ,WAAW,WAE5B;MAAI,CADmB,WAAW,UAAU,OAAM,MAAK,CAAC,EAAE,GAAG,MAAM,UAAU,EAAE,GAAG,KAAK,MAAK,QAAKA,IAAE,OAAO,IAAI,CAAC,CAC1F;;CAIvB,MAAM,kBAAkB,WAAW,QAAQ,uBACvC,wBAAwB,WAAW,MAAM,GAAG,EAAE,EAAE,QAChD;CAEJ,MAAM,YAAY,WAAW,aAAa;CAE1C,MAAMC,MAAmB;EACvB,IAAmB,KAAK,WAAW,YAAY,QAAQ;EACvD,QAAmB;EACnB,gBAAmB;EACnB,mBAAmB,WAAW;EAC9B,QAAmB,qBAAqB;GAAE,MAAM;GAAc,MAAM;GAAY,EAAE,QAAQ;EAC1F,cAAmB;EACnB,WAAmB,QAAQ,YACvB,eAAe,WAAW,QAAW,SAAS,GAC9C,KAAK,sBAAsB,WAAW,QAAW,QAAQ;EAC7D;EACA,GAAG,QAAQ,EAAE,MAAM;EACnB,GAAG,OAAO,EAAE,KAAK;EAClB;AAMD,KAAI,QAAQ,wBAAwB;EAClC,MAAM,EAAE,gBAAgB,0BAA0B,QAAQ;AAC1D,MAAI,kBAAkB,CAAC,eAAe,IAAI,IAAI,GAAG,EAAE;AAEjD,OAAI,yBAAyB,SAAU;AAEvC,OAAI,yBAAyB,UAAU;AAErC,QAAI,WAAW,UAAU,CAAC,WAAW,SAAS,CAAC,WAAW,SAAU;AAGpE,WAAO,OAAO,KAAK,cAAc,WAAW,MAAM,CAAC;AACnD,QAAI,SAAS,WAAW;AACxB,QAAI,oBAAoB;IAGxB,MAAM,UAAU,SAAS,WAAW;AACpC,QAAI,OAAY,MAAM,KAAK,EAAE,QAAQ,SAAS,GAAG,GAAG,MAAM,EAAE;AAC5D,QAAI,YAAY,MAAM,KAAK,EAAE,QAAQ,SAAS,QAAQ,CAAC;KAAE,KAAK;KAAG,KAAK;KAAO,CAAC,CAAC;;;;AAQrF,QAAO,OAAO,MAAK,MAAK,KAAK,KAAK;;AAGpC,SAAgB,uBACd,aACA,UACA,SACoC;CACpC,MAAM,kBAAkB,mBAAmB,SAAS;CAEpD,MAAM,qBAAqB,cAAc,YAAY,CAClD,OACC,MAAK,EACF,QAAO,QAAKD,IAAE,QAAQ,qBAAqB,CAC3C,KAAI,QAAK,MAAMA,KAAG,UAAU,SAAS,gBAAgB,CAAC,CACtD,QAAO,QAAK,CAAC,CAACA,IAAE,GACnB,MAAK,QAAQ,IAAG,QAAK,CAACA,IAAE,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,GACrE,MAAK,OAAO,QAAQ,EAAE,CACnB,KAAK,CAAC,IAAI,aAAa;EAAE,IAAI,sBAAsB;EAAM;EAAQ,EAAsB,CAC3F,CACA;CAEH,MAAM,UAAU,YACb,QAAO,MAAK,EAAE,QAAQ,QAAQ,CAC9B,KAAI,eAAc,MAAM,YAAY,UAAU,SAAS,gBAAgB,CAAC,CACxE,QAAO,MAAK,CAAC,CAAC,EAAE;AAEnB,QAAO,CAAC,GAAG,oBAAoB,GAAG,QAAQ"}
@@ -1,27 +0,0 @@
1
- import { getDayIndex, getVertexId, parseDateInterval } from "../../../../core/util.js";
2
- import { omitBy } from "lodash-es";
3
-
4
- //#region src/RS/to/input/util/attach-locked-times.ts
5
- function attachLockedTimes(lockedTimes, options) {
6
- return lockedTimes?.map((lockedTime) => {
7
- const { start: startDate, end: endDate } = parseDateInterval(lockedTime, "locked time");
8
- const length = endDate.diff(startDate, "minutes");
9
- if (length < 5) throw new Error("(RS::To::LockedTimes) Length of a locked time is less than 5 min");
10
- const start = parseFloat(startDate.format("HH.mm"));
11
- const doc = {
12
- day: getDayIndex(startDate),
13
- start,
14
- length
15
- };
16
- if (options.includeEntityMeta) doc.meta = omitBy({
17
- id: getVertexId(lockedTime, options),
18
- visible: lockedTime.visible,
19
- name: lockedTime.displayName
20
- }, (x) => x == null);
21
- return omitBy(doc, (x) => x == null);
22
- });
23
- }
24
-
25
- //#endregion
26
- export { attachLockedTimes };
27
- //# sourceMappingURL=attach-locked-times.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"attach-locked-times.js","names":["doc: Types.lockedTime"],"sources":["../../../../../src/RS/to/input/util/attach-locked-times.ts"],"sourcesContent":["import { omitBy } from 'lodash-es';\nimport type { Types } from '../../../types';\nimport type { ConnectedTypes } from '../../../make-connected';\nimport { getDayIndex, getVertexId, parseDateInterval } from '../../../../core/util';\n\nexport function attachLockedTimes (\n lockedTimes: ConnectedTypes.lockedTime[] | null | undefined,\n options: Types.parsedToOptions\n): Types.lockedTime[] | undefined {\n\n return lockedTimes?.map(lockedTime => {\n const { start: startDate, end: endDate } = parseDateInterval(lockedTime, 'locked time');\n\n const length = endDate.diff(startDate, 'minutes');\n if (length < 5) throw new Error('(RS::To::LockedTimes) Length of a locked time is less than 5 min');\n\n const start = parseFloat(startDate.format('HH.mm'));\n\n const doc: Types.lockedTime = {\n day: getDayIndex(startDate),\n start: start,\n length: length,\n };\n\n if (options.includeEntityMeta) {\n doc.meta = omitBy({\n id: getVertexId(lockedTime, options),\n visible: lockedTime.visible,\n name: lockedTime.displayName,\n }, x => x == null);\n }\n\n return omitBy(doc, x => x == null) as Types.lockedTime;\n });\n};"],"mappings":";;;;AAKA,SAAgB,kBACd,aACA,SACgC;AAEhC,QAAO,aAAa,KAAI,eAAc;EACpC,MAAM,EAAE,OAAO,WAAW,KAAK,YAAY,kBAAkB,YAAY,cAAc;EAEvF,MAAM,SAAS,QAAQ,KAAK,WAAW,UAAU;AACjD,MAAI,SAAS,EAAG,OAAM,IAAI,MAAM,mEAAmE;EAEnG,MAAM,QAAQ,WAAW,UAAU,OAAO,QAAQ,CAAC;EAEnD,MAAMA,MAAwB;GAC5B,KAAQ,YAAY,UAAU;GACtB;GACA;GACT;AAED,MAAI,QAAQ,kBACV,KAAI,OAAO,OAAO;GAChB,IAAS,YAAY,YAAY,QAAQ;GACzC,SAAS,WAAW;GACpB,MAAS,WAAW;GACrB,GAAE,MAAK,KAAK,KAAK;AAGpB,SAAO,OAAO,MAAK,MAAK,KAAK,KAAK;GAClC"}
@@ -1,56 +0,0 @@
1
- import { getDayIndex } from "../../../../core/util.js";
2
- import { makeChainable } from "../../../../common/make-chainable/index.js";
3
- import { parseIntervalDate } from "../intervals.js";
4
- import { groupBy } from "lodash-es";
5
-
6
- //#region src/RS/to/input/util/parse-intervals.ts
7
- function getDayLimits(intervals, settings) {
8
- if (!intervals) {
9
- const start = parseIntervalDate(settings.dayStart);
10
- const end = parseIntervalDate(settings.dayEnd);
11
- intervals = Array.from({ length: settings.numDays }, () => ({
12
- start: start.clone(),
13
- end: end.clone()
14
- }));
15
- } else if (intervals.length == 1) {
16
- const i = intervals[0];
17
- const start = parseIntervalDate(i.start);
18
- const end = parseIntervalDate(i.end);
19
- intervals = Array.from({ length: settings.numDays }, () => ({
20
- start: start.clone(),
21
- end: end.clone()
22
- }));
23
- } else if (intervals.length != settings.numDays) throw new Error(`(RS::To::Intervals) Intervals length ${intervals.length} does not match settings.numDays ${settings.numDays}`);
24
- return intervals.map((i, day) => {
25
- if (!i.start || !i.end) throw new Error(`(RS::To::Intervals) Interval missing start or end for day ${day}`);
26
- return {
27
- beg: parseFloat(parseIntervalDate(i.start).format("HH.mm")),
28
- end: parseFloat(parseIntervalDate(i.end).format("HH.mm"))
29
- };
30
- });
31
- }
32
- /**
33
- * @deprecated The old way of parsing intervals
34
- */
35
- function parseIntervals(intervals, rootInterval, settings) {
36
- if (intervals && !rootInterval) return getDayLimits(intervals, settings).map((i) => [i]);
37
- if (rootInterval) {
38
- const dayLimits = getDayLimits(intervals, settings);
39
- return makeChainable(rootInterval.intervals).chain((x) => groupBy(x, (x$1) => getDayIndex(x$1.start)), (x) => Object.entries(x).map(([day, xs]) => {
40
- const limit = dayLimits.at(parseInt(day));
41
- if (!limit) throw new Error(`(RS::To::Intervals) Day ${day} not found in dayStartAndEnds`);
42
- return xs.map((x$1) => ({
43
- beg: parseFloat(parseIntervalDate(x$1.start).format("HH.mm")),
44
- end: parseFloat(parseIntervalDate(x$1.end).format("HH.mm")),
45
- binary: true
46
- })).filter((x$1) => x$1.beg >= limit.beg && x$1.end <= limit.end);
47
- }).reduce((acc, curr, index) => {
48
- acc[index] = curr;
49
- return acc;
50
- }, Array.from({ length: settings.numDays }, () => []))).value;
51
- }
52
- }
53
-
54
- //#endregion
55
- export { parseIntervals };
56
- //# sourceMappingURL=parse-intervals.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"parse-intervals.js","names":["x"],"sources":["../../../../../src/RS/to/input/util/parse-intervals.ts"],"sourcesContent":["import { groupBy } from 'lodash-es';\nimport type { ConnectedTypes } from '../../../make-connected';\nimport { getDayIndex } from '../../../../core/util';\nimport type { Types } from '../../../types';\nimport { makeChainable } from '../../../../common/make-chainable';\nimport { parseIntervalDate } from '../intervals';\nimport type { Interval } from '../../../../core/interfaces';\n\nfunction getDayLimits (\n intervals: Interval[] | undefined,\n settings: ConnectedTypes.divisionSettings\n): { beg: number, end: number }[] {\n // remove short-hand notation (a single interval for all days)\n if (!intervals) {\n const start = parseIntervalDate(settings.dayStart);\n const end = parseIntervalDate(settings.dayEnd);\n intervals = Array.from({ length: settings.numDays }, () => ({ start: start.clone(), end: end.clone() }));\n }\n else if (intervals.length == 1) {\n const i = intervals[0];\n const start = parseIntervalDate(i.start);\n const end = parseIntervalDate(i.end);\n intervals = Array.from({ length: settings.numDays }, () => ({ start: start.clone(), end: end.clone() }));\n } else if (intervals.length != settings.numDays) {\n throw new Error(`(RS::To::Intervals) Intervals length ${intervals.length} does not match settings.numDays ${settings.numDays}`);\n }\n\n // the day start and end times of each day\n return intervals.map((i, day: number) => {\n if (!i.start || !i.end) throw new Error(`(RS::To::Intervals) Interval missing start or end for day ${day}`);\n const start = parseFloat(parseIntervalDate(i.start).format('HH.mm'));\n const end = parseFloat(parseIntervalDate(i.end ).format('HH.mm'));\n return { beg: start, end: end };\n });\n}\n\n\n/**\n * @deprecated The old way of parsing intervals\n */\nexport function parseIntervals (\n intervals: Interval[] | undefined,\n rootInterval: ConnectedTypes.rootInterval | undefined,\n settings: ConnectedTypes.divisionSettings\n): Types.interval[][] | undefined {\n // if only intervals are provided\n if (intervals && !rootInterval) return getDayLimits(intervals, settings).map(i => [i]);\n\n // if root intervals are present\n if (rootInterval) {\n const dayLimits = getDayLimits(intervals, settings);\n return makeChainable(rootInterval.intervals)\n .chain(\n x => groupBy(x, x => getDayIndex(x.start)),\n x => Object.entries(x)\n .map(([day, xs]) => {\n const limit = dayLimits.at(parseInt(day));\n if (!limit) throw new Error(`(RS::To::Intervals) Day ${day} not found in dayStartAndEnds`);\n\n // remove all block intervals that lay outside the day start and end\n return xs\n .map(x => ({\n beg: parseFloat(parseIntervalDate(x.start).format('HH.mm')),\n end: parseFloat(parseIntervalDate(x.end ).format('HH.mm')),\n binary: true\n } satisfies Types.interval))\n .filter(x => x.beg >= limit.beg && x.end <= limit.end);\n })\n // ensure that all days are represented, even if empty\n .reduce<Types.interval[][]>((acc, curr, index) => {\n acc[index] = curr;\n return acc;\n }, Array.from({ length: settings.numDays }, () => []))\n )\n .value;\n }\n\n // only remaining case here is \"!intervals && !rootInterval\"\n return;\n};\n"],"mappings":";;;;;;AAQA,SAAS,aACP,WACA,UACgC;AAEhC,KAAI,CAAC,WAAW;EACd,MAAM,QAAQ,kBAAkB,SAAS,SAAS;EAClD,MAAM,MAAQ,kBAAkB,SAAS,OAAO;AAChD,cAAY,MAAM,KAAK,EAAE,QAAQ,SAAS,SAAS,SAAS;GAAE,OAAO,MAAM,OAAO;GAAE,KAAK,IAAI,OAAO;GAAE,EAAE;YAEjG,UAAU,UAAU,GAAG;EAC9B,MAAM,IAAI,UAAU;EACpB,MAAM,QAAQ,kBAAkB,EAAE,MAAM;EACxC,MAAM,MAAQ,kBAAkB,EAAE,IAAI;AACtC,cAAY,MAAM,KAAK,EAAE,QAAQ,SAAS,SAAS,SAAS;GAAE,OAAO,MAAM,OAAO;GAAE,KAAK,IAAI,OAAO;GAAE,EAAE;YAC/F,UAAU,UAAU,SAAS,QACtC,OAAM,IAAI,MAAM,wCAAwC,UAAU,OAAO,mCAAmC,SAAS,UAAU;AAIjI,QAAO,UAAU,KAAK,GAAG,QAAgB;AACvC,MAAI,CAAC,EAAE,SAAS,CAAC,EAAE,IAAK,OAAM,IAAI,MAAM,6DAA6D,MAAM;AAG3G,SAAO;GAAE,KAFK,WAAW,kBAAkB,EAAE,MAAM,CAAC,OAAO,QAAQ,CAAC;GAE/C,KADP,WAAW,kBAAkB,EAAE,IAAM,CAAC,OAAO,QAAQ,CAAC;GACrC;GAC/B;;;;;AAOJ,SAAgB,eACd,WACA,cACA,UACgC;AAEhC,KAAI,aAAa,CAAC,aAAc,QAAO,aAAa,WAAW,SAAS,CAAC,KAAI,MAAK,CAAC,EAAE,CAAC;AAGtF,KAAI,cAAc;EAChB,MAAM,YAAY,aAAa,WAAW,SAAS;AACnD,SAAO,cAAc,aAAa,UAAU,CACzC,OACC,MAAK,QAAQ,IAAG,QAAK,YAAYA,IAAE,MAAM,CAAC,GAC1C,MAAK,OAAO,QAAQ,EAAE,CACnB,KAAK,CAAC,KAAK,QAAQ;GAClB,MAAM,QAAQ,UAAU,GAAG,SAAS,IAAI,CAAC;AACzC,OAAI,CAAC,MAAO,OAAM,IAAI,MAAM,2BAA2B,IAAI,+BAA+B;AAG1F,UAAO,GACJ,KAAI,SAAM;IACT,KAAQ,WAAW,kBAAkBA,IAAE,MAAM,CAAC,OAAO,QAAQ,CAAC;IAC9D,KAAQ,WAAW,kBAAkBA,IAAE,IAAM,CAAC,OAAO,QAAQ,CAAC;IAC9D,QAAQ;IACT,EAA2B,CAC3B,QAAO,QAAKA,IAAE,OAAO,MAAM,OAAOA,IAAE,OAAO,MAAM,IAAI;IACxD,CAED,QAA4B,KAAK,MAAM,UAAU;AAChD,OAAI,SAAS;AACb,UAAO;KACN,MAAM,KAAK,EAAE,QAAQ,SAAS,SAAS,QAAQ,EAAE,CAAC,CAAC,CACzD,CACA"}
@@ -1,33 +0,0 @@
1
- import { Types } from "./index.js";
2
-
3
- //#region src/RS/types/collections.d.ts
4
- interface Collection {
5
- id: string;
6
- events: (Types.event | number)[];
7
- name?: string;
8
- subject?: string;
9
- color?: string;
10
- potentialCenter?: number;
11
- density?: number;
12
- weight?: number;
13
- minBreakLength?: Types.breakLength;
14
- lockedTimes?: Types.lockedTime[];
15
- intervals?: string | Types.interval[][];
16
- days?: (Types.day | number)[];
17
- groups?: Types.groupReference[][];
18
- dependencies?: (Types.availableDependency[] | Types.availableDependency)[];
19
- /**
20
- * @deprecated to be replaced by `_period` in future versions
21
- */
22
- period?: number;
23
- /**
24
- * @deprecated to be renamed to `period` in future versions
25
- */
26
- _period?: string;
27
- maxEventLengthVariance?: number;
28
- distributionKey?: string | string[];
29
- meta?: Record<string, unknown>;
30
- }
31
- //#endregion
32
- export { Collection };
33
- //# sourceMappingURL=collections.d.ts.map
@@ -1,31 +0,0 @@
1
- import { Types } from "./index.js";
2
-
3
- //#region src/RS/types/default.d.ts
4
- interface Default {
5
- intervals: string | Types.interval[][];
6
- dependencyMinBreakLength: number;
7
- groupMinBreakLength: number;
8
- eventMinBreakLength: Types.breakLength;
9
- potentialCenter: number;
10
- eventDensity: number;
11
- maxEventLengthVariance: number;
12
- maxNumWorkingHours: number | boolean;
13
- maxNumDailyWorkingHours: number | number[] | boolean;
14
- dependencyRank: number;
15
- groupRank: number;
16
- dayRank: number;
17
- groupWeight: number;
18
- collectionWeight: number;
19
- eventWeight: number;
20
- /**
21
- * @deprecated To be replaced by `_period` in future versions
22
- */
23
- period?: number;
24
- /**
25
- * @deprecated To be renamed `period` in future versions
26
- */
27
- _period?: string;
28
- }
29
- //#endregion
30
- export { Default };
31
- //# sourceMappingURL=default.d.ts.map
@@ -1,16 +0,0 @@
1
- import { Types } from "./index.js";
2
-
3
- //#region src/RS/types/dependencies.d.ts
4
- interface Dependency {
5
- id?: string;
6
- minBreakLength?: number;
7
- name?: string;
8
- area?: string;
9
- days?: (Types.day | number)[];
10
- intervals?: string | Types.interval[][];
11
- lockedTimes?: Types.lockedTime[];
12
- meta?: Record<string, unknown>;
13
- }
14
- //#endregion
15
- export { Dependency };
16
- //# sourceMappingURL=dependencies.d.ts.map
@@ -1,34 +0,0 @@
1
- import { Types } from "./index.js";
2
-
3
- //#region src/RS/types/events.d.ts
4
- interface Event {
5
- id: string;
6
- length: number;
7
- name?: string;
8
- potentialCenter?: number;
9
- density?: number;
10
- weight?: number;
11
- minBreakLength?: Types.breakLength;
12
- maxLengthVariance?: number;
13
- start?: number;
14
- lockedTimes?: Types.lockedTime[];
15
- intervals?: string | Types.interval[][];
16
- days?: (Types.day | number)[];
17
- day?: number;
18
- groups?: Types.groupReference[][];
19
- dependencies?: (Types.availableDependency[] | Types.availableDependency | string | string[])[];
20
- /**
21
- * @deprecated to be replaced by `_period` in future versions
22
- */
23
- period?: number;
24
- /**
25
- * @deprecated to be renamed to `period` in future versions
26
- */
27
- _period?: string;
28
- forcedOverlapId?: string;
29
- distributionKey?: string | string[];
30
- meta?: Record<string, unknown>;
31
- }
32
- //#endregion
33
- export { Event };
34
- //# sourceMappingURL=events.d.ts.map
@@ -1,27 +0,0 @@
1
- import { Types } from "./index.js";
2
-
3
- //#region src/RS/types/groups.d.ts
4
- type GroupType = 'personal' | 'classes' | 'persons';
5
- interface Group {
6
- id: string;
7
- group_type: GroupType;
8
- name?: string;
9
- minBreakLength?: Types.breakLength;
10
- maxNumWorkingHours?: number | boolean;
11
- maxNumDailyWorkingHours?: number | number[] | boolean;
12
- weight?: number;
13
- rank?: number;
14
- lockedTimes?: Types.lockedTime[];
15
- intervals?: string | Types.interval[][];
16
- days?: (Types.day | number)[];
17
- minimizeGaps?: boolean;
18
- minimizeDependencyAlternation?: boolean;
19
- /** @deprecated in v3 */
20
- forbidOverlappingEvents?: boolean;
21
- /** @deprecated replaced by minimizeGaps in v3 */
22
- disableDayLengthPunishment?: boolean;
23
- meta?: Record<string, unknown>;
24
- }
25
- //#endregion
26
- export { Group };
27
- //# sourceMappingURL=groups.d.ts.map
@@ -1,16 +0,0 @@
1
- import { Types } from "./index.js";
2
-
3
- //#region src/RS/types/individuals.d.ts
4
- type Individual = {
5
- id: string;
6
- group?: Types.group['id'];
7
- meta?: Record<string, unknown>;
8
- };
9
- type IndividualsSet = {
10
- id: string;
11
- individuals: Individual['id'][];
12
- meta?: Record<string, unknown>;
13
- };
14
- //#endregion
15
- export { Individual, IndividualsSet };
16
- //# sourceMappingURL=individuals.d.ts.map
@@ -1,12 +0,0 @@
1
- //#region src/RS/types/locked-times.d.ts
2
- interface LockedTime {
3
- id?: string;
4
- name?: string;
5
- start?: number;
6
- length?: number;
7
- day?: number;
8
- meta?: Record<string, unknown>;
9
- }
10
- //#endregion
11
- export { LockedTime };
12
- //# sourceMappingURL=locked-times.d.ts.map
@@ -1,27 +0,0 @@
1
- //#region src/RS/types/period.d.ts
2
- type Period = {
3
- id: string;
4
- /**
5
- * A binary string (containing only ones and zeros) representing the weeks this period is active in. All periods `weeks` strings
6
- * have the same length to make it unambiguous which week each position corresponds to.
7
- */
8
- weeks: string;
9
- /**
10
- * The logical and operation between two period's binary `overlaps` strings is used to determine whether they overlap,
11
- * i.e., are active during at least one common week.
12
- *
13
- * There are three cases for the format of this string:
14
- *
15
- * 1. If there are less than 64 weeks this string is simply a copy of the `weeks` string.
16
- *
17
- * 2. If there are more than 64 weeks but less than or equal to 64 periods, we compute the overlaps directly. This binary string
18
- * then has the same length as the number of periods and a '1' at position j indicates that the period overlaps with the one whose
19
- * index is j. There is at least one '1' in the string at the position corresponding to its own index (self-overlap).
20
- *
21
- * 3. If there are more than 64 weeks and more than 64 periods this string is empty, as the overlaps cannot not be stored in 64 bits.
22
- */
23
- overlaps: string;
24
- };
25
- //#endregion
26
- export { Period };
27
- //# sourceMappingURL=period.d.ts.map
@@ -1,10 +0,0 @@
1
- import { Types } from "./index.js";
2
-
3
- //#region src/RS/types/root-intervals.d.ts
4
- interface RootInterval {
5
- id: string;
6
- value: Types.interval[][];
7
- }
8
- //#endregion
9
- export { RootInterval };
10
- //# sourceMappingURL=root-intervals.d.ts.map
@@ -1,15 +0,0 @@
1
- //#region src/RS/types/settings.d.ts
2
- interface Settings {
3
- numDays: number;
4
- discretization: number;
5
- periodIdKey: 'id';
6
- intervalIdKey: 'id';
7
- dependencyIdKey: 'id';
8
- groupIdKey: 'id';
9
- individualIdKey: 'id';
10
- collectionIdKey: 'id';
11
- eventIdKey: 'id';
12
- }
13
- //#endregion
14
- export { Settings };
15
- //# sourceMappingURL=settings.d.ts.map
@@ -1,27 +0,0 @@
1
- //#region src/RS/types/shared.d.ts
2
- interface AvailableDependency {
3
- dependency: string;
4
- rank?: number;
5
- }
6
- type GroupReference = string | {
7
- group: string;
8
- } | {
9
- individuals: string | string[];
10
- };
11
- type AsymType = {
12
- bef: number;
13
- aft: number;
14
- };
15
- type BreakLength = boolean | number | AsymType;
16
- interface Day {
17
- day?: number;
18
- rank?: number;
19
- }
20
- interface Interval {
21
- beg: number;
22
- end: number;
23
- binary?: boolean;
24
- }
25
- //#endregion
26
- export { AvailableDependency, BreakLength, Day, GroupReference, Interval };
27
- //# sourceMappingURL=shared.d.ts.map
@@ -1,23 +0,0 @@
1
- import { Coalesced } from "./vertices/properties/coalesced.js";
2
- import { Species } from "./vertices/properties/species.js";
3
- import { AllWeeks, Week, allWeeks } from "./vertices/properties/week.js";
4
- import { Day } from "./vertices/properties/days.js";
5
- import { Interval } from "./vertices/properties/intervals.js";
6
- import { Tag, TagType } from "./vertices/properties/tags.js";
7
- import { MaximumScheduleSpan } from "./vertices/properties/maximum-schedule-span.js";
8
- import { PlannedScheduledDuration } from "./vertices/properties/planned-scheduled-duration.js";
9
- import { MinBreakLength } from "./vertices/properties/min-break-length.js";
10
- import { PublicId } from "./vertices/properties/index.js";
11
- import { CalendarException } from "./vertices/division-settings.js";
12
- import { Address, AutoSyncConfig, Company, GlobalDefaultValues, INACTIVITY_ACTIONS, InactivityAction, InactivitySettings, PublicConfig, TimeRosterSection } from "./other/companies.js";
13
- import { Integration } from "./other/integrations.js";
14
- import { User } from "./other/users.js";
15
- import { Action, Policy, Statement } from "./other/policies.js";
16
- import { Operation, OperationType, operationType } from "./other/operations.js";
17
- import { ErrorCode, SyncLog } from "./other/sync-logs.js";
18
- import "./other/index.js";
19
- import { StepGuideProgress } from "./vertices/divisions.js";
20
- import { CalendarExceptionAction, ExceptionStatus } from "./vertices/exceptions.js";
21
- import { LockedTimeType } from "./vertices/locked-times.js";
22
- import { Infer, VertexQuery, createVertexQuery } from "./vertices/vertex-query.js";
23
- import { Deep, DeepWithoutPrivateId, Mixed, MixedWithOptionalId, Serialized, SerializedWithOptionalId } from "./vertices/index.js";
@@ -1,6 +0,0 @@
1
- import { Address, AutoSyncConfig, Company, GlobalDefaultValues, INACTIVITY_ACTIONS, InactivityAction, InactivitySettings, PublicConfig, TimeRosterSection } from "./companies.js";
2
- import { Integration } from "./integrations.js";
3
- import { User } from "./users.js";
4
- import { Action, Policy, Statement } from "./policies.js";
5
- import { Operation, OperationType, operationType } from "./operations.js";
6
- import { ErrorCode, SyncLog } from "./sync-logs.js";