@falkenslab/moodle-driver 0.4.1 → 0.5.1
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 +32 -0
- package/dist/areas/messages/messages.js +44 -2
- 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 +2635 -577
- 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 +10 -120
- package/dist/client.js +77 -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/moodle-methods.generated.d.ts +1127 -0
- package/dist/moodle-methods.generated.js +4 -0
- package/dist/moodle-methods.generated.js.map +1 -0
- 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
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
// `moodle shell`: command lines typed one after another on one Moodle object, so the browser stays open
|
|
2
|
+
// between them and, with `--show`, a person watches each act in the same window. Each line runs as
|
|
3
|
+
// `moodle <line>` would (the same parsing and output, `runLine`).
|
|
4
|
+
import { appendFileSync, mkdirSync, readFileSync } from "node:fs";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
import { createInterface } from "node:readline";
|
|
7
|
+
import { GLOBAL_FLAGS, UsageError, findCommand, kebab, splitLine, tokenize } from "./args.js";
|
|
8
|
+
import { allowedCategories, closeSession, openSession, overview, report, runLine, targetOf } from "./command.js";
|
|
9
|
+
import { COMMANDS } from "./commands.generated.js";
|
|
10
|
+
/** The shell's own words, besides the commands, `sites`, `forget` and `help`. */
|
|
11
|
+
const SHELL_WORDS = ["exit", "quit", "show", "hide", "use"];
|
|
12
|
+
const HISTORY_SIZE = 500;
|
|
13
|
+
const SHELL_HELP = [
|
|
14
|
+
"In the shell, every command runs as `moodle <command>` would, on one browser kept open:",
|
|
15
|
+
" show / hide Shows the browser and follows each page a command opens, or hides it",
|
|
16
|
+
" use <site> [--as name] Works on another site or profile (the browser reopens on it)",
|
|
17
|
+
" login --as <name> Logs in with another profile, and goes on with it",
|
|
18
|
+
" help [command], exit Help, and leaving (also quit or Ctrl+D; Ctrl+C clears the line)",
|
|
19
|
+
"",
|
|
20
|
+
].join("\n");
|
|
21
|
+
/** The command names and options a line can go on with, for Tab. */
|
|
22
|
+
export function complete(line) {
|
|
23
|
+
const words = line.trimStart().split(/\s+/);
|
|
24
|
+
const word = words[words.length - 1];
|
|
25
|
+
if (words.length === 1) {
|
|
26
|
+
const names = [...SHELL_WORDS, "help", "sites", "forget", "open", "close", ...COMMANDS.map((c) => kebab(c.name))].sort();
|
|
27
|
+
return [names.filter((n) => n.startsWith(word)), word];
|
|
28
|
+
}
|
|
29
|
+
if (word.startsWith("-")) {
|
|
30
|
+
const command = findCommand(COMMANDS, words[0]);
|
|
31
|
+
const options = [...(command?.options?.fields ?? []).map((f) => `--${kebab(f.name)}`), ...(command?.options ? ["--json"] : []), ...GLOBAL_FLAGS];
|
|
32
|
+
return [[...new Set(options)].filter((o) => o.startsWith(word)).sort(), word];
|
|
33
|
+
}
|
|
34
|
+
if (words[0] === "help" && words.length === 2)
|
|
35
|
+
return [COMMANDS.map((c) => kebab(c.name)).filter((n) => n.startsWith(word)), word];
|
|
36
|
+
return [[], word];
|
|
37
|
+
}
|
|
38
|
+
/** The prompt: the site's host and the profile, when known. */
|
|
39
|
+
function prompt(deps, session) {
|
|
40
|
+
try {
|
|
41
|
+
const target = targetOf(deps, session);
|
|
42
|
+
if (target)
|
|
43
|
+
return `moodle ${new URL(target.site).host} ${target.name ?? path.basename(target.profileDir)}> `;
|
|
44
|
+
}
|
|
45
|
+
catch {
|
|
46
|
+
// A site or profile that doesn't fit: the line that uses it will say why.
|
|
47
|
+
}
|
|
48
|
+
return "moodle> ";
|
|
49
|
+
}
|
|
50
|
+
function loadHistory(file) {
|
|
51
|
+
try {
|
|
52
|
+
// readline wants the latest first.
|
|
53
|
+
return readFileSync(file, "utf8").split("\n").filter(Boolean).slice(-HISTORY_SIZE).reverse();
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return [];
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/** Lines as they're typed (or read from a script), one at a time: `undefined` once the input ends. */
|
|
60
|
+
function lineReader(rl) {
|
|
61
|
+
const queued = [];
|
|
62
|
+
let ended = false;
|
|
63
|
+
let waiting;
|
|
64
|
+
rl.on("line", (line) => {
|
|
65
|
+
if (waiting) {
|
|
66
|
+
const resolve = waiting;
|
|
67
|
+
waiting = undefined;
|
|
68
|
+
resolve(line);
|
|
69
|
+
}
|
|
70
|
+
else
|
|
71
|
+
queued.push(line);
|
|
72
|
+
});
|
|
73
|
+
rl.on("close", () => {
|
|
74
|
+
ended = true;
|
|
75
|
+
waiting?.(undefined);
|
|
76
|
+
waiting = undefined;
|
|
77
|
+
});
|
|
78
|
+
return () => {
|
|
79
|
+
if (queued.length > 0)
|
|
80
|
+
return Promise.resolve(queued.shift());
|
|
81
|
+
if (ended)
|
|
82
|
+
return Promise.resolve(undefined);
|
|
83
|
+
return new Promise((resolve) => (waiting = resolve));
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* `moodle shell [--site …] [--as …] [--profile …] [--show] [--allow …] [--json]`: reads command lines
|
|
88
|
+
* until `exit`, `quit` or the end of the input, running each on one Moodle object; closes the browser
|
|
89
|
+
* (saving the session) when it ends. Exit status 0 when left normally, 2 for a shell line that doesn't fit.
|
|
90
|
+
*/
|
|
91
|
+
export async function shell(argv, deps) {
|
|
92
|
+
const session = { defaults: {}, show: false };
|
|
93
|
+
try {
|
|
94
|
+
const { global, positionals, flags } = splitLine(argv, undefined);
|
|
95
|
+
if (global.help) {
|
|
96
|
+
deps.stdout(`Usage: moodle shell [--site <url>] [--as <name>] [--profile <dir>] [--show] [--allow <list>] [--json]\n\n${SHELL_HELP}`.trimEnd());
|
|
97
|
+
return 0;
|
|
98
|
+
}
|
|
99
|
+
if (positionals.length > 0 || flags.size > 0)
|
|
100
|
+
throw new UsageError(`shell takes only the global options, not ${[...positionals, ...[...flags.keys()].map((f) => `--${kebab(f)}`)].join(" ")}.`);
|
|
101
|
+
if (global.allow)
|
|
102
|
+
allowedCategories(global.allow);
|
|
103
|
+
session.defaults = { site: global.site, as: global.as, profile: global.profile, allow: global.allow, json: global.json };
|
|
104
|
+
session.show = global.show;
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
return report(deps, error);
|
|
108
|
+
}
|
|
109
|
+
const input = deps.input ?? process.stdin;
|
|
110
|
+
const terminal = deps.terminal ?? false;
|
|
111
|
+
const historyFile = path.join(deps.home, "history");
|
|
112
|
+
const rl = createInterface({ input, output: deps.output, terminal, completer: complete, history: loadHistory(historyFile), historySize: HISTORY_SIZE, removeHistoryDuplicates: true });
|
|
113
|
+
const next = lineReader(rl);
|
|
114
|
+
let busy = false;
|
|
115
|
+
rl.on("SIGINT", () => {
|
|
116
|
+
if (busy) {
|
|
117
|
+
deps.stderr("A command can't be stopped halfway: it ends on its own (exit after it to leave).");
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
// Ctrl+C drops the line being typed, not the session.
|
|
121
|
+
rl.write(null, { ctrl: true, name: "u" });
|
|
122
|
+
deps.output?.write("^C\n");
|
|
123
|
+
rl.setPrompt(prompt(deps, session));
|
|
124
|
+
rl.prompt();
|
|
125
|
+
});
|
|
126
|
+
try {
|
|
127
|
+
if (terminal)
|
|
128
|
+
deps.stderr("moodle shell: commands as `moodle <command>`; `help` lists them, `exit` leaves.");
|
|
129
|
+
if (session.show) {
|
|
130
|
+
// The window opens at once, to watch from the first command.
|
|
131
|
+
await openSession(deps, session).catch((error) => {
|
|
132
|
+
session.show = false;
|
|
133
|
+
report(deps, error);
|
|
134
|
+
});
|
|
135
|
+
// A background browser is only held while a line runs (ADR-014).
|
|
136
|
+
if (session.open?.release)
|
|
137
|
+
await closeSession(session);
|
|
138
|
+
}
|
|
139
|
+
for (;;) {
|
|
140
|
+
if (terminal) {
|
|
141
|
+
rl.setPrompt(prompt(deps, session));
|
|
142
|
+
rl.prompt();
|
|
143
|
+
}
|
|
144
|
+
const line = await next();
|
|
145
|
+
if (line === undefined)
|
|
146
|
+
break;
|
|
147
|
+
if (line.trim() === "")
|
|
148
|
+
continue;
|
|
149
|
+
try {
|
|
150
|
+
mkdirSync(deps.home, { recursive: true });
|
|
151
|
+
appendFileSync(historyFile, `${line.trim()}\n`, { mode: 0o600 });
|
|
152
|
+
}
|
|
153
|
+
catch {
|
|
154
|
+
// History is a convenience: a home that can't take it doesn't stop the shell.
|
|
155
|
+
}
|
|
156
|
+
busy = true;
|
|
157
|
+
try {
|
|
158
|
+
if (await shellLine(line, deps, session))
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
161
|
+
finally {
|
|
162
|
+
busy = false;
|
|
163
|
+
// A background browser is shared (ADR-014): connected for one line at a time, so commands from elsewhere get their turn.
|
|
164
|
+
if (session.open?.release)
|
|
165
|
+
await closeSession(session);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
finally {
|
|
170
|
+
rl.close();
|
|
171
|
+
await closeSession(session);
|
|
172
|
+
}
|
|
173
|
+
return 0;
|
|
174
|
+
}
|
|
175
|
+
/** Runs one line of the shell; `true` when it says to leave. */
|
|
176
|
+
async function shellLine(line, deps, session) {
|
|
177
|
+
let tokens;
|
|
178
|
+
try {
|
|
179
|
+
tokens = tokenize(line);
|
|
180
|
+
}
|
|
181
|
+
catch (error) {
|
|
182
|
+
report(deps, error);
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
const [word, ...rest] = tokens;
|
|
186
|
+
switch (word) {
|
|
187
|
+
case "exit":
|
|
188
|
+
case "quit":
|
|
189
|
+
return true;
|
|
190
|
+
case "shell":
|
|
191
|
+
deps.stderr("This is the shell already.");
|
|
192
|
+
return false;
|
|
193
|
+
case "help":
|
|
194
|
+
if (rest.length === 0) {
|
|
195
|
+
deps.stdout(`${SHELL_HELP}\n${overview()}`);
|
|
196
|
+
return false;
|
|
197
|
+
}
|
|
198
|
+
break;
|
|
199
|
+
case "show":
|
|
200
|
+
case "hide":
|
|
201
|
+
session.show = word === "show";
|
|
202
|
+
try {
|
|
203
|
+
if (session.show)
|
|
204
|
+
await openSession(deps, session);
|
|
205
|
+
else
|
|
206
|
+
await session.open?.moodle.setVisible(false);
|
|
207
|
+
}
|
|
208
|
+
catch (error) {
|
|
209
|
+
if (session.show)
|
|
210
|
+
session.show = false;
|
|
211
|
+
report(deps, error);
|
|
212
|
+
}
|
|
213
|
+
return false;
|
|
214
|
+
case "use":
|
|
215
|
+
try {
|
|
216
|
+
const { global, positionals } = splitLine(tokens, undefined);
|
|
217
|
+
if (positionals.length > 1)
|
|
218
|
+
throw new UsageError("use takes one site: `use https://campus.example.org/ --as <name>`.");
|
|
219
|
+
// A new site starts from its own default profile, unless one is named.
|
|
220
|
+
const site = positionals[0] ?? global.site;
|
|
221
|
+
session.defaults = { ...session.defaults, ...(site ? { site, as: undefined, profile: undefined } : {}), ...(global.as ? { as: global.as, profile: undefined } : {}), ...(global.profile ? { profile: global.profile } : {}) };
|
|
222
|
+
const target = await openSession(deps, session);
|
|
223
|
+
deps.stdout(`✔ Working on ${target.site} as ${target.name ?? target.profileDir}.`);
|
|
224
|
+
}
|
|
225
|
+
catch (error) {
|
|
226
|
+
report(deps, error);
|
|
227
|
+
}
|
|
228
|
+
return false;
|
|
229
|
+
}
|
|
230
|
+
await runLine(tokens, deps, session);
|
|
231
|
+
return false;
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=shell.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/cli/shell.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
CHANGED
|
@@ -1,127 +1,16 @@
|
|
|
1
1
|
import type { BrowserContext, Page } from "playwright-core";
|
|
2
2
|
import { type BrowserManager } from "./browser/manager.js";
|
|
3
3
|
import { type BrowserOptions, type Trail } from "./options.js";
|
|
4
|
-
import { activitySettings, addSection, createActivity, deleteActivity, deleteSection, duplicateActivity, editActivity, editSection, updateActivity } from "./areas/activities/build.js";
|
|
5
|
-
import { createEvent, deleteEvent, upcomingEvents } from "./areas/calendar/calendar.js";
|
|
6
|
-
import { answerChoice, getChoice } from "./areas/surveys/choice.js";
|
|
7
|
-
import { completionReport, overrideCompletion, setCompletion } from "./areas/completion/completion.js";
|
|
8
4
|
import { type ActivityContent, type ContentType } from "./areas/activities/content.js";
|
|
9
|
-
import { listCourses, updateCourse } from "./areas/courses/list.js";
|
|
10
5
|
import { type DownloadedFile } from "./core/files.js";
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import { myGrades } from "./areas/grades/user-report.js";
|
|
15
|
-
import { assignmentSubmissions, gradeSubmission, grantExtension, rubric } from "./areas/assignments/grading.js";
|
|
16
|
-
import { h5pActivity } from "./areas/h5p/h5p.js";
|
|
17
|
-
import { scorm, type OpenedScorm } from "./areas/scorm/scorm.js";
|
|
18
|
-
import { answerLessonPage, lessonPage, type LessonPage } from "./areas/lessons/lessons.js";
|
|
6
|
+
import { type ExportGradesOptions } from "./areas/grades/export.js";
|
|
7
|
+
import { type OpenedScorm } from "./areas/scorm/scorm.js";
|
|
8
|
+
import { answerLessonPage, type LessonPage } from "./areas/lessons/lessons.js";
|
|
19
9
|
import { type LoginResult } from "./core/login.js";
|
|
20
|
-
import {
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
23
|
-
|
|
24
|
-
import { answerQuizQuestions, finishQuizAttempt, quizInfo, readAttempt, readReview, setQuizOverride, startQuizAttempt, type Question } from "./areas/quizzes/attempts.js";
|
|
25
|
-
import { quizResults } from "./areas/quizzes/results.js";
|
|
26
|
-
import { addQuestionsToQuiz, quizStructure } from "./areas/quizzes/structure.js";
|
|
27
|
-
import { logOut, openSitePage } from "./core/session.js";
|
|
28
|
-
import { courseActivityTypes, publicSiteInfo } from "./areas/site/info.js";
|
|
29
|
-
import { courseStructure, listAssignments, pendingActivities } from "./areas/courses/structure.js";
|
|
30
|
-
import { saveSubmission, studentAssignment, submitForGrading } from "./areas/assignments/student.js";
|
|
31
|
-
import { getSurvey, submitSurvey } from "./areas/surveys/surveys.js";
|
|
32
|
-
import { courseAbilities, courseRoles, siteName, userById, whoAmI } from "./areas/site/users.js";
|
|
33
|
-
/**
|
|
34
|
-
* The functions that take the browser context and the site first, of the high-level API: each becomes
|
|
35
|
-
* a method of the same name without those two parameters. The pieces they're built from (an
|
|
36
|
-
* assignment's ids, its grading panel, a quiz attempt's steps…) stay functions only; the ones that
|
|
37
|
-
* use the object's defaults (`trail`, `downloadDir`…) and `callService`, generic, are bound by hand.
|
|
38
|
-
*/
|
|
39
|
-
declare const SITE_FUNCTIONS: {
|
|
40
|
-
activitiesOverview: typeof activitiesOverview;
|
|
41
|
-
activitySettings: typeof activitySettings;
|
|
42
|
-
addGradeCategory: typeof addGradeCategory;
|
|
43
|
-
addQuestionsToQuiz: typeof addQuestionsToQuiz;
|
|
44
|
-
addSection: typeof addSection;
|
|
45
|
-
answerChoice: typeof answerChoice;
|
|
46
|
-
assignmentSubmissions: typeof assignmentSubmissions;
|
|
47
|
-
completionReport: typeof completionReport;
|
|
48
|
-
conversation: typeof conversation;
|
|
49
|
-
conversations: typeof conversations;
|
|
50
|
-
courseAbilities: typeof courseAbilities;
|
|
51
|
-
courseActivityTypes: typeof courseActivityTypes;
|
|
52
|
-
courseRoles: typeof courseRoles;
|
|
53
|
-
courseStructure: typeof courseStructure;
|
|
54
|
-
courseUpdates: typeof courseUpdates;
|
|
55
|
-
createActivity: typeof createActivity;
|
|
56
|
-
createEvent: typeof createEvent;
|
|
57
|
-
createQuestion: typeof createQuestion;
|
|
58
|
-
deadlines: typeof deadlines;
|
|
59
|
-
deleteActivity: typeof deleteActivity;
|
|
60
|
-
deleteEvent: typeof deleteEvent;
|
|
61
|
-
deleteSection: typeof deleteSection;
|
|
62
|
-
discussion: typeof discussion;
|
|
63
|
-
duplicateActivity: typeof duplicateActivity;
|
|
64
|
-
editActivity: typeof editActivity;
|
|
65
|
-
editSection: typeof editSection;
|
|
66
|
-
finishQuizAttempt: typeof finishQuizAttempt;
|
|
67
|
-
forumDiscussions: typeof forumDiscussions;
|
|
68
|
-
getChoice: typeof getChoice;
|
|
69
|
-
getSurvey: typeof getSurvey;
|
|
70
|
-
gradeSubmission: typeof gradeSubmission;
|
|
71
|
-
gradebookSetup: typeof gradebookSetup;
|
|
72
|
-
graderReport: typeof graderReport;
|
|
73
|
-
grantExtension: typeof grantExtension;
|
|
74
|
-
groups: typeof groups;
|
|
75
|
-
h5pActivity: typeof h5pActivity;
|
|
76
|
-
scorm: typeof scorm;
|
|
77
|
-
importQuestions: typeof importQuestions;
|
|
78
|
-
lessonPage: typeof lessonPage;
|
|
79
|
-
listAssignments: typeof listAssignments;
|
|
80
|
-
listCourses: typeof listCourses;
|
|
81
|
-
logOut: typeof logOut;
|
|
82
|
-
markNotificationsRead: typeof markNotificationsRead;
|
|
83
|
-
myGrades: typeof myGrades;
|
|
84
|
-
notifications: typeof notifications;
|
|
85
|
-
openForm: typeof openForm;
|
|
86
|
-
openSitePage: typeof openSitePage;
|
|
87
|
-
overrideCompletion: typeof overrideCompletion;
|
|
88
|
-
participantFilters: typeof participantFilters;
|
|
89
|
-
participants: typeof participants;
|
|
90
|
-
pendingActivities: typeof pendingActivities;
|
|
91
|
-
questionBanks: typeof questionBanks;
|
|
92
|
-
questions: typeof questions;
|
|
93
|
-
quizInfo: typeof quizInfo;
|
|
94
|
-
quizResults: typeof quizResults;
|
|
95
|
-
quizStructure: typeof quizStructure;
|
|
96
|
-
readAttempt: typeof readAttempt;
|
|
97
|
-
readReview: typeof readReview;
|
|
98
|
-
replyToPost: typeof replyToPost;
|
|
99
|
-
rubric: typeof rubric;
|
|
100
|
-
saveSubmission: typeof saveSubmission;
|
|
101
|
-
sendMessage: typeof sendMessage;
|
|
102
|
-
setCompletion: typeof setCompletion;
|
|
103
|
-
setDiscussionState: typeof setDiscussionState;
|
|
104
|
-
setQuizOverride: typeof setQuizOverride;
|
|
105
|
-
siteName: typeof siteName;
|
|
106
|
-
startDiscussion: typeof startDiscussion;
|
|
107
|
-
startQuizAttempt: typeof startQuizAttempt;
|
|
108
|
-
studentAssignment: typeof studentAssignment;
|
|
109
|
-
submitForGrading: typeof submitForGrading;
|
|
110
|
-
submitSurvey: typeof submitSurvey;
|
|
111
|
-
upcomingEvents: typeof upcomingEvents;
|
|
112
|
-
updateActivity: typeof updateActivity;
|
|
113
|
-
updateCourse: typeof updateCourse;
|
|
114
|
-
updateGradeItem: typeof updateGradeItem;
|
|
115
|
-
userById: typeof userById;
|
|
116
|
-
whoAmI: typeof whoAmI;
|
|
117
|
-
};
|
|
118
|
-
type SiteFunctions = typeof SITE_FUNCTIONS;
|
|
119
|
-
/** A function of `(context, siteUrl, ...rest)` as a method of `(...rest)`. */
|
|
120
|
-
type Bound<F> = F extends (context: BrowserContext, siteUrl: string, ...rest: infer A) => infer R ? (...rest: A) => R : never;
|
|
121
|
-
/** The methods bound from the site functions, each named and documented as its function. */
|
|
122
|
-
export type MoodleMethods = {
|
|
123
|
-
[K in keyof SiteFunctions]: Bound<SiteFunctions[K]>;
|
|
124
|
-
};
|
|
10
|
+
import { answerQuizQuestions, type Question } from "./areas/quizzes/attempts.js";
|
|
11
|
+
import { publicSiteInfo } from "./areas/site/info.js";
|
|
12
|
+
import type { MoodleMethods } from "./moodle-methods.generated.js";
|
|
13
|
+
export type { MoodleMethods };
|
|
125
14
|
/** The names of the methods a `Moodle` has from the driver's functions, one per function of that name. */
|
|
126
15
|
export declare const MOODLE_METHODS: readonly string[];
|
|
127
16
|
/** What the object does when a call doesn't say: every one can still be given per call. */
|
|
@@ -132,7 +21,7 @@ export interface MoodleDefaults {
|
|
|
132
21
|
onProgress?: (elapsedSeconds: number, totalSeconds?: number) => void;
|
|
133
22
|
/** How long `logIn` waits for the person to log in, in milliseconds: five minutes unless given. */
|
|
134
23
|
loginTimeoutMs?: number;
|
|
135
|
-
/** Where `downloadFile`
|
|
24
|
+
/** Where `downloadFile` and `exportGrades` save files when not given a folder (an absolute path). */
|
|
136
25
|
downloadDir?: string;
|
|
137
26
|
}
|
|
138
27
|
/** A student action's pace for one call, over the object's defaults. */
|
|
@@ -184,6 +73,8 @@ export interface Moodle extends MoodleMethods {
|
|
|
184
73
|
}>;
|
|
185
74
|
/** `downloadFile`, into the object's `downloadDir` unless given a folder. */
|
|
186
75
|
downloadFile(url: string, destDir?: string): Promise<DownloadedFile>;
|
|
76
|
+
/** `exportGrades`, into the object's `downloadDir` unless given a folder. */
|
|
77
|
+
exportGrades(courseId: number, options: ExportGradesOptions): Promise<DownloadedFile>;
|
|
187
78
|
/** The working tab a program drives itself (ADR-007). */
|
|
188
79
|
tab(): Promise<Page>;
|
|
189
80
|
/** `openScorm`: a SCORM's player, on the working tab. */
|
|
@@ -221,4 +112,3 @@ export type MoodleOptions = MoodleDefaults & (({
|
|
|
221
112
|
* ```
|
|
222
113
|
*/
|
|
223
114
|
export declare function createMoodle(options: MoodleOptions): Moodle;
|
|
224
|
-
export {};
|
package/dist/client.js
CHANGED
|
@@ -2,28 +2,40 @@ import { createBrowserManager } from "./browser/manager.js";
|
|
|
2
2
|
import { parseSiteUrl } from "./options.js";
|
|
3
3
|
import { activitySettings, addSection, createActivity, deleteActivity, deleteSection, duplicateActivity, editActivity, editSection, updateActivity } from "./areas/activities/build.js";
|
|
4
4
|
import { callService } from "./core/ajax.js";
|
|
5
|
-
import { createEvent, deleteEvent, upcomingEvents } from "./areas/calendar/calendar.js";
|
|
5
|
+
import { calendarEvent, createEvent, deleteEvent, updateEvent, upcomingEvents } from "./areas/calendar/calendar.js";
|
|
6
6
|
import { answerChoice, getChoice } from "./areas/surveys/choice.js";
|
|
7
|
+
import { activityReport, courseLogs, participationReport } from "./areas/reports/reports.js";
|
|
8
|
+
import { backupCourse, copyCourse, importActivities, restoreCourse } from "./areas/backup/backup.js";
|
|
7
9
|
import { completionReport, overrideCompletion, setCompletion } from "./areas/completion/completion.js";
|
|
8
10
|
import { activityContent } from "./areas/activities/content.js";
|
|
9
11
|
import { listCourses, updateCourse } from "./areas/courses/list.js";
|
|
12
|
+
import { resetCourse } from "./areas/courses/reset.js";
|
|
10
13
|
import { downloadFile } from "./core/files.js";
|
|
11
14
|
import { openForm } from "./core/forms.js";
|
|
12
|
-
import { discussion, forumDiscussions, replyToPost, setDiscussionState, startDiscussion } from "./areas/forums/posts.js";
|
|
13
|
-
import { addGradeCategory, gradebookSetup, graderReport, updateGradeItem } from "./areas/grades/gradebook.js";
|
|
15
|
+
import { deletePost, discussion, editPost, forumDiscussions, replyToPost, setDiscussionState, startDiscussion } from "./areas/forums/posts.js";
|
|
16
|
+
import { addGradeCategory, addGradeItem, deleteGradeCategory, deleteGradeItem, gradebookSetup, graderReport, updateGradeCategory, updateGradeItem } from "./areas/grades/gradebook.js";
|
|
17
|
+
import { setGrade } from "./areas/grades/singleview.js";
|
|
18
|
+
import { forumGrades, gradeForumUser } from "./areas/forums/grading.js";
|
|
19
|
+
import { rate } from "./areas/ratings/ratings.js";
|
|
20
|
+
import { assessWorkshopSubmission, setWorkshopPhase, workshopInfo } from "./areas/workshops/workshops.js";
|
|
21
|
+
import { exportGrades } from "./areas/grades/export.js";
|
|
14
22
|
import { myGrades } from "./areas/grades/user-report.js";
|
|
15
|
-
import { assignmentSubmissions, gradeSubmission, grantExtension, rubric } from "./areas/assignments/grading.js";
|
|
23
|
+
import { allocateMarker, assignmentSubmissions, gradeSubmission, grantExtension, rubric, setWorkflowState } from "./areas/assignments/grading.js";
|
|
16
24
|
import { h5pActivity } from "./areas/h5p/h5p.js";
|
|
17
25
|
import { openScorm, scorm } from "./areas/scorm/scorm.js";
|
|
18
26
|
import { answerLessonPage, lessonPage } from "./areas/lessons/lessons.js";
|
|
19
27
|
import { logIn } from "./core/login.js";
|
|
20
|
-
import { conversation, conversations, markNotificationsRead, notifications, sendMessage } from "./areas/messages/messages.js";
|
|
28
|
+
import { conversation, conversations, markNotificationsRead, messageParticipants, notifications, sendMessage } from "./areas/messages/messages.js";
|
|
21
29
|
import { activitiesOverview, courseUpdates, deadlines } from "./areas/courses/overview.js";
|
|
22
30
|
import { groups, participantFilters, participants } from "./areas/participants/participants.js";
|
|
23
|
-
import { createQuestion, importQuestions, questionBanks, questions } from "./areas/questions/banks.js";
|
|
31
|
+
import { createQuestion, deleteQuestions, importQuestions, questionBanks, questions, setQuestionStatus, updateQuestion } from "./areas/questions/banks.js";
|
|
32
|
+
import { createGroup, createGrouping, deleteGroup, deleteGrouping, groupings, setGroupMembers, setGroupingGroups, updateGroup } from "./areas/participants/groups.js";
|
|
33
|
+
import { enrolmentMethods, setEnrolmentMethod } from "./areas/participants/methods.js";
|
|
34
|
+
import { enrolUsers, potentialUsers, setUserRoles, unenrolUser } from "./areas/participants/enrolments.js";
|
|
24
35
|
import { answerQuizQuestions, finishQuizAttempt, quizInfo, readAttempt, readReview, setQuizOverride, startQuizAttempt } from "./areas/quizzes/attempts.js";
|
|
25
36
|
import { quizResults } from "./areas/quizzes/results.js";
|
|
26
|
-
import {
|
|
37
|
+
import { gradeQuizQuestion, questionsToGrade } from "./areas/quizzes/grading.js";
|
|
38
|
+
import { addQuestionsToQuiz, addQuizSection, editQuizSlot, quizStructure, removeQuizSlot, setQuizPages } from "./areas/quizzes/structure.js";
|
|
27
39
|
import { logOut, openSitePage } from "./core/session.js";
|
|
28
40
|
import { courseActivityTypes, publicSiteInfo } from "./areas/site/info.js";
|
|
29
41
|
import { courseStructure, listAssignments, pendingActivities } from "./areas/courses/structure.js";
|
|
@@ -39,17 +51,25 @@ import { MoodleError } from "./core/errors.js";
|
|
|
39
51
|
*/
|
|
40
52
|
const SITE_FUNCTIONS = {
|
|
41
53
|
activitiesOverview,
|
|
54
|
+
activityReport,
|
|
42
55
|
activitySettings,
|
|
43
56
|
addGradeCategory,
|
|
57
|
+
addGradeItem,
|
|
58
|
+
allocateMarker,
|
|
44
59
|
addQuestionsToQuiz,
|
|
60
|
+
addQuizSection,
|
|
45
61
|
addSection,
|
|
46
62
|
answerChoice,
|
|
63
|
+
backupCourse,
|
|
47
64
|
assignmentSubmissions,
|
|
65
|
+
calendarEvent,
|
|
48
66
|
completionReport,
|
|
67
|
+
copyCourse,
|
|
49
68
|
conversation,
|
|
50
69
|
conversations,
|
|
51
70
|
courseAbilities,
|
|
52
71
|
courseActivityTypes,
|
|
72
|
+
courseLogs,
|
|
53
73
|
courseRoles,
|
|
54
74
|
courseStructure,
|
|
55
75
|
courseUpdates,
|
|
@@ -59,21 +79,31 @@ const SITE_FUNCTIONS = {
|
|
|
59
79
|
deadlines,
|
|
60
80
|
deleteActivity,
|
|
61
81
|
deleteEvent,
|
|
82
|
+
deleteQuestions,
|
|
83
|
+
deleteGradeCategory,
|
|
84
|
+
deleteGradeItem,
|
|
85
|
+
deletePost,
|
|
62
86
|
deleteSection,
|
|
63
87
|
discussion,
|
|
64
88
|
duplicateActivity,
|
|
65
89
|
editActivity,
|
|
90
|
+
editQuizSlot,
|
|
91
|
+
editPost,
|
|
66
92
|
editSection,
|
|
67
93
|
finishQuizAttempt,
|
|
68
94
|
forumDiscussions,
|
|
95
|
+
forumGrades,
|
|
69
96
|
getChoice,
|
|
70
97
|
getSurvey,
|
|
98
|
+
gradeQuizQuestion,
|
|
99
|
+
gradeForumUser,
|
|
71
100
|
gradeSubmission,
|
|
72
101
|
gradebookSetup,
|
|
73
102
|
graderReport,
|
|
74
103
|
grantExtension,
|
|
75
104
|
groups,
|
|
76
105
|
h5pActivity,
|
|
106
|
+
importActivities,
|
|
77
107
|
scorm,
|
|
78
108
|
importQuestions,
|
|
79
109
|
lessonPage,
|
|
@@ -88,21 +118,49 @@ const SITE_FUNCTIONS = {
|
|
|
88
118
|
overrideCompletion,
|
|
89
119
|
participantFilters,
|
|
90
120
|
participants,
|
|
121
|
+
potentialUsers,
|
|
122
|
+
enrolUsers,
|
|
123
|
+
unenrolUser,
|
|
124
|
+
setUserRoles,
|
|
125
|
+
createGroup,
|
|
126
|
+
updateGroup,
|
|
127
|
+
deleteGroup,
|
|
128
|
+
setGroupMembers,
|
|
129
|
+
groupings,
|
|
130
|
+
createGrouping,
|
|
131
|
+
deleteGrouping,
|
|
132
|
+
setGroupingGroups,
|
|
133
|
+
enrolmentMethods,
|
|
134
|
+
setEnrolmentMethod,
|
|
135
|
+
participationReport,
|
|
91
136
|
pendingActivities,
|
|
92
137
|
questionBanks,
|
|
93
138
|
questions,
|
|
139
|
+
questionsToGrade,
|
|
94
140
|
quizInfo,
|
|
95
141
|
quizResults,
|
|
96
142
|
quizStructure,
|
|
143
|
+
rate,
|
|
144
|
+
workshopInfo,
|
|
145
|
+
setWorkshopPhase,
|
|
146
|
+
assessWorkshopSubmission,
|
|
97
147
|
readAttempt,
|
|
98
148
|
readReview,
|
|
149
|
+
removeQuizSlot,
|
|
99
150
|
replyToPost,
|
|
151
|
+
resetCourse,
|
|
152
|
+
restoreCourse,
|
|
100
153
|
rubric,
|
|
101
154
|
saveSubmission,
|
|
102
155
|
sendMessage,
|
|
156
|
+
messageParticipants,
|
|
103
157
|
setCompletion,
|
|
104
158
|
setDiscussionState,
|
|
159
|
+
setGrade,
|
|
105
160
|
setQuizOverride,
|
|
161
|
+
setQuizPages,
|
|
162
|
+
setQuestionStatus,
|
|
163
|
+
setWorkflowState,
|
|
106
164
|
siteName,
|
|
107
165
|
startDiscussion,
|
|
108
166
|
startQuizAttempt,
|
|
@@ -112,12 +170,17 @@ const SITE_FUNCTIONS = {
|
|
|
112
170
|
upcomingEvents,
|
|
113
171
|
updateActivity,
|
|
114
172
|
updateCourse,
|
|
173
|
+
updateGradeCategory,
|
|
174
|
+
updateEvent,
|
|
115
175
|
updateGradeItem,
|
|
176
|
+
updateQuestion,
|
|
116
177
|
userById,
|
|
117
178
|
whoAmI,
|
|
118
179
|
};
|
|
180
|
+
const methodsMatch = true;
|
|
181
|
+
void methodsMatch;
|
|
119
182
|
// Functions bound by hand, with the object's defaults: methods of the same name all the same.
|
|
120
|
-
const DEFAULTED = ["activityContent", "answerQuizQuestions", "answerLessonPage", "downloadFile"];
|
|
183
|
+
const DEFAULTED = ["activityContent", "answerQuizQuestions", "answerLessonPage", "downloadFile", "exportGrades"];
|
|
121
184
|
/** The names of the methods a `Moodle` has from the driver's functions, one per function of that name. */
|
|
122
185
|
export const MOODLE_METHODS = [...Object.keys(SITE_FUNCTIONS), ...DEFAULTED];
|
|
123
186
|
/**
|
|
@@ -170,6 +233,12 @@ export function createMoodle(options) {
|
|
|
170
233
|
throw new MoodleError("Give downloadFile a folder, or createMoodle a downloadDir.", "invalid-input");
|
|
171
234
|
return downloadFile(await browser.context(), site, url, folder);
|
|
172
235
|
},
|
|
236
|
+
exportGrades: async (courseId, exportOptions) => {
|
|
237
|
+
const folder = exportOptions.destDir ?? defaults.downloadDir;
|
|
238
|
+
if (!folder)
|
|
239
|
+
throw new MoodleError("Give exportGrades a destDir, or createMoodle a downloadDir.", "invalid-input");
|
|
240
|
+
return exportGrades(await browser.context(), site, courseId, { ...exportOptions, destDir: folder });
|
|
241
|
+
},
|
|
173
242
|
tab: () => browser.tab(),
|
|
174
243
|
openScorm: (activityId, scormOptions) => openScorm(browser, site, activityId, scormOptions),
|
|
175
244
|
visible: () => browser.visible(),
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAuB,MAAM,sBAAsB,CAAC;AACjF,OAAO,EAAE,YAAY,EAAmC,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,iBAAiB,EAAE,YAAY,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AACxL,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/core/errors.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* whose wording may change. Each error class has its own code; `MoodleError` itself takes one
|
|
4
4
|
* of the generic ones.
|
|
5
5
|
*/
|
|
6
|
-
export type MoodleErrorCode = "invalid-input" | "not-found" | "not-available" | "outside-site" | "unexpected-page" | "logout-failed" | "chromium-install-failed" | "moodle-url" | "browser-not-found" | "browser-downloading" | "no-display" | "not-logged-in" | "login-timeout" | "login-window-closed" | "moodle-service" | "form" | "activity-settings" | "not-viewable" | "not-an-assignment" | "grading" | "submission" | "calendar" | "completion" | "course" | "not-a-forum" | "gradebook" | "no-grade-report" | "not-an-h5p-activity" | "scorm" | "lesson" | "message" | "no-participants" | "question-bank" | "quiz" | "choice" | "survey";
|
|
6
|
+
export type MoodleErrorCode = "invalid-input" | "not-found" | "not-available" | "outside-site" | "unexpected-page" | "logout-failed" | "chromium-install-failed" | "background-browser" | "browser-busy" | "moodle-url" | "browser-not-found" | "browser-downloading" | "no-display" | "not-logged-in" | "login-timeout" | "login-window-closed" | "moodle-service" | "form" | "activity-settings" | "backup" | "not-viewable" | "not-an-assignment" | "grading" | "submission" | "calendar" | "completion" | "course" | "not-a-forum" | "forum" | "gradebook" | "no-grade-report" | "not-an-h5p-activity" | "scorm" | "workshop" | "lesson" | "message" | "no-participants" | "enrolment" | "question-bank" | "report" | "quiz" | "choice" | "survey";
|
|
7
7
|
/** Every error the driver throws on purpose: one class to catch, a stable `code` to tell them apart. */
|
|
8
8
|
export declare class MoodleError extends Error {
|
|
9
9
|
name: string;
|
package/dist/core/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/core/errors.ts"],"names":[],"mappings":"AAoDA,wGAAwG;AACxG,MAAM,OAAO,WAAY,SAAQ,KAAK;IAC3B,IAAI,GAAG,aAAa,CAAC;IACrB,IAAI,CAAkB;IAC/B,YAAY,OAAe,EAAE,IAAqB;QAChD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF"}
|