@robertying/thu-learn-lib 5.0.0 → 5.1.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 (68) hide show
  1. package/README.md +41 -7
  2. package/lib/auth.d.ts +1 -1
  3. package/lib/auth.d.ts.map +1 -1
  4. package/lib/auth.js +17 -5
  5. package/lib/auth.js.map +1 -1
  6. package/lib/calendar.d.ts +6 -4
  7. package/lib/calendar.d.ts.map +1 -1
  8. package/lib/calendar.js +21 -8
  9. package/lib/calendar.js.map +1 -1
  10. package/lib/contents.d.ts.map +1 -1
  11. package/lib/contents.js +10 -1
  12. package/lib/contents.js.map +1 -1
  13. package/lib/courses.d.ts.map +1 -1
  14. package/lib/courses.js +6 -6
  15. package/lib/courses.js.map +1 -1
  16. package/lib/discussions.js +2 -2
  17. package/lib/discussions.js.map +1 -1
  18. package/lib/favorites.d.ts.map +1 -1
  19. package/lib/favorites.js +12 -12
  20. package/lib/favorites.js.map +1 -1
  21. package/lib/files.d.ts +1 -1
  22. package/lib/files.d.ts.map +1 -1
  23. package/lib/files.js +10 -8
  24. package/lib/files.js.map +1 -1
  25. package/lib/homework.d.ts +1 -2
  26. package/lib/homework.d.ts.map +1 -1
  27. package/lib/homework.js +19 -17
  28. package/lib/homework.js.map +1 -1
  29. package/lib/index.d.ts +11 -6
  30. package/lib/index.d.ts.map +1 -1
  31. package/lib/index.js +13 -5
  32. package/lib/index.js.map +1 -1
  33. package/lib/notices.d.ts +1 -1
  34. package/lib/notices.d.ts.map +1 -1
  35. package/lib/notices.js +11 -15
  36. package/lib/notices.js.map +1 -1
  37. package/lib/questionnaires.d.ts +6 -3
  38. package/lib/questionnaires.d.ts.map +1 -1
  39. package/lib/questionnaires.js +20 -12
  40. package/lib/questionnaires.js.map +1 -1
  41. package/lib/request.d.ts +44 -14
  42. package/lib/request.d.ts.map +1 -1
  43. package/lib/request.js +120 -43
  44. package/lib/request.js.map +1 -1
  45. package/lib/types.d.ts +11 -3
  46. package/lib/types.d.ts.map +1 -1
  47. package/lib/types.js.map +1 -1
  48. package/lib/user.js +1 -1
  49. package/lib/user.js.map +1 -1
  50. package/lib/utils.d.ts.map +1 -1
  51. package/lib/utils.js +9 -3
  52. package/lib/utils.js.map +1 -1
  53. package/package.json +2 -2
  54. package/src/auth.ts +18 -5
  55. package/src/calendar.ts +28 -10
  56. package/src/contents.ts +10 -1
  57. package/src/courses.ts +11 -13
  58. package/src/discussions.ts +2 -2
  59. package/src/favorites.ts +22 -32
  60. package/src/files.ts +12 -12
  61. package/src/homework.ts +30 -40
  62. package/src/index.ts +19 -7
  63. package/src/notices.ts +12 -18
  64. package/src/questionnaires.ts +51 -37
  65. package/src/request.ts +141 -42
  66. package/src/types.ts +14 -3
  67. package/src/user.ts +1 -1
  68. package/src/utils.ts +10 -4
package/lib/request.d.ts CHANGED
@@ -16,41 +16,71 @@ export declare const addCSRFTokenToUrl: (url: string, token: string) => string;
16
16
  * Let at most `max` calls of `inner` run at once; the rest wait in FIFO order. A slot is freed when the response
17
17
  * headers arrive (or the call fails), so reading a body does not hold one.
18
18
  */
19
- export declare function limitConcurrency(inner: Fetch, max: number): Fetch;
19
+ export declare function limitConcurrency<F extends (...args: any[]) => Promise<Response>>(inner: F, max: number): F;
20
+ /** `RequestInit` plus a per-request `timeout` (milliseconds; 0 or `Infinity` for none) */
21
+ export type RequestOptions = RequestInit & {
22
+ timeout?: number;
23
+ };
24
+ /** a `Fetch` whose `init` can also carry a per-request `timeout` */
25
+ export type TimedFetch = (input: Parameters<Fetch>[0], init?: RequestOptions) => Promise<Response>;
20
26
  /**
21
- * Abort a call of `inner` that has no response headers after `ms` milliseconds and reject it with
22
- * `FailReason.REQUEST_TIMEOUT`. A caller's own `signal` still works. Uses only `AbortController` and `setTimeout`,
23
- * which React Native has (unlike `AbortSignal.timeout` / `AbortSignal.any`).
27
+ * Abort a call of `inner` that has no response headers after `ms` milliseconds (or `init.timeout`, which overrides it
28
+ * for one request) and reject it with `FailReason.REQUEST_TIMEOUT`. A caller's own `signal` still works, also while
29
+ * the body is read. Uses only `AbortController` and `setTimeout`, which React Native has (unlike
30
+ * `AbortSignal.timeout` / `AbortSignal.any`). Note that React Native's fetch resolves only after the whole body has
31
+ * arrived, so there the timeout covers the download too.
24
32
  */
25
- export declare function withTimeout(inner: Fetch, ms: number): Fetch;
33
+ export declare function withTimeout(inner: Fetch, ms: number): TimedFetch;
34
+ /**
35
+ * Whether a 200 page is the short login or redirect page of an expired session rather than the page asked for. A
36
+ * heuristic (not verified against the real server): short, and pointing at the login timeout page or the SSO login.
37
+ */
38
+ export declare const looksLikeLoginPage: (text: string) => boolean;
26
39
  /**
27
40
  * State shared by every request a `Learn2018Helper` makes: cookies, CSRF token, language and the fetch wrappers.
28
41
  * Internal; the helper keeps it in a private field.
29
42
  */
