@falkenslab/moodle-driver 0.4.0 → 0.5.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 +3 -2
- package/dist/areas/activities/build.d.ts +47 -10
- package/dist/areas/activities/build.js +157 -24
- package/dist/areas/activities/build.js.map +1 -1
- package/dist/areas/activities/conditions.d.ts +77 -0
- package/dist/areas/activities/conditions.js +216 -0
- package/dist/areas/activities/conditions.js.map +1 -0
- package/dist/areas/activities/content.d.ts +3 -0
- package/dist/areas/activities/content.js +1 -0
- package/dist/areas/activities/content.js.map +1 -1
- package/dist/areas/assignments/grader.d.ts +32 -0
- package/dist/areas/assignments/grader.js +66 -2
- package/dist/areas/assignments/grader.js.map +1 -1
- package/dist/areas/assignments/grading.d.ts +69 -6
- package/dist/areas/assignments/grading.js +173 -13
- package/dist/areas/assignments/grading.js.map +1 -1
- package/dist/areas/assignments/student.d.ts +14 -0
- package/dist/areas/assignments/student.js +43 -2
- package/dist/areas/assignments/student.js.map +1 -1
- package/dist/areas/backup/backup.d.ts +86 -0
- package/dist/areas/backup/backup.js +368 -0
- package/dist/areas/backup/backup.js.map +1 -0
- package/dist/areas/calendar/calendar.d.ts +27 -0
- package/dist/areas/calendar/calendar.js +115 -9
- package/dist/areas/calendar/calendar.js.map +1 -1
- package/dist/areas/completion/completion.d.ts +3 -0
- package/dist/areas/completion/completion.js.map +1 -1
- package/dist/areas/courses/list.d.ts +2 -0
- package/dist/areas/courses/list.js.map +1 -1
- package/dist/areas/courses/reset.d.ts +51 -0
- package/dist/areas/courses/reset.js +123 -0
- package/dist/areas/courses/reset.js.map +1 -0
- package/dist/areas/courses/state.d.ts +17 -0
- package/dist/areas/courses/state.js +37 -6
- package/dist/areas/courses/state.js.map +1 -1
- package/dist/areas/courses/structure.d.ts +14 -2
- package/dist/areas/courses/structure.js +11 -5
- package/dist/areas/courses/structure.js.map +1 -1
- package/dist/areas/forums/discussions.d.ts +8 -0
- package/dist/areas/forums/discussions.js +10 -0
- package/dist/areas/forums/discussions.js.map +1 -1
- package/dist/areas/forums/grading.d.ts +49 -0
- package/dist/areas/forums/grading.js +125 -0
- package/dist/areas/forums/grading.js.map +1 -0
- package/dist/areas/forums/posts.d.ts +37 -0
- package/dist/areas/forums/posts.js +141 -6
- package/dist/areas/forums/posts.js.map +1 -1
- package/dist/areas/grades/export.d.ts +38 -0
- package/dist/areas/grades/export.js +88 -0
- package/dist/areas/grades/export.js.map +1 -0
- package/dist/areas/grades/gradebook.d.ts +50 -0
- package/dist/areas/grades/gradebook.js +120 -0
- package/dist/areas/grades/gradebook.js.map +1 -1
- package/dist/areas/grades/singleview.d.ts +39 -0
- package/dist/areas/grades/singleview.js +186 -0
- package/dist/areas/grades/singleview.js.map +1 -0
- package/dist/areas/h5p/h5p.d.ts +2 -0
- package/dist/areas/h5p/h5p.js +12 -7
- package/dist/areas/h5p/h5p.js.map +1 -1
- package/dist/areas/lessons/lessons.d.ts +1 -0
- package/dist/areas/lessons/lessons.js.map +1 -1
- package/dist/areas/messages/messages.d.ts +36 -1
- package/dist/areas/messages/messages.js +60 -4
- package/dist/areas/messages/messages.js.map +1 -1
- package/dist/areas/participants/enrolments.d.ts +60 -0
- package/dist/areas/participants/enrolments.js +218 -0
- package/dist/areas/participants/enrolments.js.map +1 -0
- package/dist/areas/participants/groups.d.ts +75 -0
- package/dist/areas/participants/groups.js +201 -0
- package/dist/areas/participants/groups.js.map +1 -0
- package/dist/areas/participants/methods.d.ts +56 -0
- package/dist/areas/participants/methods.js +154 -0
- package/dist/areas/participants/methods.js.map +1 -0
- package/dist/areas/participants/participants.d.ts +11 -0
- package/dist/areas/participants/participants.js +24 -19
- package/dist/areas/participants/participants.js.map +1 -1
- package/dist/areas/questions/banks.d.ts +36 -1
- package/dist/areas/questions/banks.js +140 -17
- package/dist/areas/questions/banks.js.map +1 -1
- package/dist/areas/quizzes/attempts.d.ts +2 -0
- package/dist/areas/quizzes/attempts.js +9 -0
- package/dist/areas/quizzes/attempts.js.map +1 -1
- package/dist/areas/quizzes/grading.d.ts +50 -0
- package/dist/areas/quizzes/grading.js +131 -0
- package/dist/areas/quizzes/grading.js.map +1 -0
- package/dist/areas/quizzes/results.d.ts +3 -0
- package/dist/areas/quizzes/results.js +2 -1
- package/dist/areas/quizzes/results.js.map +1 -1
- package/dist/areas/quizzes/structure.d.ts +65 -9
- package/dist/areas/quizzes/structure.js +222 -23
- package/dist/areas/quizzes/structure.js.map +1 -1
- package/dist/areas/ratings/ratings.d.ts +26 -0
- package/dist/areas/ratings/ratings.js +108 -0
- package/dist/areas/ratings/ratings.js.map +1 -0
- package/dist/areas/reports/dates.d.ts +18 -0
- package/dist/areas/reports/dates.js +134 -0
- package/dist/areas/reports/dates.js.map +1 -0
- package/dist/areas/reports/reports.d.ts +143 -0
- package/dist/areas/reports/reports.js +267 -0
- package/dist/areas/reports/reports.js.map +1 -0
- package/dist/areas/scorm/scorm.d.ts +1 -0
- package/dist/areas/scorm/scorm.js.map +1 -1
- package/dist/areas/site/users.d.ts +7 -1
- package/dist/areas/site/users.js +9 -2
- package/dist/areas/site/users.js.map +1 -1
- package/dist/areas/surveys/choice.d.ts +2 -0
- package/dist/areas/surveys/choice.js +6 -3
- package/dist/areas/surveys/choice.js.map +1 -1
- package/dist/areas/surveys/surveys.d.ts +3 -0
- package/dist/areas/surveys/surveys.js +1 -0
- package/dist/areas/surveys/surveys.js.map +1 -1
- package/dist/areas/workshops/workshops.d.ts +133 -0
- package/dist/areas/workshops/workshops.js +335 -0
- package/dist/areas/workshops/workshops.js.map +1 -0
- package/dist/browser/background.d.ts +43 -0
- package/dist/browser/background.js +164 -0
- package/dist/browser/background.js.map +1 -0
- package/dist/browser/host.d.ts +30 -0
- package/dist/browser/host.js +373 -0
- package/dist/browser/host.js.map +1 -0
- package/dist/browser/manager.d.ts +9 -0
- package/dist/browser/manager.js +8 -0
- package/dist/browser/manager.js.map +1 -1
- package/dist/categories.d.ts +1 -0
- package/dist/categories.js +67 -0
- package/dist/categories.js.map +1 -1
- package/dist/cli/args.d.ts +8 -0
- package/dist/cli/args.js +49 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/background.d.ts +23 -0
- package/dist/cli/background.js +128 -0
- package/dist/cli/background.js.map +1 -0
- package/dist/cli/command.d.ts +66 -0
- package/dist/cli/command.js +328 -0
- package/dist/cli/command.js.map +1 -0
- package/dist/cli/commands.generated.js +2636 -578
- package/dist/cli/commands.generated.js.map +1 -1
- package/dist/cli/config.d.ts +2 -0
- package/dist/cli/config.js +2 -0
- package/dist/cli/config.js.map +1 -1
- package/dist/cli/main.js +30 -10
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/run.d.ts +3 -14
- package/dist/cli/run.js +9 -185
- package/dist/cli/run.js.map +1 -1
- package/dist/cli/shell.d.ts +9 -0
- package/dist/cli/shell.js +233 -0
- package/dist/cli/shell.js.map +1 -0
- package/dist/client.d.ts +71 -8
- package/dist/client.js +75 -8
- package/dist/client.js.map +1 -1
- package/dist/core/errors.d.ts +1 -1
- package/dist/core/errors.js.map +1 -1
- package/dist/core/files.d.ts +5 -0
- package/dist/core/files.js +7 -3
- package/dist/core/files.js.map +1 -1
- package/dist/core/forms.d.ts +33 -3
- package/dist/core/forms.js +105 -8
- package/dist/core/forms.js.map +1 -1
- package/dist/core/http.d.ts +7 -0
- package/dist/core/http.js +28 -7
- package/dist/core/http.js.map +1 -1
- package/dist/core/login.d.ts +3 -0
- package/dist/core/login.js +2 -0
- package/dist/core/login.js.map +1 -1
- package/dist/core/session.d.ts +12 -1
- package/dist/core/session.js +12 -1
- package/dist/core/session.js.map +1 -1
- package/dist/index.d.ts +35 -11
- package/dist/index.js +32 -12
- package/dist/index.js.map +1 -1
- package/dist/internals.d.ts +9 -1
- package/dist/internals.js +9 -4
- package/dist/internals.js.map +1 -1
- package/dist/options.d.ts +2 -0
- package/dist/options.js.map +1 -1
- package/dist/testing/fakeMoodle.d.ts +9 -2
- package/dist/testing/fakeMoodle.js +5 -3
- package/dist/testing/fakeMoodle.js.map +1 -1
- package/dist/testing/index.d.ts +7 -0
- package/dist/testing/index.js.map +1 -1
- package/package.json +2 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,14 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The public API: everything a program needs to work a Moodle site with the person's own session,
|
|
3
|
+
* imported from `@falkenslab/moodle-driver`. Start with `createMoodle`, whose methods are the
|
|
4
|
+
* driver's operations; each is also a function taking the browser's context and the site.
|
|
5
|
+
*
|
|
6
|
+
* The primitives the operations are built from are in `@falkenslab/moodle-driver/internals`; what
|
|
7
|
+
* neither exports is internal.
|
|
8
|
+
*
|
|
9
|
+
* @packageDocumentation
|
|
10
|
+
*/
|
|
1
11
|
export * from "./client.js";
|
|
2
12
|
export * from "./options.js";
|
|
3
13
|
export { createBrowserManager, canShowWindow, BrowserNotFoundError, BrowserDownloadingError, NoDisplayError, type BrowserManager, type ContextOptions } from "./browser/manager.js";
|
|
4
14
|
export { SESSION_COOKIES_FILE } from "./browser/cookies.js";
|
|
15
|
+
export { connectBrowserManager, backgroundBrowser, BACKGROUND_FILE, type BackgroundBrowser, type ConnectOptions } from "./browser/background.js";
|
|
5
16
|
export { siteProfileDir } from "./home.js";
|
|
6
17
|
export * from "./categories.js";
|
|
7
18
|
export * from "./core/errors.js";
|
|
8
19
|
export { logIn, LoginTimeoutError, LoginWindowClosedError, type LoginResult } from "./core/login.js";
|
|
9
20
|
export { logOut, NotLoggedInError } from "./core/session.js";
|
|
10
21
|
export { MoodleServiceError } from "./core/ajax.js";
|
|
11
|
-
export { FormError, type FieldValue } from "./core/forms.js";
|
|
22
|
+
export { FormError, type FieldValue, type DraftUpload, type DraftFile } from "./core/forms.js";
|
|
12
23
|
export { findMoodleSite } from "./core/site.js";
|
|
13
24
|
export { checkLocalFiles, downloadFile, type DownloadedFile } from "./core/files.js";
|
|
14
25
|
export type { MediaItem } from "./core/text.js";
|
|
@@ -17,25 +28,38 @@ export { userById, siteName, courseRoles, courseAbilities, whoAmI, type User, ty
|
|
|
17
28
|
export { listCourses, updateCourse, COURSE_CLASSIFICATIONS, CourseError, type CourseClassification, type Course } from "./areas/courses/list.js";
|
|
18
29
|
export { courseStructure, listAssignments, pendingActivities, COMPLETION_STATES, type CompletionState, type CourseActivity, type CourseSection, type CourseAssignment, type PendingActivity, } from "./areas/courses/structure.js";
|
|
19
30
|
export { activitiesOverview, deadlines, courseUpdates, type OverviewField } from "./areas/courses/overview.js";
|
|
20
|
-
export {
|
|
31
|
+
export { resetCourse, type ResetDeletions, type ResetStatus } from "./areas/courses/reset.js";
|
|
32
|
+
export { copyCourse, backupCourse, restoreCourse, importActivities, BackupError, type CourseRef } from "./areas/backup/backup.js";
|
|
33
|
+
export { createActivity, updateActivity, editActivity, duplicateActivity, deleteActivity, addSection, editSection, deleteSection, activitySettings, ACTIVITY_VISIBILITIES, ActivitySettingsError, type ActivityVisibility, type ActivityFields, type CourseChange, type FileChanges, type FormField, } from "./areas/activities/build.js";
|
|
34
|
+
export type { Restriction, Restrictions, Completion } from "./areas/activities/conditions.js";
|
|
21
35
|
export { activityContent, CONTENT_TYPES, NotViewableError, type ContentType, type ContentOptions, type ActivityContent } from "./areas/activities/content.js";
|
|
22
|
-
export { NotAnAssignmentError, GradingError, type PluginContent } from "./areas/assignments/grader.js";
|
|
23
|
-
export { assignmentSubmissions, gradeSubmission, rubric, grantExtension, type Submission, type GradingCriterion, type GradingDefinition } from "./areas/assignments/grading.js";
|
|
36
|
+
export { NotAnAssignmentError, GradingError, WORKFLOW_STATES, type PluginContent, type WorkflowState } from "./areas/assignments/grader.js";
|
|
37
|
+
export { assignmentSubmissions, gradeSubmission, rubric, grantExtension, setWorkflowState, allocateMarker, type Submission, type GradingCriterion, type GradingDefinition } from "./areas/assignments/grading.js";
|
|
24
38
|
export { studentAssignment, saveSubmission, submitForGrading, SubmissionError, type StudentAssignment } from "./areas/assignments/student.js";
|
|
25
39
|
export { quizInfo, startQuizAttempt, readAttempt, answerQuizQuestions, finishQuizAttempt, readReview, setQuizOverride, QuizError, type Detail, type QuizInfo, type QuestionField, type Question, } from "./areas/quizzes/attempts.js";
|
|
26
40
|
export { quizResults, type QuizAttemptResult } from "./areas/quizzes/results.js";
|
|
27
|
-
export {
|
|
28
|
-
export {
|
|
29
|
-
export {
|
|
30
|
-
export {
|
|
41
|
+
export { questionsToGrade, gradeQuizQuestion, type QuestionToGrade } from "./areas/quizzes/grading.js";
|
|
42
|
+
export { quizStructure, addQuestionsToQuiz, editQuizSlot, removeQuizSlot, setQuizPages, addQuizSection, type QuizSlot, type QuizSection } from "./areas/quizzes/structure.js";
|
|
43
|
+
export { questionBanks, questions, importQuestions, createQuestion, updateQuestion, deleteQuestions, setQuestionStatus, QUESTION_TYPES, QuestionBankError, type QuestionBank, type BankQuestion, type BankCategory, type QuestionType, type QuestionInput, } from "./areas/questions/banks.js";
|
|
44
|
+
export { forumGrades, gradeForumUser, type ForumGrade, type ForumGrades } from "./areas/forums/grading.js";
|
|
45
|
+
export { rate, type RateableItem } from "./areas/ratings/ratings.js";
|
|
46
|
+
export { workshopInfo, setWorkshopPhase, assessWorkshopSubmission, WorkshopError, WORKSHOP_PHASES, type WorkshopPhase, type WorkshopInfo, type WorkshopSubmission, type WorkshopAssessment, type WorkshopCriterion } from "./areas/workshops/workshops.js";
|
|
47
|
+
export { NotAForumError, ForumError } from "./areas/forums/discussions.js";
|
|
48
|
+
export { forumDiscussions, discussion, replyToPost, startDiscussion, setDiscussionState, editPost, deletePost, type ForumDiscussion, type ForumPost, type PostInput, type PostChanges } from "./areas/forums/posts.js";
|
|
31
49
|
export { getSurvey, submitSurvey, SurveyError, type SurveyType, type SurveyField, type SurveyQuestion } from "./areas/surveys/surveys.js";
|
|
32
50
|
export { getChoice, answerChoice, ChoiceError, type Choice } from "./areas/surveys/choice.js";
|
|
33
51
|
export { lessonPage, answerLessonPage, LessonError, type LessonField, type LessonPage } from "./areas/lessons/lessons.js";
|
|
34
52
|
export { h5pActivity, NotAnH5PActivityError, type H5PAttempt, type H5PActivity } from "./areas/h5p/h5p.js";
|
|
35
53
|
export { scorm, openScorm, ScormError, type ScoStatus, type ScormSco, type ScormActivity, type OpenedScorm } from "./areas/scorm/scorm.js";
|
|
36
54
|
export { myGrades, NoGradeReportError, type GradeRow } from "./areas/grades/user-report.js";
|
|
37
|
-
export { graderReport, gradebookSetup, updateGradeItem, addGradeCategory, GRADE_AGGREGATIONS, GradebookError, type GradeAggregation, type GradeColumn, type GraderReport, type GradebookCategory, type GradebookItem, } from "./areas/grades/gradebook.js";
|
|
55
|
+
export { graderReport, gradebookSetup, updateGradeItem, addGradeCategory, addGradeItem, updateGradeCategory, deleteGradeCategory, deleteGradeItem, GRADE_AGGREGATIONS, GradebookError, type GradeAggregation, type GradeColumn, type GraderReport, type GradebookCategory, type GradebookItem, } from "./areas/grades/gradebook.js";
|
|
56
|
+
export { setGrade, type GradebookGrade, type SetGradeOptions } from "./areas/grades/singleview.js";
|
|
57
|
+
export { exportGrades, GRADE_EXPORT_FORMATS, type GradeExportFormat, type GradeExportDisplay, type ExportGradesOptions } from "./areas/grades/export.js";
|
|
58
|
+
export { courseLogs, activityReport, participationReport, LOG_ACTIONS, PARTICIPATION_ACTIONS, ReportError, type LogAction, type LogEntry, type ActivityViews, type ParticipationAction, type ActivityParticipant, } from "./areas/reports/reports.js";
|
|
38
59
|
export { setCompletion, overrideCompletion, completionReport, CompletionError, type CompletionCell, type CompletionReport } from "./areas/completion/completion.js";
|
|
39
60
|
export { participants, participantFilters, groups, NoParticipantsError, type Participant, type CourseGroup } from "./areas/participants/participants.js";
|
|
40
|
-
export {
|
|
41
|
-
export {
|
|
61
|
+
export { createGroup, updateGroup, deleteGroup, setGroupMembers, groupings, createGrouping, deleteGrouping, setGroupingGroups, type GroupSettings, type GroupingSettings, type Grouping } from "./areas/participants/groups.js";
|
|
62
|
+
export { enrolmentMethods, setEnrolmentMethod, type EnrolmentMethod, type EnrolmentMethodSettings } from "./areas/participants/methods.js";
|
|
63
|
+
export { potentialUsers, enrolUsers, unenrolUser, setUserRoles, EnrolmentError, type PotentialUser } from "./areas/participants/enrolments.js";
|
|
64
|
+
export { upcomingEvents, calendarEvent, createEvent, updateEvent, deleteEvent, CalendarError, type CalendarEvent, type EventChanges } from "./areas/calendar/calendar.js";
|
|
65
|
+
export { notifications, markNotificationsRead, conversations, conversation, sendMessage, messageParticipants, MessageError, type Notification, type ConversationSummary, type ParticipantSelection } from "./areas/messages/messages.js";
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/**
|
|
2
|
+
* The public API: everything a program needs to work a Moodle site with the person's own session,
|
|
3
|
+
* imported from `@falkenslab/moodle-driver`. Start with `createMoodle`, whose methods are the
|
|
4
|
+
* driver's operations; each is also a function taking the browser's context and the site.
|
|
5
|
+
*
|
|
6
|
+
* The primitives the operations are built from are in `@falkenslab/moodle-driver/internals`; what
|
|
7
|
+
* neither exports is internal.
|
|
8
|
+
*
|
|
9
|
+
* @packageDocumentation
|
|
10
|
+
*/
|
|
4
11
|
// The Moodle object, the browser and what a program chooses.
|
|
5
12
|
export * from "./client.js";
|
|
6
13
|
export * from "./options.js";
|
|
7
14
|
export { createBrowserManager, canShowWindow, BrowserNotFoundError, BrowserDownloadingError, NoDisplayError } from "./browser/manager.js";
|
|
8
15
|
export { SESSION_COOKIES_FILE } from "./browser/cookies.js";
|
|
16
|
+
export { connectBrowserManager, backgroundBrowser, BACKGROUND_FILE } from "./browser/background.js";
|
|
9
17
|
export { siteProfileDir } from "./home.js";
|
|
10
18
|
export * from "./categories.js";
|
|
11
19
|
export * from "./core/errors.js";
|
|
@@ -22,21 +30,27 @@ export { userById, siteName, courseRoles, courseAbilities, whoAmI } from "./area
|
|
|
22
30
|
export { listCourses, updateCourse, COURSE_CLASSIFICATIONS, CourseError } from "./areas/courses/list.js";
|
|
23
31
|
export { courseStructure, listAssignments, pendingActivities, COMPLETION_STATES, } from "./areas/courses/structure.js";
|
|
24
32
|
export { activitiesOverview, deadlines, courseUpdates } from "./areas/courses/overview.js";
|
|
33
|
+
export { resetCourse } from "./areas/courses/reset.js";
|
|
34
|
+
export { copyCourse, backupCourse, restoreCourse, importActivities, BackupError } from "./areas/backup/backup.js";
|
|
25
35
|
// Activities: building them and viewing their content.
|
|
26
36
|
export { createActivity, updateActivity, editActivity, duplicateActivity, deleteActivity, addSection, editSection, deleteSection, activitySettings, ACTIVITY_VISIBILITIES, ActivitySettingsError, } from "./areas/activities/build.js";
|
|
27
37
|
export { activityContent, CONTENT_TYPES, NotViewableError } from "./areas/activities/content.js";
|
|
28
38
|
// Assignments.
|
|
29
|
-
export { NotAnAssignmentError, GradingError } from "./areas/assignments/grader.js";
|
|
30
|
-
export { assignmentSubmissions, gradeSubmission, rubric, grantExtension } from "./areas/assignments/grading.js";
|
|
39
|
+
export { NotAnAssignmentError, GradingError, WORKFLOW_STATES } from "./areas/assignments/grader.js";
|
|
40
|
+
export { assignmentSubmissions, gradeSubmission, rubric, grantExtension, setWorkflowState, allocateMarker } from "./areas/assignments/grading.js";
|
|
31
41
|
export { studentAssignment, saveSubmission, submitForGrading, SubmissionError } from "./areas/assignments/student.js";
|
|
32
42
|
// Quizzes and question banks.
|
|
33
43
|
export { quizInfo, startQuizAttempt, readAttempt, answerQuizQuestions, finishQuizAttempt, readReview, setQuizOverride, QuizError, } from "./areas/quizzes/attempts.js";
|
|
34
44
|
export { quizResults } from "./areas/quizzes/results.js";
|
|
35
|
-
export {
|
|
36
|
-
export {
|
|
45
|
+
export { questionsToGrade, gradeQuizQuestion } from "./areas/quizzes/grading.js";
|
|
46
|
+
export { quizStructure, addQuestionsToQuiz, editQuizSlot, removeQuizSlot, setQuizPages, addQuizSection } from "./areas/quizzes/structure.js";
|
|
47
|
+
export { questionBanks, questions, importQuestions, createQuestion, updateQuestion, deleteQuestions, setQuestionStatus, QUESTION_TYPES, QuestionBankError, } from "./areas/questions/banks.js";
|
|
37
48
|
// Forums, surveys, choices, lessons, H5P.
|
|
38
|
-
export {
|
|
39
|
-
export {
|
|
49
|
+
export { forumGrades, gradeForumUser } from "./areas/forums/grading.js";
|
|
50
|
+
export { rate } from "./areas/ratings/ratings.js";
|
|
51
|
+
export { workshopInfo, setWorkshopPhase, assessWorkshopSubmission, WorkshopError, WORKSHOP_PHASES } from "./areas/workshops/workshops.js";
|
|
52
|
+
export { NotAForumError, ForumError } from "./areas/forums/discussions.js";
|
|
53
|
+
export { forumDiscussions, discussion, replyToPost, startDiscussion, setDiscussionState, editPost, deletePost } from "./areas/forums/posts.js";
|
|
40
54
|
export { getSurvey, submitSurvey, SurveyError } from "./areas/surveys/surveys.js";
|
|
41
55
|
export { getChoice, answerChoice, ChoiceError } from "./areas/surveys/choice.js";
|
|
42
56
|
export { lessonPage, answerLessonPage, LessonError } from "./areas/lessons/lessons.js";
|
|
@@ -44,9 +58,15 @@ export { h5pActivity, NotAnH5PActivityError } from "./areas/h5p/h5p.js";
|
|
|
44
58
|
export { scorm, openScorm, ScormError } from "./areas/scorm/scorm.js";
|
|
45
59
|
// Grades, completion, participants, calendar, messages.
|
|
46
60
|
export { myGrades, NoGradeReportError } from "./areas/grades/user-report.js";
|
|
47
|
-
export { graderReport, gradebookSetup, updateGradeItem, addGradeCategory, GRADE_AGGREGATIONS, GradebookError, } from "./areas/grades/gradebook.js";
|
|
61
|
+
export { graderReport, gradebookSetup, updateGradeItem, addGradeCategory, addGradeItem, updateGradeCategory, deleteGradeCategory, deleteGradeItem, GRADE_AGGREGATIONS, GradebookError, } from "./areas/grades/gradebook.js";
|
|
62
|
+
export { setGrade } from "./areas/grades/singleview.js";
|
|
63
|
+
export { exportGrades, GRADE_EXPORT_FORMATS } from "./areas/grades/export.js";
|
|
64
|
+
export { courseLogs, activityReport, participationReport, LOG_ACTIONS, PARTICIPATION_ACTIONS, ReportError, } from "./areas/reports/reports.js";
|
|
48
65
|
export { setCompletion, overrideCompletion, completionReport, CompletionError } from "./areas/completion/completion.js";
|
|
49
66
|
export { participants, participantFilters, groups, NoParticipantsError } from "./areas/participants/participants.js";
|
|
50
|
-
export {
|
|
51
|
-
export {
|
|
67
|
+
export { createGroup, updateGroup, deleteGroup, setGroupMembers, groupings, createGrouping, deleteGrouping, setGroupingGroups } from "./areas/participants/groups.js";
|
|
68
|
+
export { enrolmentMethods, setEnrolmentMethod } from "./areas/participants/methods.js";
|
|
69
|
+
export { potentialUsers, enrolUsers, unenrolUser, setUserRoles, EnrolmentError } from "./areas/participants/enrolments.js";
|
|
70
|
+
export { upcomingEvents, calendarEvent, createEvent, updateEvent, deleteEvent, CalendarError } from "./areas/calendar/calendar.js";
|
|
71
|
+
export { notifications, markNotificationsRead, conversations, conversation, sendMessage, messageParticipants, MessageError } from "./areas/messages/messages.js";
|
|
52
72
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/internals.d.ts
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The primitives the operations are built from, imported from `@falkenslab/moodle-driver/internals`,
|
|
3
|
+
* for a program that goes lower level than them: a service the driver doesn't wrap, a form of its
|
|
4
|
+
* own, a page read by hand. Stable as the main entry is, but closer to Moodle: they take pages and
|
|
5
|
+
* form field names.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
1
9
|
export { callService, readPageConfig, type PageConfig } from "./core/ajax.js";
|
|
2
10
|
export { openSitePage, fetchSitePage, readSessionFacts, htmlSessionFacts, readMoodleConfig, isLoggedIn, pageIsLoggedIn, moodleErrorMessage, type SessionFacts } from "./core/session.js";
|
|
3
11
|
export { readOwnProfile } from "./core/login.js";
|
|
4
|
-
export { openForm, formValue, setFields, submitForm, uploadToDraft, dateSelectorValues, dateSelectorDate } from "./core/forms.js";
|
|
12
|
+
export { openForm, formValue, setFields, submitForm, uploadToDraft, draftFiles, deleteDraftFile, removeFromDraft, dateSelectorValues, dateSelectorDate, type DraftUpload, type DraftFile } from "./core/forms.js";
|
|
5
13
|
export { inPage } from "./core/inPage.js";
|
|
6
14
|
export { decodeEntities, readTexts, readMedia } from "./core/text.js";
|
|
7
15
|
export { readingSeconds, pause } from "./core/pace.js";
|
package/dist/internals.js
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/**
|
|
2
|
+
* The primitives the operations are built from, imported from `@falkenslab/moodle-driver/internals`,
|
|
3
|
+
* for a program that goes lower level than them: a service the driver doesn't wrap, a form of its
|
|
4
|
+
* own, a page read by hand. Stable as the main entry is, but closer to Moodle: they take pages and
|
|
5
|
+
* form field names.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
4
9
|
export { callService, readPageConfig } from "./core/ajax.js";
|
|
5
10
|
export { openSitePage, fetchSitePage, readSessionFacts, htmlSessionFacts, readMoodleConfig, isLoggedIn, pageIsLoggedIn, moodleErrorMessage } from "./core/session.js";
|
|
6
11
|
export { readOwnProfile } from "./core/login.js";
|
|
7
|
-
export { openForm, formValue, setFields, submitForm, uploadToDraft, dateSelectorValues, dateSelectorDate } from "./core/forms.js";
|
|
12
|
+
export { openForm, formValue, setFields, submitForm, uploadToDraft, draftFiles, deleteDraftFile, removeFromDraft, dateSelectorValues, dateSelectorDate } from "./core/forms.js";
|
|
8
13
|
export { inPage } from "./core/inPage.js";
|
|
9
14
|
export { decodeEntities, readTexts, readMedia } from "./core/text.js";
|
|
10
15
|
export { readingSeconds, pause } from "./core/pace.js";
|
package/dist/internals.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internals.js","sourceRoot":"","sources":["../src/internals.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"internals.js","sourceRoot":"","sources":["../src/internals.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,WAAW,EAAE,cAAc,EAAmB,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAqB,MAAM,mBAAmB,CAAC;AACzL,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,eAAe,EAAE,eAAe,EAAE,kBAAkB,EAAE,gBAAgB,EAAoC,MAAM,iBAAiB,CAAC;AAClN,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAqB,MAAM,kBAAkB,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,eAAe,EAA0C,MAAM,0BAA0B,CAAC"}
|
package/dist/options.d.ts
CHANGED
|
@@ -3,9 +3,11 @@ import { MoodleError } from "./core/errors.js";
|
|
|
3
3
|
export declare const SYSTEM_CHANNELS: readonly ["msedge", "chrome"];
|
|
4
4
|
/** Every channel: the system browsers, and Playwright's Chromium (downloaded when missing). */
|
|
5
5
|
export declare const CHANNELS: readonly ["msedge", "chrome", "chromium"];
|
|
6
|
+
/** A browser the driver can launch: Microsoft Edge, Google Chrome or Playwright's Chromium. */
|
|
6
7
|
export type Channel = (typeof CHANNELS)[number];
|
|
7
8
|
/** How student actions view and do things: through the real pages at a person's pace, or fast (ADR-005). */
|
|
8
9
|
export declare const TRAILS: readonly ["realistic", "fast"];
|
|
10
|
+
/** One of `TRAILS`: how a student action leaves its trail in Moodle's logs (ADR-005). */
|
|
9
11
|
export type Trail = (typeof TRAILS)[number];
|
|
10
12
|
/**
|
|
11
13
|
* The browser's options. The driver reads them each time it launches, so a program may change them
|
package/dist/options.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,mGAAmG;AACnG,gGAAgG;AAEhG,kFAAkF;AAClF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAC7D,+FAA+F;AAC/F,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAG,eAAe,EAAE,UAAU,CAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,mGAAmG;AACnG,gGAAgG;AAEhG,kFAAkF;AAClF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAC7D,+FAA+F;AAC/F,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAG,eAAe,EAAE,UAAU,CAAU,CAAC;AAIlE,4GAA4G;AAC5G,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,WAAW,EAAE,MAAM,CAAU,CAAC;AAmBrD,iCAAiC;AACjC,MAAM,OAAO,cAAe,SAAQ,WAAW;IACpC,IAAI,GAAG,gBAAgB,CAAC;IACjC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IAC/B,CAAC;CACF;AAED,6FAA6F;AAC7F,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,cAAc,CAAC,sCAAsC,KAAK,IAAI,CAAC,CAAC;IAC5E,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1D,MAAM,IAAI,cAAc,CAAC,8CAA8C,KAAK,IAAI,CAAC,CAAC;IACpF,CAAC;IACD,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC;IAChB,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC;IACd,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC;IACrD,OAAO,GAAG,CAAC,IAAI,CAAC;AAClB,CAAC"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { type Browser, type BrowserContext } from "playwright-core";
|
|
2
|
+
/** The fake Moodle's URL: the site URL to give the functions under test. */
|
|
2
3
|
export declare const SITE = "http://moodle.test/";
|
|
3
4
|
/**
|
|
4
5
|
* A Moodle page reduced to what the driver reads: the body class, `M.cfg` (`wwwroot`, `sesskey`,
|
|
5
|
-
* `userId`), the logout link in the user menu and the page heading, as
|
|
6
|
+
* `userId`, and `contextid` when given), the logout link in the user menu and the page heading, as
|
|
7
|
+
* Moodle 5.2 renders them.
|
|
6
8
|
*/
|
|
7
|
-
export declare function moodlePage({ userId, heading, guest, sesskey, wwwroot, body, bodyId, bodyClass, }: {
|
|
9
|
+
export declare function moodlePage({ userId, heading, guest, sesskey, wwwroot, body, bodyId, bodyClass, contextId, }: {
|
|
8
10
|
userId: number;
|
|
9
11
|
heading?: string;
|
|
10
12
|
guest?: boolean;
|
|
@@ -13,6 +15,7 @@ export declare function moodlePage({ userId, heading, guest, sesskey, wwwroot, b
|
|
|
13
15
|
body?: string;
|
|
14
16
|
bodyId?: string;
|
|
15
17
|
bodyClass?: string;
|
|
18
|
+
contextId?: number;
|
|
16
19
|
}): string;
|
|
17
20
|
/**
|
|
18
21
|
* The first browser that launches headless: the system's Edge or Chrome, or Playwright's own Chromium
|
|
@@ -24,6 +27,10 @@ export declare class ServiceFailure extends Error {
|
|
|
24
27
|
readonly errorcode: string;
|
|
25
28
|
constructor(errorcode: string);
|
|
26
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* What the fake Moodle serves (`serveFakeMoodle`): the test sets it up and may change it while it
|
|
32
|
+
* runs (log someone in, change the sesskey); the fake records what it served in it.
|
|
33
|
+
*/
|
|
27
34
|
export interface FakeMoodleState {
|
|
28
35
|
/** The logged-in user; none means every page is the login page. */
|
|
29
36
|
user?: {
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
import { chromium } from "playwright-core";
|
|
2
2
|
import { setTransport } from "../core/http.js";
|
|
3
|
+
/** The fake Moodle's URL: the site URL to give the functions under test. */
|
|
3
4
|
export const SITE = "http://moodle.test/";
|
|
4
5
|
// The fake's own blank page, for requests the driver makes without a tab.
|
|
5
6
|
const TRANSPORT_PATH = "__fake-transport";
|
|
6
7
|
/**
|
|
7
8
|
* A Moodle page reduced to what the driver reads: the body class, `M.cfg` (`wwwroot`, `sesskey`,
|
|
8
|
-
* `userId`), the logout link in the user menu and the page heading, as
|
|
9
|
+
* `userId`, and `contextid` when given), the logout link in the user menu and the page heading, as
|
|
10
|
+
* Moodle 5.2 renders them.
|
|
9
11
|
*/
|
|
10
|
-
export function moodlePage({ userId, heading = "Dashboard", guest = false, sesskey = "s1", wwwroot = "http://moodle.test", body = "", bodyId = "", bodyClass = "", }) {
|
|
12
|
+
export function moodlePage({ userId, heading = "Dashboard", guest = false, sesskey = "s1", wwwroot = "http://moodle.test", body = "", bodyId = "", bodyClass = "", contextId, }) {
|
|
11
13
|
const loggedIn = userId > 0;
|
|
12
14
|
return `<!DOCTYPE html><html><head><title>${heading}</title>
|
|
13
|
-
<script>var M = {}; M.cfg = {"wwwroot":${JSON.stringify(wwwroot).replaceAll("/", "\\/")},"sesskey":"${sesskey}","userId":${userId},"language":"en","usertimezone":"Europe/Madrid"};</script></head>
|
|
15
|
+
<script>var M = {}; M.cfg = {"wwwroot":${JSON.stringify(wwwroot).replaceAll("/", "\\/")},"sesskey":"${sesskey}","userId":${userId},"language":"en","usertimezone":"Europe/Madrid"${contextId ? `,"contextid":${contextId}` : ""}};</script></head>
|
|
14
16
|
<body${bodyId ? ` id="${bodyId}"` : ""} class="${loggedIn ? "" : "notloggedin"} ${bodyClass}">
|
|
15
17
|
<nav>${loggedIn && !guest ? '<div class="usermenu"><a href="http://moodle.test/login/logout.php?sesskey=x">Log out</a></div>' : '<a href="http://moodle.test/login/index.php">Log in</a>'}</nav>
|
|
16
18
|
<div id="page-header"><div class="page-header-headings"><h1>${heading}</h1></div></div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fakeMoodle.js","sourceRoot":"","sources":["../../src/testing/fakeMoodle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA4D,MAAM,iBAAiB,CAAC;AACrG,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,CAAC,MAAM,IAAI,GAAG,qBAAqB,CAAC;AAE1C,0EAA0E;AAC1E,MAAM,cAAc,GAAG,kBAAkB,CAAC;AAE1C
|
|
1
|
+
{"version":3,"file":"fakeMoodle.js","sourceRoot":"","sources":["../../src/testing/fakeMoodle.ts"],"names":[],"mappings":"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"}
|
package/dist/testing/index.d.ts
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helpers for testing programs that use the driver without a real Moodle, imported from
|
|
3
|
+
* `@falkenslab/moodle-driver/testing`: a fake site served inside a browser context, made-up grading
|
|
4
|
+
* panel HTML, and a browser manager that launches nothing.
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
*/
|
|
1
8
|
import type { BrowserManager } from "../browser/manager.js";
|
|
2
9
|
export { SITE, ServiceFailure, launchTestBrowser, moodlePage, serveFakeMoodle, type FakeMoodleState } from "./fakeMoodle.js";
|
|
3
10
|
export { PANEL } from "./gradingPanel.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/testing/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,iBAAiB,EAAE,UAAU,EAAE,eAAe,EAAwB,MAAM,iBAAiB,CAAC;AAC7H,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,kFAAkF;AAClF,MAAM,UAAU,kBAAkB,CAAC,YAAqC,EAAE;IACxE,OAAO;QACL,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QACtE,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS;QAC5B,gBAAgB,EAAE,GAAG,EAAE,CAAC,SAAS;QACjC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK;QACpB,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;QACjC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;QAC3B,GAAG,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAClE,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;QAClC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS;QAC5B,GAAG,SAAS;KACb,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@falkenslab/moodle-driver",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Full control of Moodle as any user, from code or the command line, with their own login: no web services, no tokens, no admin.",
|
|
5
5
|
"author": "Falkenslab",
|
|
6
6
|
"license": "MIT",
|
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
"lint": "eslint .",
|
|
42
42
|
"test": "tsx --test --test-concurrency=1 \"test/**/*.test.ts\"",
|
|
43
43
|
"test:docker": "node scripts/in-docker.mjs npm test",
|
|
44
|
+
"test:sandbox": "node scripts/test-sandbox.mjs",
|
|
44
45
|
"prepare": "npm run build",
|
|
45
46
|
"prepublishOnly": "npm run typecheck && npm run lint && npm run docs:check && npm run test:docker",
|
|
46
47
|
"docs:install": "npm --prefix docs ci",
|