@falkenslab/moodle-driver 0.5.0 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/areas/activities/build.d.ts +15 -5
  2. package/dist/areas/activities/build.js +33 -10
  3. package/dist/areas/activities/build.js.map +1 -1
  4. package/dist/areas/activities/content.d.ts +3 -1
  5. package/dist/areas/activities/content.js +9 -1
  6. package/dist/areas/activities/content.js.map +1 -1
  7. package/dist/areas/courses/list.d.ts +5 -3
  8. package/dist/areas/courses/list.js +9 -3
  9. package/dist/areas/courses/list.js.map +1 -1
  10. package/dist/areas/courses/structure.d.ts +5 -1
  11. package/dist/areas/courses/structure.js +3 -1
  12. package/dist/areas/courses/structure.js.map +1 -1
  13. package/dist/areas/forums/discussions.d.ts +16 -0
  14. package/dist/areas/forums/discussions.js +30 -3
  15. package/dist/areas/forums/discussions.js.map +1 -1
  16. package/dist/areas/forums/posts.d.ts +35 -4
  17. package/dist/areas/forums/posts.js +57 -9
  18. package/dist/areas/forums/posts.js.map +1 -1
  19. package/dist/areas/participants/methods.d.ts +9 -6
  20. package/dist/areas/participants/methods.js +91 -39
  21. package/dist/areas/participants/methods.js.map +1 -1
  22. package/dist/areas/quizzes/structure.d.ts +2 -2
  23. package/dist/areas/quizzes/structure.js.map +1 -1
  24. package/dist/categories.js +3 -0
  25. package/dist/categories.js.map +1 -1
  26. package/dist/cli/commands.generated.js +72 -9
  27. package/dist/cli/commands.generated.js.map +1 -1
  28. package/dist/client.d.ts +6 -179
  29. package/dist/client.js +4 -1
  30. package/dist/client.js.map +1 -1
  31. package/dist/core/embed.d.ts +19 -0
  32. package/dist/core/embed.js +88 -0
  33. package/dist/core/embed.js.map +1 -0
  34. package/dist/core/forms.d.ts +3 -1
  35. package/dist/core/forms.js +10 -3
  36. package/dist/core/forms.js.map +1 -1
  37. package/dist/core/text.d.ts +10 -0
  38. package/dist/core/text.js +19 -0
  39. package/dist/core/text.js.map +1 -1
  40. package/dist/index.d.ts +3 -3
  41. package/dist/index.js +1 -1
  42. package/dist/index.js.map +1 -1
  43. package/dist/internals.d.ts +1 -1
  44. package/dist/internals.js +1 -1
  45. package/dist/internals.js.map +1 -1
  46. package/dist/moodle-methods.generated.d.ts +1159 -0
  47. package/dist/moodle-methods.generated.js +4 -0
  48. package/dist/moodle-methods.generated.js.map +1 -0
  49. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"discussions.js","sourceRoot":"","sources":["../../../src/areas/forums/discussions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discussions.js","sourceRoot":"","sources":["../../../src/areas/forums/discussions.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { BrowserContext } from "playwright-core";
2
2
  import { type FieldValue } from "../../core/forms.js";
3
+ import { type ImageItem } from "../../core/text.js";
3
4
  /** A discussion of a forum, as `forumDiscussions` lists it. */
4
5
  export interface ForumDiscussion {
5
6
  id: number;
@@ -15,8 +16,10 @@ export interface ForumDiscussion {
15
16
  replies: number;
16
17
  locked: boolean;
17
18
  pinned: boolean;
19
+ /** Whether the person is subscribed to it: to the discussion, or to the whole forum without opting out of it. */
20
+ subscribed: boolean;
18
21
  }
19
- /** A forum's discussions, as its page lists them: who started each, replies, last post. */
22
+ /** A forum's discussions, as its page lists them: who started each, replies, last post, the person's subscription. */
20
23
  export declare function forumDiscussions(context: BrowserContext, siteUrl: string, activityId: number): Promise<ForumDiscussion[]>;
21
24
  /** A post of a discussion, as `discussion` reads it. */
22
25
  export interface ForumPost {
@@ -33,6 +36,8 @@ export interface ForumPost {
33
36
  modified?: string;
34
37
  /** The message as plain text, paragraphs and lists kept. */
35
38
  text: string;
39
+ /** The images in the message, when it has any: their URLs download with `downloadFile`. */
40
+ images?: ImageItem[];
36
41
  attachments: {
37
42
  name: string;
38
43
  url: string;
@@ -40,12 +45,16 @@ export interface ForumPost {
40
45
  privateReply: boolean;
41
46
  unread?: boolean;
42
47
  }
43
- /** A discussion's posts, oldest first, with their messages as text. */
48
+ /**
49
+ * A discussion's posts, oldest first, with their messages as text, and whether the person is
50
+ * subscribed to it (`subscribed`, undefined where they can't subscribe or it's forced).
51
+ */
44
52
  export declare function discussion(context: BrowserContext, siteUrl: string, discussionId: number): Promise<{
45
53
  discussion: {
46
54
  id: number;
47
55
  forumInstanceId: number;
48
56
  courseId: number;
57
+ subscribed: boolean | undefined;
49
58
  };
50
59
  posts: ForumPost[];
51
60
  }>;
@@ -55,25 +64,45 @@ export interface PostInput {
55
64
  message: string;
56
65
  /** Absolute local paths to attach. */
57
66
  files?: string[];
67
+ /** Absolute local paths to embed in the message, which names each by its file name (`<img src="shot.png">`). */
68
+ embed?: string[];
58
69
  /** Subscribe to the discussion; Moodle's default when missing. */
59
70
  subscribe?: boolean;
60
71
  /** Other post form fields by name ({"pinned": true} for a teacher). */
61
72
  fields?: Record<string, FieldValue>;
62
73
  }
63
- /** Replies to a post; returns the new post's id and its discussion's. */
74
+ /**
75
+ * Replies to a post; returns the new post's id and its discussion's, and, when `subscribe` is given,
76
+ * the person's subscription to the discussion afterwards, read back (`subscribed`).
77
+ */
64
78
  export declare function replyToPost(context: BrowserContext, siteUrl: string, postId: number, input: PostInput & {
65
79
  subject?: string;
66
80
  }): Promise<{
81
+ subscribed?: boolean | undefined;
67
82
  changed: string;
68
83
  postId: number | undefined;
69
84
  discussionId: number | undefined;
70
85
  }>;
71
- /** Starts a discussion in a forum; returns its id. */
86
+ /**
87
+ * Starts a discussion in a forum; returns its id, and whether it's pinned and the person subscribed
88
+ * to it, as the forum lists it afterwards, so one call confirms what `subscribe` and `fields` set.
89
+ */
72
90
  export declare function startDiscussion(context: BrowserContext, siteUrl: string, activityId: number, input: PostInput & {
73
91
  subject: string;
74
92
  }): Promise<{
75
93
  changed: string;
76
94
  discussionId: number | undefined;
95
+ pinned: boolean | undefined;
96
+ subscribed: boolean | undefined;
97
+ }>;
98
+ /**
99
+ * Subscribes the person to a discussion or unsubscribes them, as the discussion list's toggle does
100
+ * (`mod_forum_set_subscription_state`); what's already so is left alone. Returns the discussion as
101
+ * the forum lists it afterwards.
102
+ */
103
+ export declare function setDiscussionSubscription(context: BrowserContext, siteUrl: string, activityId: number, discussionId: number, subscribed: boolean): Promise<{
104
+ changed: string;
105
+ discussion?: ForumDiscussion;
77
106
  }>;
78
107
  /**
79
108
  * Pins or unpins, locks or unlocks a discussion, as the discussion list's menu does; what's already
@@ -96,6 +125,8 @@ export interface PostChanges {
96
125
  add?: string[];
97
126
  remove?: string[];
98
127
  };
128
+ /** Absolute local paths to embed in the new message, which names each by its file name (`<img src="shot.png">`). */
129
+ embed?: string[];
99
130
  }
100
131
  /**
101
132
  * Changes a post through Moodle's own post form (`post.php?edit=`), as its author (within the site's
@@ -1,12 +1,13 @@
1
1
  import { callService } from "../../core/ajax.js";
2
2
  import { isoDate } from "../courses/list.js";
3
3
  import { checkLocalFiles } from "../../core/files.js";
4
+ import { checkEmbeds, embedFiles } from "../../core/embed.js";
4
5
  import { FormError, formValue, openForm, removeFromDraft, setFields, submitForm, uploadToDraft } from "../../core/forms.js";
5
- import { ForumError, NotAForumError, discussionPosts, forumInstanceId, htmlToTexts, listDiscussions } from "./discussions.js";
6
+ import { ForumError, NotAForumError, discussionPosts, discussionSubscription, forumInstanceId, listDiscussions, readFragments } from "./discussions.js";
6
7
  import { fetchSitePage, moodleErrorMessage, openSitePage } from "../../core/session.js";
7
8
  import { decodeEntities } from "../../core/text.js";
8
9
  import { MoodleError } from "../../core/errors.js";
9
- /** A forum's discussions, as its page lists them: who started each, replies, last post. */
10
+ /** A forum's discussions, as its page lists them: who started each, replies, last post, the person's subscription. */
10
11
  export async function forumDiscussions(context, siteUrl, activityId) {
11
12
  const rows = await listDiscussions(context, siteUrl, activityId);
12
13
  return rows.map((row) => ({
@@ -18,14 +19,21 @@ export async function forumDiscussions(context, siteUrl, activityId) {
18
19
  replies: row.replies,
19
20
  locked: row.locked,
20
21
  pinned: row.pinned,
22
+ subscribed: row.subscribed,
21
23
  }));
22
24
  }
23
- /** A discussion's posts, oldest first, with their messages as text. */
25
+ /**
26
+ * A discussion's posts, oldest first, with their messages as text, and whether the person is
27
+ * subscribed to it (`subscribed`, undefined where they can't subscribe or it's forced).
28
+ */
24
29
  export async function discussion(context, siteUrl, discussionId) {
25
30
  const { posts, forumid, courseid } = await discussionPosts(context, siteUrl, discussionId);
26
- const texts = await htmlToTexts(context, posts.map((post) => post.message));
31
+ const [fragments, subscribed] = await Promise.all([
32
+ readFragments(context, posts.map((post) => post.message)),
33
+ discussionSubscription(context, siteUrl, discussionId),
34
+ ]);
27
35
  return {
28
- discussion: { id: discussionId, forumInstanceId: forumid, courseId: courseid },
36
+ discussion: { id: discussionId, forumInstanceId: forumid, courseId: courseid, subscribed },
29
37
  posts: posts.map((post, i) => ({
30
38
  id: post.id,
31
39
  parentId: post.parentid ?? undefined,
@@ -33,7 +41,8 @@ export async function discussion(context, siteUrl, discussionId) {
33
41
  author: { id: post.author.id, fullName: post.author.fullname },
34
42
  created: isoDate(post.timecreated),
35
43
  modified: post.timemodified && post.timemodified - post.timecreated > 60 ? isoDate(post.timemodified) : undefined,
36
- text: texts[i] ?? "",
44
+ text: fragments[i]?.text ?? "",
45
+ ...(fragments[i]?.images.length ? { images: fragments[i].images } : {}),
37
46
  attachments: (post.attachments ?? []).map((file) => ({ name: file.filename, url: file.url ?? file.fileurl ?? "" })),
38
47
  privateReply: post.isprivatereply ?? false,
39
48
  unread: post.unread ?? undefined,
@@ -52,6 +61,8 @@ async function post(context, siteUrl, formPath, input) {
52
61
  checkMessage(input.message);
53
62
  if (input.files)
54
63
  await checkLocalFiles(input.files);
64
+ if (input.embed)
65
+ await checkEmbeds([input.message], input.embed);
55
66
  const page = await openForm(context, siteUrl, formPath);
56
67
  try {
57
68
  if (input.files && input.files.length > 0) {
@@ -61,6 +72,8 @@ async function post(context, siteUrl, formPath, input) {
61
72
  await uploadToDraft(page, draft, input.files);
62
73
  }
63
74
  const values = { "message[text]": input.message, ...input.fields };
75
+ if (input.embed)
76
+ await embedFiles(page, values, input.embed);
64
77
  if (input.subject !== undefined)
65
78
  values.subject = input.subject;
66
79
  if (input.subscribe !== undefined)
@@ -73,25 +86,56 @@ async function post(context, siteUrl, formPath, input) {
73
86
  await page.close().catch(() => undefined);
74
87
  }
75
88
  }
76
- /** Replies to a post; returns the new post's id and its discussion's. */
89
+ /**
90
+ * Replies to a post; returns the new post's id and its discussion's, and, when `subscribe` is given,
91
+ * the person's subscription to the discussion afterwards, read back (`subscribed`).
92
+ */
77
93
  export async function replyToPost(context, siteUrl, postId, input) {
78
94
  const landed = new URL(await post(context, siteUrl, `mod/forum/post.php?reply=${postId}`, input));
79
95
  // Moodle lands on the discussion, at the new post: discuss.php?d=<discussion>#p<post>.
80
96
  const newPost = /^#p(\d+)$/.exec(landed.hash)?.[1];
81
97
  const discussionId = landed.searchParams.get("d");
98
+ const subscribed = input.subscribe !== undefined && discussionId ? await discussionSubscription(context, siteUrl, Number(discussionId)) : undefined;
82
99
  return {
83
100
  changed: `Replied to post ${postId}${newPost ? ` with post ${newPost}` : ""}.`,
84
101
  postId: newPost ? Number(newPost) : undefined,
85
102
  discussionId: discussionId ? Number(discussionId) : undefined,
103
+ ...(subscribed !== undefined && { subscribed }),
86
104
  };
87
105
  }
88
- /** Starts a discussion in a forum; returns its id. */
106
+ /**
107
+ * Starts a discussion in a forum; returns its id, and whether it's pinned and the person subscribed
108
+ * to it, as the forum lists it afterwards, so one call confirms what `subscribe` and `fields` set.
109
+ */
89
110
  export async function startDiscussion(context, siteUrl, activityId, input) {
90
111
  const instance = await forumInstanceId(context, siteUrl, activityId);
91
112
  const before = new Set((await listDiscussions(context, siteUrl, activityId)).map((d) => d.id));
92
113
  await post(context, siteUrl, `mod/forum/post.php?forum=${instance}`, input);
93
114
  const created = (await listDiscussions(context, siteUrl, activityId)).find((d) => !before.has(d.id));
94
- return { changed: `Started discussion ${created?.id ?? "?"} "${input.subject}" in forum ${activityId}.`, discussionId: created?.id };
115
+ return {
116
+ changed: `Started discussion ${created?.id ?? "?"} "${input.subject}" in forum ${activityId}.`,
117
+ discussionId: created?.id,
118
+ pinned: created?.pinned,
119
+ subscribed: created?.subscribed,
120
+ };
121
+ }
122
+ /**
123
+ * Subscribes the person to a discussion or unsubscribes them, as the discussion list's toggle does
124
+ * (`mod_forum_set_subscription_state`); what's already so is left alone. Returns the discussion as
125
+ * the forum lists it afterwards.
126
+ */
127
+ export async function setDiscussionSubscription(context, siteUrl, activityId, discussionId, subscribed) {
128
+ const row = (await listDiscussions(context, siteUrl, activityId)).find((d) => d.id === discussionId);
129
+ if (!row)
130
+ throw new NotAForumError(`Forum ${activityId} has no discussion ${discussionId}. Take its id from the forum's discussions.`);
131
+ let changed = "Nothing to change.";
132
+ if (subscribed !== row.subscribed) {
133
+ const instance = row.forumInstanceId ?? (await forumInstanceId(context, siteUrl, activityId));
134
+ // Unlike the lock service, this one takes the state wanted.
135
+ await callService(context, siteUrl, "mod_forum_set_subscription_state", { forumid: instance, discussionid: discussionId, targetstate: subscribed });
136
+ changed = `${subscribed ? "Subscribed to" : "Unsubscribed from"} discussion ${discussionId}.`;
137
+ }
138
+ return { changed, discussion: (await forumDiscussions(context, siteUrl, activityId)).find((d) => d.id === discussionId) };
95
139
  }
96
140
  /**
97
141
  * Pins or unpins, locks or unlocks a discussion, as the discussion list's menu does; what's already
@@ -147,6 +191,8 @@ export async function editPost(context, siteUrl, postId, changes) {
147
191
  checkMessage(changes.message);
148
192
  if (changes.subject !== undefined && changes.subject.trim() === "")
149
193
  throw new MoodleError("The subject is empty: a post needs one.", "invalid-input");
194
+ if (changes.embed)
195
+ await checkEmbeds([changes.message], changes.embed);
150
196
  if (changes.subject === undefined && changes.message === undefined && add.length === 0 && remove.length === 0)
151
197
  return { changed: "Nothing to change." };
152
198
  if (add.length > 0)
@@ -179,6 +225,8 @@ export async function editPost(context, siteUrl, postId, changes) {
179
225
  values.subject = changes.subject;
180
226
  if (changes.message !== undefined)
181
227
  values["message[text]"] = changes.message;
228
+ if (changes.embed)
229
+ await embedFiles(page, values, changes.embed);
182
230
  await setFields(page, values);
183
231
  await submitForm(page, "submitbutton");
184
232
  // A refusal after posting comes back as a notification on the discussion.
@@ -1 +1 @@
1
- {"version":3,"file":"posts.js","sourceRoot":"","sources":["../../../src/areas/forums/posts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"posts.js","sourceRoot":"","sources":["../../../src/areas/forums/posts.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAmB,MAAM,qBAAqB,CAAC;AAC7I,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,sBAAsB,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACxJ,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACxF,OAAO,EAAE,cAAc,EAAkB,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAiBnD,sHAAsH;AACtH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAuB,EAAE,OAAe,EAAE,UAAkB;IACjG,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IACjE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACxB,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;QAC7B,QAAQ,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;QACxG,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,UAAU,EAAE,GAAG,CAAC,UAAU;KAC3B,CAAC,CAAC,CAAC;AACN,CAAC;AAqBD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAuB,EAAE,OAAe,EAAE,YAAoB;IAC7F,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;IAC3F,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAChD,aAAa,CACX,OAAO,EACP,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAClC;QACD,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC;KACvD,CAAC,CAAC;IACH,OAAO;QACL,UAAU,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE;QAC1F,KAAK,EAAE,KAAK,CAAC,GAAG,CACd,CAAC,IAAI,EAAE,CAAC,EAAa,EAAE,CAAC,CAAC;YACvB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,SAAS;YACpC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;YACrC,MAAM,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC9D,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;YAClC,QAAQ,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;YACjH,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE;YAC9B,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAE,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACxE,WAAW,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC,CAAC;YACnH,YAAY,EAAE,IAAI,CAAC,cAAc,IAAI,KAAK;YAC1C,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,SAAS;SACjC,CAAC,CACH;KACF,CAAC;AACJ,CAAC;AAgBD,sEAAsE;AACtE,SAAS,YAAY,CAAC,OAAe;IACnC,uFAAuF;IACvF,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5E,IAAI,IAAI,KAAK,EAAE,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,WAAW,CAAC,uDAAuD,EAAE,eAAe,CAAC,CAAC;AACpK,CAAC;AAED,sFAAsF;AACtF,KAAK,UAAU,IAAI,CAAC,OAAuB,EAAE,OAAe,EAAE,QAAgB,EAAE,KAAuC;IACrH,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC5B,IAAI,KAAK,CAAC,KAAK;QAAE,MAAM,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACpD,IAAI,KAAK,CAAC,KAAK;QAAE,MAAM,WAAW,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACxD,IAAI,CAAC;QACH,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YACnD,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,WAAW,CAAC,kCAAkC,EAAE,eAAe,CAAC,CAAC;YACvF,MAAM,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,MAAM,GAA+B,EAAE,eAAe,EAAE,KAAK,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QAC/F,IAAI,KAAK,CAAC,KAAK;YAAE,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7D,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS;YAAE,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAChE,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS;YAAE,MAAM,CAAC,mBAAmB,GAAG,KAAK,CAAC,SAAS,CAAC;QAChF,MAAM,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9B,MAAM,UAAU,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC;IACpB,CAAC;YAAS,CAAC;QACT,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAuB,EAAE,OAAe,EAAE,MAAc,EAAE,KAAuC;IACjI,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,4BAA4B,MAAM,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;IAClG,uFAAuF;IACvF,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,KAAK,SAAS,IAAI,YAAY,CAAC,CAAC,CAAC,MAAM,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpJ,OAAO;QACL,OAAO,EAAE,mBAAmB,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,cAAc,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG;QAC9E,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;QAC7C,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS;QAC7D,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,CAAC;KAChD,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAuB,EAAE,OAAe,EAAE,UAAkB,EAAE,KAAsC;IACxI,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IACrE,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/F,MAAM,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,4BAA4B,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;IAC5E,MAAM,OAAO,GAAG,CAAC,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrG,OAAO;QACL,OAAO,EAAE,sBAAsB,OAAO,EAAE,EAAE,IAAI,GAAG,KAAK,KAAK,CAAC,OAAO,cAAc,UAAU,GAAG;QAC9F,YAAY,EAAE,OAAO,EAAE,EAAE;QACzB,MAAM,EAAE,OAAO,EAAE,MAAM;QACvB,UAAU,EAAE,OAAO,EAAE,UAAU;KAChC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,OAAuB,EACvB,OAAe,EACf,UAAkB,EAClB,YAAoB,EACpB,UAAmB;IAEnB,MAAM,GAAG,GAAG,CAAC,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC;IACrG,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,cAAc,CAAC,SAAS,UAAU,sBAAsB,YAAY,6CAA6C,CAAC,CAAC;IACvI,IAAI,OAAO,GAAG,oBAAoB,CAAC;IACnC,IAAI,UAAU,KAAK,GAAG,CAAC,UAAU,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,GAAG,CAAC,eAAe,IAAI,CAAC,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;QAC9F,4DAA4D;QAC5D,MAAM,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,kCAAkC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC;QACpJ,OAAO,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,mBAAmB,eAAe,YAAY,GAAG,CAAC;IAChG,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,MAAM,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,EAAE,CAAC;AAC5H,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAuB,EACvB,OAAe,EACf,UAAkB,EAClB,YAAoB,EACpB,EAAE,MAAM,EAAE,MAAM,EAA0C;IAE1D,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC;IACnH,MAAM,GAAG,GAAG,CAAC,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,CAAC;IACrG,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,cAAc,CAAC,SAAS,UAAU,sBAAsB,YAAY,6CAA6C,CAAC,CAAC;IACvI,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC;QAClD,MAAM,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,yBAAyB,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5H,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC;QAClD,sFAAsF;QACtF,MAAM,QAAQ,GAAG,GAAG,CAAC,eAAe,IAAI,CAAC,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;QAC9F,0FAA0F;QAC1F,MAAM,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,0BAA0B,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAChJ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,oBAAoB,EAAE,UAAU,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;AAC7I,CAAC;AAaD,gHAAgH;AAChH,SAAS,aAAa,CAAC,IAAU;IAC/B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;QACxB,MAAM,GAAG,GAAI,UAEX,CAAC,QAAQ,CAAC;QACZ,MAAM,GAAG,GAAG,GAAG,CAAC,aAAa,CAAC,mCAAmC,CAAC,CAAC;QACnE,IAAI,CAAC,GAAG;YAAE,OAAO,SAAS,CAAC;QAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACjC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,CAAC;YAAE,KAAK,CAAC,MAAM,EAAE,CAAC;QAClG,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;IAC3E,CAAC,CAAC,CAAC;AACL,CAAC;AAED,oGAAoG;AACpG,KAAK,UAAU,gBAAgB,CAAC,OAAuB,EAAE,OAAe,EAAE,IAAY;IACpF,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAChF,MAAM,OAAO,GAAG,uEAAuE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACxG,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACzH,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAuB,EAAE,OAAe,EAAE,MAAc,EAAE,OAAoB;IAC3G,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC;IAC3C,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;QAAE,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACjE,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,MAAM,IAAI,WAAW,CAAC,yCAAyC,EAAE,eAAe,CAAC,CAAC;IACtJ,IAAI,OAAO,CAAC,KAAK;QAAE,MAAM,WAAW,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACvE,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC;IACxJ,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,2BAA2B,MAAM,EAAE,CAAC;IACrD,IAAI,IAAU,CAAC;IACf,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,oGAAoG;QACpG,IAAI,CAAC,CAAC,KAAK,YAAY,SAAS,CAAC;YAAE,MAAM,KAAK,CAAC;QAC/C,MAAM,IAAI,UAAU,CAAC,QAAQ,MAAM,qBAAqB,CAAC,MAAM,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,IAAI,6BAA6B,EAAE,CAAC,CAAC;IACnJ,CAAC;IACD,IAAI,YAAoB,CAAC;IACzB,IAAI,CAAC;QACH,YAAY,GAAG,MAAM,CAAC,MAAM,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;QAC3D,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;YACnD,IAAI,CAAC,KAAK;gBAAE,MAAM,IAAI,WAAW,CAAC,kCAAkC,EAAE,eAAe,CAAC,CAAC;YACvF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAClE,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;gBAAE,MAAM,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;QAC5D,CAAC;QACD,MAAM,MAAM,GAA+B,EAAE,CAAC;QAC9C,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;YAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QACpE,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;YAAE,MAAM,CAAC,eAAe,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;QAC7E,IAAI,OAAO,CAAC,KAAK;YAAE,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC9B,MAAM,UAAU,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QACvC,0EAA0E;QAC1E,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,OAAO;YAAE,MAAM,IAAI,UAAU,CAAC,QAAQ,MAAM,oBAAoB,OAAO,EAAE,CAAC,CAAC;IACjF,CAAC;YAAS,CAAC;QACT,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IACD,MAAM,IAAI,GAAG;QACX,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,SAAS;QAC1C,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,SAAS;QAC1C,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,sBAAsB;QACrD,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,wBAAwB;KAC9D,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClB,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9H,OAAO,EAAE,OAAO,EAAE,eAAe,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;AACzE,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAuB,EACvB,OAAe,EACf,MAAc;IAEd,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,6BAA6B,MAAM,EAAE,CAAC,CAAC;IACzF,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,KAAK;YAAE,MAAM,IAAI,UAAU,CAAC,QAAQ,MAAM,sBAAsB,KAAK,EAAE,CAAC,CAAC;QAC7E,mHAAmH;QACnH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,qEAAqE,CAAC,CAAC;QACpG,IAAI,CAAC,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC;YAAE,MAAM,IAAI,UAAU,CAAC,QAAQ,MAAM,sBAAsB,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,iCAAiC,EAAE,CAAC,CAAC;QAChK,iDAAiD;QACjD,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,KAAK,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,SAAS,CAAC;QAC5J,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,KAAK,GAAG,KAAK,CAAC;QAClB,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YACxE,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC;YAC9D,qCAAqC;YACrC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAChC,KAAK,IAAI,IAAI,GAAG,IAAI,EAAE,IAAI,GAAI,CAAC;gBAC7B,IAAI,GAAG,KAAK,CAAC;gBACb,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;oBACtB,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;wBACrE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;wBAChB,IAAI,GAAG,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC;YACD,OAAO,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;QAC3B,CAAC;QACD,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7H,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,OAAO;YAAE,MAAM,IAAI,UAAU,CAAC,QAAQ,MAAM,oBAAoB,OAAO,EAAE,CAAC,CAAC;QAC/E,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,cAAc,YAAY,oBAAoB,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,MAAM,EAAE,CAAC;QAChG,MAAM,WAAW,GAAG,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,OAAO,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,WAAW,CAAC;QAC3G,OAAO,EAAE,OAAO,EAAE,WAAW,IAAI,GAAG,WAAW,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,CAAC;IACxG,CAAC;YAAS,CAAC;QACT,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;AACH,CAAC"}
@@ -31,7 +31,7 @@ export interface EnrolmentMethodSettings {
31
31
  roleId?: number;
32
32
  /** Self enrolment: the most users it enrols; 0 for no limit. */
33
33
  maxUsers?: number;
34
- /** Self enrolment: the welcome message to send (from the course contact unless another sender is set); `false` sends none. */
34
+ /** Manual and self enrolment: the welcome message to send (from the course contact unless another sender is set); `false` sends none. */
35
35
  welcome?: string | false;
36
36
  }
37
37
  /**
@@ -42,11 +42,14 @@ export interface EnrolmentMethodSettings {
42
42
  */
43
43
  export declare function enrolmentMethods(context: BrowserContext, siteUrl: string, courseId: number): Promise<EnrolmentMethod[]>;
44
44
  /**
45
- * Sets an enrolment method with its form: by id, or the course's first method of a type
46
- * (`{ type: "self" }`), added when the course has none and the "Add method" menu offers it. Only
47
- * what's given changes. Returns the method afterwards. Throws `EnrolmentError` for a method the
48
- * course doesn't have or can't add, `FormError` with Moodle's reason when it refuses the form (a key
49
- * required by the site, an end before the start).
45
+ * Sets an enrolment method: by id, or the course's first method of a type (`{ type: "self" }`),
46
+ * added when the course has none and the "Add method" menu offers it. Only what's given changes.
47
+ * `enabled` goes through the methods page's enable and disable icons, the rest through the method's
48
+ * form: what Moodle lets the person change differs by method (an editing teacher can't configure
49
+ * manual enrolment, enrol/manual:config, so neither switch it nor set its role). Returns the method
50
+ * afterwards. Throws `EnrolmentError` for a method the course doesn't have or can't add, and for a
51
+ * setting Moodle doesn't let the person change (naming it); `FormError` with Moodle's reason when it
52
+ * refuses the form (a key required by the site, an end before the start).
50
53
  */
51
54
  export declare function setEnrolmentMethod(context: BrowserContext, siteUrl: string, courseId: number, method: number | {
52
55
  type: string;
@@ -22,7 +22,10 @@ async function readMethodsPage(context, siteUrl, courseId) {
22
22
  const cells = Array.from(row.querySelectorAll("td"));
23
23
  // The enable and disable icons say its state; without them (a plugin off on the site), its name is dimmed when off.
24
24
  const enabled = action("disable") ? true : action("enable") ? false : cells[0]?.querySelector(".dimmed_text") === null;
25
- return [{ id, type: edit?.searchParams.get("type") ?? "", name: (cells[0]?.textContent ?? "").replace(/\s+/g, " ").trim(), enabled, users: Number((cells[1]?.textContent ?? "").trim()) || 0 }];
25
+ // Moodle shows them only to whom may switch the method (its plugin's can_hide_show_instance).
26
+ const switchUrl = action("disable") ?? action("enable");
27
+ const toggle = switchUrl ? { toggle: { action: switchUrl.searchParams.get("action"), query: switchUrl.search } } : {};
28
+ return [{ id, type: edit?.searchParams.get("type") ?? "", name: (cells[0]?.textContent ?? "").replace(/\s+/g, " ").trim(), enabled, users: Number((cells[1]?.textContent ?? "").trim()) || 0, ...toggle }];
26
29
  });
27
30
  // "Add method": options lead to editinstance.php?type=…&courseid=….
28
31
  const addable = Array.from(doc.querySelectorAll("select.urlselect option"))
@@ -57,7 +60,8 @@ async function readMethodForm(page) {
57
60
  };
58
61
  }
59
62
  /** A listed method with what its form adds, when the person may open it. */
60
- async function withSettings(context, siteUrl, courseId, method) {
63
+ async function withSettings(context, siteUrl, courseId, listed) {
64
+ const method = { id: listed.id, type: listed.type, name: listed.name, enabled: listed.enabled, users: listed.users };
61
65
  if (!method.type)
62
66
  return method;
63
67
  let page;
@@ -88,12 +92,30 @@ export async function enrolmentMethods(context, siteUrl, courseId) {
88
92
  result.push(await withSettings(context, siteUrl, courseId, method));
89
93
  return result;
90
94
  }
95
+ /** The select that turns a method's welcome message on: manual enrolment's form and self enrolment's name it differently (Moodle 5.2). */
96
+ const WELCOME_FIELD = { manual: "customint1", self: "customint4" };
97
+ /** The form field each setting is set through, to tell which ones the person's form lacks. */
98
+ function formFieldOf(setting, type) {
99
+ const fields = {
100
+ enabled: "status",
101
+ key: "password",
102
+ roleId: "roleid",
103
+ start: "enrolstartdate[enabled]",
104
+ end: "enrolenddate[enabled]",
105
+ maxUsers: "customint3",
106
+ welcome: WELCOME_FIELD[type] ?? "customint4",
107
+ };
108
+ return fields[setting];
109
+ }
91
110
  /**
92
- * Sets an enrolment method with its form: by id, or the course's first method of a type
93
- * (`{ type: "self" }`), added when the course has none and the "Add method" menu offers it. Only
94
- * what's given changes. Returns the method afterwards. Throws `EnrolmentError` for a method the
95
- * course doesn't have or can't add, `FormError` with Moodle's reason when it refuses the form (a key
96
- * required by the site, an end before the start).
111
+ * Sets an enrolment method: by id, or the course's first method of a type (`{ type: "self" }`),
112
+ * added when the course has none and the "Add method" menu offers it. Only what's given changes.
113
+ * `enabled` goes through the methods page's enable and disable icons, the rest through the method's
114
+ * form: what Moodle lets the person change differs by method (an editing teacher can't configure
115
+ * manual enrolment, enrol/manual:config, so neither switch it nor set its role). Returns the method
116
+ * afterwards. Throws `EnrolmentError` for a method the course doesn't have or can't add, and for a
117
+ * setting Moodle doesn't let the person change (naming it); `FormError` with Moodle's reason when it
118
+ * refuses the form (a key required by the site, an end before the start).
97
119
  */
98
120
  export async function setEnrolmentMethod(context, siteUrl, courseId, method, settings) {
99
121
  const before = await readMethodsPage(context, siteUrl, courseId);
@@ -106,49 +128,79 @@ export async function setEnrolmentMethod(context, siteUrl, courseId, method, set
106
128
  }
107
129
  if (existing && !existing.type)
108
130
  throw new EnrolmentError(`Enrolment method ${existing.id} of course ${courseId} has no settings you can change.`);
109
- const page = await openForm(context, siteUrl, `enrol/editinstance.php?courseid=${courseId}&type=${type}${existing ? `&id=${existing.id}` : ""}`);
110
- try {
111
- const values = {};
112
- if (settings.enabled !== undefined)
113
- values.status = settings.enabled ? "0" : "1"; // ENROL_INSTANCE_ENABLED, _DISABLED
114
- if (settings.key !== undefined)
115
- values.password = settings.key;
116
- if (settings.roleId !== undefined)
117
- values.roleid = String(settings.roleId);
118
- for (const [name, date] of [["enrolstartdate", settings.start], ["enrolenddate", settings.end]]) {
119
- if (date === undefined)
120
- continue;
121
- values[`${name}[enabled]`] = date !== null;
122
- if (date)
123
- Object.assign(values, await dateSelectorValues(page, name, date));
131
+ const given = Object.keys(settings).filter((key) => settings[key] !== undefined);
132
+ if (existing && given.length === 0)
133
+ throw new EnrolmentError("Nothing to change: give at least one setting.");
134
+ // An existing method is switched with its row's icon, which Moodle shows only to whom may switch
135
+ // it (confirmed empirically, 5.2: not to an editing teacher on manual enrolment); a new one takes
136
+ // its state from the form. Checked before anything is saved.
137
+ let toggle;
138
+ if (existing && settings.enabled !== undefined && existing.enabled !== settings.enabled) {
139
+ toggle = existing.toggle;
140
+ if (toggle?.action !== (settings.enabled ? "enable" : "disable")) {
141
+ throw new EnrolmentError(`You can't ${settings.enabled ? "enable" : "disable"} the ${type} enrolment method ${existing.id} of course ${courseId}: Moodle doesn't offer it to you (it takes the enrol/${type}:config capability, or the method is off on the site).`);
124
142
  }
125
- if (settings.maxUsers !== undefined)
126
- values.customint3 = String(settings.maxUsers);
127
- if (settings.welcome !== undefined) {
128
- const sending = await page.evaluate(() => globalThis.document.querySelector('form.mform select[name="customint4"]')?.value);
129
- // 0 is "No" (ENROL_DO_NOT_SEND_EMAIL); 1 sends from the course contact.
130
- if (settings.welcome === false)
131
- values.customint4 = "0";
132
- else {
133
- if (!sending || sending === "0")
134
- values.customint4 = "1";
135
- values.customtext1 = settings.welcome;
143
+ }
144
+ const inForm = given.filter((key) => !(existing && key === "enabled"));
145
+ if (inForm.length > 0 || !existing) {
146
+ const page = await openForm(context, siteUrl, `enrol/editinstance.php?courseid=${courseId}&type=${type}${existing ? `&id=${existing.id}` : ""}`);
147
+ try {
148
+ // What the person's form lacks, Moodle doesn't let them change: refused before anything is saved.
149
+ const present = await page.evaluate((names) => names.map((name) => globalThis.document.querySelector(`form.mform [name="${name}"]`) !== null), inForm.map((key) => formFieldOf(key, type)));
150
+ const lacking = inForm.filter((_, i) => !present[i]);
151
+ if (lacking.length > 0) {
152
+ throw new EnrolmentError(`You can't change ${lacking.join(", ")} of the ${type} enrolment method${existing ? ` ${existing.id}` : ""} of course ${courseId}: Moodle's form for it doesn't offer ${lacking.length > 1 ? "them" : "it"} to you (most of a method's settings take the enrol/${type}:config capability).`);
153
+ }
154
+ const values = {};
155
+ if (inForm.includes("enabled"))
156
+ values.status = settings.enabled ? "0" : "1"; // ENROL_INSTANCE_ENABLED, _DISABLED
157
+ if (settings.key !== undefined)
158
+ values.password = settings.key;
159
+ if (settings.roleId !== undefined)
160
+ values.roleid = String(settings.roleId);
161
+ for (const [name, date] of [["enrolstartdate", settings.start], ["enrolenddate", settings.end]]) {
162
+ if (date === undefined)
163
+ continue;
164
+ values[`${name}[enabled]`] = date !== null;
165
+ if (date)
166
+ Object.assign(values, await dateSelectorValues(page, name, date));
136
167
  }
168
+ if (settings.maxUsers !== undefined)
169
+ values.customint3 = String(settings.maxUsers);
170
+ if (settings.welcome !== undefined) {
171
+ const field = formFieldOf("welcome", type);
172
+ const sending = await page.evaluate((name) => globalThis.document.querySelector(`form.mform select[name="${name}"]`)?.value, field);
173
+ // 0 is "No" (ENROL_DO_NOT_SEND_EMAIL); 1 sends from the course contact.
174
+ if (settings.welcome === false)
175
+ values[field] = "0";
176
+ else {
177
+ if (!sending || sending === "0")
178
+ values[field] = "1";
179
+ values.customtext1 = settings.welcome;
180
+ }
181
+ }
182
+ await setFields(page, values);
183
+ await submitForm(page, "submitbutton");
184
+ }
185
+ finally {
186
+ await page.close().catch(() => undefined);
137
187
  }
138
- if (Object.keys(values).length === 0 && existing)
139
- throw new EnrolmentError("Nothing to change: give at least one setting.");
140
- await setFields(page, values);
141
- await submitForm(page, "submitbutton");
142
188
  }
143
- finally {
189
+ if (toggle) {
190
+ // The icon's link: a GET with the session key; Moodle switches the method and sends back to the list.
191
+ const page = await openSitePage(context, siteUrl, `enrol/instances.php${toggle.query}`);
144
192
  await page.close().catch(() => undefined);
145
193
  }
146
194
  const after = await readMethodsPage(context, siteUrl, courseId);
147
195
  const listed = existing ? after.methods.find((m) => m.id === existing.id) : after.methods.find((m) => m.type === type && !before.methods.some((b) => b.id === m.id));
148
196
  if (!listed)
149
197
  throw new EnrolmentError(`Moodle didn't show the ${type} enrolment method of course ${courseId} after saving it.`);
198
+ if (toggle && listed.enabled !== settings.enabled) {
199
+ // Disabling the method the person is enrolled through asks for a confirmation the driver doesn't give.
200
+ throw new EnrolmentError(`Moodle didn't ${toggle.action} the ${type} enrolment method ${listed.id} of course ${courseId}: it asks to confirm disabling the method you're enrolled through, or the method needs other settings first.`);
201
+ }
150
202
  const result = await withSettings(context, siteUrl, courseId, listed);
151
- const what = Object.keys(settings).join(", ");
203
+ const what = given.map((key) => (key === "enabled" && existing && !toggle ? `enabled (already ${settings.enabled ? "on" : "off"})` : key)).join(", ");
152
204
  return { changed: existing ? `Enrolment method ${result.id} (${type}) of course ${courseId} updated: ${what}.` : `Enrolment method ${result.id} (${type}) added to course ${courseId}${what ? `: ${what}` : ""}.`, method: result };
153
205
  }
154
206
  //# sourceMappingURL=methods.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"methods.js","sourceRoot":"","sources":["../../../src/areas/participants/methods.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"methods.js","sourceRoot":"","sources":["../../../src/areas/participants/methods.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,8 @@ export declare function quizStructure(context: BrowserContext, siteUrl: string,
39
39
  slots: QuizSlot[];
40
40
  sections: QuizSection[];
41
41
  }>;
42
- type QuizChange = {
42
+ /** What a change to a quiz's structure answers: what changed, and the quiz's slots and sections afterwards. */
43
+ export type QuizChange = {
43
44
  changed: string;
44
45
  quiz: {
45
46
  id: number;
@@ -95,4 +96,3 @@ export declare function addQuizSection(context: BrowserContext, siteUrl: string,
95
96
  }): Promise<QuizChange & {
96
97
  sectionId: number;
97
98
  }>;
98
- export {};