@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/files.js CHANGED
@@ -2,9 +2,9 @@
2
2
  import { ContentType, CourseType, FailReason } from './types.js';
3
3
  import * as URLS from './urls.js';
4
4
  import { decodeHTML, formatFileSize } from './utils.js';
5
- /** Get all files (课程文件) of the specified course. */
5
+ /** Get all files (课程文件) of the specified course; `category` is left out if the categories can't be fetched. */
6
6
  export async function getFileList(s, courseID, courseType = CourseType.STUDENT) {
7
- const json = await (await s.fetchWithToken(URLS.LEARN_FILE_LIST(courseID, courseType))).json();
7
+ const json = await s.fetchJsonWithToken(URLS.LEARN_FILE_LIST(courseID, courseType));
8
8
  if (json.result !== 'success') {
9
9
  return Promise.reject({
10
10
  reason: FailReason.INVALID_RESPONSE,
@@ -20,7 +20,9 @@ export async function getFileList(s, courseID, courseType = CourseType.STUDENT)
20
20
  // student
21
21
  result = json.object;
22
22
  }
23
- const categories = new Map((await getFileCategoryList(s, courseID, courseType)).map((c) => [c.id, c]));
23
+ // categories only fill `category`; don't fail the whole list when they can't be fetched
24
+ const categoryList = await getFileCategoryList(s, courseID, courseType).catch(() => []);
25
+ const categories = new Map(categoryList.map((c) => [c.id, c]));
24
26
  return result.map((f) => {
25
27
  const title = decodeHTML(f.bt);
26
28
  const fileId = f.wjid;
@@ -56,7 +58,7 @@ export async function getFileList(s, courseID, courseType = CourseType.STUDENT)
56
58
  }
57
59
  /** Get file categories of the specified course. */
58
60
  export async function getFileCategoryList(s, courseID, courseType = CourseType.STUDENT) {
59
- const json = await (await s.fetchWithToken(URLS.LEARN_FILE_CATEGORY_LIST(courseID, courseType))).json();
61
+ const json = await s.fetchJsonWithToken(URLS.LEARN_FILE_CATEGORY_LIST(courseID, courseType));
60
62
  if (json.result !== 'success') {
61
63
  return Promise.reject({
62
64
  reason: FailReason.INVALID_RESPONSE,
@@ -76,7 +78,7 @@ export async function getFileCategoryList(s, courseID, courseType = CourseType.S
76
78
  */
77
79
  export async function getFileListByCategory(s, courseID, categoryId, courseType = CourseType.STUDENT) {
78
80
  if (courseType === CourseType.STUDENT) {
79
- const json = await (await s.fetchWithToken(URLS.LEARN_FILE_LIST_BY_CATEGORY_STUDENT(courseID, categoryId))).json();
81
+ const json = await s.fetchJsonWithToken(URLS.LEARN_FILE_LIST_BY_CATEGORY_STUDENT(courseID, categoryId));
80
82
  if (json.result !== 'success') {
81
83
  return Promise.reject({
82
84
  reason: FailReason.INVALID_RESPONSE,
@@ -120,17 +122,17 @@ export async function getFileListByCategory(s, courseID, categoryId, courseType
120
122
  });
121
123
  }
122
124
  else {
123
- const json = await (await s.fetchWithToken(URLS.LEARN_FILE_LIST_BY_CATEGORY_TEACHER, {
125
+ const json = await s.fetchJsonWithToken(URLS.LEARN_FILE_LIST_BY_CATEGORY_TEACHER, {
124
126
  method: 'POST',
125
127
  body: URLS.LEARN_FILE_LIST_BY_CATEGORY_TEACHER_FORM_DATA(courseID, categoryId),
126
- })).json();
128
+ });
127
129
  if (json.result !== 'success') {
128
130
  return Promise.reject({
129
131
  reason: FailReason.INVALID_RESPONSE,
130
132
  extra: json,
131
133
  });
132
134
  }
133
- const result = (json.object.aaData ?? []);
135
+ const result = (json.object?.aaData ?? []);
134
136
  return result.map((f) => {
135
137
  const title = decodeHTML(f.bt);
136
138
  const fileId = f.wjid;
package/lib/files.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAI3C,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAExD,oDAAoD;AACpD,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,CAAU,EACV,QAAgB,EAChB,UAAU,GAAe,UAAU,CAAC,OAAO;IAE3C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/F,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,UAAU,CAAC,gBAAgB;YACnC,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;IACL,CAAC;IAED,IAAI,MAAM,GAAU,EAAE,CAAC;IACvB,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC;QAC5C,UAAU;QACV,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;IACnC,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,UAAU;QACV,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,mBAAmB,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvG,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACtB,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC;QACtB,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC;QAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC;QACrG,OAAO;YACL,EAAE,EAAE,CAAC,CAAC,MAAM;YACZ,MAAM;YACN,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YAClC,KAAK;YACL,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAC,CAAC,IAAI;YACf,IAAI,EAAE,CAAC,CAAC,QAAQ;YAChB,UAAU;YACV,WAAW,EAAE,UAAU;YACvB,WAAW;YACX,UAAU;YACV,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,KAAK;YACvB,eAAe,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC;YAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC;YACnC,aAAa,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;YAC1B,QAAQ,EAAE,CAAC,CAAC,IAAI;YAChB,UAAU,EAAE;gBACV,EAAE,EAAE,MAAM;gBACV,IAAI,EAAE,KAAK;gBACX,WAAW;gBACX,UAAU;gBACV,IAAI,EAAE,CAAC,CAAC,QAAQ;aACjB;SACa,CAAC;IACnB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,mDAAmD;AACnD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,CAAU,EACV,QAAgB,EAChB,UAAU,GAAe,UAAU,CAAC,OAAO;IAE3C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACxG,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,UAAU,CAAC,gBAAgB;YACnC,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,EAAE,CAAU,CAAC;IAElD,OAAO,MAAM,CAAC,GAAG,CACf,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC;QACC,EAAE,EAAE,CAAC,CAAC,MAAM;QACZ,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACvB,YAAY,EAAE,CAAC,CAAC,IAAI;KACrB,CAAwB,CAC5B,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,CAAU,EACV,QAAgB,EAChB,UAAkB,EAClB,UAAU,GAAe,UAAU,CAAC,OAAO;IAE3C,IAAI,UAAU,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,mCAAmC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QACnH,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,OAAO,CAAC,MAAM,CAAC;gBACpB,MAAM,EAAE,UAAU,CAAC,gBAAgB;gBACnC,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAU,CAAC;QAE5C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACtB,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACpB,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;YACrC,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACjE,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC;YACrG,OAAO;gBACL,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;gBACR,MAAM;gBACN,KAAK;gBACL,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7B,OAAO;gBACP,IAAI;gBACJ,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;gBAChB,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;gBAClB,WAAW;gBACX,UAAU;gBACV,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBACjB,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBAC3B,UAAU,EAAE,CAAC;gBACb,aAAa,EAAE,CAAC;gBAChB,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC;gBACf,UAAU,EAAE;oBACV,EAAE,EAAE,MAAM;oBACV,IAAI,EAAE,KAAK;oBACX,WAAW;oBACX,UAAU;oBACV,IAAI;iBACL;gBACD,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC;gBACjB,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,SAAS;aACb,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,GAAG,MAAM,CACjB,MAAM,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,mCAAmC,EAAE;YAC/D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,6CAA6C,CAAC,QAAQ,EAAE,UAAU,CAAC;SAC/E,CAAC,CACH,CAAC,IAAI,EAAE,CAAC;QACT,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,OAAO,CAAC,MAAM,CAAC;gBACpB,MAAM,EAAE,UAAU,CAAC,gBAAgB;gBACnC,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAU,CAAC;QAEnD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACtB,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC;YACtB,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,CAAC;YAC1B,MAAM,WAAW,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACjE,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC;YACrG,OAAO;gBACL,EAAE,EAAE,CAAC,CAAC,MAAM;gBACZ,MAAM;gBACN,KAAK;gBACL,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC7B,OAAO,EAAE,CAAC,CAAC,IAAI;gBACf,IAAI,EAAE,CAAC,CAAC,QAAQ;gBAChB,UAAU;gBACV,WAAW,EAAE,UAAU;gBACvB,WAAW;gBACX,UAAU;gBACV,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,KAAK;gBACvB,eAAe,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC;gBAC7B,UAAU,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC;gBACnC,aAAa,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;gBAC1B,QAAQ,EAAE,CAAC,CAAC,IAAI;gBAChB,UAAU,EAAE;oBACV,EAAE,EAAE,MAAM;oBACV,IAAI,EAAE,KAAK;oBACX,WAAW;oBACX,UAAU;oBACV,IAAI,EAAE,CAAC,CAAC,QAAQ;iBACjB;aACa,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"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"}
package/lib/homework.d.ts CHANGED
@@ -5,8 +5,7 @@ import { CourseType } from './types.ts';
5
5
  * Get all homeworks (课程作业) of the specified course: 3 status lists and the excellent homework list.
6
6
  * Details (page + description) only for the homework `options.details` selects.
7
7
  */
8
- export declare function getHomeworkList(s: Session, courseID: string): Promise<Homework[]>;
9
- export declare function getHomeworkList(s: Session, courseID: string, courseType: CourseType.STUDENT, options?: HomeworkListOptions): Promise<Homework[]>;
8
+ export declare function getHomeworkList(s: Session, courseID: string, courseType?: CourseType.STUDENT, options?: HomeworkListOptions): Promise<Homework[]>;
10
9
  export declare function getHomeworkList(s: Session, courseID: string, courseType: CourseType.TEACHER): Promise<HomeworkTA[]>;
11
10
  /**
12
11
  * Get the detail of one homework or excellent homework: its page (answer, submitted content, attachments) and the
@@ -1 +1 @@
1
- {"version":3,"file":"homework.d.ts","sourceRoot":"","sources":["../src/homework.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAGV,QAAQ,EACR,mBAAmB,EACnB,UAAU,EACV,kBAAkB,EAClB,SAAS,EACT,eAAe,EAEf,yBAAyB,EAE1B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAe,UAAU,EAAc,MAAM,YAAY,CAAC;AAIjE;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AAEnF,wBAAgB,eAAe,CAC7B,CAAC,EAAE,OAAO,EACV,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,UAAU,CAAC,OAAO,EAC9B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AAEvB,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;AA2KrH;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,CAAC,EAAE,OAAO,EACV,QAAQ,EAAE,IAAI,CAAC,SAAS,GAAG,kBAAkB,EAAE,KAAK,GAAG,QAAQ,CAAC,GAC/D,OAAO,CAAC,eAAe,CAAC,CAM1B;AA2CD,wBAAsB,cAAc,CAClC,CAAC,EAAE,OAAO,EACV,EAAE,EAAE,MAAM,EACV,OAAO,SAAK,EACZ,UAAU,CAAC,EAAE,yBAAyB,EACtC,gBAAgB,UAAQ,GACvB,OAAO,CAAC,IAAI,CAAC,CAaf"}
1
+ {"version":3,"file":"homework.d.ts","sourceRoot":"","sources":["../src/homework.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAGV,QAAQ,EACR,mBAAmB,EACnB,UAAU,EACV,kBAAkB,EAClB,SAAS,EACT,eAAe,EAEf,yBAAyB,EAE1B,MAAM,YAAY,CAAC;AACpB,OAAO,EAAe,UAAU,EAAc,MAAM,YAAY,CAAC;AAIjE;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,CAAC,EAAE,OAAO,EACV,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,UAAU,CAAC,OAAO,EAC/B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AAEvB,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;AAoKrH;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,CAAC,EAAE,OAAO,EACV,QAAQ,EAAE,IAAI,CAAC,SAAS,GAAG,kBAAkB,EAAE,KAAK,GAAG,QAAQ,CAAC,GAC/D,OAAO,CAAC,eAAe,CAAC,CAM1B;AA0CD,wBAAsB,cAAc,CAClC,CAAC,EAAE,OAAO,EACV,EAAE,EAAE,MAAM,EACV,OAAO,SAAK,EACZ,UAAU,CAAC,EAAE,yBAAyB,EACtC,gBAAgB,UAAQ,GACvB,OAAO,CAAC,IAAI,CAAC,CAaf"}
package/lib/homework.js CHANGED
@@ -6,10 +6,10 @@ import * as URLS from './urls.js';
6
6
  import { GRADE_LEVEL_MAP, decodeHTML, isSelected, trimAndDefine } from './utils.js';
7
7
  export async function getHomeworkList(s, courseID, courseType = CourseType.STUDENT, options = {}) {
8
8
  if (courseType === CourseType.TEACHER) {
9
- const json = await (await s.fetchWithToken(URLS.LEARN_HOMEWORK_LIST_TEACHER, {
9
+ const json = await s.fetchJsonWithToken(URLS.LEARN_HOMEWORK_LIST_TEACHER, {
10
10
  method: 'POST',
11
11
  body: URLS.LEARN_PAGE_LIST_FORM_DATA(courseID),
12
- })).json();
12
+ });
13
13
  if (json.result !== 'success') {
14
14
  return Promise.reject({
15
15
  reason: FailReason.INVALID_RESPONSE,
@@ -48,10 +48,10 @@ export async function getHomeworkList(s, courseID, courseType = CourseType.STUDE
48
48
  }
49
49
  }
50
50
  async function getHomeworkListAtUrl(s, courseID, url, status) {
51
- const json = await (await s.fetchWithToken(url, {
51
+ const json = await s.fetchJsonWithToken(url, {
52
52
  method: 'POST',
53
53
  body: URLS.LEARN_PAGE_LIST_FORM_DATA(courseID),
54
- })).json();
54
+ });
55
55
  if (json.result !== 'success') {
56
56
  return Promise.reject({
57
57
  reason: FailReason.INVALID_RESPONSE,
@@ -84,10 +84,10 @@ async function getHomeworkListAtUrl(s, courseID, url, status) {
84
84
  }));
85
85
  }
86
86
  async function getExcellentHomeworkListByHomework(s, courseID) {
87
- const json = await (await s.fetchWithToken(URLS.LEARN_HOMEWORK_LIST_EXCELLENT, {
87
+ const json = await s.fetchJsonWithToken(URLS.LEARN_HOMEWORK_LIST_EXCELLENT, {
88
88
  method: 'POST',
89
89
  body: URLS.LEARN_PAGE_LIST_FORM_DATA(courseID),
90
- })).json();
90
+ });
91
91
  if (json.result !== 'success') {
92
92
  return Promise.reject({
93
93
  reason: FailReason.INVALID_RESPONSE,
@@ -117,8 +117,7 @@ async function getExcellentHomeworkListByHomework(s, courseID) {
117
117
  }, {});
118
118
  }
119
119
  async function parseHomeworkAtUrl(s, url) {
120
- const response = await s.fetchWithToken(url);
121
- const result = $(await response.text());
120
+ const result = $(await s.fetchTextWithToken(url));
122
121
  const fileDivs = result('div.list.fujian.clearfix');
123
122
  return {
124
123
  description: trimAndDefine(result('div.list.calendar.clearfix > div.fl.right > div.c55').slice(0, 1).html()),
@@ -142,10 +141,10 @@ export async function getHomeworkDetail(s, homework) {
142
141
  return { ...page, ...description };
143
142
  }
144
143
  async function getHomeworkDescription(s, baseId) {
145
- const json = await (await s.fetchWithToken(URLS.LEARN_HOMEWORK_DETAIL, {
144
+ const json = await s.fetchJsonWithToken(URLS.LEARN_HOMEWORK_DETAIL, {
146
145
  method: 'POST',
147
146
  body: URLS.LEARN_HOMEWORK_DETAIL_FORM_DATA(baseId),
148
- })).json();
147
+ });
149
148
  if (json.result !== 'success') {
150
149
  throw {
151
150
  reason: FailReason.INVALID_RESPONSE,
@@ -158,18 +157,19 @@ async function getHomeworkDescription(s, baseId) {
158
157
  }
159
158
  function parseHomeworkFile(s, fileDiv) {
160
159
  const fileNode = $(fileDiv)('.ftitle').children('a')[0] ?? $(fileDiv)('.fl').children('a')[0];
161
- if (fileNode !== undefined) {
162
- const size = trimAndDefine($(fileDiv)('.fl > span[class^="color"]').first().text());
163
- const params = new URLSearchParams(fileNode.attribs.href.split('?').slice(-1)[0]);
160
+ const href = fileNode?.attribs.href;
161
+ if (fileNode !== undefined && href) {
162
+ const size = trimAndDefine($(fileDiv)('.fl > span[class^="color"]').first().text()) ?? '';
163
+ const params = new URLSearchParams(href.split('?').slice(-1)[0]);
164
164
  const attachmentId = params.get('fileId');
165
165
  // so dirty here...
166
- let downloadUrl = URLS.LEARN_PREFIX + fileNode.attribs.href;
166
+ let downloadUrl = URLS.LEARN_PREFIX + href;
167
167
  if (params.has('downloadUrl')) {
168
168
  downloadUrl = URLS.LEARN_PREFIX + params.get('downloadUrl');
169
169
  }
170
170
  return {
171
171
  id: attachmentId,
172
- name: fileNode.children[0].data,
172
+ name: fileNode.children[0]?.data ?? '',
173
173
  downloadUrl,
174
174
  previewUrl: URLS.LEARN_FILE_PREVIEW(ContentType.HOMEWORK, attachmentId, CourseType.STUDENT, s.previewFirstPage),
175
175
  size,
@@ -180,10 +180,12 @@ function parseHomeworkFile(s, fileDiv) {
180
180
  }
181
181
  }
182
182
  export async function submitHomework(s, id, content = '', attachment, removeAttachment = false) {
183
- const json = await (await s.fetchWithToken(URLS.LEARN_HOMEWORK_SUBMIT(), {
183
+ const json = await s.fetchJsonWithToken(URLS.LEARN_HOMEWORK_SUBMIT(), {
184
184
  method: 'POST',
185
185
  body: URLS.LEARN_HOMEWORK_SUBMIT_FORM_DATA(id, content, attachment, removeAttachment),
186
- })).json();
186
+ // the response only starts after the whole upload, which can take longer than `requestTimeout`
187
+ timeout: attachment ? 0 : undefined,
188
+ });
187
189
  if (json.result !== 'success') {
188
190
  return Promise.reject({
189
191
  reason: FailReason.OPERATION_FAILED,
@@ -1 +1 @@
1
- {"version":3,"file":"homework.js","sourceRoot":"","sources":["../src/homework.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"homework.js","sourceRoot":"","sources":["../src/homework.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAG/D,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGnC,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AActC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAepF,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,CAAU,EACV,QAAgB,EAChB,UAAU,GAAe,UAAU,CAAC,OAAO,EAC3C,OAAO,GAAwB,EAAE;IAEjC,IAAI,UAAU,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,2BAA2B,EAAE;YACxE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC;SAC/C,CAAC,CAAC;QACH,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,OAAO,CAAC,MAAM,CAAC;gBACpB,MAAM,EAAE,UAAU,CAAC,gBAAgB;gBACnC,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;QACL,CAAC;QAED,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAU,CAAC;QAEpD,OAAO,MAAM,CAAC,GAAG,CACf,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC;YACC,EAAE,EAAE,CAAC,CAAC,IAAI;YACV,KAAK,EAAE,CAAC,CAAC,EAAE;YACX,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YACvB,WAAW,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC5C,WAAW,EAAE,CAAC,CAAC,GAAG;YAClB,WAAW,EAAE,CAAC,CAAC,IAAI;YACnB,SAAS,EAAE,CAAC,CAAC,IAAI;YACjB,QAAQ,EAAE,CAAC,CAAC,IAAI;YAChB,sBAAsB,EAAE,CAAC,CAAC,MAAM,IAAI,SAAS;YAC7C,GAAG,EAAE,IAAI,CAAC,6BAA6B,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC;YACzD,cAAc,EAAE,CAAC,CAAC,MAAM;YACxB,cAAc,EAAE,CAAC,CAAC,MAAM;YACxB,WAAW,EAAE,CAAC,CAAC,IAAI;YACnB,cAAc,EAAE,CAAC,CAAC,GAAG;YACrB,gBAAgB,EAAE,CAAC,CAAC,GAAG;SACxB,CAAsB,CAC1B,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,KAAK,EAAE,+BAA+B,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACjE,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAC9G;YACD,6EAA6E;YAC7E,kCAAkC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,GAA0C,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;SACzG,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,GAAG,CAChB,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YAC3B,MAAM,QAAQ,GAAa,EAAE,GAAG,CAAC,EAAE,qBAAqB,EAAE,+BAA+B,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACtG,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,EAAE,GAAG,CAAC,MAAM,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;QAChH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,CAAU,EACV,QAAgB,EAChB,GAAW,EACX,MAAuB;IAEvB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE;QAC3C,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC;KAC/C,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,UAAU,CAAC,gBAAgB;YACnC,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAU,CAAC;IAEpD,OAAO,MAAM,CAAC,GAAG,CACf,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC;QACC,EAAE,EAAE,CAAC,CAAC,MAAM;QACZ,iBAAiB,EAAE,CAAC,CAAC,MAAM;QAC3B,MAAM,EAAE,CAAC,CAAC,IAAI;QACd,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACvB,GAAG,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QACjD,QAAQ,EAAE,CAAC,CAAC,IAAI;QAChB,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QACvD,gBAAgB,EAAE,CAAC,CAAC,IAAI,KAAK,GAAG;QAChC,cAAc,EAAE,CAAC,CAAC,MAAM;QACxB,cAAc,EAAE,CAAC,CAAC,MAAM;QACxB,SAAS,EAAE,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QAC9D,UAAU,EAAE,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QAChD,KAAK,EAAE,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;QACvC,UAAU,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACrC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC;QAChC,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;QACnC,SAAS,EAAE,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QAC/C,UAAU,EAAE,CAAC,CAAC,IAAI,KAAK,GAAG;QAC1B,YAAY,EAAE,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;QACpE,OAAO,EAAE,CAAC,CAAC,IAAI,IAAI,SAAS;QAC5B,GAAG,MAAM;KACV,CAAqB,CACzB,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kCAAkC,CAC/C,CAAU,EACV,QAAgB;IAEhB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,6BAA6B,EAAE;QAC1E,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,yBAAyB,CAAC,QAAQ,CAAC;KAC/C,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,UAAU,CAAC,gBAAgB;YACnC,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;IACL,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,EAAE,CAAU,CAAC;IAEpD,OAAO,MAAM;SACV,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC;QACC,EAAE,EAAE,CAAC,CAAC,MAAM;QACZ,MAAM,EAAE,CAAC,CAAC,IAAI;QACd,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QACvB,GAAG,EAAE,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;QAC3D,cAAc,EAAE,CAAC,CAAC,MAAM;QACxB,MAAM,EAAE;YACN,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YACzB,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC3B,SAAS,EAAE,CAAC,CAAC,IAAI,KAAK,GAAG;SAC1B;KACF,CAA8B,CAClC;SACA,MAAM,CAAwC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC1D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YACrB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QACvB,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1B,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,CAAU,EAAE,GAAW;IACvD,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;IAElD,MAAM,QAAQ,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;IAEpD,OAAO;QACL,WAAW,EAAE,aAAa,CAAC,MAAM,CAAC,qDAAqD,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5G,aAAa,EAAE,aAAa,CAAC,MAAM,CAAC,qDAAqD,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9G,gBAAgB,EAAE,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC9G,UAAU,EAAE,iBAAiB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC7C,gBAAgB,EAAE,iBAAiB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QACnD,mBAAmB,EAAE,iBAAiB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QACtD,eAAe,EAAE,iBAAiB,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;KACnD,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,CAAU,EACV,QAAgE;IAEhE,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC5C,kBAAkB,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC;QACnC,sBAAsB,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC;KAC3C,CAAC,CAAC;IACH,OAAO,EAAE,GAAG,IAAI,EAAE,GAAG,WAAW,EAAE,CAAC;AACrC,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,CAAU,EAAE,MAAc;IAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,qBAAqB,EAAE;QAClE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,+BAA+B,CAAC,MAAM,CAAC;KACnD,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,MAAM;YACJ,MAAM,EAAE,UAAU,CAAC,gBAAgB;YACnC,KAAK,EAAE,IAAI;SACA,CAAC;IAChB,CAAC;IACD,OAAO;QACL,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;KACrC,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,CAAU,EAAE,OAAgB;IACrD,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9F,MAAM,IAAI,GAAG,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC;IACpC,IAAI,QAAQ,KAAK,SAAS,IAAI,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,4BAA4B,CAAC,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QAC1F,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;QAC3C,mBAAmB;QACnB,IAAI,WAAW,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;QAC3C,IAAI,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YAC9B,WAAW,GAAG,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAE,CAAC;QAC/D,CAAC;QACD,OAAO;YACL,EAAE,EAAE,YAAY;YAChB,IAAI,EAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAmC,EAAE,IAAI,IAAI,EAAE;YACzE,WAAW;YACX,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,gBAAgB,CAAC;YAC/G,IAAI;SACL,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,CAAU,EACV,EAAU,EACV,OAAO,GAAG,EAAE,EACZ,UAAsC,EACtC,gBAAgB,GAAG,KAAK;IAExB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,kBAAkB,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE;QACpE,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,+BAA+B,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,CAAC;QACrF,+FAA+F;QAC/F,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;KACpC,CAAC,CAAC;IACH,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,OAAO,CAAC,MAAM,CAAC;YACpB,MAAM,EAAE,UAAU,CAAC,gBAAgB;YACnC,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
package/lib/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { AllContentsOptions, AllContentsResult, CalendarOptions, CalendarResult, CourseListOptions, ExcellentHomework, HomeworkListOptions, IHomeworkDetail, NotificationListOptions, RemoteFile, CommentItem, CourseInfo, Discussion, FavoriteItem, File, FileCategory, HelperConfig, Homework, HomeworkTA, IHomeworkSubmitAttachment, Language, Notification, Question, Questionnaire, SemesterInfo, UserInfo, ContentType } from './types.ts';
1
+ import type { AllContentsOptions, AllContentsResult, CalendarOptions, CalendarResult, CourseListOptions, ExcellentHomework, HomeworkListOptions, IHomeworkDetail, NotificationListOptions, RemoteFile, CommentItem, CourseInfo, Discussion, FavoriteItem, File, FileCategory, HelperConfig, Homework, HomeworkTA, IHomeworkSubmitAttachment, Language, Notification, Question, Questionnaire, QuestionnaireDetail, QuestionnaireListOptions, SemesterInfo, UserInfo, ContentType } from './types.ts';
2
2
  import { CourseType } from './types.ts';
3
3
  export { addCSRFTokenToUrl } from './request.ts';
4
4
  export * from './types.ts';
@@ -21,7 +21,8 @@ export declare class Learn2018Helper {
21
21
  getRoamingTicket(username: string, password: string, fingerPrint: string, fingerGenPrint?: string, fingerGenPrint3?: string): Promise<string>;
22
22
  /**
23
23
  * Login is necessary if you do not provide a `CredentialProvider`.
24
- * Without credentials it uses the provider, and concurrent calls share one SSO login.
24
+ * Without credentials it uses the provider, and concurrent calls share one SSO login. Logins never overlap: one with
25
+ * credentials waits for a login in progress, and requests that find the session expired meanwhile wait for it.
25
26
  */
26
27
  login(username?: string, password?: string, fingerPrint?: string, fingerGenPrint?: string, fingerGenPrint3?: string): Promise<void>;
27
28
  /**
@@ -37,7 +38,8 @@ export declare class Learn2018Helper {
37
38
  /**
38
39
  * Get calendar items during the specified period (in yyyymmdd format, both inclusive).
39
40
  * Ranges longer than 28 days are fetched in windows and merged; windows that fail even after a retry are listed in
40
- * `failedRanges`. Rejects only when every window fails (usually with `FailReason.INVALID_RESPONSE`).
41
+ * `failedRanges`. Rejects only when every window fails (usually with `FailReason.INVALID_RESPONSE`), or with a
42
+ * `RangeError` for a date that is not a valid yyyymmdd.
41
43
  */
42
44
  getCalendar(startDate: string, endDate: string, options?: CalendarOptions): Promise<CalendarResult>;
43
45
  getSemesterIdList(): Promise<string[]>;
@@ -77,8 +79,7 @@ export declare class Learn2018Helper {
77
79
  * Details (page + description, two requests per homework) are only fetched for the homework `options.details`
78
80
  * selects; use `getHomeworkDetail` for the others.
79
81
  */
80
- getHomeworkList(courseID: string): Promise<Homework[]>;
81
- getHomeworkList(courseID: string, courseType: CourseType.STUDENT, options?: HomeworkListOptions): Promise<Homework[]>;
82
+ getHomeworkList(courseID: string, courseType?: CourseType.STUDENT, options?: HomeworkListOptions): Promise<Homework[]>;
82
83
  getHomeworkList(courseID: string, courseType: CourseType.TEACHER): Promise<HomeworkTA[]>;
83
84
  /** Get the detail (page content, attachments and description) of one homework. */
84
85
  getHomeworkDetail(item: Pick<Homework, 'url' | 'baseId'>): Promise<IHomeworkDetail>;
@@ -93,8 +94,12 @@ export declare class Learn2018Helper {
93
94
  getAnsweredQuestionList(courseID: string, courseType?: CourseType): Promise<Question[]>;
94
95
  /**
95
96
  * Get all questionnaires (课程问卷/QNR) of the specified course.
97
+ * Questions (`detail`, one request per questionnaire) for the questionnaires `options.details` selects, by default
98
+ * all; use `getQuestionnaireDetail` for the others.
96
99
  */
97
- getQuestionnaireList(courseID: string): Promise<Questionnaire[]>;
100
+ getQuestionnaireList(courseID: string, options?: QuestionnaireListOptions): Promise<Questionnaire[]>;
101
+ /** Get the questions of one questionnaire (one request). */
102
+ getQuestionnaireDetail(courseID: string, questionnaireID: string): Promise<QuestionnaireDetail[]>;
98
103
  /**
99
104
  * Add an item to favorites. (收藏)
100
105
  */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/lib/index.js CHANGED
@@ -45,12 +45,13 @@ export class Learn2018Helper {
45
45
  }
46
46
  /**
47
47
  * Login is necessary if you do not provide a `CredentialProvider`.
48
- * Without credentials it uses the provider, and concurrent calls share one SSO login.
48
+ * Without credentials it uses the provider, and concurrent calls share one SSO login. Logins never overlap: one with
49
+ * credentials waits for a login in progress, and requests that find the session expired meanwhile wait for it.
49
50
  */
50
51
  async login(username, password, fingerPrint, fingerGenPrint, fingerGenPrint3) {
51
52
  if (!username || !password || !fingerPrint)
52
53
  return this.#session.relogin();
53
- return auth.login(this.#session, username, password, fingerPrint, fingerGenPrint, fingerGenPrint3);
54
+ return this.#session.runLogin(() => auth.login(this.#session, username, password, fingerPrint, fingerGenPrint, fingerGenPrint3));
54
55
  }
55
56
  /**
56
57
  * Make sure the session is usable without a full SSO login when possible: with a CSRF token (from an earlier login
@@ -71,7 +72,8 @@ export class Learn2018Helper {
71
72
  /**
72
73
  * Get calendar items during the specified period (in yyyymmdd format, both inclusive).
73
74
  * Ranges longer than 28 days are fetched in windows and merged; windows that fail even after a retry are listed in
74
- * `failedRanges`. Rejects only when every window fails (usually with `FailReason.INVALID_RESPONSE`).
75
+ * `failedRanges`. Rejects only when every window fails (usually with `FailReason.INVALID_RESPONSE`), or with a
76
+ * `RangeError` for a date that is not a valid yyyymmdd.
75
77
  */
76
78
  async getCalendar(startDate, endDate, options) {
77
79
  return calendar.getCalendar(this.#session, startDate, endDate, options);
@@ -154,9 +156,15 @@ export class Learn2018Helper {
154
156
  }
155
157
  /**
156
158
  * Get all questionnaires (课程问卷/QNR) of the specified course.
159
+ * Questions (`detail`, one request per questionnaire) for the questionnaires `options.details` selects, by default
160
+ * all; use `getQuestionnaireDetail` for the others.
157
161
  */
158
- async getQuestionnaireList(courseID) {
159
- return questionnaires.getQuestionnaireList(this.#session, courseID);
162
+ async getQuestionnaireList(courseID, options) {
163
+ return questionnaires.getQuestionnaireList(this.#session, courseID, options);
164
+ }
165
+ /** Get the questions of one questionnaire (one request). */
166
+ async getQuestionnaireDetail(courseID, questionnaireID) {
167
+ return questionnaires.getQuestionnaireDetail(this.#session, courseID, questionnaireID);
160
168
  }
161
169
  /**
162
170
  * Add an item to favorites. (收藏)
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/lib/notices.d.ts CHANGED
@@ -8,7 +8,7 @@ import { CourseType } from './types.ts';
8
8
  export declare function getNotificationList(s: Session, courseID: string, courseType?: CourseType, options?: NotificationListOptions): Promise<Notification[]>;
9
9
  /**
10
10
  * Get the attachment of a notice from its detail page (1 request), or `undefined` without a request if
11
- * `attachmentName` says it has none.
11
+ * `attachmentName` says it has none, or if the page has no attachment link.
12
12
  */
13
13
  export declare function getNotificationAttachment(s: Session, notification: Pick<INotification, 'url' | 'attachmentName'>, courseType?: CourseType): Promise<RemoteFile | undefined>;
14
14
  //# sourceMappingURL=notices.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"notices.d.ts","sourceRoot":"","sources":["../src/notices.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACnG,OAAO,EAAe,UAAU,EAAc,MAAM,YAAY,CAAC;AAIjE;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,CAAC,EAAE,OAAO,EACV,QAAQ,EAAE,MAAM,EAChB,UAAU,GAAE,UAA+B,EAC3C,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,YAAY,EAAE,CAAC,CAWzB;AA0CD;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,CAAC,EAAE,OAAO,EACV,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,gBAAgB,CAAC,EAC3D,UAAU,GAAE,UAA+B,GAC1C,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAiCjC"}
1
+ {"version":3,"file":"notices.d.ts","sourceRoot":"","sources":["../src/notices.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,uBAAuB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACnG,OAAO,EAAe,UAAU,EAAc,MAAM,YAAY,CAAC;AAIjE;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,CAAC,EAAE,OAAO,EACV,QAAQ,EAAE,MAAM,EAChB,UAAU,GAAE,UAA+B,EAC3C,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,YAAY,EAAE,CAAC,CAWzB;AAwCD;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,CAAC,EAAE,OAAO,EACV,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,gBAAgB,CAAC,EAC3D,UAAU,GAAE,UAA+B,GAC1C,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CA6BjC"}
package/lib/notices.js CHANGED
@@ -20,10 +20,10 @@ export async function getNotificationList(s, courseID, courseType = CourseType.S
20
20
  }));
21
21
  }
22
22
  async function getNotificationListKind(s, courseID, courseType, expired) {
23
- const json = await (await s.fetchWithToken(URLS.LEARN_NOTIFICATION_LIST(courseType, expired), {
23
+ const json = await s.fetchJsonWithToken(URLS.LEARN_NOTIFICATION_LIST(courseType, expired), {
24
24
  method: 'POST',
25
25
  body: URLS.LEARN_PAGE_LIST_FORM_DATA(courseID),
26
- })).json();
26
+ });
27
27
  if (json.result !== 'success') {
28
28
  return Promise.reject({
29
29
  reason: FailReason.INVALID_RESPONSE,
@@ -51,7 +51,7 @@ async function getNotificationListKind(s, courseID, courseType, expired) {
51
51
  }
52
52
  /**
53
53
  * Get the attachment of a notice from its detail page (1 request), or `undefined` without a request if
54
- * `attachmentName` says it has none.
54
+ * `attachmentName` says it has none, or if the page has no attachment link.
55
55
  */
56
56
  export async function getNotificationAttachment(s, notification, courseType = CourseType.STUDENT) {
57
57
  if (!notification.attachmentName)
@@ -60,22 +60,18 @@ export async function getNotificationAttachment(s, notification, courseType = Co
60
60
  // const postParams = new FormData();
61
61
  // postParams.append('id', id);
62
62
  // postParams.append('wlkcid', courseID);
63
- // const metadata = await (await s.fetchWithToken(URL.LEARN_NOTIFICATION_EDIT(courseType), {
63
+ // const metadata = await s.fetchJsonWithToken(URL.LEARN_NOTIFICATION_EDIT(courseType), {
64
64
  // 'method': 'POST',
65
65
  // 'body': postParams,
66
- // })).json();
66
+ // });
67
67
  // const attachmentId = metadata.ggfjid as string;
68
68
  /// parsed from HTML
69
- const response = await s.fetchWithToken(notification.url);
70
- const result = $(await response.text());
71
- let path = '';
72
- if (courseType === CourseType.STUDENT) {
73
- path = result('.ml-10').attr('href');
74
- }
75
- else {
76
- path = result('#wjid').attr('href');
77
- }
78
- const size = trimAndDefine(result('div#attachment > div.fl > span[class^="color"]').first().text());
69
+ const result = $(await s.fetchTextWithToken(notification.url));
70
+ let path = (courseType === CourseType.STUDENT ? result('.ml-10') : result('#wjid')).attr('href');
71
+ // the page has no attachment link (removed since the list was fetched, or the page changed)
72
+ if (!path)
73
+ return undefined;
74
+ const size = trimAndDefine(result('div#attachment > div.fl > span[class^="color"]').first().text()) ?? '';
79
75
  const params = new URLSearchParams(path.split('?').slice(-1)[0]);
80
76
  const attachmentId = params.get('wjid');
81
77
  if (!path.startsWith(URLS.LEARN_PREFIX)) {
@@ -1 +1 @@
1
- {"version":3,"file":"notices.js","sourceRoot":"","sources":["../src/notices.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notices.js","sourceRoot":"","sources":["../src/notices.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  import type { Session } from './request.ts';
2
- import type { Questionnaire } from './types.ts';
2
+ import type { Questionnaire, QuestionnaireDetail, QuestionnaireListOptions } from './types.ts';
3
3
  /**
4
- * Get all questionnaires (课程问卷/QNR) of the specified course.
4
+ * Get all questionnaires (课程问卷/QNR) of the specified course: ongoing and ended lists.
5
+ * Questions (`detail`, 1 request each) only for the questionnaires `options.details` selects (default `'all'`).
5
6
  */
6
- export declare function getQuestionnaireList(s: Session, courseID: string): Promise<Questionnaire[]>;
7
+ export declare function getQuestionnaireList(s: Session, courseID: string, options?: QuestionnaireListOptions): Promise<Questionnaire[]>;
8
+ /** Get the questions of one questionnaire (1 request). */
9
+ export declare function getQuestionnaireDetail(s: Session, courseID: string, qnrID: string): Promise<QuestionnaireDetail[]>;
7
10
  //# sourceMappingURL=questionnaires.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"questionnaires.d.ts","sourceRoot":"","sources":["../src/questionnaires.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAE,aAAa,EAAuB,MAAM,YAAY,CAAC;AAKrE;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAKjG"}
1
+ {"version":3,"file":"questionnaires.d.ts","sourceRoot":"","sources":["../src/questionnaires.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAY,aAAa,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAKzG;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,CAAC,EAAE,OAAO,EACV,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,wBAA6B,GACrC,OAAO,CAAC,aAAa,EAAE,CAAC,CAa1B;AA8BD,0DAA0D;AAC1D,wBAAsB,sBAAsB,CAC1C,CAAC,EAAE,OAAO,EACV,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAwBhC"}
@@ -2,18 +2,23 @@
2
2
  import { YES } from './request.js';
3
3
  import { FailReason, QuestionnaireType } from './types.js';
4
4
  import * as URLS from './urls.js';
5
- import { QNR_TYPE_MAP, decodeHTML } from './utils.js';
5
+ import { QNR_TYPE_MAP, decodeHTML, isSelected } from './utils.js';
6
6
  /**
7
- * Get all questionnaires (课程问卷/QNR) of the specified course.
7
+ * Get all questionnaires (课程问卷/QNR) of the specified course: ongoing and ended lists.
8
+ * Questions (`detail`, 1 request each) only for the questionnaires `options.details` selects (default `'all'`).
8
9
  */
9
- export async function getQuestionnaireList(s, courseID) {
10
- return Promise.all([
10
+ export async function getQuestionnaireList(s, courseID, options = {}) {
11
+ const details = options.details ?? 'all';
12
+ const lists = await Promise.all([
11
13
  getQuestionnaireListAtUrl(s, courseID, URLS.LEARN_QNR_LIST_ONGOING),
12
14
  getQuestionnaireListAtUrl(s, courseID, URLS.LEARN_QNR_LIST_ENDED),
13
- ]).then((r) => r.flat());
15
+ ]);
16
+ return Promise.all(lists
17
+ .flat()
18
+ .map(async (q) => isSelected(details, q) ? { ...q, detail: await getQuestionnaireDetail(s, courseID, q.id) } : q));
14
19
  }
15
20
  async function getQuestionnaireListAtUrl(s, courseID, url) {
16
- const json = await (await s.fetchWithToken(url, { method: 'POST', body: URLS.LEARN_PAGE_LIST_FORM_DATA(courseID) })).json();
21
+ const json = await s.fetchJsonWithToken(url, { method: 'POST', body: URLS.LEARN_PAGE_LIST_FORM_DATA(courseID) });
17
22
  if (json.result !== 'success') {
18
23
  return Promise.reject({
19
24
  reason: FailReason.INVALID_RESPONSE,
@@ -21,7 +26,7 @@ async function getQuestionnaireListAtUrl(s, courseID, url) {
21
26
  });
22
27
  }
23
28
  const result = (json.object?.aaData ?? []);
24
- return Promise.all(result.map(async (e) => {
29
+ return result.map((e) => {
25
30
  const type = QNR_TYPE_MAP.get(e.wjlx) ?? QuestionnaireType.SURVEY;
26
31
  return {
27
32
  id: e.wjid,
@@ -36,15 +41,18 @@ async function getQuestionnaireListAtUrl(s, courseID, url) {
36
41
  isFavorite: e.sfsc === YES,
37
42
  comment: e.bznr ?? undefined,
38
43
  url: URLS.LEARN_QNR_SUBMIT_PAGE(e.wlkcid, e.wjid, type),
39
- detail: await getQuestionnaireDetail(s, courseID, e.wjid),
40
44
  };
41
- }));
45
+ });
42
46
  }
43
- async function getQuestionnaireDetail(s, courseID, qnrID) {
44
- const json = await (await s.fetchWithToken(URLS.LEARN_QNR_DETAIL, {
47
+ /** Get the questions of one questionnaire (1 request). */
48
+ export async function getQuestionnaireDetail(s, courseID, qnrID) {
49
+ const json = await s.fetchJsonWithToken(URLS.LEARN_QNR_DETAIL, {
45
50
  method: 'POST',
46
51
  body: URLS.LEARN_QNR_DETAIL_FORM(courseID, qnrID),
47
- })).json();
52
+ });
53
+ if (!Array.isArray(json)) {
54
+ throw { reason: FailReason.INVALID_RESPONSE, extra: json };
55
+ }
48
56
  return json.map((e) => ({
49
57
  id: e.wtid,
50
58
  index: Number(e.wtbh),
@@ -1 +1 @@
1
- {"version":3,"file":"questionnaires.js","sourceRoot":"","sources":["../src/questionnaires.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"questionnaires.js","sourceRoot":"","sources":["../src/questionnaires.ts"],"names":[],"mappings":"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"}