30
43
  export declare class Session {
31
44
  #private;
32
- readonly login: () => Promise<void>;
45
+ readonly loginWithProvider: () => Promise<void>;
33
46
  readonly provider?: CredentialProvider;
34
47
  readonly cookieJar: CookieJar;
35
48
  /** fetch with cookies, the concurrency cap and the timeout, but no login check */
36
- readonly rawFetch: Fetch;
49
+ readonly rawFetch: TimedFetch;
37
50
  lang: Language;
38
51
  previewFirstPage: boolean;
39
- /** `login` signs in through SSO with the `CredentialProvider`; the session calls it at most once at a time */
40
- constructor(config: HelperConfig | undefined, login: () => Promise<void>);
52
+ /** `loginWithProvider` signs in through SSO with the `CredentialProvider` */
53
+ constructor(config: HelperConfig | undefined, loginWithProvider: () => Promise<void>);
41
54
  get csrfToken(): string;
42
55
  set csrfToken(token: string);
43
56
  /**
44
- * Log in with the `CredentialProvider`. Concurrent callers share one SSO login instead of starting one each.
57
+ * Run one login (`login`) at a time. It starts after a login already in progress has settled, and requests that
58
+ * find the session expired meanwhile wait for it instead of starting their own (two SSO logins at once reset each
59
+ * other's id.tsinghua.edu.cn cookie).
60
+ */
61
+ runLogin(login: () => Promise<void>): Promise<void>;
62
+ /**
63
+ * Log in with the `CredentialProvider`, or wait for the login already in progress (also one with explicit
64
+ * credentials) instead of starting another.
45
65
  */
46
66
  relogin(): Promise<void>;
47
67
  /** fetch with a login check (see `#send`) */
48
- readonly fetch: Fetch;
68
+ readonly fetch: TimedFetch;
49
69
  /** like `fetch`, but logs in first if there is no CSRF token yet and adds the current token to the URL */
50
- readonly fetchWithToken: Fetch;
70
+ readonly fetchWithToken: TimedFetch;
71
+ /**
72
+ * Like `fetchWithToken`, but returns the parsed JSON body. A 200 HTML page instead of JSON counts as an expired
73
+ * session (log in again and retry once, as for a 403).
74
+ */
75
+ readonly fetchJsonWithToken: (input: Parameters<Fetch>[0], init?: RequestOptions) => Promise<any>;
76
+ /**
77
+ * Like `fetchWithToken`, but returns the text body (an HTML page). A short login or redirect page with status 200
78
+ * counts as an expired session (log in again and retry once, as for a 403).
79
+ */
80
+ readonly fetchTextWithToken: (input: Parameters<Fetch>[0], init?: RequestOptions) => Promise<string>;
51
81
  /**
52
- * Make sure the session works: if there is a CSRF token, make one cheap authenticated request (`probeUrl`) and log
53
- * in only if it fails; otherwise log in.
82
+ * Make sure the session works: if there is a CSRF token, fetch the current semester (`probeUrl`) and log in only if
83
+ * the session has expired; otherwise log in.
54
84
  */
55
85
  ensureSession(probeUrl: string): Promise<void>;
56
86
  }
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGvC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,KAAK,EAAY,kBAAkB,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACpF,OAAO,EAAc,QAAQ,EAAE,MAAM,YAAY,CAAC;AAIlD,eAAO,MAAM,CAAC,SAAU,MAAM,GAAG,OAAO,GAAG,OAAO,EAAE,KAAG,OAAO,CAAC,UAE9D,CAAC;AAEF,eAAO,MAAM,OAAO,QAAS,QAAQ,YAA4D,CAAC;AAElG,eAAO,MAAM,GAAG,WAAM,CAAC;AAEvB,uDAAuD;AACvD,eAAO,MAAM,+BAA+B,IAAI,CAAC;AACjD,iEAAiE;AACjE,eAAO,MAAM,uBAAuB,QAAS,CAAC;AAE9C,sDAAsD;AACtD,eAAO,MAAM,iBAAiB,QAAS,MAAM,SAAS,MAAM,KAAG,MAI9D,CAAC;AASF;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,KAAK,CAyBjE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,GAAG,KAAK,CA4B3D;AAOD;;;GAGG;AACH,qBAAa,OAAO;;IAehB,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;IAdrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,kFAAkF;IAClF,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;IAKzB,IAAI,WAAe;IACnB,gBAAgB,EAAE,OAAO,CAAC;IAE1B,8GAA8G;IAC9G,YACE,MAAM,EAAE,YAAY,GAAG,SAAS,EACvB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EASpC;IAED,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,MAAM,EAG1B;IAED;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAKvB;IAkCD,6CAA6C;IAC7C,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAyD;IAE9E,0GAA0G;IAC1G,QAAQ,CAAC,cAAc,EAAE,KAAK,CAM5B;IAEF;;;OAGG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMnD;CACF"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"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"}
package/lib/request.js CHANGED
@@ -47,7 +47,7 @@ export function limitConcurrency(inner, max) {
47
47
  else
48
48
  active -= 1;
49
49
  };
50
- return async (...args) => {
50
+ return (async (...args) => {
51
51
  await acquire();
52
52
  try {
53
53
  return await inner(...args);
@@ -55,44 +55,48 @@ export function limitConcurrency(inner, max) {
55
55
  finally {
56
56
  release();
57
57
  }
58
- };
58
+ });
59
59
  }
60
60
  /**
61
- * Abort a call of `inner` that has no response headers after `ms` milliseconds and reject it with
62
- * `FailReason.REQUEST_TIMEOUT`. A caller's own `signal` still works. Uses only `AbortController` and `setTimeout`,
63
- * which React Native has (unlike `AbortSignal.timeout` / `AbortSignal.any`).
61
+ * Abort a call of `inner` that has no response headers after `ms` milliseconds (or `init.timeout`, which overrides it
62
+ * for one request) and reject it with `FailReason.REQUEST_TIMEOUT`. A caller's own `signal` still works, also while
63
+ * the body is read. Uses only `AbortController` and `setTimeout`, which React Native has (unlike
64
+ * `AbortSignal.timeout` / `AbortSignal.any`). Note that React Native's fetch resolves only after the whole body has
65
+ * arrived, so there the timeout covers the download too.
64
66
  */
65
67
  export function withTimeout(inner, ms) {
66
- if (!(ms > 0) || ms === Infinity)
67
- return inner;
68
- return async (input, init) => {
68
+ return async (input, options) => {
69
+ const { timeout = ms, ...init } = options ?? {};
70
+ if (!(timeout > 0) || timeout === Infinity)
71
+ return inner(input, init);
69
72
  const controller = new AbortController();
70
- const outer = init?.signal ?? undefined;
73
+ const outer = init.signal ?? undefined;
71
74
  const forward = () => controller.abort(outer?.reason);
72
75
  if (outer?.aborted)
73
76
  forward();
77
+ // kept after the headers arrive, so the caller can still cancel reading the body
74
78
  else
75
79
  outer?.addEventListener('abort', forward, { once: true });
76
80
  let timedOut = false;
77
81
  const timer = setTimeout(() => {
78
82
  timedOut = true;
79
83
  controller.abort();
80
- }, ms);
84
+ }, timeout);
81
85
  try {
82
86
  return await inner(input, { ...init, signal: controller.signal });
83
87
  }
84
88
  catch (err) {
89
+ outer?.removeEventListener('abort', forward);
85
90
  if (timedOut) {
86
91
  throw {
87
92
  reason: FailReason.REQUEST_TIMEOUT,
88
- extra: { url: urlOf(input), timeout: ms },
93
+ extra: { url: urlOf(input), timeout },
89
94
  };
90
95
  }
91
96
  throw err;
92
97
  }
93
98
  finally {
94
99
  clearTimeout(timer);
95
- outer?.removeEventListener('abort', forward);
96
100
  }
97
101
  };
98
102
  }
