@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.
- package/README.md +41 -7
- package/lib/auth.d.ts +1 -1
- package/lib/auth.d.ts.map +1 -1
- package/lib/auth.js +17 -5
- package/lib/auth.js.map +1 -1
- package/lib/calendar.d.ts +6 -4
- package/lib/calendar.d.ts.map +1 -1
- package/lib/calendar.js +21 -8
- package/lib/calendar.js.map +1 -1
- package/lib/contents.d.ts.map +1 -1
- package/lib/contents.js +10 -1
- package/lib/contents.js.map +1 -1
- package/lib/courses.d.ts.map +1 -1
- package/lib/courses.js +6 -6
- package/lib/courses.js.map +1 -1
- package/lib/discussions.js +2 -2
- package/lib/discussions.js.map +1 -1
- package/lib/favorites.d.ts.map +1 -1
- package/lib/favorites.js +12 -12
- package/lib/favorites.js.map +1 -1
- package/lib/files.d.ts +1 -1
- package/lib/files.d.ts.map +1 -1
- package/lib/files.js +10 -8
- package/lib/files.js.map +1 -1
- package/lib/homework.d.ts +1 -2
- package/lib/homework.d.ts.map +1 -1
- package/lib/homework.js +19 -17
- package/lib/homework.js.map +1 -1
- package/lib/index.d.ts +11 -6
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +13 -5
- package/lib/index.js.map +1 -1
- package/lib/notices.d.ts +1 -1
- package/lib/notices.d.ts.map +1 -1
- package/lib/notices.js +11 -15
- package/lib/notices.js.map +1 -1
- package/lib/questionnaires.d.ts +6 -3
- package/lib/questionnaires.d.ts.map +1 -1
- package/lib/questionnaires.js +20 -12
- package/lib/questionnaires.js.map +1 -1
- package/lib/request.d.ts +44 -14
- package/lib/request.d.ts.map +1 -1
- package/lib/request.js +120 -43
- package/lib/request.js.map +1 -1
- package/lib/types.d.ts +11 -3
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js.map +1 -1
- package/lib/user.js +1 -1
- package/lib/user.js.map +1 -1
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +9 -3
- package/lib/utils.js.map +1 -1
- package/package.json +2 -2
- package/src/auth.ts +18 -5
- package/src/calendar.ts +28 -10
- package/src/contents.ts +10 -1
- package/src/courses.ts +11 -13
- package/src/discussions.ts +2 -2
- package/src/favorites.ts +22 -32
- package/src/files.ts +12 -12
- package/src/homework.ts +30 -40
- package/src/index.ts +19 -7
- package/src/notices.ts +12 -18
- package/src/questionnaires.ts +51 -37
- package/src/request.ts +141 -42
- package/src/types.ts +14 -3
- package/src/user.ts +1 -1
- 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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
-
})
|
|
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
|
|
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
|
|
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
|
package/lib/homework.d.ts.map
CHANGED
|
@@ -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,
|
|
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
|
|
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
|
-
})
|
|
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
|
|
51
|
+
const json = await s.fetchJsonWithToken(url, {
|
|
52
52
|
method: 'POST',
|
|
53
53
|
body: URLS.LEARN_PAGE_LIST_FORM_DATA(courseID),
|
|
54
|
-
})
|
|
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
|
|
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
|
-
})
|
|
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
|
|
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
|
|
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
|
-
})
|
|
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
|
-
|
|
162
|
-
|
|
163
|
-
const
|
|
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 +
|
|
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]
|
|
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
|
|
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
|
-
|
|
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,
|
package/lib/homework.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
{"version":3,"file":"homework.js","sourceRoot":"","sources":["../src/homework.ts"],"names":[],"mappings":"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"}
|
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
|
*/
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EACV,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,uBAAuB,EACvB,UAAU,EACV,WAAW,EACX,UAAU,EACV,UAAU,EACV,YAAY,EACZ,IAAI,EACJ,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,yBAAyB,EACzB,QAAQ,EACR,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,WAAW,EACZ,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAIxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,cAAc,YAAY,CAAC;AAE3B,4BAA4B;AAC5B,qBAAa,eAAe;;IAG1B,mFAAmF;IACnF,YAAY,MAAM,CAAC,EAAE,YAAY,EAEhC;IAED,oGAAoG;IACpG,IAAW,gBAAgB,IAAI,OAAO,CAErC;IAED,IAAW,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAEzC;IAED,kGAAkG;IAC3F,YAAY,IAAI,MAAM,CAE5B;IAED,6EAA6E;IACtE,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAE3C;IAED;;;OAGG;IACU,gBAAgB,CAC3B,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,cAAc,GAAE,MAAW,EAC3B,eAAe,GAAE,MAAW,GAC3B,OAAO,CAAC,MAAM,CAAC,CAEjB;IAED
|
|
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":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AACpC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;
|
|
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
|
package/lib/notices.d.ts.map
CHANGED
|
@@ -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;
|
|
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
|
|
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
|
-
})
|
|
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
|
|
63
|
+
// const metadata = await s.fetchJsonWithToken(URL.LEARN_NOTIFICATION_EDIT(courseType), {
|
|
64
64
|
// 'method': 'POST',
|
|
65
65
|
// 'body': postParams,
|
|
66
|
-
// })
|
|
66
|
+
// });
|
|
67
67
|
// const attachmentId = metadata.ggfjid as string;
|
|
68
68
|
/// parsed from HTML
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
if (
|
|
73
|
-
|
|
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)) {
|
package/lib/notices.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notices.js","sourceRoot":"","sources":["../src/notices.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAE/B,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGnC,OAAO,EAAE,CAAC,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEnE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,CAAU,EACV,QAAgB,EAChB,UAAU,GAAe,UAAU,CAAC,OAAO,EAC3C,OAAO,GAA4B,EAAE;IAErC,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC9B,uBAAuB,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC;QACvD,uBAAuB,CAAC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC;KACvD,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,GAAG,CAChB,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAyB,EAAE;QAClD,IAAI,CAAC,CAAC,CAAC,cAAc,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACvE,OAAO,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC;IACjF,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,CAAU,EACV,QAAgB,EAChB,UAAsB,EACtB,OAAgB;IAEhB,MAAM,IAAI,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"notices.js","sourceRoot":"","sources":["../src/notices.ts"],"names":[],"mappings":"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"}
|
package/lib/questionnaires.d.ts
CHANGED
|
@@ -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,
|
|
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"}
|
package/lib/questionnaires.js
CHANGED
|
@@ -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
|
-
|
|
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
|
-
])
|
|
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
|
|
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
|
|
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
|
-
|
|
44
|
-
|
|
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
|
-
})
|
|
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":"AAAA,yBAAyB;AAGzB,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC3D,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"questionnaires.js","sourceRoot":"","sources":["../src/questionnaires.ts"],"names":[],"mappings":"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"}
|