webuntis-client 1.0.4 → 1.0.5

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.
package/README.md CHANGED
@@ -51,6 +51,15 @@ const end = new Date("2027");
51
51
  await client.getHomeworksLessons(start, end);
52
52
  ```
53
53
 
54
+ ### Absences
55
+
56
+ ```typescript
57
+ const start = new Date("2026");
58
+ const end = new Date("2027");
59
+
60
+ await client.getAbsences(start, end);
61
+ ```
62
+
54
63
  ### App data
55
64
 
56
65
  ```typescript
@@ -1,9 +1,10 @@
1
- import { Credentials } from "./Credentials";
1
+ import { Credentials } from './Credentials';
2
+ import { AbsencesStudentsData } from './types/absences';
2
3
  import { AppData, CurrentSchoolYear, Holiday, OneDriveData, Tenant, User } from './types/app-data';
3
4
  import { HomeworksLessonsData } from './types/homework';
4
- import { Profile } from "./types/profile";
5
- import { SessionInfo } from "./types/session";
6
- import { TimetableResponse } from "./types/timetable";
5
+ import { Profile } from './types/profile';
6
+ import { SessionInfo } from './types/session';
7
+ import { ClassTimetableResponse, OwnTimetableResponse } from './types/timetable';
7
8
  export declare class WebUntisClient {
8
9
  private readonly _httpClient;
9
10
  private readonly _apiClient;
@@ -14,6 +15,7 @@ export declare class WebUntisClient {
14
15
  private readonly _profileService;
15
16
  private readonly _homeworksService;
16
17
  private readonly _timetableService;
18
+ private readonly _absencesService;
17
19
  constructor(credentials: Credentials);
18
20
  /**
19
21
  * Login to WebUntis
@@ -67,6 +69,10 @@ export declare class WebUntisClient {
67
69
  * Get user information from cache
68
70
  */
69
71
  getUser(): User;
72
+ /**
73
+ * Get student id from cache
74
+ */
75
+ getStudentId(): string;
70
76
  /**
71
77
  * Get user permissions from cache
72
78
  */
@@ -101,8 +107,28 @@ export declare class WebUntisClient {
101
107
  * @param start - Start date
102
108
  * @param end - End date
103
109
  */
104
- getOwnTimetable(start: Date, end: Date): Promise<TimetableResponse>;
110
+ getOwnTimetable(start: Date, end: Date): Promise<OwnTimetableResponse>;
111
+ /**
112
+ * Get class timetable for date range
113
+ *
114
+ * @param start - Start date
115
+ * @param end - End date
116
+ */
117
+ getClassTimetable(start: Date, end: Date): Promise<ClassTimetableResponse>;
118
+ /**
119
+ * Get homeworks and lessons for date range
120
+ *
121
+ * @param start - Start date
122
+ * @param end - End date
123
+ */
105
124
  getHomeworksLessons(start: Date, end: Date): Promise<HomeworksLessonsData>;
125
+ /**
126
+ * Get absences for date range
127
+ *
128
+ * @param start - Start date
129
+ * @param end - End date
130
+ */
131
+ getAbsences(start: Date, end: Date): Promise<AbsencesStudentsData>;
106
132
  /**
107
133
  * Ensure user is authenticated
108
134
  */
@@ -1 +1 @@
1
- {"version":3,"file":"WebUntis.d.ts","sourceRoot":"","sources":["../src/WebUntis.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAQ5C,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACnG,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAG3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IACrD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAG7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IACrD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;gBAEzC,WAAW,EAAE,WAAW;IAiCpC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC;IASnC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAM7B;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACH,UAAU,IAAI,WAAW,GAAG,IAAI;IAQhC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAKpC;;OAEG;IACH,oBAAoB,IAAI,iBAAiB;IAIzC;;OAEG;IACH,sBAAsB,IAAI,MAAM;IAIhC;;OAEG;IACH,cAAc,IAAI,OAAO,EAAE;IAI3B;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,eAAe,IAAI,YAAY;IAI/B;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE;IAI1B;;OAEG;IACH,WAAW,IAAI,MAAM,EAAE;IAIvB;;OAEG;IACH,cAAc,IAAI,OAAO,EAAE;IAI3B;;OAEG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAI7B;;OAEG;IACH,WAAW,IAAI,OAAO,EAAE;IAQxB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IASpC;;;;;OAKG;IACG,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC;IASnE,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAShF;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAS/B"}
1
+ {"version":3,"file":"WebUntis.d.ts","sourceRoot":"","sources":["../src/WebUntis.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAS5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACnG,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEjF,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAG3C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IACrD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;IAG7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IACrD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmB;IACrD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAkB;gBAEvC,WAAW,EAAE,WAAW;IAsCpC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC;IASnC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAM7B;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACH,UAAU,IAAI,WAAW,GAAG,IAAI;IAQhC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAKpC;;OAEG;IACH,oBAAoB,IAAI,iBAAiB;IAIzC;;OAEG;IACH,sBAAsB,IAAI,MAAM;IAIhC;;OAEG;IACH,cAAc,IAAI,OAAO,EAAE;IAI3B;;OAEG;IACH,YAAY,IAAI,OAAO;IAIvB;;OAEG;IACH,eAAe,IAAI,YAAY;IAI/B;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;OAEG;IACH,YAAY,IAAI,MAAM;IAItB;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE;IAI1B;;OAEG;IACH,WAAW,IAAI,MAAM,EAAE;IAIvB;;OAEG;IACH,cAAc,IAAI,OAAO,EAAE;IAI3B;;OAEG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAI7B;;OAEG;IACH,WAAW,IAAI,OAAO,EAAE;IAQxB;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IASpC;;;;;OAKG;IACG,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAK5E;;;;;OAKG;IACG,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAShF;;;;;OAKG;IACG,mBAAmB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAShF;;;;;OAKG;IACG,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC;IASxE;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAS/B"}
package/dist/WebUntis.js CHANGED
@@ -1,13 +1,14 @@
1
- import { ApiClient } from "./clients/Api";
2
- import { HttpClient } from "./clients/Http";
3
- import { JsonRpcClient } from "./clients/JsonRpc";
4
- import { ValidationError } from "./errors/Validation";
5
- import { AuthenticationManager } from "./managers/Authentication";
6
- import { TokenManager } from "./managers/Token";
7
- import { AppDataService } from "./services/AppData";
1
+ import { ApiClient } from './clients/Api';
2
+ import { HttpClient } from './clients/Http';
3
+ import { JsonRpcClient } from './clients/JsonRpc';
4
+ import { ValidationError } from './errors/Validation';
5
+ import { AuthenticationManager } from './managers/Authentication';
6
+ import { TokenManager } from './managers/Token';
7
+ import { AbsencesService } from './services/Absences';
8
+ import { AppDataService } from './services/AppData';
8
9
  import { HomeworksService } from './services/Homeworks';
9
- import { ProfileService } from "./services/Profile";
10
- import { TimetableService } from "./services/Timetable";
10
+ import { ProfileService } from './services/Profile';
11
+ import { TimetableService } from './services/Timetable';
11
12
  export class WebUntisClient {
12
13
  // Clients
13
14
  _httpClient;
@@ -21,6 +22,7 @@ export class WebUntisClient {
21
22
  _profileService;
22
23
  _homeworksService;
23
24
  _timetableService;
25
+ _absencesService;
24
26
  constructor(credentials) {
25
27
  const { identity, url } = credentials;
26
28
  // Clients
@@ -35,7 +37,8 @@ export class WebUntisClient {
35
37
  this._appDataService = new AppDataService(this._apiClient);
36
38
  this._profileService = new ProfileService(this._apiClient);
37
39
  this._homeworksService = new HomeworksService(this._apiClient);
38
- this._timetableService = new TimetableService(this._apiClient, this._authManager);
40
+ this._timetableService = new TimetableService(this._apiClient, () => this._authManager.getSession());
41
+ this._absencesService = new AbsencesService(this._apiClient, () => this.getStudentId());
39
42
  }
40
43
  //#region Authentication
41
44
  /**
@@ -124,6 +127,12 @@ export class WebUntisClient {
124
127
  getUser() {
125
128
  return this._appDataService.getUser();
126
129
  }
130
+ /**
131
+ * Get student id from cache
132
+ */
133
+ getStudentId() {
134
+ return this._appDataService.getStudentId();
135
+ }
127
136
  /**
128
137
  * Get user permissions from cache
129
138
  */
@@ -170,7 +179,7 @@ export class WebUntisClient {
170
179
  return await this._profileService.getProfile();
171
180
  }
172
181
  //#endregion
173
- //#region Own Timetable
182
+ //#region Timetable
174
183
  /**
175
184
  * Get own timetable for date range
176
185
  *
@@ -181,13 +190,41 @@ export class WebUntisClient {
181
190
  this._ensureAuthenticated();
182
191
  return await this._timetableService.getOwnTimetable(start, end);
183
192
  }
193
+ /**
194
+ * Get class timetable for date range
195
+ *
196
+ * @param start - Start date
197
+ * @param end - End date
198
+ */
199
+ async getClassTimetable(start, end) {
200
+ this._ensureAuthenticated();
201
+ return await this._timetableService.getClassTimetable(start, end);
202
+ }
184
203
  //#endregion
185
204
  //#region Homeworks and Lessons
205
+ /**
206
+ * Get homeworks and lessons for date range
207
+ *
208
+ * @param start - Start date
209
+ * @param end - End date
210
+ */
186
211
  async getHomeworksLessons(start, end) {
187
212
  this._ensureAuthenticated();
188
213
  return await this._homeworksService.getHomeworksLessons(start, end);
189
214
  }
190
215
  //#endregion
216
+ //#region Absences
217
+ /**
218
+ * Get absences for date range
219
+ *
220
+ * @param start - Start date
221
+ * @param end - End date
222
+ */
223
+ async getAbsences(start, end) {
224
+ this._ensureAuthenticated();
225
+ return await this._absencesService.getAbsences(start, end);
226
+ }
227
+ //#endregion
191
228
  //#region Helpers
192
229
  /**
193
230
  * Ensure user is authenticated
@@ -1,7 +1,7 @@
1
+ import { AbsencesStudentsResponse } from '../types/absences';
1
2
  import { AppData } from '../types/app-data';
2
3
  import { HomeworksLessonsResponse } from '../types/homework';
3
4
  import { ProfileResponse } from '../types/profile';
4
- import { TimetableResponse } from '../types/timetable';
5
5
  import { HttpClient } from './Http';
6
6
  /**
7
7
  * Client for WebUntis REST API endpoints
@@ -24,7 +24,14 @@ export declare class ApiClient {
24
24
  /**
25
25
  * Fetch timetable entries
26
26
  */
27
- fetchOwnTimetable(params: URLSearchParams): Promise<TimetableResponse>;
27
+ fetchTimetable<T>(params: URLSearchParams): Promise<T>;
28
+ /**
29
+ * Fetch homeworks and lessons
30
+ */
28
31
  fetchHomeworksLessons(params: URLSearchParams): Promise<HomeworksLessonsResponse>;
32
+ /**
33
+ * Fetch absences
34
+ */
35
+ fetchAbsences(params: URLSearchParams): Promise<AbsencesStudentsResponse>;
29
36
  }
30
37
  //# sourceMappingURL=Api.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Api.d.ts","sourceRoot":"","sources":["../../src/clients/Api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC;;GAEG;AACH,qBAAa,SAAS;IAEd,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAJhB,WAAW,EAAE,UAAU,EACvB,WAAW,EAAE,MAAM,MAAM,EACzB,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAChC,YAAY,EAAE,MAAM,MAAM,GAAG,IAAI,EACjC,gBAAgB,EAAE,MAAM,MAAM;IAInD;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAmBtC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,eAAe,CAAC;IAS9C;;OAEG;IACG,iBAAiB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAqBtE,qBAAqB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,wBAAwB,CAAC;CAQ1F"}
1
+ {"version":3,"file":"Api.d.ts","sourceRoot":"","sources":["../../src/clients/Api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC;;GAEG;AACH,qBAAa,SAAS;IAEd,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAJhB,WAAW,EAAE,UAAU,EACvB,WAAW,EAAE,MAAM,MAAM,EACzB,SAAS,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAChC,YAAY,EAAE,MAAM,MAAM,GAAG,IAAI,EACjC,gBAAgB,EAAE,MAAM,MAAM;IAInD;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAmBtC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,eAAe,CAAC;IAS9C;;OAEG;IACG,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,CAAC,CAAC;IAqB5D;;OAEG;IACG,qBAAqB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,wBAAwB,CAAC;IASvF;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,wBAAwB,CAAC;CAQlF"}
@@ -40,7 +40,7 @@ export class ApiClient {
40
40
  /**
41
41
  * Fetch timetable entries
42
42
  */
43
- async fetchOwnTimetable(params) {
43
+ async fetchTimetable(params) {
44
44
  const token = await this._getToken();
45
45
  const tenantId = this._getTenantId();
46
46
  const cookies = this._getCookies();
@@ -55,8 +55,18 @@ export class ApiClient {
55
55
  Cookie: cookies
56
56
  });
57
57
  }
58
+ /**
59
+ * Fetch homeworks and lessons
60
+ */
58
61
  async fetchHomeworksLessons(params) {
59
62
  const cookies = this._getCookies();
60
63
  return await this._httpClient.get(`/WebUntis/api/homeworks/lessons?${params}`, { Cookie: cookies });
61
64
  }
65
+ /**
66
+ * Fetch absences
67
+ */
68
+ async fetchAbsences(params) {
69
+ const cookies = this._getCookies();
70
+ return await this._httpClient.get(`/WebUntis/api/classreg/absences/students?${params}`, { Cookie: cookies });
71
+ }
62
72
  }
@@ -0,0 +1,19 @@
1
+ import { ApiClient } from '../clients/Api';
2
+ import { AbsencesStudentsData } from '../types/absences';
3
+ /**
4
+ * Service for managing absences
5
+ */
6
+ export declare class AbsencesService {
7
+ private readonly _apiClient;
8
+ private readonly _getStudentId;
9
+ constructor(_apiClient: ApiClient, _getStudentId: () => string);
10
+ /**
11
+ * Get absences
12
+ */
13
+ getAbsences(start: Date, end: Date): Promise<AbsencesStudentsData>;
14
+ /**
15
+ * Build query parameters for absences request
16
+ */
17
+ private _buildAbsencesParams;
18
+ }
19
+ //# sourceMappingURL=Absences.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Absences.d.ts","sourceRoot":"","sources":["../../src/services/Absences.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAGzD;;GAEG;AACH,qBAAa,eAAe;IAEpB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,aAAa;gBADb,UAAU,EAAE,SAAS,EACrB,aAAa,EAAE,MAAM,MAAM;IAIhD;;OAEG;IACG,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAMxE;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAgB/B"}
@@ -0,0 +1,35 @@
1
+ import { UtilsDate } from '../utils/date';
2
+ /**
3
+ * Service for managing absences
4
+ */
5
+ export class AbsencesService {
6
+ _apiClient;
7
+ _getStudentId;
8
+ constructor(_apiClient, _getStudentId) {
9
+ this._apiClient = _apiClient;
10
+ this._getStudentId = _getStudentId;
11
+ }
12
+ /**
13
+ * Get absences
14
+ */
15
+ async getAbsences(start, end) {
16
+ const params = this._buildAbsencesParams(start, end);
17
+ const response = await this._apiClient.fetchAbsences(params);
18
+ return response.data;
19
+ }
20
+ /**
21
+ * Build query parameters for absences request
22
+ */
23
+ _buildAbsencesParams(start, end) {
24
+ const startDate = UtilsDate.formatDate(start, 'YYYYMMDD');
25
+ const endDate = UtilsDate.formatDate(end, 'YYYYMMDD');
26
+ const studentId = this._getStudentId();
27
+ const excuseStatusId = '-1';
28
+ return new URLSearchParams({
29
+ startDate: startDate,
30
+ endDate: endDate,
31
+ studentId: studentId,
32
+ excuseStatusId: excuseStatusId
33
+ });
34
+ }
35
+ }
@@ -1,4 +1,4 @@
1
- import { ApiClient } from "../clients/Api";
1
+ import { ApiClient } from '../clients/Api';
2
2
  import { AppData, CurrentSchoolYear, Holiday, OneDriveData, Tenant, User } from '../types/app-data';
3
3
  /**
4
4
  * Service for fetching app data
@@ -47,6 +47,10 @@ export declare class AppDataService {
47
47
  * Get user information from cache
48
48
  */
49
49
  getUser(): User;
50
+ /**
51
+ * Get student id from cache
52
+ */
53
+ getStudentId(): string;
50
54
  /**
51
55
  * Get user permissions from cache
52
56
  */
@@ -1 +1 @@
1
- {"version":3,"file":"AppData.d.ts","sourceRoot":"","sources":["../../src/services/AppData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEpG;;GAEG;AACH,qBAAa,cAAc;IAInB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAH/B,OAAO,CAAC,KAAK,CAAwB;gBAGhB,UAAU,EAAE,SAAS;IAG1C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAKpC;;OAEG;IACH,UAAU,IAAI,IAAI;IAMlB;;OAEG;IACH,oBAAoB,IAAI,iBAAiB;IAKzC;;OAEG;IACH,sBAAsB,IAAI,MAAM;IAKhC;;OAEG;IACH,cAAc,IAAI,OAAO,EAAE;IAK3B;;OAEG;IACH,YAAY,IAAI,OAAO;IAKvB;;OAEG;IACH,eAAe,IAAI,YAAY;IAK/B;;OAEG;IACH,SAAS,IAAI,MAAM;IAKnB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAKnB;;OAEG;IACH,OAAO,IAAI,IAAI;IAKf;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE;IAK1B;;OAEG;IACH,WAAW,IAAI,MAAM,EAAE;IAKvB;;OAEG;IACH,cAAc,IAAI,OAAO,EAAE;IAK3B;;OAEG;IACH,mBAAmB,IAAI,OAAO;IAK9B;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAK7B;;OAEG;IACH,WAAW,IAAI,OAAO,EAAE;IASxB,OAAO,CAAC,cAAc;CAOzB"}
1
+ {"version":3,"file":"AppData.d.ts","sourceRoot":"","sources":["../../src/services/AppData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAEpG;;GAEG;AACH,qBAAa,cAAc;IAInB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAH/B,OAAO,CAAC,KAAK,CAAwB;gBAGhB,UAAU,EAAE,SAAS;IAI1C;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAKpC;;OAEG;IACH,UAAU,IAAI,IAAI;IAMlB;;OAEG;IACH,oBAAoB,IAAI,iBAAiB;IAKzC;;OAEG;IACH,sBAAsB,IAAI,MAAM;IAKhC;;OAEG;IACH,cAAc,IAAI,OAAO,EAAE;IAK3B;;OAEG;IACH,YAAY,IAAI,OAAO;IAKvB;;OAEG;IACH,eAAe,IAAI,YAAY;IAK/B;;OAEG;IACH,SAAS,IAAI,MAAM;IAKnB;;OAEG;IACH,QAAQ,IAAI,OAAO;IAKnB;;OAEG;IACH,OAAO,IAAI,IAAI;IAKf;;OAEG;IACH,YAAY,IAAI,MAAM;IAKtB;;OAEG;IACH,cAAc,IAAI,MAAM,EAAE;IAK1B;;OAEG;IACH,WAAW,IAAI,MAAM,EAAE;IAKvB;;OAEG;IACH,cAAc,IAAI,OAAO,EAAE;IAK3B;;OAEG;IACH,mBAAmB,IAAI,OAAO;IAK9B;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAK7B;;OAEG;IACH,WAAW,IAAI,OAAO,EAAE;IASxB,OAAO,CAAC,cAAc;CAOzB"}
@@ -78,6 +78,13 @@ export class AppDataService {
78
78
  this._ensureHasData();
79
79
  return this._data.user;
80
80
  }
81
+ /**
82
+ * Get student id from cache
83
+ */
84
+ getStudentId() {
85
+ this._ensureHasData();
86
+ return this._data.user.person.id.toString();
87
+ }
81
88
  /**
82
89
  * Get user permissions from cache
83
90
  */
@@ -124,7 +131,7 @@ export class AppDataService {
124
131
  //#region Helpers
125
132
  _ensureHasData() {
126
133
  if (this._data === null) {
127
- throw new ValidationError("Data was not found. Please call getAppData() first.");
134
+ throw new ValidationError('Data was not found. Please call getAppData() first.');
128
135
  }
129
136
  }
130
137
  }
@@ -1,17 +1,21 @@
1
- import { ApiClient } from "../clients/Api";
2
- import { AuthenticationManager } from "../managers/Authentication";
3
- import { TimetableResponse } from "../types/timetable";
1
+ import { ApiClient } from '../clients/Api';
2
+ import { SessionInfo } from '../types/session';
3
+ import { ClassTimetableResponse, OwnTimetableResponse } from '../types/timetable';
4
4
  /**
5
5
  * Service for fetching timetable data
6
6
  */
7
7
  export declare class TimetableService {
8
8
  private readonly _apiClient;
9
- private readonly _authManager;
10
- constructor(_apiClient: ApiClient, _authManager: AuthenticationManager);
9
+ private readonly _getSession;
10
+ constructor(_apiClient: ApiClient, _getSession: () => SessionInfo | null);
11
+ /**
12
+ * Get own timetable for date range
13
+ */
14
+ getOwnTimetable(start: Date, end: Date): Promise<OwnTimetableResponse>;
11
15
  /**
12
16
  * Get timetable for date range
13
17
  */
14
- getOwnTimetable(start: Date, end: Date): Promise<TimetableResponse>;
18
+ getClassTimetable(start: Date, end: Date): Promise<ClassTimetableResponse>;
15
19
  /**
16
20
  * Build query parameters for timetable request
17
21
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Timetable.d.ts","sourceRoot":"","sources":["../../src/services/Timetable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGvD;;GAEG;AACH,qBAAa,gBAAgB;IAErB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,YAAY;gBADZ,UAAU,EAAE,SAAS,EACrB,YAAY,EAAE,qBAAqB;IAGxD;;OAEG;IACG,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAYzE;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAmBhC"}
1
+ {"version":3,"file":"Timetable.d.ts","sourceRoot":"","sources":["../../src/services/Timetable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAGlF;;GAEG;AACH,qBAAa,gBAAgB;IAErB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW;gBADX,UAAU,EAAE,SAAS,EACrB,WAAW,EAAE,MAAM,WAAW,GAAG,IAAI;IAI1D;;OAEG;IACG,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAY5E;;OAEG;IACG,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAYhF;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAqBhC"}
@@ -1,41 +1,53 @@
1
- import { AuthenticationError } from "../errors/Authentication";
1
+ import { AuthenticationError } from '../errors/Authentication';
2
2
  import { UtilsDate } from '../utils/date';
3
3
  /**
4
4
  * Service for fetching timetable data
5
5
  */
6
6
  export class TimetableService {
7
7
  _apiClient;
8
- _authManager;
9
- constructor(_apiClient, _authManager) {
8
+ _getSession;
9
+ constructor(_apiClient, _getSession) {
10
10
  this._apiClient = _apiClient;
11
- this._authManager = _authManager;
11
+ this._getSession = _getSession;
12
12
  }
13
13
  /**
14
- * Get timetable for date range
14
+ * Get own timetable for date range
15
15
  */
16
16
  async getOwnTimetable(start, end) {
17
- const session = this._authManager.getSession();
17
+ const session = this._getSession();
18
18
  if (!session?.personId) {
19
19
  throw new AuthenticationError('No active session or person ID');
20
20
  }
21
- const params = this._buildTimetableParams(start, end, session.personId);
22
- return await this._apiClient.fetchOwnTimetable(params);
21
+ const params = this._buildTimetableParams(start, end, 'STUDENT', session.personId);
22
+ return await this._apiClient.fetchTimetable(params);
23
+ }
24
+ /**
25
+ * Get timetable for date range
26
+ */
27
+ async getClassTimetable(start, end) {
28
+ const session = this._getSession();
29
+ if (!session?.klasseId) {
30
+ throw new AuthenticationError('No active session or person ID');
31
+ }
32
+ const params = this._buildTimetableParams(start, end, 'CLASS', session.klasseId);
33
+ return await this._apiClient.fetchTimetable(params);
23
34
  }
24
35
  /**
25
36
  * Build query parameters for timetable request
26
37
  */
27
- _buildTimetableParams(start, end, personId) {
38
+ _buildTimetableParams(start, end, resourceType, personId) {
28
39
  const startDate = UtilsDate.formatDate(start);
29
40
  const endDate = UtilsDate.formatDate(end);
41
+ const timetableType = resourceType === 'STUDENT' ? 'MY_TIMETABLE' : 'STANDARD';
30
42
  return new URLSearchParams({
31
43
  start: startDate,
32
44
  end: endDate,
33
45
  format: '4',
34
- resourceType: 'STUDENT',
46
+ resourceType: resourceType,
35
47
  resources: personId.toString(),
36
48
  periodTypes: '',
37
- timetableType: 'MY_TIMETABLE',
38
- layout: 'START_TIME',
49
+ timetableType: timetableType,
50
+ layout: 'START_TIME'
39
51
  });
40
52
  }
41
53
  }
@@ -0,0 +1,40 @@
1
+ export interface Excuse {
2
+ id: number;
3
+ text: string;
4
+ excuseDate: number;
5
+ excuseStatus: string;
6
+ isExcused: boolean;
7
+ userId: number;
8
+ username: string;
9
+ }
10
+ export interface Absence {
11
+ id: number;
12
+ startDate: number;
13
+ endDate: number;
14
+ startTime: number;
15
+ endTime: number;
16
+ createDate: number;
17
+ lastUpdate: number;
18
+ createdUser: string;
19
+ updatedUser: string;
20
+ reasonId: number;
21
+ reason: string;
22
+ text: string;
23
+ interruptions: unknown[];
24
+ canEdit: boolean;
25
+ studentName: string;
26
+ excuseStatus: string | null;
27
+ isExcused: boolean;
28
+ excuse: Excuse;
29
+ }
30
+ export interface AbsencesStudentsData {
31
+ absences: Absence[];
32
+ absenceReasons: unknown[];
33
+ excuseStatuses: unknown | null;
34
+ showAbsenceReasonChange: boolean;
35
+ showCreateAbsence: boolean;
36
+ }
37
+ export interface AbsencesStudentsResponse {
38
+ data: AbsencesStudentsData;
39
+ }
40
+ //# sourceMappingURL=absences.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"absences.d.ts","sourceRoot":"","sources":["../../src/types/absences.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,OAAO;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,OAAO,EAAE,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACjC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,cAAc,EAAE,OAAO,EAAE,CAAC;IAC1B,cAAc,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,uBAAuB,EAAE,OAAO,CAAC;IACjC,iBAAiB,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,wBAAwB;IACrC,IAAI,EAAE,oBAAoB,CAAC;CAC9B"}
@@ -0,0 +1 @@
1
+ export {};
@@ -1,16 +1,6 @@
1
- export interface TimetableResponse {
2
- format: number;
3
- days: Day[];
4
- errors: unknown[];
5
- }
6
- export interface Day {
7
- date: string;
8
- resourceType: string;
9
- resource: Resource;
10
- status: string;
11
- dayEntries: unknown[];
12
- gridEntries: GridEntry[];
13
- backEntries: BackEntry[];
1
+ export interface Duration {
2
+ start: string;
3
+ end: string;
14
4
  }
15
5
  export interface Resource {
16
6
  id: number;
@@ -18,7 +8,23 @@ export interface Resource {
18
8
  longName: string;
19
9
  displayName: string;
20
10
  }
21
- export interface GridEntry {
11
+ export interface PositionData {
12
+ type: string;
13
+ status: string;
14
+ shortName: string;
15
+ longName: string;
16
+ displayName: string;
17
+ displayNameLabel: string;
18
+ }
19
+ export interface Text {
20
+ type: string;
21
+ text: string;
22
+ }
23
+ export interface OwnPosition {
24
+ current: PositionData;
25
+ removed: unknown | null;
26
+ }
27
+ export interface OwnGridEntry {
22
28
  ids: number[];
23
29
  duration: Duration;
24
30
  type: string;
@@ -31,13 +37,13 @@ export interface GridEntry {
31
37
  color: string;
32
38
  notesAll: string;
33
39
  icons: string[];
34
- position1: Position[];
35
- position2: Position[];
36
- position3: Position[];
37
- position4: Position[] | null;
38
- position5: Position[] | null;
39
- position6: Position[];
40
- position7: Position[];
40
+ position1: OwnPosition[];
41
+ position2: OwnPosition[];
42
+ position3: OwnPosition[];
43
+ position4: OwnPosition[] | null;
44
+ position5: OwnPosition[] | null;
45
+ position6: OwnPosition[];
46
+ position7: OwnPosition[];
41
47
  texts: Text[];
42
48
  lessonText: string;
43
49
  lessonInfo: string | null;
@@ -47,7 +53,7 @@ export interface GridEntry {
47
53
  durationTotal: unknown | null;
48
54
  link: unknown | null;
49
55
  }
50
- export interface BackEntry {
56
+ export interface OwnBackEntry {
51
57
  id: number;
52
58
  type: string;
53
59
  status: string;
@@ -63,24 +69,81 @@ export interface BackEntry {
63
69
  longName: string;
64
70
  notesAll: unknown | null;
65
71
  }
66
- export interface Duration {
67
- start: string;
68
- end: string;
72
+ export interface OwnDay {
73
+ date: string;
74
+ resourceType: string;
75
+ resource: Resource;
76
+ status: string;
77
+ dayEntries: unknown[];
78
+ gridEntries: OwnGridEntry[];
79
+ backEntries: OwnBackEntry[];
69
80
  }
70
- export interface Position {
81
+ export interface OwnTimetableResponse {
82
+ format: number;
83
+ days: OwnDay[];
84
+ errors: unknown[];
85
+ }
86
+ export interface ClassPosition {
71
87
  current: PositionData;
72
- removed: unknown | null;
88
+ removed: null;
73
89
  }
74
- export interface PositionData {
90
+ export interface ClassGridEntry {
91
+ ids: number[];
92
+ duration: Duration;
93
+ type: string;
94
+ status: string;
95
+ statusDetail: string | null;
96
+ name: string | null;
97
+ layoutStartPosition: number;
98
+ layoutWidth: number;
99
+ layoutGroup: number;
100
+ color: string;
101
+ notesAll: string;
102
+ icons: string[];
103
+ position1: ClassPosition[];
104
+ position2: ClassPosition[];
105
+ position3: ClassPosition[];
106
+ position4: ClassPosition[] | null;
107
+ position5: ClassPosition[] | null;
108
+ position6: ClassPosition[];
109
+ position7: ClassPosition[];
110
+ texts: Text[];
111
+ lessonText: string;
112
+ lessonInfo: string | null;
113
+ substitutionText: string;
114
+ userName: string | null;
115
+ moved: null;
116
+ durationTotal: null;
117
+ link: null;
118
+ }
119
+ export interface ClassBackEntry {
120
+ id: number;
75
121
  type: string;
76
122
  status: string;
123
+ statusDetail: string;
124
+ duration: Duration;
125
+ isFullDay: boolean;
126
+ durationTotal: Duration;
127
+ layoutStartPosition: number;
128
+ layoutWidth: number;
129
+ color: string;
130
+ resource: null;
77
131
  shortName: string;
78
132
  longName: string;
79
- displayName: string;
80
- displayNameLabel: string;
133
+ notesAll: null;
81
134
  }
82
- export interface Text {
83
- type: string;
84
- text: string;
135
+ export interface ClassDay {
136
+ date: string;
137
+ resourceType: string;
138
+ resource: Resource;
139
+ status: string;
140
+ dayEntries: unknown[];
141
+ gridEntries: ClassGridEntry[];
142
+ backEntries: ClassBackEntry[];
143
+ }
144
+ export interface ClassTimetableResponse {
145
+ format: number;
146
+ days: ClassDay[];
147
+ errors: unknown[];
85
148
  }
86
149
  //# sourceMappingURL=timetable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"timetable.d.ts","sourceRoot":"","sources":["../../src/types/timetable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"timetable.d.ts","sourceRoot":"","sources":["../../src/types/timetable.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,IAAI;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IACxB,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,YAAY;IACzB,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAChC,SAAS,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAChC,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,SAAS,EAAE,WAAW,EAAE,CAAC;IACzB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,QAAQ,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,MAAM;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,EAAE,CAAC;IACtB,WAAW,EAAE,YAAY,EAAE,CAAC;IAC5B,WAAW,EAAE,YAAY,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,oBAAoB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,MAAM,EAAE,OAAO,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC1B,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC3B,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,SAAS,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IAClC,SAAS,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IAClC,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,IAAI,CAAC;IACZ,aAAa,EAAE,IAAI,CAAC;IACpB,IAAI,EAAE,IAAI,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,QAAQ,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,IAAI,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,EAAE,CAAC;IACtB,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,WAAW,EAAE,cAAc,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,sBAAsB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,MAAM,EAAE,OAAO,EAAE,CAAC;CACrB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "webuntis-client",
3
- "version": "1.0.4",
3
+ "version": "1.0.5",
4
4
  "description": "A Web Untis API Client",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",