@@ -100,12 +104,27 @@ export function withTimeout(inner, ms) {
100
104
  const discard = (res) => {
101
105
  res.body?.cancel().catch(() => { });
102
106
  };
107
+ /** returned by a read step when the response turned out to be from an expired session */
108
+ const EXPIRED = Symbol('expired');
109
+ /**
110
+ * Whether a 200 body that should have been JSON is an HTML page instead. Web Learning answers some requests of an
111
+ * expired session with a login or redirect page and status 200, not with a 403 or a `login_timeout` redirect.
112
+ */
113
+ const looksLikeHtml = (text) => text.trimStart().startsWith('<');
114
+ /** pages longer than this are taken as real pages, never as the short login / redirect page of an expired session */
115
+ const MAX_LOGIN_PAGE_LENGTH = 4096;
116
+ /**
117
+ * Whether a 200 page is the short login or redirect page of an expired session rather than the page asked for. A
118
+ * heuristic (not verified against the real server): short, and pointing at the login timeout page or the SSO login.
119
+ */
120
+ export const looksLikeLoginPage = (text) => text.length < MAX_LOGIN_PAGE_LENGTH &&
121
+ /login_timeout|id\.tsinghua\.edu\.cn\/do\/off\/ui\/auth\/login|j_spring_security_thauth_roaming_entry/.test(text);
103
122
  /**
104
123
  * State shared by every request a `Learn2018Helper` makes: cookies, CSRF token, language and the fetch wrappers.
105
124
  * Internal; the helper keeps it in a private field.
106
125
  */
107
126
  export class Session {
108
- login;
127
+ loginWithProvider;
109
128
  provider;
110
129
  cookieJar;
111
130
  /** fetch with cookies, the concurrency cap and the timeout, but no login check */
@@ -116,9 +135,9 @@ export class Session {
116
135
  #pendingLogin;
117
136
  lang = Language.ZH;
118
137
  previewFirstPage;
119
- /** `login` signs in through SSO with the `CredentialProvider`; the session calls it at most once at a time */
120
- constructor(config, login) {
121
- this.login = login;
138
+ /** `loginWithProvider` signs in through SSO with the `CredentialProvider` */
139
+ constructor(config, loginWithProvider) {
140
+ this.loginWithProvider = loginWithProvider;
122
141
  this.previewFirstPage = config?.generatePreviewUrlForFirstPage ?? true;
123
142
  this.provider = config?.provider;
124
143
  this.cookieJar = config?.cookieJar ?? new CookieJar();
@@ -132,66 +151,124 @@ export class Session {
132
151
  this.#generation += 1;
133
152
  }
134
153
  /**
135
- * Log in with the `CredentialProvider`. Concurrent callers share one SSO login instead of starting one each.
154
+ * Run one login (`login`) at a time. It starts after a login already in progress has settled, and requests that
155
+ * find the session expired meanwhile wait for it instead of starting their own (two SSO logins at once reset each
156
+ * other's id.tsinghua.edu.cn cookie).
136
157
  */
137
- relogin() {
138
- this.#pendingLogin ??= this.login().finally(() => {
139
- this.#pendingLogin = undefined;
158
+ runLogin(login) {
159
+ const previous = this.#pendingLogin?.catch(() => { }) ?? Promise.resolve();
160
+ const current = previous.then(login).finally(() => {
161
+ if (this.#pendingLogin === current)
162
+ this.#pendingLogin = undefined;
140
163
  });
141
- return this.#pendingLogin;
164
+ this.#pendingLogin = current;
165
+ return current;
142
166
  }
143
167
  /**
144
- * Send a request built by `makeUrl` (called again for the retry, so it can pick up a new CSRF token).
168
+ * Log in with the `CredentialProvider`, or wait for the login already in progress (also one with explicit
169
+ * credentials) instead of starting another.
170
+ */
171
+ relogin() {
172
+ return this.#pendingLogin ?? this.runLogin(this.loginWithProvider);
173
+ }
174
+ /**
175
+ * Send a request built by `makeUrl` (called again for the retry, so it can pick up a new CSRF token) and read it
176
+ * with `read`, which returns `EXPIRED` for a body that shows the session has expired.
145
177
  * When the session has expired, it rejects with `NOT_LOGGED_IN` if there is no `CredentialProvider`; otherwise it
146
178
  * logs in again (sharing a login already in progress, or skipping it if another request already renewed the
147
179
  * session) and retries once.
148
180
  */
149
- async #send(makeUrl, init) {
181
+ async #send(makeUrl, init, read) {
182
+ const attempt = async (retry) => {
183
+ const res = await this.rawFetch(makeUrl(), init);
184
+ if (noLogin(res)) {
185
+ discard(res);
186
+ return EXPIRED;
187
+ }
188
+ return read(res, retry);
189
+ };
150
190
  const generation = this.#generation;
151
- const res = await this.rawFetch(makeUrl(), init);
152
- if (!noLogin(res))
153
- return res;
154
- discard(res);
191
+ const first = await attempt(false);
192
+ if (first !== EXPIRED)
193
+ return first;
155
194
  if (!this.provider) {
156
195
  throw { reason: FailReason.NOT_LOGGED_IN };
157
196
  }
158
197
  if (this.#generation === generation) {
159
198
  await this.relogin();
160
199
  }
161
- const retry = await this.rawFetch(makeUrl(), init);
162
- if (noLogin(retry)) {
163
- discard(retry);
200
+ const second = await attempt(true);
201
+ if (second === EXPIRED) {
164
202
  throw { reason: FailReason.NOT_LOGGED_IN };
165
203
  }
166
- if (retry.status !== 200) {
167
- discard(retry);
204
+ return second;
205
+ }
206
+ /** the response, but after a re-login only one with status 200 */
207
+ static #response = async (res, retry) => {
208
+ if (retry && res.status !== 200) {
209
+ discard(res);
168
210
  throw {
169
211
  reason: FailReason.UNEXPECTED_STATUS,
170
- extra: { code: retry.status, text: retry.statusText },
212
+ extra: { code: res.status, text: res.statusText },
171
213
  };
172
214
  }
173
- return retry;
174
- }
175
- /** fetch with a login check (see `#send`) */
176
- fetch = (input, init) => this.#send(() => urlOf(input), init);
177
- /** like `fetch`, but logs in first if there is no CSRF token yet and adds the current token to the URL */
178
- fetchWithToken = async (input, init) => {
215
+ return res;
216
+ };
217
+ /** the parsed JSON body; an HTML page with status 200 means the session has expired */
218
+ static #json = async (res) => {
219
+ const text = await res.text();
220
+ try {
221
+ return JSON.parse(text);
222
+ }
223
+ catch {
224
+ if (res.status === 200 && looksLikeHtml(text))
225
+ return EXPIRED;
226
+ throw {
227
+ reason: res.status === 200 ? FailReason.INVALID_RESPONSE : FailReason.UNEXPECTED_STATUS,
228
+ extra: { code: res.status, text: text.slice(0, 200) },
229
+ };
230
+ }
231
+ };
232
+ /** the text body; a short login / redirect page with status 200 means the session has expired */
233
+ static #text = async (res, retry) => {
234
+ await Session.#response(res, retry);
235
+ const text = await res.text();
236
+ return res.status === 200 && looksLikeLoginPage(text) ? EXPIRED : text;
237
+ };
238
+ #withToken = async (input) => {
179
239
  if (this.#csrfToken === '') {
180
240
  await this.relogin();
181
241
  }
182
242
  const url = urlOf(input);
183
- return this.#send(() => addCSRFTokenToUrl(url, this.#csrfToken), init);
243
+ return () => addCSRFTokenToUrl(url, this.#csrfToken);
184
244
  };
245
+ /** fetch with a login check (see `#send`) */
246
+ fetch = (input, init) => this.#send(() => urlOf(input), init, Session.#response);
247
+ /** like `fetch`, but logs in first if there is no CSRF token yet and adds the current token to the URL */
248
+ fetchWithToken = async (input, init) => this.#send(await this.#withToken(input), init, Session.#response);
249
+ /**
250
+ * Like `fetchWithToken`, but returns the parsed JSON body. A 200 HTML page instead of JSON counts as an expired
251
+ * session (log in again and retry once, as for a 403).
252
+ */
253
+ fetchJsonWithToken = async (input, init) => this.#send(await this.#withToken(input), init, Session.#json);
254
+ /**
255
+ * Like `fetchWithToken`, but returns the text body (an HTML page). A short login or redirect page with status 200
256
+ * counts as an expired session (log in again and retry once, as for a 403).
257
+ */
258
+ fetchTextWithToken = async (input, init) => this.#send(await this.#withToken(input), init, Session.#text);
185
259
  /**
186
- * Make sure the session works: if there is a CSRF token, make one cheap authenticated request (`probeUrl`) and log
187
- * in only if it fails; otherwise log in.
260
+ * Make sure the session works: if there is a CSRF token, fetch the current semester (`probeUrl`) and log in only if
261
+ * the session has expired; otherwise log in.
188
262
  */
189
263
  async ensureSession(probeUrl) {
190
264
  if (this.#csrfToken === '') {
191
265
  await this.relogin();
192
266
  return;
193
267
  }
194
- discard(await this.fetchWithToken(probeUrl));
268
+ const json = await this.fetchJsonWithToken(probeUrl);
269
+ if (json?.message !== 'success') {
270
+ throw { reason: FailReason.INVALID_RESPONSE, extra: json };
271
+ }
195
272
  }
196
273
  }
197
274
  //# sourceMappingURL=request.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,OAAO,WAAW,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAGzC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAElD,MAAM,cAAc,GAA2B,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;AAE7D,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,IAAkC,EAAsB,EAAE;IAC1E,OAAO,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,GAAa,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC;AAElG,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,CAAC;AAEvB,uDAAuD;AACvD,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC,CAAC;AACjD,iEAAiE;AACjE,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAE9C,sDAAsD;AACtD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAE,KAAa,EAAU,EAAE;IACtE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACxC,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC3B,CAAC,CAAC;AAEF,SAAS,SAAS,CAAC,GAAe;IAChC,OAAO,WAAW,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,KAAK,GAAG,CAAC,KAA2B,EAAU,EAAE,CACpD,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,YAAY,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC;AAEpF;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAY,EAAE,GAAW;IACxD,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,GAAG,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAClD,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,OAAO,GAAmB,EAAE,CAAC;IACnC,MAAM,OAAO,GAAG,GAAkB,EAAE;QAClC,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,CAAC;YACZ,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC;IACF,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAC7B,wEAAwE;QACxE,IAAI,IAAI;YAAE,IAAI,EAAE,CAAC;;YACZ,MAAM,IAAI,CAAC,CAAC;IACnB,CAAC,CAAC;IACF,OAAO,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE;QACvB,MAAM,OAAO,EAAE,CAAC;QAChB,IAAI,CAAC;YACH,OAAO,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QAC9B,CAAC;gBAAS,CAAC;YACT,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,KAAY,EAAE,EAAU;IAClD,IAAI,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC3B,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,EAAE,MAAM,IAAI,SAAS,CAAC;QACxC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACtD,IAAI,KAAK,EAAE,OAAO;YAAE,OAAO,EAAE,CAAC;;YACzB,KAAK,EAAE,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,QAAQ,GAAG,IAAI,CAAC;YAChB,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC,EAAE,EAAE,CAAC,CAAC;QACP,IAAI,CAAC;YACH,OAAO,MAAM,KAAK,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM;oBACJ,MAAM,EAAE,UAAU,CAAC,eAAe;oBAClC,KAAK,EAAE,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE;iBAC9B,CAAC;YAChB,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,KAAK,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,sDAAsD;AACtD,MAAM,OAAO,GAAG,CAAC,GAAa,EAAE,EAAE;IAChC,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,OAAO,OAAO;IAeP,KAAK;IAdP,QAAQ,CAAsB;IAC9B,SAAS,CAAY;IAC9B,kFAAkF;IACzE,QAAQ,CAAQ;IACzB,UAAU,GAAG,EAAE,CAAC;IAChB,4HAA4H;IAC5H,WAAW,GAAG,CAAC,CAAC;IAChB,aAAa,CAAiB;IAC9B,IAAI,GAAG,QAAQ,CAAC,EAAE,CAAC;IACnB,gBAAgB,CAAU;IAE1B,8GAA8G;IAC9G,YACE,MAAgC,EACvB,KAA0B;qBAA1B,KAAK;QAEd,IAAI,CAAC,gBAAgB,GAAG,MAAM,EAAE,8BAA8B,IAAI,IAAI,CAAC;QACvE,IAAI,CAAC,QAAQ,GAAG,MAAM,EAAE,QAAQ,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,MAAM,EAAE,SAAS,IAAI,IAAI,SAAS,EAAE,CAAC;QACtD,IAAI,CAAC,QAAQ,GAAG,gBAAgB,CAC9B,WAAW,CAAC,MAAM,EAAE,KAAK,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,cAAc,IAAI,uBAAuB,CAAC,EAC1G,MAAM,EAAE,qBAAqB,IAAI,+BAA+B,CACjE,CAAC;IACJ,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,SAAS,CAAC,KAAa;QACzB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE;YAC/C,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QACjC,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,KAAK,CAAC,OAAqB,EAAE,IAAkB;QACnD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;QACpC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;YAAE,OAAO,GAAG,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,CAAC;QACb,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,aAAa,EAAc,CAAC;QACzD,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;YACpC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;QACnD,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,CAAC,CAAC;YACf,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,aAAa,EAAc,CAAC;QACzD,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CAAC,CAAC;YACf,MAAM;gBACJ,MAAM,EAAE,UAAU,CAAC,iBAAiB;gBACpC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,UAAU,EAAE;aAC1C,CAAC;QAChB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,6CAA6C;IACpC,KAAK,GAAU,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;IAE9E,0GAA0G;IACjG,cAAc,GAAU,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACrD,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;IACzE,CAAC,CAAC;IAEF;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,QAAgB;QAClC,IAAI,IAAI,CAAC,UAAU,KAAK,EAAE,EAAE,CAAC;YAC3B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QACD,OAAO,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/C,CAAC;CACF"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"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"}
package/lib/types.d.ts CHANGED
@@ -323,7 +323,8 @@ export interface IQuestionnaire {
323
323
  isFavorite: boolean;
324
324
  comment?: string;
325
325
  url: string;
326
- detail: QuestionnaireDetail[];
326
+ /** the questions; only for the questionnaires `getQuestionnaireList`'s `details` selects (by default all) */
327
+ detail?: QuestionnaireDetail[];
327
328
  }
328
329
  export type Questionnaire = IQuestionnaire;
329
330
  /** which items get their extra per-item requests: none (default), all, or those the predicate accepts */
@@ -346,10 +347,17 @@ export interface NotificationListOptions {
346
347
  */
347
348
  attachments?: DetailSelector<INotification>;
348
349
  }
350
+ export interface QuestionnaireListOptions {
351
+ /**
352
+ * Which questionnaires get their questions (`detail`, 1 request each); default `'all'` (unlike the other lists, for
353
+ * compatibility). The same as calling `getQuestionnaireDetail` for those items.
354
+ */
355
+ details?: DetailSelector<IQuestionnaire>;
356
+ }
349
357
  export interface AllContentsOptions<T extends ContentType> {
350
358
  courseType?: CourseType;
351
- /** homework `details` or notification `attachments`, passed to each course's list */
352
- details?: T extends ContentType.HOMEWORK ? DetailSelector<IHomework> : T extends ContentType.NOTIFICATION ? DetailSelector<INotification> : never;
359
+ /** homework or questionnaire `details`, or notification `attachments`, passed to each course's list */
360
+ details?: T extends ContentType.HOMEWORK ? DetailSelector<IHomework> : T extends ContentType.NOTIFICATION ? DetailSelector<INotification> : T extends ContentType.QUESTIONNAIRE ? DetailSelector<IQuestionnaire> : never;
353
361
  }
354
362
  export interface AllContentsResult<T extends ContentType> {
355
363
  /** content of each course that succeeded */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,MAAM,KAAK,GAAG,OAAO,UAAU,CAAC,KAAK,CAAC;AAC5C,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,CAAC;AACF,MAAM,MAAM,kBAAkB,GAAG,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACxE,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,8BAA8B,CAAC,EAAE,OAAO,CAAC;IACzC,yGAAyG;IACzG,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,yHAAyH;IACzH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,oBAAY,UAAU;IACpB,aAAa,2BAA2B;IACxC,mBAAmB,mDAAmD;IACtE,cAAc,mBAAmB;IACjC,aAAa,4CAA4C;IACzD,aAAa,mCAAmC;IAChD,eAAe,oBAAoB;IACnC,gBAAgB,qBAAqB;IACrC,iBAAiB,sBAAsB;IACvC,gBAAgB,qBAAqB;IACrC,qBAAqB,0BAA0B;IAC/C,eAAe,sBAAsB;CACtC;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,oBAAY,YAAY;IACtB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,OAAO,KAAK;CACb;AAED,oBAAY,WAAW;IACrB,YAAY,iBAAiB;IAC7B,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,UAAU,eAAe;IACzB,QAAQ,aAAa;IACrB,aAAa,kBAAkB;CAChC;AAED,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,QAAQ,GAAG,SAAS,CAAC;AAEjC,UAAU,aAAa;IACrB,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,IAAI,EAAE,YAAY,CAAC;CACpB;AAED,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC;AAEzC,oBAAY,UAAU;IACpB,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,gGAAgG;IAChG,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,UAAU,CAAC;CACxB;AAED,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC;AAErC,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC;AAErC,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+FAA+F;IAC/F,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,mBAAmB,CAAC;AAE/D,UAAU,aAAa;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,IAAI,CAAC;CACpB;AAED,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC;AAEzC,UAAU,KAAK;IACb,uBAAuB;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,sBAAsB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;IACf,eAAe,EAAE,OAAO,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,wBAAwB;IACxB,UAAU,EAAE,UAAU,CAAC;IACvB,oFAAoF;IACpF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,IAAI,GAAG,KAAK,CAAC;AAEzB,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,oBAAY,kBAAkB;IAC5B,SAAS;IACT,OAAO,YAAY;IACnB,MAAM,OAAO;IACb,CAAC,MAAM;IACP,OAAO,OAAO;IACd,MAAM,OAAO;IACb,SAAS;IACT,WAAW,gBAAgB;IAC3B,CAAC,MAAM;IACP,OAAO,OAAO;IACd,MAAM,OAAO;IACb,CAAC,MAAM;IACP,OAAO,OAAO;IACd,CAAC,MAAM;IACP,MAAM,OAAO;IACb,CAAC,MAAM;IACP,SAAS;IACT,eAAe,oBAAoB;IACnC,CAAC,MAAM;IACP,EAAE,OAAO;IACT,SAAS;IACT,SAAS,cAAc;IACvB,SAAS;IACT,IAAI,SAAS;IACb,UAAU;IACV,OAAO,YAAY;IACnB,CAAC,MAAM;IACP,CAAC,MAAM;IACP,SAAS;IACT,UAAU,eAAe;IACzB,EAAE,OAAO;IACT,CAAC,MAAM;CACR;AAED,MAAM,WAAW,SAAU,SAAQ,eAAe;IAChD,EAAE,EAAE,MAAM,CAAC;IACX,2BAA2B;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,sBAAsB,CAAC;IACvC,cAAc,EAAE,sBAAsB,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qBAAqB,CAAC,EAAE,iBAAiB,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8BAA8B;IAC9B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,0BAA0B;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,UAAU,CAAC;IAC9B,qCAAqC;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,UAAU,CAAC;IACjC,yBAAyB;IACzB,eAAe,CAAC,EAAE,UAAU,CAAC;CAC9B;AAED,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,eAAe,CAAC;AAEnD,oBAAY,sBAAsB;IAChC,UAAU,IAAI;IACd,KAAK,IAAI;CACV;AAED,oBAAY,sBAAsB;IAChC,YAAY,IAAI;IAChB,OAAO,IAAI;CACZ;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,sBAAsB,CAAC;IACvC,MAAM,EAAE;QACN,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;CACH;AAED,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,GAAG,eAAe,CAAC;AAErE,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,sBAAsB,CAAC;IACvC,cAAc,EAAE,sBAAsB,CAAC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC;AAErC,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,IAAI,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,WAAY,SAAQ,eAAe;IAC3C,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,UAAU,GAAG,WAAW,CAAC;AAErC,UAAU,SAAU,SAAQ,eAAe;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,QAAQ,GAAG,SAAS,CAAC;AAEjC,oBAAY,uBAAuB;IACjC,MAAM,QAAQ;IACd,KAAK,QAAQ;IACb,IAAI,OAAO;CACZ;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,uBAAuB,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE;QACR,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;CACL;AAED,oBAAY,iBAAiB;IAC3B,IAAI,OAAO;IACX,IAAI,OAAO;IACX,MAAM,OAAO;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,iBAAiB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,6GAA6G;IAC7G,MAAM,CAAC,EAAE,mBAAmB,EAAE,CAAC;CAChC;AAED,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC;AAE3C,yGAAyG;AACzG,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,MAAM,GAAG,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC;AAExE,MAAM,WAAW,iBAAiB;IAChC,oFAAoF;IACpF,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,WAAW,CAAC,EAAE,cAAc,CAAC,aAAa,CAAC,CAAC;CAC7C;AAED,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,WAAW;IACvD,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,uGAAuG;IACvG,OAAO,CAAC,EAAE,CAAC,SAAS,WAAW,CAAC,QAAQ,GACpC,cAAc,CAAC,SAAS,CAAC,GACzB,CAAC,SAAS,WAAW,CAAC,YAAY,GAChC,cAAc,CAAC,aAAa,CAAC,GAC7B,CAAC,SAAS,WAAW,CAAC,aAAa,GACjC,cAAc,CAAC,cAAc,CAAC,GAC9B,KAAK,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,WAAW;IACtD,4CAA4C;IAC5C,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAC3B,2CAA2C;IAC3C,MAAM,EAAE;QAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;CACzC;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,WAAW,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC;IACzC,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;IACzB,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACjC,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACrC,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACjC,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;CAC5C,CAAC;AAEF,UAAU,cAAc,CAAC,CAAC,SAAS,WAAW;IAC5C,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;CACnC;AAED,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC;AAEnF,UAAU,aAAa;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,2IAA2I;IAC3I,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,oBAAoB;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC;AAEzC,UAAU,YAAY;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,WAAW,GAAG,YAAY,CAAC;AAEvC,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,iEAAiE;IACjE,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,kDAAkD;AAClD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B,2DAA2D;IAC3D,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,qFAAqF;IACrF,YAAY,EAAE,aAAa,EAAE,CAAC;CAC/B;AAED,oBAAY,QAAQ;IAClB,EAAE,OAAO;IACT,EAAE,OAAO;CACV"}
package/lib/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAsBA,MAAM,CAAN,IAAY,UAYX;AAZD,WAAY,UAAU;IACpB,sDAAwC,CAAA;IACxC,oFAAsE,CAAA;IACtE,+CAAiC,CAAA;IACjC,uEAAyD,CAAA;IACzD,8DAAgD,CAAA;IAChD,iDAAmC,CAAA;IACnC,mDAAqC,CAAA;IACrC,qDAAuC,CAAA;IACvC,mDAAqC,CAAA;IACrC,6DAA+C,CAAA;IAC/C,mDAAqC,CAAA;AACvC,CAAC,EAZW,UAAU,KAAV,UAAU,QAYrB;AAOD,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;IACjB,4BAAY,CAAA;AACd,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AAED,MAAM,CAAN,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,4CAA6B,CAAA;IAC7B,4BAAa,CAAA;IACb,oCAAqB,CAAA;IACrB,wCAAyB,CAAA;IACzB,oCAAqB,CAAA;IACrB,8CAA+B,CAAA;AACjC,CAAC,EAPW,WAAW,KAAX,WAAW,QAOtB;AAoBD,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,iCAAmB,CAAA;AACrB,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB;AAgGD,MAAM,CAAN,IAAY,kBAiCX;AAjCD,WAAY,kBAAkB;IAC5B,SAAS;IACT,yCAAmB,CAAA;IACnB,mCAAa,CAAA;IACb,6BAAO,CAAA;IACP,oCAAc,CAAA;IACd,mCAAa,CAAA;IACb,SAAS;IACT,iDAA2B,CAAA;IAC3B,6BAAO,CAAA;IACP,oCAAc,CAAA;IACd,mCAAa,CAAA;IACb,6BAAO,CAAA;IACP,oCAAc,CAAA;IACd,6BAAO,CAAA;IACP,mCAAa,CAAA;IACb,6BAAO,CAAA;IACP,SAAS;IACT,yDAAmC,CAAA;IACnC,6BAAO,CAAA;IACP,+BAAS,CAAA;IACT,SAAS;IACT,6CAAuB,CAAA;IACvB,SAAS;IACT,mCAAa,CAAA;IACb,UAAU;IACV,yCAAmB,CAAA;IACnB,6BAAO,CAAA;IACP,6BAAO,CAAA;IACP,SAAS;IACT,+CAAyB,CAAA;IACzB,+BAAS,CAAA;IACT,6BAAO,CAAA;AACT,CAAC,EAjCW,kBAAkB,KAAlB,kBAAkB,QAiC7B;AA4CD,MAAM,CAAN,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,+EAAc,CAAA;IACd,qEAAS,CAAA;AACX,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,QAGjC;AAED,MAAM,CAAN,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,mFAAgB,CAAA;IAChB,yEAAW,CAAA;AACb,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,QAGjC;AAqED,MAAM,CAAN,IAAY,uBAIX;AAJD,WAAY,uBAAuB;IACjC,yCAAc,CAAA;IACd,wCAAa,CAAA;IACb,sCAAW,CAAA;AACb,CAAC,EAJW,uBAAuB,KAAvB,uBAAuB,QAIlC;AAgBD,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,gCAAW,CAAA;IACX,gCAAW,CAAA;IACX,kCAAa,CAAA;AACf,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;AA0ID,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,qBAAS,CAAA;IACT,qBAAS,CAAA;AACX,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAsBA,MAAM,CAAN,IAAY,UAYX;AAZD,WAAY,UAAU;IACpB,sDAAwC,CAAA;IACxC,oFAAsE,CAAA;IACtE,+CAAiC,CAAA;IACjC,uEAAyD,CAAA;IACzD,8DAAgD,CAAA;IAChD,iDAAmC,CAAA;IACnC,mDAAqC,CAAA;IACrC,qDAAuC,CAAA;IACvC,mDAAqC,CAAA;IACrC,6DAA+C,CAAA;IAC/C,mDAAqC,CAAA;AACvC,CAAC,EAZW,UAAU,KAAV,UAAU,QAYrB;AAOD,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;IACjB,4BAAY,CAAA;AACd,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AAED,MAAM,CAAN,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,4CAA6B,CAAA;IAC7B,4BAAa,CAAA;IACb,oCAAqB,CAAA;IACrB,wCAAyB,CAAA;IACzB,oCAAqB,CAAA;IACrB,8CAA+B,CAAA;AACjC,CAAC,EAPW,WAAW,KAAX,WAAW,QAOtB;AAoBD,MAAM,CAAN,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,iCAAmB,CAAA;IACnB,iCAAmB,CAAA;AACrB,CAAC,EAHW,UAAU,KAAV,UAAU,QAGrB;AAgGD,MAAM,CAAN,IAAY,kBAiCX;AAjCD,WAAY,kBAAkB;IAC5B,SAAS;IACT,yCAAmB,CAAA;IACnB,mCAAa,CAAA;IACb,6BAAO,CAAA;IACP,oCAAc,CAAA;IACd,mCAAa,CAAA;IACb,SAAS;IACT,iDAA2B,CAAA;IAC3B,6BAAO,CAAA;IACP,oCAAc,CAAA;IACd,mCAAa,CAAA;IACb,6BAAO,CAAA;IACP,oCAAc,CAAA;IACd,6BAAO,CAAA;IACP,mCAAa,CAAA;IACb,6BAAO,CAAA;IACP,SAAS;IACT,yDAAmC,CAAA;IACnC,6BAAO,CAAA;IACP,+BAAS,CAAA;IACT,SAAS;IACT,6CAAuB,CAAA;IACvB,SAAS;IACT,mCAAa,CAAA;IACb,UAAU;IACV,yCAAmB,CAAA;IACnB,6BAAO,CAAA;IACP,6BAAO,CAAA;IACP,SAAS;IACT,+CAAyB,CAAA;IACzB,+BAAS,CAAA;IACT,6BAAO,CAAA;AACT,CAAC,EAjCW,kBAAkB,KAAlB,kBAAkB,QAiC7B;AA4CD,MAAM,CAAN,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,+EAAc,CAAA;IACd,qEAAS,CAAA;AACX,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,QAGjC;AAED,MAAM,CAAN,IAAY,sBAGX;AAHD,WAAY,sBAAsB;IAChC,mFAAgB,CAAA;IAChB,yEAAW,CAAA;AACb,CAAC,EAHW,sBAAsB,KAAtB,sBAAsB,QAGjC;AAqED,MAAM,CAAN,IAAY,uBAIX;AAJD,WAAY,uBAAuB;IACjC,yCAAc,CAAA;IACd,wCAAa,CAAA;IACb,sCAAW,CAAA;AACb,CAAC,EAJW,uBAAuB,KAAvB,uBAAuB,QAIlC;AAgBD,MAAM,CAAN,IAAY,iBAIX;AAJD,WAAY,iBAAiB;IAC3B,gCAAW,CAAA;IACX,gCAAW,CAAA;IACX,kCAAa,CAAA;AACf,CAAC,EAJW,iBAAiB,KAAjB,iBAAiB,QAI5B;AAqJD,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,qBAAS,CAAA;IACT,qBAAS,CAAA;AACX,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB"}
package/lib/user.js CHANGED
@@ -4,7 +4,7 @@ import { CourseType } from './types.js';
4
4
  import * as URLS from './urls.js';
5
5
  /** get user's name and department */
6
6
  export async function getUserInfo(s, courseType = CourseType.STUDENT) {
7
- const content = await (await s.fetchWithToken(URLS.LEARN_HOMEPAGE(courseType))).text();
7
+ const content = await s.fetchTextWithToken(URLS.LEARN_HOMEPAGE(courseType));
8
8
  const dom = $(content);
9
9
  const name = dom('a.user-log').text().trim();
10
10
  const department = dom('.fl.up-img-info p:nth-child(2) label').text().trim();
package/lib/user.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../src/user.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAGlC,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,qCAAqC;AACrC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,CAAU,EAAE,UAAU,GAAG,UAAU,CAAC,OAAO;IAC3E,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAEvF,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IACvB,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;IAC7C,MAAM,UAAU,GAAG,GAAG,CAAC,sCAAsC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;IAE7E,OAAO;QACL,IAAI;QACJ,UAAU;KACX,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,CAAU,EAAE,IAAc;IAC1D,MAAM,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE;QACxD,MAAM,EAAE,MAAM;KACf,CAAC,CAAC;IACH,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"user.js","sourceRoot":"","sources":["../src/user.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAGlC,OAAO,EAAE,CAAC,EAAE,MAAM,cAAc,CAAC;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,qCAAqC;AACrC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,CAAU,EAAE,UAAU,GAAG,UAAU,CAAC,OAAO;IAC3E,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;IAE5E,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IACvB,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;IAC7C,MAAM,UAAU,GAAG,GAAG,CAAC,sCAAsC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;IAE7E,OAAO;QACL,IAAI;QACJ,UAAU;KACX,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,CAAU,EAAE,IAAc;IAC1D,MAAM,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE;QACxD,MAAM,EAAE,MAAM;KACf,CAAC,CAAC;IACH,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC;AAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,WAAW,EAAc,kBAAkB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1G,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,YAAY,CAUzD;AAWD,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAEvD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAU/C;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAMjF;AAED,eAAO,MAAM,eAAe,iCA0B1B,CAAC;AAEH,eAAO,MAAM,oBAAoB,kCAAkC,CAAC;AAEpE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAQrD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMnD;AAED,eAAO,MAAM,gBAAgB,0BAQ3B,CAAC;AACH,eAAO,MAAM,wBAAwB,0BAOnC,CAAC;AAEH,eAAO,MAAM,YAAY,gCAIvB,CAAC;AAEH,oFAAoF;AACpF,eAAO,MAAM,UAAU,GAAI,CAAC,YAAY,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,QAAQ,CAAC,KAAG,OACP,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAY,cAAc,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAc,kBAAkB,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1G,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,MAAM,GAAG,YAAY,CAUzD;AAWD,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAEvD;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAU/C;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CAMjF;AAED,eAAO,MAAM,eAAe,iCA0B1B,CAAC;AAEH,eAAO,MAAM,oBAAoB,kCAAkC,CAAC;AAIpE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAYrD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMnD;AAED,eAAO,MAAM,gBAAgB,0BAQ3B,CAAC;AACH,eAAO,MAAM,wBAAwB,0BAOnC,CAAC;AAEH,eAAO,MAAM,YAAY,gCAIvB,CAAC;AAEH,oFAAoF;AACpF,eAAO,MAAM,UAAU,GAAI,CAAC,YAAY,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,QAAQ,CAAC,KAAG,OACP,CAAC"}
package/lib/utils.js CHANGED
@@ -71,14 +71,20 @@ export const GRADE_LEVEL_MAP = new Map([
71
71
  [-30, HomeworkGradeLevel.F],
72
72
  ]);
73
73
  export const JSONP_EXTRACTOR_NAME = 'thu_learn_lib_jsonp_extractor';
74
+ const invalidJSONP = (extra) => ({ reason: FailReason.INVALID_RESPONSE, extra });
74
75
  export function extractJSONPResult(jsonp) {
75
76
  // check jsonp format
76
77
  if (!jsonp.startsWith(JSONP_EXTRACTOR_NAME)) {
77
- throw FailReason.INVALID_RESPONSE;
78
+ throw invalidJSONP(jsonp.slice(0, 200));
78
79
  }
79
80
  // evaluate the result
80
- // oxlint-disable-next-line typescript/no-implied-eval -- JSONP from the registrar is a JS expression, not JSON
81
- return Function(`"use strict";const ${JSONP_EXTRACTOR_NAME}=(s)=>s;return ${jsonp};`)();
81
+ try {
82
+ // oxlint-disable-next-line typescript/no-implied-eval -- JSONP from the registrar is a JS expression, not JSON
83
+ return Function(`"use strict";const ${JSONP_EXTRACTOR_NAME}=(s)=>s;return ${jsonp};`)();
84
+ }
85
+ catch (err) {
86
+ throw invalidJSONP(err);
87
+ }
82
88
  }
83
89
  export function formatFileSize(size) {
84
90
  // this logic is extracted from `judgeSize` function from Web Learning
package/lib/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@robertying/thu-learn-lib",
3
- "version": "5.0.0",
3
+ "version": "5.1.0",
4
4
  "description": "a JavaScript library to provide a program-friendly interface to Web Learning (2018) of Tsinghua University",
5
5
  "keywords": [
6
6
  "learn2018",
@@ -63,7 +63,7 @@
63
63
  "vitest": "5.1.0"
64
64
  },
65
65
  "engines": {
66
- "node": ">=26"
66
+ "node": ">=22"
67
67
  },
68
68
  "packageManager": "pnpm@12.18.0"
69
69
  }